{"version":3,"sources":["webpack:///custom-data-chart-wsj-0.8.56.min.js","webpack:///webpack/bootstrap 60c224eb61a7a8ee6921","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./src/chart/data/constants.js","webpack:///./node_modules/babel-runtime/helpers/slicedToArray.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./src/chart/data/format.js","webpack:///./src/chart/util/element.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./src/chart/inner/transform.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./src/chart/inner/util.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./src/chart/data/datetime.js","webpack:///./src/chart/data/zero.js","webpack:///./node_modules/lodash.assign/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/chart/inner/chart-util.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./src/ui/constants/marketdata.js","webpack:///(webpack)/buildin/module.js","webpack:///./src/chart/inner/axes-common.js","webpack:///./src/chart/data/processSeries.js","webpack:///./node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./src/chart/inner/defs.js","webpack:///./node_modules/core-js/library/modules/_new-promise-capability.js","webpack:///./node_modules/highcharts/highcharts.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./src/chart/data/dateutils.js","webpack:///./src/chart/data/filterOptionsForSize.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./src/chart/data/processCategories.js","webpack:///./node_modules/lodash.merge/index.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/babel-runtime/helpers/defineProperty.js","webpack:///./src/chart/outer/text-rules.js","webpack:///./src/chart/outer/util.js","webpack:///./src/chart/inner/annotations-prerender.js","webpack:///./src/chart/inner/recessions.js","webpack:///./node_modules/moment-timezone/index.js","webpack:///./src/ui/util/marketdata.js","webpack:///./node_modules/core-js/library/modules/_species-constructor.js","webpack:///./node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/core-js/library/modules/_perform.js","webpack:///./node_modules/core-js/library/modules/_promise-resolve.js","webpack:///./node_modules/process/browser.js","webpack:///./src/chart/index.js","webpack:///./node_modules/babel-runtime/core-js/is-iterable.js","webpack:///./node_modules/core-js/library/fn/is-iterable.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/core.is-iterable.js","webpack:///./node_modules/babel-runtime/core-js/get-iterator.js","webpack:///./node_modules/core-js/library/fn/get-iterator.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator.js","webpack:///./src/chart/data/quarterly.js","webpack:///./src/chart/data/processOptions.js","webpack:///./src/chart/data/highchartsVersion.js","webpack:///./src/chart/data/processData.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./src/ui/constants/axis-intervals.js","webpack:///./node_modules/moment/locale ^\\.\\/.*$","webpack:///./src/chart/style/index.js","webpack:///./node_modules/lodash.isplainobject/index.js","webpack:///./src/chart/style/preload.js","webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/babel-runtime/core-js/symbol.js","webpack:///./node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/webfontloader/webfontloader.js","webpack:///./src/chart/outer/index.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./src/chart/outer/spacing.js","webpack:///./src/chart/outer/headlines.js","webpack:///./src/chart/outer/notes.js","webpack:///./src/chart/inner/index.js","webpack:///./src/chart/inner/spacing.js","webpack:///./src/chart/inner/chart.js","webpack:///./src/chart/inner/chart-line.js","webpack:///./src/chart/inner/chart-area.js","webpack:///./src/chart/inner/chart-bar.js","webpack:///./src/chart/inner/chart-pie.js","webpack:///./src/chart/inner/chart-scatter.js","webpack:///./src/chart/inner/legend.js","webpack:///./src/chart/inner/tooltips.js","webpack:///./src/chart/inner/axes.js","webpack:///./src/chart/inner/axes-prerender.js","webpack:///./src/chart/data/getPoint.js","webpack:///./node_modules/moment-timezone/moment-timezone.js","webpack:///./node_modules/moment-timezone/data/packed/latest.json","webpack:///./src/chart/inner/axes-postrender.js","webpack:///./src/chart/inner/axes-postrender-y-axis.js","webpack:///./src/chart/inner/axes-postrender-x-axis.js","webpack:///./src/chart/inner/annotations-postrender.js","webpack:///./src/chart/inner/plotLines-postrender.js","webpack:///./server/shared/marketDataHelpers.js","webpack:///./server/shared/helpers.js","webpack:///./node_modules/babel-runtime/regenerator/index.js","webpack:///./node_modules/regenerator-runtime/runtime-module.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/babel-runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/babel-runtime/core-js/promise.js","webpack:///./node_modules/core-js/library/fn/promise.js","webpack:///./node_modules/core-js/library/modules/es6.promise.js","webpack:///./node_modules/core-js/library/modules/_an-instance.js","webpack:///./node_modules/core-js/library/modules/_for-of.js","webpack:///./node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/core-js/library/modules/_microtask.js","webpack:///./node_modules/core-js/library/modules/_user-agent.js","webpack:///./node_modules/core-js/library/modules/_redefine-all.js","webpack:///./node_modules/core-js/library/modules/_set-species.js","webpack:///./node_modules/core-js/library/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/library/modules/es7.promise.try.js","webpack:///./node_modules/async/dist/async.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/node-fetch/browser.js","webpack:///./node_modules/hstri/hstri.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/highcharts/modules/annotations.js","webpack:///./node_modules/highcharts/modules/exporting.js","webpack:///./node_modules/highcharts/highstock.js"],"names":["CustomDataChart_WSJ_0_8_56","modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","global","factory","this","hooks","hookCallback","apply","arguments","isArray","input","Array","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","some","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","slice","join","Error","stack","deprecateSimple","deprecations","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","addFormatToken","token","padded","ordinal","callback","func","formatTokenFunctions","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formattingTokens","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","test","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","mod","x","modMonth","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","indexOf","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","min","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","getIsLeapYear","createDate","y","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseInt","parseIsoWeekday","shiftWeekdays","ws","concat","localeWeekdays","weekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","globalLocale","oldLocale","locales","_abbr","require","getSetGlobalLocale","e","values","data","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","forEach","updateLocale","tmpLocale","listLocales","keys","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","extendedIsoRegex","exec","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","defaultLocaleMonthsShort","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","defaultLocaleWeekdaysShort","calculateOffset","obsOffset","militaryOffset","numOffset","obsOffsets","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","aspNetJsonRegex","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","w","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","unitHasDecimal","ordering","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","len","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","matcher","chunk","parts","matches","chunkOffset","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","other","toArray","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","mod$1","dividend","divisor","localStartOfDate","MS_PER_400_YEARS","utcStartOfDate","startOfDate","isoWeekday","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_SECOND","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","matchUnsigned","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","clone$1","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","ss","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","toISOString$1","totalSign","ymSign","daysSign","hmsSign","abs$1","total","asSeconds","toFixed","fun","t","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","ww","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysMin","kInput","_isPm","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","prototypeMin","prototypeMax","invalid","lang","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","window","self","__g","store","uid","USE_SYMBOL","MAX_4U_WIDTH","MAX_NARROW_WIDTH_PRINT","LONG","SHORT","REGEXP_QUARTER","REGEXP_Q_ONLY","REGEXP_MDY","REGEXP_MDY_FRED","REGEXP_MD","REGEXP_MY","REGEXP_Y","REGEXP_TIME","MONTHS","MONTHS_SHORT","CATEGORY","SERIES","VALUE","POINT","SYMBOL","NBSP","APOSTROPHE","TRANSPARENT","ANNOTATIONS_SPACE","ANNOTATIONS_SPACE_PRINT","ANNOTATIONS_LINEHEIGHT","ANNOTATIONS_LINEHEIGHT_VIDEO","_interopRequireDefault","default","_isIterable2","_isIterable3","_getIterator2","_getIterator3","sliceIterator","_arr","_n","_e","_s","done","err","TypeError","core","__e","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","P","Attributes","it","_from","_from2","ctx","hide","has","$export","type","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","expProto","target","C","virtual","R","U","createDesc","decimals","props","fd","getMaxDecimalValue","forceDecimals","md","maxDecimals","substring","addZeros","num","useFixed","places","decimalIdx","dec","fixedPlaces","lastDigit","nextDigit","rounded","commas","dotIndex","getDivisor","applyFull","isPie","tooltipOrAnnotation","isSpecialHorizontal","isStackedPercent","newProps","splitDecimals","Number","removeChild","el","parentEl","parentElement","boldText","bold","str","openTag","closeTag","startIdx","asteriskIdx","newStr","replaceLineBreaks","text","IObject","defined","read","getD","regExpD","formatDMatch","getTransform","regExpTranslate","regExpScale","write","writeD","writeTranslate","writeScale","setAttribute","oldTransform","getAttribute","newTransform","setTimeout","points","pt","aFunction","bitmap","writable","$at","iterated","_t","point","isVerticalType","forAxisTicks","axis","tickPositions","ticks","forAxisTicksReverse","dashStylesHelper","path","size","width","gap","roundLineJoinsHelper","isVideoGroup","linejoin","_slicedToArray2","_slicedToArray3","Iterators","TO_STRING_TAG","DOMIterables","NAME","Collection","id","px","random","def","TAG","tag","stat","parse","categories","options","timezone","category0","isQuarterlyString","category","components","z","fiscalYears","quarterly","makeFiscalYears","removeFiscalYears","quarterlyResults","makeQuarterly","removeQuarterly","normalize","generateValues","removeExtraneousComponents","datetimeTemplate","componentsDate","componentsTime","newDate","getQuarter","half","getHalf","quarterToMonth","quarterToDate","fiscalYear","writeDateMonth","reverseDateMonth","fullYear","ampm","allHave","allValidDates","all","allQuarterly","every","common","removeExtraneous","removeExtraneousMD","datesCopy","propVal","genericVal","genericTimeValue","getValue","isDef","setUTCMonth","setUTCDate","setUTCHours","setUTCSeconds","newObj","_lodash2","_lodash","stripZeroes","addZeroes","thisArg","baseTimes","iteratee","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","assignValue","objValue","eq","baseKeys","isPrototype","nativeKeys","baseRest","start","nativeMax","otherArgs","copyObject","customizer","newValue","MAX_SAFE_INTEGER","reIsUint","isIterateeCall","isArrayLike","Ctor","constructor","objectProto","isArrayLikeObject","propertyIsEnumerable","objectToString","argsTag","isLength","isObjectLike","funcTag","genTag","transform","nonEnumShadows","assigner","sources","guard","g","eval","renderInvalidatedColors","rendered","invalidated","document","is","createElement","$keys","enumBugKeys","toInteger","shared","mode","copyright","cof","ARG","tryGet","T","callee","classof","ITERATOR","getIteratorMethod","seriesDefaults","dataDefaults","TIMETYPES","FREQUENCY","RANGE","MORE_TICKERS","D","_moment","symbol","Currencies","Bonds","end","Y","markdown","showInLegend","line","firstRowAsNames","firstColumnAsCategories","categoriesAreDates","webpackPolyfill","paths","children","checkArticle","product","includes","YEAR_MILLISECONDS","processSeries","originalSeries","series","currentSeries","liveMarketData","tickerType","zoneAxis","zones","getZones","color","zIndex","getZIndex","step","animation","colors","fillColor","dashStyle","negativeColor","colorMode","events","legendItemClick","turboThreshold","states","hover","enabled","inactive","categoriesAreMonthly","startOfMonth","forceLegendTop","checkForceLegendTop","rightLegend","legend","layout","reverseLegend","needsReverseLegend","stacking","reverseDataOrder","handleLineData","seriesData","print","convertToRGBA","opacity","rgb","lastSeriesFirstValue","isNegative","seriesColor","connectEmptyDataPoints","hasData","noDataOptions","dataLen","legendIndex","itemsInOrder","tickers","setLengendItemsOrder","reduce","accum","idx","seriesIdx","lastValue","position","truncateData","maxRows","height","styles","lineHeight","large","originalCategories","items","LIBRARY","wksExt","$Symbol","preRender","refX","findOffset","arrowWidth","midpoint","getHeight","defs","marker0","tagName","refY","sqrt","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","X","Q","q","A","navigator","userAgent","createElementNS","createSVGRect","opera","K","J","deg2rad","PI","doc","hasBidiBug","hasTouch","TouchEvent","isMS","isWebKit","isFirefox","isChrome","isSafari","isTouchDevice","SVG_NS","chartCount","seriesTypes","symbolSizes","svg","win","marginNames","noop","charts","dateFormats","r","Z","reverse","pop","timers","error","N","log","encodeURI","ba","code","message","params","H","elem","dSetter","toD","attr","update","element","style","run","stopped","requestAnimationFrame","splice","startTime","curAnim","complete","easing","initPath","unshift","startX","endX","isArea","fillSetter","strokeSetter","tweenTo","Fx","merge","pInt","isDOMElement","nodeType","isClass","erase","splat","v","syncTimeout","clearTimeout","pick","css","padding","border","margin","appendChild","I","extendClass","pad","relativeLength","wrap","proceed","defaultOptions","numberFormatter","decimalPoint","thousandsSep","getMagnitude","LN10","normalizeTickInterval","stableSort","safeI","arrayMin","arrayMax","destroyObjectProperties","destroy","discardElement","garbageBin","innerHTML","correctFloat","toPrecision","setAnimation","renderer","globalAnimation","chart","animObject","timeUnits","numberFormat","toExponential","easeInOutSine","cos","ca","getStyle","offsetWidth","scrollWidth","getBoundingClientRect","offsetHeight","scrollHeight","getComputedStyle","getPropertyValue","aa","inArray","find","V","documentElement","parentNode","top","left","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","da","stop","objectEach","each","grep","ha","addEvent","addEventListener","addEventListenerPolyfill","protoEvents","hcEvents","Point","runTrackerClick","order","ea","removeEvent","removeEventListener","removeEventListenerPolyfill","nodeName","fireEvent","createEvent","dispatchEvent","initEvent","preventDefault","defaultPrevented","animate","pathArray","ia","seriesType","getOptions","plotOptions","pointClass","fa","uniqueKey","ja","jQuery","highcharts","clamp","getNestedProperty","parsers","rgba","init","stops","brighten","setOpacity","white","black","Color","symbolCustomAttribs","textProps","_defaultGetter","_defaultSetter","parentGroup","parentInverted","inverted","textStr","buildText","added","handleZ","zIndexSetter","box","onAdd","addClass","afterSetters","doTransform","updateTransform","align","alignedObjects","alignOptions","alignByTranslate","alignTo","verticalAlign","placed","alignAttr","alignSetter","center","right","alignValue","hidden","msHidden","webkitHidden","applyTextOutline","getContrast","fill","fakeTS","getElementsByTagName","ySetter","xSetter","removeTextOutline","textContent","firstChild","cloneNode","stroke","insertBefore","symbolName","symbolAttr","rotation","styledMode","shadows","updateShadows","clip","url","crisp","strokeWidth","complexColor","radialGradient","linearGradient","gradients","radialReference","x1","y1","x2","y2","gradientUnits","getRadialAttr","radAttr","gradient","textWidth","forExport","namespaceURI","textOutline","dashstyleSetter","isSVG","ownerSVGElement","onclick","onmouseout","onmouseover","onmousemove","clipPath","querySelectorAll","removeAttribute","safeRemoveChild","destroyShadows","div","childNodes","destroyTextPath","textPathWrapper","pathToSegments","fadeOut","getBBox","cache","cacheKeys","fontSize","textOverflow","fontWeight","display","htmlGetBBox","sin","hasClass","visibility","invert","on","ontouchstart","touches","clientX","clientY","ontouchend","changedTouches","opacitySetter","removeClass","setRadialReference","setTextPath","textAnchor","attributes","dy","startOffset","dx","setAttributeNS","shadow","oldShadowOptions","offsetX","offsetY","cutHeight","show","hasStroke","symbols","textSetter","textPxLength","titleSetter","createTextNode","toFront","translate","translateX","translateY","scaleX","scaleY","matrix","rotationOriginX","rotationOriginY","visibilitySetter","xGetter","yGetter","matrixSetter","rotationOriginXSetter","rotationOriginYSetter","rotationSetter","scaleXSetter","scaleYSetter","translateXSetter","translateYSetter","verticalAlignSetter","SVGElement","SVGRenderer","Element","boxWrapper","location","href","allowHTML","imgCount","setSize","unSubPixelFix","definition","fontFamily","setStyle","isHidden","draw","cx","cy","truncate","getSubStringLength","getSpanWidth","actualWidth","escapes","whiteSpace","fontMetrics","textCache","cursor","button","label","setState","state","crispLine","circle","arc","innerR","rect","rSetter","rx","ry","rGetter","viewBox","image","preserveAspectRatio","Image","src","imgwidth","imgheight","backgroundSize","isImg","onload","chartIndex","body","hasLoaded","open","square","triangle","diamond","longArc","clockwise","callout","anchorX","anchorY","clipRect","count","html","rotCorr","hasBoxWidthChanged","widthSetter","heightSetter","paddingSetter","paddingLeftSetter","anchorXSetter","anchorYSetter","isLabel","relatedTarget","contains","Renderer","htmlCss","htmlUpdateTransform","offsetLeft","offsetTop","textAlign","marginLeft","marginTop","invertChild","oldTextWidth","innerText","cTT","oldRotation","oldAlign","setSpanRotation","getSpanCorrection","xCorr","yCorr","alignOnAdd","getTransformKey","transformOrigin","addedSetters","bBox","className","pointerEvents","classSetter","isNewLabel","isNew","parameters","tickmarkOffset","addLabel","logarithmic","labels","tickInterval","info","dateTime","resolveDTLFormat","dateTimeLabelFormats","grid","higherRanks","unitName","main","isFirst","isLast","formatCtx","dateTimeLabelFormat","tickPositionInfo","lin2log","labelFormatter","list","shortenLabel","getSlotWidth","_addedPlotLB","isXAxis","moveLabel","movedLabel","createLabel","useHTML","labelGroup","getPosition","oldChartHeight","chartHeight","transB","opposite","oldChartWidth","chartWidth","bottom","getLabelPosition","transA","isLinked","linkedParent","reversed","staggerLines","tickRotCorr","reserveSpaceDefault","labelOffset","labelAlign","side","getLabelSize","horiz","getMarkPath","handleOverflow","spacing","labelLeft","labelRight","isRadial","autoRotation","labelPos","xy","render","isActive","renderGridLine","renderMark","renderLabel","gridLine","dashstyle","gridGroup","getPlotLinePath","lineWidth","force","old","tickSize","mark","axisGroup","showFirstLabel","showLastLabel","replaceMovedLabel","isDirty","Tick","variableTimezone","useUTC","timezoneOffsetFunction","timezoneOffset","makeTime","moment","tz","shortWeekdays","shortMonths","getSeconds","getTimeTicks","unitRange","totalRange","Time","loading","numericSymbols","resetZoom","resetZoomTitle","borderRadius","colorCount","defaultSeriesType","ignoreHiddenSeries","resetZoomButton","theme","borderColor","backgroundColor","plotBorderColor","title","widthAdjust","subtitle","caption","alignColumns","navigation","activeColor","inactiveColor","itemStyle","itemHoverStyle","itemHiddenStyle","itemCheckboxStyle","squareSymbol","symbolPadding","labelStyle","tooltip","footerFormat","snap","headerFormat","pointFormat","borderWidth","credits","setOptions","defaultPlotOptions","zoomEnabled","visible","userOptions","translationSlope","tickAmount","positiveValuesOnly","pointRangePadding","pointRange","plotLinesAndBandsGroups","plotLinesAndBands","paddedTicks","overlap","oldMin","oldMax","minPixelPadding","minorTicks","minorTickInterval","maxLabelLength","labelEdge","hasVisibleSeries","hasNames","coll","closestPointRange","alternateBands","isX","isZAxis","formatter","defaultLabelFormatter","allowNegativeLog","linkedTo","minRange","userMinRange","maxZoom","range","crosshair","crosshairs","axes","xAxis","labelRotation","defaultYAxisOptions","defaultTopAxisOptions","defaultRightAxisOptions","defaultBottomAxisOptions","defaultLeftAxisOptions","numericSymbolMagnitude","getSeriesExtremes","dataMin","dataMax","softThreshold","buildStacks","xData","getXExtremes","applyExtremes","oldTransA","isOrdinal","brokenAxis","hasBreaks","lin2val","sector","val2lin","toPixels","toValue","translatedValue","acrossPanes","getLinearTickPositions","single","getMinorTickInterval","getMinorTickPositions","getLogTickPositions","normalizeTimeTickInterval","startOfWeek","trimTicks","adjustForMinRange","xIncrement","log2lin","getClosest","noSharedTooltip","nameToX","requireSorting","uniqueNames","autoIncrement","updateNames","isDirtyData","processData","generatePoints","setAxisTranslation","axisPointRange","minPointOffset","pointPlacement","slope","staticScale","minFromRange","setTickInterval","maxPadding","minPadding","tickPixelInterval","getTickAmount","userMin","userMax","getExtremes","beforePadding","usePercentage","softMin","softMax","ceiling","beforeSetTickPositions","postProcessTickInterval","minTickInterval","allowDecimals","unsquish","setTickPositions","tickPositioner","hasVerticalPanning","startOnTick","endOnTick","tickmarkPlacement","positions","adjustTickAmount","alignToOthers","alignTicks","pane","finalTickAmt","setScale","oldAxisLength","setAxisSize","forceRedraw","oldUserMin","oldUserMax","resetStacks","cleanStacks","panningState","setExtremes","kdTree","eventArgs","redraw","zoom","newMin","newMax","allowZoomOutside","displayBtn","trigger","zoomed","offsets","plotWidth","plotHeight","plotTop","plotLeft","getThreshold","autoLabelAlign","labelMetrics","MAX_VALUE","autoRotationLimit","slotWidth","renderUnsquish","specificTextOverflow","showEmpty","addTitle","axisTitle","low","middle","high","generateTick","getOffset","axisOffset","clipOffset","axisParent","showAxis","gridZIndex","1","3","reserveSpace","titleOffset","renderLine","axisTitleMargin","getMaxLabelDimensions","maxLabelDimensions","axisLine","getLinePath","lineColor","getTitlePosition","titlePosition","renderMinorTick","hasRendered","renderTick","stackLabels","alternateGridColor","polar","PlotLineOrBand","plotLines","plotBands","addPlotBandOrLine","isPlaced","renderStackTotals","getKeepProps","keepProps","keepEvents","drawCrosshair","cross","crosshairPos","plotX","plotY","chartX","chartY","stackY","isCrosshair","hideCrosshair","panning","indentation","minorTickLength","minorTickPosition","tickLength","tickPosition","minorGridLineColor","minorGridLineWidth","minorTickColor","gridLineColor","tickColor","allowOverlap","crop","gridLineWidth","Axis","compose","AdditionsClass","minorAutoInterval","bind","svgElem","getPlotBandPath","isFlat","getLabelText","xBounds","yBounds","addPlotBand","addPlotLine","removePlotBandOrLine","removePlotBand","removePlotLine","distance","isSticky","outside","applyFilter","stdDeviation","bodyFormatter","tooltipOptions","formatPrefix","tooltipFormatter","cleanSplit","tt","defaultFormatter","tooltipFooterHeaderFormatter","container","hideTimer","tooltipTimeout","getAnchor","pointer","followPointer","tooltipPos","yAxis","plotLow","plotHigh","getDateFormat","getLabel","stickOnContact","inContact","hoverSeries","onMouseOut","shape","clientWidth","clientHeight","getChartPosition","containerScaling","ttBelow","negative","getXDateFormat","hideDelay","scrollablePixelsX","scrollablePixelsY","isStickyOnContact","move","drawTracker","refresh","getLabelConfig","applyInactiveState","renderSplit","spacingBox","colorIndex","updatePosition","scrollingContainer","positioner","isHeader","boxWidth","rank","distribute","tracker","hoverPoint","styledModeFormat","xDateFormat","isFooter","labelConfig","tooltipDateKeys","Tooltip","lastValidTouch","pinchDown","runChartClick","hasDragged","unbindContainerMouseLeave","linkedSeries","navigatorSeries","inactiveOtherPoints","setAllPointsToState","unDocMouseMove","unbindDocumentMouseUp","unbindDocumentTouchEnd","clearInterval","drag","zoomHor","zoomVert","selectionMarker","mouseDownX","mouseDownY","panKey","touch","isInsidePlot","hasCartesianSeries","zoomX","zoomY","selectionMarkerFill","pan","dragStart","mouseIsDown","cancelClick","drop","hasPinched","originalEvent","scaleGroups","_cursor","findNearestKDPoint","findNearestPointBy","searchPoint","distX","dist","group","getChartCoordinatesFromPoint","shapeArgs","chartPosition","getCoordinates","getHoverData","stickyTracking","directTouch","enableMouseTracking","isNull","isBoosting","getPoint","hoverPoints","getPointFromEvent","onTrackerMouseOut","toElement","isDirectTouch","inClass","click","followTouchMove","setDOMEvents","pageX","pageY","onContainerClick","firePointEvent","onContainerMouseDown","onContainerMouseMove","buttons","zoomOption","onContainerMouseLeave","hoverChartIndex","reset","setHoverChartIndex","returnValue","openMenu","runPointActions","onDocumentTouchEnd","onContainerTouchMove","onContainerTouchStart","onDocumentMouseMove","onDocumentMouseUp","pinch","hasZoom","initiated","bounds","plotBox","pinchTranslate","pinchTranslateDirection","isCartesian","hoverX","onMouseOver","ownerDocument","getPlotBox","markerGroup","dataLabelsGroup","clipBox","onmousedown","zoomType","pinchType","Pointer","pointerType","MSPOINTER_TYPE_TOUCH","currentTarget","__extends","setPrototypeOf","__proto__","create","PointerEvent","batchMSEvents","onContainerPointerDown","onContainerPointerMove","onDocumentPointerUp","pointerId","allItems","contentGroup","maxLegendWidth","maxItemWidth","legendWidth","legendHeight","lastLineHeight","lastItemY","itemY","itemX","itemMarginTop","itemMarginBottom","itemHeight","initialItemY","pages","proximate","scrollGroup","widthOption","totalItemWidth","titleHeight","symbolWidth","symbolHeight","positionCheckboxes","unchartrender","proximatePositions","positionItems","baseline","isDirtyLegend","isDirtyBox","colorizeItem","legendGroup","legendItem","legendLine","legendSymbol","marker","isMarker","pointAttribs","positionItem","isResizing","rtl","_legendItemPos","checkbox","destroyItem","getAllItems","clipHeight","scrollOffset","checkboxOffset","renderTitle","setText","labelFormat","renderItem","itemDistance","drawLegendSymbol","createCheckboxForItem","showCheckbox","setItemEvents","itemWidth","legendItemWidth","legendItemHeight","layoutItem","legendItems","legendType","getAlignment","floating","adjustMargins","maxHeight","arrowSize","nav","currentPage","fullHeight","pageIx","up","scroll","pager","down","upTracker","downTracker","bubbleLegend","Legend","Chart","getArgs","callbacks","renderTo","labelCollectors","showAxes","pointCount","colorCounter","symbolCounter","firstRender","initSeries","missingModuleFor","setSeriesData","getSeriesOrderByLinks","enabledDataSorting","setData","orderSeries","getName","setResponsive","temporaryDisplay","layOutTitles","updateTotals","getStacks","getMargins","extKey","drawChartBox","getAxes","getSelectedPoints","getPointsCollection","selectedStaging","selected","getSelectedSeries","setTitle","applyDescription","isStock","getChartSize","containerWidth","containerHeight","hcOrigStyle","hcOrigDetached","hcOricDetached","setProperty","setClassName","getContainer","getElementById","skipClone","exporting","resetMargins","marginBottom","getAxisMargins","colorAxis","setChartSize","reflow","isPrinting","reflowTimeout","setReflow","unbindReflow","marginRight","plotSizeX","plotSizeY","plotBorderWidth","skipAxes","chartBackground","plotBackground","plotBorder","plotBGImage","plotBackgroundColor","plotBackgroundImage","plotShadow","propFromSeries","linkSeries","setDataSortingOptions","renderSeries","renderLabels","seriesGroup","addCredits","updateContainerScaling","mapCredits","scroller","isReadyToRender","MSPointerEvent","scrollablePlotArea","minWidth","minHeight","2","setUpScrolling","applyFixed","fixedDiv","WebkitOverflowScrolling","overflowX","overflowY","innerContainer","moveFixedElements","fixedRenderer","scrollableMask","scrollPositionX","scrollPositionY","redrawTrigger","oldStacks","stacks","stacksTouched","reversedStacks","setStackedPoints","modifyStacks","cumulative","touched","stackTotalGroup","onInit","onDestroy","LegendSymbolMixin","drawRectangle","symbolRadius","drawLineMarker","radius","percentage","animateBeforeDestroy","startXPos","getGraphicalProps","singular","startYPos","plural","applyOptions","pointValKey","optionsToObject","dataLabels","graphic","dataLabel","destroyElements","dataSorting","importEvents","allowPointSelect","select","ctrlKey","metaKey","shiftKey","getClassName","stackTotal","getZone","nonZonedColor","hasNewShapeType","shapeType","resolveColor","pointArrayMap","setNestedProperty","_hasPointLabels","_hasPointMarkers","colorByPoint","valueDecimals","valuePrefix","valueSuffix","Series","enabledThreshold","normal","radiusPlus","lineWidthPlus","cropThreshold","halo","axisTypes","cropShoulder","eventsToUnbind","parallelArrays","sorted","eventOptions","bindAxes","getColor","getSymbol","insert","optionalAxis","updateParallelArrays","toYData","yData","pointIntervalUnit","pointStart","pointInterval","allowDG","negativeFillColor","getCyclic","hasGroupedData","findPointIndex","matchByName","cropped","cropStart","updateData","hasDerivedData","remove","addPoint","sortData","isSeriesBoosting","getFirstValidPoint","sortKey","getProcessedData","getExtremesFromAll","forceCrop","cropData","processedXData","processedYData","basePointRange","dataGroup","groupMap","stackedYData","dataExtremes","modifyValue","pointPlacementToXValue","startFromThreshold","negStacks","stackKey","getStackIndicator","irregularWidths","setOffset","pointXOffset","barW","yBottom","isInside","isPointInside","closestPointRangePx","getValidPoints","getClipBox","setClip","sharedClipKey","afterAnimate","finishedAnimating","drawPoints","specialGroup","markerAttribs","hasImage","removeEvents","animationTimeout","survive","getGraphPath","connectNulls","leftCliff","rightCliff","getPointSpline","xMap","graphPath","drawGraph","gappedPath","getZonesGraphs","preventGraphAnimation","fillGraph","linecap","applyZones","clips","graph","area","showLine","isVML","resetZones","invertGroups","isRadialSeries","plotGroup","invertable","drawDataLabels","redrawPoints","kdAxisArray","searchKDTree","buildKDTree","buildingKdTree","kdNow","labelrank","getStackBox","justifyDataLabel","singleStacks","percentStacker","StackItem","cleanRecursively","addSeries","addAxis","createAxis","addColorAxis","ColorAxis","showLoading","loadingDiv","loadingSpan","loadingShown","showDuration","hideLoading","hideDuration","propsRequireDirtyBox","propsRequireReflow","propsRequireUpdateSeries","collectionsWithUpdate","isResponsiveOptions","isInternal","collectionsWithInit","setSubtitle","setCaption","hasDummyGraphic","connector","fixedBox","removePoint","initialType","dataGrouping","setName","setCategories","getStackPoints","leftNull","rightNull","isCliff","doCurve","rectPlotX","areaPath","fillOpacity","shiftUnit","rightContX","rightContY","groupPadding","pointPadding","minPointLength","brightness","trackerGroups","getColumnMetrics","grouping","columnIndex","maxPointWidth","pointWidth","columnMetrics","crispCol","dense","translatedThreshold","barX","pointAttrToOptions","animationLimit","allowShadow","jitter","takeOrdinalPosition","applyJitter","isLog","CenteredSeriesMixin","getCenter","slicedOffset","innerSize","angular","getStartAndEndRadians","connectorPadding","connectorShape","crookDistance","softConnector","ignoreHiddenPoint","column","startAngleRad","startR","getX","radii","asin","labelDistance","startAngle","endAngle","endAngleRad","maxLabelDistance","slicedTranslation","angle","labelPosition","natural","alignment","connectorPosition","breakAt","touchingSliceAt","drawEmpty","shadowGroup","getTranslate","delayedRendering","sortByAngle","setVisible","sliced","haloPath","connectorShapes","fixedOffset","straight","crookedLine","getConnectorPath","final","reducedLen","targets","operator","defer","dlOptions","dataLabelOnNull","connectors","contrastColor","inside","textPath","getDataLabelPath","dataLabelPath","alignDataLabel","dlBox","centerX","forceDL","setDataLabelStartPos","pie","dataLabelPositioners","radialDistributionY","distributeBox","radialDistributionX","justify","alignToPlotEdges","alignToConnectors","shortened","_pos","positionIndex","_attr","sideOverflow","verifyDataLabelOverflow","placeDataLabels","connectorWidth","connectorColor","moved","minSize","below","nodes","hideOverlappingLabels","oldOpacity","newOpacity","absoluteBox","isOld","TrackerMixin","drawTrackerPoint","_hasTracking","drawTrackerGraph","trackByArea","scatter","browserEvent","checked","defaultChecked","showResetZoom","zoomOut","relativeTo","resetSelection","mapNavigation","startMin","startMax","accumulate","hasImportedEvents","stateMarkerGraphic","currentSymbol","isCluster","mouseOver","mouseOut","labelBySeries","responsive","currentResponsive","rules","_id","matchResponsiveRule","chartOptions","ruleIds","undoOptions","currentOptions","mergedOptions","condition","maxWidth","_modules","redefine","$iterCreate","setToStringTag","getPrototypeOf","BUGGY","returnThis","Base","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","lt","close","Properties","toIObject","arrayIndexOf","abbrYear","isSameCentury","year1","year2","filterOptionsForSize","getSize","sizeObj","sizes","headings","interactive","useContainerSize","tooltips","sameAsAxes","indexOfSize","iterator","ArrayProto","SAFE_CLOSING","riter","skipClosing","safe","iter","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","5","8","70","80","7","20","50","4","100","6","9","10","30","60","90","word","forms","relativeTimeWithPlural","standalone","last2Digits","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","longMonthsParse","shortMonthsParse","ll","lll","llll","lookup","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","verbalNumber","numbersFuture","numbersPast","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","0","40","isUpper","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","firstDigit","translateSeconds","translateSingular","special","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","numbersNouns","weekdaysCaseReplace","nounCase","nominative","accusative","genitive","processHoursFunction","processCategories","maxDataLength","getMaxDataLength","formatAsDates","formatAsCategories","writeDefaultCategories","maxLen","longCategories","datesAll","createLongCategories","formatQ","formatQLong","formatLong","formatTimeLong","formatDateLong","isNoon","long","formatQText","_datetime2","_datetime","Hash","clear","entry","hashClear","__data__","nativeCreate","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","Map","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","isArr","isArg","isBuff","isBuffer","isType","isTypedArray","assignMergeValue","baseAssignValue","baseGetTag","undefinedTag","nullTag","symToStringTag","getRawTag","baseIsArguments","baseIsNative","isMasked","reIsNative","reIsHostCtor","toSource","baseIsTypedArray","typedArrayTags","baseKeysIn","nativeKeysIn","isProto","baseMerge","srcIndex","baseFor","srcValue","baseMergeDeep","safeGet","keysIn","mergeFunc","stacked","isCommon","isTyped","copyArray","cloneBuffer","cloneTypedArray","isPlainObject","toPlainObject","initCloneObject","setToString","overRest","identity","buffer","isDeep","allocUnsafe","copy","cloneArrayBuffer","arrayBuffer","byteLength","Uint8Array","typedArray","byteOffset","isKeyable","getNative","isOwn","unmasked","nativeObjectToString","baseCreate","getPrototype","maskSrcKey","funcToString","asyncTag","proxyTag","objectTag","objectCtorString","constant","stubFalse","HOT_COUNT","HOT_SPAN","reRegExpChar","freeGlobal","freeSelf","root","freeExports","freeModule","moduleExports","freeProcess","process","nodeUtil","types","binding","nodeIsTypedArray","arrayProto","funcProto","coreJsData","Buffer","objectCreate","toStringTag","nativeIsBuffer","nativeNow","fromRight","keysFunc","iterable","baseSetToString","lastCalled","stamp","remaining","_iterator","_iterator2","_symbol","_symbol2","_typeof","getOwnPropertySymbols","hiddenKeys","_defineProperty","_defineProperty2","getBestRule","TEXT_RULES","dek","subdek","note","tagline","thumb","subdekPromo","sourcePromo","notePromo","soc","tab","fon","removeEl","shapeOptions","getShapeOptions","labelOptions","getLabelOptions","createAnnotations","shapes","extraSpace","addSpacing","annotations","COLOR","setY","isWsjDigital","showRecessions","showUkRecessions","getLineHeight","flushAlign","lineType","formattedText","formatText","getXY","endPoints","createShape","numLines","lastIdx","lineEnd","findMinMax","wsjHeight","compileText","textBr","lines","wsjDigital","boldAnnotation","compiledCategory","compiledPoint","formatDate","findValue","dateObj","parseDate","dataIdx","seriesName","attachTo","irregularDates","findSeries","findIndex","findCatIdx","yValue","first","last","findMilliseconds","annotationCategory","currentCategory","compareCategory","checkQuarterly","findDelta","prevDelta","currentDelta","circleR","markerEnd","dotR","getRadius","setPadding","space","overscroll","_getPoint","canShowRecessions","convertDataToValues","dateA","dateB","axisValueA","axisValueB","conditionalColorBand","VIDEO_COLOR_BAND","COLOR_BAND","convertDatetimeToLinear","allHaveYears","convertDataToValuesHelper","RECESSIONS","UK_RECESSIONS","recessionsDates","datesLen","pb","newFrom","newTo","getLinearPrecise","linear","postRender","highchart","band","rtext","maxPx","MARGIN_HOR","small","writeRecessionText","COLOR_LABEL_HOR","moveRecessionTextHorizontal","ticksOffsetX","offsetPlotBands","topYAxisLabelPosition","COLOR_LABEL_VER","moveRecessionTextVertical","maxY","origY","elHeight","maxX","elWidth","bandsX","getElementsByClassName","recessionLabel","textUnits","querySelector","tick","MARGIN_VER","_toConsumableArray2","_toConsumableArray3","load","checkInstrumentType","instrumentType","selectProps","updateProps","ticker","createNewProps","isCustom","frequency","findStartEnd","hasCrypto","checkCrypto","getSourceLine","compileSources","sourceNames","writeMultipleSources","checkIntradayFrequency","createETMoment","lastItem","getRangeOptions","chartType","ranges","getFrequencyOptions","dateRange","startDate","endDate","currentFrequency","convertDate","unixStart","getRange","noIntraday","checkCustomIntraday","getFrequencyDefaults","defaultFrequency","frequencyOptions","getDefaultFrequency","parseDateRange","timePeriodType","timeValue","isColumn","isIntraday","isFrequencyIntraday","getEnd","checkSeriesLength","getLastValue","parseData","parseDataColumn","prevData","getColumnY","updatedPoint","timeSpan","timePeriods","getTimePeriods","current","prev","checkDate","createTimeSpanObj","getInterdayCryptoOptions","getDefaultOptions","findFrequencyIndex","endIdx","validFrequency","startProp","endProp","getDates","cryptoAdded","sourceInfo","checkMultiple","currentType","currentSource","sourceKeys","writeSource","writeList","listArr","listItem","prevY","_defineProperty3","_momentTimezone2","_momentTimezone","SPECIES","channel","port","invoke","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","listener","event","nextTick","port2","port1","onmessage","postMessage","importScripts","newPromiseCapability","promiseCapability","defaultSetTimout","defaultClearTimeout","runTimeout","cachedSetTimeout","runClearTimeout","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","timeout","Item","browser","env","argv","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","cwd","chdir","umask","_interopRequireWildcard","uploadFonts","isRolling","skipUpdate","renderRolling","startRender","isPercent","singleIsPercent","instruments","chartingSymbol","usePercent","cb","createCallback","fetchData","createDataParser","barData","seriesArr","updatedCategories","updatedData","annotation","HighChartsStock","Highcharts","existChart","getExistChart","outer","inner","renderInvalidated","resetRender","preload","fonts","renderChart","dataset","renderObj","chartObj","OuterChart","renderHighchart","outerInfo","innerEl","renderInnerChart","outerY","createInnerSpacing","InnerChart","getHighchart","then","hc","Promise","stockChart","destroyOuter","destroyInner","destroyCommon","existChartIndex","chartIndexOf","_processOptions2","_processOptions","_highcharts2","_highcharts","_annotations2","_annotations","_exporting2","_exporting","_highstock2","_highstock","addToUnscopables","_k","Arguments","descriptor","getKeys","defineProperties","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","ObjectProto","TO_STRING","charCodeAt","isIterable","getIterator","iterFn","hasQ","hasH","hasY","FY","currYear","prevQ","makeHalves","isHalf","yearBlocks","block","processOptions","removeOldProperties","copyOptions","processStyles","containerElement","addNewProperties","HIGHCHARTS_VERSION","divA","divB","plotLineValue","plotLineDashStyle","plotLineLabel","plotLineLabelPosition","plotLineColor","_highchartsVersion2","_highchartsVersion","_filterOptionsForSize2","_filterOptionsForSize","_processData2","_processData","_processCategories2","_processCategories","_processSeries2","_processSeries","_lodash3","highchartsVersion","localHighcharts","sortedDates","xAxisTicks","isArticle","majorValue","majorTicksArticle","majorTicksPromo","minorValue","minorTicksArticle","minorTicksPromo","isDecade","isHalfDecade","isCentury","longerThanYear","major","minor","firstDate","lastDate","majorTick","minorTick","isFirstLabel","interval","INTERVALS","tickPerColumn","dateSpan","needsMajor","needsMinor","firstTick","lastMoment","getTimeType","timeType","tickValues","labeledTicks","lastTickValue","firstTickValue","lastTickDate","firstTickDate","insertDates","optimizeDataOrder","optimizePieData","sortDataByDate","divideYAxisValues","shortYear","yearText","monthText","quarterText","formattedHour","proxyYears","getProxyYears","yearIsProxy","originalIndex","_moment2","isArrayIter","createProperty","getIterFn","arrayLike","aLen","mapfn","mapping","$defineProperty","getWidth","printWidth","webpackContext","req","webpackContextResolve","STYLE","BASE_STYLE","bar","seriesAreNotDates","zeroGridLine","hed","description","font","light","semibold","headline","rectHeight","rectWidth","xlarge","longSize","mediumSize","shortSize","yOffset","weight","notes","background","sizeStyle","_lodash4","isHostObject","fontsInfo","status","__charts_fonts_status__","callbackComplete","checkComplete","checkQueued","areFontsLoading","WebFont","custom","active","setInterval","families","urls","_typeof2","_typeof3","_webfontloader2","_webfontloader","DESCRIPTORS","META","KEY","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPD","gOPN","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$create","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","getOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","fastKey","getWeak","onFreeze","meta","NEED","gOPS","pIE","getSymbols","windowNames","getWindowNames","cssText","lastChild","hostname","rel","media","onerror","onreadystatechange","readyState","ga","classes","ka","la","serif","ma","na","oa","qa","FontFace","xa","vendor","pa","ra","sa","ta","ua","va","wa","encodeURIComponent","ya","Da","Ca","Ba","Aa","za","Ea","Ga","Ha","race","context","fontfamily","fontStyle","projectId","api","testStrings","latin","cyrillic","greek","khmer","Hanuman","thin","extralight","ultralight","regular","book","medium","demibold","extrabold","ultrabold","heavy","italic","Fa","Arimo","Cousine","Tinos","Typekit","async","__webfontfontdeckmodule__","fontdeck","monotype","typekit","google","headlines","createInnerEl","BARRONS_PRINT_MARGIN","MARGIN","heightOffset","gEls","_spacing2","_spacing","$Object","desc","getRules","HED","writeHed","HEADINGS","DEK","SUBDEK","getMargin","writeDek","RULE","writeChartLabel","SUBDEKPROMO","WSJ_PRINT","PRINT_LINE","getCss","wsjPrint","financialnewsFirstLetterJ","writeText","chartLabel","boldSubdek","subdekSameAsDek","colorProp","printSubdek","skipOffsetY","legendEnabled","addOffset","class","tspan","_textRules","getStartY","sText","nText","spText","npText","sourceText","getText","noteText","sourcePromoText","notePromoText","wsjPrintTagline","isWsjPrintTagline","taglineAlign","getTaglineAlign","writeSection","rule","getSourceAlign","getNoteAlign","section","isWsjSmall","wsjOffset","offsetTagline","resultY","resultX","getResultX","yPx","columns","isVideo","scrollbar","rangeSelector","chartSpacing","isZR","tickWidth","spacingTop","recessions","annotationsPre","spacingBottom","annotationsPost","horizontalBarType","chartMargin","hoverRadius","notVideoGroup","markedDataPoints","showOnHover","showTooltips","updateDashStyle","roundLineJoins","defaultHeight","scaleFrom400","hasPrefix","firstBarLength","defaultOffset","horizontalBarLabel","adjustBarSpacing","stylizeStacks","delta","index1","index2","bar1","bar2","writeDataNames","arrayofYValues","sumofYValues","drawLabelsGroup","getPieRect","drawLabels","sortLabels","positionLabels","resizedRect","resizeChart","truncateLabels","improveLabelPositions","makeDonutChart","gPie","smallSize","isSmall","styleLabel","pi2","radians","stylePerc","labelName","labelPerc","PERC_MARGIN","isMW","isFN","widthVal","heightVal","xVal","yVal","lastElementChild","firstElementChild","percentageCurrentX","BR","BL","TL","TR","sortOnRadians","getRightX","getBottomY","LABEL_MARGIN","maxLabelsTop","maxLabelsBot","newHeight","scaleRatio","pieG","pieContainer","labelsLen","parentTop","labelRect","truncateLabelLeft","truncateLabelRight","rightX","maxL","maxR","styleLegend","compileLegendText","positionLegend","boldLegend","fontFamilyStyle","fontSizePrint","positionLegendContainer","disableItems","formatItems","positionRightAlignedItems","styleColorChip","positionItemsMiddle","formatScatterLegend","editCircle","editCircleDVal","isBar","checkHideColorChips","showColorChips","hideColorChips","tspans","positionLineItems","positionColumnItems","positionLegendItems","getLineItemsY","getColumnItemsY","legendEl","newY","botY","willFit","legendItemPositions","colorChip","sortItemY","seriesEl","barsEl","printOffset","rects","rY","linesEl","lineIndex","pathEl","pathY","d0","topColor","bottomColor","createSvgEl","topStop","bottomStop","setAttrs","setColor","attrs","needsCommas","marketNotBar","formatCategory","tooltipY","getTooltipY","firstYear","lastYear","isReverse","firstYearSplit","lastYearSplit","firstYearTime","firstYearTimeSplit","hourFirstTimeSplit","lastYearTime","lastYearTimeSplit","hourLastTimeSplit","findIfReverse","dataPoint","getDataPoint","formatStackedPercent","formatStandard","updatedDate","formatMonth","formatY","dollars","cents","digitsArr","commasAdded","addCommas","finalString","formatDollars","digits","digit","checkComma","currentDateComparison","isWSJWeight","formatSeries","defaultCSS","nameArray","writeStyles","FONT_SIZE","NORMAL_STYLE","LIGHT_STYLE","BOLD_STYLE","SHORT_TICK_LENGTH","MEDIUM_TICK_LENGTH","LONG_TICK_LENGTH","hideTicks","AXES","_axesPrerender2","_axesPrerender","_axesPostrender2","_axesPostrender","axesPreRender","writeCommonOptions","writeHorizontalOptions","writeVerticalOptions","writeMinMax","mobileXAxisIntervalSameAsDesktop","mobileXAxisInterval","tickIntervalCalc","xAxisInterval","yAxisMobileEnabled","yAxisMobileInterval","setTickIntervalForYAxis","yAxisInterval","getPlotBands","plotLine","isMobile","typeOfInterval","checkForType","checkChartTypes","offsetVal","oppositeVal","horizontalGridLineStyle","maxYAxisValue","minYAxisValue","endOnTickX","startOnTickX","maxXAxisValue","minXAxisValue","xaxisTitle","calculateOverscroll","yaxisTitle","gridLineDashStyle","multiplier","getCategoryLabels","shown","formatterBarYAxisLabel","denominator","isPrint","defaultXGridWidth","alignYAxis","yAxisXVal","yAxisYVal","calculateYAxesLabelY","tp","decimalsDelta","decimalPlaces","isInteger","roundPlaces","formatterYAxisLabel","tickStyle","maxStaggerLines","allowCategoriesLinebreak","xAxisIncrementsForScatter","categoryLabels","hiddenCategories","hiddenCategoriesArticle","hiddenCategoriesPromo","formatterQuarterlyResults","isPrintColor","initialValue","minDecimals","decimalUnits","neg","rows","tmpQ","tmpY","strings","cat","float","charCodeToInt","charCode","unpackBase60","whole","fractional","arrayToInt","intToUntil","mapIndices","indices","unpack","untils","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","mid","userOffsets","change","startYear","sortZoneScores","localeCompare","addToGuesses","guesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","logError","zoneScore","zoneScores","scoreOffsetAt","guess","ignoreCache","cachedGuess","addZone","packed","normalized","caller","link","links","getNames","getCountryNames","countries","addLink","normal0","normal1","addCountries","country_code","country_zones","getCountry","zonesForCountry","country","with_offset","zone_name","loadData","dataVersion","zoneExists","didShowError","needsOffset","isUnixTimestamp","abbrWrap","_z","resetZoneWrap","momentVersion","unpacked","_index","timestamp","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","_zones","_links","_names","_countries","defaultZone","setDefault","axesPostRender","makeLinesCrisp","dArr","newD","checkVideoGroup","extendVideoAxisLine","firstLabel","lastLabel","highchartContainer","allDataLabels","firstDataLabel","xAxisLabels","arrayOfLabelWidths","currentXAxisLabelWidth","currentDataLabel","currentDataLabelWidth","correspondingBarHeight","highestXAxisLabelWidth","stringLengthOfLabel","heightPlusTen","additionalSpace","axisLeft","axisSizeX","elementPathFirst","barCont","highchartBarG","highchartBarGTransformVal","xValTranslate","baseVal","getItem","setTranslate","seriesGroupTransformVal","seriesGroupYVal","colCont","highchartColumnG","highchartColumnGTransformVal","yValTranslate","rectGroup","rectY","horizontalChartType","classList","_axesPostrenderYAxis2","_axesPostrenderYAxis","_axesPostrenderXAxis2","_axesPostrenderXAxis","axesPostRenderYAxis","moveYAxisTitle","makeDecimalsConsistent","extendTicks","shiftLastHorizontalBarLine","setZeroLineToBlack","insertZeroesForEmptyBars","moveZeroLineToTop","ensureLabelsFit","shiftYAxisLabelsScatter","addSuffix","setZeroLineWidth","setXAxisLineToOne","nodeValue","yAxisTitle","zeroTick","zeroY","getMaxTicksDecimals","indexDot","lastTick","firstLine","lastLine","dFirst","dLast","hasAttribute","spaceAddedForAnnotations","decimal","ok1","ok2","xOffset","tspanInnerHTML","labelFullWidth","labelTmpWidth","unitStr","currentY","labelYVal","highChartContainer","newLabelYVal","firstYAxisLabel","suffixRight","currentSuffX","typeOk","stackOk","allLessThanZero","allValuesLessThanZero","smallStyle","r1","r2","zero","ensureHorizontalLabelsFit","ensureVerticalLabelsFit","dif","axesPostRenderXAxis","updateBarronsTickLabels","barronsNoBaseline","updateBarronsTicks","xAxisContainerTicks","formatBarChartLabels","updateDateLabels","updateCategoryLabels","updateForMW","zeroX","zeroTickScatter","tickBottom","labelY","tspanY","removeOverlappingCategories","ticksShown","removeTick","maxLabels","skip","removeNum","categoriesLen","removeOverlappingQuarterlyResults","skipNum","getDatesSkipNum","startNum","formatDateLabels","removeAmPm","isMwOrFn","tickArray","removeOverlappingDates","styleMonthAndDayTicks","showMinorTicks","addMinorTick","addFY","replaceApostrophes","adjustLastXAxisTick","ensureTickSpacing","makeTickShorter","xGridTickGroup","xGridLabelGroup","widest","tickDistance","getTickSpacing","normalizeSkipNumber","skipLabels","t1","t2","d1","dateType","formatYears","formatMonthDate","century","tmpCentury","prevStr","apostMatch","apostIndex","am","amIndex","tmpAm","tick0","rect0","totalSkips","skips","removeDateTick","isMY","isHM","axisTickLen","markX","labelWidth","longs","markEl","longFwd","longIndex","longTickF","dlf","longBck","longTickB","dlb","labelEl","xAxisGridGroup","firstInGroupD","secondInGroupD","backD","labelMonthValue","findMonthValue","benchmark","appendToXGridGroup","lastBenchmark","isMonth","isAfterFirstTick","newPath","firstTickVal","landMarkTicks","tickVal","tickValUnit","arrayVal","removeClipPath","getAnnotationEls","spaceOutAndDrawLines","findEl","selector","searchContainer","sortEls","els","findAttr","parseTransform","getArrowPosition","nums","getEls","recession","MARGIN_PRINT","MARGIN_ONLINE","getLeftX","shiftLabelsRight","shiftLabelsLeft","getEl","recessionEl","suffixEl","getStartX","topLabelX","hardLeft","needTransform","getPositions","moveX","shapeX","needShiftRight","shiftRight","shiftRightX","getShapeX","labelX","jointed","isJointed","checkOverlap","centeredOnOverlap","hardRight","drawLine","lineRenderer","nextLabel","nextShape","getProps","dotted","transformX","itemFlush","shiftLeftX","hideAnnotation","cushion","addPx","getLabelY","adjustShapeY","shapeY","checkCutoff","getPathStart","jointPath","lastL","jointRight","jointY","initialJointY","renderPath","adjustLineEnd","isCircle","isDot","VIDEO_COLOR","getStrokeWidth","dashArray","lineInFront","gPlotLines","getMikeParams","query","getParam","createDataFormatter","formatForChartlos","send","instrument","queryHstri","findEndDate","getToken","showAsPercentProps","checkShowAsPercent","mustShowAsPercent","raw","TimeInfo","IsIntraday","startDates","findStartDates","needsLast","checkToday","allDates","buildDatesArr","getLastIdx","lastQuoteDate","findLastQuoteDate","createCategories","formatAsOfDate","dataTemplate","buildDataTemplate","InstrumentType","ExtraData","findPriorClose","Value","priorDate","mapSeriesData","param","checkArray","FormatHints","getSourceInfo","setFormatProps","fullSymbol","getSource","getPlural","getIndexSource","getCryptoSource","formatHints","UnitSymbol","DecimalPlaces","Suffix","checkDecimals","currentTime","entitlementToken","timeFrame","hstri","getHstriDate","service","isPercentProp","hasBonds","checkBonds","differentUnitSymbols","checkUnitSymbols","disabled","getSeriesProp","firstSeries","getUnitSymbol","rawDateArr","compiledDates","compileDates","longerThanDaily","checkLongerThanDaily","checkBefore","uniqueDates","Set","MarketSessions","priorClose","closingTime","session","Kind","End","extraData","Name","currentQuoteDates","CurrentQuote","DateUtc","dayFormat","needsToday","checkNeedsToday","formatTime","notPercent","firstValue","initialY","findFirstY","getY","getChange","convertTime","convertQueryObj","slug","creator","modifier","create_date","created","modify_date","modified","chart_type","convertSortObj","pullOutHeadlines","textObj","findUniqueHeadlines","textItemInsert","defaultHeadline","hasDefaultHeadline","default_headline","text_type","content","check","heading","titleCheck","dekCheck","subdekCheck","titleArr","dekArr","subdekArr","addSize","helper","chart_id","filterHeadings","contentSet","subheadline","updateChartData","action","prevGams","gams","gamsError","gamsId","imageUrl","gamsUrls","approved","graphics","editor","history","user","pngRequest","environment","uri","converterBaseUrl","svgJSON","sanitizeSVG","method","headers","simplifyCharts","modifyDate","sections","admin","sortStrs","approvedEditor","approvedGraphics","buildMetadata","resp","chartTitle","inset","embed","publishDate","statusText","createStatus","hedObj","dekObj","subdekObj","findImage","lastPublishedItem","findLastPublished","setGamsUrls","searchByCrop","searchGamsUrls","success","json","fail","epsRequest","_regenerator","_regenerator2","_asyncToGenerator2","_asyncToGenerator3","_ref","fetch","_async","hadRuntime","regeneratorRuntime","oldRuntime","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","record","hasOwn","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","GenStateSuspendedYield","return","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","iteratorSymbol","Op","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","getProto","NativeIteratorPrototype","Gp","displayName","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","_promise","_promise2","gen","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","v8","$Promise","isNode","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","ok","reaction","exited","handler","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","reason","onrejectionhandled","$reject","$resolve","wrapper","executor","onFulfilled","onRejected","capability","$index","alreadyCalled","forbiddenField","BREAK","RETURN","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","flush","parent","toggle","node","observe","characterData","onFinally","callbackfn","newLen","newArr","fallback","asyncify","initialParams","invokeCallback","setImmediate$1","rethrow","isAsync","supportsSymbol","wrapAsync","asyncFn","applyEach$1","eachfn","fns","go","symToStringTag$1","nativeObjectToString$1","callFn","MAX_SAFE_INTEGER$1","hasOwnProperty$1","objectProto$5","hasOwnProperty$3","createArrayIterator","createES2015Iterator","createObjectIterator","okeys","onlyOnce","_eachOfLimit","iterateeCallback","running","breakLoop","looping","replenish","nextElem","eachOfLimit","doLimit","eachOfArrayLike","iteratorCallback","completed","doParallel","eachOf","_asyncMap","results","_iteratee","_","doParallelLimit","arrayEach","baseForOwn","baseFindIndex","predicate","baseIsNaN","strictIndexOf","baseIndexOf","arrayMap","symbolTag","baseToString","symbolToString","INFINITY","baseSlice","castSlice","charsEndIndex","strSymbols","chrSymbols","charsStartIndex","asciiToArray","hasUnicode","reHasUnicode","unicodeToArray","reUnicode","stringToArray","trim","chars","reTrim","parseParams","STRIP_COMMENTS","FN_ARGS","FN_ARG_SPLIT","FN_ARG","autoInject","tasks","newTasks","taskFn","newTask","taskCb","newArgs","fnIsAsync","hasNoDeps","auto","DLL","tail","setInitial","dll","worker","concurrency","payload","_insert","insertAtFront","started","idle","drain","_tasks","processingScheduled","_next","numRunning","workersList","unsaturated","_worker","isProcessing","saturated","paused","kill","testFn","pause","resume","cargo","memo","eachOfSeries","seq","_functions","newargs","nextargs","_createTester","getResult","testResult","testPassed","_findGetResult","consoleFunc","doDuring","_test","truth","_fn","doWhilst","doUntil","during","_withoutIndex","eachLimit","eachLimit$1","ensureAsync","sync","innerArgs","notId","baseProperty","filterArray","truthValues","filterGeneric","_filter","forever","errback","mapValuesLimit","memoize","hasher","queues","memoized","unmemoized","_parallel","parallelLimit","parallelLimit$1","reduceRight","reflect","reflectCallback","cbArg","reflectAll","reject$1","constant$1","retry","opts","retryAttempt","_task","attempt","times","errorFilter","intervalFunc","DEFAULT_TIMES","DEFAULT_INTERVAL","acc","sortBy","comparator","criteria","timeoutCallback","timedOut","timer","baseRange","nativeCeil","timeLimit","mapLimit","accumulator","tryEach","eachSeries","unmemoize","whilst","_defer","callArgs","hasSetImmediate","hasNextTick","Symbol$1","objectProto$1","objectProto$3","hasOwnProperty$2","freeExports$1","freeModule$1","moduleExports$1","objectProto$2","objectProto$4","eachOfGeneric","applyEach","mapSeries","applyEachSeries","enqueueTask","readyTasks","runTask","processQueue","runningTasks","taskName","taskListeners","taskComplete","hasError","taskCallback","safeResults","rkey","getDependents","keys$$1","numTasks","readyToCheck","uncheckedDependencies","dependencies","remainingDependencies","dependencyName","currentTask","dependent","symbolProto","rsCombo","rsFitz","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptJoin","rsSeq","rsSymbol","removeLink","insertAfter","newNode","curr","_defer$1","_concat","concatLimit","mapResults","concatSeries","detect","detectLimit","detectSeries","everyLimit","everySeries","filterLimit","filterSeries","groupByLimit","groupBy","groupBySeries","mapValues","mapValuesSeries","queue$1","priorityQueue","nextNode","rejectLimit","rejectSeries","retryable","Boolean","someLimit","someSeries","timesSeries","waterfall","nextTask","taskIndex","parallel","timesLimit","allLimit","allSeries","any","anyLimit","anySeries","findLimit","forEachSeries","forEachLimit","forEachOf","forEachOfSeries","forEachOfLimit","inject","foldl","foldr","selectLimit","selectSeries","wrapSync","Timeout","clearFn","_clearFn","scope","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","tasksByHandle","nextHandle","registerImmediate","runIfPresent","currentlyRunningATask","postMessageIsAsynchronous","oldOnMessage","messagePrefix","onGlobalMessage","attachEvent","script","Headers","Request","Response","$","extractValues","DataPoints","DesiredDataPoints","dataPointType","Ticks","combineValues","combined","Last","Volume","fullData","extractMetadata","Ticker","CommonName","buildQuery","volume","sendQuery","ajax","EntitlementToken","dataType","beforeSend","request","setRequestHeader","extractMetadata$1","Instrument","validateFrequency","processOpts","createDateChecker","roundToNearestMinute","createMinuteRounder","roundUp","addSource","fmt","arrayToCSV","queryMichelangelo","responseJSON","Message","queryDylan","metadata","GetDataSeriesResponse","DataSeriesResponses","SeriesMatches","processValues","Trading","Price","crossDomain","responseText","fillBlanksWith","createFillerBackTo","notFirst","inPast","fillBlanksWithPrevious","precisions","P1D","P1Y","P1W","PT1M","PT1H","intervals","instr","lengthOfTime","expectedNumberOfTicks","expectedTicks","fullTicks","uniqueTicks","existingIndex","existing","fillWithPreviousValue","hstri$2","deps","fillBlanks","noGlobal","DOMEval","preservedScriptAttributes","toType","class2type","isWindow","winnow","elements","qualifier","not","sibling","cur","createOptions","rnothtmlwhite","flag","Identity","Thrower","ex","adoptValue","noValue","ready","fcamelCase","_all","letter","camelCase","rmsPrefix","rdashAlpha","Data","expando","getData","rbrace","dataAttr","rmultiDash","dataUser","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","rcssNum","getDefaultDisplay","defaultDisplayMap","showHide","dataPriv","isHiddenWithinTree","getAll","setGlobalEval","elems","refElements","buildFragment","scripts","selection","ignored","attached","fragment","createDocumentFragment","rhtml","rtagName","wrapMap","_default","htmlPrefilter","isAttached","rscriptType","returnTrue","returnFalse","expectSync","safeActiveElement","activeElement","origFn","guid","leverageNative","namespace","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","Event","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","access","fixInput","rcheckableType","defaultValue","domManip","collection","flat","hasScripts","iNoClone","valueIsFunction","support","checkClone","rchecked","_evalUrl","noModule","nonce","rcleanScript","keepData","cleanData","curCSS","computed","getStyles","pixelBoxStyles","rnumnonpx","rboxStyle","addGetHookIf","conditionFn","hookFn","vendorPropName","capName","cssPrefixes","emptyStyle","finalPropName","cssProps","vendorProps","setPositiveNumber","_elem","boxModelAdjustment","dimension","isBorderBox","computedVal","extra","cssExpand","getWidthOrHeight","boxSizingNeeded","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","getClientRects","Tween","schedule","inProgress","fx","createFxNow","fxNow","genFx","includeWidth","which","createTween","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","anim","orig","dataShow","_queueHooks","unqueued","fire","always","rfxtypes","isEmptyObject","propFilter","specialEasing","cssHooks","expand","prefilters","deferred","Deferred","percent","tweens","notifyWith","resolveWith","originalProperties","originalOptions","gotoEnd","rejectWith","progress","stripAndCollapse","getClass","classesToArray","buildParams","traditional","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","deep","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","contents","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","conv","responseFields","dataFilter","throws","fnToString","ObjectFunctionString","jquery","pushStack","prevObject","even","odd","copyIsArray","isReady","globalEval","makeArray","callbackExpect","Sizzle","seed","nid","groups","newSelector","newContext","setDocument","documentIsHTML","rquickExpr","qsa","nonnativeSelectorCache","rbuggyQSA","rdescend","rcombinators","rsibling","testContext","rcssescape","fcssescape","tokenize","toSelector","qsaError","rtrim","createCache","Expr","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","nextSibling","createDisabledPseudo","isDisabled","inDisabledFieldset","createPositionalPseudo","argument","matchIndexes","setFilters","addCombinator","combinator","checkNonElements","doneName","xml","oldCache","uniqueCache","outerCache","newCache","dirruns","uniqueID","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","preferredDoc","classCache","tokenCache","compilerCache","sortOrder","pushNative","booleans","whitespace","identifier","pseudos","rwhitespace","rcomma","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","runescape","funescape","escape","nonHex","fromCharCode","ch","asCodePoint","unloadHandler","hasCompare","subWindow","defaultView","createComment","getById","getElementsByName","attrId","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","sel","duplicates","detectDuplicates","sortStable","selectors","createPseudo","excess","unquoted","nodeNameSelector","pattern","what","_argument","simple","forward","ofType","_context","nodeIndex","useCache","pseudo","elemLang","hash","hasFocus","tabIndex","selectedIndex","_matchIndexes","radio","file","password","submit","filters","parseOnly","soFar","preFilters","cached","compiled","_name","unique","isXMLDoc","escapeSelector","siblings","rneedsContext","needsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","Callbacks","firing","memory","fired","locked","firingIndex","stopOnFalse","disable","lock","fireWith","tuples","pipe","newDefer","tuple","returned","onProgress","depth","mightThrow","maxDepth","exceptionHook","stackTrace","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","readyException","readyList","catch","readyWait","wait","doScroll","chainable","emptyGet","bulk","_key","acceptData","owner","removeData","_removeData","dequeue","startLength","clearQueue","pnum","composed","getRootNode","noCloneChecked","option","thead","col","tr","td","tbody","tfoot","colgroup","optgroup","rkeyEvent","rmouseEvent","rtypenamespace","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","noBubble","beforeunload","isDefaultPrevented","timeStamp","isSimulated","altKey","bubbles","cancelable","detail","eventPhase","view","keyCode","screenX","screenY","targetTouches","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","related","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","before","after","replaceWith","replaceChild","appendTo","prependTo","replaceAll","original","opener","swap","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","scrollboxSize","table","trChild","trStyle","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","letterSpacing","origName","isCustomProp","scrollboxSizeBuggy","expanded","propHooks","eased","swing","rrun","tweener","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","stopQueue","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeToggle","slow","fast","delay","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","lastModified","etag","protocol","contentType","accepts","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","nativeStatusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","uncached","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","abort","finalText","host","hasContent","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","unwrap","xhr","XMLHttpRequest","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","addEvents","onMouseDown","nonDOMEvents","draggable","onDrag","isUpdating","removeDocEvents","removeDrag","removeMouseUp","hasDraggedAnnotation","prevChartX","prevChartY","onMouseUp","mouseMoveToTranslation","mouseMoveToRadians","atan2","mouseMoveToScale","setVisibility","controlPointsGroup","mock","fromPoint","pointToPixels","pointToOptions","hasDynamicOptions","command","setAxis","toAnchor","refreshOptions","rotate","controlPoints","linkPoints","addControlPoints","getPointsOptions","attrsFromOptions","attrsMap","relativePosition","absolutePosition","controlPointOptions","shouldBeDrawn","transformPoint","translatePoint","translateShape","setControlPointsVisibility","arrow","markerWidth","markerHeight","addMarker","orient","markerEndSetter","markerStartSetter","setItemMarkers","setMarkers","setRadius","shapesWithoutBackground","alignedPosition","justifiedOptions","Annotation","getLabelsAndShapesOptions","addShapes","addLabels","setLabelCollector","initShape","initLabel","addClipPaths","setClipAxes","clipXAxis","clipYAxis","labelCollector","redrawItems","redrawItem","renderItems","shapesGroup","plotBoxClip","labelsGroup","removeAnnotation","shapesMap","itemType","adjustVisibility","MockPoint","ControlPoint","extendAnnotation","initAnnotation","addAnnotation","drawAnnotations","initUpdate","updates","addUpdate","navigationBindings","activeAnnotation","deselectAnnotation","formType","annotationToFields","onSubmit","actionType","fieldsToOptions","fields","typeOptions","crosshairY","crosshairX","selectedButton","boundClassNames","bindingsClassName","initEvents","bindings","getButtonEvents","bindingsButtonClick","bindingsChartClick","bindingsContainerMouseMove","selectedButtonElement","nextEvent","currentUserDetails","mouseMoveEvent","steps","stepIndex","annotationsEditable","nestedOptions","utils","getFieldType","annotationsNonEditable","langKey","getClickedClassNames","innerBackground","outerBackground","backgroundColors","verticalLine","fibonacci","tunnel","pitchfork","basicAnnotation","rectangle","updateRectSize","initNavigationBindings","popup","simpleShapes","circleAnnotation","annotationsOptions","rectangleAnnotation","labelAnnotation","Popup","getLangpack","iconsURL","addCloseBtn","closePopup","addColsContainer","lhsCol","rhsCol","addInput","htmlFor","addButton","getFields","seriesId","showPopup","showForm","indicators","addForm","addToolbar","removeButton","editButton","addFormFields","saveButton","tabs","addIndicatorList","getNameType","nameBase","listAllSeries","volumeSeriesID","addParamInputs","getAmount","addMenuItem","addContentItem","switchTabs","selectTab","deselectAll","stockTools","gui","isOpen","browserProps","requestFullscreen","fullscreenChange","exitFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","Document","unbindFullscreenEvent","setButtonText","alert","exportDivElements","contextButton","menuItems","menuItemDefinitions","viewFullscreen","Fullscreen","fullscreen","printChart","downloadPNG","downloadJPEG","downloadPDF","downloadSVG","contextButtonTitle","buttonOptions","symbolSize","symbolX","symbolY","buttonSpacing","menuStyle","menuItemStyle","transition","menuItemHoverStyle","symbolFill","symbolStroke","symbolStrokeWidth","printMaxWidth","menuClassName","titleKey","textKey","exportChart","post","enctype","matchMedia","printingChart","beforePrint","afterPrint","ieSanitizeSVG","getChartHTML","inlineStyles","getSVG","sourceWidth","isGantt","sourceHeight","internalKey","chartCopy","getSVGForExport","getFilename","filename","formAttributes","moveContainers","origDisplay","resetParams","printReverseInfo","contextMenu","exportContextMenu","listStyle","MozBoxShadow","WebkitBoxShadow","boxShadow","hideMenu","exportEvents","exportMenuWidth","exportMenuHeight","btnCount","exportSVGElements","paddingLeft","_titleKey","exportingGroup","buttonOffset","destroyExport","inlineToAttributes","inlineBlacklist","unstyledElements","inlineWhitelist","menu","menuball","renderExporting","isDirtyExporting","toFixedRange","fixedRange","navigatorAxis","previousZoom","vertical","liveRedraw","DOMType","setRange","scrollbarsOffsets","swapXY","_events","scrollbarButtons","scrollbarGroup","scrollbarLeft","scrollbarRifles","scrollbarStrokeWidth","scrollbarTop","track","trackBorderWidth","mouseDownHandler","mouseMoveHandler","mouseUpHandler","buttonToMinClick","buttonToMaxClick","trackClick","DOMEvent","cursorToScrollbarPosition","calculatedWidth","barWidth","drawScrollbarButton","buttonBorderColor","buttonBorderWidth","buttonBackgroundColor","buttonBorderRadius","buttonArrowColor","initPositions","grabbedCenter","trackBorderRadius","trackBackgroundColor","trackBorderColor","barBorderRadius","barBackgroundColor","barBorderColor","barBorderWidth","rifleColor","showFull","Scrollbar","areaspline","maskInside","handles","maskFill","outlineColor","outlineWidth","approximation","groupPixelWidth","smoothed","zoomedMin","zoomedMax","shades","outlineHeight","outline","navigatorSize","navigatorOptions","navigatorGroup","navigatorEnabled","baseSeries","drawHandle","drawOutline","scrollbarHeight","drawMasks","renderElements","fake","maxRange","grabbedLeft","grabbedRight","fixedWidth","addMouseEvents","onMouseMove","getPartsEvents","modifyNavigatorAxisExtremes","shadesMousedown","dragOffset","reversedExtremes","getUnionExtremes","handlesMousedown","otherHandlePos","fixedExtreme","triggerOp","removeBaseSeriesEvents","adaptToUpdatedData","updatedDataHandler","modifyBaseAxisExtremes","setBaseSeries","scrollbarEnabled","scrollbarOptions","breaks","keepOrdinalPadding","updateNavigatorSeries","unbindRedraw","addBaseSeriesEvents","addChartEvents","showInNavigator","padXAxis","hasNavigatorData","getBaseSeriesMin","stickToMin","stickToMax","Navigator","extraBottomMargin","getExtendedPositions","currentDataGrouping","ordinal2lin","destroyGroupedData","getOverscrollPositions","forced","getGroupIntervalFactor","groupIntervalFactor","overscrollPointsRange","segmentStarts","isInBreak","repeat","inclusive","lin2Val","breakArray","val2Lin","findBreakAt","isInAnyBreak","showPoints","setBreaks","unitLength","breakSize","drawBreaks","brk","gapSize","gapUnit","approximations","sum","hasNulls","average","averages","ohlc","getDGApproximation","dataGroupInfo","groupedXData","groupedYData","groupData","spline","arearange","columnrange","candlestick","defaultDataGroupingUnits","hasProcessed","groupAll","getGroupPixelWidth","groupedData","useCommonDataGrouping","setDataGrouping","upColor","plotOpen","plotClose","upLineColor","onSeries","onKey","stackIndex","VMLRenderer","allowOverlapX","stackDistance","raised","_y","buttonTheme","inputPosition","buttonPosition","rangeSelectorZoom","rangeSelectorFrom","rangeSelectorTo","clickButton","_range","forcedDataGrouping","frozenStates","preserveDataGrouping","deferredYTDClick","MIN_VALUE","getYTDExtremes","_offsetMin","_offsetMax","setSelected","rangeSelectorButton","defaultButtons","minInput","maxInput","unMouseDown","unResize","computeButtonRange","updateButtonStates","allButtonsEnabled","offsetMin","offsetMax","setInputValue","previousValue","HCTime","inputEditDateFormat","inputDateFormat","showInput","inputGroup","hideInput","drawInput","inputDateParser","inputBoxWidth","inputBoxHeight","inputBoxBorderColor","inputStyle","onfocus","onblur","onchange","onkeypress","buttonTop","inputTop","inputEnabled","buttonGroup","zoomText","titleCollision","RangeSelector","extraTopMargin","StockChart","_labelPanes","crispPolyLine","crossLabel","setCompare","compareValue","compareBase","compareStart","changeDecimals","is3d"],"mappings":"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","file":"custom-data-chart-wsj-0.8.56.min.js","sourcesContent":["var CustomDataChart_WSJ_0_8_56 =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 218);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js\n//! version : 2.26.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n true ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n __webpack_require__(245)(\"./\" + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.26.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(48)(module)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(42)('wks');\nvar uid = __webpack_require__(28);\nvar Symbol = __webpack_require__(1).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar MAX_4U_WIDTH = exports.MAX_4U_WIDTH = 359;\nvar MAX_NARROW_WIDTH_PRINT = exports.MAX_NARROW_WIDTH_PRINT = 114;\n\nvar LONG = exports.LONG = 'long';\nvar SHORT = exports.SHORT = 'short';\n\nvar REGEXP_QUARTER = exports.REGEXP_QUARTER = /^([1-4]Q|[1-2]H)?\\s*(FY)?['|\\u2019]?(\\d{2,4})/i;\nvar REGEXP_Q_ONLY = exports.REGEXP_Q_ONLY = /^([1-4]Q|[1-2]H)/i;\n\nvar REGEXP_MDY = exports.REGEXP_MDY = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{2,4})\\b/;\nvar REGEXP_MDY_FRED = exports.REGEXP_MDY_FRED = /^(\\d{4})-(\\d{2})-(\\d{2})\\b/;\nvar REGEXP_MD = exports.REGEXP_MD = /^(\\d{1,2})\\/(\\d{1,2})\\b/;\nvar REGEXP_MY = exports.REGEXP_MY = /^(\\d{1,2})\\/(\\d{3,4})\\b/;\nvar REGEXP_Y = exports.REGEXP_Y = /^(\\d{4})\\b/;\nvar REGEXP_TIME = exports.REGEXP_TIME = /\\b(\\d{1,2}):(\\d{1,2})(:\\d{1,2})?(\\s?[a|p]\\.+m\\.+?)?(\\s[a-z]{2,3})?$/i;\n\nvar MONTHS = exports.MONTHS = ['Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.'];\nvar MONTHS_SHORT = exports.MONTHS_SHORT = 'JFMAMJJASOND';\n\nvar CATEGORY = exports.CATEGORY = /\\{category\\}/g;\nvar SERIES = exports.SERIES = /\\{series\\}/g;\nvar VALUE = exports.VALUE = /\\{value\\}/g;\nvar POINT = exports.POINT = /\\{point\\}/g;\nvar SYMBOL = exports.SYMBOL = /\\{symbol\\}/g;\n\n// Because does not work inside SVG.\nvar NBSP = exports.NBSP = '<span style=\"color: rgba(255,255,255,0);\" class=\"space\">.</span>';\n\nvar APOSTROPHE = exports.APOSTROPHE = '’';\n\nvar TRANSPARENT = exports.TRANSPARENT = 'rgba(0, 0, 0, 0)';\n\nvar ANNOTATIONS_SPACE = exports.ANNOTATIONS_SPACE = 4;\nvar ANNOTATIONS_SPACE_PRINT = exports.ANNOTATIONS_SPACE_PRINT = 2;\nvar ANNOTATIONS_LINEHEIGHT = exports.ANNOTATIONS_LINEHEIGHT = 24;\nvar ANNOTATIONS_LINEHEIGHT_VIDEO = exports.ANNOTATIONS_LINEHEIGHT_VIDEO = 42;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _isIterable2 = __webpack_require__(220);\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = __webpack_require__(233);\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(7);\nvar IE8_DOM_DEFINE = __webpack_require__(58);\nvar toPrimitive = __webpack_require__(37);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(9) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(12);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _from = __webpack_require__(240);\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(27)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(1);\nvar core = __webpack_require__(5);\nvar ctx = __webpack_require__(21);\nvar hide = __webpack_require__(11);\nvar has = __webpack_require__(13);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(6);\nvar createDesc = __webpack_require__(22);\nmodule.exports = __webpack_require__(9) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.decimals = decimals;\nexports.commas = commas;\nexports.getDivisor = getDivisor;\nexports.applyFull = applyFull;\nfunction decimals(value, props) {\n var skipZero = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var fd = getMaxDecimalValue(props.forceDecimals);\n var md = getMaxDecimalValue(props.maxDecimals);\n // value = +value;\n value = value.toString();\n if (fd > -1) {\n value = round(value, fd); //value.toFixed(fd);\n if (md > -1 && md < fd) {\n value = round(value, md); //(+value).toFixed(md);\n }\n return value;\n } else if (md > -1) {\n value = round(value, md); //(+value).toFixed(md);\n while (value.substring(value.length - 1) === '0') {\n value = value.substr(0, value.length - 1);\n if (value.substring(value.length - 1) === '.') {\n value = value.substr(0, value.length - 1);\n break;\n }\n }\n }\n return value;\n}\n\nfunction addZeros(num) {\n return new Array(num + 1).join('0');\n}\n\nfunction useFixed(value, places) {\n var rounded = (+value).toFixed(places - 1);\n var decPt = places === 1 ? '.' : '';\n return rounded + decPt + '0';\n}\n\nfunction round(value, places) {\n if (places === 0) return (+value).toFixed(0);\n var decimalIdx = value.indexOf('.');\n if (decimalIdx > -1) {\n var dec = value.slice(decimalIdx + 1);\n var diff = places - dec.length;\n if (diff > 0) {\n return value + addZeros(diff);\n }\n var fixedPlaces = dec.slice(0, places - 1);\n var lastDigit = +dec[places - 1];\n var nextDigit = +dec[places];\n if (nextDigit && nextDigit >= 5) {\n if (lastDigit === 9) {\n return useFixed(value, places);\n } else {\n lastDigit += 1;\n }\n }\n var rounded = fixedPlaces + lastDigit.toString();\n return value.slice(0, decimalIdx + 1) + rounded;\n }\n var zeros = addZeros(places);\n return value + '.' + zeros;\n}\n\nfunction getMaxDecimalValue(value) {\n if (typeof value === 'string' && value) {\n return +value;\n } else if (typeof value === 'number' && !isNaN(value)) {\n return value;\n }\n return -1;\n}\n\nfunction applyMaxDecimals(value, md) {\n var dotIndex = value.indexOf('.');\n if (dotIndex !== -1) {\n var decs = value.length - dotIndex - 1;\n value = (+value).toFixed(md);\n }\n return value;\n}\n\nfunction commas(value) {\n var commas = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n value += '';\n if (commas) {\n var dotIndex = value.indexOf('.');\n if (dotIndex === -1) {\n dotIndex = value.length;\n }\n value = [value.substr(0, dotIndex).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','), value.substr(dotIndex)].join('');\n }\n return value;\n}\n\n// Returns a useful number that corresponds to a divisor string.\nfunction getDivisor(unit) {\n switch (unit) {\n case 'hundreds':\n return 100;\n case 'thousands':\n return 1000;\n case 'millions':\n return 1000000;\n case 'billions':\n return 1000000000;\n case 'trillions':\n return 1000000000000;\n }\n return 1;\n}\n\nfunction applyFull(value, props) {\n var isPie = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var skipZero = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var tooltipOrAnnotation = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var isSpecialHorizontal = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var isStackedPercent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n\n if (value === undefined || value === null) return 'n/a';\n var newProps = Object.assign({}, props);\n if (tooltipOrAnnotation) {\n var splitDecimals = value.toString().split('.');\n splitDecimals = splitDecimals.length > 1 ? splitDecimals[1].length : 0;\n if (Number(splitDecimals) >= 3 && newProps.prefix === '') {\n newProps.forceDecimals = '3';\n }\n if (newProps.prefix !== '') {\n if (newProps.prefix !== undefined) newProps.forceDecimals = splitDecimals > 0 ? '2' : '0';\n } else {\n newProps.forceDecimals = splitDecimals;\n }\n newProps.maxDecimals = '3';\n }\n value = decimals(value, newProps);\n value = commas(value, newProps.commas);\n if (isPie) {\n value += '%';\n }\n if (isSpecialHorizontal) {\n return value;\n }\n\n if (value.charAt(0) === '-') {\n value = newProps.prefix !== undefined ? '-' + newProps.prefix + value.substr(1) : '' + value.substr(1);\n } else {\n value = newProps.prefix !== undefined ? '' + newProps.prefix + value : '' + value;\n }\n if (!isStackedPercent) value += newProps.suffix;\n return value;\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.removeChild = removeChild;\nexports.boldText = boldText;\nexports.replaceLineBreaks = replaceLineBreaks;\nfunction removeChild(el, parentEl) {\n parentEl = parentEl || el.parentElement;\n if (parentEl) {\n parentEl.removeChild(el);\n }\n}\n\nfunction boldText() {\n var bold = false;\n return function (str, openTag, closeTag) {\n var startIdx = 0;\n var asteriskIdx = void 0;\n var newStr = bold ? openTag : '';\n while ((asteriskIdx = str.indexOf('**', startIdx)) !== -1) {\n newStr += str.substring(startIdx, asteriskIdx) + (bold ? closeTag : openTag);\n bold = !bold;\n startIdx = asteriskIdx + 2;\n }\n return newStr + str.substring(startIdx) + (bold ? closeTag : '');\n };\n}\n\nfunction replaceLineBreaks(text) {\n return text.replace(/[\\n|\\r|↵]/g, '<br>');\n}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(225);\nvar defined = __webpack_require__(35);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.read = read;\nexports.write = write;\nvar regExpD = /(M|L|(\\-?\\d+\\.?\\d*))/gi;\nvar regExpTranslate = /(.*)(translate\\()(\\-?\\d+\\.?\\d*),(\\-?\\d+\\.?\\d*)(.*)/;\nvar regExpScale = /(.*)(scale\\()(\\-?\\d+\\.?\\d*),(\\-?\\d+\\.?\\d*)(.*)/;\n\nfunction read(el, prop, value) {\n var match = null;\n switch (prop) {\n case 'd':\n match = (value || getD(el)).match(regExpD);\n return match ? formatDMatch(match) : null;\n case 'translate':\n match = (value || getTransform(el)).match(regExpTranslate);\n return match ? [+match[3], +match[4]] : null;\n case 'scale':\n match = (value || getTransform(el)).match(regExpScale);\n return match ? [+match[3], +match[4]] : null;\n default:\n return el;\n }\n}\n\nfunction write(el, prop) {\n switch (prop) {\n case 'd':\n writeD.apply(this, arguments);\n break;\n case 'translate':\n writeTranslate.apply(this, arguments);\n break;\n case 'scale':\n writeScale.apply(this, arguments);\n break;\n }\n return el;\n}\n\nfunction writeD(el) {\n var d = [];\n for (var i = 2; i < arguments.length; i++) {\n d.push(i === 2 ? 'M' : 'L');\n d.push(arguments[i][0]);\n d.push(arguments[i][1]);\n }\n el.setAttribute('d', d.join(' '));\n}\n\nfunction writeTranslate(el) {\n var oldTransform = el.getAttribute('transform');\n var newTransform = null;\n var match = oldTransform ? oldTransform.match(regExpTranslate) : null;\n if (match) {\n newTransform = [match[1], match[2], Math.round(typeof arguments[2] === 'number' ? arguments[2] : +match[3]), ',', Math.round(typeof arguments[3] === 'number' ? arguments[3] : +match[4]), match[5]].join('');\n } else {\n newTransform = [oldTransform ? oldTransform + ' ' : '', 'translate(', Math.round(typeof arguments[2] === 'number' ? arguments[2] : 0), ',', Math.round(typeof arguments[3] === 'number' ? arguments[3] : 0), ')'].join('');\n }\n setTimeout(function () {\n // Firefox bug(?). This was not setting without this timeout.\n el.setAttribute('transform', newTransform);\n }, 1);\n el.setAttribute('transform', newTransform);\n}\n\nfunction writeScale(el) {\n var oldTransform = el.getAttribute('transform');\n var newTransform = null;\n var match = oldTransform ? oldTransform.match(regExpScale) : null;\n if (match) {\n newTransform = [match[1], match[2], typeof arguments[2] === 'number' ? arguments[2] : match[3], ',', typeof arguments[3] === 'number' ? arguments[3] : match[4], match[5]].join('');\n } else {\n newTransform = [oldTransform ? oldTransform + ' ' : '', 'scale(', typeof arguments[2] === 'number' ? arguments[2] : 0, ',', typeof arguments[3] === 'number' ? arguments[3] : 0, ')'].join('');\n }\n el.setAttribute('transform', newTransform);\n}\n\nfunction formatDMatch(match) {\n var points = [];\n var pt = [];\n match.forEach(function (m) {\n if (m !== 'M' && m !== 'L') {\n pt.push(+m);\n if (pt.length >= 2) {\n points.push([pt[0], pt[1]]);\n pt = [];\n }\n }\n });\n return points;\n}\n\nfunction getD(el) {\n return el.getAttribute('d') || '';\n}\n\nfunction getTransform(el) {\n return el.getAttribute('transform') || '';\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = true;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(26);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(231)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(57)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.isVerticalType = isVerticalType;\nexports.forAxisTicks = forAxisTicks;\nexports.forAxisTicksReverse = forAxisTicksReverse;\nexports.dashStylesHelper = dashStylesHelper;\nexports.roundLineJoinsHelper = roundLineJoinsHelper;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Returns true if the chart type has axes in the style of a column chart.\nfunction isVerticalType(type) {\n return type === 'line' || type === 'column' || type === 'area' || type === 'scatter';\n}\n\n// Convenience utility function for looping through the ticks on an axis,\n// which is necessary a million times in this module.\nfunction forAxisTicks(axis, callback) {\n for (var i = 0; i < axis.tickPositions.length; i++) {\n var tick = axis.ticks[axis.tickPositions[i]];\n if (callback(tick, axis.tickPositions[i], i) === false) {\n break;\n }\n }\n}\n\n// Like forAxisTicks() but runs in reverse (index high to low).\nfunction forAxisTicksReverse(axis, callback) {\n for (var i = axis.tickPositions.length - 1; i >= 0; i--) {\n var tick = axis.ticks[axis.tickPositions[i]];\n if (callback(tick, axis.tickPositions[i], i) === false) {\n break;\n }\n }\n}\n\nfunction dashStylesHelper(path, size) {\n var dashArray = path.getAttribute('stroke-dasharray');\n if (dashArray !== 'none') {\n var _ref = size === 'print-wsj' ? [1.5, 3] : [2.5, 5],\n _ref2 = (0, _slicedToArray3.default)(_ref, 2),\n width = _ref2[0],\n gap = _ref2[1];\n\n path.setAttribute('stroke-width', width);\n path.setAttribute('stroke-dasharray', '0.1,' + gap);\n path.setAttribute('stroke-linecap', 'round');\n }\n}\n\nfunction roundLineJoinsHelper(path, isVideoGroup) {\n var linejoin = isVideoGroup ? 'round' : 'bevel';\n path.setAttribute('stroke-linejoin', linejoin);\n if (isVideoGroup) {\n path.setAttribute('stroke-linecap', 'round');\n }\n}\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(222);\nvar global = __webpack_require__(1);\nvar hide = __webpack_require__(11);\nvar Iterators = __webpack_require__(16);\nvar TO_STRING_TAG = __webpack_require__(2)('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(6).f;\nvar has = __webpack_require__(13);\nvar TAG = __webpack_require__(2)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _zero = __webpack_require__(31);\n\nvar _constants = __webpack_require__(3);\n\nvar _dateutils = __webpack_require__(63);\n\nvar _quarterly = __webpack_require__(236);\n\nvar quarterly = _interopRequireWildcard(_quarterly);\n\nvar _lodash = __webpack_require__(32);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// let DEBUG = false;\n\n/**\n * Converts/parses an array of category strings into objects with date and\n * time properties.\n * TODO: explains @params\n * @returns {datetimeTemplate[]}\n */\nfunction parse(categories, options) {\n var dates = [];\n var timezone = null;\n var category0 = categories[0].toString();\n var isQuarterlyString = !!category0.match(_constants.REGEXP_Q_ONLY);\n categories.forEach(function (category, index) {\n dates[index] = components(category, timezone, options, isQuarterlyString);\n timezone = dates[index].z;\n });\n\n if (options) {\n dates = options.fiscalYears ? quarterly.makeFiscalYears(dates) : quarterly.removeFiscalYears(dates);\n dates = options.quarterlyResults ? quarterly.makeQuarterly(dates) : quarterly.removeQuarterly(dates);\n }\n\n dates = quarterly.normalize(dates);\n dates = generateValues(dates);\n dates = removeExtraneousComponents(dates);\n return dates;\n}\n\n/**\n * Breaks a single category value into an object with date/time components.\n */\n/**\n * Datetime is a module with methods that parse date strings into discrete\n * components (years, months, hours, etc).\n * TODO: Write unit tests.\n */\nfunction components(value, timezone, options, isQuarterlyString) {\n value += '';\n var result = datetimeTemplate();\n componentsDate(value, result, options, isQuarterlyString);\n componentsTime(value, result, timezone);\n if (!result.hour) {\n var newDate = new Date(result.year, result.month, result.date, 0, 0, 0, 0).getTime();\n result.value = newDate;\n }\n return result;\n}\n\n/**\n * @private\n * For use with components().\n */\nfunction componentsDate(value, result, options) {\n var isQuarterlyString = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n var match = null;\n if (isQuarterlyString) {\n match = value.match(_constants.REGEXP_QUARTER);\n match = match || value.match(_constants.REGEXP_Q_ONLY) || [];\n result.quarter = (0, _dateutils.getQuarter)(match[1]);\n result.half = (0, _dateutils.getHalf)(match[1]);\n result.month = (0, _dateutils.quarterToMonth)(match[1]);\n result.date = (0, _dateutils.quarterToDate)(result.month);\n result.fiscalYear = !!match[2];\n result.year = match[3] ? +match[3] : undefined;\n } else if (match = value.match(_constants.REGEXP_MDY)) {\n writeDateMonth(result, match, options.reverseDateMonth);\n result.year = +(0, _dateutils.fullYear)(match[3]);\n } else if (match = value.match(_constants.REGEXP_MDY_FRED)) {\n result.year = +match[1];\n result.month = Math.max(0, +match[2] - 1);\n result.date = +match[3];\n } else if (match = value.match(_constants.REGEXP_MD)) {\n writeDateMonth(result, match, options.reverseDateMonth);\n } else if (match = value.match(_constants.REGEXP_MY)) {\n result.month = +match[1] - 1;\n result.year = +(0, _dateutils.fullYear)(match[2]);\n } else if (match = value.match(_constants.REGEXP_Y)) {\n result.year = +(0, _dateutils.fullYear)(match[1]);\n }\n}\n\nfunction writeDateMonth(result, match, reverseDateMonth) {\n if (reverseDateMonth) {\n result.month = +match[2] - 1;\n result.date = +match[1];\n } else {\n result.month = +match[1] - 1;\n result.date = +match[2];\n }\n}\n\n/**\n * @private\n * For use with components().\n */\nfunction componentsTime(value, result) {\n var timezone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var _value$split = value.split(' '),\n _value$split2 = (0, _slicedToArray3.default)(_value$split, 3),\n date = _value$split2[0],\n time = _value$split2[1],\n ampm = _value$split2[2];\n\n if (!time) return result;\n\n var _time$split = time.split(':'),\n _time$split2 = (0, _slicedToArray3.default)(_time$split, 3),\n hours = _time$split2[0],\n minutes = _time$split2[1],\n seconds = _time$split2[2];\n\n if (!minutes) return result;\n result.hour = +hours;\n result.minute = +minutes;\n result.second = +seconds;\n result.a = ampm;\n result.hour %= 12;\n if (result.a === 'p') {\n result.hour += 12;\n }\n // const match = value.match(REGEXP_TIME);\n // if (match) {\n // // Capture time values.\n // result.hour = +match[1];\n // result.minute = +match[2];\n // result.second = match[3] ? +match[3].substr(1) : undefined;\n // result.a = match[4] ?\n // match[4].replace(/^\\s+/, '').substr(0, 1).toLowerCase() : undefined;\n // result.z = match[5] ? match[5].substr(1) : timezone;\n // // Convert to 24-hour clock.\n // if (!result.a) {\n // result.a = (result.hour < 12) ? 'a' : 'p';\n // }\n // result.hour %= 12;\n // if (result.a === 'p') {\n // result.hour += 12;\n // }\n // }\n // return result;\n}\n\n/**\n * @param {datetimeTemplate[]} dates\n * @param {string} prop\n * @return {boolean} true if all dates have a value for prop.\n */\nfunction allHave(dates, prop) {\n return dates.length !== 0 && !dates.some(function (date) {\n return prop === 'fiscalYear' && !date.fiscalYear || date[prop] === undefined;\n });\n}\n\n/**\n * @param {datetimeTemplate[]} dates\n * @returns {boolea} true if all date objects represent valid dates.\n */\nfunction allValidDates(dates) {\n return !dates.some(function (d) {\n return d.second === undefined && d.minute === undefined && d.hour === undefined && d.date === undefined && d.month === undefined && d.year === undefined;\n });\n}\n\n/**\n * @param {datetimeTemplate[]} dates\n * @returns {object} with true/false for each date/time property depending\n * on whether all dates have a value for each property.\n */\nfunction all(dates) {\n var obj = datetimeTemplate();\n Object.keys(obj).forEach(function (key) {\n obj[key] = allHave(dates, key);\n });\n return obj;\n}\n\n/**\n * @param {datetimeTemplate[]} dates\n * @returns {boolean} true if all dates have a value for `quarter` or `half`.\n */\nfunction allQuarterly(dates) {\n return dates.every(function (item) {\n return item.quarter || item.half;\n });\n}\n\n/**\n * @returns {object} with keys for all the properties useful in the charts\n * tool, each set to undefined or false.\n */\nfunction datetimeTemplate() {\n return {\n z: undefined,\n a: undefined,\n second: undefined,\n minute: undefined,\n hour: undefined,\n date: undefined,\n month: undefined,\n year: undefined,\n value: undefined,\n fiscalYear: false,\n quarter: undefined,\n half: undefined\n };\n}\n\n/**\n * Remove values that repeat for all dates and therefore are superfluous.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} Copy of dates if altered; original dates if\n * unaltered.\n */\nfunction removeExtraneousComponents(dates) {\n var common = all(dates);\n if (common.month && common.date) {\n // && !common.year) {\n dates = removeExtraneous(dates, 'date');\n }\n if (common.month && common.year) {\n dates = removeExtraneousMD(dates);\n }\n if (common.hour && common.minute) {\n dates = removeExtraneous(dates, 'minute');\n }\n if (common.minute && common.second) {\n dates = removeExtraneous(dates, 'seconds');\n }\n return dates;\n}\n\n/**\n * Often dates are in the format Jan 1 YYYY, where Jan 1 repeats for *all*\n * rows but the years increment. In this special case, the month and date\n * should be disregarded. Also works if months but no dates are specificed;\n * e.g. 1/2000, 1/2001, etc.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} Copy of dates if altered; original dates if\n * unaltered.\n */\nfunction removeExtraneousMD(dates) {\n var datesCopy = [];\n var month = undefined;\n var date = undefined;\n var year = undefined;\n for (var i = 0; i < dates.length; i++) {\n var d = (0, _lodash2.default)({}, dates[i]);\n if (i === 0) {\n month = d.month;\n date = d.date;\n year = d.year;\n } else if (d.month !== month || d.date !== date) {\n return dates;\n } else if (d.year <= year) {\n return dates;\n }\n year = d.year;\n d.month = d.date = undefined;\n datesCopy[i] = d;\n }\n return datesCopy;\n}\n\n/**\n * Removes values (such as seconds, minutes, or dates) when the values are the\n * same for each and every date.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} Copy of dates if altered; original dates if\n * unaltered.\n */\nfunction removeExtraneous(dates, prop) {\n var datesCopy = [];\n var propVal = undefined;\n var value = undefined;\n var genericVal = (0, _dateutils.genericTimeValue)(prop);\n for (var i = 0; i < dates.length; i++) {\n var d = (0, _lodash2.default)({}, dates[i]);\n if (i === 0) {\n // Set initial values to compare to.\n propVal = d[prop];\n value = d.value;\n } else if (Math.abs(d.value - value) < genericVal) {\n // Values do not increment.\n return dates;\n } else if (d[prop] !== propVal) {\n // Values are not all the same and therefor not extraneous.\n return dates;\n }\n value = d.value;\n d[prop] = undefined;\n datesCopy[i] = d;\n }\n return datesCopy;\n}\n\n/**\n * Sets a value in milliseconds for each datetime object.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]}\n */\nfunction generateValues(dates) {\n dates.forEach(function (date) {\n date.value = getValue(date);\n });\n return dates;\n}\n\n/**\n * @private\n * @param {datetimeTemplate}\n * @returns {number} value in milliseconds\n */\nfunction getValue(date) {\n var d = new Date(new Date().getUTCFullYear(), 0, 1, 0, 0, 0, 0);\n\n if (isDef(date.year) && isDef(date.month) && isDef(date.date)) {\n d.setUTCFullYear(date.year, date.month, date.date);\n } else if (isDef(date.year) && isDef(date.month)) {\n d.setUTCFullYear(date.year, date.month);\n } else if (isDef(date.year)) {\n d.setUTCFullYear(date.year, 0);\n } else if (isDef(date.month) && isDef(date.date)) {\n d.setUTCMonth(date.month, date.date);\n } else if (isDef(date.month)) {\n d.setUTCMonth(date.month);\n } else if (isDef(date.date)) {\n d.setUTCDate(date.date);\n }\n\n if (isDef(date.hour) && isDef(date.minute) && isDef(date.second)) {\n d.setUTCHours(date.hour, date.minute, date.second);\n } else if (isDef(date.hour) && isDef(date.minute)) {\n d.setUTCHours(date.hour, date.minute);\n } else if (isDef(date.hour)) {\n d.setUTCHours(date.hour);\n } else if (isDef(date.minute) && isDef(date.second)) {\n d.setUTCMinutes(date.minute, date.second);\n } else if (isDef(date.minute)) {\n d.setUTCMinutes(date.minute);\n } else if (isDef(date.second)) {\n d.setUTCSeconds(date.second);\n } else {\n d.setUTCHours(0, 0, 0);\n }\n\n return d.valueOf();\n}\n\nfunction isDef(value) {\n return value !== undefined;\n}\n\n/**\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} dates sorted by value\n */\n// function sortDates(dates) {\n// return dates.sort((a, b) => {\n// if (a.value === undefined || b.value === undefined) {\n// return 0;\n// }\n// return a.value - b.value;\n// });\n// }\n\n\n// Not used in this module but is used by the app/client.\n// @returns {boolean} true is @param str is a quartlery date value.\nfunction isQuarterlyString(str) {\n return _constants.REGEXP_Q_ONLY.test(str);\n}\n\nexports.default = {\n parse: parse,\n components: components,\n allHave: allHave,\n all: all,\n allQuarterly: allQuarterly,\n stripZeroes: _zero.stripZeroes,\n addZeroes: _zero.addZeroes,\n allValidDates: allValidDates,\n datetimeTemplate: datetimeTemplate,\n isQuarterlyString: isQuarterlyString\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stripZeroes = stripZeroes;\nexports.addZeroes = addZeroes;\n// Utility to transform '002' to '2'.\nfunction stripZeroes(value) {\n value += '';\n while (value[0] === '0') {\n value = value.substr(1);\n }\n return value;\n}\n\n// Utility to transform '2' to '002'.\nfunction addZeroes(value, len) {\n value += '';\n while (value.length > len) {\n if (value.charAt(0) === '0') {\n value = value.substr(1);\n } else {\n break;\n }\n }\n while (value.length < len) {\n value = '0' + value;\n }\n return value;\n}\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.renderInvalidatedColors = renderInvalidatedColors;\n// TODO: Check if this can be re-enabled with newer version of Highcharts.\nfunction renderInvalidatedColors(rendered, invalidated) {\n // This is no longer applied because of issues with hover states not being\n // updated. Instead, on color change, entire chart is re-rendered.\n if (false) {\n // const colors = (function (invalidated) {\n // return invalidated.filter(item => {\n // return item.indexOf('chart/colors') === 0;\n // });\n // })(invalidated);\n //\n // const updatePointColor = function (dataPoint, color) {\n // const el = (dataPoint && dataPoint.graphic) ? dataPoint.graphic.element : null;\n // if (el) {\n // el.setAttribute('fill', color);\n // }\n // };\n //\n // const updateLegendColor = function (render, index, color) {\n // const items = render.container.querySelectorAll('.highcharts-legend-item');\n // if (items && items.length) {\n // const text = items[index].querySelector('text');\n // text.style.color = text.style.fill = color;\n // }\n // }\n //\n // if (colors.length) {\n // colors.forEach(item => {\n // const bits = item.split('/');\n // const series = +bits[2];\n // const point = bits[3];\n // const color = bits[4];\n // const chartSeries = rendered.inner.series[series];\n // let dataPoint = null;\n // let el = null;\n //\n // if (chartSeries) {\n // // if (point.indexOf('#') === 0) {\n // // updateLegendColor(rendered.inner, series, point);\n // // Color for entire series.\n // // chartSeries.color = point;\n // // Setting render to true re-renders *everything* while false makes\n // // the lines and legend vanish (if it supposedly does not re-render,\n // // then like wtf?).\n // // chartSeries.update({ color: point }, true);\n //\n // if (chartSeries.graph) {\n // // Line charts.\n // chartSeries.graph.element.setAttribute('stroke', color);\n // } else {\n // // Bar, column, pie charts.\n // if (point === '*') {\n // chartSeries.data.forEach(dataPoint => {\n // updatePointColor(dataPoint, color);\n // });\n // } else {\n // //originalIndex\n // let ptIndex = +point;\n // if (rendered.inner.options.chart.type === 'pie') {\n // // Find the correct index if the data has been optimized.\n // for (let i = 0; i < chartSeries.data.length; i++) {\n // if (!chartSeries.data[i].hasOwnProperty('originalIndex')) {\n // break;\n // }\n // if (chartSeries.data[i].originalIndex === ptIndex) {\n // ptIndex = i;\n // break;\n // }\n // }\n // }\n // dataPoint = chartSeries ? chartSeries.data[ptIndex] : null;\n // updatePointColor(dataPoint, color);\n // }\n // }\n // }\n // });\n // }\n }\n}\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(12);\nvar document = __webpack_require__(1).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(12);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(61);\nvar enumBugKeys = __webpack_require__(43);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(40);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(42)('keys');\nvar uid = __webpack_require__(28);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(5);\nvar global = __webpack_require__(1);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(20) ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(35);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(19);\nvar TAG = __webpack_require__(2)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(45);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar Iterators = __webpack_require__(16);\nmodule.exports = __webpack_require__(5).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.seriesDefaults = exports.dataDefaults = exports.TIMETYPES = exports.FREQUENCY = exports.RANGE = exports.MORE_TICKERS = undefined;\n\nvar _moment = __webpack_require__(0);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MORE_TICKERS = exports.MORE_TICKERS = {\n 'Oil Futures': [{ name: 'Crude Oil', symbol: 'Crude%20Oil%20-%20Electronic' }, { name: 'Brent Crude', symbol: 'BRENT%20CRUDE' }],\n Currencies: [{ name: 'USD/EUR', symbol: 'USDEUR' }, { name: 'USDJPY', symbol: 'USDJPY' }, { name: 'WSJ DollarIdx', symbol: 'XX:BUXX' }],\n Bonds: [{ name: '10 Year Yield', symbol: 'BX:TMUBMUSD10Y' }],\n 'Foreign Indexes': [{ name: 'Stoxx Europe 600', symbol: 'XX:SXXP' }, { name: 'Nikkei IDX', symbol: 'JP:NIK' }, { name: 'HANG SENG INDEX', symbol: 'HK:HSI' }, { name: 'Shanghai Comp', symbol: 'CN:SHCOMP' }, { name: 'Shenzhen', symbol: 'CN:399106' }]\n};\n\nvar RANGE = exports.RANGE = {\n '1D': { value: 'D1', start: 'PT1M', end: 'PT1H', default: 'PT5M' },\n '2D': { value: 'D2', start: 'PT1M', end: 'PT1H', default: 'PT5M' },\n '3D': { value: 'D3', start: 'PT1M', end: 'PT1H', default: 'PT5M' },\n '4D': { value: 'D4', start: 'PT1M', end: 'PT1H', default: 'PT10M' },\n '5D': { value: 'D5', start: 'PT1M', end: 'P1D', default: 'PT10M' },\n '10D': { value: 'D10', start: 'PT1M', end: 'P1D', default: 'PT15M' },\n '1M': { value: 'P29D', start: 'P1D', end: 'P7D', default: 'P1D' },\n '3M': { value: 'P3M', start: 'P1D', end: 'P1M', default: 'P1D' },\n '6M': { value: 'P6M', start: 'P1D', end: 'P3M', default: 'P1D' },\n 'YTD': { value: 'YTD', start: 'P1D', end: 'P1M', default: 'P1D' },\n '1Y': { value: 'P1Y', start: 'P1D', end: 'P3M', default: 'P1D' },\n '2Y': { value: 'P2Y', start: 'P1D', end: 'P1Y', default: 'P7D' },\n '3Y': { value: 'P3Y', start: 'P1D', end: 'P1Y', default: 'P7D' },\n '5Y': { value: 'P5Y', start: 'P1D', end: 'P1Y', default: 'P1M' },\n '10Y': { value: 'P10Y', start: 'P1D', end: 'P1Y', default: 'P3M' },\n 'All': { value: 'all', start: 'P1D', end: 'P1Y', default: 'P3M' },\n 'Custom': { value: 'custom' }\n};\n\nvar FREQUENCY = exports.FREQUENCY = [{ value: 'PT1M', text: '1 min' }, { value: 'PT5M', text: '5 min' }, { value: 'PT10M', text: '10 min' }, { value: 'PT15M', text: '15 min' }, { value: 'PT1H', text: 'Hourly' }, { value: 'P1D', text: 'Daily' }, { value: 'P7D', text: 'Weekly' }, { value: 'P1M', text: 'Monthly' }, { value: 'P3M', text: 'Quarterly' }, { value: 'P1Y', text: 'Yearly' }];\n\nvar D = 1000 * 60 * 60 * 24;\nvar M = D * 30;\nvar Y = D * 365;\n\nvar TIMETYPES = exports.TIMETYPES = { D: D, M: M, Y: Y };\n\nvar dataDefaults = exports.dataDefaults = {\n markdown: '{series}',\n showInLegend: true,\n line: 'solid'\n};\n\nvar seriesDefaults = exports.seriesDefaults = {\n firstRowAsNames: false,\n firstColumnAsCategories: false,\n categoriesAreDates: true\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkArticle = checkArticle;\n/**\n * Functions and vars shared between axes-prerender and axes-postrender.\n */\nvar YEAR_MILLISECONDS = exports.YEAR_MILLISECONDS = 1000 * 60 * 60 * 24 * 365;\n\nfunction checkArticle(id, product) {\n switch (product) {\n case 'wsj':\n return id.slice(-1) === 'u' || id === 'preview' || id.toLowerCase().includes('video');\n case 'barrons':\n return id.slice(-1) === 'u' || id.includes('inset');\n case 'financialnews':\n return id.slice(-1) === 'u' || id.includes('inset') || id === 'preview';\n case 'marketwatch':\n case 'mansionglobal':\n return id.includes('inset');\n default:\n return true;\n }\n}\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.default = processSeries;\nexports.checkForceLegendTop = checkForceLegendTop;\nexports.convertToRGBA = convertToRGBA;\nexports.truncateData = truncateData;\n\nvar _constants = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Processes and build the chart series data.\n */\n\nfunction processSeries(options) {\n // Prepare series for Highcharts.\n options.originalSeries = options.series.map(function (currentSeries) {\n return currentSeries.data.map(function (data) {\n return Object.assign({}, data);\n });\n });\n var liveMarketData = options.liveMarketData;\n\n var data = options.series.map(function (item) {\n var name = item.name,\n symbol = item.symbol,\n decimals = item.decimals,\n prefix = item.prefix,\n suffix = item.suffix,\n markdown = item.markdown,\n showInLegend = item.showInLegend,\n tickerType = item.tickerType;\n\n var series = {\n zoneAxis: options.type === 'line' ? 'x' : 'y',\n zones: getZones(options, item.data, item.color),\n zIndex: getZIndex(liveMarketData, tickerType),\n data: item.data,\n name: name,\n symbol: symbol,\n decimals: decimals,\n prefix: prefix,\n suffix: suffix,\n step: options.step ? 'left' : null,\n markdown: markdown,\n showInLegend: showInLegend,\n animation: false,\n color: item.color || options.defaults.colors[0],\n fillColor: options.type === 'area' && item.color === 'rgba(0, 0, 0, 0)' ? 'rgba(0,0,0,0)' : null,\n dashStyle: options.step || item.dashStyle !== 'dotted' ? 'solid' : 'dot',\n negativeColor: options.colorMode === 'THRESHOLD' && (options.type === 'column' || options.type === 'bar') ? item.negativeColor || options.defaults.colors[1] : null,\n events: {\n legendItemClick: function legendItemClick() {\n return false;\n }\n },\n turboThreshold: 0,\n states: {\n hover: {\n enabled: options.type === 'line'\n },\n inactive: {\n enabled: false\n }\n }\n };\n return series;\n });\n if (options.categoriesAreMonthly && options.type === 'column') {\n startOfMonth(data);\n }\n // Customize the data for the particular chart type.\n switch (options.type) {\n case 'pie':\n data = data.slice(0, 1);\n break;\n case 'bar':\n // Save data to do this later, when options.styles.lineHeight is known.\n // return truncateData(options, data);\n options.series = data; //sortData(data, options);\n return options;\n case 'column':\n var forceLegendTop = checkForceLegendTop(options);\n var rightLegend = options.legend.layout === 'right' || options.legend.layout === 'default' && !forceLegendTop;\n var reverseLegend = needsReverseLegend(rightLegend, data);\n data = options.stacking ? reverseDataOrder(data, reverseLegend) : data;\n break;\n case 'line':\n data = handleLineData(data, options);\n break;\n }\n\n options.series = data; //sortData(data, options);\n for (var i = 0; i < options.series.length; i++) {\n var seriesData = options.series[i].data;\n for (var z = 0; z < seriesData.length; z++) {\n seriesData[z].index = z;\n }\n }\n return options;\n}\n\nfunction checkForceLegendTop(options) {\n return options.id === 'video' || options.id === 'twitterVideo' || options.legend.layout === 'default' && (options.print && options.width <= _constants.MAX_NARROW_WIDTH_PRINT || !options.print && options.width <= _constants.MAX_4U_WIDTH);\n}\n\nfunction convertToRGBA(color) {\n var opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n\n var rgb = '';\n for (var i = 1; i <= 5; i += 2) {\n rgb += parseInt(color.slice(i, i + 2), 16) + ',';\n }\n var percent = opacity / 100;\n return 'rgba(' + rgb + percent + ')';\n}\n\nfunction needsReverseLegend(rightLegend, data) {\n var lastSeriesFirstValue = data[data.length - 1].data[0].y;\n var isNegative = lastSeriesFirstValue < 0;\n return rightLegend && !isNegative;\n}\n\nfunction getZIndex(liveMarketData, tickerType) {\n if (liveMarketData) {\n return tickerType === 'Index' ? 1 : 2;\n }\n}\n\nfunction getZones(options, data, seriesColor) {\n if (options.type === 'line' && options.connectEmptyDataPoints === 'dotted') {\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var hasData = data[0].y !== null;\n return data.map(function (point, index) {\n if (hasData && point.y === null || !hasData && point.y !== null) {\n var _ref = hasData ? [1, 'solid', seriesColor] : noDataOptions(isVideoGroup, seriesColor),\n _ref2 = (0, _slicedToArray3.default)(_ref, 3),\n offset = _ref2[0],\n dashStyle = _ref2[1],\n color = _ref2[2];\n\n var value = data[index - offset].x;\n hasData = !hasData;\n return { value: value, dashStyle: dashStyle, color: color };\n }\n }).filter(function (zone) {\n return zone;\n });\n }\n}\n\nfunction noDataOptions(isVideoGroup, seriesColor) {\n var attrs = isVideoGroup ? ['solid', convertToRGBA(seriesColor, 50)] : ['dot', seriesColor];\n return [0].concat(attrs);\n}\n\n// For line charts, first column should be top layer. This also reverses the\n// legend items, so that must be fixed separately.\nfunction reverseDataOrder(data) {\n var reverseLegend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var dataLen = data.length;\n data.forEach(function (item, index) {\n item.index = dataLen - index - 1;\n item.legendIndex = reverseLegend ? dataLen - index - 1 : index;\n });\n return data;\n}\n\nfunction handleLineData(data, options) {\n reverseDataOrder(data);\n if (options.legend.itemsInOrder === undefined) {\n //sets default for 'market' charts\n //keeps old econ charts as they were\n if (options.tickers.length) options.legend.itemsInOrder = true;\n //everything else\n else options.legend.itemsInOrder = false;\n }\n //if legend is right aligned, always order items by final value, if itemsInOrder toggled on, switch order for 'top' aligned items\n if (options.legend.layout === 'default' && !checkForceLegendTop(options) || options.legend.layout === 'right') {\n setLengendItemsOrder(data);\n } else if (options.legend.itemsInOrder && (checkForceLegendTop(options) || options.legend.layout === 'top')) {\n setLengendItemsOrder(data);\n }\n return data;\n}\n\nfunction setLengendItemsOrder(series) {\n //array sorted by lastValue of each series in descending order [{seriesIdx, lastValue}]\n var sortedArr = series.reduce(function (accum, s, idx) {\n //noticed that sometimes last value comes as null\n for (var i = 1; i < s.data.length; i++) {\n if (s.data[s.data.length - i].y !== null && s.data[s.data.length - i].y) {\n accum.push({ seriesIdx: idx, lastValue: s.data[s.data.length - i].y });\n break;\n }\n }\n return accum;\n }, []).sort(function (a, b) {\n return b.lastValue - a.lastValue;\n });\n //updates order of legend items\n sortedArr.forEach(function (s, i) {\n series[s.seriesIdx].legendIndex = i;\n });\n}\n\nfunction startOfMonth(data) {\n // for column charts with one date per month, shift x value to first of month\n data.forEach(function (series) {\n series.data.forEach(function (position) {\n var date = new Date(position.x);\n date.setUTCDate(1);\n position.x = date.valueOf();\n });\n });\n}\n\n// For horizontal bar charts, removes data to improve visual appearance.\nfunction truncateData(options, data) {\n // Guestimate the maximum data rows that will fit.\n var maxRows = Math.floor(options.height / (parseFloat(options.styles.lineHeight.large) * 1.5));\n // Remove data so rows does not exceed maxRows.\n var overflow = Math.ceil(data[0].data.length / maxRows);\n var originalCategories = options.categories ? options.categories.slice() : null;\n var categories = [];\n if (overflow > 1) {\n data.forEach(function (item, index) {\n var items = [];\n var n = 0;\n while (n < item.data.length) {\n if (index === 0 && options.categories) {\n categories.push(originalCategories[n]);\n options.categories = categories;\n }\n items.push(item.data[n]);\n n += overflow;\n }\n item.data = items;\n });\n }\n options.series = data;\n return options;\n}\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports.f = __webpack_require__(2);\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(1);\nvar core = __webpack_require__(5);\nvar LIBRARY = __webpack_require__(20);\nvar wksExt = __webpack_require__(51);\nvar defineProperty = __webpack_require__(6).f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.arrowWidth = arrowWidth;\nexports.findOffset = findOffset;\nexports.getHeight = getHeight;\nfunction preRender(data, options) {\n var refX = findOffset(options);\n var width = arrowWidth(options.print);\n var midpoint = width / 2;\n var height = getHeight(width, midpoint);\n data.defs.marker0 = {\n tagName: 'marker',\n id: 'custom-arrow',\n refY: midpoint,\n refX: refX,\n children: [{\n tagName: 'path',\n d: 'M 0 0 L ' + height + ' ' + midpoint + ' L 0 ' + width + ' Z'\n }]\n };\n}\n\nfunction arrowWidth(print) {\n return print ? 3.5 : 6.5;\n}\n\nfunction findOffset(options) {\n var print = options.print,\n product = options.product;\n\n var printOffset = print ? 4.25 : 8.5;\n var productOffset = product === 'wsj' ? 4 : 0;\n return printOffset + productOffset;\n}\n\nfunction getHeight(width, midpoint) {\n return Math.sqrt(width * width - midpoint * midpoint);\n}\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = __webpack_require__(26);\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*\n Highcharts JS v8.1.0 (2020-05-05)\n\n (c) 2009-2018 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(X,Q){\"object\"===typeof module&&module.exports?(Q[\"default\"]=Q,module.exports=X.document?Q(X):Q): true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return Q(X)}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):(X.Highcharts&&X.Highcharts.error(16,!0),X.Highcharts=Q(X))})(\"undefined\"!==typeof window?window:this,function(X){function Q(d,f,E,q){d.hasOwnProperty(f)||(d[f]=q.apply(null,E))}var A={};Q(A,\"parts/Globals.js\",[],function(){var d=\"undefined\"!==typeof X?X:\"undefined\"!==typeof window?window:{},f=d.document,\nE=d.navigator&&d.navigator.userAgent||\"\",q=f&&f.createElementNS&&!!f.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect,M=/(edge|msie|trident)/i.test(E)&&!d.opera,K=-1!==E.indexOf(\"Firefox\"),J=-1!==E.indexOf(\"Chrome\"),L=K&&4>parseInt(E.split(\"Firefox/\")[1],10);return{product:\"Highcharts\",version:\"8.1.0\",deg2rad:2*Math.PI/360,doc:f,hasBidiBug:L,hasTouch:!!d.TouchEvent,isMS:M,isWebKit:-1!==E.indexOf(\"AppleWebKit\"),isFirefox:K,isChrome:J,isSafari:!J&&-1!==E.indexOf(\"Safari\"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(E),\nSVG_NS:\"http://www.w3.org/2000/svg\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:q,win:d,marginNames:[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],noop:function(){},charts:[],dateFormats:{}}});Q(A,\"parts/Utilities.js\",[A[\"parts/Globals.js\"]],function(d){function f(){var a,c=arguments,k={},r=function(a,c){\"object\"!==typeof a&&(a={});Z(c,function(k,e){!E(k,!0)||t(k)||n(k)?a[e]=c[e]:a[e]=r(a[e]||{},k)});return a};!0===c[0]&&(k=c[1],c=Array.prototype.slice.call(c,2));var e=c.length;for(a=0;a<\ne;a++)k=r(k,c[a]);return k}function E(a,c){return!!a&&\"object\"===typeof a&&(!c||!w(a))}function q(a,c,k){var r;D(c)?b(k)?a.setAttribute(c,k):a&&a.getAttribute&&((r=a.getAttribute(c))||\"class\"!==c||(r=a.getAttribute(c+\"Name\"))):Z(c,function(c,k){a.setAttribute(k,c)});return r}function M(){for(var a=arguments,c=a.length,k=0;k<c;k++){var r=a[k];if(\"undefined\"!==typeof r&&null!==r)return r}}function K(a,c){if(!a)return c;var k=a.split(\".\").reverse();if(1===k.length)return c[a];for(a=k.pop();\"undefined\"!==\ntypeof a&&\"undefined\"!==typeof c&&null!==c;)c=c[a],a=k.pop();return c}d.timers=[];var J=d.charts,L=d.doc,x=d.win,F=d.error=function(a,c,k,r){var e=N(a),z=e?\"Highcharts error #\"+a+\": www.highcharts.com/errors/\"+a+\"/\":a.toString(),b=function(){if(c)throw Error(z);x.console&&console.log(z)};if(\"undefined\"!==typeof r){var g=\"\";e&&(z+=\"?\");Z(r,function(a,c){g+=\"\\n\"+c+\": \"+a;e&&(z+=encodeURI(c)+\"=\"+encodeURI(a))});z+=g}k?ba(k,\"displayError\",{code:a,message:z,params:r},b):b()},H=function(){function a(a,\nc,k){this.options=c;this.elem=a;this.prop=k}a.prototype.dSetter=function(){var a=this.paths,c=a&&a[0];a=a&&a[1];var k=[],r=this.now||0;if(1!==r&&c&&a)if(c.length===a.length&&1>r)for(var e=0;e<a.length;e++){for(var z=c[e],b=a[e],g=[],l=0;l<b.length;l++){var h=z[l],P=b[l];g[l]=\"number\"===typeof h&&\"number\"===typeof P&&(\"A\"!==b[0]||4!==l&&5!==l)?h+r*(P-h):P}k.push(g)}else k=a;else k=this.toD||[];this.elem.attr(\"d\",k,void 0,!0)};a.prototype.update=function(){var a=this.elem,c=this.prop,k=this.now,r=this.options.step;\nif(this[c+\"Setter\"])this[c+\"Setter\"]();else a.attr?a.element&&a.attr(c,k,null,!0):a.style[c]=k+this.unit;r&&r.call(a,k,this)};a.prototype.run=function(a,c,k){var r=this,e=r.options,z=function(a){return z.stopped?!1:r.step(a)},b=x.requestAnimationFrame||function(a){setTimeout(a,13)},l=function(){for(var a=0;a<d.timers.length;a++)d.timers[a]()||d.timers.splice(a--,1);d.timers.length&&b(l)};a!==c||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=a,this.end=c,this.unit=k,this.now=\nthis.start,this.pos=0,z.elem=this.elem,z.prop=this.prop,z()&&1===d.timers.push(z)&&b(l)):(delete e.curAnim[this.prop],e.complete&&0===Object.keys(e.curAnim).length&&e.complete.call(this.elem))};a.prototype.step=function(a){var c=+new Date,k=this.options,r=this.elem,e=k.complete,z=k.duration,b=k.curAnim;if(r.attr&&!r.element)a=!1;else if(a||c>=z+this.startTime){this.now=this.end;this.pos=1;this.update();var l=b[this.prop]=!0;Z(b,function(a){!0!==a&&(l=!1)});l&&e&&e.call(r);a=!1}else this.pos=k.easing((c-\nthis.startTime)/z),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0;return a};a.prototype.initPath=function(a,c,k){function r(a,c){for(;a.length<p;){var k=a[0],r=c[p-a.length];r&&\"M\"===k[0]&&(a[0]=\"C\"===r[0]?[\"C\",k[1],k[2],k[1],k[2],k[1],k[2]]:[\"L\",k[1],k[2]]);a.unshift(k);l&&a.push(a[a.length-1])}}function e(a,c){for(;a.length<p;)if(c=a[a.length/g-1].slice(),\"C\"===c[0]&&(c[1]=c[5],c[2]=c[6]),l){var k=a[a.length/g].slice();a.splice(a.length/2,0,c,k)}else a.push(c)}var z=a.startX,\nb=a.endX;c=c&&c.slice();k=k.slice();var l=a.isArea,g=l?2:1;if(!c)return[k,k];if(z&&b){for(a=0;a<z.length;a++)if(z[a]===b[0]){var h=a;break}else if(z[0]===b[b.length-z.length+a]){h=a;var P=!0;break}else if(z[z.length-1]===b[b.length-z.length+a]){h=z.length-a;break}\"undefined\"===typeof h&&(c=[])}if(c.length&&N(h)){var p=k.length+h*g;P?(r(c,k),e(k,c)):(r(k,c),e(c,k))}return[c,k]};a.prototype.fillSetter=function(){a.prototype.strokeSetter.apply(this,arguments)};a.prototype.strokeSetter=function(){this.elem.attr(this.prop,\nd.color(this.start).tweenTo(d.color(this.end),this.pos),null,!0)};return a}();d.Fx=H;d.merge=f;var C=d.pInt=function(a,c){return parseInt(a,c||10)},D=d.isString=function(a){return\"string\"===typeof a},w=d.isArray=function(a){a=Object.prototype.toString.call(a);return\"[object Array]\"===a||\"[object Array Iterator]\"===a};d.isObject=E;var n=d.isDOMElement=function(a){return E(a)&&\"number\"===typeof a.nodeType},t=d.isClass=function(a){var c=a&&a.constructor;return!(!E(a,!0)||n(a)||!c||!c.name||\"Object\"===\nc.name)},N=d.isNumber=function(a){return\"number\"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a},m=d.erase=function(a,c){for(var k=a.length;k--;)if(a[k]===c){a.splice(k,1);break}},b=d.defined=function(a){return\"undefined\"!==typeof a&&null!==a};d.attr=q;var g=d.splat=function(a){return w(a)?a:[a]},v=d.syncTimeout=function(a,c,k){if(0<c)return setTimeout(a,c,k);a.call(0,k);return-1},h=d.clearTimeout=function(a){b(a)&&clearTimeout(a)},e=d.extend=function(a,c){var k;a||(a={});for(k in c)a[k]=c[k];return a};\nd.pick=M;var p=d.css=function(a,c){d.isMS&&!d.svg&&c&&\"undefined\"!==typeof c.opacity&&(c.filter=\"alpha(opacity=\"+100*c.opacity+\")\");e(a.style,c)},l=d.createElement=function(a,c,k,r,z){a=L.createElement(a);c&&e(a,c);z&&p(a,{padding:\"0\",border:\"none\",margin:\"0\"});k&&p(a,k);r&&r.appendChild(a);return a},I=d.extendClass=function(a,c){var k=function(){};k.prototype=new a;e(k.prototype,c);return k},u=d.pad=function(a,c,k){return Array((c||2)+1-String(a).replace(\"-\",\"\").length).join(k||\"0\")+a},y=d.relativeLength=\nfunction(a,c,k){return/%$/.test(a)?c*parseFloat(a)/100+(k||0):parseFloat(a)},G=d.wrap=function(a,c,k){var r=a[c];a[c]=function(){var a=Array.prototype.slice.call(arguments),c=arguments,e=this;e.proceed=function(){r.apply(e,arguments.length?arguments:c)};a.unshift(r);a=k.apply(this,a);e.proceed=null;return a}},S=d.format=function(a,c,k){var r=\"{\",e=!1,z=[],b=/f$/,l=/\\.([0-9])/,g=d.defaultOptions.lang,h=k&&k.time||d.time;for(k=k&&k.numberFormatter||T;a;){var P=a.indexOf(r);if(-1===P)break;var p=a.slice(0,\nP);if(e){p=p.split(\":\");r=K(p.shift()||\"\",c);if(p.length&&\"number\"===typeof r)if(p=p.join(\":\"),b.test(p)){var u=parseInt((p.match(l)||[\"\",\"-1\"])[1],10);null!==r&&(r=k(r,u,g.decimalPoint,-1<p.indexOf(\",\")?g.thousandsSep:\"\"))}else r=h.dateFormat(p,r);z.push(r)}else z.push(p);a=a.slice(P+1);r=(e=!e)?\"}\":\"{\"}z.push(a);return z.join(\"\")},R=d.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))},B=d.normalizeTickInterval=function(a,c,k,r,e){var z=a;k=M(k,1);var b=a/k;c||(c=e?[1,\n1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===r&&(1===k?c=c.filter(function(a){return 0===a%1}):.1>=k&&(c=[1/k])));for(r=0;r<c.length&&!(z=c[r],e&&z*k>=a||!e&&b<=(c[r]+(c[r+1]||c[r]))/2);r++);return z=P(z*k,-Math.round(Math.log(.001)/Math.LN10))},c=d.stableSort=function(a,c){var k=a.length,r,e;for(e=0;e<k;e++)a[e].safeI=e;a.sort(function(a,k){r=c(a,k);return 0===r?a.safeI-k.safeI:r});for(e=0;e<k;e++)delete a[e].safeI},a=d.arrayMin=function(a){for(var c=a.length,k=a[0];c--;)a[c]<k&&(k=a[c]);return k},\nk=d.arrayMax=function(a){for(var c=a.length,k=a[0];c--;)a[c]>k&&(k=a[c]);return k},r=d.destroyObjectProperties=function(a,c){Z(a,function(k,r){k&&k!==c&&k.destroy&&k.destroy();delete a[r]})},z=d.discardElement=function(a){var c=d.garbageBin;c||(c=l(\"div\"));a&&c.appendChild(a);c.innerHTML=\"\"},P=d.correctFloat=function(a,c){return parseFloat(a.toPrecision(c||14))},U=d.setAnimation=function(a,c){c.renderer.globalAnimation=M(a,c.options.chart.animation,!0)},W=d.animObject=function(a){return E(a)?f(a):\n{duration:a?500:0}},Y=d.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},T=d.numberFormat=function(a,c,k,r){a=+a||0;c=+c;var e=d.defaultOptions.lang,z=(a.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,b=a.toString().split(\"e\");if(-1===c)c=Math.min(z,20);else if(!N(c))c=2;else if(c&&b[1]&&0>b[1]){var l=c+ +b[1];0<=l?(b[0]=(+b[0]).toExponential(l).split(\"e\")[0],c=l):(b[0]=b[0].split(\".\")[0]||0,a=20>c?(b[0]*Math.pow(10,b[1])).toFixed(c):\n0,b[1]=0)}var g=(Math.abs(b[1]?b[0]:a)+Math.pow(10,-Math.max(c,z)-1)).toFixed(c);z=String(C(g));l=3<z.length?z.length%3:0;k=M(k,e.decimalPoint);r=M(r,e.thousandsSep);a=(0>a?\"-\":\"\")+(l?z.substr(0,l)+r:\"\");a+=z.substr(l).replace(/(\\d{3})(?=\\d)/g,\"$1\"+r);c&&(a+=k+g.slice(-c));b[1]&&0!==+a&&(a+=\"e\"+b[1]);return a};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};var ca=d.getStyle=function(a,c,k){if(\"width\"===c)return c=Math.min(a.offsetWidth,a.scrollWidth),k=a.getBoundingClientRect&&\na.getBoundingClientRect().width,k<c&&k>=c-1&&(c=Math.floor(k)),Math.max(0,c-d.getStyle(a,\"padding-left\")-d.getStyle(a,\"padding-right\"));if(\"height\"===c)return Math.max(0,Math.min(a.offsetHeight,a.scrollHeight)-d.getStyle(a,\"padding-top\")-d.getStyle(a,\"padding-bottom\"));x.getComputedStyle||F(27,!0);if(a=x.getComputedStyle(a,void 0))a=a.getPropertyValue(c),M(k,\"opacity\"!==c)&&(a=C(a));return a},aa=d.inArray=function(a,c,k){return c.indexOf(a,k)},O=d.find=Array.prototype.find?function(a,c){return a.find(c)}:\nfunction(a,c){var k,r=a.length;for(k=0;k<r;k++)if(c(a[k],k))return a[k]};d.keys=Object.keys;var V=d.offset=function(a){var c=L.documentElement;a=a.parentElement||a.parentNode?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(x.pageYOffset||c.scrollTop)-(c.clientTop||0),left:a.left+(x.pageXOffset||c.scrollLeft)-(c.clientLeft||0)}},da=d.stop=function(a,c){for(var k=d.timers.length;k--;)d.timers[k].elem!==a||c&&c!==d.timers[k].prop||(d.timers[k].stopped=!0)},Z=d.objectEach=function(a,c,k){for(var r in a)Object.hasOwnProperty.call(a,\nr)&&c.call(k||a[r],a[r],r,a)};Z({map:\"map\",each:\"forEach\",grep:\"filter\",reduce:\"reduce\",some:\"some\"},function(a,c){d[c]=function(c){return Array.prototype[a].apply(c,[].slice.call(arguments,1))}});var ha=d.addEvent=function(a,c,k,r){void 0===r&&(r={});var e=a.addEventListener||d.addEventListenerPolyfill;var z=\"function\"===typeof a&&a.prototype?a.prototype.protoEvents=a.prototype.protoEvents||{}:a.hcEvents=a.hcEvents||{};d.Point&&a instanceof d.Point&&a.series&&a.series.chart&&(a.series.chart.runTrackerClick=\n!0);e&&e.call(a,c,k,!1);z[c]||(z[c]=[]);z[c].push({fn:k,order:\"number\"===typeof r.order?r.order:Infinity});z[c].sort(function(a,c){return a.order-c.order});return function(){ea(a,c,k)}},ea=d.removeEvent=function(a,c,k){function r(c,k){var r=a.removeEventListener||d.removeEventListenerPolyfill;r&&r.call(a,c,k,!1)}function e(k){var e;if(a.nodeName){if(c){var z={};z[c]=!0}else z=k;Z(z,function(a,c){if(k[c])for(e=k[c].length;e--;)r(c,k[c][e].fn)})}}var z;[\"protoEvents\",\"hcEvents\"].forEach(function(b,\nl){var g=(l=l?a:a.prototype)&&l[b];g&&(c?(z=g[c]||[],k?(g[c]=z.filter(function(a){return k!==a.fn}),r(c,k)):(e(g),g[c]=[])):(e(g),l[b]={}))})},ba=d.fireEvent=function(a,c,k,r){var z;k=k||{};if(L.createEvent&&(a.dispatchEvent||a.fireEvent)){var b=L.createEvent(\"Events\");b.initEvent(c,!0,!0);e(b,k);a.dispatchEvent?a.dispatchEvent(b):a.fireEvent(c,b)}else k.target||e(k,{preventDefault:function(){k.defaultPrevented=!0},target:a,type:c}),function(c,r){void 0===c&&(c=[]);void 0===r&&(r=[]);var e=0,b=0,\nl=c.length+r.length;for(z=0;z<l;z++)!1===(c[e]?r[b]?c[e].order<=r[b].order?c[e++]:r[b++]:c[e++]:r[b++]).fn.call(a,k)&&k.preventDefault()}(a.protoEvents&&a.protoEvents[c],a.hcEvents&&a.hcEvents[c]);r&&!k.defaultPrevented&&r.call(a,k)},A=d.animate=function(a,c,k){var r,e=\"\",z,b;if(!E(k)){var l=arguments;k={duration:l[2],easing:l[3],complete:l[4]}}N(k.duration)||(k.duration=400);k.easing=\"function\"===typeof k.easing?k.easing:Math[k.easing]||Math.easeInOutSine;k.curAnim=f(c);Z(c,function(l,g){da(a,g);\nb=new H(a,k,g);z=null;\"d\"===g&&w(c.d)?(b.paths=b.initPath(a,a.pathArray,c.d),b.toD=c.d,r=0,z=1):a.attr?r=a.attr(g):(r=parseFloat(ca(a,g))||0,\"opacity\"!==g&&(e=\"px\"));z||(z=l);z&&z.match&&z.match(\"px\")&&(z=z.replace(/px/g,\"\"));b.run(r,z,e)})},ia=d.seriesType=function(a,c,k,r,e){var z=d.getOptions(),b=d.seriesTypes;z.plotOptions[a]=f(z.plotOptions[c],k);b[a]=I(b[c]||function(){},r);b[a].prototype.type=a;e&&(b[a].prototype.pointClass=I(d.Point,e));return b[a]},fa=d.uniqueKey=function(){var a=Math.random().toString(36).substring(2,\n9),c=0;return function(){return\"highcharts-\"+a+\"-\"+c++}}(),ja=d.isFunction=function(a){return\"function\"===typeof a};x.jQuery&&(x.jQuery.fn.highcharts=function(){var a=[].slice.call(arguments);if(this[0])return a[0]?(new (d[D(a[0])?a.shift():\"Chart\"])(this[0],a[0],a[1]),this):J[q(this[0],\"data-highcharts-chart\")]});return{Fx:d.Fx,addEvent:ha,animate:A,animObject:W,arrayMax:k,arrayMin:a,attr:q,clamp:function(a,c,k){return a>c?a<k?a:k:c},clearTimeout:h,correctFloat:P,createElement:l,css:p,defined:b,\ndestroyObjectProperties:r,discardElement:z,erase:m,error:F,extend:e,extendClass:I,find:O,fireEvent:ba,format:S,getMagnitude:R,getNestedProperty:K,getStyle:ca,inArray:aa,isArray:w,isClass:t,isDOMElement:n,isFunction:ja,isNumber:N,isObject:E,isString:D,merge:f,normalizeTickInterval:B,numberFormat:T,objectEach:Z,offset:V,pad:u,pick:M,pInt:C,relativeLength:y,removeEvent:ea,seriesType:ia,setAnimation:U,splat:g,stableSort:c,stop:da,syncTimeout:v,timeUnits:Y,uniqueKey:fa,wrap:G}});Q(A,\"parts/Color.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Utilities.js\"]],function(d,f){var E=f.isNumber,q=f.merge,M=f.pInt;f=function(){function d(f){this.parsers=[{regex:/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,parse:function(d){return[M(d[1]),M(d[2]),M(d[3]),parseFloat(d[4],10)]}},{regex:/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,parse:function(d){return[M(d[1]),M(d[2]),M(d[3]),1]}}];this.rgba=[];if(!(this instanceof d))return new d(f);this.init(f)}d.parse=function(f){return new d(f)};\nd.prototype.init=function(f){var q,x;if((this.input=f=d.names[f&&f.toLowerCase?f.toLowerCase():\"\"]||f)&&f.stops)this.stops=f.stops.map(function(f){return new d(f[1])});else{if(f&&f.charAt&&\"#\"===f.charAt()){var F=f.length;f=parseInt(f.substr(1),16);7===F?q=[(f&16711680)>>16,(f&65280)>>8,f&255,1]:4===F&&(q=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])}if(!q)for(x=this.parsers.length;x--&&!q;){var H=this.parsers[x];(F=H.regex.exec(f))&&(q=H.parse(F))}}this.rgba=q||[]};d.prototype.get=\nfunction(d){var f=this.input,x=this.rgba;if(\"undefined\"!==typeof this.stops){var F=q(f);F.stops=[].concat(F.stops);this.stops.forEach(function(f,x){F.stops[x]=[F.stops[x][0],f.get(d)]})}else F=x&&E(x[0])?\"rgb\"===d||!d&&1===x[3]?\"rgb(\"+x[0]+\",\"+x[1]+\",\"+x[2]+\")\":\"a\"===d?x[3]:\"rgba(\"+x.join(\",\")+\")\":f;return F};d.prototype.brighten=function(d){var f,x=this.rgba;if(this.stops)this.stops.forEach(function(f){f.brighten(d)});else if(E(d)&&0!==d)for(f=0;3>f;f++)x[f]+=M(255*d),0>x[f]&&(x[f]=0),255<x[f]&&\n(x[f]=255);return this};d.prototype.setOpacity=function(d){this.rgba[3]=d;return this};d.prototype.tweenTo=function(d,f){var x=this.rgba,q=d.rgba;q.length&&x&&x.length?(d=1!==q[3]||1!==x[3],f=(d?\"rgba(\":\"rgb(\")+Math.round(q[0]+(x[0]-q[0])*(1-f))+\",\"+Math.round(q[1]+(x[1]-q[1])*(1-f))+\",\"+Math.round(q[2]+(x[2]-q[2])*(1-f))+(d?\",\"+(q[3]+(x[3]-q[3])*(1-f)):\"\")+\")\"):f=d.input||\"none\";return f};d.names={white:\"#ffffff\",black:\"#000000\"};return d}();d.Color=f;d.color=f.parse;return d.Color});Q(A,\"parts/SVGElement.js\",\n[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f,E){var q=f.deg2rad,M=f.doc,K=f.hasTouch,J=f.isFirefox,L=f.noop,x=f.svg,F=f.SVG_NS,H=f.win,C=E.animate,D=E.animObject,w=E.attr,n=E.createElement,t=E.css,N=E.defined,m=E.erase,b=E.extend,g=E.fireEvent,v=E.inArray,h=E.isArray,e=E.isFunction,p=E.isNumber,l=E.isString,I=E.merge,u=E.objectEach,y=E.pick,G=E.pInt,S=E.stop,R=E.uniqueKey;E=function(){function B(){this.height=this.element=void 0;this.opacity=1;this.renderer=void 0;\nthis.SVG_NS=F;this.symbolCustomAttribs=\"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");this.textProps=\"color cursor direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");this.width=void 0}B.prototype._defaultGetter=function(c){c=y(this[c+\"Value\"],this[c],this.element?this.element.getAttribute(c):null,0);/^[\\-0-9\\.]+$/.test(c)&&(c=parseFloat(c));return c};B.prototype._defaultSetter=function(c,a,k){k.setAttribute(a,\nc)};B.prototype.add=function(c){var a=this.renderer,k=this.element;c&&(this.parentGroup=c);this.parentInverted=c&&c.inverted;\"undefined\"!==typeof this.textStr&&a.buildText(this);this.added=!0;if(!c||c.handleZ||this.zIndex)var r=this.zIndexSetter();r||(c?c.element:a.box).appendChild(k);if(this.onAdd)this.onAdd();return this};B.prototype.addClass=function(c,a){var k=a?\"\":this.attr(\"class\")||\"\";c=(c||\"\").split(/ /g).reduce(function(a,c){-1===k.indexOf(c)&&a.push(c);return a},k?[k]:[]).join(\" \");c!==\nk&&this.attr(\"class\",c);return this};B.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};B.prototype.align=function(c,a,k){var r,e={};var b=this.renderer;var g=b.alignedObjects;var h,p;if(c){if(this.alignOptions=c,this.alignByTranslate=a,!k||l(k))this.alignTo=r=k||\"renderer\",m(g,this),g.push(this),k=void 0}else c=this.alignOptions,a=this.alignByTranslate,r=this.alignTo;k=y(k,b[r],b);r=c.align;b=c.verticalAlign;g=(k.x||0)+(c.x||0);var u=(k.y||0)+(c.y||\n0);\"right\"===r?h=1:\"center\"===r&&(h=2);h&&(g+=(k.width-(c.width||0))/h);e[a?\"translateX\":\"x\"]=Math.round(g);\"bottom\"===b?p=1:\"middle\"===b&&(p=2);p&&(u+=(k.height-(c.height||0))/p);e[a?\"translateY\":\"y\"]=Math.round(u);this[this.placed?\"animate\":\"attr\"](e);this.placed=!0;this.alignAttr=e;return this};B.prototype.alignSetter=function(c){var a={left:\"start\",center:\"middle\",right:\"end\"};a[c]&&(this.alignValue=c,this.element.setAttribute(\"text-anchor\",a[c]))};B.prototype.animate=function(c,a,k){var r=D(y(a,\nthis.renderer.globalAnimation,!0));y(M.hidden,M.msHidden,M.webkitHidden,!1)&&(r.duration=0);0!==r.duration?(k&&(r.complete=k),C(this,c,r)):(this.attr(c,void 0,k),u(c,function(a,c){r.step&&r.step.call(this,a,{prop:c,pos:1})},this));return this};B.prototype.applyTextOutline=function(c){var a=this.element,k;-1!==c.indexOf(\"contrast\")&&(c=c.replace(/contrast/g,this.renderer.getContrast(a.style.fill)));c=c.split(\" \");var r=c[c.length-1];if((k=c[0])&&\"none\"!==k&&f.svg){this.fakeTS=!0;c=[].slice.call(a.getElementsByTagName(\"tspan\"));\nthis.ySetter=this.xSetter;k=k.replace(/(^[\\d\\.]+)(.*?)$/g,function(a,c,k){return 2*c+k});this.removeTextOutline(c);var e=a.textContent?/^[\\u0591-\\u065F\\u066A-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]/.test(a.textContent):!1;var b=a.firstChild;c.forEach(function(c,z){0===z&&(c.setAttribute(\"x\",a.getAttribute(\"x\")),z=a.getAttribute(\"y\"),c.setAttribute(\"y\",z||0),null===z&&a.setAttribute(\"y\",0));z=c.cloneNode(!0);w(e&&!J?c:z,{\"class\":\"highcharts-text-outline\",fill:r,stroke:r,\"stroke-width\":k,\"stroke-linejoin\":\"round\"});\na.insertBefore(z,b)});e&&J&&c[0]&&(c=c[0].cloneNode(!0),c.textContent=\" \",a.insertBefore(c,b))}};B.prototype.attr=function(c,a,k,r){var e=this.element,b,l=this,g,h,p=this.symbolCustomAttribs;if(\"string\"===typeof c&&\"undefined\"!==typeof a){var m=c;c={};c[m]=a}\"string\"===typeof c?l=(this[c+\"Getter\"]||this._defaultGetter).call(this,c,e):(u(c,function(a,k){g=!1;r||S(this,k);this.symbolName&&-1!==v(k,p)&&(b||(this.symbolAttr(c),b=!0),g=!0);!this.rotation||\"x\"!==k&&\"y\"!==k||(this.doTransform=!0);g||(h=\nthis[k+\"Setter\"]||this._defaultSetter,h.call(this,a,k,e),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(k)&&this.updateShadows(k,a,h))},this),this.afterSetters());k&&k.call(this);return l};B.prototype.clip=function(c){return this.attr(\"clip-path\",c?\"url(\"+this.renderer.url+\"#\"+c.id+\")\":\"none\")};B.prototype.crisp=function(c,a){a=a||c.strokeWidth||0;var k=Math.round(a)%2/2;c.x=Math.floor(c.x||this.x||0)+k;c.y=Math.floor(c.y||this.y||0)+k;c.width=Math.floor((c.width||\nthis.width||0)-2*k);c.height=Math.floor((c.height||this.height||0)-2*k);N(c.strokeWidth)&&(c.strokeWidth=a);return c};B.prototype.complexColor=function(c,a,k){var r=this.renderer,e,b,l,p,m,v,y,n,O,V,t=[],G;g(this.renderer,\"complexColor\",{args:arguments},function(){c.radialGradient?b=\"radialGradient\":c.linearGradient&&(b=\"linearGradient\");if(b){l=c[b];m=r.gradients;v=c.stops;O=k.radialReference;h(l)&&(c[b]=l={x1:l[0],y1:l[1],x2:l[2],y2:l[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===b&&O&&\n!N(l.gradientUnits)&&(p=l,l=I(l,r.getRadialAttr(O,p),{gradientUnits:\"userSpaceOnUse\"}));u(l,function(a,c){\"id\"!==c&&t.push(c,a)});u(v,function(a){t.push(a)});t=t.join(\",\");if(m[t])V=m[t].attr(\"id\");else{l.id=V=R();var z=m[t]=r.createElement(b).attr(l).add(r.defs);z.radAttr=p;z.stops=[];v.forEach(function(a){0===a[1].indexOf(\"rgba\")?(e=d.parse(a[1]),y=e.get(\"rgb\"),n=e.get(\"a\")):(y=a[1],n=1);a=r.createElement(\"stop\").attr({offset:a[0],\"stop-color\":y,\"stop-opacity\":n}).add(z);z.stops.push(a)})}G=\"url(\"+\nr.url+\"#\"+V+\")\";k.setAttribute(a,G);k.gradient=t;c.toString=function(){return G}}})};B.prototype.css=function(c){var a=this.styles,k={},r=this.element,e=\"\",l=!a,g=[\"textOutline\",\"textOverflow\",\"width\"];c&&c.color&&(c.fill=c.color);a&&u(c,function(c,r){a&&a[r]!==c&&(k[r]=c,l=!0)});if(l){a&&(c=b(a,k));if(c)if(null===c.width||\"auto\"===c.width)delete this.textWidth;else if(\"text\"===r.nodeName.toLowerCase()&&c.width)var h=this.textWidth=G(c.width);this.styles=c;h&&!x&&this.renderer.forExport&&delete c.width;\nif(r.namespaceURI===this.SVG_NS){var p=function(a,c){return\"-\"+c.toLowerCase()};u(c,function(a,c){-1===g.indexOf(c)&&(e+=c.replace(/([A-Z])/g,p)+\":\"+a+\";\")});e&&w(r,\"style\",e)}else t(r,c);this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),c&&c.textOutline&&this.applyTextOutline(c.textOutline))}return this};B.prototype.dashstyleSetter=function(c){var a=this[\"stroke-width\"];\"inherit\"===a&&(a=1);if(c=c&&c.toLowerCase()){var k=c.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\n\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(c=k.length;c--;)k[c]=\"\"+G(k[c])*y(a,NaN);c=k.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",c)}};B.prototype.destroy=function(){var c=this,a=c.element||{},k=c.renderer,r=k.isSVG&&\"SPAN\"===a.nodeName&&c.parentGroup||void 0,e=a.ownerSVGElement;a.onclick=a.onmouseout=a.onmouseover=a.onmousemove=a.point=\nnull;S(c);if(c.clipPath&&e){var b=c.clipPath;[].forEach.call(e.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(a){-1<a.getAttribute(\"clip-path\").indexOf(b.element.id)&&a.removeAttribute(\"clip-path\")});c.clipPath=b.destroy()}if(c.stops){for(e=0;e<c.stops.length;e++)c.stops[e].destroy();c.stops.length=0;c.stops=void 0}c.safeRemoveChild(a);for(k.styledMode||c.destroyShadows();r&&r.div&&0===r.div.childNodes.length;)a=r.parentGroup,c.safeRemoveChild(r.div),delete r.div,r=a;c.alignTo&&m(k.alignedObjects,\nc);u(c,function(a,k){c[k]&&c[k].parentGroup===c&&c[k].destroy&&c[k].destroy();delete c[k]})};B.prototype.destroyShadows=function(){(this.shadows||[]).forEach(function(c){this.safeRemoveChild(c)},this);this.shadows=void 0};B.prototype.destroyTextPath=function(c,a){var k=c.getElementsByTagName(\"text\")[0];if(k){if(k.removeAttribute(\"dx\"),k.removeAttribute(\"dy\"),a.element.setAttribute(\"id\",\"\"),this.textPathWrapper&&k.getElementsByTagName(\"textPath\").length){for(c=this.textPathWrapper.element.childNodes;c.length;)k.appendChild(c[0]);\nk.removeChild(this.textPathWrapper.element)}}else if(c.getAttribute(\"dx\")||c.getAttribute(\"dy\"))c.removeAttribute(\"dx\"),c.removeAttribute(\"dy\");this.textPathWrapper&&(this.textPathWrapper=this.textPathWrapper.destroy())};B.prototype.dSetter=function(c,a,k){h(c)&&(\"string\"===typeof c[0]&&(c=this.renderer.pathToSegments(c)),this.pathArray=c,c=c.reduce(function(a,c,k){return c&&c.join?(k?a+\" \":\"\")+c.join(\" \"):(c||\"\").toString()},\"\"));/(NaN| {2}|^$)/.test(c)&&(c=\"M 0 0\");this[a]!==c&&(k.setAttribute(a,\nc),this[a]=c)};B.prototype.fadeOut=function(c){var a=this;a.animate({opacity:0},{duration:y(c,150),complete:function(){a.attr({y:-9999}).hide()}})};B.prototype.fillSetter=function(c,a,k){\"string\"===typeof c?k.setAttribute(a,c):c&&this.complexColor(c,a,k)};B.prototype.getBBox=function(c,a){var k,r=this.renderer,z=this.element,l=this.styles,g=this.textStr,h=r.cache,p=r.cacheKeys,u=z.namespaceURI===this.SVG_NS;a=y(a,this.rotation,0);var m=r.styledMode?z&&B.prototype.getStyle.call(z,\"font-size\"):l&&l.fontSize;\nif(N(g)){var v=g.toString();-1===v.indexOf(\"<\")&&(v=v.replace(/[0-9]/g,\"0\"));v+=[\"\",a,m,this.textWidth,l&&l.textOverflow,l&&l.fontWeight].join()}v&&!c&&(k=h[v]);if(!k){if(u||r.forExport){try{var O=this.fakeTS&&function(a){[].forEach.call(z.querySelectorAll(\".highcharts-text-outline\"),function(c){c.style.display=a})};e(O)&&O(\"none\");k=z.getBBox?b({},z.getBBox()):{width:z.offsetWidth,height:z.offsetHeight};e(O)&&O(\"\")}catch(V){\"\"}if(!k||0>k.width)k={width:0,height:0}}else k=this.htmlGetBBox();r.isSVG&&\n(c=k.width,r=k.height,u&&(k.height=r={\"11px,17\":14,\"13px,20\":16}[l&&l.fontSize+\",\"+Math.round(r)]||r),a&&(l=a*q,k.width=Math.abs(r*Math.sin(l))+Math.abs(c*Math.cos(l)),k.height=Math.abs(r*Math.cos(l))+Math.abs(c*Math.sin(l))));if(v&&0<k.height){for(;250<p.length;)delete h[p.shift()];h[v]||p.push(v);h[v]=k}}return k};B.prototype.getStyle=function(c){return H.getComputedStyle(this.element||this,\"\").getPropertyValue(c)};B.prototype.hasClass=function(c){return-1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(c)};\nB.prototype.hide=function(c){c?this.attr({y:-9999}):this.attr({visibility:\"hidden\"});return this};B.prototype.htmlGetBBox=function(){return{height:0,width:0,x:0,y:0}};B.prototype.init=function(c,a){this.element=\"span\"===a?n(a):M.createElementNS(this.SVG_NS,a);this.renderer=c;g(this,\"afterInit\")};B.prototype.invert=function(c){this.inverted=c;this.updateTransform();return this};B.prototype.on=function(c,a){var k,r,e=this.element,b;K&&\"click\"===c?(e.ontouchstart=function(a){k=a.touches[0].clientX;r=\na.touches[0].clientY},e.ontouchend=function(c){k&&4<=Math.sqrt(Math.pow(k-c.changedTouches[0].clientX,2)+Math.pow(r-c.changedTouches[0].clientY,2))||a.call(e,c);b=!0;c.preventDefault()},e.onclick=function(c){b||a.call(e,c)}):e[\"on\"+c]=a;return this};B.prototype.opacitySetter=function(c,a,k){this[a]=c;k.setAttribute(a,c)};B.prototype.removeClass=function(c){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(l(c)?new RegExp(\" ?\"+c+\" ?\"):c,\"\"))};B.prototype.removeTextOutline=function(c){for(var a=\nc.length,k;a--;)k=c[a],\"highcharts-text-outline\"===k.getAttribute(\"class\")&&m(c,this.element.removeChild(k))};B.prototype.safeRemoveChild=function(c){var a=c.parentNode;a&&a.removeChild(c)};B.prototype.setRadialReference=function(c){var a=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=c;a&&a.radAttr&&a.animate(this.renderer.getRadialAttr(c,a.radAttr));return this};B.prototype.setTextPath=function(c,a){var k=this.element,r={textAnchor:\"text-anchor\"},\ne=!1,b=this.textPathWrapper,l=!b;a=I(!0,{enabled:!0,attributes:{dy:-5,startOffset:\"50%\",textAnchor:\"middle\"}},a);var g=a.attributes;if(c&&a&&a.enabled){b&&null===b.element.parentNode?(l=!0,b=b.destroy()):b&&this.removeTextOutline.call(b.parentGroup,[].slice.call(k.getElementsByTagName(\"tspan\")));this.options&&this.options.padding&&(g.dx=-this.options.padding);b||(this.textPathWrapper=b=this.renderer.createElement(\"textPath\"),e=!0);var h=b.element;(a=c.element.getAttribute(\"id\"))||c.element.setAttribute(\"id\",\na=R());if(l)for(c=k.getElementsByTagName(\"tspan\");c.length;)c[0].setAttribute(\"y\",0),p(g.dx)&&c[0].setAttribute(\"x\",-g.dx),h.appendChild(c[0]);e&&b&&b.add({element:this.text?this.text.element:k});h.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",this.renderer.url+\"#\"+a);N(g.dy)&&(h.parentNode.setAttribute(\"dy\",g.dy),delete g.dy);N(g.dx)&&(h.parentNode.setAttribute(\"dx\",g.dx),delete g.dx);u(g,function(a,c){h.setAttribute(r[c]||c,a)});k.removeAttribute(\"transform\");this.removeTextOutline.call(b,\n[].slice.call(k.getElementsByTagName(\"tspan\")));this.text&&!this.renderer.styledMode&&this.attr({fill:\"none\",\"stroke-width\":0});this.applyTextOutline=this.updateTransform=L}else b&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(k,c),this.updateTransform(),this.options&&this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this};B.prototype.shadow=function(c,a,k){var r=[],e=this.element,l=!1,g=this.oldShadowOptions;var h={color:\"#000000\",\noffsetX:1,offsetY:1,opacity:.15,width:3};var p;!0===c?p=h:\"object\"===typeof c&&(p=b(h,c));p&&(p&&g&&u(p,function(a,c){a!==g[c]&&(l=!0)}),l&&this.destroyShadows(),this.oldShadowOptions=p);if(!p)this.destroyShadows();else if(!this.shadows){var m=p.opacity/p.width;var v=this.parentInverted?\"translate(-1,-1)\":\"translate(\"+p.offsetX+\", \"+p.offsetY+\")\";for(h=1;h<=p.width;h++){var y=e.cloneNode(!1);var O=2*p.width+1-2*h;w(y,{stroke:c.color||\"#000000\",\"stroke-opacity\":m*h,\"stroke-width\":O,transform:v,fill:\"none\"});\ny.setAttribute(\"class\",(y.getAttribute(\"class\")||\"\")+\" highcharts-shadow\");k&&(w(y,\"height\",Math.max(w(y,\"height\")-O,0)),y.cutHeight=O);a?a.element.appendChild(y):e.parentNode&&e.parentNode.insertBefore(y,e);r.push(y)}this.shadows=r}return this};B.prototype.show=function(c){return this.attr({visibility:c?\"inherit\":\"visible\"})};B.prototype.strokeSetter=function(c,a,k){this[a]=c;this.stroke&&this[\"stroke-width\"]?(B.prototype.fillSetter.call(this,this.stroke,\"stroke\",k),k.setAttribute(\"stroke-width\",\nthis[\"stroke-width\"]),this.hasStroke=!0):\"stroke-width\"===a&&0===c&&this.hasStroke?(k.removeAttribute(\"stroke\"),this.hasStroke=!1):this.renderer.styledMode&&this[\"stroke-width\"]&&(k.setAttribute(\"stroke-width\",this[\"stroke-width\"]),this.hasStroke=!0)};B.prototype.strokeWidth=function(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;var c=this.getStyle(\"stroke-width\"),a=0;if(c.indexOf(\"px\")===c.length-2)a=G(c);else if(\"\"!==c){var k=M.createElementNS(F,\"rect\");w(k,{width:c,\"stroke-width\":0});\nthis.element.parentNode.appendChild(k);a=k.getBBox().width;k.parentNode.removeChild(k)}return a};B.prototype.symbolAttr=function(c){var a=this;\"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function(k){a[k]=y(c[k],a[k])});a.attr({d:a.renderer.symbols[a.symbolName](a.x,a.y,a.width,a.height,a)})};B.prototype.textSetter=function(c){c!==this.textStr&&(delete this.textPxLength,this.textStr=c,this.added&&this.renderer.buildText(this))};B.prototype.titleSetter=function(c){var a=\nthis.element.getElementsByTagName(\"title\")[0];a||(a=M.createElementNS(this.SVG_NS,\"title\"),this.element.appendChild(a));a.firstChild&&a.removeChild(a.firstChild);a.appendChild(M.createTextNode(String(y(c,\"\")).replace(/<[^>]*>/g,\"\").replace(/</g,\"<\").replace(/>/g,\">\")))};B.prototype.toFront=function(){var c=this.element;c.parentNode.appendChild(c);return this};B.prototype.translate=function(c,a){return this.attr({translateX:c,translateY:a})};B.prototype.updateShadows=function(c,a,k){var r=this.shadows;\nif(r)for(var e=r.length;e--;)k.call(r[e],\"height\"===c?Math.max(a-(r[e].cutHeight||0),0):\"d\"===c?this.d:a,c,r[e])};B.prototype.updateTransform=function(){var c=this.translateX||0,a=this.translateY||0,k=this.scaleX,r=this.scaleY,e=this.inverted,b=this.rotation,l=this.matrix,g=this.element;e&&(c+=this.width,a+=this.height);c=[\"translate(\"+c+\",\"+a+\")\"];N(l)&&c.push(\"matrix(\"+l.join(\",\")+\")\");e?c.push(\"rotate(90) scale(-1,1)\"):b&&c.push(\"rotate(\"+b+\" \"+y(this.rotationOriginX,g.getAttribute(\"x\"),0)+\" \"+\ny(this.rotationOriginY,g.getAttribute(\"y\")||0)+\")\");(N(k)||N(r))&&c.push(\"scale(\"+y(k,1)+\" \"+y(r,1)+\")\");c.length&&g.setAttribute(\"transform\",c.join(\" \"))};B.prototype.visibilitySetter=function(c,a,k){\"inherit\"===c?k.removeAttribute(a):this[a]!==c&&k.setAttribute(a,c);this[a]=c};B.prototype.xGetter=function(c){\"circle\"===this.element.nodeName&&(\"x\"===c?c=\"cx\":\"y\"===c&&(c=\"cy\"));return this._defaultGetter(c)};B.prototype.zIndexSetter=function(c,a){var k=this.renderer,r=this.parentGroup,e=(r||k).element||\nk.box,b=this.element,l=!1;k=e===k.box;var g=this.added;var h;N(c)?(b.setAttribute(\"data-z-index\",c),c=+c,this[a]===c&&(g=!1)):N(this[a])&&b.removeAttribute(\"data-z-index\");this[a]=c;if(g){(c=this.zIndex)&&r&&(r.handleZ=!0);a=e.childNodes;for(h=a.length-1;0<=h&&!l;h--){r=a[h];g=r.getAttribute(\"data-z-index\");var p=!N(g);if(r!==b)if(0>c&&p&&!k&&!h)e.insertBefore(b,a[h]),l=!0;else if(G(g)<=c||p&&(!N(c)||0<=c))e.insertBefore(b,a[h+1]||null),l=!0}l||(e.insertBefore(b,a[k?3:0]||null),l=!0)}return l};return B}();\nE.prototype[\"stroke-widthSetter\"]=E.prototype.strokeSetter;E.prototype.yGetter=E.prototype.xGetter;E.prototype.matrixSetter=E.prototype.rotationOriginXSetter=E.prototype.rotationOriginYSetter=E.prototype.rotationSetter=E.prototype.scaleXSetter=E.prototype.scaleYSetter=E.prototype.translateXSetter=E.prototype.translateYSetter=E.prototype.verticalAlignSetter=function(e,c){this[c]=e;this.doTransform=!0};f.SVGElement=E;return f.SVGElement});Q(A,\"parts/SvgRenderer.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],\nA[\"parts/SVGElement.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q){var M=d.parse,K=q.addEvent,J=q.attr,L=q.createElement,x=q.css,F=q.defined,H=q.destroyObjectProperties,C=q.extend,D=q.isArray,w=q.isNumber,n=q.isObject,t=q.isString,N=q.merge,m=q.objectEach,b=q.pick,g=q.pInt,v=q.removeEvent,h=q.splat,e=q.uniqueKey,p=f.charts,l=f.deg2rad,I=f.doc,u=f.isFirefox,y=f.isMS,G=f.isWebKit;q=f.noop;var S=f.svg,R=f.SVG_NS,B=f.symbolSizes,c=f.win;d=f.SVGRenderer=function(){this.init.apply(this,arguments)};C(d.prototype,\n{Element:E,SVG_NS:R,init:function(a,k,r,e,b,l,g){var z=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"});g||z.css(this.getStyle(e));e=z.element;a.appendChild(e);J(a,\"dir\",\"ltr\");-1===a.innerHTML.indexOf(\"xmlns\")&&J(e,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=e;this.boxWrapper=z;this.alignedObjects=[];this.url=(u||G)&&I.getElementsByTagName(\"base\").length?c.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\"):\"\";this.createElement(\"desc\").add().element.appendChild(I.createTextNode(\"Created with Highcharts 8.1.0\"));\nthis.defs=this.createElement(\"defs\").add();this.allowHTML=l;this.forExport=b;this.styledMode=g;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(k,r,!1);var h;u&&a.getBoundingClientRect&&(k=function(){x(a,{left:0,top:0});h=a.getBoundingClientRect();x(a,{left:Math.ceil(h.left)-h.left+\"px\",top:Math.ceil(h.top)-h.top+\"px\"})},k(),this.unSubPixelFix=K(c,\"resize\",k))},definition:function(a){function c(a,k){var e;h(a).forEach(function(a){var b=r.createElement(a.tagName),l={};\nm(a,function(a,c){\"tagName\"!==c&&\"children\"!==c&&\"textContent\"!==c&&(l[c]=a)});b.attr(l);b.add(k||r.defs);a.textContent&&b.element.appendChild(I.createTextNode(a.textContent));c(a.children||[],b);e=b});return e}var r=this;return c(a)},getStyle:function(a){return this.style=C({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=\nthis.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();H(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:q,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},truncate:function(a,c,r,e,b,l,g){var k=this,z=a.rotation,h,p=e?1:0,u=(r||e).length,P=u,m=[],v=function(a){c.firstChild&&\nc.removeChild(c.firstChild);a&&c.appendChild(I.createTextNode(a))},y=function(l,z){z=z||l;if(\"undefined\"===typeof m[z])if(c.getSubStringLength)try{m[z]=b+c.getSubStringLength(0,e?z+1:z)}catch(fa){\"\"}else k.getSpanWidth&&(v(g(r||e,l)),m[z]=b+k.getSpanWidth(a,c));return m[z]},n;a.rotation=0;var U=y(c.textContent.length);if(n=b+U>l){for(;p<=u;)P=Math.ceil((p+u)/2),e&&(h=g(e,P)),U=y(P,h&&h.length-1),p===u?p=u+1:U>l?u=P-1:p=P;0===u?v(\"\"):r&&u===r.length-1||v(h||g(r||e,P))}e&&e.splice(0,P);a.actualWidth=\nU;a.rotation=z;return n},escapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},buildText:function(a){var c=a.element,r=this,e=r.forExport,l=b(a.textStr,\"\").toString(),h=-1!==l.indexOf(\"<\"),p=c.childNodes,u,v=J(c,\"x\"),y=a.styles,n=a.textWidth,O=y&&y.lineHeight,V=y&&y.textOutline,t=y&&\"ellipsis\"===y.textOverflow,G=y&&\"nowrap\"===y.whiteSpace,d=y&&y.fontSize,w,B=p.length;y=n&&!a.added&&this.box;var f=function(a){var k;r.styledMode||(k=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:\nd||r.style.fontSize||12);return O?g(O):r.fontMetrics(k,a.getAttribute(\"style\")?a:c).h},N=function(a,c){m(r.escapes,function(k,r){c&&-1!==c.indexOf(k)||(a=a.toString().replace(new RegExp(k,\"g\"),r))});return a},C=function(a,c){var k=a.indexOf(\"<\");a=a.substring(k,a.indexOf(\">\")-k);k=a.indexOf(c+\"=\");if(-1!==k&&(k=k+c.length+1,c=a.charAt(k),'\"'===c||\"'\"===c))return a=a.substring(k+1),a.substring(0,a.indexOf(c))},D=/<br.*?>/g;var q=[l,t,G,O,V,d,n].join();if(q!==a.textCache){for(a.textCache=q;B--;)c.removeChild(p[B]);\nh||V||t||n||-1!==l.indexOf(\" \")&&(!G||D.test(l))?(y&&y.appendChild(c),h?(l=r.styledMode?l.replace(/<(b|strong)>/g,'<span class=\"highcharts-strong\">').replace(/<(i|em)>/g,'<span class=\"highcharts-emphasized\">'):l.replace(/<(b|strong)>/g,'<span style=\"font-weight:bold\">').replace(/<(i|em)>/g,'<span style=\"font-style:italic\">'),l=l.replace(/<a/g,\"<span\").replace(/<\\/(b|strong|i|em|a)>/g,\"</span>\").split(D)):l=[l],l=l.filter(function(a){return\"\"!==a}),l.forEach(function(k,b){var l=0,g=0;k=k.replace(/^\\s+|\\s+$/g,\n\"\").replace(/<span/g,\"|||<span\").replace(/<\\/span>/g,\"</span>|||\");var z=k.split(\"|||\");z.forEach(function(k){if(\"\"!==k||1===z.length){var h={},p=I.createElementNS(r.SVG_NS,\"tspan\"),m,P;(m=C(k,\"class\"))&&J(p,\"class\",m);if(m=C(k,\"style\"))m=m.replace(/(;| |^)color([ :])/,\"$1fill$2\"),J(p,\"style\",m);(P=C(k,\"href\"))&&!e&&(J(p,\"onclick\",'location.href=\"'+P+'\"'),J(p,\"class\",\"highcharts-anchor\"),r.styledMode||x(p,{cursor:\"pointer\"}));k=N(k.replace(/<[a-zA-Z\\/](.|\\n)*?>/g,\"\")||\" \");if(\" \"!==k){p.appendChild(I.createTextNode(k));\nl?h.dx=0:b&&null!==v&&(h.x=v);J(p,h);c.appendChild(p);!l&&w&&(!S&&e&&x(p,{display:\"block\"}),J(p,\"dy\",f(p)));if(n){var O=k.replace(/([^\\^])-/g,\"$1- \").split(\" \");h=!G&&(1<z.length||b||1<O.length);P=0;var y=f(p);if(t)u=r.truncate(a,p,k,void 0,0,Math.max(0,n-parseInt(d||12,10)),function(a,c){return a.substring(0,c)+\"\\u2026\"});else if(h)for(;O.length;)O.length&&!G&&0<P&&(p=I.createElementNS(R,\"tspan\"),J(p,{dy:y,x:v}),m&&J(p,\"style\",m),p.appendChild(I.createTextNode(O.join(\" \").replace(/- /g,\"-\"))),c.appendChild(p)),\nr.truncate(a,p,null,O,0===P?g:0,n,function(a,c){return O.slice(0,c).join(\" \").replace(/- /g,\"-\")}),g=a.actualWidth,P++}l++}}});w=w||c.childNodes.length}),t&&u&&a.attr(\"title\",N(a.textStr,[\"<\",\">\"])),y&&y.removeChild(c),V&&a.applyTextOutline&&a.applyTextOutline(V)):c.appendChild(I.createTextNode(N(l)))}},getContrast:function(a){a=M(a).rgba;a[0]*=1;a[1]*=1.2;a[2]*=.5;return 459<a[0]+a[1]+a[2]?\"#000000\":\"#FFFFFF\"},button:function(a,c,r,e,b,l,g,h,p,u){var k=this.label(a,c,r,p,void 0,void 0,u,void 0,\n\"button\"),z=0,m=this.styledMode;k.attr(N({padding:8,r:2},b));if(!m){b=N({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontWeight:\"normal\"}},b);var P=b.style;delete b.style;l=N(b,{fill:\"#e6e6e6\"},l);var v=l.style;delete l.style;g=N(b,{fill:\"#e6ebf5\",style:{color:\"#000000\",fontWeight:\"bold\"}},g);var n=g.style;delete g.style;h=N(b,{style:{color:\"#cccccc\"}},h);var U=h.style;delete h.style}K(k.element,y?\"mouseover\":\"mouseenter\",function(){3!==z&&k.setState(1)});\nK(k.element,y?\"mouseout\":\"mouseleave\",function(){3!==z&&k.setState(z)});k.setState=function(a){1!==a&&(k.state=z=a);k.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][a||0]);m||k.attr([b,l,g,h][a||0]).css([P,v,n,U][a||0])};m||k.attr(b).css(C({cursor:\"default\"},P));return k.on(\"click\",function(a){3!==z&&e.call(k,a)})},crispLine:function(a,c,r){void 0===r&&(r=\"round\");var k=a[0],e=a[1];k[1]===e[1]&&(k[1]=e[1]=Math[r](k[1])-\nc%2/2);k[2]===e[2]&&(k[2]=e[2]=Math[r](k[2])+c%2/2);return a},path:function(a){var c=this.styledMode?{}:{fill:\"none\"};D(a)?c.d=a:n(a)&&C(c,a);return this.createElement(\"path\").attr(c)},circle:function(a,c,r){a=n(a)?a:\"undefined\"===typeof a?{}:{x:a,y:c,r:r};c=this.createElement(\"circle\");c.xSetter=c.ySetter=function(a,c,k){k.setAttribute(\"c\"+c,a)};return c.attr(a)},arc:function(a,c,r,e,b,l){n(a)?(e=a,c=e.y,r=e.r,a=e.x):e={innerR:e,start:b,end:l};a=this.symbol(\"arc\",a,c,r,r,e);a.r=r;return a},rect:function(a,\nc,r,e,b,l){b=n(a)?a.r:b;var k=this.createElement(\"rect\");a=n(a)?a:\"undefined\"===typeof a?{}:{x:a,y:c,width:Math.max(r,0),height:Math.max(e,0)};this.styledMode||(\"undefined\"!==typeof l&&(a.strokeWidth=l,a=k.crisp(a)),a.fill=\"none\");b&&(a.r=b);k.rSetter=function(a,c,r){k.r=a;J(r,{rx:a,ry:a})};k.rGetter=function(){return k.r};return k.attr(a)},setSize:function(a,c,r){var k=this.alignedObjects,e=k.length;this.width=a;this.height=c;for(this.boxWrapper.animate({width:a,height:c},{step:function(){this.attr({viewBox:\"0 0 \"+\nthis.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:b(r,!0)?void 0:0});e--;)k[e].align()},g:function(a){var c=this.createElement(\"g\");return a?c.attr({\"class\":\"highcharts-\"+a}):c},image:function(a,k,r,e,b,l){var g={preserveAspectRatio:\"none\"},h=function(a,c){a.setAttributeNS?a.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",c):a.setAttribute(\"hc-svg-href\",c)},z=function(c){h(p.element,a);l.call(p,c)};1<arguments.length&&C(g,{x:k,y:r,width:e,height:b});var p=this.createElement(\"image\").attr(g);\nl?(h(p.element,\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"),g=new c.Image,K(g,\"load\",z),g.src=a,g.complete&&z({})):h(p.element,a);return p},symbol:function(a,c,r,e,l,g){var k=this,h=/^url\\((.*?)\\)$/,z=h.test(a),u=!z&&(this.symbols[a]?a:\"circle\"),m=u&&this.symbols[u],v;if(m){\"number\"===typeof c&&(v=m.call(this.symbols,Math.round(c||0),Math.round(r||0),e,l,g));var P=this.path(v);k.styledMode||P.attr(\"fill\",\"none\");C(P,{symbolName:u,x:c,y:r,width:e,height:l});g&&C(P,\ng)}else if(z){var y=a.match(h)[1];P=this.image(y);P.imgwidth=b(B[y]&&B[y].width,g&&g.width);P.imgheight=b(B[y]&&B[y].height,g&&g.height);var n=function(){P.attr({width:P.width,height:P.height})};[\"width\",\"height\"].forEach(function(a){P[a+\"Setter\"]=function(a,c){var k={},r=this[\"img\"+c],e=\"width\"===c?\"translateX\":\"translateY\";this[c]=a;F(r)&&(g&&\"within\"===g.backgroundSize&&this.width&&this.height&&(r=Math.round(r*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(c,\nr),this.alignByTranslate||(k[e]=((this[c]||0)-r)/2,this.attr(k)))}});F(c)&&P.attr({x:c,y:r});P.isImg=!0;F(P.imgwidth)&&F(P.imgheight)?n():(P.attr({width:0,height:0}),L(\"img\",{onload:function(){var a=p[k.chartIndex];0===this.width&&(x(this,{position:\"absolute\",top:\"-999em\"}),I.body.appendChild(this));B[y]={width:this.width,height:this.height};P.imgwidth=this.width;P.imgheight=this.height;P.element&&n();this.parentNode&&this.parentNode.removeChild(this);k.imgCount--;if(!k.imgCount&&a&&!a.hasLoaded)a.onload()},\nsrc:y}),this.imgCount++)}return P},symbols:{circle:function(a,c,r,e){return this.arc(a+r/2,c+e/2,r/2,e/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(a,c,r,e){return[[\"M\",a,c],[\"L\",a+r,c],[\"L\",a+r,c+e],[\"L\",a,c+e],[\"Z\"]]},triangle:function(a,c,r,e){return[[\"M\",a+r/2,c],[\"L\",a+r,c+e],[\"L\",a,c+e],[\"Z\"]]},\"triangle-down\":function(a,c,r,e){return[[\"M\",a,c],[\"L\",a+r,c],[\"L\",a+r/2,c+e],[\"Z\"]]},diamond:function(a,c,r,e){return[[\"M\",a+r/2,c],[\"L\",a+r,c+e/2],[\"L\",a+r/2,c+e],[\"L\",a,c+e/2],[\"Z\"]]},\narc:function(a,c,r,e,l){var k=l.start,g=l.r||r,h=l.r||e||r,p=l.end-.001;r=l.innerR;e=b(l.open,.001>Math.abs(l.end-l.start-2*Math.PI));var z=Math.cos(k),u=Math.sin(k),m=Math.cos(p);p=Math.sin(p);k=b(l.longArc,.001>l.end-k-Math.PI?0:1);g=[[\"M\",a+g*z,c+h*u],[\"A\",g,h,0,k,b(l.clockwise,1),a+g*m,c+h*p]];F(r)&&g.push(e?[\"M\",a+r*m,c+r*p]:[\"L\",a+r*m,c+r*p],[\"A\",r,r,0,k,F(l.clockwise)?1-l.clockwise:0,a+r*z,c+r*u]);e||g.push([\"Z\"]);return g},callout:function(a,c,r,e,b){var k=Math.min(b&&b.r||0,r,e),l=k+6,g=\nb&&b.anchorX;b=b&&b.anchorY;var h=[[\"M\",a+k,c],[\"L\",a+r-k,c],[\"C\",a+r,c,a+r,c,a+r,c+k],[\"L\",a+r,c+e-k],[\"C\",a+r,c+e,a+r,c+e,a+r-k,c+e],[\"L\",a+k,c+e],[\"C\",a,c+e,a,c+e,a,c+e-k],[\"L\",a,c+k],[\"C\",a,c,a,c,a+k,c]];g&&g>r?b>c+l&&b<c+e-l?h.splice(3,1,[\"L\",a+r,b-6],[\"L\",a+r+6,b],[\"L\",a+r,b+6],[\"L\",a+r,c+e-k]):h.splice(3,1,[\"L\",a+r,e/2],[\"L\",g,b],[\"L\",a+r,e/2],[\"L\",a+r,c+e-k]):g&&0>g?b>c+l&&b<c+e-l?h.splice(7,1,[\"L\",a,b+6],[\"L\",a-6,b],[\"L\",a,b-6],[\"L\",a,c+k]):h.splice(7,1,[\"L\",a,e/2],[\"L\",g,b],[\"L\",a,e/2],\n[\"L\",a,c+k]):b&&b>e&&g>a+l&&g<a+r-l?h.splice(5,1,[\"L\",g+6,c+e],[\"L\",g,c+e+6],[\"L\",g-6,c+e],[\"L\",a+k,c+e]):b&&0>b&&g>a+l&&g<a+r-l&&h.splice(1,1,[\"L\",g-6,c],[\"L\",g,c-6],[\"L\",g+6,c],[\"L\",r-k,c]);return h}},clipRect:function(a,c,r,b){var k=e()+\"-\",l=this.createElement(\"clipPath\").attr({id:k}).add(this.defs);a=this.rect(a,c,r,b,0).add(l);a.id=k;a.clipPath=l;a.count=0;return a},text:function(a,c,e,b){var k={};if(b&&(this.allowHTML||!this.forExport))return this.html(a,c,e);k.x=Math.round(c||0);e&&(k.y=Math.round(e));\nF(a)&&(k.text=a);a=this.createElement(\"text\").attr(k);b||(a.xSetter=function(a,c,k){var e=k.getElementsByTagName(\"tspan\"),r=k.getAttribute(c),b;for(b=0;b<e.length;b++){var l=e[b];l.getAttribute(c)===r&&l.setAttribute(c,a)}k.setAttribute(c,a)});return a},fontMetrics:function(a,k){a=!this.styledMode&&/px/.test(a)||!c.getComputedStyle?a||k&&k.style&&k.style.fontSize||this.style&&this.style.fontSize:k&&E.prototype.getStyle.call(k,\"font-size\");a=/px/.test(a)?g(a):12;k=24>a?a+3:Math.round(1.2*a);return{h:k,\nb:Math.round(.8*k),f:a}},rotCorr:function(a,c,e){var k=a;c&&e&&(k=Math.max(k*Math.cos(c*l),4));return{x:-a/3*Math.sin(c*l),y:k}},pathToSegments:function(a){for(var c=[],e=[],b={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},l=0;l<a.length;l++)t(e[0])&&w(a[l])&&e.length===b[e[0].toUpperCase()]&&a.splice(l,0,e[0].replace(\"M\",\"L\").replace(\"m\",\"l\")),\"string\"===typeof a[l]&&(e.length&&c.push(e.slice(0)),e.length=0),e.push(a[l]);c.push(e.slice(0));return c},label:function(a,c,e,b,l,g,h,p,u){var k=this,r=k.styledMode,\nz=k.g(\"button\"!==u&&\"label\"),m=z.text=k.text(\"\",0,0,h).attr({zIndex:1}),y,P={width:0,height:0,x:0,y:0},n=P,t=0,I=3,G=0,U,d,B,f,S,R={},x,W,T=/^url\\((.*?)\\)$/.test(b),D=r||T,q=function(){return r?y.strokeWidth()%2/2:(x?parseInt(x,10):0)%2/2};u&&z.addClass(\"highcharts-\"+u);var Y=function(){var a=m.element.style,c={};n=w(U)&&w(d)&&!S||!F(m.textStr)?P:m.getBBox();z.width=(U||n.width||0)+2*I+G;z.height=(d||n.height||0)+2*I;W=I+Math.min(k.fontMetrics(a&&a.fontSize,m).b,n.height||Infinity);D&&(y||(z.box=\ny=k.symbols[b]||T?k.symbol(b):k.rect(),y.addClass((\"button\"===u?\"\":\"highcharts-label-box\")+(u?\" highcharts-\"+u+\"-box\":\"\")),y.add(z),a=q(),c.x=a,c.y=(p?-W:0)+a),c.width=Math.round(z.width),c.height=Math.round(z.height),y.attr(C(c,R)),R={})};var H=function(){var a=G+I;var c=p?0:W;F(U)&&n&&(\"center\"===S||\"right\"===S)&&(a+={center:.5,right:1}[S]*(U-n.width));if(a!==m.x||c!==m.y)m.attr(\"x\",a),m.hasBoxWidthChanged&&(n=m.getBBox(!0),Y()),\"undefined\"!==typeof c&&m.attr(\"y\",c);m.x=a;m.y=c};var L=function(a,\nc){y?y.attr(a,c):R[a]=c};z.onAdd=function(){m.add(z);z.attr({text:a||0===a?a:\"\",x:c,y:e});y&&F(l)&&z.attr({anchorX:l,anchorY:g})};z.widthSetter=function(a){U=w(a)?a:null};z.heightSetter=function(a){d=a};z[\"text-alignSetter\"]=function(a){S=a};z.paddingSetter=function(a){F(a)&&a!==I&&(I=z.padding=a,H())};z.paddingLeftSetter=function(a){F(a)&&a!==G&&(G=a,H())};z.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==t&&(t=a,n&&z.attr({x:B}))};z.textSetter=function(a){\"undefined\"!==typeof a&&m.attr({text:a});\nY();H()};z[\"stroke-widthSetter\"]=function(a,c){a&&(D=!0);x=this[\"stroke-width\"]=a;L(c,a)};r?z.rSetter=function(a,c){L(c,a)}:z.strokeSetter=z.fillSetter=z.rSetter=function(a,c){\"r\"!==c&&(\"fill\"===c&&a&&(D=!0),z[c]=a);L(c,a)};z.anchorXSetter=function(a,c){l=z.anchorX=a;L(c,Math.round(a)-q()-B)};z.anchorYSetter=function(a,c){g=z.anchorY=a;L(c,a-f)};z.xSetter=function(a){z.x=a;t&&(a-=t*((U||n.width)+2*I),z[\"forceAnimate:x\"]=!0);B=Math.round(a);z.attr(\"translateX\",B)};z.ySetter=function(a){f=z.y=Math.round(a);\nz.attr(\"translateY\",f)};z.isLabel=!0;var J=z.css;h={css:function(a){if(a){var c={};a=N(a);z.textProps.forEach(function(k){\"undefined\"!==typeof a[k]&&(c[k]=a[k],delete a[k])});m.css(c);var k=\"fontSize\"in c||\"fontWeight\"in c;if(\"width\"in c||k)Y(),k&&H()}return J.call(z,a)},getBBox:function(){return{width:n.width+2*I,height:n.height+2*I,x:n.x-I,y:n.y-I}},destroy:function(){v(z.element,\"mouseenter\");v(z.element,\"mouseleave\");m&&m.destroy();y&&(y=y.destroy());E.prototype.destroy.call(z);z=k=m=Y=H=L=null}};\nz.on=function(a,c){var k=m&&\"SPAN\"===m.element.tagName?m:void 0;if(k){var e=function(e){(\"mouseenter\"===a||\"mouseleave\"===a)&&e.relatedTarget instanceof Element&&(z.element.contains(e.relatedTarget)||k.element.contains(e.relatedTarget))||c.call(z.element,e)};k.on(a,e)}E.prototype.on.call(z,a,e||c);return z};r||(h.shadow=function(a){a&&(Y(),y&&y.shadow(a));return z});return C(z,h)}});f.Renderer=d});Q(A,\"parts/Html.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.attr,q=f.createElement,\nM=f.css,K=f.defined,J=f.extend,L=f.pick,x=f.pInt,F=d.isFirefox,H=d.isMS,C=d.isWebKit,D=d.SVGElement;f=d.SVGRenderer;var w=d.win;J(D.prototype,{htmlCss:function(n){var t=\"SPAN\"===this.element.tagName&&n&&\"width\"in n,d=L(t&&n.width,void 0);if(t){delete n.width;this.textWidth=d;var m=!0}n&&\"ellipsis\"===n.textOverflow&&(n.whiteSpace=\"nowrap\",n.overflow=\"hidden\");this.styles=J(this.styles,n);M(this.element,n);m&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var n=this.element;return{x:n.offsetLeft,\ny:n.offsetTop,width:n.offsetWidth,height:n.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var n=this.renderer,t=this.element,d=this.translateX||0,m=this.translateY||0,b=this.x||0,g=this.y||0,v=this.textAlign||\"left\",h={left:0,center:.5,right:1}[v],e=this.styles,p=e&&e.whiteSpace;M(t,{marginLeft:d,marginTop:m});!n.styledMode&&this.shadows&&this.shadows.forEach(function(e){M(e,{marginLeft:d+1,marginTop:m+1})});this.inverted&&[].forEach.call(t.childNodes,function(e){n.invertChild(e,t)});\nif(\"SPAN\"===t.tagName){e=this.rotation;var l=this.textWidth&&x(this.textWidth),I=[e,v,t.innerHTML,this.textWidth,this.textAlign].join(),u;(u=l!==this.oldTextWidth)&&!(u=l>this.oldTextWidth)&&((u=this.textPxLength)||(M(t,{width:\"\",whiteSpace:p||\"nowrap\"}),u=t.offsetWidth),u=u>l);u&&(/[ \\-]/.test(t.textContent||t.innerText)||\"ellipsis\"===t.style.textOverflow)?(M(t,{width:l+\"px\",display:\"block\",whiteSpace:p||\"normal\"}),this.oldTextWidth=l,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;I!==this.cTT&&\n(p=n.fontMetrics(t.style.fontSize,t).b,!K(e)||e===(this.oldRotation||0)&&v===this.oldAlign||this.setSpanRotation(e,h,p),this.getSpanCorrection(!K(e)&&this.textPxLength||t.offsetWidth,p,h,e,v));M(t,{left:b+(this.xCorr||0)+\"px\",top:g+(this.yCorr||0)+\"px\"});this.cTT=I;this.oldRotation=e;this.oldAlign=v}}else this.alignOnAdd=!0},setSpanRotation:function(n,t,d){var m={},b=this.renderer.getTransformKey();m[b]=m.transform=\"rotate(\"+n+\"deg)\";m[b+(F?\"Origin\":\"-origin\")]=m.transformOrigin=100*t+\"% \"+d+\"px\";\nM(this.element,m)},getSpanCorrection:function(n,t,d){this.xCorr=-n*d;this.yCorr=-t}});J(f.prototype,{getTransformKey:function(){return H&&!/Edge/.test(w.navigator.userAgent)?\"-ms-transform\":C?\"-webkit-transform\":F?\"MozTransform\":w.opera?\"-o-transform\":\"\"},html:function(n,t,d){var m=this.createElement(\"span\"),b=m.element,g=m.renderer,v=g.isSVG,h=function(e,b){[\"opacity\",\"visibility\"].forEach(function(l){e[l+\"Setter\"]=function(g,h,p){var u=e.div?e.div.style:b;D.prototype[l+\"Setter\"].call(this,g,h,p);\nu&&(u[h]=g)}});e.addedSetters=!0};m.textSetter=function(e){e!==b.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=e;b.innerHTML=L(e,\"\");m.doTransform=!0};v&&h(m,m.element.style);m.xSetter=m.ySetter=m.alignSetter=m.rotationSetter=function(e,b){\"align\"===b&&(b=\"textAlign\");m[b]=e;m.doTransform=!0};m.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};m.attr({text:n,x:Math.round(t),y:Math.round(d)}).css({position:\"absolute\"});g.styledMode||m.css({fontFamily:this.style.fontFamily,\nfontSize:this.style.fontSize});b.style.whiteSpace=\"nowrap\";m.css=m.htmlCss;v&&(m.add=function(e){var p=g.box.parentNode,l=[];if(this.parentGroup=e){var v=e.div;if(!v){for(;e;)l.push(e),e=e.parentGroup;l.reverse().forEach(function(e){function b(b,l){e[l]=b;\"translateX\"===l?u.left=b+\"px\":u.top=b+\"px\";e.doTransform=!0}var g=E(e.element,\"class\");v=e.div=e.div||q(\"div\",g?{className:g}:void 0,{position:\"absolute\",left:(e.translateX||0)+\"px\",top:(e.translateY||0)+\"px\",display:e.display,opacity:e.opacity,\npointerEvents:e.styles&&e.styles.pointerEvents},v||p);var u=v.style;J(e,{classSetter:function(e){return function(b){this.element.setAttribute(\"class\",b);e.className=b}}(v),on:function(){l[0].div&&m.on.apply({element:l[0].div},arguments);return e},translateXSetter:b,translateYSetter:b});e.addedSetters||h(e)})}}else v=p;v.appendChild(b);m.added=!0;m.alignOnAdd&&m.htmlUpdateTransform();return m});return m}})});Q(A,\"parts/Tick.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.clamp,\nq=f.correctFloat,M=f.defined,K=f.destroyObjectProperties,J=f.extend,L=f.fireEvent,x=f.isNumber,F=f.merge,H=f.objectEach,C=f.pick,D=d.deg2rad;f=function(){function d(n,t,d,m,b){this.isNewLabel=this.isNew=!0;this.axis=n;this.pos=t;this.type=d||\"\";this.parameters=b||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;L(this,\"init\");d||m||this.addLabel()}d.prototype.addLabel=function(){var n=this,t=n.axis,d=t.options,m=t.chart,b=t.categories,g=t.logarithmic,v=t.names,\nh=n.pos,e=C(n.options&&n.options.labels,d.labels),p=t.tickPositions,l=h===p[0],I=h===p[p.length-1];v=this.parameters.category||(b?C(b[h],v[h],h):h);var u=n.label;b=(!e.step||1===e.step)&&1===t.tickInterval;p=p.info;var y,G;if(t.dateTime&&p){var f=m.time.resolveDTLFormat(d.dateTimeLabelFormats[!d.grid&&p.higherRanks[h]||p.unitName]);var w=f.main}n.isFirst=l;n.isLast=I;n.formatCtx={axis:t,chart:m,isFirst:l,isLast:I,dateTimeLabelFormat:w,tickPositionInfo:p,value:g?q(g.lin2log(v)):v,pos:h};d=t.labelFormatter.call(n.formatCtx,\nthis.formatCtx);if(G=f&&f.list)n.shortenLabel=function(){for(y=0;y<G.length;y++)if(u.attr({text:t.labelFormatter.call(J(n.formatCtx,{dateTimeLabelFormat:G[y]}))}),u.getBBox().width<t.getSlotWidth(n)-2*C(e.padding,5))return;u.attr({text:\"\"})};b&&t._addedPlotLB&&t.isXAxis&&n.moveLabel(d,e);M(u)||n.movedLabel?u&&u.textStr!==d&&!b&&(!u.textWidth||e.style&&e.style.width||u.styles.width||u.css({width:null}),u.attr({text:d}),u.textPxLength=u.getBBox().width):(n.label=u=n.createLabel({x:0,y:0},d,e),n.rotation=\n0)};d.prototype.createLabel=function(n,t,d){var m=this.axis,b=m.chart;if(n=M(t)&&d.enabled?b.renderer.text(t,n.x,n.y,d.useHTML).add(m.labelGroup):null)b.styledMode||n.css(F(d.style)),n.textPxLength=n.getBBox().width;return n};d.prototype.destroy=function(){K(this,this.axis)};d.prototype.getPosition=function(n,t,d,m){var b=this.axis,g=b.chart,v=m&&g.oldChartHeight||g.chartHeight;n={x:n?q(b.translate(t+d,null,null,m)+b.transB):b.left+b.offset+(b.opposite?(m&&g.oldChartWidth||g.chartWidth)-b.right-b.left:\n0),y:n?v-b.bottom+b.offset-(b.opposite?b.height:0):q(v-b.translate(t+d,null,null,m)-b.transB)};n.y=E(n.y,-1E5,1E5);L(this,\"afterGetPosition\",{pos:n});return n};d.prototype.getLabelPosition=function(n,t,d,m,b,g,v,h){var e=this.axis,p=e.transA,l=e.isLinked&&e.linkedParent?e.linkedParent.reversed:e.reversed,I=e.staggerLines,u=e.tickRotCorr||{x:0,y:0},y=b.y,G=m||e.reserveSpaceDefault?0:-e.labelOffset*(\"center\"===e.labelAlign?.5:1),f={};M(y)||(y=0===e.side?d.rotation?-8:-d.getBBox().height:2===e.side?\nu.y+8:Math.cos(d.rotation*D)*(u.y-d.getBBox(!1,0).height/2));n=n+b.x+G+u.x-(g&&m?g*p*(l?-1:1):0);t=t+y-(g&&!m?g*p*(l?1:-1):0);I&&(d=v/(h||1)%I,e.opposite&&(d=I-d-1),t+=e.labelOffset/I*d);f.x=n;f.y=Math.round(t);L(this,\"afterGetLabelPosition\",{pos:f,tickmarkOffset:g,index:v});return f};d.prototype.getLabelSize=function(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0};d.prototype.getMarkPath=function(n,d,f,m,b,g){return g.crispLine([[\"M\",n,d],[\"L\",n+(b?0:-f),d+(b?f:0)]],\nm)};d.prototype.handleOverflow=function(n){var d=this.axis,f=d.options.labels,m=n.x,b=d.chart.chartWidth,g=d.chart.spacing,v=C(d.labelLeft,Math.min(d.pos,g[3]));g=C(d.labelRight,Math.max(d.isRadial?0:d.pos+d.len,b-g[1]));var h=this.label,e=this.rotation,p={left:0,center:.5,right:1}[d.labelAlign||h.attr(\"align\")],l=h.getBBox().width,I=d.getSlotWidth(this),u=I,y=1,G,w={};if(e||\"justify\"!==C(f.overflow,\"justify\"))0>e&&m-p*l<v?G=Math.round(m/Math.cos(e*D)-v):0<e&&m+p*l>g&&(G=Math.round((b-m)/Math.cos(e*\nD)));else if(b=m+(1-p)*l,m-p*l<v?u=n.x+u*(1-p)-v:b>g&&(u=g-n.x+u*p,y=-1),u=Math.min(I,u),u<I&&\"center\"===d.labelAlign&&(n.x+=y*(I-u-p*(I-Math.min(l,u)))),l>u||d.autoRotation&&(h.styles||{}).width)G=u;G&&(this.shortenLabel?this.shortenLabel():(w.width=Math.floor(G)+\"px\",(f.style||{}).textOverflow||(w.textOverflow=\"ellipsis\"),h.css(w)))};d.prototype.moveLabel=function(n,d){var t=this,m=t.label,b=!1,g=t.axis,v=g.reversed,h=g.chart.inverted;m&&m.textStr===n?(t.movedLabel=m,b=!0,delete t.label):H(g.ticks,\nfunction(e){b||e.isNew||e===t||!e.label||e.label.textStr!==n||(t.movedLabel=e.label,b=!0,e.labelPos=t.movedLabel.xy,delete e.label)});if(!b&&(t.labelPos||m)){var e=t.labelPos||m.xy;m=h?e.x:v?0:g.width+g.left;g=h?v?g.width+g.left:0:e.y;t.movedLabel=t.createLabel({x:m,y:g},n,d);t.movedLabel&&t.movedLabel.attr({opacity:0})}};d.prototype.render=function(n,d,f){var m=this.axis,b=m.horiz,g=this.pos,v=C(this.tickmarkOffset,m.tickmarkOffset);g=this.getPosition(b,g,v,d);v=g.x;var h=g.y;m=b&&v===m.pos+m.len||\n!b&&h===m.pos?-1:1;f=C(f,1);this.isActive=!0;this.renderGridLine(d,f,m);this.renderMark(g,f,m);this.renderLabel(g,d,f,n);this.isNew=!1;L(this,\"afterRender\")};d.prototype.renderGridLine=function(n,d,f){var m=this.axis,b=m.options,g=this.gridLine,v={},h=this.pos,e=this.type,p=C(this.tickmarkOffset,m.tickmarkOffset),l=m.chart.renderer,I=e?e+\"Grid\":\"grid\",u=b[I+\"LineWidth\"],y=b[I+\"LineColor\"];b=b[I+\"LineDashStyle\"];g||(m.chart.styledMode||(v.stroke=y,v[\"stroke-width\"]=u,b&&(v.dashstyle=b)),e||(v.zIndex=\n1),n&&(d=0),this.gridLine=g=l.path().attr(v).addClass(\"highcharts-\"+(e?e+\"-\":\"\")+\"grid-line\").add(m.gridGroup));if(g&&(f=m.getPlotLinePath({value:h+p,lineWidth:g.strokeWidth()*f,force:\"pass\",old:n})))g[n||this.isNew?\"attr\":\"animate\"]({d:f,opacity:d})};d.prototype.renderMark=function(n,d,f){var m=this.axis,b=m.options,g=m.chart.renderer,v=this.type,h=v?v+\"Tick\":\"tick\",e=m.tickSize(h),p=this.mark,l=!p,I=n.x;n=n.y;var u=C(b[h+\"Width\"],!v&&m.isXAxis?1:0);b=b[h+\"Color\"];e&&(m.opposite&&(e[0]=-e[0]),l&&\n(this.mark=p=g.path().addClass(\"highcharts-\"+(v?v+\"-\":\"\")+\"tick\").add(m.axisGroup),m.chart.styledMode||p.attr({stroke:b,\"stroke-width\":u})),p[l?\"attr\":\"animate\"]({d:this.getMarkPath(I,n,e[0],p.strokeWidth()*f,m.horiz,g),opacity:d}))};d.prototype.renderLabel=function(n,d,f,m){var b=this.axis,g=b.horiz,v=b.options,h=this.label,e=v.labels,p=e.step;b=C(this.tickmarkOffset,b.tickmarkOffset);var l=!0,I=n.x;n=n.y;h&&x(I)&&(h.xy=n=this.getLabelPosition(I,n,h,g,e,b,m,p),this.isFirst&&!this.isLast&&!C(v.showFirstLabel,\n1)||this.isLast&&!this.isFirst&&!C(v.showLastLabel,1)?l=!1:!g||e.step||e.rotation||d||0===f||this.handleOverflow(n),p&&m%p&&(l=!1),l&&x(n.y)?(n.opacity=f,h[this.isNewLabel?\"attr\":\"animate\"](n),this.isNewLabel=!1):(h.attr(\"y\",-9999),this.isNewLabel=!0))};d.prototype.replaceMovedLabel=function(){var n=this.label,d=this.axis,f=d.reversed,m=this.axis.chart.inverted;if(n&&!this.isNew){var b=m?n.xy.x:f?d.left:d.width+d.left;f=m?f?d.width+d.top:d.top:n.xy.y;n.animate({x:b,y:f,opacity:0},void 0,n.destroy);\ndelete this.label}d.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return d}();d.Tick=f;return d.Tick});Q(A,\"parts/Time.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.defined,q=f.error,M=f.extend,K=f.isObject,J=f.merge,L=f.objectEach,x=f.pad,F=f.pick,H=f.splat,C=f.timeUnits,D=d.win;f=function(){function f(d){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=D.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(d)}f.prototype.get=\nfunction(d,t){if(this.variableTimezone||this.timezoneOffset){var n=t.getTime(),m=n-this.getTimezoneOffset(t);t.setTime(m);d=t[\"getUTC\"+d]();t.setTime(n);return d}return this.useUTC?t[\"getUTC\"+d]():t[\"get\"+d]()};f.prototype.set=function(d,t,f){if(this.variableTimezone||this.timezoneOffset){if(\"Milliseconds\"===d||\"Seconds\"===d||\"Minutes\"===d)return t[\"setUTC\"+d](f);var m=this.getTimezoneOffset(t);m=t.getTime()-m;t.setTime(m);t[\"setUTC\"+d](f);d=this.getTimezoneOffset(t);m=t.getTime()+d;return t.setTime(m)}return this.useUTC?\nt[\"setUTC\"+d](f):t[\"set\"+d](f)};f.prototype.update=function(d){var n=F(d&&d.useUTC,!0);this.options=d=J(!0,this.options||{},d);this.Date=d.Date||D.Date||Date;this.timezoneOffset=(this.useUTC=n)&&d.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=!(n&&!d.getTimezoneOffset&&!d.timezone)};f.prototype.makeTime=function(n,f,w,m,b,g){if(this.useUTC){var v=this.Date.UTC.apply(0,arguments);var h=this.getTimezoneOffset(v);v+=h;var e=this.getTimezoneOffset(v);h!==e?\nv+=e-h:h-36E5!==this.getTimezoneOffset(v-36E5)||d.isSafari||(v-=36E5)}else v=(new this.Date(n,f,F(w,1),F(m,0),F(b,0),F(g,0))).getTime();return v};f.prototype.timezoneOffsetFunction=function(){var d=this,f=this.options,w=D.moment;if(!this.useUTC)return function(m){return 6E4*(new Date(m.toString())).getTimezoneOffset()};if(f.timezone){if(w)return function(m){return 6E4*-w.tz(m,f.timezone).utcOffset()};q(25)}return this.useUTC&&f.getTimezoneOffset?function(m){return 6E4*f.getTimezoneOffset(m.valueOf())}:\nfunction(){return 6E4*(d.timezoneOffset||0)}};f.prototype.dateFormat=function(n,f,w){var m;if(!E(f)||isNaN(f))return(null===(m=d.defaultOptions.lang)||void 0===m?void 0:m.invalidDate)||\"\";n=F(n,\"%Y-%m-%d %H:%M:%S\");var b=this;m=new this.Date(f);var g=this.get(\"Hours\",m),v=this.get(\"Day\",m),h=this.get(\"Date\",m),e=this.get(\"Month\",m),p=this.get(\"FullYear\",m),l=d.defaultOptions.lang,I=null===l||void 0===l?void 0:l.weekdays,u=null===l||void 0===l?void 0:l.shortWeekdays;m=M({a:u?u[v]:I[v].substr(0,3),\nA:I[v],d:x(h),e:x(h,2,\" \"),w:v,b:l.shortMonths[e],B:l.months[e],m:x(e+1),o:e+1,y:p.toString().substr(2,2),Y:p,H:x(g),k:g,I:x(g%12||12),l:g%12||12,M:x(this.get(\"Minutes\",m)),p:12>g?\"AM\":\"PM\",P:12>g?\"am\":\"pm\",S:x(m.getSeconds()),L:x(Math.floor(f%1E3),3)},d.dateFormats);L(m,function(e,l){for(;-1!==n.indexOf(\"%\"+l);)n=n.replace(\"%\"+l,\"function\"===typeof e?e.call(b,f):e)});return w?n.substr(0,1).toUpperCase()+n.substr(1):n};f.prototype.resolveDTLFormat=function(d){return K(d,!0)?d:(d=H(d),{main:d[0],from:d[1],\nto:d[2]})};f.prototype.getTimeTicks=function(d,f,w,m){var b=this,g=[],v={};var h=new b.Date(f);var e=d.unitRange,p=d.count||1,l;m=F(m,1);if(E(f)){b.set(\"Milliseconds\",h,e>=C.second?0:p*Math.floor(b.get(\"Milliseconds\",h)/p));e>=C.second&&b.set(\"Seconds\",h,e>=C.minute?0:p*Math.floor(b.get(\"Seconds\",h)/p));e>=C.minute&&b.set(\"Minutes\",h,e>=C.hour?0:p*Math.floor(b.get(\"Minutes\",h)/p));e>=C.hour&&b.set(\"Hours\",h,e>=C.day?0:p*Math.floor(b.get(\"Hours\",h)/p));e>=C.day&&b.set(\"Date\",h,e>=C.month?1:Math.max(1,\np*Math.floor(b.get(\"Date\",h)/p)));if(e>=C.month){b.set(\"Month\",h,e>=C.year?0:p*Math.floor(b.get(\"Month\",h)/p));var n=b.get(\"FullYear\",h)}e>=C.year&&b.set(\"FullYear\",h,n-n%p);e===C.week&&(n=b.get(\"Day\",h),b.set(\"Date\",h,b.get(\"Date\",h)-n+m+(n<m?-7:0)));n=b.get(\"FullYear\",h);m=b.get(\"Month\",h);var u=b.get(\"Date\",h),y=b.get(\"Hours\",h);f=h.getTime();b.variableTimezone&&(l=w-f>4*C.month||b.getTimezoneOffset(f)!==b.getTimezoneOffset(w));f=h.getTime();for(h=1;f<w;)g.push(f),f=e===C.year?b.makeTime(n+h*p,\n0):e===C.month?b.makeTime(n,m+h*p):!l||e!==C.day&&e!==C.week?l&&e===C.hour&&1<p?b.makeTime(n,m,u,y+h*p):f+e*p:b.makeTime(n,m,u+h*p*(e===C.day?1:7)),h++;g.push(f);e<=C.hour&&1E4>g.length&&g.forEach(function(e){0===e%18E5&&\"000000000\"===b.dateFormat(\"%H%M%S%L\",e)&&(v[e]=\"day\")})}g.info=M(d,{higherRanks:v,totalRange:e*p});return g};f.defaultOptions={Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0};return f}();d.Time=f;return d.Time});Q(A,\"parts/Options.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Time.js\"],A[\"parts/Color.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q){E=E.parse;var M=q.merge;d.defaultOptions={colors:\"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \"),symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\ndecimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:f.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:\"line\",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}},width:null,height:null,borderColor:\"#335cad\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{text:\"Chart title\",align:\"center\",margin:15,\nwidthAdjust:-44},subtitle:{text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},labels:{style:{position:\"absolute\",color:\"#333333\"}},legend:{enabled:!0,align:\"center\",alignColumns:!0,layout:\"horizontal\",labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{activeColor:\"#003399\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"12px\",fontWeight:\"bold\",textOverflow:\"ellipsis\"},\nitemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#cccccc\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:d.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %b %e, %H:%M:%S.%L\",\nsecond:\"%A, %b %e, %H:%M:%S\",minute:\"%A, %b %e, %H:%M\",hour:\"%A, %b %e, %H:%M\",day:\"%A, %b %e, %Y\",week:\"Week from %A, %b %e, %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",padding:8,snap:d.isTouchDevice?25:10,headerFormat:'<span style=\"font-size: 10px\">{point.key}</span><br/>',pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:E(\"#f7f7f7\").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:\"#333333\",cursor:\"default\",fontSize:\"12px\",\nwhiteSpace:\"nowrap\"}},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"9px\"},text:\"Highcharts.com\"}};d.setOptions=function(f){d.defaultOptions=M(!0,d.defaultOptions,f);(f.time||f.global)&&d.time.update(M(d.defaultOptions.global,d.defaultOptions.time,f.global,f.time));return d.defaultOptions};d.getOptions=function(){return d.defaultOptions};d.defaultPlotOptions=d.defaultOptions.plotOptions;\nd.time=new f(M(d.defaultOptions.global,d.defaultOptions.time));d.dateFormat=function(f,q,L){return d.time.dateFormat(f,q,L)};\"\"});Q(A,\"parts/Axis.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Tick.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q){var M=q.addEvent,K=q.animObject,J=q.arrayMax,L=q.arrayMin,x=q.clamp,F=q.correctFloat,H=q.defined,C=q.destroyObjectProperties,D=q.error,w=q.extend,n=q.fireEvent,t=q.format,N=q.getMagnitude,m=q.isArray,b=q.isFunction,g=q.isNumber,v=q.isString,h=q.merge,\ne=q.normalizeTickInterval,p=q.objectEach,l=q.pick,I=q.relativeLength,u=q.removeEvent,y=q.splat,G=q.syncTimeout,S=f.defaultOptions,R=f.deg2rad;q=function(){function B(c,a){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=\nthis.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.oldMin=this.oldMax=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0;this.init(c,a)}B.prototype.init=function(c,a){var k=a.isX,e=this;e.chart=c;\ne.horiz=c.inverted&&!e.isZAxis?!k:k;e.isXAxis=k;e.coll=e.coll||(k?\"xAxis\":\"yAxis\");n(this,\"init\",{userOptions:a});e.opposite=a.opposite;e.side=a.side||(e.horiz?e.opposite?0:2:e.opposite?1:3);e.setOptions(a);var g=this.options,h=g.type;e.labelFormatter=g.labels.formatter||e.defaultLabelFormatter;e.userOptions=a;e.minPixelPadding=0;e.reversed=g.reversed;e.visible=!1!==g.visible;e.zoomEnabled=!1!==g.zoomEnabled;e.hasNames=\"category\"===h||!0===g.categories;e.categories=g.categories||e.hasNames;e.names||\n(e.names=[],e.names.keys={});e.plotLinesAndBandsGroups={};e.positiveValuesOnly=!(!e.logarithmic||g.allowNegativeLog);e.isLinked=H(g.linkedTo);e.ticks={};e.labelEdge=[];e.minorTicks={};e.plotLinesAndBands=[];e.alternateBands={};e.len=0;e.minRange=e.userMinRange=g.minRange||g.maxZoom;e.range=g.range;e.offset=g.offset||0;e.max=null;e.min=null;e.crosshair=l(g.crosshair,y(c.options.tooltip.crosshairs)[k?0:1],!1);a=e.options.events;-1===c.axes.indexOf(e)&&(k?c.axes.splice(c.xAxis.length,0,e):c.axes.push(e),\nc[e.coll].push(e));e.series=e.series||[];c.inverted&&!e.isZAxis&&k&&\"undefined\"===typeof e.reversed&&(e.reversed=!0);e.labelRotation=e.options.labels.rotation;p(a,function(a,c){b(a)&&M(e,c,a)});n(this,\"afterInit\")};B.prototype.setOptions=function(c){this.options=h(B.defaultOptions,\"yAxis\"===this.coll&&B.defaultYAxisOptions,[B.defaultTopAxisOptions,B.defaultRightAxisOptions,B.defaultBottomAxisOptions,B.defaultLeftAxisOptions][this.side],h(S[this.coll],c));n(this,\"afterSetOptions\",{userOptions:c})};\nB.prototype.defaultLabelFormatter=function(){var c=this.axis,a=this.value,k=c.chart.time,e=c.categories,b=this.dateTimeLabelFormat,l=S.lang,g=l.numericSymbols;l=l.numericSymbolMagnitude||1E3;var h=g&&g.length,p=c.options.labels.format;c=c.logarithmic?Math.abs(a):c.tickInterval;var m=this.chart,u=m.numberFormatter;if(p)var v=t(p,this,m);else if(e)v=a;else if(b)v=k.dateFormat(b,a);else if(h&&1E3<=c)for(;h--&&\"undefined\"===typeof v;)k=Math.pow(l,h+1),c>=k&&0===10*a%k&&null!==g[h]&&0!==a&&(v=u(a/k,-1)+\ng[h]);\"undefined\"===typeof v&&(v=1E4<=Math.abs(a)?u(a,-1):u(a,-1,void 0,\"\"));return v};B.prototype.getSeriesExtremes=function(){var c=this,a=c.chart,k;n(this,\"getSeriesExtremes\",null,function(){c.hasVisibleSeries=!1;c.dataMin=c.dataMax=c.threshold=null;c.softThreshold=!c.isXAxis;c.stacking&&c.stacking.buildStacks();c.series.forEach(function(e){if(e.visible||!a.options.chart.ignoreHiddenSeries){var b=e.options,r=b.threshold;c.hasVisibleSeries=!0;c.positiveValuesOnly&&0>=r&&(r=null);if(c.isXAxis){if(b=\ne.xData,b.length){k=e.getXExtremes(b);var h=k.min;var p=k.max;g(h)||h instanceof Date||(b=b.filter(g),k=e.getXExtremes(b),h=k.min,p=k.max);b.length&&(c.dataMin=Math.min(l(c.dataMin,h),h),c.dataMax=Math.max(l(c.dataMax,p),p))}}else if(e=e.applyExtremes(),g(e.dataMin)&&(h=e.dataMin,c.dataMin=Math.min(l(c.dataMin,h),h)),g(e.dataMax)&&(p=e.dataMax,c.dataMax=Math.max(l(c.dataMax,p),p)),H(r)&&(c.threshold=r),!b.softThreshold||c.positiveValuesOnly)c.softThreshold=!1}})});n(this,\"afterGetSeriesExtremes\")};\nB.prototype.translate=function(c,a,k,e,b,l){var r=this.linkedParent||this,h=1,p=0,z=e?r.oldTransA:r.transA;e=e?r.oldMin:r.min;var m=r.minPixelPadding;b=(r.isOrdinal||r.brokenAxis&&r.brokenAxis.hasBreaks||r.logarithmic&&b)&&r.lin2val;z||(z=r.transA);k&&(h*=-1,p=r.len);r.reversed&&(h*=-1,p-=h*(r.sector||r.len));a?(c=(c*h+p-m)/z+e,b&&(c=r.lin2val(c))):(b&&(c=r.val2lin(c)),c=g(e)?h*(c-e)*z+p+h*m+(g(l)?z*l:0):void 0);return c};B.prototype.toPixels=function(c,a){return this.translate(c,!1,!this.horiz,null,\n!0)+(a?0:this.pos)};B.prototype.toValue=function(c,a){return this.translate(c-(a?0:this.pos),!0,!this.horiz,null,!0)};B.prototype.getPlotLinePath=function(c){function a(a,c,k){if(\"pass\"!==d&&a<c||a>k)d?a=x(a,c,k):B=!0;return a}var k=this,e=k.chart,b=k.left,h=k.top,p=c.old,m=c.value,u=c.translatedValue,v=c.lineWidth,d=c.force,y,O,f,I,G=p&&e.oldChartHeight||e.chartHeight,t=p&&e.oldChartWidth||e.chartWidth,B,w=k.transB;c={value:m,lineWidth:v,old:p,force:d,acrossPanes:c.acrossPanes,translatedValue:u};\nn(this,\"getPlotLinePath\",c,function(c){u=l(u,k.translate(m,null,null,p));u=x(u,-1E5,1E5);y=f=Math.round(u+w);O=I=Math.round(G-u-w);g(u)?k.horiz?(O=h,I=G-k.bottom,y=f=a(y,b,b+k.width)):(y=b,f=t-k.right,O=I=a(O,h,h+k.height)):(B=!0,d=!1);c.path=B&&!d?null:e.renderer.crispLine([[\"M\",y,O],[\"L\",f,I]],v||1)});return c.path};B.prototype.getLinearTickPositions=function(c,a,k){var e=F(Math.floor(a/c)*c);k=F(Math.ceil(k/c)*c);var b=[],l;F(e+c)===e&&(l=20);if(this.single)return[a];for(a=e;a<=k;){b.push(a);a=\nF(a+c,l);if(a===g)break;var g=a}return b};B.prototype.getMinorTickInterval=function(){var c=this.options;return!0===c.minorTicks?l(c.minorTickInterval,\"auto\"):!1===c.minorTicks?null:c.minorTickInterval};B.prototype.getMinorTickPositions=function(){var c=this.options,a=this.tickPositions,k=this.minorTickInterval,e=[],b=this.pointRangePadding||0,l=this.min-b;b=this.max+b;var g=b-l;if(g&&g/k<this.len/3){var h=this.logarithmic;if(h)this.paddedTicks.forEach(function(a,c,b){c&&e.push.apply(e,h.getLogTickPositions(k,\nb[c-1],b[c],!0))});else if(this.dateTime&&\"auto\"===this.getMinorTickInterval())e=e.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(k),l,b,c.startOfWeek));else for(c=l+(a[0]-l)%k;c<=b&&c!==e[0];c+=k)e.push(c)}0!==e.length&&this.trimTicks(e);return e};B.prototype.adjustForMinRange=function(){var c=this.options,a=this.min,k=this.max,e=this.logarithmic,b,g,h,p,u;this.isXAxis&&\"undefined\"===typeof this.minRange&&!e&&(H(c.min)||H(c.max)?this.minRange=null:(this.series.forEach(function(a){p=\na.xData;for(g=u=a.xIncrement?1:p.length-1;0<g;g--)if(h=p[g]-p[g-1],\"undefined\"===typeof b||h<b)b=h}),this.minRange=Math.min(5*b,this.dataMax-this.dataMin)));if(k-a<this.minRange){var m=this.dataMax-this.dataMin>=this.minRange;var v=this.minRange;var d=(v-k+a)/2;d=[a-d,l(c.min,a-d)];m&&(d[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin);a=J(d);k=[a+v,l(c.max,a+v)];m&&(k[2]=e?e.log2lin(this.dataMax):this.dataMax);k=L(k);k-a<v&&(d[0]=k-v,d[1]=l(c.min,k-v),a=J(d))}this.min=a;this.max=\nk};B.prototype.getClosest=function(){var c;this.categories?c=1:this.series.forEach(function(a){var k=a.closestPointRange,e=a.visible||!a.chart.options.chart.ignoreHiddenSeries;!a.noSharedTooltip&&H(k)&&e&&(c=H(c)?Math.min(c,k):k)});return c};B.prototype.nameToX=function(c){var a=m(this.categories),k=a?this.categories:this.names,e=c.options.x;c.series.requireSorting=!1;H(e)||(e=!1===this.options.uniqueNames?c.series.autoIncrement():a?k.indexOf(c.name):l(k.keys[c.name],-1));if(-1===e){if(!a)var b=k.length}else b=\ne;\"undefined\"!==typeof b&&(this.names[b]=c.name,this.names.keys[c.name]=b);return b};B.prototype.updateNames=function(){var c=this,a=this.names;0<a.length&&(Object.keys(a.keys).forEach(function(c){delete a.keys[c]}),a.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(a){a.xIncrement=null;if(!a.points||a.isDirtyData)c.max=Math.max(c.max,a.xData.length-1),a.processData(),a.generatePoints();a.data.forEach(function(e,k){if(e&&e.options&&\"undefined\"!==typeof e.name){var b=c.nameToX(e);\n\"undefined\"!==typeof b&&b!==e.x&&(e.x=b,a.xData[k]=b)}})}))};B.prototype.setAxisTranslation=function(c){var a=this,e=a.max-a.min,b=a.axisPointRange||0,g=0,h=0,p=a.linkedParent,m=!!a.categories,u=a.transA,d=a.isXAxis;if(d||m||b){var y=a.getClosest();p?(g=p.minPointOffset,h=p.pointRangePadding):a.series.forEach(function(c){var e=m?1:d?l(c.options.pointRange,y,0):a.axisPointRange||0,k=c.options.pointPlacement;b=Math.max(b,e);if(!a.single||m)c=c.is(\"xrange\")?!d:d,g=Math.max(g,c&&v(k)?0:e/2),h=Math.max(h,\nc&&\"on\"===k?0:e)});p=a.ordinal&&a.ordinal.slope&&y?a.ordinal.slope/y:1;a.minPointOffset=g*=p;a.pointRangePadding=h*=p;a.pointRange=Math.min(b,a.single&&m?1:e);d&&(a.closestPointRange=y)}c&&(a.oldTransA=u);a.translationSlope=a.transA=u=a.staticScale||a.len/(e+h||1);a.transB=a.horiz?a.left:a.bottom;a.minPixelPadding=u*g;n(this,\"afterSetAxisTranslation\")};B.prototype.minFromRange=function(){return this.max-this.range};B.prototype.setTickInterval=function(c){var a=this,k=a.chart,b=a.logarithmic,h=a.options,\np=a.isXAxis,m=a.isLinked,u=h.maxPadding,v=h.minPadding,d=h.tickInterval,y=h.tickPixelInterval,f=a.categories,O=g(a.threshold)?a.threshold:null,I=a.softThreshold;a.dateTime||f||m||this.getTickAmount();var G=l(a.userMin,h.min);var t=l(a.userMax,h.max);if(m){a.linkedParent=k[a.coll][h.linkedTo];var B=a.linkedParent.getExtremes();a.min=l(B.min,B.dataMin);a.max=l(B.max,B.dataMax);h.type!==a.linkedParent.options.type&&D(11,1,k)}else{if(!I&&H(O))if(a.dataMin>=O)B=O,v=0;else if(a.dataMax<=O){var w=O;u=0}a.min=\nl(G,B,a.dataMin);a.max=l(t,w,a.dataMax)}b&&(a.positiveValuesOnly&&!c&&0>=Math.min(a.min,l(a.dataMin,a.min))&&D(10,1,k),a.min=F(b.log2lin(a.min),16),a.max=F(b.log2lin(a.max),16));a.range&&H(a.max)&&(a.userMin=a.min=G=Math.max(a.dataMin,a.minFromRange()),a.userMax=t=a.max,a.range=null);n(a,\"foundExtremes\");a.beforePadding&&a.beforePadding();a.adjustForMinRange();!(f||a.axisPointRange||a.stacking&&a.stacking.usePercentage||m)&&H(a.min)&&H(a.max)&&(k=a.max-a.min)&&(!H(G)&&v&&(a.min-=k*v),!H(t)&&u&&(a.max+=\nk*u));g(a.userMin)||(g(h.softMin)&&h.softMin<a.min&&(a.min=G=h.softMin),g(h.floor)&&(a.min=Math.max(a.min,h.floor)));g(a.userMax)||(g(h.softMax)&&h.softMax>a.max&&(a.max=t=h.softMax),g(h.ceiling)&&(a.max=Math.min(a.max,h.ceiling)));I&&H(a.dataMin)&&(O=O||0,!H(G)&&a.min<O&&a.dataMin>=O?a.min=a.options.minRange?Math.min(O,a.max-a.minRange):O:!H(t)&&a.max>O&&a.dataMax<=O&&(a.max=a.options.minRange?Math.max(O,a.min+a.minRange):O));a.tickInterval=a.min===a.max||\"undefined\"===typeof a.min||\"undefined\"===\ntypeof a.max?1:m&&!d&&y===a.linkedParent.options.tickPixelInterval?d=a.linkedParent.tickInterval:l(d,this.tickAmount?(a.max-a.min)/Math.max(this.tickAmount-1,1):void 0,f?1:(a.max-a.min)*y/Math.max(a.len,y));p&&!c&&a.series.forEach(function(c){c.processData(a.min!==a.oldMin||a.max!==a.oldMax)});a.setAxisTranslation(!0);a.beforeSetTickPositions&&a.beforeSetTickPositions();a.ordinal&&(a.tickInterval=a.ordinal.postProcessTickInterval(a.tickInterval));a.pointRange&&!d&&(a.tickInterval=Math.max(a.pointRange,\na.tickInterval));c=l(h.minTickInterval,a.dateTime&&a.closestPointRange);!d&&a.tickInterval<c&&(a.tickInterval=c);a.dateTime||a.logarithmic||d||(a.tickInterval=e(a.tickInterval,void 0,N(a.tickInterval),l(h.allowDecimals,.5>a.tickInterval||void 0!==this.tickAmount),!!this.tickAmount));this.tickAmount||(a.tickInterval=a.unsquish());this.setTickPositions()};B.prototype.setTickPositions=function(){var c=this.options,a=c.tickPositions;var e=this.getMinorTickInterval();var b=c.tickPositioner,l=this.hasVerticalPanning(),\ng=\"colorAxis\"===this.coll,h=(g||!l)&&c.startOnTick;l=(g||!l)&&c.endOnTick;this.tickmarkOffset=this.categories&&\"between\"===c.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\"auto\"===e&&this.tickInterval?this.tickInterval/5:e;this.single=this.min===this.max&&H(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==c.allowDecimals);this.tickPositions=e=a&&a.slice();!e&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,\n200))?e=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,c.units),this.min,this.max,c.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(e=[this.min,this.max],D(19,!1,this.chart)),e.length>this.len&&(e=[e[0],e.pop()],e[0]===e[1]&&(e.length=1)),this.tickPositions=e,b&&(b=b.apply(this,\n[this.min,this.max])))&&(this.tickPositions=e=b);this.paddedTicks=e.slice(0);this.trimTicks(e,h,l);this.isLinked||(this.single&&2>e.length&&!this.categories&&!this.series.some(function(a){return a.is(\"heatmap\")&&\"between\"===a.options.pointPlacement})&&(this.min-=.5,this.max+=.5),a||b||this.adjustTickAmount());n(this,\"afterSetTickPositions\")};B.prototype.trimTicks=function(c,a,e){var k=c[0],b=c[c.length-1],l=!this.isOrdinal&&this.minPointOffset||0;n(this,\"trimTicks\");if(!this.isLinked){if(a&&-Infinity!==\nk)this.min=k;else for(;this.min-l>c[0];)c.shift();if(e)this.max=b;else for(;this.max+l<c[c.length-1];)c.pop();0===c.length&&H(k)&&!this.options.tickPositions&&c.push((b+k)/2)}};B.prototype.alignToOthers=function(){var c={},a,e=this.options;!1===this.chart.options.chart.alignTicks||!1===e.alignTicks||!1===e.startOnTick||!1===e.endOnTick||this.logarithmic||this.chart[this.coll].forEach(function(e){var k=e.options;k=[e.horiz?k.left:k.top,k.width,k.height,k.pane].join();e.series.length&&(c[k]?a=!0:c[k]=\n1)});return a};B.prototype.getTickAmount=function(){var c=this.options,a=c.tickAmount,e=c.tickPixelInterval;!H(c.tickInterval)&&!a&&this.len<e&&!this.isRadial&&!this.logarithmic&&c.startOnTick&&c.endOnTick&&(a=2);!a&&this.alignToOthers()&&(a=Math.ceil(this.len/e)+1);4>a&&(this.finalTickAmt=a,a=5);this.tickAmount=a};B.prototype.adjustTickAmount=function(){var c=this.options,a=this.tickInterval,e=this.tickPositions,b=this.tickAmount,g=this.finalTickAmt,h=e&&e.length,p=l(this.threshold,this.softThreshold?\n0:null),m;if(this.hasData()){if(h<b){for(m=this.min;e.length<b;)e.length%2||m===p?e.push(F(e[e.length-1]+a)):e.unshift(F(e[0]-a));this.transA*=(h-1)/(b-1);this.min=c.startOnTick?e[0]:Math.min(this.min,e[0]);this.max=c.endOnTick?e[e.length-1]:Math.max(this.max,e[e.length-1])}else h>b&&(this.tickInterval*=2,this.setTickPositions());if(H(g)){for(a=c=e.length;a--;)(3===g&&1===a%2||2>=g&&0<a&&a<c-1)&&e.splice(a,1);this.finalTickAmt=void 0}}};B.prototype.setScale=function(){var c,a=!1,e=!1;this.series.forEach(function(c){var k;\na=a||c.isDirtyData||c.isDirty;e=e||(null===(k=c.xAxis)||void 0===k?void 0:k.isDirty)||!1});this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();(c=this.len!==this.oldAxisLength)||a||e||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.stacking&&this.stacking.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,\nthis.isDirty||(this.isDirty=c||this.min!==this.oldMin||this.max!==this.oldMax)):this.stacking&&this.stacking.cleanStacks();a&&this.panningState&&(this.panningState.isDirty=!0);n(this,\"afterSetScale\")};B.prototype.setExtremes=function(c,a,e,b,g){var k=this,h=k.chart;e=l(e,!0);k.series.forEach(function(a){delete a.kdTree});g=w(g,{min:c,max:a});n(k,\"setExtremes\",g,function(){k.userMin=c;k.userMax=a;k.eventArgs=g;e&&h.redraw(b)})};B.prototype.zoom=function(c,a){var e=this,b=this.dataMin,g=this.dataMax,\nh=this.options,p=Math.min(b,l(h.min,b)),m=Math.max(g,l(h.max,g));c={newMin:c,newMax:a};n(this,\"zoom\",c,function(a){var c=a.newMin,k=a.newMax;if(c!==e.min||k!==e.max)e.allowZoomOutside||(H(b)&&(c<p&&(c=p),c>m&&(c=m)),H(g)&&(k<p&&(k=p),k>m&&(k=m))),e.displayBtn=\"undefined\"!==typeof c||\"undefined\"!==typeof k,e.setExtremes(c,k,!1,void 0,{trigger:\"zoom\"});a.zoomed=!0});return c.zoomed};B.prototype.setAxisSize=function(){var c=this.chart,a=this.options,e=a.offsets||[0,0,0,0],b=this.horiz,g=this.width=Math.round(I(l(a.width,\nc.plotWidth-e[3]+e[1]),c.plotWidth)),h=this.height=Math.round(I(l(a.height,c.plotHeight-e[0]+e[2]),c.plotHeight)),p=this.top=Math.round(I(l(a.top,c.plotTop+e[0]),c.plotHeight,c.plotTop));a=this.left=Math.round(I(l(a.left,c.plotLeft+e[3]),c.plotWidth,c.plotLeft));this.bottom=c.chartHeight-h-p;this.right=c.chartWidth-g-a;this.len=Math.max(b?g:h,0);this.pos=b?a:p};B.prototype.getExtremes=function(){var c=this.logarithmic;return{min:c?F(c.lin2log(this.min)):this.min,max:c?F(c.lin2log(this.max)):this.max,\ndataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}};B.prototype.getThreshold=function(c){var a=this.logarithmic,e=a?a.lin2log(this.min):this.min;a=a?a.lin2log(this.max):this.max;null===c||-Infinity===c?c=e:Infinity===c?c=a:e>c?c=e:a<c&&(c=a);return this.translate(c,0,1,0,1)};B.prototype.autoLabelAlign=function(c){var a=(l(c,0)-90*this.side+720)%360;c={align:\"center\"};n(this,\"autoLabelAlign\",c,function(c){15<a&&165>a?c.align=\"right\":195<a&&345>a&&(c.align=\"left\")});\nreturn c.align};B.prototype.tickSize=function(c){var a=this.options,e=a[\"tick\"===c?\"tickLength\":\"minorTickLength\"],b=l(a[\"tick\"===c?\"tickWidth\":\"minorTickWidth\"],\"tick\"===c&&this.isXAxis&&!this.categories?1:0);if(b&&e){\"inside\"===a[c+\"Position\"]&&(e=-e);var g=[e,b]}c={tickSize:g};n(this,\"afterTickSize\",c);return c.tickSize};B.prototype.labelMetrics=function(){var c=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,\nthis.ticks[c]&&this.ticks[c].label)};B.prototype.unsquish=function(){var c=this.options.labels,a=this.horiz,e=this.tickInterval,b=e,g=this.len/(((this.categories?1:0)+this.max-this.min)/e),h,p=c.rotation,m=this.labelMetrics(),u,v=Number.MAX_VALUE,d,y=this.max-this.min,f=function(a){var c=a/(g||1);c=1<c?Math.ceil(c):1;c*e>y&&Infinity!==a&&Infinity!==g&&y&&(c=Math.ceil(y/e));return F(c*e)};a?(d=!c.staggerLines&&!c.step&&(H(p)?[p]:g<l(c.autoRotationLimit,80)&&c.autoRotation))&&d.forEach(function(a){if(a===\np||a&&-90<=a&&90>=a){u=f(Math.abs(m.h/Math.sin(R*a)));var c=u+Math.abs(a/360);c<v&&(v=c,h=a,b=u)}}):c.step||(b=f(m.h));this.autoRotation=d;this.labelRotation=l(h,p);return b};B.prototype.getSlotWidth=function(c){var a,e=this.chart,b=this.horiz,l=this.options.labels,h=Math.max(this.tickPositions.length-(this.categories?0:1),1),p=e.margin[3];if(c&&g(c.slotWidth))return c.slotWidth;if(b&&l&&2>(l.step||0))return l.rotation?0:(this.staggerLines||1)*this.len/h;if(!b){c=null===(a=null===l||void 0===l?void 0:\nl.style)||void 0===a?void 0:a.width;if(void 0!==c)return parseInt(c,10);if(p)return p-e.spacing[3]}return.33*e.chartWidth};B.prototype.renderUnsquish=function(){var c=this.chart,a=c.renderer,e=this.tickPositions,b=this.ticks,l=this.options.labels,g=l&&l.style||{},h=this.horiz,p=this.getSlotWidth(),m=Math.max(1,Math.round(p-2*(l.padding||5))),u={},d=this.labelMetrics(),y=l.style&&l.style.textOverflow,f=0;v(l.rotation)||(u.rotation=l.rotation||0);e.forEach(function(a){a=b[a];a.movedLabel&&a.replaceMovedLabel();\na&&a.label&&a.label.textPxLength>f&&(f=a.label.textPxLength)});this.maxLabelLength=f;if(this.autoRotation)f>m&&f>d.h?u.rotation=this.labelRotation:this.labelRotation=0;else if(p){var n=m;if(!y){var I=\"clip\";for(m=e.length;!h&&m--;){var G=e[m];if(G=b[G].label)G.styles&&\"ellipsis\"===G.styles.textOverflow?G.css({textOverflow:\"clip\"}):G.textPxLength>p&&G.css({width:p+\"px\"}),G.getBBox().height>this.len/e.length-(d.h-d.f)&&(G.specificTextOverflow=\"ellipsis\")}}}u.rotation&&(n=f>.5*c.chartHeight?.33*c.chartHeight:\nf,y||(I=\"ellipsis\"));if(this.labelAlign=l.align||this.autoLabelAlign(this.labelRotation))u.align=this.labelAlign;e.forEach(function(a){var c=(a=b[a])&&a.label,e=g.width,k={};c&&(c.attr(u),a.shortenLabel?a.shortenLabel():n&&!e&&\"nowrap\"!==g.whiteSpace&&(n<c.textPxLength||\"SPAN\"===c.element.tagName)?(k.width=n+\"px\",y||(k.textOverflow=c.specificTextOverflow||I),c.css(k)):c.styles&&c.styles.width&&!k.width&&!e&&c.css({width:null}),delete c.specificTextOverflow,a.rotation=u.rotation)},this);this.tickRotCorr=\na.rotCorr(d.b,this.labelRotation||0,0!==this.side)};B.prototype.hasData=function(){return this.series.some(function(c){return c.hasData()})||this.options.showEmpty&&H(this.min)&&H(this.max)};B.prototype.addTitle=function(c){var a=this.chart.renderer,e=this.horiz,b=this.opposite,l=this.options.title,g,p=this.chart.styledMode;this.axisTitle||((g=l.textAlign)||(g=(e?{low:\"left\",middle:\"center\",high:\"right\"}:{low:b?\"right\":\"left\",middle:\"center\",high:b?\"left\":\"right\"})[l.align]),this.axisTitle=a.text(l.text,\n0,0,l.useHTML).attr({zIndex:7,rotation:l.rotation||0,align:g}).addClass(\"highcharts-axis-title\"),p||this.axisTitle.css(h(l.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0);p||l.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"});this.axisTitle[c?\"show\":\"hide\"](c)};B.prototype.generateTick=function(c){var a=this.ticks;a[c]?a[c].addLabel():a[c]=new E(this,c)};B.prototype.getOffset=function(){var c=this,a=c.chart,e=a.renderer,b=c.options,g=c.tickPositions,h=c.ticks,\nm=c.horiz,u=c.side,v=a.inverted&&!c.isZAxis?[1,0,3,2][u]:u,d,y=0,f=0,O=b.title,I=b.labels,G=0,t=a.axisOffset;a=a.clipOffset;var B=[-1,1,1,-1][u],w=b.className,S=c.axisParent;var R=c.hasData();c.showAxis=d=R||l(b.showEmpty,!0);c.staggerLines=c.horiz&&I.staggerLines;c.axisGroup||(c.gridGroup=e.g(\"grid\").attr({zIndex:b.gridZIndex||1}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\"-grid \"+(w||\"\")).add(S),c.axisGroup=e.g(\"axis\").attr({zIndex:b.zIndex||2}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\n\" \"+(w||\"\")).add(S),c.labelGroup=e.g(\"axis-labels\").attr({zIndex:I.zIndex||7}).addClass(\"highcharts-\"+c.coll.toLowerCase()+\"-labels \"+(w||\"\")).add(S));R||c.isLinked?(g.forEach(function(a,e){c.generateTick(a,e)}),c.renderUnsquish(),c.reserveSpaceDefault=0===u||2===u||{1:\"left\",3:\"right\"}[u]===c.labelAlign,l(I.reserveSpace,\"center\"===c.labelAlign?!0:null,c.reserveSpaceDefault)&&g.forEach(function(a){G=Math.max(h[a].getLabelSize(),G)}),c.staggerLines&&(G*=c.staggerLines),c.labelOffset=G*(c.opposite?\n-1:1)):p(h,function(a,c){a.destroy();delete h[c]});if(O&&O.text&&!1!==O.enabled&&(c.addTitle(d),d&&!1!==O.reserveSpace)){c.titleOffset=y=c.axisTitle.getBBox()[m?\"height\":\"width\"];var x=O.offset;f=H(x)?0:l(O.margin,m?5:10)}c.renderLine();c.offset=B*l(b.offset,t[u]?t[u]+(b.margin||0):0);c.tickRotCorr=c.tickRotCorr||{x:0,y:0};e=0===u?-c.labelMetrics().h:2===u?c.tickRotCorr.y:0;f=Math.abs(G)+f;G&&(f=f-e+B*(m?l(I.y,c.tickRotCorr.y+8*B):I.x));c.axisTitleMargin=l(x,f);c.getMaxLabelDimensions&&(c.maxLabelDimensions=\nc.getMaxLabelDimensions(h,g));m=this.tickSize(\"tick\");t[u]=Math.max(t[u],c.axisTitleMargin+y+B*c.offset,f,g&&g.length&&m?m[0]+B*c.offset:0);b=b.offset?0:2*Math.floor(c.axisLine.strokeWidth()/2);a[v]=Math.max(a[v],b);n(this,\"afterGetOffset\")};B.prototype.getLinePath=function(c){var a=this.chart,e=this.opposite,b=this.offset,l=this.horiz,g=this.left+(e?this.width:0)+b;b=a.chartHeight-this.bottom-(e?this.height:0)+b;e&&(c*=-1);return a.renderer.crispLine([[\"M\",l?this.left:g,l?b:this.top],[\"L\",l?a.chartWidth-\nthis.right:g,l?b:a.chartHeight-this.bottom]],c)};B.prototype.renderLine=function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))};B.prototype.getTitlePosition=function(){var c=this.horiz,a=this.left,e=this.top,b=this.len,l=this.options.title,g=c?a:e,h=this.opposite,p=this.offset,m=l.x||0,u=l.y||0,d=this.axisTitle,\nv=this.chart.renderer.fontMetrics(l.style&&l.style.fontSize,d);d=Math.max(d.getBBox(null,0).height-v.h-1,0);b={low:g+(c?0:b),middle:g+b/2,high:g+(c?b:0)}[l.align];a=(c?e+this.height:a)+(c?1:-1)*(h?-1:1)*this.axisTitleMargin+[-d,d,v.f,-d][this.side];c={x:c?b+m:a+(h?this.width:0)+p+m,y:c?a+u-(h?this.height:0)+p:b+u};n(this,\"afterGetTitlePosition\",{titlePosition:c});return c};B.prototype.renderMinorTick=function(c){var a=this.chart.hasRendered&&g(this.oldMin),e=this.minorTicks;e[c]||(e[c]=new E(this,\nc,\"minor\"));a&&e[c].isNew&&e[c].render(null,!0);e[c].render(null,!1,1)};B.prototype.renderTick=function(c,a){var e=this.isLinked,b=this.ticks,l=this.chart.hasRendered&&g(this.oldMin);if(!e||c>=this.min&&c<=this.max)b[c]||(b[c]=new E(this,c)),l&&b[c].isNew&&b[c].render(a,!0,-1),b[c].render(a)};B.prototype.render=function(){var c=this,a=c.chart,e=c.logarithmic,b=c.options,l=c.isLinked,h=c.tickPositions,m=c.axisTitle,u=c.ticks,d=c.minorTicks,v=c.alternateBands,y=b.stackLabels,I=b.alternateGridColor,\nO=c.tickmarkOffset,t=c.axisLine,B=c.showAxis,w=K(a.renderer.globalAnimation),S,R;c.labelEdge.length=0;c.overlap=!1;[u,d,v].forEach(function(a){p(a,function(a){a.isActive=!1})});if(c.hasData()||l)c.minorTickInterval&&!c.categories&&c.getMinorTickPositions().forEach(function(a){c.renderMinorTick(a)}),h.length&&(h.forEach(function(a,e){c.renderTick(a,e)}),O&&(0===c.min||c.single)&&(u[-1]||(u[-1]=new E(c,-1,null,!0)),u[-1].render(-1))),I&&h.forEach(function(k,b){R=\"undefined\"!==typeof h[b+1]?h[b+1]+O:\nc.max-O;0===b%2&&k<c.max&&R<=c.max+(a.polar?-O:O)&&(v[k]||(v[k]=new f.PlotLineOrBand(c)),S=k+O,v[k].options={from:e?e.lin2log(S):S,to:e?e.lin2log(R):R,color:I},v[k].render(),v[k].isActive=!0)}),c._addedPlotLB||((b.plotLines||[]).concat(b.plotBands||[]).forEach(function(a){c.addPlotBandOrLine(a)}),c._addedPlotLB=!0);[u,d,v].forEach(function(c){var e,k=[],b=w.duration;p(c,function(a,c){a.isActive||(a.render(c,!1,0),a.isActive=!1,k.push(c))});G(function(){for(e=k.length;e--;)c[k[e]]&&!c[k[e]].isActive&&\n(c[k[e]].destroy(),delete c[k[e]])},c!==v&&a.hasRendered&&b?b:0)});t&&(t[t.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(t.strokeWidth())}),t.isPlaced=!0,t[B?\"show\":\"hide\"](B));m&&B&&(b=c.getTitlePosition(),g(b.y)?(m[m.isNew?\"attr\":\"animate\"](b),m.isNew=!1):(m.attr(\"y\",-9999),m.isNew=!0));y&&y.enabled&&c.stacking&&c.stacking.renderStackTotals();c.isDirty=!1;n(this,\"afterRender\")};B.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(c){c.render()}));this.series.forEach(function(c){c.isDirty=\n!0})};B.prototype.getKeepProps=function(){return this.keepProps||B.keepProps};B.prototype.destroy=function(c){var a=this,e=a.plotLinesAndBands,b;n(this,\"destroy\",{keepEvents:c});c||u(a);[a.ticks,a.minorTicks,a.alternateBands].forEach(function(a){C(a)});if(e)for(c=e.length;c--;)e[c].destroy();\"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function(c){a[c]&&(a[c]=a[c].destroy())});for(b in a.plotLinesAndBandsGroups)a.plotLinesAndBandsGroups[b]=a.plotLinesAndBandsGroups[b].destroy();\np(a,function(c,e){-1===a.getKeepProps().indexOf(e)&&delete a[e]})};B.prototype.drawCrosshair=function(c,a){var e=this.crosshair,b=l(e.snap,!0),g,h=this.cross,p=this.chart;n(this,\"drawCrosshair\",{e:c,point:a});c||(c=this.cross&&this.cross.e);if(this.crosshair&&!1!==(H(a)||!b)){b?H(a)&&(g=l(\"colorAxis\"!==this.coll?a.crosshairPos:null,this.isXAxis?a.plotX:this.len-a.plotY)):g=c&&(this.horiz?c.chartX-this.pos:this.len-c.chartY+this.pos);if(H(g)){var m={value:a&&(this.isXAxis?a.x:l(a.stackY,a.y)),translatedValue:g};\np.polar&&w(m,{isCrosshair:!0,chartX:c&&c.chartX,chartY:c&&c.chartY,point:a});m=this.getPlotLinePath(m)||null}if(!H(m)){this.hideCrosshair();return}b=this.categories&&!this.isRadial;h||(this.cross=h=p.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(b?\"category \":\"thin \")+e.className).attr({zIndex:l(e.zIndex,2)}).add(),p.styledMode||(h.attr({stroke:e.color||(b?d.parse(\"#ccd6eb\").setOpacity(.25).get():\"#cccccc\"),\"stroke-width\":l(e.width,1)}).css({\"pointer-events\":\"none\"}),e.dashStyle&&\nh.attr({dashstyle:e.dashStyle})));h.show().attr({d:m});b&&!e.width&&h.attr({\"stroke-width\":this.transA});this.cross.e=c}else this.hideCrosshair();n(this,\"afterDrawCrosshair\",{e:c,point:a})};B.prototype.hideCrosshair=function(){this.cross&&this.cross.hide();n(this,\"afterHideCrosshair\")};B.prototype.hasVerticalPanning=function(){var c,a;return/y/.test((null===(a=null===(c=this.chart.options.chart)||void 0===c?void 0:c.panning)||void 0===a?void 0:a.type)||\"\")};B.defaultOptions={dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",\nrange:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e. %b\"},week:{main:\"%e. %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"}},maxPadding:.01,minorTickLength:2,minorTickPosition:\"outside\",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",\nstyle:{color:\"#666666\"}},type:\"linear\",minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",tickColor:\"#ccd6eb\"};B.defaultYAxisOptions={endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){var c=this.axis.chart.numberFormatter;return c(this.total,\n-1)},style:{color:\"#000000\",fontSize:\"11px\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};B.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};B.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};B.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.keepProps=\"extKey hcEvents names series userMax userMin\".split(\" \");return B}();\nf.Axis=q;return f.Axis});Q(A,\"parts/DateTimeAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.getMagnitude,M=f.normalizeTickInterval,K=f.timeUnits,J=function(){function d(d){this.axis=d}d.prototype.normalizeTimeTickInterval=function(d,f){var x=f||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]];f=x[x.length-1];var C=\nK[f[0]],D=f[1],w;for(w=0;w<x.length&&!(f=x[w],C=K[f[0]],D=f[1],x[w+1]&&d<=(C*D[D.length-1]+K[x[w+1][0]])/2);w++);C===K.year&&d<5*C&&(D=[1,2,5]);d=M(d/C,D,\"year\"===f[0]?Math.max(q(d/C),1):1);return{unitRange:C,count:d,unitName:f[0]}};return d}();f=function(){function d(){}d.compose=function(d){d.keepProps.push(\"dateTime\");d.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};E(d,\"init\",function(d){\"datetime\"!==d.userOptions.type?this.dateTime=void 0:\nthis.dateTime||(this.dateTime=new J(this))})};d.AdditionsClass=J;return d}();f.compose(d);return f});Q(A,\"parts/LogarithmicAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.getMagnitude,M=f.normalizeTickInterval,K=f.pick,J=function(){function d(d){this.axis=d}d.prototype.getLogTickPositions=function(d,f,H,C){var x=this.axis,w=x.len,n=x.options,t=[];C||(this.minorAutoInterval=void 0);if(.5<=d)d=Math.round(d),t=x.getLinearTickPositions(d,f,H);else if(.08<=d){n=\nMath.floor(f);var N,m;for(w=.3<d?[1,2,4]:.15<d?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];n<H+1&&!m;n++){var b=w.length;for(N=0;N<b&&!m;N++){var g=this.log2lin(this.lin2log(n)*w[N]);g>f&&(!C||v<=H)&&\"undefined\"!==typeof v&&t.push(v);v>H&&(m=!0);var v=g}}}else f=this.lin2log(f),H=this.lin2log(H),d=C?x.getMinorTickInterval():n.tickInterval,d=K(\"auto\"===d?null:d,this.minorAutoInterval,n.tickPixelInterval/(C?5:1)*(H-f)/((C?w/x.tickPositions.length:w)||1)),d=M(d,void 0,q(d)),t=x.getLinearTickPositions(d,f,H).map(this.log2lin),\nC||(this.minorAutoInterval=d/5);C||(x.tickInterval=d);return t};d.prototype.lin2log=function(d){return Math.pow(10,d)};d.prototype.log2lin=function(d){return Math.log(d)/Math.LN10};return d}();f=function(){function d(){}d.compose=function(d){d.keepProps.push(\"logarithmic\");var f=d.prototype,x=J.prototype;f.log2lin=x.log2lin;f.lin2log=x.lin2log;E(d,\"init\",function(d){var f=this.logarithmic;\"logarithmic\"!==d.userOptions.type?this.logarithmic=void 0:(f||(f=this.logarithmic=new J(this)),this.log2lin!==\nf.log2lin&&(f.log2lin=this.log2lin.bind(this)),this.lin2log!==f.lin2log&&(f.lin2log=this.lin2log.bind(this)))});E(d,\"afterInit\",function(){var d=this.logarithmic;d&&(this.lin2val=function(f){return d.lin2log(f)},this.val2lin=function(f){return d.log2lin(f)})})};return d}();f.compose(d);return f});Q(A,\"parts/PlotLineOrBand.js\",[A[\"parts/Globals.js\"],A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(d,f,E){var q=E.arrayMax,M=E.arrayMin,K=E.defined,J=E.destroyObjectProperties,L=E.erase,x=E.extend,\nF=E.merge,H=E.objectEach,C=E.pick,D=function(){function f(d,f){this.axis=d;f&&(this.options=f,this.id=f.id)}f.prototype.render=function(){d.fireEvent(this,\"render\");var f=this,t=f.axis,w=t.horiz,m=t.logarithmic,b=f.options,g=b.label,v=f.label,h=b.to,e=b.from,p=b.value,l=K(e)&&K(h),I=K(p),u=f.svgElem,y=!u,G=[],S=b.color,R=C(b.zIndex,0),B=b.events;G={\"class\":\"highcharts-plot-\"+(l?\"band \":\"line \")+(b.className||\"\")};var c={},a=t.chart.renderer,k=l?\"bands\":\"lines\";m&&(e=m.log2lin(e),h=m.log2lin(h),p=\nm.log2lin(p));t.chart.styledMode||(I?(G.stroke=S||\"#999999\",G[\"stroke-width\"]=C(b.width,1),b.dashStyle&&(G.dashstyle=b.dashStyle)):l&&(G.fill=S||\"#e6ebf5\",b.borderWidth&&(G.stroke=b.borderColor,G[\"stroke-width\"]=b.borderWidth)));c.zIndex=R;k+=\"-\"+R;(m=t.plotLinesAndBandsGroups[k])||(t.plotLinesAndBandsGroups[k]=m=a.g(\"plot-\"+k).attr(c).add());y&&(f.svgElem=u=a.path().attr(G).add(m));if(I)G=t.getPlotLinePath({value:p,lineWidth:u.strokeWidth(),acrossPanes:b.acrossPanes});else if(l)G=t.getPlotBandPath(e,\nh,b);else return;(y||!u.d)&&G&&G.length?(u.attr({d:G}),B&&H(B,function(a,c){u.on(c,function(a){B[c].apply(f,[a])})})):u&&(G?(u.show(!0),u.animate({d:G})):u.d&&(u.hide(),v&&(f.label=v=v.destroy())));g&&(K(g.text)||K(g.formatter))&&G&&G.length&&0<t.width&&0<t.height&&!G.isFlat?(g=F({align:w&&l&&\"center\",x:w?!l&&4:10,verticalAlign:!w&&l&&\"middle\",y:w?l?16:10:l?6:-4,rotation:w&&!l&&90},g),this.renderLabel(g,G,l,R)):v&&v.hide();return f};f.prototype.renderLabel=function(d,f,w,m){var b=this.label,g=this.axis.chart.renderer;\nb||(b={align:d.textAlign||d.align,rotation:d.rotation,\"class\":\"highcharts-plot-\"+(w?\"band\":\"line\")+\"-label \"+(d.className||\"\")},b.zIndex=m,m=this.getLabelText(d),this.label=b=g.text(m,0,0,d.useHTML).attr(b).add(),this.axis.chart.styledMode||b.css(d.style));g=f.xBounds||[f[0][1],f[1][1],w?f[2][1]:f[0][1]];f=f.yBounds||[f[0][2],f[1][2],w?f[2][2]:f[0][2]];w=M(g);m=M(f);b.align(d,!1,{x:w,y:m,width:q(g)-w,height:q(f)-m});b.show(!0)};f.prototype.getLabelText=function(d){return K(d.formatter)?d.formatter.call(this):\nd.text};f.prototype.destroy=function(){L(this.axis.plotLinesAndBands,this);delete this.axis;J(this)};return f}();x(f.prototype,{getPlotBandPath:function(d,f){var n=this.getPlotLinePath({value:f,force:!0,acrossPanes:this.options.acrossPanes}),w=this.getPlotLinePath({value:d,force:!0,acrossPanes:this.options.acrossPanes}),m=[],b=this.horiz,g=1;d=d<this.min&&f<this.min||d>this.max&&f>this.max;if(w&&n){if(d){var v=w.toString()===n.toString();g=0}for(d=0;d<w.length;d+=2){f=w[d];var h=w[d+1],e=n[d],p=n[d+\n1];\"M\"!==f[0]&&\"L\"!==f[0]||\"M\"!==h[0]&&\"L\"!==h[0]||\"M\"!==e[0]&&\"L\"!==e[0]||\"M\"!==p[0]&&\"L\"!==p[0]||(b&&e[1]===f[1]?(e[1]+=g,p[1]+=g):b||e[2]!==f[2]||(e[2]+=g,p[2]+=g),m.push([\"M\",f[1],f[2]],[\"L\",h[1],h[2]],[\"L\",p[1],p[2]],[\"L\",e[1],e[2]],[\"Z\"]));m.isFlat=v}}return m},addPlotBand:function(d){return this.addPlotBandOrLine(d,\"plotBands\")},addPlotLine:function(d){return this.addPlotBandOrLine(d,\"plotLines\")},addPlotBandOrLine:function(d,f){var n=(new D(this,d)).render(),w=this.userOptions;if(n){if(f){var m=\nw[f]||[];m.push(d);w[f]=m}this.plotLinesAndBands.push(n)}return n},removePlotBandOrLine:function(d){for(var f=this.plotLinesAndBands,t=this.options,w=this.userOptions,m=f.length;m--;)f[m].id===d&&f[m].destroy();[t.plotLines||[],w.plotLines||[],t.plotBands||[],w.plotBands||[]].forEach(function(b){for(m=b.length;m--;)(b[m]||{}).id===d&&L(b,b[m])})},removePlotBand:function(d){this.removePlotBandOrLine(d)},removePlotLine:function(d){this.removePlotBandOrLine(d)}});d.PlotLineOrBand=D;return d.PlotLineOrBand});\nQ(A,\"parts/Tooltip.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.clamp,q=f.css,M=f.defined,K=f.discardElement,J=f.extend,L=f.fireEvent,x=f.format,F=f.isNumber,H=f.isString,C=f.merge,D=f.pick,w=f.splat,n=f.syncTimeout,t=f.timeUnits;\"\";var N=d.doc,m=function(){function b(b,d){this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=b;this.init(b,d)}b.prototype.applyFilter=function(){var b=this.chart;b.renderer.definition({tagName:\"filter\",\nid:\"drop-shadow-\"+b.index,opacity:.5,children:[{tagName:\"feGaussianBlur\",\"in\":\"SourceAlpha\",stdDeviation:1},{tagName:\"feOffset\",dx:1,dy:1},{tagName:\"feComponentTransfer\",children:[{tagName:\"feFuncA\",type:\"linear\",slope:.3}]},{tagName:\"feMerge\",children:[{tagName:\"feMergeNode\"},{tagName:\"feMergeNode\",\"in\":\"SourceGraphic\"}]}]});b.renderer.definition({tagName:\"style\",textContent:\".highcharts-tooltip-\"+b.index+\"{filter:url(#drop-shadow-\"+b.index+\")}\"})};b.prototype.bodyFormatter=function(b){return b.map(function(b){var g=\nb.series.tooltipOptions;return(g[(b.point.formatPrefix||\"point\")+\"Formatter\"]||b.point.tooltipFormatter).call(b.point,g[(b.point.formatPrefix||\"point\")+\"Format\"]||\"\")})};b.prototype.cleanSplit=function(b){this.chart.series.forEach(function(g){var h=g&&g.tt;h&&(!h.isActive||b?g.tt=h.destroy():h.isActive=!1)})};b.prototype.defaultFormatter=function(b){var g=this.points||w(this);var h=[b.tooltipFooterHeaderFormatter(g[0])];h=h.concat(b.bodyFormatter(g));h.push(b.tooltipFooterHeaderFormatter(g[0],!0));\nreturn h};b.prototype.destroy=function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());this.renderer&&(this.renderer=this.renderer.destroy(),K(this.container));f.clearTimeout(this.hideTimer);f.clearTimeout(this.tooltipTimeout)};b.prototype.getAnchor=function(b,d){var g=this.chart,e=g.pointer,p=g.inverted,l=g.plotTop,m=g.plotLeft,u=0,f=0,v,n;b=w(b);this.followPointer&&d?(\"undefined\"===typeof d.chartX&&(d=e.normalize(d)),\nb=[d.chartX-m,d.chartY-l]):b[0].tooltipPos?b=b[0].tooltipPos:(b.forEach(function(e){v=e.series.yAxis;n=e.series.xAxis;u+=e.plotX+(!p&&n?n.left-m:0);f+=(e.plotLow?(e.plotLow+e.plotHigh)/2:e.plotY)+(!p&&v?v.top-l:0)}),u/=b.length,f/=b.length,b=[p?g.plotWidth-f:u,this.shared&&!p&&1<b.length&&d?d.chartY-l:p?g.plotHeight-u:f]);return b.map(Math.round)};b.prototype.getDateFormat=function(b,d,h,e){var g=this.chart.time,l=g.dateFormat(\"%m-%d %H:%M:%S.%L\",d),m={millisecond:15,second:12,minute:9,hour:6,day:3},\nu=\"millisecond\";for(f in t){if(b===t.week&&+g.dateFormat(\"%w\",d)===h&&\"00:00:00.000\"===l.substr(6)){var f=\"week\";break}if(t[f]>b){f=u;break}if(m[f]&&l.substr(m[f])!==\"01-01 00:00:00.000\".substr(m[f]))break;\"week\"!==f&&(u=f)}if(f)var v=g.resolveDTLFormat(e[f]).main;return v};b.prototype.getLabel=function(){var b,m,h=this,e=this.chart.renderer,p=this.chart.styledMode,l=this.options,f=\"tooltip\"+(M(l.className)?\" \"+l.className:\"\"),u=(null===(b=l.style)||void 0===b?void 0:b.pointerEvents)||(!this.followPointer&&\nl.stickOnContact?\"auto\":\"none\"),y;b=function(){h.inContact=!0};var G=function(){var e=h.chart.hoverSeries;h.inContact=!1;if(e&&e.onMouseOut)e.onMouseOut()};if(!this.label){this.outside&&(this.container=y=d.doc.createElement(\"div\"),y.className=\"highcharts-tooltip-container\",q(y,{position:\"absolute\",top:\"1px\",pointerEvents:u,zIndex:3}),d.doc.body.appendChild(y),this.renderer=e=new d.Renderer(y,0,0,null===(m=this.chart.options.chart)||void 0===m?void 0:m.style,void 0,void 0,e.styledMode));this.split?\nthis.label=e.g(f):(this.label=e.label(\"\",0,0,l.shape||\"callout\",null,null,l.useHTML,null,f).attr({padding:l.padding,r:l.borderRadius}),p||this.label.attr({fill:l.backgroundColor,\"stroke-width\":l.borderWidth}).css(l.style).css({pointerEvents:u}).shadow(l.shadow));p&&(this.applyFilter(),this.label.addClass(\"highcharts-tooltip-\"+this.chart.index));if(h.outside&&!h.split){var n={x:this.label.xSetter,y:this.label.ySetter};this.label.xSetter=function(e,b){n[b].call(this.label,h.distance);y.style.left=e+\n\"px\"};this.label.ySetter=function(e,b){n[b].call(this.label,h.distance);y.style.top=e+\"px\"}}this.label.on(\"mouseenter\",b).on(\"mouseleave\",G).attr({zIndex:8}).add()}return this.label};b.prototype.getPosition=function(b,d,h){var e=this.chart,g=this.distance,l={},m=e.inverted&&h.h||0,u,f=this.outside,v=f?N.documentElement.clientWidth-2*g:e.chartWidth,n=f?Math.max(N.body.scrollHeight,N.documentElement.scrollHeight,N.body.offsetHeight,N.documentElement.offsetHeight,N.documentElement.clientHeight):e.chartHeight,\nt=e.pointer.getChartPosition(),B=e.containerScaling,c=function(a){return B?a*B.scaleX:a},a=function(a){return B?a*B.scaleY:a},k=function(k){var l=\"x\"===k;return[k,l?v:n,l?b:d].concat(f?[l?c(b):a(d),l?t.left-g+c(h.plotX+e.plotLeft):t.top-g+a(h.plotY+e.plotTop),0,l?v:n]:[l?b:d,l?h.plotX+e.plotLeft:h.plotY+e.plotTop,l?e.plotLeft:e.plotTop,l?e.plotLeft+e.plotWidth:e.plotTop+e.plotHeight])},r=k(\"y\"),z=k(\"x\"),w=!this.followPointer&&D(h.ttBelow,!e.inverted===!!h.negative),x=function(e,b,k,h,p,r,d){var u=\n\"y\"===e?a(g):c(g),f=(k-h)/2,v=h<p-g,y=p+g+h<b,z=p-u-k+f;p=p+u-f;if(w&&y)l[e]=p;else if(!w&&v)l[e]=z;else if(v)l[e]=Math.min(d-h,0>z-m?z:z-m);else if(y)l[e]=Math.max(r,p+m+k>b?p:p+m);else return!1},C=function(a,c,e,b,k){var h;k<g||k>c-g?h=!1:l[a]=k<e/2?1:k>c-b/2?c-b-2:k-e/2;return h},q=function(a){var c=r;r=z;z=c;u=a},T=function(){!1!==x.apply(0,r)?!1!==C.apply(0,z)||u||(q(!0),T()):u?l.x=l.y=0:(q(!0),T())};(e.inverted||1<this.len)&&q();T();return l};b.prototype.getXDateFormat=function(b,d,h){d=d.dateTimeLabelFormats;\nvar e=h&&h.closestPointRange;return(e?this.getDateFormat(e,b.x,h.options.startOfWeek,d):d.day)||d.year};b.prototype.hide=function(b){var g=this;f.clearTimeout(this.hideTimer);b=D(b,this.options.hideDelay,500);this.isHidden||(this.hideTimer=n(function(){g.getLabel().fadeOut(b?void 0:b);g.isHidden=!0},b))};b.prototype.init=function(b,d){this.chart=b;this.options=d;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=d.split&&!b.inverted&&!b.polar;this.shared=d.shared||this.split;this.outside=\nD(d.outside,!(!b.scrollablePixelsX&&!b.scrollablePixelsY))};b.prototype.isStickyOnContact=function(){return!(this.followPointer||!this.options.stickOnContact||!this.inContact)};b.prototype.move=function(b,d,h,e){var g=this,l=g.now,m=!1!==g.options.animation&&!g.isHidden&&(1<Math.abs(b-l.x)||1<Math.abs(d-l.y)),u=g.followPointer||1<g.len;J(l,{x:m?(2*l.x+b)/3:b,y:m?(l.y+d)/2:d,anchorX:u?void 0:m?(2*l.anchorX+h)/3:h,anchorY:u?void 0:m?(l.anchorY+e)/2:e});g.getLabel().attr(l);g.drawTracker();m&&(f.clearTimeout(this.tooltipTimeout),\nthis.tooltipTimeout=setTimeout(function(){g&&g.move(b,d,h,e)},32))};b.prototype.refresh=function(b,d){var h=this.chart,e=this.options,g=b,l={},m=[],u=e.formatter||this.defaultFormatter;l=this.shared;var v=h.styledMode;if(e.enabled){f.clearTimeout(this.hideTimer);this.followPointer=w(g)[0].series.tooltipOptions.followPointer;var n=this.getAnchor(g,d);d=n[0];var t=n[1];!l||g.series&&g.series.noSharedTooltip?l=g.getLabelConfig():(h.pointer.applyInactiveState(g),g.forEach(function(e){e.setState(\"hover\");\nm.push(e.getLabelConfig())}),l={x:g[0].category,y:g[0].y},l.points=m,g=g[0]);this.len=m.length;h=u.call(l,this);u=g.series;this.distance=D(u.tooltipOptions.distance,16);!1===h?this.hide():(this.split?this.renderSplit(h,w(b)):(b=this.getLabel(),e.style.width&&!v||b.css({width:this.chart.spacingBox.width+\"px\"}),b.attr({text:h&&h.join?h.join(\"\"):h}),b.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\"+D(g.colorIndex,u.colorIndex)),v||b.attr({stroke:e.borderColor||g.color||u.color||\"#666666\"}),\nthis.updatePosition({plotX:d,plotY:t,negative:g.negative,ttBelow:g.ttBelow,h:n[2]||0})),this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1);L(this,\"refresh\")}};b.prototype.renderSplit=function(b,m){function g(a,c,e,b,k){void 0===k&&(k=!0);e?(c=C?0:F,a=E(a-b/2,x.left,x.right-b)):(c-=T,a=k?a-b-r:a+r,a=E(a,k?a:x.left,x.right));return{x:a,y:c}}var e=this,p=e.chart,l=e.chart,f=l.plotHeight,u=l.plotLeft,v=l.plotTop,n=l.pointer,t=l.renderer,w=l.scrollablePixelsY,B=void 0===w?\n0:w;w=l.scrollingContainer;w=void 0===w?{scrollLeft:0,scrollTop:0}:w;var c=w.scrollLeft,a=w.scrollTop,k=l.styledMode,r=e.distance,z=e.options,P=e.options.positioner,x={left:c,right:c+l.chartWidth,top:a,bottom:a+l.chartHeight},q=e.getLabel(),C=!(!p.xAxis[0]||!p.xAxis[0].opposite),T=v+a,N=0,F=f-B;H(b)&&(b=[!1,b]);b=b.slice(0,m.length+1).reduce(function(c,b,l){if(!1!==b&&\"\"!==b){l=m[l-1]||{isHeader:!0,plotX:m[0].plotX,plotY:f,series:{}};var h=l.isHeader,d=h?e:l.series,p=d.tt,y=l.isHeader;var n=l.series;\nvar G=\"highcharts-color-\"+D(l.colorIndex,n.colorIndex,\"none\");p||(p={padding:z.padding,r:z.borderRadius},k||(p.fill=z.backgroundColor,p[\"stroke-width\"]=z.borderWidth),p=t.label(\"\",0,0,z[y?\"headerShape\":\"shape\"]||\"callout\",void 0,void 0,z.useHTML).addClass((y?\"highcharts-tooltip-header \":\"\")+\"highcharts-tooltip-box \"+G).attr(p).add(q));p.isActive=!0;p.attr({text:b});k||p.css(z.style).shadow(z.shadow).attr({stroke:z.borderColor||l.color||n.color||\"#333333\"});b=d.tt=p;y=b.getBBox();d=y.width+b.strokeWidth();\nh&&(N=y.height,F+=N,C&&(T-=N));n=l.plotX;n=void 0===n?0:n;G=l.plotY;G=void 0===G?0:G;var O=l.series;if(l.isHeader){n=u+n;var I=v+f/2}else p=O.xAxis,O=O.yAxis,n=p.pos+E(n,-r,p.len+r),O.pos+G>=a+v&&O.pos+G<=a+v+f-B&&(I=O.pos+G);n=E(n,x.left-r,x.right+r);\"number\"===typeof I?(y=y.height+1,G=P?P.call(e,d,y,l):g(n,I,h,d),c.push({align:P?0:void 0,anchorX:n,anchorY:I,boxWidth:d,point:l,rank:D(G.rank,h?1:0),size:y,target:G.y,tt:b,x:G.x})):b.isActive=!1}return c},[]);!P&&b.some(function(a){return a.x<x.left})&&\n(b=b.map(function(a){var c=g(a.anchorX,a.anchorY,a.point.isHeader,a.boxWidth,!1);return J(a,{target:c.y,x:c.x})}));e.cleanSplit();d.distribute(b,F);b.forEach(function(a){var c=a.pos;a.tt.attr({visibility:\"undefined\"===typeof c?\"hidden\":\"inherit\",x:a.x,y:c+T,anchorX:a.anchorX,anchorY:a.anchorY})});b=e.container;p=e.renderer;e.outside&&b&&p&&(l=q.getBBox(),p.setSize(l.width+l.x,l.height+l.y,!1),n=n.getChartPosition(),b.style.left=n.left+\"px\",b.style.top=n.top+\"px\")};b.prototype.drawTracker=function(){if(this.followPointer||\n!this.options.stickOnContact)this.tracker&&this.tracker.destroy();else{var b=this.chart,d=this.label,h=b.hoverPoint;if(d&&h){var e={x:0,y:0,width:0,height:0};h=this.getAnchor(h);var p=d.getBBox();h[0]+=b.plotLeft-d.translateX;h[1]+=b.plotTop-d.translateY;e.x=Math.min(0,h[0]);e.y=Math.min(0,h[1]);e.width=0>h[0]?Math.max(Math.abs(h[0]),p.width-h[0]):Math.max(Math.abs(h[0]),p.width);e.height=0>h[1]?Math.max(Math.abs(h[1]),p.height-Math.abs(h[1])):Math.max(Math.abs(h[1]),p.height);this.tracker?this.tracker.attr(e):\n(this.tracker=d.renderer.rect(e).addClass(\"highcharts-tracker\").add(d),b.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}};b.prototype.styledModeFormat=function(b){return b.replace('style=\"font-size: 10px\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex}\"')};b.prototype.tooltipFooterHeaderFormatter=function(b,d){var h=d?\"footer\":\"header\",e=b.series,g=e.tooltipOptions,l=g.xDateFormat,m=e.xAxis,u=m&&\"datetime\"===m.options.type&&\nF(b.key),f=g[h+\"Format\"];d={isFooter:d,labelConfig:b};L(this,\"headerFormatter\",d,function(h){u&&!l&&(l=this.getXDateFormat(b,g,m));u&&l&&(b.point&&b.point.tooltipDateKeys||[\"key\"]).forEach(function(e){f=f.replace(\"{point.\"+e+\"}\",\"{point.\"+e+\":\"+l+\"}\")});e.chart.styledMode&&(f=this.styledModeFormat(f));h.text=x(f,{point:b,series:e},this.chart)});return d.text};b.prototype.update=function(b){this.destroy();C(!0,this.chart.options.tooltip.userOptions,b);this.init(this.chart,C(!0,this.options,b))};b.prototype.updatePosition=\nfunction(b){var g=this.chart,h=g.pointer,e=this.getLabel(),d=b.plotX+g.plotLeft,l=b.plotY+g.plotTop;h=h.getChartPosition();b=(this.options.positioner||this.getPosition).call(this,e.width,e.height,b);if(this.outside){var m=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(e.width+m,e.height+m,!1);if(g=g.containerScaling)q(this.container,{transform:\"scale(\"+g.scaleX+\", \"+g.scaleY+\")\"}),d*=g.scaleX,l*=g.scaleY;d+=h.left-b.x;l+=h.top-b.y}this.move(Math.round(b.x),Math.round(b.y||0),\nd,l)};return b}();d.Tooltip=m;return d.Tooltip});Q(A,\"parts/Pointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"parts/Tooltip.js\"],A[\"parts/Color.js\"]],function(d,f,E,q){var M=f.addEvent,K=f.attr,J=f.css,L=f.defined,x=f.extend,F=f.find,H=f.fireEvent,C=f.isNumber,D=f.isObject,w=f.objectEach,n=f.offset,t=f.pick,N=f.splat,m=q.parse,b=d.charts,g=d.noop;f=function(){function f(b,e){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.chart=b;this.hasDragged=!1;this.options=e;this.unbindContainerMouseLeave=\nfunction(){};this.init(b,e)}f.prototype.applyInactiveState=function(b){var e=[],h;(b||[]).forEach(function(b){h=b.series;e.push(h);h.linkedParent&&e.push(h.linkedParent);h.linkedSeries&&(e=e.concat(h.linkedSeries));h.navigatorSeries&&e.push(h.navigatorSeries)});this.chart.series.forEach(function(b){-1===e.indexOf(b)?b.setState(\"inactive\",!0):b.options.inactiveOtherPoints&&b.setAllPointsToState(\"inactive\")})};f.prototype.destroy=function(){var b=this;\"undefined\"!==typeof b.unDocMouseMove&&b.unDocMouseMove();\nthis.unbindContainerMouseLeave();d.chartCount||(d.unbindDocumentMouseUp&&(d.unbindDocumentMouseUp=d.unbindDocumentMouseUp()),d.unbindDocumentTouchEnd&&(d.unbindDocumentTouchEnd=d.unbindDocumentTouchEnd()));clearInterval(b.tooltipTimeout);w(b,function(e,h){b[h]=null})};f.prototype.drag=function(b){var e=this.chart,h=e.options.chart,l=b.chartX,g=b.chartY,d=this.zoomHor,f=this.zoomVert,v=e.plotLeft,n=e.plotTop,t=e.plotWidth,B=e.plotHeight,c=this.selectionMarker,a=this.mouseDownX||0,k=this.mouseDownY||\n0,r=D(h.panning)?h.panning&&h.panning.enabled:h.panning,z=h.panKey&&b[h.panKey+\"Key\"];if(!c||!c.touch)if(l<v?l=v:l>v+t&&(l=v+t),g<n?g=n:g>n+B&&(g=n+B),this.hasDragged=Math.sqrt(Math.pow(a-l,2)+Math.pow(k-g,2)),10<this.hasDragged){var w=e.isInsidePlot(a-v,k-n);e.hasCartesianSeries&&(this.zoomX||this.zoomY)&&w&&!z&&!c&&(this.selectionMarker=c=e.renderer.rect(v,n,d?1:t,f?1:B,0).attr({\"class\":\"highcharts-selection-marker\",zIndex:7}).add(),e.styledMode||c.attr({fill:h.selectionMarkerFill||m(\"#335cad\").setOpacity(.25).get()}));\nc&&d&&(l-=a,c.attr({width:Math.abs(l),x:(0<l?0:l)+a}));c&&f&&(l=g-k,c.attr({height:Math.abs(l),y:(0<l?0:l)+k}));w&&!c&&r&&e.pan(b,h.panning)}};f.prototype.dragStart=function(b){var e=this.chart;e.mouseIsDown=b.type;e.cancelClick=!1;e.mouseDownX=this.mouseDownX=b.chartX;e.mouseDownY=this.mouseDownY=b.chartY};f.prototype.drop=function(b){var e=this,h=this.chart,l=this.hasPinched;if(this.selectionMarker){var g={originalEvent:b,xAxis:[],yAxis:[]},d=this.selectionMarker,m=d.attr?d.attr(\"x\"):d.x,f=d.attr?\nd.attr(\"y\"):d.y,v=d.attr?d.attr(\"width\"):d.width,n=d.attr?d.attr(\"height\"):d.height,B;if(this.hasDragged||l)h.axes.forEach(function(c){if(c.zoomEnabled&&L(c.min)&&(l||e[{xAxis:\"zoomX\",yAxis:\"zoomY\"}[c.coll]])){var a=c.horiz,k=\"touchend\"===b.type?c.minPixelPadding:0,h=c.toValue((a?m:f)+k);a=c.toValue((a?m+v:f+n)-k);g[c.coll].push({axis:c,min:Math.min(h,a),max:Math.max(h,a)});B=!0}}),B&&H(h,\"selection\",g,function(c){h.zoom(x(c,l?{animation:!1}:null))});C(h.index)&&(this.selectionMarker=this.selectionMarker.destroy());\nl&&this.scaleGroups()}h&&C(h.index)&&(J(h.container,{cursor:h._cursor}),h.cancelClick=10<this.hasDragged,h.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])};f.prototype.findNearestKDPoint=function(b,e,g){var l=this.chart,h=l.hoverPoint;l=l.tooltip;if(h&&l&&l.isStickyOnContact())return h;var d;b.forEach(function(b){var l=!(b.noSharedTooltip&&e)&&0>b.options.findNearestPointBy.indexOf(\"y\");b=b.searchPoint(g,l);if((l=D(b,!0))&&!(l=!D(d,!0))){l=d.distX-b.distX;var h=d.dist-b.dist,p=(b.series.group&&\nb.series.group.zIndex)-(d.series.group&&d.series.group.zIndex);l=0<(0!==l&&e?l:0!==h?h:0!==p?p:d.series.index>b.series.index?-1:1)}l&&(d=b)});return d};f.prototype.getChartCoordinatesFromPoint=function(b,e){var h=b.series,l=h.xAxis;h=h.yAxis;var g=t(b.clientX,b.plotX),d=b.shapeArgs;if(l&&h)return e?{chartX:l.len+l.pos-g,chartY:h.len+h.pos-b.plotY}:{chartX:g+l.pos,chartY:b.plotY+h.pos};if(d&&d.x&&d.y)return{chartX:d.x,chartY:d.y}};f.prototype.getChartPosition=function(){return this.chartPosition||\n(this.chartPosition=n(this.chart.container))};f.prototype.getCoordinates=function(b){var e={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(h){e[h.isXAxis?\"xAxis\":\"yAxis\"].push({axis:h,value:h.toValue(b[h.horiz?\"chartX\":\"chartY\"])})});return e};f.prototype.getHoverData=function(b,e,g,l,d,m){var h,p=[];l=!(!l||!b);var f=e&&!e.stickyTracking,u={chartX:m?m.chartX:void 0,chartY:m?m.chartY:void 0,shared:d};H(this,\"beforeGetHoverData\",u);f=f?[e]:g.filter(function(e){return u.filter?u.filter(e):e.visible&&\n!(!d&&e.directTouch)&&t(e.options.enableMouseTracking,!0)&&e.stickyTracking});e=(h=l||!m?b:this.findNearestKDPoint(f,d,m))&&h.series;h&&(d&&!e.noSharedTooltip?(f=g.filter(function(e){return u.filter?u.filter(e):e.visible&&!(!d&&e.directTouch)&&t(e.options.enableMouseTracking,!0)&&!e.noSharedTooltip}),f.forEach(function(e){var c=F(e.points,function(a){return a.x===h.x&&!a.isNull});D(c)&&(e.chart.isBoosting&&(c=e.getPoint(c)),p.push(c))})):p.push(h));u={hoverPoint:h};H(this,\"afterGetHoverData\",u);return{hoverPoint:u.hoverPoint,\nhoverSeries:e,hoverPoints:p}};f.prototype.getPointFromEvent=function(b){b=b.target;for(var e;b&&!e;)e=b.point,b=b.parentNode;return e};f.prototype.onTrackerMouseOut=function(b){b=b.relatedTarget||b.toElement;var e=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!e||!b||e.stickyTracking||this.inClass(b,\"highcharts-tooltip\")||this.inClass(b,\"highcharts-series-\"+e.index)&&this.inClass(b,\"highcharts-tracker\")))e.onMouseOut()};f.prototype.inClass=function(b,e){for(var g;b;){if(g=K(b,\"class\")){if(-1!==\ng.indexOf(e))return!0;if(-1!==g.indexOf(\"highcharts-container\"))return!1}b=b.parentNode}};f.prototype.init=function(b,e){this.options=e;this.chart=b;this.runChartClick=e.chart.events&&!!e.chart.events.click;this.pinchDown=[];this.lastValidTouch={};E&&(b.tooltip=new E(b,e.tooltip),this.followTouchMove=t(e.tooltip.followTouchMove,!0));this.setDOMEvents()};f.prototype.normalize=function(b,e){var g=b.touches,l=g?g.length?g.item(0):g.changedTouches[0]:b;e||(e=this.getChartPosition());g=l.pageX-e.left;\ne=l.pageY-e.top;if(l=this.chart.containerScaling)g/=l.scaleX,e/=l.scaleY;return x(b,{chartX:Math.round(g),chartY:Math.round(e)})};f.prototype.onContainerClick=function(b){var e=this.chart,g=e.hoverPoint;b=this.normalize(b);var l=e.plotLeft,h=e.plotTop;e.cancelClick||(g&&this.inClass(b.target,\"highcharts-tracker\")?(H(g.series,\"click\",x(b,{point:g})),e.hoverPoint&&g.firePointEvent(\"click\",b)):(x(b,this.getCoordinates(b)),e.isInsidePlot(b.chartX-l,b.chartY-h)&&H(e,\"click\",b)))};f.prototype.onContainerMouseDown=\nfunction(b){b=this.normalize(b);if(d.isFirefox&&0!==b.button)this.onContainerMouseMove(b);if(\"undefined\"===typeof b.button||1===((b.buttons||b.button)&1))this.zoomOption(b),this.dragStart(b)};f.prototype.onContainerMouseLeave=function(g){var e=b[t(d.hoverChartIndex,-1)],h=this.chart.tooltip;g=this.normalize(g);e&&(g.relatedTarget||g.toElement)&&(e.pointer.reset(),e.pointer.chartPosition=void 0);h&&!h.isHidden&&this.reset()};f.prototype.onContainerMouseMove=function(b){var e=this.chart;b=this.normalize(b);\nthis.setHoverChartIndex();b.preventDefault||(b.returnValue=!1);\"mousedown\"===e.mouseIsDown&&this.drag(b);e.openMenu||!this.inClass(b.target,\"highcharts-tracker\")&&!e.isInsidePlot(b.chartX-e.plotLeft,b.chartY-e.plotTop)||this.runPointActions(b)};f.prototype.onDocumentTouchEnd=function(g){b[d.hoverChartIndex]&&b[d.hoverChartIndex].pointer.drop(g)};f.prototype.onContainerTouchMove=function(b){this.touch(b)};f.prototype.onContainerTouchStart=function(b){this.zoomOption(b);this.touch(b,!0)};f.prototype.onDocumentMouseMove=\nfunction(b){var e=this.chart,g=this.chartPosition;b=this.normalize(b,g);var l=e.tooltip;!g||l&&l.isStickyOnContact()||e.isInsidePlot(b.chartX-e.plotLeft,b.chartY-e.plotTop)||this.inClass(b.target,\"highcharts-tracker\")||this.reset()};f.prototype.onDocumentMouseUp=function(g){var e=b[t(d.hoverChartIndex,-1)];e&&e.pointer.drop(g)};f.prototype.pinch=function(b){var e=this,h=e.chart,l=e.pinchDown,d=b.touches||[],m=d.length,f=e.lastValidTouch,v=e.hasZoom,n=e.selectionMarker,w={},B=1===m&&(e.inClass(b.target,\n\"highcharts-tracker\")&&h.runTrackerClick||e.runChartClick),c={};1<m&&(e.initiated=!0);v&&e.initiated&&!B&&b.preventDefault();[].map.call(d,function(a){return e.normalize(a)});\"touchstart\"===b.type?([].forEach.call(d,function(a,c){l[c]={chartX:a.chartX,chartY:a.chartY}}),f.x=[l[0].chartX,l[1]&&l[1].chartX],f.y=[l[0].chartY,l[1]&&l[1].chartY],h.axes.forEach(function(a){if(a.zoomEnabled){var c=h.bounds[a.horiz?\"h\":\"v\"],e=a.minPixelPadding,b=a.toPixels(Math.min(t(a.options.min,a.dataMin),a.dataMin)),\nl=a.toPixels(Math.max(t(a.options.max,a.dataMax),a.dataMax)),g=Math.max(b,l);c.min=Math.min(a.pos,Math.min(b,l)-e);c.max=Math.max(a.pos+a.len,g+e)}}),e.res=!0):e.followTouchMove&&1===m?this.runPointActions(e.normalize(b)):l.length&&(n||(e.selectionMarker=n=x({destroy:g,touch:!0},h.plotBox)),e.pinchTranslate(l,d,w,n,c,f),e.hasPinched=v,e.scaleGroups(w,c),e.res&&(e.res=!1,this.reset(!1,0)))};f.prototype.pinchTranslate=function(b,e,g,l,d,m){this.zoomHor&&this.pinchTranslateDirection(!0,b,e,g,l,d,m);\nthis.zoomVert&&this.pinchTranslateDirection(!1,b,e,g,l,d,m)};f.prototype.pinchTranslateDirection=function(b,e,g,l,d,m,f,v){var h=this.chart,p=b?\"x\":\"y\",u=b?\"X\":\"Y\",c=\"chart\"+u,a=b?\"width\":\"height\",k=h[\"plot\"+(b?\"Left\":\"Top\")],r,z,y=v||1,n=h.inverted,G=h.bounds[b?\"h\":\"v\"],t=1===e.length,w=e[0][c],I=g[0][c],x=!t&&e[1][c],O=!t&&g[1][c];g=function(){\"number\"===typeof O&&20<Math.abs(w-x)&&(y=v||Math.abs(I-O)/Math.abs(w-x));z=(k-I)/y+w;r=h[\"plot\"+(b?\"Width\":\"Height\")]/y};g();e=z;if(e<G.min){e=G.min;var V=\n!0}else e+r>G.max&&(e=G.max-r,V=!0);V?(I-=.8*(I-f[p][0]),\"number\"===typeof O&&(O-=.8*(O-f[p][1])),g()):f[p]=[I,O];n||(m[p]=z-k,m[a]=r);m=n?1/y:y;d[a]=r;d[p]=e;l[n?b?\"scaleY\":\"scaleX\":\"scale\"+u]=y;l[\"translate\"+u]=m*k+(I-m*w)};f.prototype.reset=function(b,e){var g=this.chart,l=g.hoverSeries,d=g.hoverPoint,h=g.hoverPoints,m=g.tooltip,f=m&&m.shared?h:d;b&&f&&N(f).forEach(function(e){e.series.isCartesian&&\"undefined\"===typeof e.plotX&&(b=!1)});if(b)m&&f&&N(f).length&&(m.refresh(f),m.shared&&h?h.forEach(function(e){e.setState(e.state,\n!0);e.series.isCartesian&&(e.series.xAxis.crosshair&&e.series.xAxis.drawCrosshair(null,e),e.series.yAxis.crosshair&&e.series.yAxis.drawCrosshair(null,e))}):d&&(d.setState(d.state,!0),g.axes.forEach(function(e){e.crosshair&&d.series[e.coll]===e&&e.drawCrosshair(null,d)})));else{if(d)d.onMouseOut();h&&h.forEach(function(e){e.setState()});if(l)l.onMouseOut();m&&m.hide(e);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());g.axes.forEach(function(e){e.hideCrosshair()});this.hoverX=g.hoverPoints=\ng.hoverPoint=null}};f.prototype.runPointActions=function(g,e){var h=this.chart,l=h.tooltip&&h.tooltip.options.enabled?h.tooltip:void 0,m=l?l.shared:!1,f=e||h.hoverPoint,y=f&&f.series||h.hoverSeries;y=this.getHoverData(f,y,h.series,(!g||\"touchmove\"!==g.type)&&(!!e||y&&y.directTouch&&this.isDirectTouch),m,g);f=y.hoverPoint;var v=y.hoverPoints;e=(y=y.hoverSeries)&&y.tooltipOptions.followPointer;m=m&&y&&!y.noSharedTooltip;if(f&&(f!==h.hoverPoint||l&&l.isHidden)){(h.hoverPoints||[]).forEach(function(e){-1===\nv.indexOf(e)&&e.setState()});if(h.hoverSeries!==y)y.onMouseOver();this.applyInactiveState(v);(v||[]).forEach(function(e){e.setState(\"hover\")});h.hoverPoint&&h.hoverPoint.firePointEvent(\"mouseOut\");if(!f.series)return;f.firePointEvent(\"mouseOver\");h.hoverPoints=v;h.hoverPoint=f;l&&l.refresh(m?v:f,g)}else e&&l&&!l.isHidden&&(f=l.getAnchor([{}],g),l.updatePosition({plotX:f[0],plotY:f[1]}));this.unDocMouseMove||(this.unDocMouseMove=M(h.container.ownerDocument,\"mousemove\",function(e){var l=b[d.hoverChartIndex];\nif(l)l.pointer.onDocumentMouseMove(e)}));h.axes.forEach(function(e){var b=t((e.crosshair||{}).snap,!0),l;b&&((l=h.hoverPoint)&&l.series[e.coll]===e||(l=F(v,function(c){return c.series[e.coll]===e})));l||!b?e.drawCrosshair(g,l):e.hideCrosshair()})};f.prototype.scaleGroups=function(b,e){var g=this.chart,l;g.series.forEach(function(d){l=b||d.getPlotBox();d.xAxis&&d.xAxis.zoomEnabled&&d.group&&(d.group.attr(l),d.markerGroup&&(d.markerGroup.attr(l),d.markerGroup.clip(e?g.clipRect:null)),d.dataLabelsGroup&&\nd.dataLabelsGroup.attr(l))});g.clipRect.attr(e||g.clipBox)};f.prototype.setDOMEvents=function(){var b=this.chart.container,e=b.ownerDocument;b.onmousedown=this.onContainerMouseDown.bind(this);b.onmousemove=this.onContainerMouseMove.bind(this);b.onclick=this.onContainerClick.bind(this);this.unbindContainerMouseLeave=M(b,\"mouseleave\",this.onContainerMouseLeave.bind(this));d.unbindDocumentMouseUp||(d.unbindDocumentMouseUp=M(e,\"mouseup\",this.onDocumentMouseUp.bind(this)));d.hasTouch&&(M(b,\"touchstart\",\nthis.onContainerTouchStart.bind(this)),M(b,\"touchmove\",this.onContainerTouchMove.bind(this)),d.unbindDocumentTouchEnd||(d.unbindDocumentTouchEnd=M(e,\"touchend\",this.onDocumentTouchEnd.bind(this))))};f.prototype.setHoverChartIndex=function(){var b=this.chart,e=d.charts[t(d.hoverChartIndex,-1)];if(e&&e!==b)e.pointer.onContainerMouseLeave({relatedTarget:!0});e&&e.mouseIsDown||(d.hoverChartIndex=b.index)};f.prototype.touch=function(b,e){var g=this.chart,l;this.setHoverChartIndex();if(1===b.touches.length)if(b=\nthis.normalize(b),(l=g.isInsidePlot(b.chartX-g.plotLeft,b.chartY-g.plotTop))&&!g.openMenu){e&&this.runPointActions(b);if(\"touchmove\"===b.type){e=this.pinchDown;var d=e[0]?4<=Math.sqrt(Math.pow(e[0].chartX-b.chartX,2)+Math.pow(e[0].chartY-b.chartY,2)):!1}t(d,!0)&&this.pinch(b)}else e&&this.reset();else 2===b.touches.length&&this.pinch(b)};f.prototype.zoomOption=function(b){var e=this.chart,g=e.options.chart,l=g.zoomType||\"\";e=e.inverted;/touch/.test(b.type)&&(l=t(g.pinchType,l));this.zoomX=b=/x/.test(l);\nthis.zoomY=l=/y/.test(l);this.zoomHor=b&&!e||l&&e;this.zoomVert=l&&!e||b&&e;this.hasZoom=b||l};return f}();d.Pointer=f;return d.Pointer});Q(A,\"parts/MSPointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Pointer.js\"],A[\"parts/Utilities.js\"]],function(d,f,E){function q(){var d=[];d.item=function(d){return this[d]};x(w,function(f){d.push({pageX:f.pageX,pageY:f.pageY,target:f.target})});return d}function M(f,n,m,b){\"touch\"!==f.pointerType&&f.pointerType!==f.MSPOINTER_TYPE_TOUCH||!H[d.hoverChartIndex]||(b(f),\nb=H[d.hoverChartIndex].pointer,b[n]({type:m,target:f.currentTarget,preventDefault:D,touches:q()}))}var K=this&&this.__extends||function(){var d=function(f,m){d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,g){b.__proto__=g}||function(b,g){for(var d in g)g.hasOwnProperty(d)&&(b[d]=g[d])};return d(f,m)};return function(f,m){function b(){this.constructor=f}d(f,m);f.prototype=null===m?Object.create(m):(b.prototype=m.prototype,new b)}}(),J=E.addEvent,L=E.css,x=E.objectEach,F=E.removeEvent,\nH=d.charts,C=d.doc,D=d.noop,w={},n=!!d.win.PointerEvent;return function(d){function f(){return null!==d&&d.apply(this,arguments)||this}K(f,d);f.prototype.batchMSEvents=function(d){d(this.chart.container,n?\"pointerdown\":\"MSPointerDown\",this.onContainerPointerDown);d(this.chart.container,n?\"pointermove\":\"MSPointerMove\",this.onContainerPointerMove);d(C,n?\"pointerup\":\"MSPointerUp\",this.onDocumentPointerUp)};f.prototype.destroy=function(){this.batchMSEvents(F);d.prototype.destroy.call(this)};f.prototype.init=\nfunction(m,b){d.prototype.init.call(this,m,b);this.hasZoom&&L(m.container,{\"-ms-touch-action\":\"none\",\"touch-action\":\"none\"})};f.prototype.onContainerPointerDown=function(d){M(d,\"onContainerTouchStart\",\"touchstart\",function(b){w[b.pointerId]={pageX:b.pageX,pageY:b.pageY,target:b.currentTarget}})};f.prototype.onContainerPointerMove=function(d){M(d,\"onContainerTouchMove\",\"touchmove\",function(b){w[b.pointerId]={pageX:b.pageX,pageY:b.pageY};w[b.pointerId].target||(w[b.pointerId].target=b.currentTarget)})};\nf.prototype.onDocumentPointerUp=function(d){M(d,\"onDocumentTouchEnd\",\"touchend\",function(b){delete w[b.pointerId]})};f.prototype.setDOMEvents=function(){d.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(J)};return f}(f)});Q(A,\"parts/Legend.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.animObject,M=f.css,K=f.defined,J=f.discardElement,L=f.find,x=f.fireEvent,F=f.format,H=f.isNumber,C=f.merge,D=f.pick,w=f.relativeLength,\nn=f.setAnimation,t=f.stableSort,N=f.syncTimeout;f=f.wrap;var m=d.isFirefox,b=d.marginNames,g=d.win,v=function(){function g(e,b){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=\nvoid 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=e;this.init(e,b)}g.prototype.init=function(e,b){this.chart=e;this.setOptions(b);b.enabled&&(this.render(),E(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=E(this.chart,\"render\",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};g.prototype.setOptions=function(e){var b=D(e.padding,\n8);this.options=e;this.chart.styledMode||(this.itemStyle=e.itemStyle,this.itemHiddenStyle=C(this.itemStyle,e.itemHiddenStyle));this.itemMarginTop=e.itemMarginTop||0;this.itemMarginBottom=e.itemMarginBottom||0;this.padding=b;this.initialItemY=b-5;this.symbolWidth=D(e.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===e.layout&&!this.chart.inverted;this.baseline=void 0};g.prototype.update=function(e,b){var g=this.chart;this.setOptions(C(!0,this.options,e));this.destroy();g.isDirtyLegend=g.isDirtyBox=\n!0;D(b,!0)&&g.redraw();x(this,\"afterUpdate\")};g.prototype.colorizeItem=function(e,b){e.legendGroup[b?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){var g=this.options,d=e.legendItem,h=e.legendLine,m=e.legendSymbol,f=this.itemHiddenStyle.color;g=b?g.itemStyle.color:f;var p=b?e.color||f:f,v=e.options&&e.options.marker,n={fill:p};d&&d.css({fill:g,color:g});h&&h.attr({stroke:p});m&&(v&&m.isMarker&&(n=e.pointAttribs(),b||(n.stroke=n.fill=f)),m.attr(n))}x(this,\"afterColorizeItem\",\n{item:e,visible:b})};g.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};g.prototype.positionItem=function(e){var b=this.options,g=b.symbolPadding;b=!b.rtl;var d=e._legendItemPos,h=d[0];d=d[1];var m=e.checkbox;if((e=e.legendGroup)&&e.element)e[K(e.translateY)?\"animate\":\"attr\"]({translateX:b?h:this.legendWidth-h-2*g-4,translateY:d});m&&(m.x=h,m.y=d)};g.prototype.destroyItem=function(e){var b=e.checkbox;[\"legendItem\",\"legendLine\",\n\"legendSymbol\",\"legendGroup\"].forEach(function(b){e[b]&&(e[b]=e[b].destroy())});b&&J(e.checkbox)};g.prototype.destroy=function(){function b(b){this[b]&&(this[b]=this[b].destroy())}this.getAllItems().forEach(function(e){[\"legendItem\",\"legendGroup\"].forEach(b,e)});\"clipRect up down pager nav box title group\".split(\" \").forEach(b,this);this.display=null};g.prototype.positionCheckboxes=function(){var b=this.group&&this.group.alignAttr,g=this.clipHeight||this.legendHeight,l=this.titleHeight;if(b){var d=\nb.translateY;this.allItems.forEach(function(e){var h=e.checkbox;if(h){var m=d+l+h.y+(this.scrollOffset||0)+3;M(h,{left:b.translateX+e.checkboxOffset+h.x-20+\"px\",top:m+\"px\",display:this.proximate||m>d-6&&m<d+g-6?\"\":\"none\"})}},this)}};g.prototype.renderTitle=function(){var b=this.options,g=this.padding,l=b.title,d=0;l.text&&(this.title||(this.title=this.chart.renderer.label(l.text,g-3,g-4,null,null,null,b.useHTML,null,\"legend-title\").attr({zIndex:1}),this.chart.styledMode||this.title.css(l.style),this.title.add(this.group)),\nl.width||this.title.css({width:this.maxLegendWidth+\"px\"}),b=this.title.getBBox(),d=b.height,this.offsetWidth=b.width,this.contentGroup.attr({translateY:d}));this.titleHeight=d};g.prototype.setText=function(b){var e=this.options;b.legendItem.attr({text:e.labelFormat?F(e.labelFormat,b,this.chart):e.labelFormatter.call(b)})};g.prototype.renderItem=function(b){var e=this.chart,g=e.renderer,d=this.options,h=this.symbolWidth,m=d.symbolPadding,f=this.itemStyle,v=this.itemHiddenStyle,n=\"horizontal\"===d.layout?\nD(d.itemDistance,20):0,w=!d.rtl,c=b.legendItem,a=!b.series,k=!a&&b.series.drawLegendSymbol?b.series:b,r=k.options;r=this.createCheckboxForItem&&r&&r.showCheckbox;n=h+m+n+(r?20:0);var z=d.useHTML,t=b.options.className;c||(b.legendGroup=g.g(\"legend-item\").addClass(\"highcharts-\"+k.type+\"-series highcharts-color-\"+b.colorIndex+(t?\" \"+t:\"\")+(a?\" highcharts-series-\"+b.index:\"\")).attr({zIndex:1}).add(this.scrollGroup),b.legendItem=c=g.text(\"\",w?h+m:-m,this.baseline||0,z),e.styledMode||c.css(C(b.visible?\nf:v)),c.attr({align:w?\"left\":\"right\",zIndex:2}).add(b.legendGroup),this.baseline||(this.fontMetrics=g.fontMetrics(e.styledMode?12:f.fontSize,c),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,c.attr(\"y\",this.baseline)),this.symbolHeight=d.symbolHeight||this.fontMetrics.f,k.drawLegendSymbol(this,b),this.setItemEvents&&this.setItemEvents(b,c,z));r&&!b.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(b);this.colorizeItem(b,b.visible);!e.styledMode&&f.width||c.css({width:(d.itemWidth||\nthis.widthOption||e.spacingBox.width)-n+\"px\"});this.setText(b);e=c.getBBox();b.itemWidth=b.checkboxOffset=d.itemWidth||b.legendItemWidth||e.width+n;this.maxItemWidth=Math.max(this.maxItemWidth,b.itemWidth);this.totalItemWidth+=b.itemWidth;this.itemHeight=b.itemHeight=Math.round(b.legendItemHeight||e.height||this.symbolHeight)};g.prototype.layoutItem=function(b){var e=this.options,g=this.padding,d=\"horizontal\"===e.layout,h=b.itemHeight,m=this.itemMarginBottom,f=this.itemMarginTop,v=d?D(e.itemDistance,\n20):0,n=this.maxLegendWidth;e=e.alignColumns&&this.totalItemWidth>n?this.maxItemWidth:b.itemWidth;d&&this.itemX-g+e>n&&(this.itemX=g,this.lastLineHeight&&(this.itemY+=f+this.lastLineHeight+m),this.lastLineHeight=0);this.lastItemY=f+this.itemY+m;this.lastLineHeight=Math.max(h,this.lastLineHeight);b._legendItemPos=[this.itemX,this.itemY];d?this.itemX+=e:(this.itemY+=f+h+m,this.lastLineHeight=h);this.offsetWidth=this.widthOption||Math.max((d?this.itemX-g-(b.checkbox?0:v):e)+g,this.offsetWidth)};g.prototype.getAllItems=\nfunction(){var b=[];this.chart.series.forEach(function(e){var g=e&&e.options;e&&D(g.showInLegend,K(g.linkedTo)?!1:void 0,!0)&&(b=b.concat(e.legendItems||(\"point\"===g.legendType?e.data:e)))});x(this,\"afterGetAllItems\",{allItems:b});return b};g.prototype.getAlignment=function(){var b=this.options;return this.proximate?b.align.charAt(0)+\"tv\":b.floating?\"\":b.align.charAt(0)+b.verticalAlign.charAt(0)+b.layout.charAt(0)};g.prototype.adjustMargins=function(e,g){var l=this.chart,d=this.options,h=this.getAlignment();\nh&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(m,f){m.test(h)&&!K(e[f])&&(l[b[f]]=Math.max(l[b[f]],l.legend[(f+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][f]*d[f%2?\"x\":\"y\"]+D(d.margin,12)+g[f]+(l.titleOffset[f]||0)))})};g.prototype.proximatePositions=function(){var b=this.chart,g=[],l=\"left\"===this.options.align;this.allItems.forEach(function(e){var d=l;if(e.yAxis&&e.points){e.xAxis.options.reversed&&(d=!d);var h=L(d?e.points:e.points.slice(0).reverse(),function(b){return H(b.plotY)});\nd=this.itemMarginTop+e.legendItem.getBBox().height+this.itemMarginBottom;var m=e.yAxis.top-b.plotTop;e.visible?(h=h?h.plotY:e.yAxis.height,h+=m-.3*d):h=m+e.yAxis.height;g.push({target:h,size:d,item:e})}},this);d.distribute(g,b.plotHeight);g.forEach(function(e){e.item._legendItemPos[1]=b.plotTop-b.spacing[0]+e.pos})};g.prototype.render=function(){var b=this.chart,g=b.renderer,l=this.group,d=this.box,h=this.options,m=this.padding;this.itemX=m;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=\n0;this.widthOption=w(h.width,b.spacingBox.width-m);var f=b.spacingBox.width-2*m-h.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(f/=2);this.maxLegendWidth=this.widthOption||f;l||(this.group=l=g.g(\"legend\").attr({zIndex:7}).add(),this.contentGroup=g.g().attr({zIndex:1}).add(l),this.scrollGroup=g.g().add(this.contentGroup));this.renderTitle();var v=this.getAllItems();t(v,function(b,c){return(b.options&&b.options.legendIndex||0)-(c.options&&c.options.legendIndex||0)});h.reversed&&v.reverse();\nthis.allItems=v;this.display=f=!!v.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;v.forEach(this.renderItem,this);v.forEach(this.layoutItem,this);v=(this.widthOption||this.offsetWidth)+m;var n=this.lastItemY+this.lastLineHeight+this.titleHeight;n=this.handleOverflow(n);n+=m;d||(this.box=d=g.rect().addClass(\"highcharts-legend-box\").attr({r:h.borderRadius}).add(l),d.isNew=!0);b.styledMode||d.attr({stroke:h.borderColor,\"stroke-width\":h.borderWidth||0,fill:h.backgroundColor||\n\"none\"}).shadow(h.shadow);0<v&&0<n&&(d[d.isNew?\"attr\":\"animate\"](d.crisp.call({},{x:0,y:0,width:v,height:n},d.strokeWidth())),d.isNew=!1);d[f?\"show\":\"hide\"]();b.styledMode&&\"none\"===l.getStyle(\"display\")&&(v=n=0);this.legendWidth=v;this.legendHeight=n;f&&this.align();this.proximate||this.positionItems();x(this,\"afterRender\")};g.prototype.align=function(b){void 0===b&&(b=this.chart.spacingBox);var e=this.chart,g=this.options,d=b.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<e.titleOffset[0]?d+=e.titleOffset[0]:\n/(lbh|cb|rbh)/.test(this.getAlignment())&&0<e.titleOffset[2]&&(d-=e.titleOffset[2]);d!==b.y&&(b=C(b,{y:d}));this.group.align(C(g,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":g.verticalAlign}),!0,b)};g.prototype.handleOverflow=function(b){var e=this,g=this.chart,d=g.renderer,h=this.options,m=h.y,f=this.padding;m=g.spacingBox.height+(\"top\"===h.verticalAlign?-m:m)-f;var v=h.maxHeight,n,w=this.clipRect,c=h.navigation,a=D(c.animation,!0),k=c.arrowSize||12,r=this.nav,\nz=this.pages,t,x=this.allItems,q=function(a){\"number\"===typeof a?w.attr({height:a}):w&&(e.clipRect=w.destroy(),e.contentGroup.clip());e.contentGroup.div&&(e.contentGroup.div.style.clip=a?\"rect(\"+f+\"px,9999px,\"+(f+a)+\"px,0)\":\"auto\")},C=function(a){e[a]=d.circle(0,0,1.3*k).translate(k/2,k/2).add(r);g.styledMode||e[a].attr(\"fill\",\"rgba(0,0,0,0.0001)\");return e[a]};\"horizontal\"!==h.layout||\"middle\"===h.verticalAlign||h.floating||(m/=2);v&&(m=Math.min(m,v));z.length=0;b>m&&!1!==c.enabled?(this.clipHeight=\nn=Math.max(m-20-this.titleHeight-f,0),this.currentPage=D(this.currentPage,1),this.fullHeight=b,x.forEach(function(a,c){var b=a._legendItemPos[1],e=Math.round(a.legendItem.getBBox().height),k=z.length;if(!k||b-z[k-1]>n&&(t||b)!==z[k-1])z.push(t||b),k++;a.pageIx=k-1;t&&(x[c-1].pageIx=k-1);c===x.length-1&&b+e-z[k-1]>n&&b!==t&&(z.push(b),a.pageIx=k);b!==t&&(t=b)}),w||(w=e.clipRect=d.clipRect(0,f,9999,0),e.contentGroup.clip(w)),q(n),r||(this.nav=r=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol(\"triangle\",\n0,0,k,k).add(r),C(\"upTracker\").on(\"click\",function(){e.scroll(-1,a)}),this.pager=d.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),g.styledMode||this.pager.css(c.style),this.pager.add(r),this.down=d.symbol(\"triangle-down\",0,0,k,k).add(r),C(\"downTracker\").on(\"click\",function(){e.scroll(1,a)})),e.scroll(0),b=m):r&&(q(),this.nav=r.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return b};g.prototype.scroll=function(b,g){var e=this,d=this.chart,h=this.pages,m=h.length,f=this.currentPage+\nb;b=this.clipHeight;var p=this.options.navigation,v=this.pager,w=this.padding;f>m&&(f=m);0<f&&(\"undefined\"!==typeof g&&n(g,d),this.nav.attr({translateX:w,translateY:b+this.padding+7+this.titleHeight,visibility:\"visible\"}),[this.up,this.upTracker].forEach(function(c){c.attr({\"class\":1===f?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),v.attr({text:f+\"/\"+m}),[this.down,this.downTracker].forEach(function(c){c.attr({x:18+this.pager.getBBox().width,\"class\":f===m?\"highcharts-legend-nav-inactive\":\n\"highcharts-legend-nav-active\"})},this),d.styledMode||(this.up.attr({fill:1===f?p.inactiveColor:p.activeColor}),this.upTracker.css({cursor:1===f?\"default\":\"pointer\"}),this.down.attr({fill:f===m?p.inactiveColor:p.activeColor}),this.downTracker.css({cursor:f===m?\"default\":\"pointer\"})),this.scrollOffset=-h[f-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=f,this.positionCheckboxes(),g=q(D(g,d.renderer.globalAnimation,!0)),N(function(){x(e,\"afterScroll\",\n{currentPage:f})},g.duration||0))};return g}();(/Trident\\/7\\.0/.test(g.navigator&&g.navigator.userAgent)||m)&&f(v.prototype,\"positionItem\",function(b,e){var g=this,d=function(){e._legendItemPos&&b.call(g,e)};d();g.bubbleLegend||setTimeout(d)});d.Legend=v;return d.Legend});Q(A,\"parts/Chart.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/MSPointer.js\"],A[\"parts/Pointer.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q,M,K){var J=K.addEvent,L=K.animate,x=K.animObject,F=K.attr,\nH=K.createElement,C=K.css,D=K.defined,w=K.discardElement,n=K.erase,t=K.error,N=K.extend,m=K.find,b=K.fireEvent,g=K.getStyle,v=K.isArray,h=K.isFunction,e=K.isNumber,p=K.isObject,l=K.isString,I=K.merge,u=K.numberFormat,y=K.objectEach,G=K.pick,S=K.pInt,R=K.relativeLength,B=K.removeEvent,c=K.setAnimation,a=K.splat,k=K.syncTimeout,r=K.uniqueKey,z=d.doc,P=d.Axis,U=d.defaultOptions,W=d.charts,Y=d.marginNames,T=d.seriesTypes,A=d.win,aa=d.Chart=function(){this.getArgs.apply(this,arguments)};d.chart=function(a,\nc,b){return new aa(a,c,b)};N(aa.prototype,{callbacks:[],getArgs:function(){var a=[].slice.call(arguments);if(l(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(a,c){var e,k=a.series,g=a.plotOptions||{};b(this,\"init\",{args:arguments},function(){a.series=null;e=I(U,a);var l=e.chart||{};y(e.plotOptions,function(a,c){p(a)&&(a.tooltip=g[c]&&I(g[c].tooltip)||void 0)});e.tooltip.userOptions=a.chart&&a.chart.forExport&&a.tooltip.userOptions||a.tooltip;e.series=a.series=k;this.userOptions=\na;var m=l.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=c;this.isResizing=0;this.options=e;this.axes=[];this.series=[];this.time=a.time&&Object.keys(a.time).length?new M(a.time):d.time;this.numberFormatter=l.numberFormatter||u;this.styledMode=l.styledMode;this.hasCartesianSeries=l.showAxes;var f=this;f.index=W.length;W.push(f);d.chartCount++;m&&y(m,function(a,c){h(a)&&J(f,c,a)});f.xAxis=[];f.yAxis=[];f.pointCount=f.colorCounter=f.symbolCounter=\n0;b(f,\"afterInit\");f.firstRender()})},initSeries:function(a){var c=this.options.chart;c=a.type||c.type||c.defaultSeriesType;var b=T[c];b||t(17,!0,this,{missingModuleFor:c});c=new b;c.init(this,a);return c},setSeriesData:function(){this.getSeriesOrderByLinks().forEach(function(a){a.points||a.data||!a.enabledDataSorting||a.setData(a.options.data,!1)})},getSeriesOrderByLinks:function(){return this.series.concat().sort(function(a,c){return a.linkedSeries.length||c.linkedSeries.length?c.linkedSeries.length-\na.linkedSeries.length:0})},orderSeries:function(a){var c=this.series;for(a=a||0;a<c.length;a++)c[a]&&(c[a].index=a,c[a].name=c[a].getName())},isInsidePlot:function(a,c,e){var k=e?c:a;a=e?a:c;k={x:k,y:a,isInsidePlot:0<=k&&k<=this.plotWidth&&0<=a&&a<=this.plotHeight};b(this,\"afterIsInsidePlot\",k);return k.isInsidePlot},redraw:function(a){b(this,\"beforeRedraw\");var e=this.axes,k=this.series,g=this.pointer,d=this.legend,l=this.userOptions.legend,h=this.isDirtyLegend,f=this.hasCartesianSeries,m=this.isDirtyBox,\nr=this.renderer,u=r.isHidden(),p=[];this.setResponsive&&this.setResponsive(!1);c(this.hasRendered?a:!1,this);u&&this.temporaryDisplay();this.layOutTitles();for(a=k.length;a--;){var v=k[a];if(v.options.stacking){var z=!0;if(v.isDirty){var n=!0;break}}}if(n)for(a=k.length;a--;)v=k[a],v.options.stacking&&(v.isDirty=!0);k.forEach(function(a){a.isDirty&&(\"point\"===a.options.legendType?(a.updateTotals&&a.updateTotals(),h=!0):l&&(l.labelFormatter||l.labelFormat)&&(h=!0));a.isDirtyData&&b(a,\"updatedData\")});\nh&&d&&d.options.enabled&&(d.render(),this.isDirtyLegend=!1);z&&this.getStacks();f&&e.forEach(function(a){a.updateNames();a.setScale()});this.getMargins();f&&(e.forEach(function(a){a.isDirty&&(m=!0)}),e.forEach(function(a){var c=a.min+\",\"+a.max;a.extKey!==c&&(a.extKey=c,p.push(function(){b(a,\"afterSetExtremes\",N(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(m||z)&&a.redraw()}));m&&this.drawChartBox();b(this,\"predraw\");k.forEach(function(a){(m||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=\n!1});g&&g.reset(!0);r.draw();b(this,\"redraw\");b(this,\"render\");u&&this.temporaryDisplay(!0);p.forEach(function(a){a.call()})},get:function(a){function c(c){return c.id===a||c.options&&c.options.id===a}var b=this.series,e;var k=m(this.axes,c)||m(this.series,c);for(e=0;!k&&e<b.length;e++)k=m(b[e].points||[],c);return k},getAxes:function(){var c=this,e=this.options,k=e.xAxis=a(e.xAxis||{});e=e.yAxis=a(e.yAxis||{});b(this,\"getAxes\");k.forEach(function(a,c){a.index=c;a.isX=!0});e.forEach(function(a,c){a.index=\nc});k.concat(e).forEach(function(a){new P(c,a)});b(this,\"afterGetAxes\")},getSelectedPoints:function(){var a=[];this.series.forEach(function(c){a=a.concat(c.getPointsCollection().filter(function(a){return G(a.selectedStaging,a.selected)}))});return a},getSelectedSeries:function(){return this.series.filter(function(a){return a.selected})},setTitle:function(a,c,b){this.applyDescription(\"title\",a);this.applyDescription(\"subtitle\",c);this.applyDescription(\"caption\",void 0);this.layOutTitles(b)},applyDescription:function(a,\nc){var b=this,e=\"title\"===a?{color:\"#333333\",fontSize:this.options.isStock?\"16px\":\"18px\"}:{color:\"#666666\"};e=this.options[a]=I(!this.styledMode&&{style:e},this.options[a],c);var k=this[a];k&&c&&(this[a]=k=k.destroy());e&&!k&&(k=this.renderer.text(e.text,0,0,e.useHTML).attr({align:e.align,\"class\":\"highcharts-\"+a,zIndex:e.zIndex||4}).add(),k.update=function(c){b[{title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"}[a]](c)},this.styledMode||k.css(e.style),this[a]=k)},layOutTitles:function(a){var c=\n[0,0,0],e=this.renderer,k=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(a){var b=this[a],g=this.options[a],d=g.verticalAlign||\"top\";a=\"title\"===a?-3:\"top\"===d?c[0]+2:0;if(b){if(!this.styledMode)var l=g.style.fontSize;l=e.fontMetrics(l,b).b;b.css({width:(g.width||k.width+(g.widthAdjust||0))+\"px\"});var h=Math.round(b.getBBox(g.useHTML).height);b.align(N({y:\"bottom\"===d?l:a+l,height:h},g),!1,\"spacingBox\");g.floating||(\"top\"===d?c[0]=Math.ceil(c[0]+h):\"bottom\"===d&&(c[2]=Math.ceil(c[2]+\nh)))}},this);c[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(c[0]+=this.options.title.margin);c[2]&&\"bottom\"===this.options.caption.verticalAlign&&(c[2]+=this.options.caption.margin);var g=!this.titleOffset||this.titleOffset.join(\",\")!==c.join(\",\");this.titleOffset=c;b(this,\"afterLayOutTitles\");!this.isDirtyBox&&g&&(this.isDirtyBox=this.isDirtyLegend=g,this.hasRendered&&G(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var a=this.options.chart,c=a.width;a=a.height;var b=\nthis.renderTo;D(c)||(this.containerWidth=g(b,\"width\"));D(a)||(this.containerHeight=g(b,\"height\"));this.chartWidth=Math.max(0,c||this.containerWidth||600);this.chartHeight=Math.max(0,R(a,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(a){var c=this.renderTo;if(a)for(;c&&c.style;)c.hcOrigStyle&&(C(c,c.hcOrigStyle),delete c.hcOrigStyle),c.hcOrigDetached&&(z.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style;){z.body.contains(c)||\nc.parentNode||(c.hcOrigDetached=!0,z.body.appendChild(c));if(\"none\"===g(c,\"display\",!1)||c.hcOricDetached)c.hcOrigStyle={display:c.style.display,height:c.style.height,overflow:c.style.overflow},a={display:\"block\",overflow:\"hidden\"},c!==this.renderTo&&(a.height=0),C(c,a),c.offsetWidth||c.style.setProperty(\"display\",\"block\",\"important\");c=c.parentNode;if(c===z.body)break}},setClassName:function(a){this.container.className=\"highcharts-container \"+(a||\"\")},getContainer:function(){var a=this.options,k=\na.chart;var g=this.renderTo;var h=r(),m,f;g||(this.renderTo=g=k.renderTo);l(g)&&(this.renderTo=g=z.getElementById(g));g||t(13,!0,this);var u=S(F(g,\"data-highcharts-chart\"));e(u)&&W[u]&&W[u].hasRendered&&W[u].destroy();F(g,\"data-highcharts-chart\",this.index);g.innerHTML=\"\";k.skipClone||g.offsetWidth||this.temporaryDisplay();this.getChartSize();u=this.chartWidth;var p=this.chartHeight;C(g,{overflow:\"hidden\"});this.styledMode||(m=N({position:\"relative\",overflow:\"hidden\",width:u+\"px\",height:p+\"px\",textAlign:\"left\",\nlineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\"},k.style));this.container=g=H(\"div\",{id:h},m,g);this._cursor=g.style.cursor;this.renderer=new (d[k.renderer]||d.Renderer)(g,u,p,null,k.forExport,a.exporting&&a.exporting.allowHTML,this.styledMode);c(void 0,this);this.setClassName(k.className);if(this.styledMode)for(f in a.defs)this.renderer.definition(a.defs[f]);else this.renderer.setStyle(k.style);this.renderer.chartIndex=this.index;b(this,\"afterGetContainer\")},getMargins:function(a){var c=\nthis.spacing,e=this.margin,k=this.titleOffset;this.resetMargins();k[0]&&!D(e[0])&&(this.plotTop=Math.max(this.plotTop,k[0]+c[0]));k[2]&&!D(e[2])&&(this.marginBottom=Math.max(this.marginBottom,k[2]+c[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(e,c);b(this,\"getMargins\");a||this.getAxisMargins()},getAxisMargins:function(){var a=this,c=a.axisOffset=[0,0,0,0],b=a.colorAxis,e=a.margin,k=function(a){a.forEach(function(a){a.visible&&a.getOffset()})};a.hasCartesianSeries?k(a.axes):b&&\nb.length&&k(b);Y.forEach(function(b,k){D(e[k])||(a[b]+=c[k])});a.setChartSize()},reflow:function(a){var c=this,b=c.options.chart,e=c.renderTo,d=D(b.width)&&D(b.height),l=b.width||g(e,\"width\");b=b.height||g(e,\"height\");e=a?a.target:A;if(!d&&!c.isPrinting&&l&&b&&(e===A||e===z)){if(l!==c.containerWidth||b!==c.containerHeight)K.clearTimeout(c.reflowTimeout),c.reflowTimeout=k(function(){c.container&&c.setSize(void 0,void 0,!1)},a?100:0);c.containerWidth=l;c.containerHeight=b}},setReflow:function(a){var c=\nthis;!1===a||this.unbindReflow?!1===a&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=J(A,\"resize\",function(a){c.options&&c.reflow(a)}),J(this,\"destroy\",this.unbindReflow))},setSize:function(a,e,g){var d=this,l=d.renderer;d.isResizing+=1;c(g,d);g=l.globalAnimation;d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;\"undefined\"!==typeof a&&(d.options.chart.width=a);\"undefined\"!==typeof e&&(d.options.chart.height=e);d.getChartSize();d.styledMode||(g?L:C)(d.container,\n{width:d.chartWidth+\"px\",height:d.chartHeight+\"px\"},g);d.setChartSize(!0);l.setSize(d.chartWidth,d.chartHeight,g);d.axes.forEach(function(a){a.isDirty=!0;a.setScale()});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.layOutTitles();d.getMargins();d.redraw(g);d.oldChartHeight=null;b(d,\"resize\");k(function(){d&&b(d,\"endResize\",null,function(){--d.isResizing})},x(g).duration||0)},setChartSize:function(a){var c=this.inverted,e=this.renderer,k=this.chartWidth,g=this.chartHeight,d=this.options.chart,l=this.spacing,\nh=this.clipOffset,m,f,r,u;this.plotLeft=m=Math.round(this.plotLeft);this.plotTop=f=Math.round(this.plotTop);this.plotWidth=r=Math.max(0,Math.round(k-m-this.marginRight));this.plotHeight=u=Math.max(0,Math.round(g-f-this.marginBottom));this.plotSizeX=c?u:r;this.plotSizeY=c?r:u;this.plotBorderWidth=d.plotBorderWidth||0;this.spacingBox=e.spacingBox={x:l[3],y:l[0],width:k-l[3]-l[1],height:g-l[0]-l[2]};this.plotBox=e.plotBox={x:m,y:f,width:r,height:u};k=2*Math.floor(this.plotBorderWidth/2);c=Math.ceil(Math.max(k,\nh[3])/2);e=Math.ceil(Math.max(k,h[0])/2);this.clipBox={x:c,y:e,width:Math.floor(this.plotSizeX-Math.max(k,h[1])/2-c),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(k,h[2])/2-e))};a||this.axes.forEach(function(a){a.setAxisSize();a.setAxisTranslation()});b(this,\"afterSetChartSize\",{skipAxes:a})},resetMargins:function(){b(this,\"resetMargins\");var a=this,c=a.options.chart;[\"margin\",\"spacing\"].forEach(function(b){var e=c[b],k=p(e)?e:[e,e,e,e];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(e,g){a[b][g]=\nG(c[b+e],k[g])})});Y.forEach(function(c,b){a[c]=G(a.margin[b],a.spacing[b])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,c=this.renderer,e=this.chartWidth,k=this.chartHeight,g=this.chartBackground,d=this.plotBackground,l=this.plotBorder,h=this.styledMode,m=this.plotBGImage,f=a.backgroundColor,r=a.plotBackgroundColor,u=a.plotBackgroundImage,p,v=this.plotLeft,z=this.plotTop,n=this.plotWidth,y=this.plotHeight,w=this.plotBox,t=this.clipRect,B=this.clipBox,\nP=\"animate\";g||(this.chartBackground=g=c.rect().addClass(\"highcharts-background\").add(),P=\"attr\");if(h)var G=p=g.strokeWidth();else{G=a.borderWidth||0;p=G+(a.shadow?8:0);f={fill:f||\"none\"};if(G||g[\"stroke-width\"])f.stroke=a.borderColor,f[\"stroke-width\"]=G;g.attr(f).shadow(a.shadow)}g[P]({x:p/2,y:p/2,width:e-p-G%2,height:k-p-G%2,r:a.borderRadius});P=\"animate\";d||(P=\"attr\",this.plotBackground=d=c.rect().addClass(\"highcharts-plot-background\").add());d[P](w);h||(d.attr({fill:r||\"none\"}).shadow(a.plotShadow),\nu&&(m?(u!==m.attr(\"href\")&&m.attr(\"href\",u),m.animate(w)):this.plotBGImage=c.image(u,v,z,n,y).add()));t?t.animate({width:B.width,height:B.height}):this.clipRect=c.clipRect(B);P=\"animate\";l||(P=\"attr\",this.plotBorder=l=c.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add());h||l.attr({stroke:a.plotBorderColor,\"stroke-width\":a.plotBorderWidth||0,fill:\"none\"});l[P](l.crisp({x:v,y:z,width:n,height:y},-l.strokeWidth()));this.isDirtyBox=!1;b(this,\"afterDrawChartBox\")},propFromSeries:function(){var a=\nthis,c=a.options.chart,b,e=a.options.series,k,g;[\"inverted\",\"angular\",\"polar\"].forEach(function(d){b=T[c.type||c.defaultSeriesType];g=c[d]||b&&b.prototype[d];for(k=e&&e.length;!g&&k--;)(b=T[e[k].type])&&b.prototype[d]&&(g=!0);a[d]=g})},linkSeries:function(){var a=this,c=a.series;c.forEach(function(a){a.linkedSeries.length=0});c.forEach(function(c){var b=c.options.linkedTo;l(b)&&(b=\":previous\"===b?a.series[c.index-1]:a.get(b))&&b.linkedParent!==c&&(b.linkedSeries.push(c),c.linkedParent=b,b.enabledDataSorting&&\nc.setDataSortingOptions(),c.visible=G(c.options.visible,b.options.visible,c.visible))});b(this,\"afterLinkSeries\")},renderSeries:function(){this.series.forEach(function(a){a.translate();a.render()})},renderLabels:function(){var a=this,c=a.options.labels;c.items&&c.items.forEach(function(b){var e=N(c.style,b.style),k=S(e.left)+a.plotLeft,g=S(e.top)+a.plotTop+12;delete e.left;delete e.top;a.renderer.text(b.html,k,g).attr({zIndex:2}).css(e).add()})},render:function(){var a=this.axes,c=this.colorAxis,\nb=this.renderer,e=this.options,k=0,g=function(a){a.forEach(function(a){a.visible&&a.render()})};this.setTitle();this.legend=new f(this,e.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();e=this.plotWidth;a.some(function(a){if(a.horiz&&a.visible&&a.options.labels.enabled&&a.series.length)return k=21,!0});var d=this.plotHeight=Math.max(this.plotHeight-k,0);a.forEach(function(a){a.setScale()});this.getAxisMargins();var l=1.1<e/this.plotWidth;var h=1.05<d/this.plotHeight;\nif(l||h)a.forEach(function(a){(a.horiz&&l||!a.horiz&&h)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?g(a):c&&c.length&&g(c);this.seriesGroup||(this.seriesGroup=b.g(\"series-group\").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.updateContainerScaling();this.hasRendered=!0},addCredits:function(a){var c=this;a=I(!0,this.options.credits,a);a.enabled&&!this.credits&&(this.credits=\nthis.renderer.text(a.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){a.href&&(A.location.href=a.href)}).attr({align:a.position.align,zIndex:8}),c.styledMode||this.credits.css(a.style),this.credits.add().align(a.position),this.credits.update=function(a){c.credits=c.credits.destroy();c.addCredits(a)})},updateContainerScaling:function(){var a=this.container;if(a.offsetWidth&&a.offsetHeight&&a.getBoundingClientRect){var c=a.getBoundingClientRect(),b=c.width/a.offsetWidth;\na=c.height/a.offsetHeight;1!==b||1!==a?this.containerScaling={scaleX:b,scaleY:a}:delete this.containerScaling}},destroy:function(){var a=this,c=a.axes,e=a.series,k=a.container,g,l=k&&k.parentNode;b(a,\"destroy\");a.renderer.forExport?n(W,a):W[a.index]=void 0;d.chartCount--;a.renderTo.removeAttribute(\"data-highcharts-chart\");B(a);for(g=c.length;g--;)c[g]=c[g].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(g=e.length;g--;)e[g]=e[g].destroy();\"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function(c){var b=\na[c];b&&b.destroy&&(a[c]=b.destroy())});k&&(k.innerHTML=\"\",B(k),l&&w(k));y(a,function(c,b){delete a[b]})},firstRender:function(){var a=this,c=a.options;if(!a.isReadyToRender||a.isReadyToRender()){a.getContainer();a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();(v(c.series)?c.series:[]).forEach(function(c){a.initSeries(c)});a.linkSeries();a.setSeriesData();b(a,\"beforeRender\");q&&(a.pointer=d.hasTouch||!A.PointerEvent&&!A.MSPointerEvent?new q(a,c):new E(a,c));a.render();if(!a.renderer.imgCount&&\n!a.hasLoaded)a.onload();a.temporaryDisplay(!0)}},onload:function(){this.callbacks.concat([this.callback]).forEach(function(a){a&&\"undefined\"!==typeof this.index&&a.apply(this,[this])},this);b(this,\"load\");b(this,\"render\");D(this.index)&&this.setReflow(this.options.chart.reflow);this.hasLoaded=!0}})});Q(A,\"parts/ScrollablePlotArea.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.createElement,A=f.pick,K=f.stop;f=d.Chart;\"\";E(f,\"afterSetChartSize\",function(f){var q=\nthis.options.chart.scrollablePlotArea,x=q&&q.minWidth;q=q&&q.minHeight;if(!this.renderer.forExport){if(x){if(this.scrollablePixelsX=x=Math.max(0,x-this.chartWidth)){this.plotWidth+=x;this.inverted?(this.clipBox.height+=x,this.plotBox.height+=x):(this.clipBox.width+=x,this.plotBox.width+=x);var F={1:{name:\"right\",value:x}}}}else q&&(this.scrollablePixelsY=x=Math.max(0,q-this.chartHeight))&&(this.plotHeight+=x,this.inverted?(this.clipBox.width+=x,this.plotBox.width+=x):(this.clipBox.height+=x,this.plotBox.height+=\nx),F={2:{name:\"bottom\",value:x}});F&&!f.skipAxes&&this.axes.forEach(function(f){F[f.side]?f.getPlotLinePath=function(){var x=F[f.side].name,q=this[x];this[x]=q-F[f.side].value;var w=d.Axis.prototype.getPlotLinePath.apply(this,arguments);this[x]=q;return w}:(f.setAxisSize(),f.setAxisTranslation())})}});E(f,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});f.prototype.setUpScrolling=function(){var d=\nthis,f={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(f.overflowX=\"auto\");this.scrollablePixelsY&&(f.overflowY=\"auto\");this.scrollingContainer=q(\"div\",{className:\"highcharts-scrolling\"},f,this.renderTo);E(this.scrollingContainer,\"scroll\",function(){d.pointer&&delete d.pointer.chartPosition});this.innerContainer=q(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=\nnull};f.prototype.moveFixedElements=function(){var d=this.container,f=this.fixedRenderer,x=\".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),q;this.scrollablePixelsX&&!this.inverted?q=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?q=\".highcharts-xaxis\":\nthis.scrollablePixelsY&&!this.inverted?q=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(q=\".highcharts-yaxis\");x.push(q,q+\"-labels\");x.forEach(function(x){[].forEach.call(d.querySelectorAll(x),function(d){(d.namespaceURI===f.SVG_NS?f.box:f.box.parentNode).appendChild(d);d.style.pointerEvents=\"auto\"})})};f.prototype.applyFixed=function(){var f,L,x=!this.fixedDiv,F=this.options.chart.scrollablePlotArea;x?(this.fixedDiv=q(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",\npointerEvents:\"none\",zIndex:2},null,!0),this.renderTo.insertBefore(this.fixedDiv,this.renderTo.firstChild),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=L=new d.Renderer(this.fixedDiv,this.chartWidth,this.chartHeight,null===(f=this.options.chart)||void 0===f?void 0:f.style),this.scrollableMask=L.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":A(F.opacity,.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),this.moveFixedElements(),E(this,\"afterShowResetZoom\",\nthis.moveFixedElements),E(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);f=this.chartWidth+(this.scrollablePixelsX||0);L=this.chartHeight+(this.scrollablePixelsY||0);K(this.container);this.container.style.width=f+\"px\";this.container.style.height=L+\"px\";this.renderer.boxWrapper.attr({width:f,height:L,viewBox:[0,0,f,L].join(\" \")});this.chartBackground.attr({width:f,height:L});this.scrollingContainer.style.height=this.chartHeight+\"px\";x&&\n(F.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*F.scrollPositionX),F.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*F.scrollPositionY));L=this.axisOffset;x=this.plotTop-L[0]-1;F=this.plotLeft-L[3]-1;f=this.plotTop+this.plotHeight+L[2]+1;L=this.plotLeft+this.plotWidth+L[1]+1;var H=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),C=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);x=this.scrollablePixelsX?[[\"M\",0,x],[\"L\",this.plotLeft-\n1,x],[\"L\",this.plotLeft-1,f],[\"L\",0,f],[\"Z\"],[\"M\",H,x],[\"L\",this.chartWidth,x],[\"L\",this.chartWidth,f],[\"L\",H,f],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",F,0],[\"L\",F,this.plotTop-1],[\"L\",L,this.plotTop-1],[\"L\",L,0],[\"Z\"],[\"M\",F,C],[\"L\",F,this.chartHeight],[\"L\",L,this.chartHeight],[\"L\",L,C],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:x})}});Q(A,\"parts/StackingAxis.js\",[A[\"parts/Utilities.js\"]],function(d){var f=d.addEvent,E=d.destroyObjectProperties,q=d.fireEvent,\nA=d.objectEach,K=d.pick,J=function(){function d(d){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=d}d.prototype.buildStacks=function(){var d=this.axis,f=d.series,H=K(d.options.reversedStacks,!0),C=f.length,D;if(!d.isXAxis){this.usePercentage=!1;for(D=C;D--;){var w=f[H?D:C-D-1];w.setStackedPoints()}for(D=0;D<C;D++)f[D].modifyStacks();q(d,\"afterBuildStacks\")}};d.prototype.cleanStacks=function(){if(!this.axis.isXAxis){if(this.oldStacks)var d=this.stacks=this.oldStacks;A(d,function(d){A(d,\nfunction(d){d.cumulative=d.total})})}};d.prototype.resetStacks=function(){var d=this,f=d.stacks;d.axis.isXAxis||A(f,function(f){A(f,function(q,x){q.touched<d.stacksTouched?(q.destroy(),delete f[x]):(q.total=null,q.cumulative=null)})})};d.prototype.renderStackTotals=function(){var d=this.axis.chart,f=d.renderer,q=this.stacks,C=this.stackTotalGroup=this.stackTotalGroup||f.g(\"stack-labels\").attr({visibility:\"visible\",zIndex:6}).add();C.translate(d.plotLeft,d.plotTop);A(q,function(d){A(d,function(d){d.render(C)})})};\nreturn d}();return function(){function d(){}d.compose=function(q){f(q,\"init\",d.onInit);f(q,\"destroy\",d.onDestroy)};d.onDestroy=function(){var d=this.stacking;if(d){var f=d.stacks;A(f,function(d,q){E(d);f[q]=null});d&&d.stackTotalGroup&&d.stackTotalGroup.destroy()}};d.onInit=function(){this.stacking||(this.stacking=new J(this))};return d}()});Q(A,\"mixins/legend-symbol.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.merge,q=f.pick;d.LegendSymbolMixin={drawRectangle:function(d,\nf){var E=d.symbolHeight,A=d.options.squareSymbol;f.legendSymbol=this.chart.renderer.rect(A?(d.symbolWidth-E)/2:0,d.baseline-E+1,A?E:d.symbolWidth,E,q(d.options.symbolRadius,E/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(f.legendGroup)},drawLineMarker:function(d){var f=this.options,A=f.marker,L=d.symbolWidth,x=d.symbolHeight,F=x/2,H=this.chart.renderer,C=this.legendGroup;d=d.baseline-Math.round(.3*d.fontMetrics.b);var D={};this.chart.styledMode||(D={\"stroke-width\":f.lineWidth||0},f.dashStyle&&\n(D.dashstyle=f.dashStyle));this.legendLine=H.path([\"M\",0,d,\"L\",L,d]).addClass(\"highcharts-graph\").attr(D).add(C);A&&!1!==A.enabled&&L&&(f=Math.min(q(A.radius,F),F),0===this.symbol.indexOf(\"url\")&&(A=E(A,{width:x,height:x}),f=0),this.legendSymbol=A=H.symbol(this.symbol,L/2-f,d-f,2*f,2*f,A).addClass(\"highcharts-point\").add(C),A.isMarker=!0)}};return d.LegendSymbolMixin});Q(A,\"parts/Point.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){\"\";var A=f.animObject,q=f.defined,M=f.erase,K=\nf.extend,J=f.fireEvent,L=f.format,x=f.getNestedProperty,F=f.isArray,H=f.isNumber,C=f.isObject,D=f.syncTimeout,w=f.pick,n=f.removeEvent,t=f.uniqueKey;f=function(){function d(){this.colorIndex=this.category=void 0;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.series=void 0;this.visible=!0;this.x=void 0}d.prototype.animateBeforeDestroy=function(){var d=this,b={x:d.startXPos,opacity:0},g,f=d.getGraphicalProps();f.singular.forEach(function(f){g=\n\"dataLabel\"===f;d[f]=d[f].animate(g?{x:d[f].startXPos,y:d[f].startYPos,opacity:0}:b)});f.plural.forEach(function(b){d[b].forEach(function(b){b.element&&b.animate(K({x:d.startXPos},b.startYPos?{x:b.startXPos,y:b.startYPos}:{}))})})};d.prototype.applyOptions=function(f,b){var g=this.series,m=g.options.pointValKey||g.pointValKey;f=d.prototype.optionsToObject.call(this,f);K(this,f);this.options=this.options?K(this.options,f):f;f.group&&delete this.group;f.dataLabels&&delete this.dataLabels;m&&(this.y=\nd.prototype.getNestedProperty.call(this,m));this.formatPrefix=(this.isNull=w(this.isValid&&!this.isValid(),null===this.x||!H(this.y)))?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof b&&g.xAxis&&g.xAxis.hasNames&&(this.x=g.xAxis.nameToX(this));\"undefined\"===typeof this.x&&g&&(this.x=\"undefined\"===typeof b?g.autoIncrement(this):b);return this};d.prototype.destroy=function(){function d(){if(b.graphic||b.dataLabel||b.dataLabels)n(b),b.destroyElements();for(p in b)b[p]=\nnull}var b=this,g=b.series,f=g.chart;g=g.options.dataSorting;var h=f.hoverPoints,e=A(b.series.chart.renderer.globalAnimation),p;b.legendItem&&f.legend.destroyItem(b);h&&(b.setState(),M(h,b),h.length||(f.hoverPoints=null));if(b===f.hoverPoint)b.onMouseOut();g&&g.enabled?(this.animateBeforeDestroy(),D(d,e.duration)):d();f.pointCount--};d.prototype.destroyElements=function(d){var b=this;d=b.getGraphicalProps(d);d.singular.forEach(function(d){b[d]=b[d].destroy()});d.plural.forEach(function(d){b[d].forEach(function(b){b.element&&\nb.destroy()});delete b[d]})};d.prototype.firePointEvent=function(d,b,g){var f=this,h=this.series.options;(h.point.events[d]||f.options&&f.options.events&&f.options.events[d])&&f.importEvents();\"click\"===d&&h.allowPointSelect&&(g=function(b){f.select&&f.select(null,b.ctrlKey||b.metaKey||b.shiftKey)});J(f,d,b,g)};d.prototype.getClassName=function(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+\n(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")};d.prototype.getGraphicalProps=function(d){var b=this,g=[],f,h={singular:[],plural:[]};d=d||{graphic:1,dataLabel:1};d.graphic&&g.push(\"graphic\",\"shadowGroup\");d.dataLabel&&g.push(\"dataLabel\",\"dataLabelUpper\",\"connector\");for(f=g.length;f--;){var e=g[f];b[e]&&h.singular.push(e)}[\"dataLabel\",\n\"connector\"].forEach(function(e){var g=e+\"s\";d[e]&&b[g]&&h.plural.push(g)});return h};d.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}};d.prototype.getNestedProperty=function(d){if(d)return 0===d.indexOf(\"custom.\")?x(d,this.options):this[d]};d.prototype.getZone=function(){var d=this.series,b=d.zones;d=d.zoneAxis||\n\"y\";var g=0,f;for(f=b[g];this[d]>=f.value;)f=b[++g];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=f&&f.color&&!this.options.color?f.color:this.nonZonedColor;return f};d.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};d.prototype.init=function(d,b,g){this.series=d;this.applyOptions(b,g);this.id=q(this.id)?this.id:t();this.resolveColor();d.chart.pointCount++;J(this,\"afterInit\");return this};d.prototype.optionsToObject=\nfunction(f){var b={},g=this.series,m=g.options.keys,h=m||g.pointArrayMap||[\"y\"],e=h.length,p=0,l=0;if(H(f)||null===f)b[h[0]]=f;else if(F(f))for(!m&&f.length>e&&(g=typeof f[0],\"string\"===g?b.name=f[0]:\"number\"===g&&(b.x=f[0]),p++);l<e;)m&&\"undefined\"===typeof f[p]||(0<h[l].indexOf(\".\")?d.prototype.setNestedProperty(b,f[p],h[l]):b[h[l]]=f[p]),p++,l++;else\"object\"===typeof f&&(b=f,f.dataLabels&&(g._hasPointLabels=!0),f.marker&&(g._hasPointMarkers=!0));return b};d.prototype.resolveColor=function(){var d=\nthis.series;var b=d.chart.options.chart.colorCount;var g=d.chart.styledMode;delete this.nonZonedColor;g||this.options.color||(this.color=d.color);d.options.colorByPoint?(g||(b=d.options.colors||d.chart.options.colors,this.color=this.color||b[d.colorCounter],b=b.length),g=d.colorCounter,d.colorCounter++,d.colorCounter===b&&(d.colorCounter=0)):g=d.colorIndex;this.colorIndex=w(this.colorIndex,g)};d.prototype.setNestedProperty=function(d,b,g){g.split(\".\").reduce(function(d,g,e,f){d[g]=f.length-1===e?\nb:C(d[g],!0)?d[g]:{};return d[g]},d);return d};d.prototype.tooltipFormatter=function(d){var b=this.series,g=b.tooltipOptions,f=w(g.valueDecimals,\"\"),h=g.valuePrefix||\"\",e=g.valueSuffix||\"\";b.chart.styledMode&&(d=b.chart.tooltip.styledModeFormat(d));(b.pointArrayMap||[\"y\"]).forEach(function(b){b=\"{point.\"+b;if(h||e)d=d.replace(RegExp(b+\"}\",\"g\"),h+b+\"}\"+e);d=d.replace(RegExp(b+\"}\",\"g\"),b+\":,.\"+f+\"f}\")});return L(d,{point:this,series:this.series},b.chart)};return d}();d.Point=f;return d.Point});Q(A,\n\"parts/Series.js\",[A[\"mixins/legend-symbol.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){\"\";var E=q.addEvent,K=q.animObject,J=q.arrayMax,L=q.arrayMin,x=q.clamp,F=q.correctFloat,H=q.defined,C=q.erase,D=q.error,w=q.extend,n=q.find,t=q.fireEvent,N=q.getNestedProperty,m=q.isArray,b=q.isFunction,g=q.isNumber,v=q.isString,h=q.merge,e=q.objectEach,p=q.pick,l=q.removeEvent,I=q.seriesType,u=q.splat,y=q.syncTimeout,G=f.defaultOptions,S=f.defaultPlotOptions,R=f.seriesTypes,\nB=f.SVGElement,c=f.win;f.Series=I(\"line\",null,{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\"center\",formatter:function(){var a=this.series.chart.numberFormatter;return\"number\"!==typeof this.y?\n\"\":a(this.y,-1)},padding:5,style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"},{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",\ncolorCounter:0,cropShoulder:1,directTouch:!1,eventsToUnbind:[],isCartesian:!0,parallelArrays:[\"x\",\"y\"],pointClass:A,requireSorting:!0,sorted:!0,init:function(a,c){t(this,\"init\",{options:c});var d=this,k=a.series,g;this.eventOptions=this.eventOptions||{};d.chart=a;d.options=c=d.setOptions(c);d.linkedSeries=[];d.bindAxes();w(d,{name:c.name,state:\"\",visible:!1!==c.visible,selected:!0===c.selected});var f=c.events;e(f,function(a,c){b(a)&&d.eventOptions[c]!==a&&(b(d.eventOptions[c])&&l(d,c,d.eventOptions[c]),\nd.eventOptions[c]=a,E(d,c,a))});if(f&&f.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)a.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(a){d[a+\"Data\"]||(d[a+\"Data\"]=[])});d.isCartesian&&(a.hasCartesianSeries=!0);k.length&&(g=k[k.length-1]);d._i=p(g&&g._i,-1)+1;a.orderSeries(this.insert(k));c.dataSorting&&c.dataSorting.enabled?d.setDataSortingOptions():d.points||d.data||d.setData(c.data,!1);t(this,\"afterInit\")},is:function(a){return R[a]&&\nthis instanceof R[a]},insert:function(a){var c=this.options.index,b;if(g(c)){for(b=a.length;b--;)if(c>=p(a[b].options.index,a[b]._i)){a.splice(b+1,0,this);break}-1===b&&a.unshift(this);b+=1}else a.push(this);return p(b,a.length-1)},bindAxes:function(){var a=this,c=a.options,b=a.chart,e;t(this,\"bindAxes\",null,function(){(a.axisTypes||[]).forEach(function(d){b[d].forEach(function(b){e=b.options;if(c[d]===e.index||\"undefined\"!==typeof c[d]&&c[d]===e.id||\"undefined\"===typeof c[d]&&0===e.index)a.insert(b.series),\na[d]=b,b.isDirty=!0});a[d]||a.optionalAxis===d||D(18,!0,b)})});t(this,\"afterBindAxes\")},updateParallelArrays:function(a,c){var b=a.series,e=arguments,d=g(c)?function(e){var d=\"y\"===e&&b.toYData?b.toYData(a):a[e];b[e+\"Data\"][c]=d}:function(a){Array.prototype[c].apply(b[a+\"Data\"],Array.prototype.slice.call(e,2))};b.parallelArrays.forEach(d)},hasData:function(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length},autoIncrement:function(){var a=\nthis.options,c=this.xIncrement,b,e=a.pointIntervalUnit,d=this.chart.time;c=p(c,a.pointStart,0);this.pointInterval=b=p(this.pointInterval,a.pointInterval,1);e&&(a=new d.Date(c),\"day\"===e?d.set(\"Date\",a,d.get(\"Date\",a)+b):\"month\"===e?d.set(\"Month\",a,d.get(\"Month\",a)+b):\"year\"===e&&d.set(\"FullYear\",a,d.get(\"FullYear\",a)+b),b=a.getTime()-c);this.xIncrement=c+b;return c},setDataSortingOptions:function(){var a=this.options;w(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});H(a.pointRange)||\n(a.pointRange=1)},setOptions:function(a){var c=this.chart,b=c.options,e=b.plotOptions,d=c.userOptions||{};a=h(a);c=c.styledMode;var g={plotOptions:e,userOptions:a};t(this,\"setOptions\",g);var l=g.plotOptions[this.type],f=d.plotOptions||{};this.userOptions=g.userOptions;d=h(l,e.series,d.plotOptions&&d.plotOptions[this.type],a);this.tooltipOptions=h(G.tooltip,G.plotOptions.series&&G.plotOptions.series.tooltip,G.plotOptions[this.type].tooltip,b.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,\na.tooltip);this.stickyTracking=p(a.stickyTracking,f[this.type]&&f[this.type].stickyTracking,f.series&&f.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:d.stickyTracking);null===l.marker&&delete d.marker;this.zoneAxis=d.zoneAxis;b=this.zones=(d.zones||[]).slice();!d.negativeColor&&!d.negativeFillColor||d.zones||(e={value:d[this.zoneAxis+\"Threshold\"]||d.threshold||0,className:\"highcharts-negative\"},c||(e.color=d.negativeColor,e.fillColor=d.negativeFillColor),b.push(e));b.length&&\nH(b[b.length-1].value)&&b.push(c?{}:{color:this.color,fillColor:this.fillColor});t(this,\"afterSetOptions\",{options:d});return d},getName:function(){return p(this.options.name,\"Series \"+(this.index+1))},getCyclic:function(a,c,b){var e=this.chart,d=this.userOptions,k=a+\"Index\",g=a+\"Counter\",l=b?b.length:p(e.options.chart[a+\"Count\"],e[a+\"Count\"]);if(!c){var f=p(d[k],d[\"_\"+k]);H(f)||(e.series.length||(e[g]=0),d[\"_\"+k]=f=e[g]%l,e[g]+=1);b&&(c=b[f])}\"undefined\"!==typeof f&&(this[k]=f);this[a]=c},getColor:function(){this.chart.styledMode?\nthis.getCyclic(\"color\"):this.options.colorByPoint?this.options.color=null:this.getCyclic(\"color\",this.options.color||S[this.type].color,this.chart.options.colors)},getPointsCollection:function(){return(this.hasGroupedData?this.points:this.data)||[]},getSymbol:function(){this.getCyclic(\"symbol\",this.options.marker.symbol,this.chart.options.symbols)},findPointIndex:function(a,c){var b=a.id,e=a.x,d=this.points,k,l=this.options.dataSorting;if(b)var f=this.chart.get(b);else if(this.linkedParent||this.enabledDataSorting){var h=\nl&&l.matchByName?\"name\":\"index\";f=n(d,function(c){return!c.touched&&c[h]===a[h]});if(!f)return}if(f){var m=f&&f.index;\"undefined\"!==typeof m&&(k=!0)}\"undefined\"===typeof m&&g(e)&&(m=this.xData.indexOf(e,c));-1!==m&&\"undefined\"!==typeof m&&this.cropped&&(m=m>=this.cropStart?m-this.cropStart:m);!k&&d[m]&&d[m].touched&&(m=void 0);return m},drawLegendSymbol:d.drawLineMarker,updateData:function(a,c){var b=this.options,e=b.dataSorting,d=this.points,k=[],l,f,h,m=this.requireSorting,u=a.length===d.length,\np=!0;this.xIncrement=null;a.forEach(function(a,c){var f=H(a)&&this.pointClass.prototype.optionsToObject.call({series:this},a)||{};var r=f.x;if(f.id||g(r)){if(r=this.findPointIndex(f,h),-1===r||\"undefined\"===typeof r?k.push(a):d[r]&&a!==b.data[r]?(d[r].update(a,!1,null,!1),d[r].touched=!0,m&&(h=r+1)):d[r]&&(d[r].touched=!0),!u||c!==r||e&&e.enabled||this.hasDerivedData)l=!0}else k.push(a)},this);if(l)for(a=d.length;a--;)(f=d[a])&&!f.touched&&f.remove&&f.remove(!1,c);else!u||e&&e.enabled?p=!1:(a.forEach(function(a,\nc){d[c].update&&a!==d[c].y&&d[c].update(a,!1,null,!1)}),k.length=0);d.forEach(function(a){a&&(a.touched=!1)});if(!p)return!1;k.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=J(this.xData),this.autoIncrement());return!0},setData:function(a,c,b,e){var d=this,k=d.points,l=k&&k.length||0,f,h=d.options,r=d.chart,u=h.dataSorting,n=null,z=d.xAxis;n=h.turboThreshold;var y=this.xData,w=this.yData,t=(f=d.pointArrayMap)&&f.length,\nB=h.keys,G=0,q=1,x;a=a||[];f=a.length;c=p(c,!0);u&&u.enabled&&(a=this.sortData(a));!1!==e&&f&&l&&!d.cropped&&!d.hasGroupedData&&d.visible&&!d.isSeriesBoosting&&(x=this.updateData(a,b));if(!x){d.xIncrement=null;d.colorCounter=0;this.parallelArrays.forEach(function(a){d[a+\"Data\"].length=0});if(n&&f>n)if(n=d.getFirstValidPoint(a),g(n))for(b=0;b<f;b++)y[b]=this.autoIncrement(),w[b]=a[b];else if(m(n))if(t)for(b=0;b<f;b++)e=a[b],y[b]=e[0],w[b]=e.slice(1,t+1);else for(B&&(G=B.indexOf(\"x\"),q=B.indexOf(\"y\"),\nG=0<=G?G:0,q=0<=q?q:1),b=0;b<f;b++)e=a[b],y[b]=e[G],w[b]=e[q];else D(12,!1,r);else for(b=0;b<f;b++)\"undefined\"!==typeof a[b]&&(e={series:d},d.pointClass.prototype.applyOptions.apply(e,[a[b]]),d.updateParallelArrays(e,b));w&&v(w[0])&&D(14,!0,r);d.data=[];d.options.data=d.userOptions.data=a;for(b=l;b--;)k[b]&&k[b].destroy&&k[b].destroy();z&&(z.minRange=z.userMinRange);d.isDirty=r.isDirtyBox=!0;d.isDirtyData=!!k;b=!1}\"point\"===h.legendType&&(this.processData(),this.generatePoints());c&&r.redraw(b)},\nsortData:function(a){var c=this,b=c.options.dataSorting.sortKey||\"y\",e=function(a,c){return H(c)&&a.pointClass.prototype.optionsToObject.call({series:a},c)||{}};a.forEach(function(b,d){a[d]=e(c,b);a[d].index=d},this);a.concat().sort(function(a,c){a=N(b,a);c=N(b,c);return c<a?-1:c>a?1:0}).forEach(function(a,c){a.x=c},this);c.linkedSeries&&c.linkedSeries.forEach(function(c){var b=c.options,d=b.data;b.dataSorting&&b.dataSorting.enabled||!d||(d.forEach(function(b,k){d[k]=e(c,b);a[k]&&(d[k].x=a[k].x,d[k].index=\nk)}),c.setData(d,!1))});return a},getProcessedData:function(a){var c=this.xData,b=this.yData,e=c.length;var d=0;var g=this.xAxis,f=this.options;var l=f.cropThreshold;var h=a||this.getExtremesFromAll||f.getExtremesFromAll,m=this.isCartesian;a=g&&g.val2lin;f=!(!g||!g.logarithmic);var u=this.requireSorting;if(g){g=g.getExtremes();var p=g.min;var n=g.max}if(m&&this.sorted&&!h&&(!l||e>l||this.forceCrop))if(c[e-1]<p||c[0]>n)c=[],b=[];else if(this.yData&&(c[0]<p||c[e-1]>n)){d=this.cropData(this.xData,this.yData,\np,n);c=d.xData;b=d.yData;d=d.start;var v=!0}for(l=c.length||1;--l;)if(e=f?a(c[l])-a(c[l-1]):c[l]-c[l-1],0<e&&(\"undefined\"===typeof y||e<y))var y=e;else 0>e&&u&&(D(15,!1,this.chart),u=!1);return{xData:c,yData:b,cropped:v,cropStart:d,closestPointRange:y}},processData:function(a){var c=this.xAxis;if(this.isCartesian&&!this.isDirty&&!c.isDirty&&!this.yAxis.isDirty&&!a)return!1;a=this.getProcessedData();this.cropped=a.cropped;this.cropStart=a.cropStart;this.processedXData=a.xData;this.processedYData=a.yData;\nthis.closestPointRange=this.basePointRange=a.closestPointRange},cropData:function(a,c,b,e,d){var g=a.length,k=0,l=g,f;d=p(d,this.cropShoulder);for(f=0;f<g;f++)if(a[f]>=b){k=Math.max(0,f-d);break}for(b=f;b<g;b++)if(a[b]>e){l=b+d;break}return{xData:a.slice(k,l),yData:c.slice(k,l),start:k,end:l}},generatePoints:function(){var a=this.options,c=a.data,b=this.data,e,d=this.processedXData,g=this.processedYData,f=this.pointClass,l=d.length,h=this.cropStart||0,m=this.hasGroupedData;a=a.keys;var p=[],n;b||\nm||(b=[],b.length=c.length,b=this.data=b);a&&m&&(this.options.keys=!1);for(n=0;n<l;n++){var v=h+n;if(m){var y=(new f).init(this,[d[n]].concat(u(g[n])));y.dataGroup=this.groupMap[n];y.dataGroup.options&&(y.options=y.dataGroup.options,w(y,y.dataGroup.options),delete y.dataLabels)}else(y=b[v])||\"undefined\"===typeof c[v]||(b[v]=y=(new f).init(this,c[v],d[n]));y&&(y.index=v,p[n]=y)}this.options.keys=a;if(b&&(l!==(e=b.length)||m))for(n=0;n<e;n++)n!==h||m||(n+=l),b[n]&&(b[n].destroyElements(),b[n].plotX=\nvoid 0);this.data=b;this.points=p;t(this,\"afterGeneratePoints\")},getXExtremes:function(a){return{min:L(a),max:J(a)}},getExtremes:function(a,c){var b=this.xAxis,e=this.yAxis,d=this.processedXData||this.xData,k=[],l=0,f=0;var h=0;var u=this.requireSorting?this.cropShoulder:0,n=e?e.positiveValuesOnly:!1,p;a=a||this.stackedYData||this.processedYData||[];e=a.length;b&&(h=b.getExtremes(),f=h.min,h=h.max);for(p=0;p<e;p++){var v=d[p];var y=a[p];var w=(g(y)||m(y))&&(y.length||0<y||!n);v=c||this.getExtremesFromAll||\nthis.options.getExtremesFromAll||this.cropped||!b||(d[p+u]||v)>=f&&(d[p-u]||v)<=h;if(w&&v)if(w=y.length)for(;w--;)g(y[w])&&(k[l++]=y[w]);else k[l++]=y}a={dataMin:L(k),dataMax:J(k)};t(this,\"afterGetExtremes\",{dataExtremes:a});return a},applyExtremes:function(){var a=this.getExtremes();this.dataMin=a.dataMin;this.dataMax=a.dataMax;return a},getFirstValidPoint:function(a){for(var c=null,b=a.length,e=0;null===c&&e<b;)c=a[e],e++;return c},translate:function(){this.processedXData||this.processData();this.generatePoints();\nvar a=this.options,c=a.stacking,b=this.xAxis,e=b.categories,d=this.enabledDataSorting,l=this.yAxis,f=this.points,h=f.length,u=!!this.modifyValue,n,v=this.pointPlacementToXValue(),y=!!v,w=a.threshold,B=a.startFromThreshold?w:0,G,q=this.zoneAxis||\"y\",I=Number.MAX_VALUE;for(n=0;n<h;n++){var C=f[n],D=C.x,R=C.y,S=C.low,A=c&&l.stacking&&l.stacking.stacks[(this.negStacks&&R<(B?0:w)?\"-\":\"\")+this.stackKey];l.positiveValuesOnly&&null!==R&&0>=R&&(C.isNull=!0);C.plotX=G=F(x(b.translate(D,0,0,0,1,v,\"flags\"===\nthis.type),-1E5,1E5));if(c&&this.visible&&A&&A[D]){var E=this.getStackIndicator(E,D,this.index);if(!C.isNull){var N=A[D];var L=N.points[E.key]}}m(L)&&(S=L[0],R=L[1],S===B&&E.key===A[D].base&&(S=p(g(w)&&w,l.min)),l.positiveValuesOnly&&0>=S&&(S=null),C.total=C.stackTotal=N.total,C.percentage=N.total&&C.y/N.total*100,C.stackY=R,this.irregularWidths||N.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=H(S)?x(l.translate(S,0,1,0,1),-1E5,1E5):null;u&&(R=this.modifyValue(R,C));C.plotY=\"number\"===typeof R&&\nInfinity!==R?x(l.translate(R,0,1,0,1),-1E5,1E5):void 0;C.isInside=this.isPointInside(C);C.clientX=y?F(b.translate(D,0,0,0,1,v)):G;C.negative=C[q]<(a[q+\"Threshold\"]||w||0);C.category=e&&\"undefined\"!==typeof e[C.x]?e[C.x]:C.x;if(!C.isNull&&!1!==C.visible){\"undefined\"!==typeof J&&(I=Math.min(I,Math.abs(G-J)));var J=G}C.zone=this.zones.length&&C.getZone();!C.graphic&&this.group&&d&&(C.isNew=!0)}this.closestPointRangePx=I;t(this,\"afterTranslate\")},getValidPoints:function(a,c,b){var e=this.chart;return(a||\nthis.points||[]).filter(function(a){return c&&!e.isInsidePlot(a.plotX,a.plotY,e.inverted)?!1:!1!==a.visible&&(b||!a.isNull)})},getClipBox:function(a,c){var b=this.options,e=this.chart,d=e.inverted,g=this.xAxis,k=g&&this.yAxis;a&&!1===b.clip&&k?a=d?{y:-e.chartWidth+k.len+k.pos,height:e.chartWidth,width:e.chartHeight,x:-e.chartHeight+g.len+g.pos}:{y:-k.pos,height:e.chartHeight,width:e.chartWidth,x:-g.pos}:(a=this.clipBox||e.clipBox,c&&(a.width=e.plotSizeX,a.x=0));return c?{width:a.width,x:a.x}:a},setClip:function(a){var c=\nthis.chart,b=this.options,e=c.renderer,d=c.inverted,g=this.clipBox,l=this.getClipBox(a),f=this.sharedClipKey||[\"_sharedClip\",a&&a.duration,a&&a.easing,l.height,b.xAxis,b.yAxis].join(),h=c[f],m=c[f+\"m\"];a&&(l.width=0,d&&(l.x=c.plotHeight+(!1!==b.clip?0:c.plotTop)));h?c.hasLoaded||h.attr(l):(a&&(c[f+\"m\"]=m=e.clipRect(d?c.plotSizeX+99:-99,d?-c.plotLeft:-c.plotTop,99,d?c.chartWidth:c.chartHeight)),c[f]=h=e.clipRect(l),h.count={length:0});a&&!h.count[this.index]&&(h.count[this.index]=!0,h.count.length+=\n1);if(!1!==b.clip||a)this.group.clip(a||g?h:c.clipRect),this.markerGroup.clip(m),this.sharedClipKey=f;a||(h.count[this.index]&&(delete h.count[this.index],--h.count.length),0===h.count.length&&f&&c[f]&&(g||(c[f]=c[f].destroy()),c[f+\"m\"]&&(c[f+\"m\"]=c[f+\"m\"].destroy())))},animate:function(a){var c=this.chart,b=K(this.options.animation);if(!c.hasRendered)if(a)this.setClip(b);else{var e=this.sharedClipKey;a=c[e];var d=this.getClipBox(b,!0);a&&a.animate(d,b);c[e+\"m\"]&&c[e+\"m\"].animate({width:d.width+99,\nx:d.x-(c.inverted?0:99)},b)}},afterAnimate:function(){this.setClip();t(this,\"afterAnimate\");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,c=this.chart,b,e,d=this.options.marker,g=this[this.specialGroup]||this.markerGroup,f=this.xAxis,l=p(d.enabled,!f||f.isRadial?!0:null,this.closestPointRangePx>=d.enabledThreshold*d.radius);if(!1!==d.enabled||this._hasPointMarkers)for(b=0;b<a.length;b++){var h=a[b];var m=(e=h.graphic)?\"animate\":\"attr\";var u=h.marker||{};var n=!!h.marker;if((l&&\n\"undefined\"===typeof u.enabled||u.enabled)&&!h.isNull&&!1!==h.visible){var v=p(u.symbol,this.symbol);var y=this.markerAttribs(h,h.selected&&\"select\");this.enabledDataSorting&&(h.startXPos=f.reversed?-y.width:f.width);var w=!1!==h.isInside;e?e[w?\"show\":\"hide\"](w).animate(y):w&&(0<y.width||h.hasImage)&&(h.graphic=e=c.renderer.symbol(v,y.x,y.y,y.width,y.height,n?u:d).add(g),this.enabledDataSorting&&c.hasRendered&&(e.attr({x:h.startXPos}),m=\"animate\"));e&&\"animate\"===m&&e[w?\"show\":\"hide\"](w).animate(y);\nif(e&&!c.styledMode)e[m](this.pointAttribs(h,h.selected&&\"select\"));e&&e.addClass(h.getClassName(),!0)}else e&&(h.graphic=e.destroy())}},markerAttribs:function(a,c){var b=this.options,e=b.marker,d=a.marker||{},g=d.symbol||e.symbol,k=p(d.radius,e.radius);c&&(e=e.states[c],c=d.states&&d.states[c],k=p(c&&c.radius,e&&e.radius,k+(e&&e.radiusPlus||0)));a.hasImage=g&&0===g.indexOf(\"url\");a.hasImage&&(k=0);a={x:b.crisp?Math.floor(a.plotX)-k:a.plotX-k,y:a.plotY-k};k&&(a.width=a.height=2*k);return a},pointAttribs:function(a,\nc){var b=this.options.marker,e=a&&a.options,d=e&&e.marker||{},g=this.color,k=e&&e.color,f=a&&a.color;e=p(d.lineWidth,b.lineWidth);var l=a&&a.zone&&a.zone.color;a=1;g=k||l||f||g;k=d.fillColor||b.fillColor||g;g=d.lineColor||b.lineColor||g;c=c||\"normal\";b=b.states[c];c=d.states&&d.states[c]||{};e=p(c.lineWidth,b.lineWidth,e+p(c.lineWidthPlus,b.lineWidthPlus,0));k=c.fillColor||b.fillColor||k;g=c.lineColor||b.lineColor||g;a=p(c.opacity,b.opacity,a);return{stroke:g,\"stroke-width\":e,fill:k,opacity:a}},destroy:function(a){var b=\nthis,d=b.chart,g=/AppleWebKit\\/533/.test(c.navigator.userAgent),f,l,h=b.data||[],m,u;t(b,\"destroy\");this.removeEvents(a);(b.axisTypes||[]).forEach(function(a){(u=b[a])&&u.series&&(C(u.series,b),u.isDirty=u.forceRedraw=!0)});b.legendItem&&b.chart.legend.destroyItem(b);for(l=h.length;l--;)(m=h[l])&&m.destroy&&m.destroy();b.points=null;q.clearTimeout(b.animationTimeout);e(b,function(a,c){a instanceof B&&!a.survive&&(f=g&&\"group\"===c?\"hide\":\"destroy\",a[f]())});d.hoverSeries===b&&(d.hoverSeries=null);\nC(d.series,b);d.orderSeries();e(b,function(c,e){a&&\"hcEvents\"===e||delete b[e]})},getGraphPath:function(a,c,b){var e=this,d=e.options,g=d.step,k,f=[],l=[],h;a=a||e.points;(k=a.reversed)&&a.reverse();(g={right:1,center:2}[g]||g&&3)&&k&&(g=4-g);a=this.getValidPoints(a,!1,!(d.connectNulls&&!c&&!b));a.forEach(function(k,m){var u=k.plotX,r=k.plotY,n=a[m-1];(k.leftCliff||n&&n.rightCliff)&&!b&&(h=!0);k.isNull&&!H(c)&&0<m?h=!d.connectNulls:k.isNull&&!c?h=!0:(0===m||h?m=[[\"M\",k.plotX,k.plotY]]:e.getPointSpline?\nm=[e.getPointSpline(a,k,m)]:g?(m=1===g?[[\"L\",n.plotX,r]]:2===g?[[\"L\",(n.plotX+u)/2,n.plotY],[\"L\",(n.plotX+u)/2,r]]:[[\"L\",u,n.plotY]],m.push([\"L\",u,r])):m=[[\"L\",u,r]],l.push(k.x),g&&(l.push(k.x),2===g&&l.push(k.x)),f.push.apply(f,m),h=!1)});f.xMap=l;return e.graphPath=f},drawGraph:function(){var a=this,c=this.options,b=(this.gappedPath||this.getGraphPath).call(this),e=this.chart.styledMode,d=[[\"graph\",\"highcharts-graph\"]];e||d[0].push(c.lineColor||this.color||\"#cccccc\",c.dashStyle);d=a.getZonesGraphs(d);\nd.forEach(function(d,g){var k=d[0],f=a[k],l=f?\"animate\":\"attr\";f?(f.endX=a.preventGraphAnimation?null:b.xMap,f.animate({d:b})):b.length&&(a[k]=f=a.chart.renderer.path(b).addClass(d[1]).attr({zIndex:1}).add(a.group));f&&!e&&(k={stroke:d[2],\"stroke-width\":c.lineWidth,fill:a.fillGraph&&a.color||\"none\"},d[3]?k.dashstyle=d[3]:\"square\"!==c.linecap&&(k[\"stroke-linecap\"]=k[\"stroke-linejoin\"]=\"round\"),f[l](k).shadow(2>g&&c.shadow));f&&(f.startX=b.xMap,f.isArea=b.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(c,\nb){b=[\"zone-graph-\"+b,\"highcharts-graph highcharts-zone-graph-\"+b+\" \"+(c.className||\"\")];this.chart.styledMode||b.push(c.color||this.color,c.dashStyle||this.options.dashStyle);a.push(b)},this);return a},applyZones:function(){var a=this,c=this.chart,b=c.renderer,e=this.zones,d,g,f=this.clips||[],l,h=this.graph,m=this.area,u=Math.max(c.chartWidth,c.chartHeight),n=this[(this.zoneAxis||\"y\")+\"Axis\"],v=c.inverted,y,w,t,B=!1,G,q;if(e.length&&(h||m)&&n&&\"undefined\"!==typeof n.min){var C=n.reversed;var I=\nn.horiz;h&&!this.showLine&&h.hide();m&&m.hide();var D=n.getExtremes();e.forEach(function(e,k){d=C?I?c.plotWidth:0:I?0:n.toPixels(D.min)||0;d=x(p(g,d),0,u);g=x(Math.round(n.toPixels(p(e.value,D.max),!0)||0),0,u);B&&(d=g=n.toPixels(D.max));y=Math.abs(d-g);w=Math.min(d,g);t=Math.max(d,g);n.isXAxis?(l={x:v?t:w,y:0,width:y,height:u},I||(l.x=c.plotHeight-l.x)):(l={x:0,y:v?t:w,width:u,height:y},I&&(l.y=c.plotWidth-l.y));v&&b.isVML&&(l=n.isXAxis?{x:0,y:C?w:t,height:l.width,width:c.chartWidth}:{x:l.y-c.plotLeft-\nc.spacingBox.x,y:0,width:l.height,height:c.chartHeight});f[k]?f[k].animate(l):f[k]=b.clipRect(l);G=a[\"zone-area-\"+k];q=a[\"zone-graph-\"+k];h&&q&&q.clip(f[k]);m&&G&&G.clip(f[k]);B=e.value>D.max;a.resetZones&&0===g&&(g=void 0)});this.clips=f}else a.visible&&(h&&h.show(!0),m&&m.show(!0))},invertGroups:function(a){function c(){[\"group\",\"markerGroup\"].forEach(function(c){b[c]&&(e.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(b.isRadialSeries?\n!1:a))})}var b=this,e=b.chart;b.xAxis&&(b.eventsToUnbind.push(E(e,\"resize\",c)),c(),b.invertGroups=c)},plotGroup:function(a,c,b,e,d){var g=this[a],k=!g;k&&(this[a]=g=this.chart.renderer.g().attr({zIndex:e||.1}).add(d));g.addClass(\"highcharts-\"+c+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(H(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(g.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);g.attr({visibility:b})[k?\"attr\":\n\"animate\"](this.getPlotBox());return g},getPlotBox:function(){var a=this.chart,c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:a.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}},removeEvents:function(a){a?this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind.length=0):l(this)},render:function(){var a=this,c=a.chart,b=a.options,e=!a.finishedAnimating&&c.renderer.isSVG&&K(b.animation).duration,d=a.visible?\"inherit\":\n\"hidden\",g=b.zIndex,f=a.hasRendered,l=c.seriesGroup,h=c.inverted;t(this,\"render\");var m=a.plotGroup(\"group\",\"series\",d,g,l);a.markerGroup=a.plotGroup(\"markerGroup\",\"markers\",d,g,l);e&&a.animate&&a.animate(!0);m.inverted=a.isCartesian||a.invertable?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===b.clip||a.sharedClipKey||\nf||m.clip(c.clipRect);e&&a.animate&&a.animate();f||(a.animationTimeout=y(function(){a.afterAnimate()},e||0));a.isDirty=!1;a.hasRendered=!0;t(a,\"afterRender\")},redraw:function(){var a=this.chart,c=this.isDirty||this.isDirtyData,b=this.group,e=this.xAxis,d=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth,height:a.plotHeight}),b.animate({translateX:p(e&&e.left,a.plotLeft),translateY:p(d&&d.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(a,\nc){var b=this.xAxis,e=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?b.len-a.chartY+b.pos:a.chartX-b.pos,plotY:d?e.len-a.chartX+e.pos:a.chartY-e.pos},c,a)},buildKDTree:function(a){function c(a,e,d){var g;if(g=a&&a.length){var k=b.kdAxisArray[e%d];a.sort(function(a,c){return a[k]-c[k]});g=Math.floor(g/2);return{point:a[g],left:c(a.slice(0,g),e+1,d),right:c(a.slice(g+1),e+1,d)}}}this.buildingKdTree=!0;var b=this,e=-1<b.options.findNearestPointBy.indexOf(\"y\")?2:1;delete b.kdTree;\ny(function(){b.kdTree=c(b.getValidPoints(null,!b.directTouch),e,e);b.buildingKdTree=!1},b.options.kdNow||a&&\"touchstart\"===a.type?0:1)},searchKDTree:function(a,c,b){function e(a,c,b,l){var h=c.point,m=d.kdAxisArray[b%l],u=h;var n=H(a[g])&&H(h[g])?Math.pow(a[g]-h[g],2):null;var p=H(a[k])&&H(h[k])?Math.pow(a[k]-h[k],2):null;p=(n||0)+(p||0);h.dist=H(p)?Math.sqrt(p):Number.MAX_VALUE;h.distX=H(n)?Math.sqrt(n):Number.MAX_VALUE;m=a[m]-h[m];p=0>m?\"left\":\"right\";n=0>m?\"right\":\"left\";c[p]&&(p=e(a,c[p],b+1,\nl),u=p[f]<u[f]?p:h);c[n]&&Math.sqrt(m*m)<u[f]&&(a=e(a,c[n],b+1,l),u=a[f]<u[f]?a:u);return u}var d=this,g=this.kdAxisArray[0],k=this.kdAxisArray[1],f=c?\"distX\":\"dist\";c=-1<d.options.findNearestPointBy.indexOf(\"y\")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(b);if(this.kdTree)return e(a,this.kdTree,c,c)},pointPlacementToXValue:function(){var a=this.options,c=a.pointRange,b=this.xAxis;a=a.pointPlacement;\"between\"===a&&(a=b.reversed?-.5:.5);return g(a)?a*p(c,b.pointRange):0},isPointInside:function(a){return\"undefined\"!==\ntypeof a.plotY&&\"undefined\"!==typeof a.plotX&&0<=a.plotY&&a.plotY<=this.yAxis.len&&0<=a.plotX&&a.plotX<=this.xAxis.len}});\"\"});Q(A,\"parts/Stacking.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/StackingAxis.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=q.correctFloat,K=q.defined,J=q.destroyObjectProperties,L=q.format,x=q.pick;\"\";q=f.Chart;var F=f.Series,H=function(){function d(d,f,n,t,q){var m=d.chart.inverted;this.axis=d;this.isNegative=n;this.options=f=f||{};this.x=t;this.total=\nnull;this.points={};this.stack=q;this.rightCliff=this.leftCliff=0;this.alignOptions={align:f.align||(m?n?\"left\":\"right\":\"center\"),verticalAlign:f.verticalAlign||(m?\"middle\":n?\"bottom\":\"top\"),y:f.y,x:f.x};this.textAlign=f.textAlign||(m?n?\"right\":\"left\":\"center\")}d.prototype.destroy=function(){J(this,this.axis)};d.prototype.render=function(d){var f=this.axis.chart,n=this.options,t=n.format;t=t?L(t,this,f):n.formatter.call(this);this.label?this.label.attr({text:t,visibility:\"hidden\"}):(this.label=f.renderer.label(t,\nnull,null,n.shape,null,null,n.useHTML,!1,\"stack-labels\"),t={r:n.borderRadius||0,text:t,rotation:n.rotation,padding:x(n.padding,5),visibility:\"hidden\"},f.styledMode||(t.fill=n.backgroundColor,t.stroke=n.borderColor,t[\"stroke-width\"]=n.borderWidth,this.label.css(n.style)),this.label.attr(t),this.label.added||this.label.add(d));this.label.labelrank=f.plotHeight};d.prototype.setOffset=function(d,f,n,t,q){var m=this.axis,b=m.chart;t=m.translate(m.stacking.usePercentage?100:t?t:this.total,0,0,0,1);n=m.translate(n?\nn:0);n=K(t)&&Math.abs(t-n);d=x(q,b.xAxis[0].translate(this.x))+d;m=K(t)&&this.getStackBox(b,this,d,t,f,n,m);f=this.label;n=this.isNegative;d=\"justify\"===x(this.options.overflow,\"justify\");var g=this.textAlign;f&&m&&(q=f.getBBox(),t=f.padding,g=\"left\"===g?b.inverted?-t:t:\"right\"===g?q.width:b.inverted&&\"center\"===g?q.width/2:b.inverted?n?q.width+t:-t:q.width/2,n=b.inverted?q.height/2:n?-t:q.height,this.alignOptions.x=x(this.options.x,0),this.alignOptions.y=x(this.options.y,0),m.x-=g,m.y-=n,f.align(this.alignOptions,\nnull,m),b.isInsidePlot(f.alignAttr.x+g-this.alignOptions.x,f.alignAttr.y+n-this.alignOptions.y)?f.show():(f.alignAttr.y=-9999,d=!1),d&&F.prototype.justifyDataLabel.call(this.axis,f,this.alignOptions,f.alignAttr,q,m),f.attr({x:f.alignAttr.x,y:f.alignAttr.y}),x(!d&&this.options.crop,!0)&&((b=b.isInsidePlot(f.x-t+f.width,f.y)&&b.isInsidePlot(f.x+t,f.y))||f.hide()))};d.prototype.getStackBox=function(d,f,n,t,q,m,b){var g=f.axis.reversed,v=d.inverted,h=b.height+b.pos-(v?d.plotLeft:d.plotTop);f=f.isNegative&&\n!g||!f.isNegative&&g;return{x:v?f?t-b.right:t-m+b.pos-d.plotLeft:n+d.xAxis[0].transB-d.plotLeft,y:v?b.height-n-q:f?h-t-m:h-t,width:v?m:q,height:v?q:m}};return d}();q.prototype.getStacks=function(){var d=this,f=d.inverted;d.yAxis.forEach(function(d){d.stacking&&d.stacking.stacks&&d.hasVisibleSeries&&(d.stacking.oldStacks=d.stacking.stacks)});d.series.forEach(function(w){var n=w.xAxis&&w.xAxis.options||{};!w.options.stacking||!0!==w.visible&&!1!==d.options.chart.ignoreHiddenSeries||(w.stackKey=[w.type,\nx(w.options.stack,\"\"),f?n.top:n.left,f?n.height:n.width].join())})};A.compose(d);F.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var d=this.processedXData,f=this.processedYData,w=[],n=f.length,t=this.options,q=t.threshold,m=x(t.startFromThreshold&&q,0),b=t.stack;t=t.stacking;var g=this.stackKey,v=\"-\"+g,h=this.negStacks,e=this.yAxis,p=e.stacking.stacks,l=e.stacking.oldStacks,I,u;e.stacking.stacksTouched+=1;for(u=\n0;u<n;u++){var y=d[u];var G=f[u];var S=this.getStackIndicator(S,y,this.index);var R=S.key;var B=(I=h&&G<(m?0:q))?v:g;p[B]||(p[B]={});p[B][y]||(l[B]&&l[B][y]?(p[B][y]=l[B][y],p[B][y].total=null):p[B][y]=new H(e,e.options.stackLabels,I,y,b));B=p[B][y];null!==G?(B.points[R]=B.points[this.index]=[x(B.cumulative,m)],K(B.cumulative)||(B.base=R),B.touched=e.stacking.stacksTouched,0<S.index&&!1===this.singleStacks&&(B.points[R][0]=B.points[this.index+\",\"+y+\",0\"][0])):B.points[R]=B.points[this.index]=null;\n\"percent\"===t?(I=I?g:v,h&&p[I]&&p[I][y]?(I=p[I][y],B.total=I.total=Math.max(I.total,B.total)+Math.abs(G)||0):B.total=E(B.total+(Math.abs(G)||0))):B.total=E(B.total+(G||0));B.cumulative=x(B.cumulative,m)+(G||0);null!==G&&(B.points[R].push(B.cumulative),w[u]=B.cumulative)}\"percent\"===t&&(e.stacking.usePercentage=!0);this.stackedYData=w;e.stacking.oldStacks={}}};F.prototype.modifyStacks=function(){var d=this,f=d.stackKey,w=d.yAxis.stacking.stacks,n=d.processedXData,t,q=d.options.stacking;d[q+\"Stacker\"]&&\n[f,\"-\"+f].forEach(function(f){for(var b=n.length,g,m;b--;)if(g=n[b],t=d.getStackIndicator(t,g,d.index,f),m=(g=w[f]&&w[f][g])&&g.points[t.key])d[q+\"Stacker\"](m,g,b)})};F.prototype.percentStacker=function(d,f,w){f=f.total?100/f.total:0;d[0]=E(d[0]*f);d[1]=E(d[1]*f);this.stackedYData[w]=d[1]};F.prototype.getStackIndicator=function(d,f,w,n){!K(d)||d.x!==f||n&&d.key!==n?d={x:f,index:0,key:n}:d.index++;d.key=[w,f,d.index].join();return d};f.StackItem=H;return f.StackItem});Q(A,\"parts/Dynamics.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Point.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=q.addEvent,K=q.animate,J=q.createElement,L=q.css,x=q.defined,F=q.erase,H=q.error,C=q.extend,D=q.fireEvent,w=q.isArray,n=q.isNumber,t=q.isObject,N=q.isString,m=q.merge,b=q.objectEach,g=q.pick,v=q.relativeLength,h=q.setAnimation,e=q.splat,p=d.Axis;q=d.Chart;var l=d.Series,I=d.seriesTypes;d.cleanRecursively=function(e,g){var f={};b(e,function(b,l){if(t(e[l],!0)&&!e.nodeType&&g[l])b=d.cleanRecursively(e[l],g[l]),Object.keys(b).length&&\n(f[l]=b);else if(t(e[l])||e[l]!==g[l])f[l]=e[l]});return f};C(q.prototype,{addSeries:function(b,e,d){var f,l=this;b&&(e=g(e,!0),D(l,\"addSeries\",{options:b},function(){f=l.initSeries(b);l.isDirtyLegend=!0;l.linkSeries();f.enabledDataSorting&&f.setData(b.data,!1);D(l,\"afterAddSeries\",{series:f});e&&l.redraw(d)}));return f},addAxis:function(b,e,d,g){return this.createAxis(e?\"xAxis\":\"yAxis\",{axis:b,redraw:d,animation:g})},addColorAxis:function(b,e,d){return this.createAxis(\"colorAxis\",{axis:b,redraw:e,\nanimation:d})},createAxis:function(b,f){var l=this.options,h=\"colorAxis\"===b,u=f.redraw,n=f.animation;f=m(f.axis,{index:this[b].length,isX:\"xAxis\"===b});var c=h?new d.ColorAxis(this,f):new p(this,f);l[b]=e(l[b]||{});l[b].push(f);h&&(this.isDirtyLegend=!0,this.axes.forEach(function(a){a.series=[]}),this.series.forEach(function(a){a.bindAxes();a.isDirtyData=!0}));g(u,!0)&&this.redraw(n);return c},showLoading:function(b){var e=this,d=e.options,f=e.loadingDiv,l=d.loading,h=function(){f&&L(f,{left:e.plotLeft+\n\"px\",top:e.plotTop+\"px\",width:e.plotWidth+\"px\",height:e.plotHeight+\"px\"})};f||(e.loadingDiv=f=J(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,e.container),e.loadingSpan=J(\"span\",{className:\"highcharts-loading-inner\"},null,f),E(e,\"redraw\",h));f.className=\"highcharts-loading\";e.loadingSpan.innerHTML=g(b,d.lang.loading,\"\");e.styledMode||(L(f,C(l.style,{zIndex:10})),L(e.loadingSpan,l.labelStyle),e.loadingShown||(L(f,{opacity:0,display:\"\"}),K(f,{opacity:l.style.opacity||.5},{duration:l.showDuration||\n0})));e.loadingShown=!0;h()},hideLoading:function(){var b=this.options,e=this.loadingDiv;e&&(e.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||K(e,{opacity:0},{duration:b.loading.hideDuration||100,complete:function(){L(e,{display:\"none\"})}}));this.loadingShown=!1},propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),propsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\npropsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \"),collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"zAxis\",\"series\"],update:function(f,l,h,p){var u=this,y={credits:\"addCredits\",title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"},c,a,k,r=f.isResponsiveOptions,t=[];D(u,\"update\",{options:f});r||u.setResponsive(!1,!0);f=d.cleanRecursively(f,u.options);m(!0,u.userOptions,f);if(c=f.chart){m(!0,u.options.chart,c);\"className\"in\nc&&u.setClassName(c.className);\"reflow\"in c&&u.setReflow(c.reflow);if(\"inverted\"in c||\"polar\"in c||\"type\"in c){u.propFromSeries();var w=!0}\"alignTicks\"in c&&(w=!0);b(c,function(c,b){-1!==u.propsRequireUpdateSeries.indexOf(\"chart.\"+b)&&(a=!0);-1!==u.propsRequireDirtyBox.indexOf(b)&&(u.isDirtyBox=!0);r||-1===u.propsRequireReflow.indexOf(b)||(k=!0)});!u.styledMode&&\"style\"in c&&u.renderer.setStyle(c.style)}!u.styledMode&&f.colors&&(this.options.colors=f.colors);f.plotOptions&&m(!0,this.options.plotOptions,\nf.plotOptions);f.time&&this.time===d.time&&(this.time=new A(f.time));b(f,function(c,b){if(u[b]&&\"function\"===typeof u[b].update)u[b].update(c,!1);else if(\"function\"===typeof u[y[b]])u[y[b]](c);\"chart\"!==b&&-1!==u.propsRequireUpdateSeries.indexOf(b)&&(a=!0)});this.collectionsWithUpdate.forEach(function(a){if(f[a]){if(\"series\"===a){var c=[];u[a].forEach(function(a,b){a.options.isInternal||c.push(g(a.options.index,b))})}e(f[a]).forEach(function(b,e){(e=x(b.id)&&u.get(b.id)||u[a][c?c[e]:e])&&e.coll===\na&&(e.update(b,!1),h&&(e.touched=!0));!e&&h&&u.collectionsWithInit[a]&&(u.collectionsWithInit[a][0].apply(u,[b].concat(u.collectionsWithInit[a][1]||[]).concat([!1])).touched=!0)});h&&u[a].forEach(function(a){a.touched||a.options.isInternal?delete a.touched:t.push(a)})}});t.forEach(function(a){a.remove&&a.remove(!1)});w&&u.axes.forEach(function(a){a.update({},!1)});a&&u.getSeriesOrderByLinks().forEach(function(a){a.chart&&a.update({},!1)},this);f.loading&&m(!0,u.options.loading,f.loading);w=c&&c.width;\nc=c&&c.height;N(c)&&(c=v(c,w||u.chartWidth));k||n(w)&&w!==u.chartWidth||n(c)&&c!==u.chartHeight?u.setSize(w,c,p):g(l,!0)&&u.redraw(p);D(u,\"afterUpdate\",{options:f,redraw:l,animation:p})},setSubtitle:function(b,e){this.applyDescription(\"subtitle\",b);this.layOutTitles(e)},setCaption:function(b,e){this.applyDescription(\"caption\",b);this.layOutTitles(e)}});q.prototype.collectionsWithInit={xAxis:[q.prototype.addAxis,[!0]],yAxis:[q.prototype.addAxis,[!1]],series:[q.prototype.addSeries]};C(f.prototype,{update:function(b,\ne,d,f){function l(){h.applyOptions(b);var f=a&&h.hasDummyGraphic;f=null===h.y?!f:f;a&&f&&(h.graphic=a.destroy(),delete h.hasDummyGraphic);t(b,!0)&&(a&&a.element&&b&&b.marker&&\"undefined\"!==typeof b.marker.symbol&&(h.graphic=a.destroy()),b&&b.dataLabels&&h.dataLabel&&(h.dataLabel=h.dataLabel.destroy()),h.connector&&(h.connector=h.connector.destroy()));k=h.index;c.updateParallelArrays(h,k);u.data[k]=t(u.data[k],!0)||t(b,!0)?h.options:g(b,u.data[k]);c.isDirty=c.isDirtyData=!0;!c.fixedBox&&c.hasCartesianSeries&&\n(m.isDirtyBox=!0);\"point\"===u.legendType&&(m.isDirtyLegend=!0);e&&m.redraw(d)}var h=this,c=h.series,a=h.graphic,k,m=c.chart,u=c.options;e=g(e,!0);!1===f?l():h.firePointEvent(\"update\",{options:b},l)},remove:function(b,e){this.series.removePoint(this.series.data.indexOf(this),b,e)}});C(l.prototype,{addPoint:function(b,e,d,f,l){var h=this.options,c=this.data,a=this.chart,k=this.xAxis;k=k&&k.hasNames&&k.names;var m=h.data,u=this.xData,n;e=g(e,!0);var p={series:this};this.pointClass.prototype.applyOptions.apply(p,\n[b]);var v=p.x;var y=u.length;if(this.requireSorting&&v<u[y-1])for(n=!0;y&&u[y-1]>v;)y--;this.updateParallelArrays(p,\"splice\",y,0,0);this.updateParallelArrays(p,y);k&&p.name&&(k[v]=p.name);m.splice(y,0,b);n&&(this.data.splice(y,0,null),this.processData());\"point\"===h.legendType&&this.generatePoints();d&&(c[0]&&c[0].remove?c[0].remove(!1):(c.shift(),this.updateParallelArrays(p,\"shift\"),m.shift()));!1!==l&&D(this,\"addPoint\",{point:p});this.isDirtyData=this.isDirty=!0;e&&a.redraw(f)},removePoint:function(b,\ne,d){var f=this,l=f.data,m=l[b],c=f.points,a=f.chart,k=function(){c&&c.length===l.length&&c.splice(b,1);l.splice(b,1);f.options.data.splice(b,1);f.updateParallelArrays(m||{series:f},\"splice\",b,1);m&&m.destroy();f.isDirty=!0;f.isDirtyData=!0;e&&a.redraw()};h(d,a);e=g(e,!0);m?m.firePointEvent(\"remove\",null,k):k()},remove:function(b,e,d,f){function l(){h.destroy(f);h.remove=null;c.isDirtyLegend=c.isDirtyBox=!0;c.linkSeries();g(b,!0)&&c.redraw(e)}var h=this,c=h.chart;!1!==d?D(h,\"remove\",null,l):l()},\nupdate:function(b,e){b=d.cleanRecursively(b,this.userOptions);D(this,\"update\",{options:b});var f=this,l=f.chart,h=f.userOptions,n=f.initialType||f.type,c=b.type||h.type||l.options.chart.type,a=!(this.hasDerivedData||b.dataGrouping||c&&c!==this.type||\"undefined\"!==typeof b.pointStart||b.pointInterval||b.pointIntervalUnit||b.keys),k=I[n].prototype,p,u=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"],v=[\"eventOptions\",\"navigatorSeries\",\"baseSeries\"],y=f.finishedAnimating&&{animation:!1},t=\n{};a&&(v.push(\"data\",\"isDirtyData\",\"points\",\"processedXData\",\"processedYData\",\"xIncrement\",\"_hasPointMarkers\",\"_hasPointLabels\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==b.visible&&v.push(\"area\",\"graph\"),f.parallelArrays.forEach(function(a){v.push(a+\"Data\")}),b.data&&(b.dataSorting&&C(f.options.dataSorting,b.dataSorting),this.setData(b.data,!1)));b=m(h,y,{index:\"undefined\"===typeof h.index?f.index:h.index,pointStart:g(h.pointStart,f.xData[0])},!a&&{data:f.options.data},b);a&&b.data&&(b.data=\nf.options.data);v=u.concat(v);v.forEach(function(a){v[a]=f[a];delete f[a]});f.remove(!1,null,!1,!0);for(p in k)f[p]=void 0;I[c||n]?C(f,I[c||n].prototype):H(17,!0,l,{missingModuleFor:c||n});v.forEach(function(a){f[a]=v[a]});f.init(l,b);if(a&&this.points){var w=f.options;!1===w.visible?(t.graphic=1,t.dataLabel=1):f._hasPointLabels||(c=w.marker,k=w.dataLabels,c&&(!1===c.enabled||\"symbol\"in c)&&(t.graphic=1),k&&!1===k.enabled&&(t.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),\nObject.keys(t).length&&a.destroyElements(t),!1===w.showInLegend&&a.legendItem&&l.legend.destroyItem(a))},this)}b.zIndex!==h.zIndex&&u.forEach(function(a){f[a]&&f[a].attr({zIndex:b.zIndex})});f.initialType=n;l.linkSeries();D(this,\"afterUpdate\");g(e,!0)&&l.redraw(a?void 0:!1)},setName:function(b){this.name=this.options.name=this.userOptions.name=b;this.chart.isDirtyLegend=!0}});C(p.prototype,{update:function(e,d){var f=this.chart,l=e&&e.events||{};e=m(this.userOptions,e);f.options[this.coll].indexOf&&\n(f.options[this.coll][f.options[this.coll].indexOf(this.userOptions)]=e);b(f.options[this.coll].events,function(b,e){\"undefined\"===typeof l[e]&&(l[e]=void 0)});this.destroy(!0);this.init(f,C(e,{events:l}));f.isDirtyBox=!0;g(d,!0)&&f.redraw()},remove:function(b){for(var e=this.chart,d=this.coll,f=this.series,l=f.length;l--;)f[l]&&f[l].remove(!1);F(e.axes,this);F(e[d],this);w(e.options[d])?e.options[d].splice(this.options.index,1):delete e.options[d];e[d].forEach(function(b,c){b.options.index=b.userOptions.index=\nc});this.destroy();e.isDirtyBox=!0;g(b,!0)&&e.redraw()},setTitle:function(b,e){this.update({title:b},e)},setCategories:function(b,e){this.update({categories:b},e)}})});Q(A,\"parts/AreaSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=f.parse,K=q.objectEach,J=q.pick;f=q.seriesType;var L=d.Series;f(\"area\",\"line\",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(d){var f=[],q=[],x=this.xAxis,D=this.yAxis,\nw=D.stacking.stacks[this.stackKey],n={},t=this.index,A=D.series,m=A.length,b=J(D.options.reversedStacks,!0)?1:-1,g;d=d||this.points;if(this.options.stacking){for(g=0;g<d.length;g++)d[g].leftNull=d[g].rightNull=void 0,n[d[g].x]=d[g];K(w,function(b,e){null!==b.total&&q.push(e)});q.sort(function(b,e){return b-e});var v=A.map(function(b){return b.visible});q.forEach(function(d,e){var h=0,l,I;if(n[d]&&!n[d].isNull)f.push(n[d]),[-1,1].forEach(function(f){var h=1===f?\"rightNull\":\"leftNull\",p=0,u=w[q[e+f]];\nif(u)for(g=t;0<=g&&g<m;)l=u.points[g],l||(g===t?n[d][h]=!0:v[g]&&(I=w[d].points[g])&&(p-=I[1]-I[0])),g+=b;n[d][1===f?\"rightCliff\":\"leftCliff\"]=p});else{for(g=t;0<=g&&g<m;){if(l=w[d].points[g]){h=l[1];break}g+=b}h=D.translate(h,0,1,0,1);f.push({isNull:!0,plotX:x.translate(d,0,0,0,1),x:d,plotY:h,yBottom:h})}})}return f},getGraphPath:function(d){var f=L.prototype.getGraphPath,q=this.options,x=q.stacking,D=this.yAxis,w,n=[],t=[],A=this.index,m=D.stacking.stacks[this.stackKey],b=q.threshold,g=Math.round(D.getThreshold(q.threshold));\nq=J(q.connectNulls,\"percent\"===x);var v=function(f,h,p){var l=d[f];f=x&&m[l.x].points[A];var u=l[p+\"Null\"]||0;p=l[p+\"Cliff\"]||0;l=!0;if(p||u){var v=(u?f[0]:f[1])+p;var w=f[0]+p;l=!!u}else!x&&d[h]&&d[h].isNull&&(v=w=b);\"undefined\"!==typeof v&&(t.push({plotX:e,plotY:null===v?g:D.getThreshold(v),isNull:l,isCliff:!0}),n.push({plotX:e,plotY:null===w?g:D.getThreshold(w),doCurve:!1}))};d=d||this.points;x&&(d=this.getStackPoints(d));for(w=0;w<d.length;w++){x||(d[w].leftCliff=d[w].rightCliff=d[w].leftNull=\nd[w].rightNull=void 0);var h=d[w].isNull;var e=J(d[w].rectPlotX,d[w].plotX);var p=J(d[w].yBottom,g);if(!h||q)q||v(w,w-1,\"left\"),h&&!x&&q||(t.push(d[w]),n.push({x:w,plotX:e,plotY:p})),q||v(w,w+1,\"right\")}w=f.call(this,t,!0,!0);n.reversed=!0;h=f.call(this,n,!0,!0);(p=h[0])&&\"M\"===p[0]&&(h[0]=[\"L\",p[1],p[2]]);h=w.concat(h);f=f.call(this,t,!1,q);h.xMap=w.xMap;this.areaPath=h;return f},drawGraph:function(){this.areaPath=[];L.prototype.drawGraph.apply(this);var d=this,f=this.areaPath,q=this.options,C=[[\"area\",\n\"highcharts-area\",this.color,q.fillColor]];this.zones.forEach(function(f,w){C.push([\"zone-area-\"+w,\"highcharts-area highcharts-zone-area-\"+w+\" \"+f.className,f.color||d.color,f.fillColor||q.fillColor])});C.forEach(function(x){var w=x[0],n=d[w],t=n?\"animate\":\"attr\",C={};n?(n.endX=d.preventGraphAnimation?null:f.xMap,n.animate({d:f})):(C.zIndex=0,n=d[w]=d.chart.renderer.path(f).addClass(x[1]).add(d.group),n.isArea=!0);d.chart.styledMode||(C.fill=J(x[3],E(x[2]).setOpacity(J(q.fillOpacity,.75)).get()));\nn[t](C);n.startX=f.xMap;n.shiftUnit=q.step?2:1})},drawLegendSymbol:A.drawRectangle});\"\"});Q(A,\"parts/SplineSeries.js\",[A[\"parts/Utilities.js\"]],function(d){var f=d.pick;d=d.seriesType;d(\"spline\",\"line\",{},{getPointSpline:function(d,q,A){var E=q.plotX||0,J=q.plotY||0,L=d[A-1];A=d[A+1];if(L&&!L.isNull&&!1!==L.doCurve&&!q.isCliff&&A&&!A.isNull&&!1!==A.doCurve&&!q.isCliff){d=L.plotY||0;var x=A.plotX||0;A=A.plotY||0;var F=0;var H=(1.5*E+(L.plotX||0))/2.5;var C=(1.5*J+d)/2.5;x=(1.5*E+x)/2.5;var D=(1.5*\nJ+A)/2.5;x!==H&&(F=(D-C)*(x-E)/(x-H)+J-D);C+=F;D+=F;C>d&&C>J?(C=Math.max(d,J),D=2*J-C):C<d&&C<J&&(C=Math.min(d,J),D=2*J-C);D>A&&D>J?(D=Math.max(A,J),C=2*J-D):D<A&&D<J&&(D=Math.min(A,J),C=2*J-D);q.rightContX=x;q.rightContY=D}q=[\"C\",f(L.rightContX,L.plotX,0),f(L.rightContY,L.plotY,0),f(H,E,0),f(C,J,0),E,J];L.rightContX=L.rightContY=void 0;return q}});\"\"});Q(A,\"parts/AreaSplineSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(d,f,A){A=A.seriesType;var q=\nd.seriesTypes.area.prototype;A(\"areaspline\",\"spline\",d.defaultPlotOptions.area,{getStackPoints:q.getStackPoints,getGraphPath:q.getGraphPath,drawGraph:q.drawGraph,drawLegendSymbol:f.drawRectangle});\"\"});Q(A,\"parts/ColumnSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){\"\";var E=f.parse,K=q.animObject,J=q.clamp,L=q.defined,x=q.extend,F=q.isNumber,H=q.merge,C=q.pick;f=q.seriesType;var D=d.Series;f(\"column\",\"line\",{borderRadius:0,\ngroupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:\"#cccccc\",borderColor:\"#000000\"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"#ffffff\"},{cropShoulder:0,directTouch:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],negStacks:!0,init:function(){D.prototype.init.apply(this,arguments);var d=this,f=d.chart;\nf.hasRendered&&f.series.forEach(function(f){f.type===d.type&&(f.isDirty=!0)})},getColumnMetrics:function(){var d=this,f=d.options,t=d.xAxis,q=d.yAxis,m=t.options.reversedStacks;m=t.reversed&&!m||!t.reversed&&m;var b,g={},v=0;!1===f.grouping?v=1:d.chart.series.forEach(function(e){var f=e.yAxis,l=e.options;if(e.type===d.type&&(e.visible||!d.chart.options.chart.ignoreHiddenSeries)&&q.len===f.len&&q.pos===f.pos){if(l.stacking){b=e.stackKey;\"undefined\"===typeof g[b]&&(g[b]=v++);var h=g[b]}else!1!==l.grouping&&\n(h=v++);e.columnIndex=h}});var h=Math.min(Math.abs(t.transA)*(t.ordinal&&t.ordinal.slope||f.pointRange||t.closestPointRange||t.tickInterval||1),t.len),e=h*f.groupPadding,p=(h-2*e)/(v||1);f=Math.min(f.maxPointWidth||t.len,C(f.pointWidth,p*(1-2*f.pointPadding)));d.columnMetrics={width:f,offset:(p-f)/2+(e+((d.columnIndex||0)+(m?1:0))*p-h/2)*(m?-1:1)};return d.columnMetrics},crispCol:function(d,f,t,q){var m=this.chart,b=this.borderWidth,g=-(b%2?.5:0);b=b%2?.5:1;m.inverted&&m.renderer.isVML&&(b+=1);this.options.crisp&&\n(t=Math.round(d+t)+g,d=Math.round(d)+g,t-=d);q=Math.round(f+q)+b;g=.5>=Math.abs(f)&&.5<q;f=Math.round(f)+b;q-=f;g&&q&&(--f,q+=1);return{x:d,y:f,width:t,height:q}},translate:function(){var d=this,f=d.chart,t=d.options,q=d.dense=2>d.closestPointRange*d.xAxis.transA;q=d.borderWidth=C(t.borderWidth,q?0:1);var m=d.xAxis,b=d.yAxis,g=t.threshold,v=d.translatedThreshold=b.getThreshold(g),h=C(t.minPointLength,5),e=d.getColumnMetrics(),p=e.width,l=d.barW=Math.max(p,1+2*q),I=d.pointXOffset=e.offset,u=d.dataMin,\ny=d.dataMax;f.inverted&&(v-=.5);t.pointPadding&&(l=Math.ceil(l));D.prototype.translate.apply(d);d.points.forEach(function(e){var n=C(e.yBottom,v),t=999+Math.abs(n),q=p,c=e.plotX;t=J(e.plotY,-t,b.len+t);var a=e.plotX+I,k=l,r=Math.min(t,n),w=Math.max(t,n)-r;if(h&&Math.abs(w)<h){w=h;var x=!b.reversed&&!e.negative||b.reversed&&e.negative;F(g)&&F(y)&&e.y===g&&y<=g&&(b.min||0)<g&&u!==y&&(x=!x);r=Math.abs(r-v)>h?n-h:v-(x?h:0)}L(e.options.pointWidth)&&(q=k=Math.ceil(e.options.pointWidth),a-=Math.round((q-\np)/2));e.barX=a;e.pointWidth=q;e.tooltipPos=f.inverted?[b.len+b.pos-f.plotLeft-t,m.len+m.pos-f.plotTop-(c||0)-I-k/2,w]:[a+k/2,t+b.pos-f.plotTop,w];e.shapeType=d.pointClass.prototype.shapeType||\"rect\";e.shapeArgs=d.crispCol.apply(d,e.isNull?[a,v,k,0]:[a,r,k,w])})},getSymbol:d.noop,drawLegendSymbol:A.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(d,f){var n=this.options,q=this.pointAttrToOptions||{};var m=q.stroke||\n\"borderColor\";var b=q[\"stroke-width\"]||\"borderWidth\",g=d&&d.color||this.color,v=d&&d[m]||n[m]||this.color||g,h=d&&d[b]||n[b]||this[b]||0;q=d&&d.options.dashStyle||n.dashStyle;var e=C(d&&d.opacity,n.opacity,1);if(d&&this.zones.length){var p=d.getZone();g=d.options.color||p&&(p.color||d.nonZonedColor)||this.color;p&&(v=p.borderColor||v,q=p.dashStyle||q,h=p.borderWidth||h)}f&&d&&(d=H(n.states[f],d.options.states&&d.options.states[f]||{}),f=d.brightness,g=d.color||\"undefined\"!==typeof f&&E(g).brighten(d.brightness).get()||\ng,v=d[m]||v,h=d[b]||h,q=d.dashStyle||q,e=C(d.opacity,e));m={fill:g,stroke:v,\"stroke-width\":h,opacity:e};q&&(m.dashstyle=q);return m},drawPoints:function(){var d=this,f=this.chart,q=d.options,x=f.renderer,m=q.animationLimit||250,b;d.points.forEach(function(g){var n=g.graphic,h=!!n,e=n&&f.pointCount<m?\"animate\":\"attr\";if(F(g.plotY)&&null!==g.y){b=g.shapeArgs;n&&g.hasNewShapeType()&&(n=n.destroy());d.enabledDataSorting&&(g.startXPos=d.xAxis.reversed?-(b?b.width:0):d.xAxis.width);n||(g.graphic=n=x[g.shapeType](b).add(g.group||\nd.group))&&d.enabledDataSorting&&f.hasRendered&&f.pointCount<m&&(n.attr({x:g.startXPos}),h=!0,e=\"animate\");if(n&&h)n[e](H(b));if(q.borderRadius)n[e]({r:q.borderRadius});f.styledMode||n[e](d.pointAttribs(g,g.selected&&\"select\")).shadow(!1!==g.allowShadow&&q.shadow,null,q.stacking&&!q.borderRadius);n.addClass(g.getClassName(),!0)}else n&&(g.graphic=n.destroy())})},animate:function(d){var f=this,q=this.yAxis,w=f.options,m=this.chart.inverted,b={},g=m?\"translateX\":\"translateY\";if(d)b.scaleY=.001,d=J(q.toPixels(w.threshold),\nq.pos,q.pos+q.len),m?b.translateX=d-q.len:b.translateY=d,f.clipBox&&f.setClip(),f.group.attr(b);else{var v=f.group.attr(g);f.group.animate({scaleY:1},x(K(f.options.animation),{step:function(d,e){f.group&&(b[g]=v+e.pos*(q.pos-v),f.group.attr(b))}}))}},remove:function(){var d=this,f=d.chart;f.hasRendered&&f.series.forEach(function(f){f.type===d.type&&(f.isDirty=!0)});D.prototype.remove.apply(d,arguments)}});\"\"});Q(A,\"parts/BarSeries.js\",[A[\"parts/Utilities.js\"]],function(d){d=d.seriesType;d(\"bar\",\"column\",\nnull,{inverted:!0});\"\"});Q(A,\"parts/ScatterSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.addEvent;f=f.seriesType;var q=d.Series;f(\"scatter\",\"line\",{lineWidth:0,findNearestPointBy:\"xy\",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <span style=\"font-size: 10px\"> {series.name}</span><br/>',pointFormat:\"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>\"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\n\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&q.prototype.drawGraph.call(this)},applyJitter:function(){var d=this,f=this.options.jitter,q=this.points.length;f&&this.points.forEach(function(A,x){[\"x\",\"y\"].forEach(function(E,H){var C=\"plot\"+E.toUpperCase();if(f[E]&&!A.isNull){var D=d[E+\"Axis\"];var w=f[E]*D.transA;if(D&&!D.isLog){var n=Math.max(0,A[C]-w);D=Math.min(D.len,A[C]+w);H=1E4*Math.sin(x+H*q);A[C]=n+(D-n)*(H-Math.floor(H));\"x\"===E&&(A.clientX=\nA.plotX)}}})})}});A(q,\"afterTranslate\",function(){this.applyJitter&&this.applyJitter()});\"\"});Q(A,\"mixins/centered-series.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.isNumber,q=f.pick,M=f.relativeLength,K=d.deg2rad;d.CenteredSeriesMixin={getCenter:function(){var d=this.options,f=this.chart,x=2*(d.slicedOffset||0),A=f.plotWidth-2*x,E=f.plotHeight-2*x,C=d.center,D=Math.min(A,E),w=d.size,n=d.innerSize||0;\"string\"===typeof w&&(w=parseFloat(w));\"string\"===typeof n&&(n=parseFloat(n));\nd=[q(C[0],\"50%\"),q(C[1],\"50%\"),q(w&&0>w?void 0:d.size,\"100%\"),q(n&&0>n?void 0:d.innerSize||0,\"0%\")];f.angular&&(d[3]=0);for(C=0;4>C;++C)w=d[C],f=2>C||2===C&&/%$/.test(w),d[C]=M(w,[A,E,D,d[2]][C])+(f?x:0);d[3]>d[2]&&(d[3]=d[2]);return d},getStartAndEndRadians:function(d,f){d=A(d)?d:0;f=A(f)&&f>d&&360>f-d?f:d+360;return{start:K*(d+-90),end:K*(f+-90)}}}});Q(A,\"parts/PieSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=\nq.addEvent,K=q.clamp,J=q.defined,L=q.fireEvent,x=q.isNumber,F=q.merge,H=q.pick,C=q.relativeLength,D=q.seriesType,w=q.setAnimation;q=d.CenteredSeriesMixin;var n=q.getStartAndEndRadians,t=d.noop,N=d.Series;D(\"pie\",\"line\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:\"fixedOffset\",crookDistance:\"70%\",distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,\ninactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],axisTypes:[],pointAttribs:d.seriesTypes.column.prototype.pointAttribs,animate:function(d){var b=this,f=b.points,m=b.startAngleRad;d||f.forEach(function(d){var e=d.graphic,\nf=d.shapeArgs;e&&f&&(e.attr({r:H(d.startR,b.center&&b.center[3]/2),start:m,end:m}),e.animate({r:f.r,start:f.start,end:f.end},b.options.animation))})},hasData:function(){return!!this.processedXData.length},updateTotals:function(){var d,b=0,f=this.points,n=f.length,h=this.options.ignoreHiddenPoint;for(d=0;d<n;d++){var e=f[d];b+=h&&!e.visible?0:e.isNull?0:e.y}this.total=b;for(d=0;d<n;d++)e=f[d],e.percentage=0<b&&(e.visible||!h)?e.y/b*100:0,e.total=b},generatePoints:function(){N.prototype.generatePoints.call(this);\nthis.updateTotals()},getX:function(d,b,f){var g=this.center,h=this.radii?this.radii[f.index]:g[2]/2;d=Math.asin(K((d-g[1])/(h+f.labelDistance),-1,1));return g[0]+(b?-1:1)*Math.cos(d)*(h+f.labelDistance)+(0<f.labelDistance?(b?-1:1)*this.options.dataLabels.padding:0)},translate:function(d){this.generatePoints();var b=0,f=this.options,m=f.slicedOffset,h=m+(f.borderWidth||0),e=n(f.startAngle,f.endAngle),p=this.startAngleRad=e.start;e=(this.endAngleRad=e.end)-p;var l=this.points,q=f.dataLabels.distance;\nf=f.ignoreHiddenPoint;var u,y=l.length;d||(this.center=d=this.getCenter());for(u=0;u<y;u++){var t=l[u];var w=p+b*e;if(!f||t.visible)b+=t.percentage/100;var x=p+b*e;t.shapeType=\"arc\";t.shapeArgs={x:d[0],y:d[1],r:d[2]/2,innerR:d[3]/2,start:Math.round(1E3*w)/1E3,end:Math.round(1E3*x)/1E3};t.labelDistance=H(t.options.dataLabels&&t.options.dataLabels.distance,q);t.labelDistance=C(t.labelDistance,t.shapeArgs.r);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,t.labelDistance);x=(x+w)/2;x>1.5*Math.PI?\nx-=2*Math.PI:x<-Math.PI/2&&(x+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(x)*m),translateY:Math.round(Math.sin(x)*m)};var B=Math.cos(x)*d[2]/2;var c=Math.sin(x)*d[2]/2;t.tooltipPos=[d[0]+.7*B,d[1]+.7*c];t.half=x<-Math.PI/2||x>Math.PI/2?1:0;t.angle=x;w=Math.min(h,t.labelDistance/5);t.labelPosition={natural:{x:d[0]+B+Math.cos(x)*t.labelDistance,y:d[1]+c+Math.sin(x)*t.labelDistance},\"final\":{},alignment:0>t.labelDistance?\"center\":t.half?\"right\":\"left\",connectorPosition:{breakAt:{x:d[0]+\nB+Math.cos(x)*w,y:d[1]+c+Math.sin(x)*w},touchingSliceAt:{x:d[0]+B,y:d[1]+c}}}}L(this,\"afterTranslate\")},drawEmpty:function(){var d=this.options;if(0===this.total){var b=this.center[0];var f=this.center[1];this.graph||(this.graph=this.chart.renderer.circle(b,f,0).addClass(\"highcharts-graph\").add(this.group));this.graph.animate({\"stroke-width\":d.borderWidth,cx:b,cy:f,r:this.center[2]/2,fill:d.fillColor||\"none\",stroke:d.color||\"#cccccc\"},this.options.animation)}else this.graph&&(this.graph=this.graph.destroy())},\nredrawPoints:function(){var d=this,b=d.chart,f=b.renderer,n,h,e,p,l=d.options.shadow;this.drawEmpty();!l||d.shadowGroup||b.styledMode||(d.shadowGroup=f.g(\"shadow\").attr({zIndex:-1}).add(d.group));d.points.forEach(function(g){var m={};h=g.graphic;if(!g.isNull&&h){p=g.shapeArgs;n=g.getTranslate();if(!b.styledMode){var v=g.shadowGroup;l&&!v&&(v=g.shadowGroup=f.g(\"shadow\").add(d.shadowGroup));v&&v.attr(n);e=d.pointAttribs(g,g.selected&&\"select\")}g.delayedRendering?(h.setRadialReference(d.center).attr(p).attr(n),\nb.styledMode||h.attr(e).attr({\"stroke-linejoin\":\"round\"}).shadow(l,v),g.delayedRendering=!1):(h.setRadialReference(d.center),b.styledMode||F(!0,m,e),F(!0,m,p,n),h.animate(m));h.attr({visibility:g.visible?\"inherit\":\"hidden\"});h.addClass(g.getClassName())}else h&&(g.graphic=h.destroy())})},drawPoints:function(){var d=this.chart.renderer;this.points.forEach(function(b){b.graphic&&b.hasNewShapeType()&&(b.graphic=b.graphic.destroy());b.graphic||(b.graphic=d[b.shapeType](b.shapeArgs).add(b.series.group),\nb.delayedRendering=!0)})},searchPoint:t,sortByAngle:function(d,b){d.sort(function(d,f){return\"undefined\"!==typeof d.angle&&(f.angle-d.angle)*b})},drawLegendSymbol:f.drawRectangle,getCenter:q.getCenter,getSymbol:t,drawGraph:null},{init:function(){A.prototype.init.apply(this,arguments);var d=this;d.name=H(d.name,\"Slice\");var b=function(b){d.slice(\"select\"===b.type)};E(d,\"select\",b);E(d,\"unselect\",b);return d},isValid:function(){return x(this.y)&&0<=this.y},setVisible:function(d,b){var f=this,m=f.series,\nh=m.chart,e=m.options.ignoreHiddenPoint;b=H(b,e);d!==f.visible&&(f.visible=f.options.visible=d=\"undefined\"===typeof d?!f.visible:d,m.options.data[m.data.indexOf(f)]=f.options,[\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"].forEach(function(b){if(f[b])f[b][d?\"show\":\"hide\"](!0)}),f.legendItem&&h.legend.colorizeItem(f,d),d||\"hover\"!==f.state||f.setState(\"\"),e&&(m.isDirty=!0),b&&h.redraw())},slice:function(d,b,f){var g=this.series;w(f,g.chart);H(b,!0);this.sliced=this.options.sliced=J(d)?d:!this.sliced;\ng.options.data[g.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(d){var b=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(b.x,b.y,b.r+d,b.r+d,{innerR:b.r-1,start:b.start,end:b.end})},connectorShapes:{fixedOffset:function(d,b,f){var g=b.breakAt;\nb=b.touchingSliceAt;return[[\"M\",d.x,d.y],f.softConnector?[\"C\",d.x+(\"left\"===d.alignment?-5:5),d.y,2*g.x-b.x,2*g.y-b.y,g.x,g.y]:[\"L\",g.x,g.y],[\"L\",b.x,b.y]]},straight:function(d,b){b=b.touchingSliceAt;return[[\"M\",d.x,d.y],[\"L\",b.x,b.y]]},crookedLine:function(d,b,f){b=b.touchingSliceAt;var g=this.series,h=g.center[0],e=g.chart.plotWidth,m=g.chart.plotLeft;g=d.alignment;var l=this.shapeArgs.r;f=C(f.crookDistance,1);e=\"left\"===g?h+l+(e+m-h-l)*(1-f):m+(h-l)*f;f=[\"L\",e,d.y];h=!0;if(\"left\"===g?e>d.x||e<\nb.x:e<d.x||e>b.x)h=!1;d=[[\"M\",d.x,d.y]];h&&d.push(f);d.push([\"L\",b.x,b.y]);return d}},getConnectorPath:function(){var d=this.labelPosition,b=this.series.options.dataLabels,f=b.connectorShape,n=this.connectorShapes;n[f]&&(f=n[f]);return f.call(this,{x:d.final.x,y:d.final.y,alignment:d.alignment},d.connectorPosition,b)}});\"\"});Q(A,\"parts/DataLabels.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.animObject,q=f.arrayMax,M=f.clamp,K=f.defined,J=f.extend,L=f.fireEvent,x=f.format,\nF=f.isArray,H=f.merge,C=f.objectEach,D=f.pick,w=f.relativeLength,n=f.splat,t=f.stableSort;f=d.noop;var N=d.Series,m=d.seriesTypes;d.distribute=function(b,f,m){function g(b,e){return b.target-e.target}var e,n=!0,l=b,v=[];var u=0;var q=l.reducedLen||f;for(e=b.length;e--;)u+=b[e].size;if(u>q){t(b,function(b,e){return(e.rank||0)-(b.rank||0)});for(u=e=0;u<=q;)u+=b[e].size,e++;v=b.splice(e-1,b.length)}t(b,g);for(b=b.map(function(b){return{size:b.size,targets:[b.target],align:D(b.align,.5)}});n;){for(e=\nb.length;e--;)n=b[e],u=(Math.min.apply(0,n.targets)+Math.max.apply(0,n.targets))/2,n.pos=M(u-n.size*n.align,0,f-n.size);e=b.length;for(n=!1;e--;)0<e&&b[e-1].pos+b[e-1].size>b[e].pos&&(b[e-1].size+=b[e].size,b[e-1].targets=b[e-1].targets.concat(b[e].targets),b[e-1].align=.5,b[e-1].pos+b[e-1].size>f&&(b[e-1].pos=f-b[e-1].size),b.splice(e,1),n=!0)}l.push.apply(l,v);e=0;b.some(function(b){var g=0;if(b.targets.some(function(){l[e].pos=b.pos+g;if(\"undefined\"!==typeof m&&Math.abs(l[e].pos-l[e].target)>m)return l.slice(0,\ne+1).forEach(function(b){delete b.pos}),l.reducedLen=(l.reducedLen||f)-.1*f,l.reducedLen>.1*f&&d.distribute(l,f,m),!0;g+=l[e].size;e++}))return!0});t(l,g)};N.prototype.drawDataLabels=function(){function b(c,a){var b=a.filter;return b?(a=b.operator,c=c[b.property],b=b.value,\">\"===a&&c>b||\"<\"===a&&c<b||\">=\"===a&&c>=b||\"<=\"===a&&c<=b||\"==\"===a&&c==b||\"===\"===a&&c===b?!0:!1):!0}function d(c,a){var b=[],e;if(F(c)&&!F(a))b=c.map(function(c){return H(c,a)});else if(F(a)&&!F(c))b=a.map(function(a){return H(c,\na)});else if(F(c)||F(a))for(e=Math.max(c.length,a.length);e--;)b[e]=H(c[e],a[e]);else b=H(c,a);return b}var f=this,h=f.chart,e=f.options,m=e.dataLabels,l=f.points,q,u=f.hasRendered||0,t=A(e.animation).duration,w=Math.min(t,200),E=!h.renderer.forExport&&D(m.defer,0<w),J=h.renderer;m=d(d(h.options.plotOptions&&h.options.plotOptions.series&&h.options.plotOptions.series.dataLabels,h.options.plotOptions&&h.options.plotOptions[f.type]&&h.options.plotOptions[f.type].dataLabels),m);L(this,\"drawDataLabels\");\nif(F(m)||m.enabled||f._hasPointLabels){var B=f.plotGroup(\"dataLabelsGroup\",\"data-labels\",E&&!u?\"hidden\":\"inherit\",m.zIndex||6);E&&(B.attr({opacity:+u}),u||setTimeout(function(){var c=f.dataLabelsGroup;c&&(f.visible&&B.show(!0),c[e.animation?\"animate\":\"attr\"]({opacity:1},{duration:w}))},t-w));l.forEach(function(c){q=n(d(m,c.dlOptions||c.options&&c.options.dataLabels));q.forEach(function(a,d){var g=a.enabled&&(!c.isNull||c.dataLabelOnNull)&&b(c,a),l=c.dataLabels?c.dataLabels[d]:c.dataLabel,k=c.connectors?\nc.connectors[d]:c.connector,m=D(a.distance,c.labelDistance),n=!l;if(g){var p=c.getLabelConfig();var u=D(a[c.formatPrefix+\"Format\"],a.format);p=K(u)?x(u,p,h):(a[c.formatPrefix+\"Formatter\"]||a.formatter).call(p,a);u=a.style;var v=a.rotation;h.styledMode||(u.color=D(a.color,u.color,f.color,\"#000000\"),\"contrast\"===u.color?(c.contrastColor=J.getContrast(c.color||f.color),u.color=!K(m)&&a.inside||0>m||e.stacking?c.contrastColor:\"#000000\"):delete c.contrastColor,e.cursor&&(u.cursor=e.cursor));var q={r:a.borderRadius||\n0,rotation:v,padding:a.padding,zIndex:1};h.styledMode||(q.fill=a.backgroundColor,q.stroke=a.borderColor,q[\"stroke-width\"]=a.borderWidth);C(q,function(a,c){\"undefined\"===typeof a&&delete q[c]})}!l||g&&K(p)?g&&K(p)&&(l?q.text=p:(c.dataLabels=c.dataLabels||[],l=c.dataLabels[d]=v?J.text(p,0,-9999,a.useHTML).addClass(\"highcharts-data-label\"):J.label(p,0,-9999,a.shape,null,null,a.useHTML,null,\"data-label\"),d||(c.dataLabel=l),l.addClass(\" highcharts-data-label-color-\"+c.colorIndex+\" \"+(a.className||\"\")+\n(a.useHTML?\" highcharts-tracker\":\"\"))),l.options=a,l.attr(q),h.styledMode||l.css(u).shadow(a.shadow),l.added||l.add(B),a.textPath&&!a.useHTML&&(l.setTextPath(c.getDataLabelPath&&c.getDataLabelPath(l)||c.graphic,a.textPath),c.dataLabelPath&&!a.textPath.enabled&&(c.dataLabelPath=c.dataLabelPath.destroy())),f.alignDataLabel(c,l,a,null,n)):(c.dataLabel=c.dataLabel&&c.dataLabel.destroy(),c.dataLabels&&(1===c.dataLabels.length?delete c.dataLabels:delete c.dataLabels[d]),d||delete c.dataLabel,k&&(c.connector=\nc.connector.destroy(),c.connectors&&(1===c.connectors.length?delete c.connectors:delete c.connectors[d])))})})}L(this,\"afterDrawDataLabels\")};N.prototype.alignDataLabel=function(b,d,f,h,e){var g=this,l=this.chart,m=this.isCartesian&&l.inverted,n=this.enabledDataSorting,q=D(b.dlBox&&b.dlBox.centerX,b.plotX,-9999),v=D(b.plotY,-9999),t=d.getBBox(),w=f.rotation,x=f.align,c=l.isInsidePlot(q,Math.round(v),m),a=\"justify\"===D(f.overflow,n?\"none\":\"justify\"),k=this.visible&&!1!==b.visible&&(b.series.forceDL||\nn&&!a||c||f.inside&&h&&l.isInsidePlot(q,m?h.x+1:h.y+h.height-1,m));var r=function(f){n&&g.xAxis&&!a&&g.setDataLabelStartPos(b,d,e,c,f)};if(k){var z=l.renderer.fontMetrics(l.styledMode?void 0:f.style.fontSize,d).b;h=J({x:m?this.yAxis.len-v:q,y:Math.round(m?this.xAxis.len-q:v),width:0,height:0},h);J(f,{width:t.width,height:t.height});w?(a=!1,q=l.renderer.rotCorr(z,w),q={x:h.x+f.x+h.width/2+q.x,y:h.y+f.y+{top:0,middle:.5,bottom:1}[f.verticalAlign]*h.height},r(q),d[e?\"attr\":\"animate\"](q).attr({align:x}),\nr=(w+720)%360,r=180<r&&360>r,\"left\"===x?q.y-=r?t.height:0:\"center\"===x?(q.x-=t.width/2,q.y-=t.height/2):\"right\"===x&&(q.x-=t.width,q.y-=r?0:t.height),d.placed=!0,d.alignAttr=q):(r(h),d.align(f,null,h),q=d.alignAttr);a&&0<=h.height?this.justifyDataLabel(d,f,q,t,h,e):D(f.crop,!0)&&(k=l.isInsidePlot(q.x,q.y)&&l.isInsidePlot(q.x+t.width,q.y+t.height));if(f.shape&&!w)d[e?\"attr\":\"animate\"]({anchorX:m?l.plotWidth-b.plotY:b.plotX,anchorY:m?l.plotHeight-b.plotX:b.plotY})}e&&n&&(d.placed=!1);k||n&&!a||(d.hide(!0),\nd.placed=!1)};N.prototype.setDataLabelStartPos=function(b,d,f,h,e){var g=this.chart,l=g.inverted,m=this.xAxis,n=m.reversed,q=l?d.height/2:d.width/2;b=(b=b.pointWidth)?b/2:0;m=l?e.x:n?-q-b:m.width-q+b;e=l?n?this.yAxis.height-q+b:-q-b:e.y;d.startXPos=m;d.startYPos=e;h?\"hidden\"===d.visibility&&(d.show(),d.attr({opacity:0}).animate({opacity:1})):d.attr({opacity:1}).animate({opacity:0},void 0,d.hide);g.hasRendered&&(f&&d.attr({x:d.startXPos,y:d.startYPos}),d.placed=!0)};N.prototype.justifyDataLabel=function(b,\nd,f,h,e,m){var g=this.chart,n=d.align,p=d.verticalAlign,q=b.box?0:b.padding||0;var v=f.x+q;if(0>v){\"right\"===n?(d.align=\"left\",d.inside=!0):d.x=-v;var t=!0}v=f.x+h.width-q;v>g.plotWidth&&(\"left\"===n?(d.align=\"right\",d.inside=!0):d.x=g.plotWidth-v,t=!0);v=f.y+q;0>v&&(\"bottom\"===p?(d.verticalAlign=\"top\",d.inside=!0):d.y=-v,t=!0);v=f.y+h.height-q;v>g.plotHeight&&(\"top\"===p?(d.verticalAlign=\"bottom\",d.inside=!0):d.y=g.plotHeight-v,t=!0);t&&(b.placed=!m,b.align(d,null,e));return t};m.pie&&(m.pie.prototype.dataLabelPositioners=\n{radialDistributionY:function(b){return b.top+b.distributeBox.pos},radialDistributionX:function(b,d,f,h){return b.getX(f<d.top+2||f>d.bottom-2?h:f,d.half,d)},justify:function(b,d,f){return f[0]+(b.half?-1:1)*(d+b.labelDistance)},alignToPlotEdges:function(b,d,f,h){b=b.getBBox().width;return d?b+h:f-b-h},alignToConnectors:function(b,d,f,h){var e=0,g;b.forEach(function(b){g=b.dataLabel.getBBox().width;g>e&&(e=g)});return d?e+h:f-e-h}},m.pie.prototype.drawDataLabels=function(){var b=this,f=b.data,m,h=\nb.chart,e=b.options.dataLabels||{},n=e.connectorPadding,l,t=h.plotWidth,u=h.plotHeight,y=h.plotLeft,w=Math.round(h.chartWidth/3),x,C=b.center,B=C[2]/2,c=C[1],a,k,r,z,A=[[],[]],E,F,L,J,M=[0,0,0,0],Q=b.dataLabelPositioners,O;b.visible&&(e.enabled||b._hasPointLabels)&&(f.forEach(function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),a.dataLabel.shortened=!1)}),N.prototype.drawDataLabels.apply(b),f.forEach(function(a){a.dataLabel&&\n(a.visible?(A[a.half].push(a),a.dataLabel._pos=null,!K(e.style.width)&&!K(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>w&&(a.dataLabel.css({width:Math.round(.7*w)+\"px\"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),A.forEach(function(f,g){var l=f.length,p=[],q;if(l){b.sortByAngle(f,g-.5);if(0<b.maxLabelDistance){var v=Math.max(0,c-B-b.maxLabelDistance);\nvar w=Math.min(c+B+b.maxLabelDistance,h.plotHeight);f.forEach(function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,c-B-a.labelDistance),a.bottom=Math.min(c+B+a.labelDistance,h.plotHeight),q=a.dataLabel.getBBox().height||21,a.distributeBox={target:a.labelPosition.natural.y-a.top+q/2,size:q,rank:a.y},p.push(a.distributeBox))});v=w+q-v;d.distribute(p,v,v/5)}for(J=0;J<l;J++){m=f[J];r=m.labelPosition;a=m.dataLabel;L=!1===m.visible?\"hidden\":\"inherit\";F=v=r.natural.y;p&&K(m.distributeBox)&&(\"undefined\"===\ntypeof m.distributeBox.pos?L=\"hidden\":(z=m.distributeBox.size,F=Q.radialDistributionY(m)));delete m.positionIndex;if(e.justify)E=Q.justify(m,B,C);else switch(e.alignTo){case \"connectors\":E=Q.alignToConnectors(f,g,t,y);break;case \"plotEdges\":E=Q.alignToPlotEdges(a,g,t,y);break;default:E=Q.radialDistributionX(b,m,F,v)}a._attr={visibility:L,align:r.alignment};O=m.options.dataLabels||{};a._pos={x:E+D(O.x,e.x)+({left:n,right:-n}[r.alignment]||0),y:F+D(O.y,e.y)-10};r.final.x=E;r.final.y=F;D(e.crop,!0)&&\n(k=a.getBBox().width,v=null,E-k<n&&1===g?(v=Math.round(k-E+n),M[3]=Math.max(v,M[3])):E+k>t-n&&0===g&&(v=Math.round(E+k-t+n),M[1]=Math.max(v,M[1])),0>F-z/2?M[0]=Math.max(Math.round(-F+z/2),M[0]):F+z/2>u&&(M[2]=Math.max(Math.round(F+z/2-u),M[2])),a.sideOverflow=v)}}}),0===q(M)||this.verifyDataLabelOverflow(M))&&(this.placeDataLabels(),this.points.forEach(function(c){O=H(e,c.options.dataLabels);if(l=D(O.connectorWidth,1)){var d;x=c.connector;if((a=c.dataLabel)&&a._pos&&c.visible&&0<c.labelDistance){L=\na._attr.visibility;if(d=!x)c.connector=x=h.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\"+c.colorIndex+(c.className?\" \"+c.className:\"\")).add(b.dataLabelsGroup),h.styledMode||x.attr({\"stroke-width\":l,stroke:O.connectorColor||c.color||\"#666666\"});x[d?\"attr\":\"animate\"]({d:c.getConnectorPath()});x.attr(\"visibility\",L)}else x&&(c.connector=x.destroy())}}))},m.pie.prototype.placeDataLabels=function(){this.points.forEach(function(b){var d=b.dataLabel,f;d&&b.visible&&((f=d._pos)?\n(d.sideOverflow&&(d._attr.width=Math.max(d.getBBox().width-d.sideOverflow,0),d.css({width:d._attr.width+\"px\",textOverflow:(this.options.dataLabels.style||{}).textOverflow||\"ellipsis\"}),d.shortened=!0),d.attr(d._attr),d[d.moved?\"animate\":\"attr\"](f),d.moved=!0):d&&d.attr({y:-9999}));delete b.distributeBox},this)},m.pie.prototype.alignDataLabel=f,m.pie.prototype.verifyDataLabelOverflow=function(b){var d=this.center,f=this.options,h=f.center,e=f.minSize||80,m=null!==f.size;if(!m){if(null!==h[0])var l=\nMath.max(d[2]-Math.max(b[1],b[3]),e);else l=Math.max(d[2]-b[1]-b[3],e),d[0]+=(b[3]-b[1])/2;null!==h[1]?l=M(l,e,d[2]-Math.max(b[0],b[2])):(l=M(l,e,d[2]-b[0]-b[2]),d[1]+=(b[0]-b[2])/2);l<d[2]?(d[2]=l,d[3]=Math.min(w(f.innerSize||0,l),l),this.translate(d),this.drawDataLabels&&this.drawDataLabels()):m=!0}return m});m.column&&(m.column.prototype.alignDataLabel=function(b,d,f,h,e){var g=this.chart.inverted,l=b.series,m=b.dlBox||b.shapeArgs,n=D(b.below,b.plotY>D(this.translatedThreshold,l.yAxis.len)),q=\nD(f.inside,!!this.options.stacking);m&&(h=H(m),0>h.y&&(h.height+=h.y,h.y=0),m=h.y+h.height-l.yAxis.len,0<m&&m<h.height&&(h.height-=m),g&&(h={x:l.yAxis.len-h.y-h.height,y:l.xAxis.len-h.x-h.width,width:h.height,height:h.width}),q||(g?(h.x+=n?0:h.width,h.width=0):(h.y+=n?h.height:0,h.height=0)));f.align=D(f.align,!g||q?\"center\":n?\"right\":\"left\");f.verticalAlign=D(f.verticalAlign,g||q?\"middle\":n?\"top\":\"bottom\");N.prototype.alignDataLabel.call(this,b,d,f,h,e);f.inside&&b.contrastColor&&d.css({color:b.contrastColor})})});\nQ(A,\"modules/overlapping-datalabels.src.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.addEvent,q=f.fireEvent,M=f.isArray,K=f.objectEach,J=f.pick;d=d.Chart;A(d,\"render\",function(){var d=[];(this.labelCollectors||[]).forEach(function(f){d=d.concat(f())});(this.yAxis||[]).forEach(function(f){f.stacking&&f.options.stackLabels&&!f.options.stackLabels.allowOverlap&&K(f.stacking.stacks,function(f){K(f,function(f){d.push(f.label)})})});(this.series||[]).forEach(function(f){var q=\nf.options.dataLabels;f.visible&&(!1!==q.enabled||f._hasPointLabels)&&(f.nodes||f.points).forEach(function(f){f.visible&&(M(f.dataLabels)?f.dataLabels:f.dataLabel?[f.dataLabel]:[]).forEach(function(q){var x=q.options;q.labelrank=J(x.labelrank,f.labelrank,f.shapeArgs&&f.shapeArgs.height);x.allowOverlap||d.push(q)})})});this.hideOverlappingLabels(d)});d.prototype.hideOverlappingLabels=function(d){var f=this,A=d.length,E=f.renderer,C,D,w,n=!1;var t=function(b){var d,f=b.box?0:b.padding||0,h=d=0,e;if(b&&\n(!b.alignAttr||b.placed)){var m=b.alignAttr||{x:b.attr(\"x\"),y:b.attr(\"y\")};var l=b.parentGroup;b.width||(d=b.getBBox(),b.width=d.width,b.height=d.height,d=E.fontMetrics(null,b.element).h);var n=b.width-2*f;(e={left:\"0\",center:\"0.5\",right:\"1\"}[b.alignValue])?h=+e*n:Math.round(b.x)!==b.translateX&&(h=b.x-b.translateX);return{x:m.x+(l.translateX||0)+f-h,y:m.y+(l.translateY||0)+f-d,width:b.width-2*f,height:b.height-2*f}}};for(D=0;D<A;D++)if(C=d[D])C.oldOpacity=C.opacity,C.newOpacity=1,C.absoluteBox=t(C);\nd.sort(function(b,d){return(d.labelrank||0)-(b.labelrank||0)});for(D=0;D<A;D++){var J=(t=d[D])&&t.absoluteBox;for(C=D+1;C<A;++C){var m=(w=d[C])&&w.absoluteBox;!J||!m||t===w||0===t.newOpacity||0===w.newOpacity||m.x>J.x+J.width||m.x+m.width<J.x||m.y>J.y+J.height||m.y+m.height<J.y||((t.labelrank<w.labelrank?t:w).newOpacity=0)}}d.forEach(function(b){if(b){var d=b.newOpacity;b.oldOpacity!==d&&(b.alignAttr&&b.placed?(b[d?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),n=!0,b.alignAttr.opacity=\nd,b[b.isOld?\"animate\":\"attr\"](b.alignAttr,null,function(){f.styledMode||b.css({pointerEvents:d?\"auto\":\"none\"});b.visibility=d?\"inherit\":\"hidden\";b.placed=!!d}),q(f,\"afterHideOverlappingLabel\")):b.attr({opacity:d}));b.isOld=!0}});n&&q(f,\"afterHideAllOverlappingLabels\")}});Q(A,\"parts/Interaction.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=q.addEvent,K=q.createElement,J=q.css,L=q.defined,x=q.extend,F=q.fireEvent,H=q.isArray,C=q.isFunction,\nD=q.isNumber,w=q.isObject,n=q.merge,t=q.objectEach,N=q.pick;q=d.Chart;var m=d.defaultOptions,b=d.defaultPlotOptions,g=d.hasTouch,v=d.Series,h=d.seriesTypes,e=d.svg;var p=d.TrackerMixin={drawTrackerPoint:function(){var b=this,d=b.chart,e=d.pointer,f=function(b){var d=e.getPointFromEvent(b);\"undefined\"!==typeof d&&(e.isDirectTouch=!0,d.onMouseOver(b))},h;b.points.forEach(function(b){h=H(b.dataLabels)?b.dataLabels:b.dataLabel?[b.dataLabel]:[];b.graphic&&(b.graphic.element.point=b);h.forEach(function(d){d.div?\nd.div.point=b:d.element.point=b})});b._hasTracking||(b.trackerGroups.forEach(function(l){if(b[l]){b[l].addClass(\"highcharts-tracker\").on(\"mouseover\",f).on(\"mouseout\",function(b){e.onTrackerMouseOut(b)});if(g)b[l].on(\"touchstart\",f);!d.styledMode&&b.options.cursor&&b[l].css(J).css({cursor:b.options.cursor})}}),b._hasTracking=!0);F(this,\"afterDrawTracker\")},drawTrackerGraph:function(){var b=this,d=b.options,f=d.trackByArea,h=[].concat(f?b.areaPath:b.graphPath),m=b.chart,n=m.pointer,p=m.renderer,q=m.options.tooltip.snap,\nc=b.tracker,a=function(a){if(m.hoverSeries!==b)b.onMouseOver()},k=\"rgba(192,192,192,\"+(e?.0001:.002)+\")\";c?c.attr({d:h}):b.graph&&(b.tracker=p.path(h).attr({visibility:b.visible?\"visible\":\"hidden\",zIndex:2}).addClass(f?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(b.group),m.styledMode||b.tracker.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:k,fill:f?k:\"none\",\"stroke-width\":b.graph.strokeWidth()+(f?0:2*q)}),[b.tracker,b.markerGroup].forEach(function(c){c.addClass(\"highcharts-tracker\").on(\"mouseover\",\na).on(\"mouseout\",function(a){n.onTrackerMouseOut(a)});d.cursor&&!m.styledMode&&c.css({cursor:d.cursor});if(g)c.on(\"touchstart\",a)}));F(this,\"afterDrawTracker\")}};h.column&&(h.column.prototype.drawTracker=p.drawTrackerPoint);h.pie&&(h.pie.prototype.drawTracker=p.drawTrackerPoint);h.scatter&&(h.scatter.prototype.drawTracker=p.drawTrackerPoint);x(f.prototype,{setItemEvents:function(b,d,e){var f=this,g=f.chart.renderer.boxWrapper,l=b instanceof A,h=\"highcharts-legend-\"+(l?\"point\":\"series\")+\"-active\",\nm=f.chart.styledMode;(e?[d,b.legendSymbol]:[b.legendGroup]).forEach(function(c){if(c)c.on(\"mouseover\",function(){b.visible&&f.allItems.forEach(function(a){b!==a&&a.setState(\"inactive\",!l)});b.setState(\"hover\");b.visible&&g.addClass(h);m||d.css(f.options.itemHoverStyle)}).on(\"mouseout\",function(){f.chart.styledMode||d.css(n(b.visible?f.itemStyle:f.itemHiddenStyle));f.allItems.forEach(function(a){b!==a&&a.setState(\"\",!l)});g.removeClass(h);b.setState()}).on(\"click\",function(a){var c=function(){b.setVisible&&\nb.setVisible();f.allItems.forEach(function(a){b!==a&&a.setState(b.visible?\"inactive\":\"\",!l)})};g.removeClass(h);a={browserEvent:a};b.firePointEvent?b.firePointEvent(\"legendItemClick\",a,c):F(b,\"legendItemClick\",a,c)})})},createCheckboxForItem:function(b){b.checkbox=K(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:b.selected,defaultChecked:b.selected},this.options.itemCheckboxStyle,this.chart.container);E(b.checkbox,\"click\",function(d){F(b.series||b,\"checkboxClick\",{checked:d.target.checked,\nitem:b},function(){b.select()})})}});x(q.prototype,{showResetZoom:function(){function b(){d.zoomOut()}var d=this,e=m.lang,f=d.options.chart.resetZoomButton,g=f.theme,h=g.states,n=\"chart\"===f.relativeTo||\"spaceBox\"===f.relativeTo?null:\"plotBox\";F(this,\"beforeShowResetZoom\",null,function(){d.resetZoomButton=d.renderer.button(e.resetZoom,null,null,b,g,h&&h.hover).attr({align:f.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(f.position,!1,n)});F(this,\"afterShowResetZoom\")},\nzoomOut:function(){F(this,\"selection\",{resetSelection:!0},this.zoom)},zoom:function(b){var d=this,e,f=d.pointer,g=!1,l=d.inverted?f.mouseDownX:f.mouseDownY;!b||b.resetSelection?(d.axes.forEach(function(b){e=b.zoom()}),f.initiated=!1):b.xAxis.concat(b.yAxis).forEach(function(b){var c=b.axis,a=d.inverted?c.left:c.top,k=d.inverted?a+c.width:a+c.height,h=c.isXAxis,m=!1;if(!h&&l>=a&&l<=k||h||!L(l))m=!0;f[h?\"zoomX\":\"zoomY\"]&&m&&(e=c.zoom(b.min,b.max),c.displayBtn&&(g=!0))});var h=d.resetZoomButton;g&&!h?\nd.showResetZoom():!g&&w(h)&&(d.resetZoomButton=h.destroy());e&&d.redraw(N(d.options.chart.animation,b&&b.animation,100>d.pointCount))},pan:function(b,e){var f=this,g=f.hoverPoints,l=f.options.chart,h=f.options.mapNavigation&&f.options.mapNavigation.enabled,m;e=\"object\"===typeof e?e:{enabled:e,type:\"x\"};l&&l.panning&&(l.panning=e);var n=e.type;F(this,\"pan\",{originalEvent:b},function(){g&&g.forEach(function(a){a.setState()});var c=[1];\"xy\"===n?c=[1,0]:\"y\"===n&&(c=[0]);c.forEach(function(a){var c=f[a?\n\"xAxis\":\"yAxis\"][0],e=c.options,g=c.horiz,l=b[g?\"chartX\":\"chartY\"];g=g?\"mouseDownX\":\"mouseDownY\";var p=f[g],q=(c.pointRange||0)/2,u=c.reversed&&!f.inverted||!c.reversed&&f.inverted?-1:1,t=c.getExtremes(),v=c.toValue(p-l,!0)+q*u;u=c.toValue(p+c.len-l,!0)-q*u;var w=u<v;p=w?u:v;v=w?v:u;var y=c.hasVerticalPanning(),x=c.panningState;c.series.forEach(function(b){if(y&&!a&&(!x||x.isDirty)){var c=b.getProcessedData(!0);b=b.getExtremes(c.yData,!0);x||(x={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE});\nD(b.dataMin)&&D(b.dataMax)&&(x.startMin=Math.min(b.dataMin,x.startMin),x.startMax=Math.max(b.dataMax,x.startMax))}});u=Math.min(d.pick(null===x||void 0===x?void 0:x.startMin,t.dataMin),q?t.min:c.toValue(c.toPixels(t.min)-c.minPixelPadding));q=Math.max(d.pick(null===x||void 0===x?void 0:x.startMax,t.dataMax),q?t.max:c.toValue(c.toPixels(t.max)+c.minPixelPadding));c.panningState=x;if(!e.ordinal){e=u-p;0<e&&(v+=e,p=u);e=v-q;0<e&&(v=q,p-=e);if(c.series.length&&p!==t.min&&v!==t.max&&a||x&&p>=u&&v<=q)c.setExtremes(p,\nv,!1,!1,{trigger:\"pan\"}),f.resetZoomButton||h||!n.match(\"y\")||(f.showResetZoom(),c.displayBtn=!1),m=!0;f[g]=l}});m&&f.redraw(!1);J(f.container,{cursor:\"move\"})})}});x(A.prototype,{select:function(b,d){var e=this,f=e.series,g=f.chart;this.selectedStaging=b=N(b,!e.selected);e.firePointEvent(b?\"select\":\"unselect\",{accumulate:d},function(){e.selected=e.options.selected=b;f.options.data[f.data.indexOf(e)]=e.options;e.setState(b&&\"select\");d||g.getSelectedPoints().forEach(function(b){var d=b.series;b.selected&&\nb!==e&&(b.selected=b.options.selected=!1,d.options.data[d.data.indexOf(b)]=b.options,b.setState(g.hoverPoints&&d.options.inactiveOtherPoints?\"inactive\":\"\"),b.firePointEvent(\"unselect\"))})});delete this.selectedStaging},onMouseOver:function(b){var d=this.series.chart,e=d.pointer;b=b?e.normalize(b):e.getChartCoordinatesFromPoint(this,d.inverted);e.runPointActions(b,this)},onMouseOut:function(){var b=this.series.chart;this.firePointEvent(\"mouseOut\");this.series.options.inactiveOtherPoints||(b.hoverPoints||\n[]).forEach(function(b){b.setState()});b.hoverPoints=b.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var b=this,d=n(b.series.options.point,b.options).events;b.events=d;t(d,function(d,e){C(d)&&E(b,e,d)});this.hasImportedEvents=!0}},setState:function(d,e){var f=this.series,g=this.state,l=f.options.states[d||\"normal\"]||{},h=b[f.type].marker&&f.options.marker,m=h&&!1===h.enabled,n=h&&h.states&&h.states[d||\"normal\"]||{},c=!1===n.enabled,a=f.stateMarkerGraphic,k=this.marker||{},p=\nf.chart,q=f.halo,t,v=h&&f.markerAttribs;d=d||\"\";if(!(d===this.state&&!e||this.selected&&\"select\"!==d||!1===l.enabled||d&&(c||m&&!1===n.enabled)||d&&k.states&&k.states[d]&&!1===k.states[d].enabled)){this.state=d;v&&(t=f.markerAttribs(this,d));if(this.graphic){g&&this.graphic.removeClass(\"highcharts-point-\"+g);d&&this.graphic.addClass(\"highcharts-point-\"+d);if(!p.styledMode){var w=f.pointAttribs(this,d);var A=N(p.options.chart.animation,l.animation);f.options.inactiveOtherPoints&&w.opacity&&((this.dataLabels||\n[]).forEach(function(a){a&&a.animate({opacity:w.opacity},A)}),this.connector&&this.connector.animate({opacity:w.opacity},A));this.graphic.animate(w,A)}t&&this.graphic.animate(t,N(p.options.chart.animation,n.animation,h.animation));a&&a.hide()}else{if(d&&n){g=k.symbol||f.symbol;a&&a.currentSymbol!==g&&(a=a.destroy());if(t)if(a)a[e?\"animate\":\"attr\"]({x:t.x,y:t.y});else g&&(f.stateMarkerGraphic=a=p.renderer.symbol(g,t.x,t.y,t.width,t.height).add(f.markerGroup),a.currentSymbol=g);!p.styledMode&&a&&a.attr(f.pointAttribs(this,\nd))}a&&(a[d&&this.isInside?\"show\":\"hide\"](),a.element.point=this)}d=l.halo;l=(a=this.graphic||a)&&a.visibility||\"inherit\";d&&d.size&&a&&\"hidden\"!==l&&!this.isCluster?(q||(f.halo=q=p.renderer.path().add(a.parentGroup)),q.show()[e?\"animate\":\"attr\"]({d:this.haloPath(d.size)}),q.attr({\"class\":\"highcharts-halo highcharts-color-\"+N(this.colorIndex,f.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:l,zIndex:-1}),q.point=this,p.styledMode||q.attr(x({fill:this.color||f.color,\"fill-opacity\":d.opacity},\nd.attributes))):q&&q.point&&q.point.haloPath&&q.animate({d:q.point.haloPath(0)},null,q.hide);F(this,\"afterSetState\")}},haloPath:function(b){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-b,this.plotY-b,2*b,2*b)}});x(v.prototype,{onMouseOver:function(){var b=this.chart,d=b.hoverSeries;b.pointer.setHoverChartIndex();if(d&&d!==this)d.onMouseOut();this.options.events.mouseOver&&F(this,\"mouseOver\");this.setState(\"hover\");b.hoverSeries=this},onMouseOut:function(){var b=this.options,\nd=this.chart,e=d.tooltip,f=d.hoverPoint;d.hoverSeries=null;if(f)f.onMouseOut();this&&b.events.mouseOut&&F(this,\"mouseOut\");!e||this.stickyTracking||e.shared&&!this.noSharedTooltip||e.hide();d.series.forEach(function(b){b.setState(\"\",!0)})},setState:function(b,d){var e=this,f=e.options,g=e.graph,l=f.inactiveOtherPoints,h=f.states,m=f.lineWidth,c=f.opacity,a=N(h[b||\"normal\"]&&h[b||\"normal\"].animation,e.chart.options.chart.animation);f=0;b=b||\"\";if(e.state!==b&&([e.group,e.markerGroup,e.dataLabelsGroup].forEach(function(a){a&&\n(e.state&&a.removeClass(\"highcharts-series-\"+e.state),b&&a.addClass(\"highcharts-series-\"+b))}),e.state=b,!e.chart.styledMode)){if(h[b]&&!1===h[b].enabled)return;b&&(m=h[b].lineWidth||m+(h[b].lineWidthPlus||0),c=N(h[b].opacity,c));if(g&&!g.dashstyle)for(h={\"stroke-width\":m},g.animate(h,a);e[\"zone-graph-\"+f];)e[\"zone-graph-\"+f].attr(h),f+=1;l||[e.group,e.markerGroup,e.dataLabelsGroup,e.labelBySeries].forEach(function(b){b&&b.animate({opacity:c},a)})}d&&l&&e.points&&e.setAllPointsToState(b)},setAllPointsToState:function(b){this.points.forEach(function(d){d.setState&&\nd.setState(b)})},setVisible:function(b,d){var e=this,f=e.chart,g=e.legendItem,h=f.options.chart.ignoreHiddenSeries,l=e.visible;var m=(e.visible=b=e.options.visible=e.userOptions.visible=\"undefined\"===typeof b?!l:b)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(b){if(e[b])e[b][m]()});if(f.hoverSeries===e||(f.hoverPoint&&f.hoverPoint.series)===e)e.onMouseOut();g&&f.legend.colorizeItem(e,b);e.isDirty=!0;e.options.stacking&&f.series.forEach(function(b){b.options.stacking&&\nb.visible&&(b.isDirty=!0)});e.linkedSeries.forEach(function(c){c.setVisible(b,!1)});h&&(f.isDirtyBox=!0);F(e,m);!1!==d&&f.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(b){this.selected=b=this.options.selected=\"undefined\"===typeof b?!this.selected:b;this.checkbox&&(this.checkbox.checked=b);F(this,b?\"select\":\"unselect\")},drawTracker:p.drawTrackerGraph})});Q(A,\"parts/Responsive.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=\nf.find,q=f.isArray,M=f.isObject,K=f.merge,J=f.objectEach,L=f.pick,x=f.splat,F=f.uniqueKey;d=d.Chart;d.prototype.setResponsive=function(d,f){var q=this.options.responsive,w=[],n=this.currentResponsive;!f&&q&&q.rules&&q.rules.forEach(function(d){\"undefined\"===typeof d._id&&(d._id=F());this.matchResponsiveRule(d,w)},this);f=K.apply(0,w.map(function(d){return A(q.rules,function(f){return f._id===d}).chartOptions}));f.isResponsiveOptions=!0;w=w.toString()||void 0;w!==(n&&n.ruleIds)&&(n&&this.update(n.undoOptions,\nd,!0),w?(n=this.currentOptions(f),n.isResponsiveOptions=!0,this.currentResponsive={ruleIds:w,mergedOptions:f,undoOptions:n},this.update(f,d,!0)):this.currentResponsive=void 0)};d.prototype.matchResponsiveRule=function(d,f){var q=d.condition;(q.callback||function(){return this.chartWidth<=L(q.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=L(q.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=L(q.minWidth,0)&&this.chartHeight>=L(q.minHeight,0)}).call(this)&&f.push(d._id)};d.prototype.currentOptions=function(d){function f(d,\nt,w,m){var b;J(d,function(d,n){if(!m&&-1<A.collectionsWithUpdate.indexOf(n))for(d=x(d),w[n]=[],b=0;b<d.length;b++)t[n][b]&&(w[n][b]={},f(d[b],t[n][b],w[n][b],m+1));else M(d)?(w[n]=q(d)?[]:{},f(d,t[n]||{},w[n],m+1)):w[n]=\"undefined\"===typeof t[n]?null:t[n]})}var A=this,w={};f(d,this.options,w,0);return w}});Q(A,\"masters/highcharts.src.js\",[A[\"parts/Globals.js\"]],function(d){return d});A[\"masters/highcharts.src.js\"]._modules=A;return A[\"masters/highcharts.src.js\"]});\n//# sourceMappingURL=highcharts.js.map\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(20);\nvar $export = __webpack_require__(10);\nvar redefine = __webpack_require__(59);\nvar hide = __webpack_require__(11);\nvar Iterators = __webpack_require__(16);\nvar $iterCreate = __webpack_require__(226);\nvar setToStringTag = __webpack_require__(29);\nvar getPrototypeOf = __webpack_require__(230);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(9) && !__webpack_require__(27)(function () {\n return Object.defineProperty(__webpack_require__(36)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(11);\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(7);\nvar dPs = __webpack_require__(227);\nvar enumBugKeys = __webpack_require__(43);\nvar IE_PROTO = __webpack_require__(41)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(36)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(62).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(13);\nvar toIObject = __webpack_require__(17);\nvar arrayIndexOf = __webpack_require__(228)(false);\nvar IE_PROTO = __webpack_require__(41)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(1).document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fullYear = fullYear;\nexports.abbrYear = abbrYear;\nexports.isSameCentury = isSameCentury;\nexports.getQuarter = getQuarter;\nexports.getHalf = getHalf;\nexports.quarterToMonth = quarterToMonth;\nexports.quarterToDate = quarterToDate;\nexports.genericTimeValue = genericTimeValue;\n\nvar _zero = __webpack_require__(31);\n\n/**\n * Transform a partial year value (84) into a full year value (1984)\n * according to a formula agreed upon at WSJ.\n * @param {number|string} value\n * @returns {number}\n */\n\nfunction fullYear(value) {\n value = +value;\n if (value < 100) {\n if (value + 2000 > new Date().getUTCFullYear() + 15) {\n value += 1900;\n } else {\n value += 2000;\n }\n }\n return value;\n}\n\n/**\n * Transforms a year value into 2-digit number: 1984 to 84.\n * @param {number|string} value\n * @returns {string} of length 2\n */\n/**\n * Bring addZeroes and stripZeroes function directly into dateutils to \n * expose for testing\n */\n\nfunction abbrYear(value) {\n value = (0, _zero.addZeroes)((0, _zero.stripZeroes)(value), 2);\n return value.substr(-2, 2);\n}\n\n/**\n * @param {number|string} year1\n * @param {number|string} year2\n * @returns {boolean} true if y1 and y2 represent years in the same century.\n */\nfunction isSameCentury(year1, year2) {\n var y1 = (0, _zero.addZeroes)(fullYear(year1), 4);\n var y2 = (0, _zero.addZeroes)(fullYear(year2), 4);\n return y1.substr(0, 2) === y2.substr(0, 2);\n}\n\n/**\n * @private\n * @param {string} str\n * @returns {string|undefined} if str is a Quartar (\"2Q\") or else undefined.\n */\nfunction getQuarter(str) {\n if (typeof str === 'string') {\n str = str.toUpperCase();\n return str.indexOf('Q') !== -1 ? str : undefined;\n }\n return undefined;\n}\n\n/**\n * @private\n * @param {string} str\n * @returns {string|undefined} if str is a Half (\"2H\") or else undefined.\n */\nfunction getHalf(str) {\n if (typeof str === 'string') {\n str = str.toUpperCase();\n return str.indexOf('H') !== -1 ? str : undefined;\n }\n return undefined;\n}\n\n/**\n * For a given quarter, returns the index of the month that represents the end\n * of that quarter.\n * @private\n * @param {number} q Index of a quarter, 0 to 3.\n * @returns {number} Index of month, 2, 4, 8, or 11.\n */\nfunction quarterToMonth(q) {\n q = typeof q === 'string' ? q.toUpperCase() : null;\n switch (q) {\n case '1Q':\n return 2;\n case '2Q':\n case '1H':\n return 5;\n case '3Q':\n return 8;\n case '4Q':\n case '2H':\n return 11;\n }\n return undefined;\n}\n\n/**\n * For a given month that represents the end of a quarter, returns the date\n * that represents the end of that quarter.\n * @private\n * @param {number} month Index of a month, 0 to 11.\n * @returns {number} Date of the month, 1 to 31.\n */\nfunction quarterToDate(month) {\n switch (month) {\n case undefined:\n case null:\n return undefined;\n case 1:\n return 28;\n case 3:\n case 5:\n case 8:\n case 10:\n return 30;\n default:\n return 31;\n }\n}\n\n/**\n * For use with removeExtraneous().\n * @private\n * @param {string} prop 'second', 'minute', etc.\n * @returns {number} in milliseconds\n */\nfunction genericTimeValue(prop) {\n switch (prop) {\n case 'second':\n return 1000 * 60;\n case 'minute':\n return 1000 * 60 * 60;\n case 'hour':\n return 1000 * 60 * 60 * 60;\n case 'date':\n return 1000 * 60 * 60 * 24;\n }\n return 0;\n}\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filterOptionsForSize;\nexports.getSize = getSize;\n\n/**\n * Options passed to the renderer include options for multiple sizes. This\n * function narrows down all those options to those relevant to the current\n * size only.\n */\nfunction filterOptionsForSize(options) {\n var size = getSize(options);\n var sizeObj = options.sizes[size.id];\n if (!options.headings) options.headings = sizeObj.headings;\n options.interactive = size.interactive;\n options.target = size.target;\n options.size = size.id;\n options.height = options.useContainerSize ? options.height : sizeObj.height || size.height;\n options.stacking = sizeObj.stacking;\n options.axes = sizeObj.axes;\n options.xAxis = sizeObj.xAxis;\n options.yAxis = sizeObj.yAxis;\n options.tooltips = sizeObj.tooltips.sameAsAxes ? sizeObj.axes.units : sizeObj.tooltips;\n return options;\n}\n\nfunction getSize(options) {\n var index = indexOfSize(options);\n if (index !== -1) {\n return options.defaults.sizes[index];\n }\n options.defaults.sizes.sort(function (a, b) {\n if (a.hasOwnProperty('minWidth') && b.hasOwnProperty('minWidth')) {\n return a.minWidth - b.minWidth;\n }\n return 1;\n });\n var size = options.defaults.sizes[0];\n options.defaults.sizes.forEach(function (item, index) {\n if (item.hasOwnProperty('minWidth') && Math.ceil(options.width) >= item.minWidth) {\n size = options.defaults.sizes[index];\n }\n });\n return size;\n}\n\nfunction indexOfSize(options) {\n if (options.size) {\n for (var i = 0; i < options.defaults.sizes.length; i++) {\n if (options.size === options.defaults.sizes[i].id) {\n return i;\n }\n }\n }\n return -1;\n}\n\n// set alignment\nfunction writeAnnotations(annotations) {\n annotations.items.forEach(function (item) {\n item.textAlign = item.textAlign || annotations.textAlign || 'left';\n item.flushAlign = item.flushAlign || annotations.flushAlign || 'flush';\n item.lineEnd = item.lineEnd || 'dot';\n });\n return annotations;\n}\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(7);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(16);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانÙÙŠ',\n 'ÙÙŠÙري',\n 'مارس',\n 'Ø£Ùريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay: '[dünÉ™n] LT',\n lastWeek: '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s É™vvÉ™l',\n s: 'birneçə saniyÉ™',\n ss: '%d saniyÉ™',\n m: 'bir dÉ™qiqÉ™',\n mm: '%d dÉ™qiqÉ™',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM: function (input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'меÑÑц_меÑÑцы_меÑÑцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split(\n '_'\n ),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split(\n '_'\n ),\n },\n monthsShort: 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split(\n '_'\n ),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function () {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі Ñекунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM: function (input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-Ñ–'\n : number + '-Ñ‹';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'Ñну_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[МиналиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'преди %s',\n s: 'нÑколко Ñекунди',\n ss: '%d Ñекунди',\n m: 'минута',\n mm: '%d минути',\n h: 'чаÑ',\n hh: '%d чаÑа',\n d: 'ден',\n dd: '%d дена',\n M: 'меÑец',\n MM: '%d меÑеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays: 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lÉ›rÉ›] LT',\n nextDay: '[Sini lÉ›rÉ›] LT',\n nextWeek: 'dddd [don lÉ›rÉ›] LT',\n lastDay: '[Kunu lÉ›rÉ›] LT',\n lastWeek: 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kÉ”nÉ”',\n past: 'a bÉ› %s bÉ”',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lÉ›rÉ› kelen',\n hh: 'lÉ›rÉ› %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': 'à§',\n '8': '৮',\n '9': '৯',\n '0': '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split(\n '_'\n ),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[à½à¼‹à½¦à½„] LT',\n lastWeek: '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སà¾à½¢à¼‹à½†à¼',\n m: 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm: '%d སà¾à½¢à¼‹à½˜',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bÅ™e/i,\n /^dub/i,\n /^kvÄ›/i,\n /^(Ävn|Äerven$|Äervna)/i,\n /^(Ävc|Äervenec|Äervence)/i,\n /^srp/i,\n /^zář/i,\n /^Å™Ãj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅ™edu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅ™edu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅ™ed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /Ñехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каÑлла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр Ñехет',\n hh: '%d Ñехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'pÃ¥ dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'fÃ¥ sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'et Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©',\n 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©',\n 'Þ‰Þ§ÞƒÞ¨Þ—Þª',\n 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª',\n 'Þ‰Þ',\n 'Þ–Þ«Þ‚Þ°',\n 'Þ–ÞªÞÞ¦Þ‡Þ¨',\n 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª',\n 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª',\n 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'Þ€Þ¯Þ‰Þ¦',\n 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦',\n 'Þ„ÞªÞ‹Þ¦',\n 'Þ„ÞªÞƒÞ§Þްފަތި',\n 'Þ€ÞªÞ†ÞªÞƒÞª',\n 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM: function (input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar: {\n sameDay: '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay: '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past: 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s: 'Þިކުންތުކޮޅެއް',\n ss: 'd% Þިކުންތު',\n m: 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm: 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d: 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd: 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M: 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM: 'Þ‰Þ¦ÞÞ° %d',\n y: 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy: 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split(\n '_'\n ),\n monthsGenitiveEl: 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays: 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[ΣήμεÏα {}] LT',\n nextDay: '[ΑÏÏιο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s Ï€Ïιν',\n s: 'λίγα δευτεÏόλεπτα',\n ss: '%d δευτεÏόλεπτα',\n m: 'Îνα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ÏŽÏα',\n hh: '%d ÏŽÏες',\n d: 'μία μÎÏα',\n dd: '%d μÎÏες',\n M: 'Îνας μήνας',\n MM: '%d μήνες',\n y: 'Îνας χÏόνος',\n yy: '%d χÏόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[HodiaÅ je] LT',\n nextDay: '[MorgaÅ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[HieraÅ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha invalida',\n });\n\n return es;\n\n})));\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Û±',\n '2': 'Û²',\n '3': 'Û³',\n '4': 'Û´',\n '5': 'Ûµ',\n '6': 'Û¶',\n '7': 'Û·',\n '8': 'Û¸',\n '9': 'Û¹',\n '0': 'Û°',\n },\n numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[Ùردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal: '%dÙ…',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[à morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gjár kl.] LT',\n lastWeek: '[sÃðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s sÃðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tÃmi',\n hh: '%d tÃmar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Mà rt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ã’gmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dà mhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Mà rt',\n 'Gibl',\n 'Cèit',\n 'Ã’gmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dà mh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimà irt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-mà ireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['à¤à¤•à¤¾ मिणटान', 'à¤à¤• मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['à¤à¤•à¤¾ वरान', 'à¤à¤• वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['à¤à¤•à¤¾ दिसान', 'à¤à¤• दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['à¤à¤•à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤• मà¥à¤¹à¤¯à¤¨à¥‹'],\n MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥€', number + ' मà¥à¤¹à¤¯à¤¨à¥‡'],\n y: ['à¤à¤•à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤• वरà¥à¤¸'],\n yy: [number + ' वरà¥à¤¸à¤¾à¤‚नी', number + ' वरà¥à¤¸à¤¾à¤‚'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¥€à¤²_मे_जून_जà¥à¤²à¤¯_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीचà¥à¤¯à¤¾_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€à¤šà¥à¤¯à¤¾_मारà¥à¤šà¤¾à¤šà¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥€à¤²à¤¾à¤šà¥à¤¯à¤¾_मेयाचà¥à¤¯à¤¾_जूनाचà¥à¤¯à¤¾_जà¥à¤²à¤¯à¤¾à¤šà¥à¤¯à¤¾_ऑगसà¥à¤Ÿà¤¾à¤šà¥à¤¯à¤¾_सपà¥à¤Ÿà¥‡à¤‚बराचà¥à¤¯à¤¾_ऑकà¥à¤Ÿà¥‹à¤¬à¤°à¤¾à¤šà¥à¤¯à¤¾_नोवà¥à¤¹à¥‡à¤‚बराचà¥à¤¯à¤¾_डिसेंबराचà¥à¤¯à¤¾'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š_à¤à¤ªà¥à¤°à¥€._मे_जून_जà¥à¤²._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बà¥à¤§à¤µà¤¾à¤°_बिरेसà¥à¤¤à¤¾à¤°_सà¥à¤•à¥à¤°à¤¾à¤°_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बà¥à¤§._बà¥à¤°à¥‡à¤¸à¥à¤¤._सà¥à¤•à¥à¤°._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बà¥_बà¥à¤°à¥‡_सà¥_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फालà¥à¤¯à¤¾à¤‚] LT',\n nextWeek: '[फà¥à¤¡à¤²à¥‹] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': 'à«©',\n '4': '૪',\n '5': 'à««',\n '6': '૬',\n '7': 'à«',\n '8': 'à«®',\n '9': '૯',\n '0': '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split(\n '_'\n ),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split(\n '_'\n ),\n monthsShort: '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[×”×™×•× ×‘Ö¾]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[×תמול ב־]LT',\n lastWeek: '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: '×œ×¤× ×™ %s',\n s: 'מספר ×©× ×™×•×ª',\n ss: '%d ×©× ×™×•×ª',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n return number + ' שעות';\n },\n d: 'יו×',\n dd: function (number) {\n if (number === 2) {\n return 'יומיי×';\n }\n return number + ' ימי×';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n return number + ' חודשי×';\n },\n y: '×©× ×”',\n yy: function (number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n return number + ' ×©× ×™×';\n },\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var hi = moment.defineLocale('hi', {\n months: 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split(\n '_'\n ),\n monthsShort: 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कà¥à¤› ही कà¥à¤·à¤£',\n ss: '%d सेकंड',\n m: 'à¤à¤• मिनट',\n mm: '%d मिनट',\n h: 'à¤à¤• घंटा',\n hh: '%d घंटे',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महीने',\n MM: '%d महीने',\n y: 'à¤à¤• वरà¥à¤·',\n yy: '%d वरà¥à¤·',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[proÅ¡lu] [nedjelju] [u] LT';\n case 3:\n return '[proÅ¡lu] [srijedu] [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split(\n '_'\n ),\n weekdays: 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split(\n '_'\n ),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split(\n '_'\n ),\n },\n monthsShort: 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays: 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split(\n '_'\n ),\n weekdaysShort: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Õ©.',\n LLL: 'D MMMM YYYY Õ©., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',\n },\n calendar: {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function () {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s Õ°Õ¥Õ¿Õ¸',\n past: '%s Õ¡Õ¼Õ¡Õ»',\n s: 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss: '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m: 'Ö€Õ¸ÕºÕ¥',\n mm: '%d Ö€Õ¸ÕºÕ¥',\n h: 'ÕªÕ¡Õ´',\n hh: '%d ÕªÕ¡Õ´',\n d: 'Ö…Ö€',\n dd: '%d Ö…Ö€',\n M: 'Õ¡Õ´Õ«Õ½',\n MM: '%d Õ¡Õ´Õ«Õ½',\n y: 'Õ¿Õ¡Ö€Õ«',\n yy: '%d Õ¿Õ¡Ö€Õ«',\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function (input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-Ö€Õ¤';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum')\n );\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n return result + 'mÃnútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gær kl.] LT',\n lastWeek: '[sÃðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s sÃðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: 'ã‹¿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: 'å¹³æˆ',\n narrow: 'ã»',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'æ˜å’Œ',\n narrow: 'ã¼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大æ£',\n narrow: 'ã½',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: 'ã¾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元å‰',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(å…ƒ|\\d+)å¹´/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === 'å…ƒ' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥(ddd) HH:mm',\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM: function (input) {\n return input === 'åˆå¾Œ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}æ—¥/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + 'å¹´';\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1æ—¥',\n dd: '%dæ—¥',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1å¹´',\n yy: '%då¹´',\n },\n });\n\n return ja;\n\n})));\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split(\n '_'\n ),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split(\n '_'\n ),\n isFormat: /(წინáƒ|შემდეგ)/,\n },\n weekdaysShort: 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin: 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვáƒáƒš] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინáƒ] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წáƒáƒ›|წუთ|სáƒáƒáƒ—|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss: '%d წáƒáƒ›áƒ˜',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'სáƒáƒáƒ—ი',\n hh: '%d სáƒáƒáƒ—ი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin: 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін Ñағат] LT',\n nextDay: '[Ертең Ñағат] LT',\n nextWeek: 'dddd [Ñағат] LT',\n lastDay: '[Кеше Ñағат] LT',\n lastWeek: '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше Ñекунд',\n ss: '%d Ñекунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір Ñағат',\n hh: '%d Ñағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': 'à³',\n '8': 'à³®',\n '9': '೯',\n '0': '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin: 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದà³] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನà³à²¨à³†] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss: '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m: 'ಒಂದೠನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದೠಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದೠದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದೠತಿಂಗಳà³',\n MM: '%d ತಿಂಗಳà³',\n y: 'ಒಂದೠವರà³à²·',\n yy: '%d ವರà³à²·',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split(\n '_'\n ),\n weekdays: 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYYë…„ MMMM Dì¼',\n LLL: 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYYë…„ MMMM Dì¼',\n lll: 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: 'ë‚´ì¼ LT',\n nextWeek: 'dddd LT',\n lastDay: 'ì–´ì œ LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s ì „',\n s: '몇 ì´ˆ',\n ss: '%dì´ˆ',\n m: '1분',\n mm: '%d분',\n h: 'í•œ 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%dì¼',\n M: 'í•œ 달',\n MM: '%d달',\n y: 'ì¼ ë…„',\n yy: '%dë…„',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n case 'M':\n return number + 'ì›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /ì˜¤ì „|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n },\n });\n\n return ko;\n\n})));\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'Øوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك Ú•Û†Ú˜',\n dd: '%d Ú•Û†Ú˜',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн Ñаат] LT',\n nextDay: '[Ðртең Ñаат] LT',\n nextWeek: 'dddd [Ñаат] LT',\n lastDay: '[КечÑÑ Ñаат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече Ñекунд',\n ss: '%d Ñекунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир Ñаат',\n hh: '%d Ñаат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function (input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'àºàºµàº %s',\n past: '%sຜ່ານມາ',\n s: 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືàºàº™',\n MM: '%d ເດືàºàº™',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundÄ—_sekundžių_sekundes',\n m: 'minutÄ—_minutÄ—s_minutÄ™',\n mm: 'minutÄ—s_minuÄių_minutes',\n h: 'valanda_valandos_valandÄ…',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dienÄ…',\n dd: 'dienos_dienų_dienas',\n M: 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n MM: 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Å iandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[PraÄ—jusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieÅ¡ %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : JÄnis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n m: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n mm: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n h: 'stundas_stundÄm_stunda_stundas'.split('_'),\n hh: 'stundas_stundÄm_stunda_stundas'.split('_'),\n d: 'dienas_dienÄm_diena_dienas'.split('_'),\n dd: 'dienas_dienÄm_diena_dienas'.split('_'),\n M: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n MM: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Å odien pulksten] LT',\n nextDay: '[RÄ«t pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pÄ“c %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag NikaÄ <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedjelje] [u] LT',\n '[proÅ¡log] [ponedjeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srijede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку Ñекунди',\n ss: '%d Ñекунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден чаÑ',\n hh: '%d чаÑа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден меÑец',\n MM: '%d меÑеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin: 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -à´¨àµ',\n LTS: 'A h:mm:ss -à´¨àµ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ',\n },\n calendar: {\n sameDay: '[ഇനàµà´¨àµ] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek: '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s à´•à´´à´¿à´žàµà´žàµ',\n past: '%s à´®àµàµ»à´ªàµ',\n s: 'അൽപ നിമിഷങàµà´™àµ¾',\n ss: '%d സെകàµà´•àµ»à´¡àµ',\n m: 'ഒരൠമിനിറàµà´±àµ',\n mm: '%d മിനിറàµà´±àµ',\n h: 'ഒരൠമണികàµà´•àµ‚ർ',\n hh: '%d മണികàµà´•àµ‚ർ',\n d: 'ഒരൠദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരൠമാസം',\n MM: '%d മാസം',\n y: 'ഒരൠവർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാതàµà´°à´¿' && hour >= 4) ||\n meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' ||\n meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n },\n });\n\n return ml;\n\n})));\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split(\n '_'\n ),\n monthsShort: '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[ИрÑÑ…] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[ӨнгөрÑөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'à¤à¤• मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'à¤à¤• तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'à¤à¤• दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'à¤à¤• महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'à¤à¤• वरà¥à¤·';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¥‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'à¤à¤•à¤¾ मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'à¤à¤•à¤¾ तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'à¤à¤•à¤¾ दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾';\n break;\n case 'MM':\n output = '%d महिनà¥à¤¯à¤¾à¤‚';\n break;\n case 'y':\n output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¤¾à¤‚';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उदà¥à¤¯à¤¾] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी|रातà¥à¤°à¥€/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दà¥à¤ªà¤¾à¤°à¥€' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रातà¥à¤°à¥€'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'Ä¡urnata',\n dd: '%d Ä¡ranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'á',\n '2': 'á‚',\n '3': 'áƒ',\n '4': 'á„',\n '5': 'á…',\n '6': 'á†',\n '7': 'á‡',\n '8': 'áˆ',\n '9': 'á‰',\n '0': 'á€',\n },\n numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split(\n '_'\n ),\n monthsShort: 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek: '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही कà¥à¤·à¤£',\n ss: '%d सेकेणà¥à¤¡',\n m: 'à¤à¤• मिनेट',\n mm: '%d मिनेट',\n h: 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh: '%d घणà¥à¤Ÿà¤¾',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महिना',\n MM: '%d महिना',\n y: 'à¤à¤• बरà¥à¤·',\n yy: '%d बरà¥à¤·',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n M: 'ein mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'eit Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': 'à©©',\n '4': '੪',\n '5': 'à©«',\n '6': '੬',\n '7': 'à©',\n '8': 'à©®',\n '9': '੯',\n '0': '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕà©à¨ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split(\n '_'\n );\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return (\n '(' +\n monthsSubjective[momentToFormat.month()] +\n '|' +\n monthsNominative[momentToFormat.month()] +\n ')'\n );\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W Å›rodÄ™ o] LT';\n\n case 6:\n return '[W sobotÄ™ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ„',\n dd: '%d dni',\n M: 'miesiÄ…c',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n });\n\n return ptBr;\n\n})));\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'чаÑ_чаÑа_чаÑов',\n dd: 'день_днÑ_дней',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^Ñнв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йÑ]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^Ñен/i,\n /^окт/i,\n /^ноÑ/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split(\n '_'\n ),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split(\n '_'\n ),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?] ?dddd/,\n },\n weekdaysShort: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n\n // Выражение, которое ÑоответÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'неÑколько Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'чаÑ',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM: function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'Ùيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءÙ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'Ù‡Úª منٽ',\n mm: '%d منٽ',\n h: 'Ù‡Úª ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'Ù‡Úª Úينهن',\n dd: '%d Úينهن',\n M: 'Ù‡Úª مهينو',\n MM: '%d مهينا',\n y: 'Ù‡Úª سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maÅ‹it %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split(\n '_'\n ),\n weekdays: 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss: 'à¶à¶à·Šà¶´à¶» %d',\n m: 'මිනිà¶à·Šà¶à·”à·€',\n mm: 'මිනිà¶à·Šà¶à·” %d',\n h: 'පà·à¶º',\n hh: 'පà·à¶º %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මà·à·ƒà¶º',\n MM: 'මà·à·ƒ %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal: function (number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM: function (input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert SedovÅ¡ek : https://github.com/sedovsek\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedelje] [u] LT',\n '[proÅ¡log] [ponedeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [Ñреду] [у] LT';\n case 6:\n return '[у] [Ñуботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [Ñреде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [Ñуботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико Ñекунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'меÑец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': 'à¯',\n '8': '௮',\n '9': '௯',\n '0': '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split(\n '_'\n ),\n weekdays: 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இனà¯à®±à¯] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேறà¯à®±à¯] LT',\n lastWeek: '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இலà¯',\n past: '%s à®®à¯à®©à¯',\n s: 'ஒர௠சில விநாடிகளà¯',\n ss: '%d விநாடிகளà¯',\n m: 'ஒர௠நிமிடமà¯',\n mm: '%d நிமிடஙà¯à®•à®³à¯',\n h: 'ஒர௠மணி நேரமà¯',\n hh: '%d மணி நேரமà¯',\n d: 'ஒர௠நாளà¯',\n dd: '%d நாடà¯à®•à®³à¯',\n M: 'ஒர௠மாதமà¯',\n MM: '%d மாதஙà¯à®•à®³à¯',\n y: 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy: '%d ஆணà¯à®Ÿà¯à®•à®³à¯',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal: function (number) {\n return number + 'வதà¯';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split(\n '_'\n ),\n monthsShort: 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin: 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడà±] LT',\n nextDay: '[రేపà±] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నినà±à°¨] LT',\n lastWeek: '[à°—à°¤] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s à°•à±à°°à°¿à°¤à°‚',\n s: 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss: '%d సెకనà±à°²à±',\n m: 'à°’à°• నిమిషం',\n mm: '%d నిమిషాలà±',\n h: 'à°’à°• à°—à°‚à°Ÿ',\n hh: '%d à°—à°‚à°Ÿà°²à±',\n d: 'à°’à°• రోజà±',\n dd: '%d రోజà±à°²à±',\n M: 'à°’à°• నెల',\n MM: '%d నెలలà±',\n y: 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy: '%d సంవతà±à°¸à°°à°¾à°²à±',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}à°µ/,\n ordinal: '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз Ñоати] LT',\n nextDay: '[Пагоҳ Ñоати] LT',\n lastDay: '[Дирӯз Ñоати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'Ñкчанд ÑониÑ',\n m: 'Ñк дақиқа',\n mm: '%d дақиқа',\n h: 'Ñк Ñоат',\n hh: '%d Ñоат',\n d: 'Ñк рӯз',\n dd: '%d рӯз',\n M: 'Ñк моҳ',\n MM: '%d моҳ',\n y: 'Ñк Ñол',\n yy: '%d Ñол',\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sที่à¹à¸¥à¹‰à¸§',\n s: 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดืà¸à¸™',\n MM: '%d เดืà¸à¸™',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à ] LT',\n nextDay: '[demà à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[ieiri à ] LT',\n lastWeek: '[sür el] dddd [lasteu à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n mÃut\", \"'iens mÃut\"],\n mm: [number + ' mÃuts', '' + number + ' mÃuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split(\n '_'\n ),\n monthsShort: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past: 'ⵢⴰⵠ%s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉâµâµ“â´º',\n mm: '%d ⵎⵉâµâµ“â´º',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰâµ',\n M: 'â´°âµ¢oⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔâµ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙâµ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuá¸',\n mm: '%d minuá¸',\n h: 'saÉ›a',\n hh: '%d tassaÉ›in',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js language configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js language configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'міÑÑць_міÑÑці_міÑÑців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split(\n '_'\n ),\n standalone: 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Ñ€.',\n LLL: 'D MMMM YYYY Ñ€., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Ñ€., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'міÑÑць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function (input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'Ùروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعÛ', 'ÛÙتÛ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[Ú©Ù„ بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek: '[گذشتÛ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹÛ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماÛ',\n MM: '%d ماÛ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун Ñоат] LT [да]',\n nextDay: '[Ðртага] LT [да]',\n nextWeek: 'dddd [куни Ñоат] LT [да]',\n lastDay: '[Кеча Ñоат] LT [да]',\n lastWeek: '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурÑат',\n ss: '%d фурÑат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир Ñоат',\n hh: '%d Ñоат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trÆ°á»›c lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tá»›i',\n past: '%s trÆ°á»›c',\n s: 'và i giây',\n ss: '%d giây',\n m: 'má»™t phút',\n mm: '%d phút',\n h: 'má»™t giá»',\n hh: '%d giá»',\n d: 'má»™t ngà y',\n dd: '%d ngà y',\n M: 'má»™t tháng',\n MM: '%d tháng',\n y: 'má»™t năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ã~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ã~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~mÃñ~úté',\n mm: '%d m~Ãñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort: 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin: 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[OÌ€niÌ€ ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ toÌn'bá»] [ni] LT\",\n lastDay: '[AÌ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'niÌ %s',\n past: '%s ká»jaÌ',\n s: 'iÌ€sẹjuÌ aayaÌ die',\n ss: 'aayaÌ %d',\n m: 'iÌ€sẹjuÌ kan',\n mm: 'iÌ€sẹjuÌ %d',\n h: 'waÌkati kan',\n hh: 'waÌkati %d',\n d: 'á»já»Ì kan',\n dd: 'á»já»Ì %d',\n M: 'osuÌ€ kan',\n MM: 'osuÌ€ %d',\n y: 'á»duÌn kan',\n yy: 'á»duÌn %d',\n },\n dayOfMonthOrdinalParse: /á»já»Ì\\s\\d{1,2}/,\n ordinal: 'á»já»Ì %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL: 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%såŽ',\n past: '%så‰',\n s: 'å‡ ç§’',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 å°æ—¶',\n hh: '%d å°æ—¶',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上åˆ';\n } else if (hm === 1200) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhHk;\n\n})));\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%så…§',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhMo;\n\n})));\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhTw;\n\n})));\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = processCategories;\nexports.createLongCategories = createLongCategories;\nexports.formatQText = formatQText;\n\nvar _constants = __webpack_require__(3);\n\nvar _datetime = __webpack_require__(30);\n\nvar _datetime2 = _interopRequireDefault(_datetime);\n\nvar _zero = __webpack_require__(31);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Processes and builds the chart categories.\n */\nfunction processCategories(options) {\n if (Array.isArray(options.categories)) {\n options.maxDataLength = getMaxDataLength(options);\n options.originalCategories = options.categories.slice();\n if (options.categoriesAreDates) {\n return formatAsDates(options);\n } else {\n return formatAsCategories(options);\n }\n } else {\n options = writeDefaultCategories(options);\n }\n return options;\n}\n\nfunction getMaxDataLength(options) {\n var maxLen = 0;\n options.series.forEach(function (series) {\n maxLen = Math.max(maxLen, series.data.length);\n });\n return maxLen;\n}\n\n// Makes the index of each row into a default category value.\nfunction writeDefaultCategories(options) {\n options.categories = [[]];\n for (var i = 0; i < options.maxDataLength; i++) {\n options.categories[0][i] = i;\n }\n options.originalCategories = options.categories[0].slice();\n return options;\n}\n\n// Returns the categories as is, but wrapped in an array as the axes module needs.\nfunction formatAsCategories(options) {\n options.longCategories = options.originalCategories.slice(0);\n options.categories = [options.categories];\n return options;\n}\n\n// Casts the categories from strings into dates.\nfunction formatAsDates(options) {\n var dates = options.dates;\n\n options.fiscalYears = !!options.datesAll.fiscalYear;\n options.quarterlyResults = _datetime2.default.allQuarterly(dates);\n options.longCategories = createLongCategories(options, dates);\n // if (options.quarterlyResults || options.fiscalYears) {\n // options.longCategories = formatQLong(options);\n // } else {\n // options.longCategories = formatLong(options.dates);\n // }\n options.categories = [options.quarterlyResults ? formatQ(dates) : options.longCategories];\n return options;\n}\n\nfunction createLongCategories(options, dates) {\n var quarterlyResults = options.quarterlyResults,\n fiscalYears = options.fiscalYears;\n\n var action = quarterlyResults || fiscalYears ? formatQLong : formatLong;\n return action(dates);\n}\n\n// For tooltips: standard dates/times.\nfunction formatLong(dates) {\n return dates.map(function (date) {\n var str = formatDateLong(date);\n return formatTimeLong(date, str);\n });\n}\n\nfunction formatDateLong(date) {\n if (date.month !== undefined && date.date && date.year) {\n return [_constants.MONTHS[date.month], date.date + ',', date.year].join(' ');\n } else if (date.month !== undefined && date.date) {\n return [_constants.MONTHS[date.month], date.date].join(' ');\n } else if (date.month !== undefined && date.year) {\n return [_constants.MONTHS[date.month], date.year].join(' ');\n } else if (date.month !== undefined) {\n return _constants.MONTHS[date.month];\n } else if (date.year) {\n return date.year.toString();\n }\n return null;\n}\n\nfunction formatTimeLong(date, str) {\n if (date.hour !== undefined) {\n var h = '';\n var a = '';\n str = str ? str + ' ' : '';\n if (date.a === 'a' || date.a === 'p') {\n h = date.hour % 12 + '';\n h = h === '0' ? '12' : h;\n a = date.a;\n } else {\n if (date.hour === 0) {\n h = '12';\n a = 'a';\n } else if (date.hour === 12) {\n h = '12';\n a = 'p';\n } else if (date.hour > 12) {\n h = date.hour % 12 + '';\n a = 'p';\n } else {\n // same as: if (date.hour < 12) {\n h = date.hour + '';\n a = 'a';\n }\n }\n str += h;\n if (date.minute) {\n str += ':' + (0, _zero.addZeroes)(date.minute, 2);\n }\n if (date.second) {\n str += ':' + (0, _zero.addZeroes)(date.second, 2);\n }\n if (a) {\n str += ' ' + (date.a === 'a' ? 'a.m.' : 'p.m.');\n }\n if (isNoon(str, date)) {\n str = 'noon';\n }\n if (date.z) {\n str += ' ' + date.z;\n }\n }\n return str;\n}\n\nfunction isNoon(str, date) {\n return date.minute === undefined && /^12/.test(str) || date.second === undefined && /^12:00/.test(str) || /^12:00:00/.test(str);\n}\n\n// Returns array of quarterly/half year categories.\nfunction formatQ(dates, long) {\n return dates.map(function (item, index) {\n return formatQText(item, index, long);\n });\n}\n\nfunction formatQText(item, index, long) {\n var str = '';\n str += item.quarter || '';\n str += item.half || '';\n str += item.year !== undefined ? ' ' : '';\n str += (index === 0 || long) && item.fiscalYear ? 'FY' : '';\n str += item.year || '';\n return str;\n}\n\n// For tooltips: quarterly results.\nfunction formatQLong(dates) {\n return formatQ(dates, true);\n}\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, module) {/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33), __webpack_require__(48)(module)))\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _iterator = __webpack_require__(249);\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = __webpack_require__(251);\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = __webpack_require__(61);\nvar hiddenKeys = __webpack_require__(43).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports) {\n\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _defineProperty = __webpack_require__(263);\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBestRule = getBestRule;\nvar TEXT_RULES = {\n thumb: {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false\n }\n};\n\nif (true) {\n TEXT_RULES.E = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true\n };\n TEXT_RULES.D = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true\n };\n TEXT_RULES.G = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true\n };\n TEXT_RULES.top = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true\n };\n TEXT_RULES.soc = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true\n };\n TEXT_RULES.tab = {\n title: false,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES.fon = {\n title: false,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['4u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['8u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['12u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['16u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['appfeed'] = {\n title: false,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true\n };\n TEXT_RULES['video'] = {\n title: true,\n dek: true,\n subdek: false,\n note: false,\n source: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['twitterVideo'] = {\n title: true,\n dek: false,\n subdek: false,\n note: true,\n source: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['preview'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n}\n\nif (false) {\n TEXT_RULES['barrons-4col-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['barrons-8col-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['barrons-10col-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n }, TEXT_RULES['barrons-fullscreen-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['b4u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['barrons-8col-inset'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['barrons-10col-inset'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n }, TEXT_RULES['barrons-fullscreen-inset'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n }, TEXT_RULES['print-barrons'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n}\n\nif (false) {\n TEXT_RULES['fn-small-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['fn-medium-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n TEXT_RULES['fn-large-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['fn4u'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['fn-medium-inset'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['fn-large-inset'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false\n };\n TEXT_RULES['print-fn'] = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false\n };\n}\n\nif (false) {\n TEXT_RULES['marketwatch-ZT'] = {\n title: false,\n dek: false,\n subdek: false,\n legend: false,\n note: false,\n source: false,\n date: false,\n tagline: false\n };\n TEXT_RULES['marketwatch-ZR'] = {\n title: false,\n dek: false,\n subdek: false,\n legend: false,\n note: false,\n source: false,\n date: false,\n tagline: false\n };\n}\nTEXT_RULES['k4u'] = {\n title: true,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n};\n\nfunction getBestRule(id) {\n // If a rule for @param id is found, return it.\n if (TEXT_RULES[id] !== undefined) {\n return TEXT_RULES[id];\n }\n // If a rules that begins with @param id is found, return it. This is useful\n // for example with any id that starts with \"thumb\".\n for (var i = 0, keys = Object.keys(TEXT_RULES); i < keys.length; i++) {\n var key = keys[i];\n if (id.indexOf(key) === 0) {\n return TEXT_RULES[key];\n }\n }\n // Default:\n return {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: 'right'\n };\n}\n\nexports.default = TEXT_RULES;\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.removeEl = removeEl;\n\nvar _element = __webpack_require__(15);\n\nvar element = _interopRequireWildcard(_element);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction removeEl(item) {\n if (item && item.el) {\n element.removeChild(item.el.element);\n item.el = null;\n }\n}\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.preRender = preRender;\nexports.findMilliseconds = findMilliseconds;\n\nvar _element = __webpack_require__(15);\n\nvar _constants = __webpack_require__(3);\n\nvar _processCategories = __webpack_require__(200);\n\nvar _getPoint = __webpack_require__(281);\n\nvar _getPoint2 = _interopRequireDefault(_getPoint);\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nvar _datetime = __webpack_require__(30);\n\nvar _datetime2 = _interopRequireDefault(_datetime);\n\nvar _defs = __webpack_require__(54);\n\nvar _moment = __webpack_require__(0);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar COLOR = '#333';\n\nfunction preRender(data, options) {\n var shapeOptions = getShapeOptions();\n var labelOptions = getLabelOptions(options);\n\n var _createAnnotations = createAnnotations(options),\n _createAnnotations2 = (0, _slicedToArray3.default)(_createAnnotations, 3),\n labels = _createAnnotations2[0],\n shapes = _createAnnotations2[1],\n extraSpace = _createAnnotations2[2];\n\n var visible = options.size !== 'marketwatch-ZT';\n if (visible) addSpacing(data, options, extraSpace);\n data.annotations.push({ labels: labels, labelOptions: labelOptions, shapes: shapes, shapeOptions: shapeOptions, visible: visible });\n}\n\nfunction getShapeOptions() {\n return {\n fill: COLOR,\n stroke: COLOR,\n type: 'circle',\n strokeWidth: 0\n };\n}\n\nfunction getLabelOptions(options) {\n var _options$styles$annot = options.styles.annotations,\n color = _options$styles$annot.color,\n fontSize = _options$styles$annot.fontSize,\n lineHeight = _options$styles$annot.lineHeight,\n fontWeight = _options$styles$annot.fontWeight,\n fontFamily = _options$styles$annot.fontFamily;\n\n return {\n style: { color: color, fontFamily: fontFamily, fontSize: fontSize, fontWeight: fontWeight, lineHeight: lineHeight, cursor: 'default' },\n backgroundColor: 'rgba(0, 0, 0, 0)', // defaults to gray, must be made transparent\n borderWidth: 0, // defaults to a border, which must be removed\n padding: 0, // label sits on top line before y applied\n y: setY(options), // margin above top line\n overflow: 'none', // allow labels rendered outside plot area\n allowOverlap: true // keep highcharts from hiding labels; spacing handled in postrender\n };\n}\n\nfunction isWsjDigital(options) {\n return options.product === 'wsj' && !options.print;\n}\n\nfunction setY(options) {\n // shift labels up 10px when suffix or recession label enabled\n var id = options.id,\n axes = options.axes;\n var units = axes.units,\n showRecessions = axes.showRecessions,\n showUkRecessions = axes.showUkRecessions;\n\n var offset = id === 'video' || id === 'twitterVideo' ? 30 : 0;\n var y = units.suffix.length > 2 || showRecessions || showUkRecessions ? -20 : -10;\n return y - offset;\n}\n\nfunction createAnnotations(options) {\n var labels = [],\n shapes = [];\n var lineHeight = getLineHeight(options);\n var spacing = {};\n var maxHeight = 0;\n\n options.annotations.forEach(function (item) {\n // create label\n var flushAlign = item.flushAlign,\n showLine = item.showLine,\n lineType = item.lineType;\n\n var style = { flushAlign: flushAlign, showLine: showLine, lineType: lineType }; // info needed in postrender\n\n var formattedText = formatText(item, options);\n var text = formattedText.join('<br>');\n\n var _getXY = getXY(item, options),\n _getXY2 = (0, _slicedToArray3.default)(_getXY, 5),\n x = _getXY2[0],\n y = _getXY2[1],\n yAxis = _getXY2[2],\n endPoints = _getXY2[3],\n ms = _getXY2[4];\n\n var label = { point: { x: x, y: 0, xAxis: 0 }, text: text, style: style }; // position at chart top\n\n // create corresponding shape\n var shape = createShape(item, options, x, y, yAxis);\n\n labels.push(label);\n shapes.push(shape);\n\n // extra space needed for tallest annotation\n var offset = options.id === 'video' || options.id === 'twitterVideo' ? 1 : 0;\n var numLines = (lastIdx(formattedText) + offset) * lineHeight;\n maxHeight = Math.max(maxHeight, numLines);\n\n // extra space needed for shape on right or left\n if (item.lineEnd !== 'nothing') {\n findMinMax(options, item, spacing, endPoints, ms);\n }\n });\n var min = spacing.min,\n max = spacing.max;\n\n return [labels, shapes, { top: maxHeight, min: min, max: max }];\n}\n\nfunction getLineHeight(options) {\n var id = options.id,\n print = options.print,\n styles = options.styles,\n product = options.product;\n\n var wsjHeight = id === 'video' || id === 'twitterVideo' ? _constants.ANNOTATIONS_LINEHEIGHT_VIDEO : _constants.ANNOTATIONS_LINEHEIGHT;\n return product === 'wsj' && !print ? wsjHeight : parseFloat(styles.normal.lineHeight);\n}\n\nfunction formatText(item, options) {\n var text = compileText(item, options);\n var textBr = (0, _element.replaceLineBreaks)(text);\n var lines = textBr.split('<br>');\n var wsjDigital = isWsjDigital(options);\n\n var _ref = wsjDigital ? ['<span style=\"font-weight:500\">', '</span>'] : ['<strong>', '</strong>'],\n _ref2 = (0, _slicedToArray3.default)(_ref, 2),\n openTag = _ref2[0],\n closeTag = _ref2[1];\n\n var boldAnnotation = (0, _element.boldText)();\n return lines.map(function (line) {\n return boldAnnotation(line, openTag, closeTag);\n });\n}\n\nfunction compileText(item, options) {\n var text = item.text,\n category = item.category,\n series = item.series,\n value = item.value;\n\n return (text || '').replace(/\\\\{/g, '__LEFT_BRACKET__').replace(/\\\\}/g, '__RIGHT_BRACKET__').replace(_constants.CATEGORY, compiledCategory(category.toString(), options)).replace(_constants.SERIES, series).replace(_constants.VALUE, value).replace(_constants.POINT, compiledPoint(value, options)).replace(/__LEFT_BRACKET__/g, '{').replace(/__RIGHT_BRACKET__/g, '}');\n}\n\nfunction compiledCategory(category, options) {\n return options.categoriesAreDates ? formatDate(category, options) : category;\n}\n\nfunction formatDate(category, options) {\n var value = findValue(category, options);\n var dateObj = options.dates.find(function (date) {\n return date.value === value;\n });\n var formattedCategory = (0, _processCategories.createLongCategories)(options, [dateObj]);\n return formattedCategory[0];\n}\n\nfunction parseDate(category, options) {\n return _datetime2.default.parse([category], options);\n}\n\nfunction compiledPoint(value, options) {\n if (isFinite(value)) {\n var tooltips = options.tooltips,\n type = options.type;\n\n return format.applyFull(value, tooltips, type === 'pie', true, true);\n }\n return 'n/a';\n}\n\nfunction getXY(item, options) {\n var dataIdx = void 0,\n x = void 0;\n var category = item.category,\n seriesName = item.series,\n attachTo = item.attachTo;\n var series = options.series,\n categories = options.categories,\n irregularDates = options.irregularDates;\n\n var _findSeries = findSeries(series, seriesName),\n data = _findSeries.data;\n\n if (data[0].hasOwnProperty('x')) {\n var value = findValue(category, options);\n dataIdx = data.findIndex(function (point) {\n return point.x === value;\n });\n x = value;\n } else {\n dataIdx = findCatIdx(options, categories[0], category);\n x = dataIdx;\n }\n var y = data[dataIdx].y;\n\n var _ref3 = attachTo === 'point' ? [0, y] : [undefined, undefined],\n _ref4 = (0, _slicedToArray3.default)(_ref3, 2),\n yAxis = _ref4[0],\n yValue = _ref4[1];\n\n var first = dataIdx === 0;\n var last = dataIdx === lastIdx(data);\n var ms = void 0;\n if (irregularDates) ms = findMilliseconds(options, data);\n return [x, yValue, yAxis, { first: first, last: last }, ms];\n}\n\nfunction findSeries(series, seriesName) {\n return series.find(function (_ref5) {\n var name = _ref5.name;\n return name.toString() === seriesName.toString();\n });\n}\n\nfunction findValue(category, options) {\n var date = parseDate(category, options);\n return date[0].value;\n}\n\nfunction findCatIdx(options, categories, annotationCategory) {\n return categories.findIndex(function (currentCategory, i) {\n return compareCategory(options, currentCategory, annotationCategory, i);\n });\n}\n\nfunction compareCategory(options, category, annotationCategory, index) {\n return options.quarterlyResults ? checkQuarterly(options, category, annotationCategory, index) : category === annotationCategory;\n}\n\nfunction checkQuarterly(options, category, annotationCategory, index) {\n var date = parseDate(annotationCategory, options);\n var formattedCategory = (0, _processCategories.formatQText)(date[0], index);\n return formattedCategory === category;\n}\n\nfunction getAreaY(options, seriesIdx, dataIdx) {\n // for area charts, need to calculate top y for each section of stack\n var series = options.originalSeries;\n var totalForPercent = series.reduce(function (total, currentSeries) {\n return total + currentSeries[dataIdx].y;\n }, 0);\n var seriesY = 0;\n for (var i = lastIdx(series); i >= seriesIdx; i--) {\n var y = series[i][dataIdx].y;\n\n var height = options.stacking === 'normal' ? y : y / totalForPercent * 100;\n seriesY += height;\n }\n return seriesY;\n}\n\nfunction lastIdx(arr) {\n return arr.length - 1;\n}\n\nfunction findMilliseconds(options, series) {\n // for highstocks charts, calculate how many milliseconds equal shape's radius\n var delta = findDelta(series);\n var pxPerX = options.width / series.length - 1;\n return delta / pxPerX;\n}\n\nfunction findDelta(series) {\n var prevDelta = 0,\n currentDelta = void 0;\n for (var i = 1; i < series.length; i++) {\n currentDelta = series[i].x - series[i - 1].x;\n if (currentDelta === prevDelta) return currentDelta;\n prevDelta = currentDelta;\n }\n}\n\nfunction createShape(item, options, x, y, yAxis) {\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var shape = {};\n var point = { x: x, y: y, xAxis: 0, yAxis: yAxis };\n var print = options.print;\n\n switch (item.lineEnd) {\n case 'circle':\n shape.r = circleR(print);\n shape.strokeWidth = print ? 0.5 : 1;\n shape.fill = 'rgba(0, 0, 0, 0)';\n shape.point = point;\n break;\n case 'arrow':\n // transparent path ending with custom arrow (created in defs)\n shape.type = 'path';\n shape.markerEnd = 'custom-arrow';\n shape.points = [{ x: x, y: 0, xAxis: 0 }, { x: x, y: y, xAxis: 0, yAxis: yAxis }];\n break;\n case 'nothing':\n // transparent shape used for drawing line in postrender\n shape.point = point;\n break;\n default:\n // dot\n shape.r = isVideoGroup ? 9 : dotR(print);\n shape.fill = isVideoGroup ? '#fff' : undefined;\n shape.point = point;\n }\n return shape;\n}\n\nfunction circleR(print) {\n return print ? 4 : 6.5;\n}\n\nfunction dotR(print) {\n return print ? 1.5 : 3;\n}\n\nfunction findMinMax(options, item, spacing, endPoints, ms) {\n var print = options.print,\n irregularDates = options.irregularDates;\n var lineEnd = item.lineEnd;\n\n var r = getRadius(print, lineEnd);\n if (endPoints.first) {\n spacing.min = r;\n } else if (endPoints.last) {\n spacing.max = irregularDates ? ms * (r + 2) : r;\n }\n}\n\nfunction getRadius(print, lineEnd) {\n switch (lineEnd) {\n case 'dot':\n return dotR(print);\n case 'circle':\n return circleR(print);\n case 'arrow':\n return (0, _defs.arrowWidth)(print) / 2;\n }\n}\n\nfunction addSpacing(data, options, extraSpace) {\n data.chart.spacing[0] += extraSpace.top; // for multiline annotations\n // for shapes for 1st or last data point, add sufficient padding\n var padding = setPadding(data, options, extraSpace);\n padding('min', 'max');\n}\n\nfunction setPadding(data, options, extraSpace) {\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args.forEach(function (type) {\n var space = extraSpace[type];\n var xAxis = data.xAxis;\n var irregularDates = options.irregularDates,\n width = options.width;\n\n if (space) {\n irregularDates ? xAxis.overscroll += extraSpace.max || 0 : xAxis[type + 'Padding'] = (space + 5) / width;\n }\n });\n };\n}\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UK_RECESSIONS = exports.RECESSIONS = exports.VIDEO_COLOR_BAND = exports.COLOR_BAND = undefined;\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.preRender = preRender;\nexports.postRender = postRender;\n\nvar _transform = __webpack_require__(18);\n\nvar transform = _interopRequireWildcard(_transform);\n\nvar _util = __webpack_require__(24);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar COLOR_BAND = exports.COLOR_BAND = '#EDEEEF';\nvar VIDEO_COLOR_BAND = exports.VIDEO_COLOR_BAND = '#444444';\nvar COLOR_LABEL_VER = '#666666'; //'rgba(0, 0, 0, 0.2)';\nvar COLOR_LABEL_HOR = '#666666'; //#727272\nvar MARGIN_VER = 8;\nvar MARGIN_HOR = 2;\nvar OFFSET = 0; //-0.38;\n\n// Data from http://www.nber.org/cycles.html\nvar RECESSIONS = exports.RECESSIONS = [{ start: { month: 5, year: 1857 }, end: { month: 11, year: 1858 } }, { start: { month: 9, year: 1860 }, end: { month: 5, year: 1861 } }, { start: { month: 3, year: 1865 }, end: { month: 11, year: 1867 } }, { start: { month: 5, year: 1869 }, end: { month: 11, year: 1870 } }, { start: { month: 9, year: 1873 }, end: { month: 2, year: 1879 } }, { start: { month: 2, year: 1882 }, end: { month: 4, year: 1885 } }, { start: { month: 2, year: 1887 }, end: { month: 3, year: 1888 } }, { start: { month: 6, year: 1890 }, end: { month: 4, year: 1891 } }, { start: { month: 0, year: 1893 }, end: { month: 5, year: 1894 } }, { start: { month: 11, year: 1895 }, end: { month: 5, year: 1897 } }, { start: { month: 5, year: 1899 }, end: { month: 11, year: 1900 } }, { start: { month: 8, year: 1902 }, end: { month: 7, year: 1904 } }, { start: { month: 4, year: 1907 }, end: { month: 5, year: 1908 } }, { start: { month: 0, year: 1910 }, end: { month: 0, year: 1912 } }, { start: { month: 0, year: 1913 }, end: { month: 11, year: 1914 } }, { start: { month: 7, year: 1918 }, end: { month: 2, year: 1919 } }, { start: { month: 0, year: 1920 }, end: { month: 6, year: 1921 } }, { start: { month: 4, year: 1923 }, end: { month: 6, year: 1924 } }, { start: { month: 9, year: 1926 }, end: { month: 10, year: 1927 } }, { start: { month: 7, year: 1929 }, end: { month: 2, year: 1933 } }, { start: { month: 4, year: 1937 }, end: { month: 5, year: 1938 } }, { start: { month: 1, year: 1945 }, end: { month: 9, year: 1945 } }, { start: { month: 10, year: 1948 }, end: { month: 9, year: 1949 } }, { start: { month: 6, year: 1953 }, end: { month: 4, year: 1954 } }, { start: { month: 7, year: 1957 }, end: { month: 3, year: 1958 } }, { start: { month: 3, year: 1960 }, end: { month: 1, year: 1961 } }, { start: { month: 11, year: 1969 }, end: { month: 10, year: 1970 } }, { start: { month: 10, year: 1973 }, end: { month: 2, year: 1975 } }, { start: { month: 0, year: 1980 }, end: { month: 6, year: 1980 } }, { start: { month: 6, year: 1981 }, end: { month: 10, year: 1982 } }, { start: { month: 6, year: 1990 }, end: { month: 2, year: 1991 } }, { start: { month: 2, year: 2001 }, end: { month: 10, year: 2001 } }, { start: { month: 11, year: 2007 }, end: { month: 5, year: 2009 } }, { start: { month: 1, year: 2020 }, end: false }];\n\nvar UK_RECESSIONS = exports.UK_RECESSIONS = [{ start: { month: 4, year: 1956 }, end: { month: 9, year: 1956 } }, { start: { month: 7, year: 1961 }, end: { month: 12, year: 1961 } }, { start: { month: 7, year: 1973 }, end: { month: 3, year: 1974 } }, { start: { month: 4, year: 1975 }, end: { month: 9, year: 1975 } }, { start: { month: 1, year: 1980 }, end: { month: 3, year: 1981 } }, { start: { month: 7, year: 1990 }, end: { month: 9, year: 1991 } }, { start: { month: 4, year: 2008 }, end: { month: 6, year: 2009 } }];\n\n/**\n * Pre Render\n */\nfunction preRender(data, options) {\n if (canShowRecessions(options)) {\n var values = convertDataToValues(options.axes.showRecessions, options.axes.showUkRecessions);\n var dateA = options.dates[0];\n var dateB = options.dates[options.dates.length - 1];\n var axisValueA = new Date(dateA.year, dateA.month || 0).valueOf();\n var axisValueB = new Date(dateB.year, dateB.month || 0, dateB.date || 1).valueOf();\n\n var conditionalColorBand = void 0;\n if (options.product === 'marketwatch') {\n conditionalColorBand = '#eeeff0';\n } else if (options.id === 'video' || options.id === 'twitterVideo') {\n conditionalColorBand = VIDEO_COLOR_BAND;\n } else {\n conditionalColorBand = COLOR_BAND;\n }\n\n var plotBands = values.map(function (v) {\n if (v.start <= axisValueB && v.end >= axisValueA) {\n return {\n from: Math.max(axisValueA, v.start),\n to: Math.min(axisValueB, v.end),\n color: conditionalColorBand,\n className: 'recession'\n };\n }\n return null;\n }).filter(function (item) {\n return item !== null;\n });\n\n if (plotBands.length) {\n if (options.quarterlyResults && options.series[0].data.length <= 44) {\n plotBands = convertDatetimeToLinear(plotBands, options.dates);\n }\n data.xAxis.plotBands = [].concat((0, _toConsumableArray3.default)(data.xAxis.plotBands), (0, _toConsumableArray3.default)(plotBands));\n }\n }\n return data;\n}\n\nfunction canShowRecessions(options) {\n return (options.axes.showRecessions || options.axes.showUkRecessions) && options.dates && options.type !== 'pie' && options.type !== 'bar' && allHaveYears(options.dates);\n}\n\nfunction allHaveYears(dates) {\n return !dates.some(function (date) {\n return date.year === undefined;\n });\n}\n\nfunction convertDataToValues(showRecessions, showUkRecessions) {\n if (showRecessions) return convertDataToValuesHelper(RECESSIONS);\n if (showUkRecessions) return convertDataToValuesHelper(UK_RECESSIONS);\n}\n\nfunction convertDataToValuesHelper(recessionsDates) {\n return recessionsDates.map(function (r) {\n return {\n start: new Date(r.start.year, r.start.month).valueOf(),\n end: r.end ? new Date(r.end.year, r.end.month).valueOf() : new Date().valueOf()\n };\n });\n}\n\n// On datetime axes, values are milliseconds. On linear axes, values are\n// just indices. For quarterly results, the axis is actually linear and just\n// pretends to be datetime, so plotBands must be converted from datetime.\nfunction convertDatetimeToLinear(plotBands, dates) {\n var datesLen = dates.length;\n plotBands.forEach(function (pb) {\n var newFrom = 0;\n var newTo = datesLen - 1;\n dates.forEach(function (date, index) {\n if (pb.from >= date.value) {\n newFrom = index;\n }\n if (pb.to >= date.value) {\n newTo = index;\n }\n });\n newFrom = getLinearPrecise(newFrom, pb.from, dates);\n newTo = getLinearPrecise(newTo, pb.to, dates);\n pb.from = newFrom;\n pb.to = newTo;\n });\n return plotBands;\n}\n\n// For use with convertDatetimeToLinear().\nfunction getLinearPrecise(linear, datetime, dates) {\n if (linear < dates.length - 1) {\n linear += (datetime - dates[linear].value) / (dates[linear + 1].value - dates[linear].value);\n }\n return linear;\n}\n\n/**\n * Post Render\n */\nfunction postRender(highchart, options) {\n var xAxis = highchart.xAxis[0];\n var pb = xAxis.plotLinesAndBands.filter(function (band) {\n return band.options.className === 'recession';\n });\n\n if (pb.length) {\n var pos = null;\n var rtext = null;\n var maxPx = 0;\n\n if (options.type === 'bar') {\n pos = {\n x: highchart.plotLeft + highchart.plotWidth - MARGIN_HOR,\n y: highchart.plotTop + parseFloat(options.styles.small.fontSize)\n };\n rtext = writeRecessionText(highchart, options, pos, COLOR_LABEL_HOR);\n rtext.element.setAttribute('x', +rtext.element.getAttribute('x') - rtext.element.getBoundingClientRect().width);\n maxPx = highchart.plotTop + highchart.plotHeight;\n\n moveRecessionTextHorizontal(pb, rtext.element, maxPx);\n } else {\n if (options.ticksOffsetX) {\n offsetPlotBands(pb, options.ticksOffsetX);\n }\n pos = topYAxisLabelPosition(highchart, options);\n rtext = writeRecessionText(highchart, options, pos, COLOR_LABEL_VER);\n maxPx = highchart.plotLeft + highchart.plotWidth;\n moveRecessionTextVertical(pb, rtext.element, options.ticksOffsetX || 0, maxPx);\n }\n }\n}\n\nfunction offsetPlotBands(plotBands, offsetX) {\n plotBands.forEach(function (pb) {\n transform.write(pb.svgElem.element, 'translate', offsetX);\n });\n}\n\nfunction moveRecessionTextHorizontal(pb, el, maxY) {\n var y = +el.getAttribute('y');\n var origY = y;\n var elHeight = el.getBoundingClientRect().height + MARGIN_HOR;\n for (var i = 0; i < pb.length; i++) {\n if (!pb[i].svgElem) continue;\n var d = transform.read(null, 'd', pb[i].svgElem.d);\n if (d[2][1] - d[1][1] >= elHeight) {\n y = d[2][1] - MARGIN_HOR;\n break;\n } else if (i === pb.length - 1) {\n y = d[1][1] - MARGIN_HOR;\n }\n }\n el.setAttribute('y', Math.max(origY, Math.min(y, maxY - elHeight)));\n}\n\nfunction moveRecessionTextVertical(pb, el, offsetX, maxX) {\n var elWidth = el.getBoundingClientRect().width;\n var x = +el.getAttribute('x');\n for (var i = 0; i < pb.length; i++) {\n if (!pb[i].svgElem) continue;\n var d = transform.read(null, 'd', pb[i].svgElem.d);\n if (d[0][0] >= x) {\n x = d[0][0];\n break;\n } else if (d[2][0] >= x + elWidth) {\n x = d[2][0] - elWidth;\n break;\n }\n }\n x += offsetX;\n el.setAttribute('x', Math.min(x, maxX - elWidth));\n}\n\nfunction writeRecessionText(highchart, options, pos, color) {\n if ((options.product === 'marketwatch' || options.product === 'financialnews') && options.type === 'line') {\n var bandsX = highchart.container.getElementsByClassName('highcharts-plot-bands-0')[0].getBoundingClientRect();\n bandsX = bandsX.left - bandsX.width;\n pos.x = bandsX;\n }\n\n var css = options.styles.get('normal', { color: color });\n\n if (true) {\n if (options.product === 'wsj') {\n css.fontSize = \"13px\";\n css.fontFamily = \"Retina Narrow\";\n\n if (options.print) {\n css.fontSize = \"7.5px\";\n }\n\n if (options.id === 'video') {\n css.fontSize = '32px';\n css.fontFamily = 'Retina Narrow';\n css.fontWeight = 400;\n }\n }\n }\n\n var regex = /[\\u3000-\\u303F]|[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\uFF00-\\uFFEF]|[\\u4E00-\\u9FAF]|[\\u2605-\\u2606]|[\\u2190-\\u2195]|\\u203B/g;\n var recessionLabel = 'RECESSION';\n if (regex.test(options.el.innerHTML)) recessionLabel = '景気後退';\n var text = options.product === 'barrons' ? 'Recessions are shaded' : recessionLabel;\n\n return highchart.renderer.text(text, pos.x, pos.y).css(css).attr('class', 'label-recession').add();\n}\n\n// Finds the Y of the top label on the y-axis in order to align \"recession\"\n// on the same baseline. If units have been set, uses that as a shortcut.\nfunction topYAxisLabelPosition(highchart, options) {\n var pos = { x: 0, y: 0 };\n var textUnits = highchart.container.querySelector('text.units');\n if (textUnits) {\n pos.x = +textUnits.getAttribute('x') + textUnits.getBoundingClientRect().width;\n pos.y = +textUnits.getAttribute('y') - 1;\n } else {\n (0, _util.forAxisTicks)(highchart.yAxis[0], function (tick) {\n if (tick.isLast) {\n pos.x = +tick.label.element.getAttribute('x') + tick.label.element.getBoundingClientRect().width;\n pos.y = +tick.label.element.getAttribute('y');\n return false;\n }\n });\n }\n\n if (true) {\n if (options.product === 'wsj' && options.print) {\n pos.y = pos.y + 1;\n }\n }\n\n pos.x += MARGIN_VER;\n return pos;\n}\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar moment = module.exports = __webpack_require__(282);\nmoment.tz.load(__webpack_require__(283));\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _defineProperty2 = __webpack_require__(206);\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nexports.checkInstrumentType = checkInstrumentType;\nexports.selectProps = selectProps;\nexports.updateProps = updateProps;\nexports.createNewProps = createNewProps;\nexports.getSourceLine = getSourceLine;\nexports.checkIntradayFrequency = checkIntradayFrequency;\nexports.createETMoment = createETMoment;\nexports.lastItem = lastItem;\nexports.getRangeOptions = getRangeOptions;\nexports.getFrequencyOptions = getFrequencyOptions;\nexports.parseDateRange = parseDateRange;\nexports.getFrequencyDefaults = getFrequencyDefaults;\nexports.checkSeriesLength = checkSeriesLength;\nexports.getLastValue = getLastValue;\nexports.parseData = parseData;\nexports.parseDataColumn = parseDataColumn;\n\nvar _momentTimezone = __webpack_require__(211);\n\nvar _momentTimezone2 = _interopRequireDefault(_momentTimezone);\n\nvar _marketdata = __webpack_require__(47);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction checkInstrumentType(tickers, instrumentType) {\n return tickers.some(function (_ref) {\n var type = _ref.type;\n return type === instrumentType;\n });\n}\n\nfunction selectProps(obj, props) {\n return props.reduce(function (newObj, prop) {\n return Object.assign(newObj, (0, _defineProperty3.default)({}, prop, obj[prop]));\n }, {});\n}\n\nfunction updateProps(props, ticker) {\n var newProps = selectProps(props, ['dateRange', 'start', 'end', 'frequency', 'isPercent', 'isRolling']);\n newProps.tickers = [].concat((0, _toConsumableArray3.default)(props.tickers), [ticker]);\n return newProps;\n}\n\nfunction createNewProps(props, isCustom, categories, prop) {\n var start = props.start,\n end = props.end,\n frequency = props.frequency;\n\n var newProps = findStartEnd(isCustom, start, end, categories, frequency);\n\n if (prop !== 'update') newProps[prop] = props[prop];\n\n var hasCrypto = checkCrypto(props, prop);\n if (prop === 'dateRange' || hasCrypto) newProps.frequency = frequency;\n\n return newProps;\n}\n\nfunction getSourceLine(series) {\n var sources = compileSources(series);\n var sourceNames = Object.keys(sources);\n\n return sourceNames.length === 1 ? 'Source: ' + sourceNames[0] : writeMultipleSources(sourceNames, sources);\n}\n\nfunction checkIntradayFrequency(frequency) {\n return frequency.includes('T') && frequency.includes('M') || frequency.includes('H');\n}\n\nfunction createETMoment(date) {\n return _momentTimezone2.default.tz(date, 'America/New_York');\n}\n\nfunction lastItem(arr) {\n return arr[arr.length - 1];\n}\n\nfunction getRangeOptions(chartType) {\n var ranges = Object.keys(_marketdata.RANGE);\n var offset = chartType === 'column' ? 4 : 0;\n return ranges.slice(offset);\n}\n\nfunction getFrequencyOptions(dateRange, startDate, endDate, hasCrypto, currentFrequency, chartType) {\n // populate frequency dropdown with proper options for specified date range\n var isCustom = dateRange === 'Custom';\n if (isCustom) {\n // for custom dates, determine which preset date range is closest in length\n var _map = [startDate, endDate].map(convertDate),\n _map2 = (0, _slicedToArray3.default)(_map, 2),\n unixStart = _map2[0],\n unixEnd = _map2[1];\n\n var timeSpan = unixEnd - unixStart;\n dateRange = getRange(timeSpan);\n }\n var noIntraday = checkCustomIntraday(endDate, isCustom); // for older custom dates, intraday intervals unavailable \n\n var _getFrequencyDefaults = getFrequencyDefaults(dateRange, hasCrypto, chartType, noIntraday),\n start = _getFrequencyDefaults.start,\n end = _getFrequencyDefaults.end,\n defaultFrequency = _getFrequencyDefaults.defaultFrequency;\n\n var frequencyOptions = getOptions(hasCrypto, defaultFrequency, start, end, chartType);\n\n var frequency = getDefaultFrequency(isCustom, frequencyOptions, defaultFrequency, currentFrequency);\n\n return { frequencyOptions: frequencyOptions, defaultFrequency: frequency };\n}\n\nfunction parseDateRange(dateRange) {\n return {\n timePeriodType: dateRange.slice(-1),\n timeValue: +dateRange.slice(0, -1)\n };\n}\n\nfunction getFrequencyDefaults(dateRange, hasCrypto, chartType, noIntraday) {\n var _RANGE$dateRange = _marketdata.RANGE[dateRange],\n start = _RANGE$dateRange.start,\n end = _RANGE$dateRange.end,\n frequency = _RANGE$dateRange.default;\n\n\n var isColumn = chartType === 'column';\n var isIntraday = isFrequencyIntraday(frequency);\n var needsInterday = (noIntraday || isColumn) && isIntraday;\n if (needsInterday) {\n return { start: 'P1D', end: getEnd(end), defaultFrequency: 'P1D' };\n }\n\n var defaultFrequency = hasCrypto && frequency === 'P7D' ? 'P1M' : frequency;\n return { start: start, end: end, defaultFrequency: defaultFrequency };\n}\n\nfunction checkSeriesLength(series) {\n return series && series.length === 1;\n}\n\nfunction getLastValue(data) {\n for (var i = data.length - 1; i >= 0; i--) {\n var value = data[i];\n var y = value.y;\n\n if (y !== null && y !== undefined) {\n return value;\n }\n }\n return null;\n}\n\nfunction parseData(data) {\n return data.map(function (point) {\n return selectProps(point, ['y']);\n });\n}\n\nfunction parseDataColumn(data, prevData) {\n return data.map(function (point, i) {\n if (i > 0) {\n var y = getColumnY(point, data, i);\n var updatedPoint = { y: y };\n if (prevData && prevData[i - 1] && prevData[i - 1].color) {\n updatedPoint.color = prevData[i - 1].color;\n }\n return updatedPoint;\n }\n }).slice(1);\n}\n\n// getFrequencyOptions helper functions\nfunction convertDate(date) {\n return date.format('x');\n}\n\nfunction getRange(timeSpan) {\n var timePeriods = getTimePeriods();\n var current = void 0;\n for (var i = 0; i < timePeriods.length; i++) {\n current = timePeriods[i];\n if (timeSpan < current.milliseconds) {\n var prev = timePeriods[i - 1];\n return i === 0 || checkDate(timeSpan, prev, current) ? current.range : prev.range;\n }\n }\n return current.range;\n}\n\nfunction getTimePeriods() {\n return Object.keys(_marketdata.RANGE).map(createTimeSpanObj).filter(function (_ref2) {\n var milliseconds = _ref2.milliseconds;\n return !isNaN(milliseconds);\n });\n}\n\nfunction createTimeSpanObj(range) {\n var _parseDateRange = parseDateRange(range),\n timePeriodType = _parseDateRange.timePeriodType,\n timeValue = _parseDateRange.timeValue;\n\n var milliseconds = _marketdata.TIMETYPES[timePeriodType] * timeValue;\n return { range: range, milliseconds: milliseconds };\n}\n\nfunction checkDate(timeSpan, prev, current) {\n return timeSpan - prev.milliseconds > current.milliseconds - timeSpan;\n}\n\nfunction checkCustomIntraday(endDate, isCustom) {\n return isCustom && endDate.isBefore((0, _momentTimezone2.default)().subtract(2, 'w'));\n}\n\nfunction getOptions(hasCrypto, defaultFrequency, start, end) {\n return hasCrypto && !isFrequencyIntraday(defaultFrequency) ? getInterdayCryptoOptions() : getDefaultOptions(start, end);\n}\n\nfunction isFrequencyIntraday(code) {\n return code.includes('T');\n}\n\nfunction getInterdayCryptoOptions() {\n return _marketdata.FREQUENCY.filter(function (_ref3) {\n var value = _ref3.value;\n return value !== 'P7D' && !isFrequencyIntraday(value);\n });\n}\n\nfunction getDefaultOptions(start, end) {\n var _map3 = [start, end].map(findFrequencyIndex),\n _map4 = (0, _slicedToArray3.default)(_map3, 2),\n startIdx = _map4[0],\n endIdx = _map4[1];\n\n return _marketdata.FREQUENCY.slice(startIdx, endIdx + 1);\n}\n\nfunction findFrequencyIndex(prop) {\n return _marketdata.FREQUENCY.findIndex(function (_ref4) {\n var value = _ref4.value;\n return value === prop;\n });\n}\n\nfunction getDefaultFrequency(isCustom, frequencyOptions, defaultFrequency, currentFrequency) {\n var validFrequency = frequencyOptions.some(function (_ref5) {\n var value = _ref5.value;\n return value === currentFrequency;\n });\n return isCustom && validFrequency ? currentFrequency : defaultFrequency;\n}\n\n// getFrequencyDefaults helper function\nfunction getEnd(end) {\n return isFrequencyIntraday(end) ? 'P1D' : end;\n}\n\n// createNewProps helper functions\nfunction findStartEnd(isCustom, startProp, endProp, categories, frequency) {\n var _ref6 = isCustom && frequency !== 'P7D' && frequency !== 'P1M' && frequency !== 'P3M' && frequency !== 'P1Y' ? [startProp, endProp] : getDates(categories),\n _ref7 = (0, _slicedToArray3.default)(_ref6, 2),\n start = _ref7[0],\n end = _ref7[1];\n\n return { start: start, end: end };\n}\n\nfunction getDates(categories) {\n return [categories[0], lastItem(categories)].map(formatDate);\n}\n\nfunction formatDate(date) {\n var isIntraday = date.split(' ').length > 1;\n if (isIntraday) date += 'm';\n var format = isIntraday ? 'MM-DD-YYYY h:mm:ss a' : 'MM-DD-YYYY';\n return _momentTimezone2.default.tz(date, format, 'America/New_York').format();\n}\n\nfunction checkCrypto(props, prop) {\n var tickers = props.tickers;\n\n var cryptoAdded = tickers.length && lastItem(tickers).type === 'CryptoCurrency';\n return prop === 'tickers' && cryptoAdded;\n}\n\n// getSourceLine helper functions\nfunction compileSources(series) {\n var sources = {};\n\n series.forEach(function (_ref8) {\n var sourceInfo = _ref8.sourceInfo;\n var type = sourceInfo.type,\n symbol = sourceInfo.symbol,\n source = sourceInfo.source;\n\n\n if (!sources[source]) sources[source] = [];\n var types = sources[source];\n\n if (checkMultiple(series, type, source)) {\n types.push(symbol); // when same ticker type appears under different sources, list symbol\n } else if (!types.includes(type)) {\n types.push(type); // otherwise list type\n }\n });\n\n return sources;\n}\n\nfunction checkMultiple(series, currentType, currentSource) {\n // does same ticker type appear under multiple sources?\n return series.some(function (_ref9) {\n var sourceInfo = _ref9.sourceInfo;\n var type = sourceInfo.type,\n source = sourceInfo.source;\n\n return type === currentType && source !== currentSource;\n });\n}\n\nfunction writeMultipleSources(sourceKeys, sources) {\n return sourceKeys.reduce(function (str, source) {\n return str + writeSource(sources, source);\n }, 'Sources: ').slice(0, -2);\n}\n\nfunction writeSource(sources, source) {\n return source + ' (' + writeList(sources[source]) + '); ';\n}\n\nfunction writeList(listArr) {\n return listArr.reduce(function (str, listItem) {\n return str + (listItem + ', ');\n }, '').slice(0, -2);\n}\n\n// parseDataColumn helper function\nfunction getColumnY(point, data, i) {\n var prevY = data[i - 1].y;\n return (point.y - prevY) / prevY * 100;\n}\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(26);\nvar SPECIES = __webpack_require__(2)('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(21);\nvar invoke = __webpack_require__(300);\nvar html = __webpack_require__(62);\nvar cel = __webpack_require__(36);\nvar global = __webpack_require__(1);\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (__webpack_require__(19)(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(7);\nvar isObject = __webpack_require__(12);\nvar newPromiseCapability = __webpack_require__(55);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(219);\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _datetime = __webpack_require__(30);\n\nvar _datetime2 = _interopRequireDefault(_datetime);\n\nvar _processOptions = __webpack_require__(237);\n\nvar _processOptions2 = _interopRequireDefault(_processOptions);\n\nvar _processSeries = __webpack_require__(50);\n\nvar _preload = __webpack_require__(248);\n\nvar preload = _interopRequireWildcard(_preload);\n\nvar _outer = __webpack_require__(262);\n\nvar OuterChart = _interopRequireWildcard(_outer);\n\nvar _inner = __webpack_require__(269);\n\nvar InnerChart = _interopRequireWildcard(_inner);\n\nvar _element = __webpack_require__(15);\n\nvar element = _interopRequireWildcard(_element);\n\nvar _filterOptionsForSize = __webpack_require__(64);\n\nvar _marketDataHelpers = __webpack_require__(289);\n\nvar _constants = __webpack_require__(3);\n\nvar _marketdata = __webpack_require__(212);\n\nvar _highcharts = __webpack_require__(56);\n\nvar _highcharts2 = _interopRequireDefault(_highcharts);\n\nvar _annotations = __webpack_require__(313);\n\nvar _annotations2 = _interopRequireDefault(_annotations);\n\nvar _exporting = __webpack_require__(314);\n\nvar _exporting2 = _interopRequireDefault(_exporting);\n\nvar _highstock = __webpack_require__(315);\n\nvar _highstock2 = _interopRequireDefault(_highstock);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _annotations2.default)(_highcharts2.default);\n(0, _annotations2.default)(_highstock2.default);\n(0, _exporting2.default)(_highcharts2.default);\n(0, _exporting2.default)(_highstock2.default);\n\n// Store charts so they can be destroyed as needed.\nvar charts = [];\n\n/**\n * Public API functions.\n */\n\nfunction render(options) {\n var uploadFonts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var done = arguments[2];\n\n // for published auto-updating market data charts, fetch the latest data\n var liveMarketData = options.liveMarketData,\n isRolling = options.isRolling,\n skipUpdate = options.skipUpdate;\n\n var mustUpdate = liveMarketData && isRolling && !skipUpdate;\n var renderAction = mustUpdate ? renderRolling : startRender;\n return renderAction(options, done, uploadFonts);\n}\n\nfunction renderRolling(options, done, uploadFonts) {\n var tickers = options.tickers,\n frequency = options.frequency,\n start = options.start,\n end = options.end,\n isPercent = options.isPercent,\n product = options.product,\n dateRange = options.dateRange,\n singleIsPercent = options.singleIsPercent;\n\n var instruments = tickers.map(function (ticker) {\n return ticker.chartingSymbol;\n });\n var isCustom = dateRange === 'Custom';\n var usePercent = tickers.length > 1 && isPercent || tickers.length === 1 && singleIsPercent;\n var cb = createCallback(options, done, usePercent, isCustom, frequency, dateRange, end, uploadFonts);\n (0, _marketDataHelpers.fetchData)(instruments, start, end, frequency, isCustom, dateRange, true, product, cb);\n}\n\nfunction createCallback(options, done, isPercent, isCustom, frequency, dateRange, end, uploadFonts) {\n return function (data) {\n var parseData = (0, _marketDataHelpers.createDataParser)(data, isPercent, isCustom, frequency, dateRange, end);\n var size = (0, _filterOptionsForSize.getSize)(options);\n var sizeObj = options.sizes[size.id];\n var headings = options.headings || sizeObj.headings;\n var barData = [];\n var prevData = options.series[0].data;\n data.forEach(function (series, index) {\n var _parseData = parseData(series, index),\n _parseData2 = (0, _slicedToArray3.default)(_parseData, 3),\n seriesArr = _parseData2[0],\n categories = _parseData2[1],\n date = _parseData2[2];\n\n if (options.type === 'bar') {\n var lastValue = (0, _marketdata.getLastValue)(seriesArr);\n var color = prevData[index].color;\n\n if (color) {\n lastValue.color = color;\n }\n barData.push(lastValue);\n } else {\n var _ref = options.type === 'line' ? [categories, seriesArr] : [categories.slice(1), (0, _marketdata.parseDataColumn)(seriesArr, prevData)],\n _ref2 = (0, _slicedToArray3.default)(_ref, 2),\n updatedCategories = _ref2[0],\n updatedData = _ref2[1];\n\n options.categories = updatedCategories;\n options.series[index].data = updatedData;\n }\n headings.date.text = 'As of ' + date;\n });\n if (options.type === 'bar') {\n options.series[0].data = barData;\n }\n options.annotations.filter(function (annotation) {\n return options.categories.includes(annotation.category);\n });\n startRender(options, done, uploadFonts);\n };\n}\n\nfunction startRender(options, done, uploadFonts) {\n done = typeof done === 'function' ? done : function () {};\n options = options.irregularDates ? (0, _processOptions2.default)(options, _highstock2.default) : (0, _processOptions2.default)(options, _highcharts2.default);\n var invalidated = options.invalidated && options.invalidated[options.size];\n if (!!invalidated) {\n var existChart = getExistChart(options.el).chart;\n if (existChart && existChart.outer && existChart.inner) {\n renderInvalidated(existChart, options, done, uploadFonts);\n return;\n }\n }\n resetRender(options, done, uploadFonts);\n}\n\nfunction resetRender(options, done, uploadFonts) {\n destroy(options.el);\n // console.log(`CHART.${options.id}.fonts.START`);\n if (uploadFonts || options.product !== 'wsj') {\n preload.fonts(options, function () {\n // also need to add a data attribute to element\n // when chart is done loading, for testing purposes\n var doneWithFlag = function doneWithFlag(params) {\n done(params);\n params.container.dataset.rendered = true;\n };\n renderChart(options, doneWithFlag);\n });\n } else {\n renderChart(options, done);\n }\n}\n\n// Instead of re-rendering the entirety of both inner and outer charts, only\n// the invalidate parts of re-rendered.\n// TODO: Create preview/editing views and get this working again.\nfunction renderInvalidated(rendered, options, done, uploadFonts) {\n if (false) {\n var invalidated = options.invalidated[options.size] || [];\n\n var invalidAll = ['chart/targets', 'chart/height', 'chart/annotations',\n // ];\n // const invalidChart = [\n 'chart/data', 'chart/type', 'chart/series-names', 'chart/hide-legend', 'chart/axis', 'chart/legend', 'chart/stacking', 'chart/height', 'chart/colors', 'headings/title'];\n var invalidChart = [];\n\n // Some changes require a full chart re-render while others can force a\n // more limited re-render.\n var mustRender = function mustRender(invalidated, renderItems) {\n return true;\n // return renderItems.some(item => {\n // return invalidated.indexOf(item) !== -1 || invalidated.some(invItem => {\n // return invItem.indexOf(item) === 0;\n // });\n // });\n };\n\n if (mustRender(invalidated, invalidAll)) {\n window.__charts_fonts_loaded__ = undefined;\n resetRender(options, done, uploadFonts);\n return;\n }\n\n // Some items only force a re-render under specific conditions. For example,\n // changes to series name should only trigger a re-render if the legend is\n // enabled since that is the only place where series names appear.\n invalidated = invalidated.filter(function (item) {\n switch (item) {\n case 'chart/series-names':\n return options.legend.enabled;\n default:\n return true;\n }\n });\n\n var outerHeight = rendered.outerInfo.height;\n OuterChart.renderInvalidated(rendered, options, invalidated);\n\n if (outerHeight !== rendered.outerInfo.height || mustRender(invalidated, invalidChart)) {\n // mustRenderColor(invalidated)) {\n destroyInner(rendered.inner);\n setTimeout(function () {\n renderInnerChart(options, rendered, rendered.outerInfo, done);\n }, 1);\n } else {\n InnerChart.renderInvalidated(rendered, options, invalidated);\n done(rendered.inner);\n }\n }\n}\n\n// The outer chart containers headlines and notes.\nfunction renderChart(options, done) {\n if (options.type === 'bar') {\n // options = truncateData(options, options.series);\n }\n var renderObj = { el: options.el, outer: null, inner: null, options: options };\n var chartObj = OuterChart.preRender(options);\n charts.push(renderObj);\n renderObj.outer = renderHighchart(options, chartObj, function (highchart) {\n var outer = OuterChart.postRender(highchart, options);\n renderObj.outerInfo = outer;\n if (outer.innerEl) {\n renderInnerChart(options, renderObj, outer, done);\n } else {\n done(null);\n }\n });\n}\n\n// The inner charts contains the actual chart.\nfunction renderInnerChart(options, renderObj, outer, done) {\n var outerY = outer.y;\n options.width = outer.width;\n var fontSize = parseFloat(options.styles.normal.fontSize);\n if (options.size.indexOf('thumb') !== 0) {\n options.height = outer.height - (options.type === 'pie' || options.size === 'marketwatch-ZT' ? 0 : 16);\n }\n var offset = options.id === 'D' || options.id === 'appfeed' ? 12 : 8;\n options.height += offset;\n options.spacing = createInnerSpacing(options, outer.spacing);\n var chartObj = InnerChart.preRender(options);\n getHighchart(options, chartObj).then(function (highchart) {\n InnerChart.postRender(highchart, options);\n var hc = chartObj.chart.renderTo.querySelector('.highcharts-container');\n if (hc) {\n hc.style.position = 'absolute';\n hc.style.left = outer.x + 'px';\n hc.style.top = outerY + 'px';\n hc.style.overflow = 'visible';\n\n var svg = hc.querySelector('svg');\n svg.setAttribute('x', outer.x);\n svg.setAttribute('y', outerY);\n svg.setAttribute('height', Math.max(0, options.height + fontSize));\n\n if (options.size.indexOf('print') === 0) {\n // This causes tooltip issues, but needs to be done (at the time) for\n // image export and svg download:\n outer.innerEl.appendChild(svg);\n element.removeChild(hc);\n }\n }\n done(highchart);\n });\n}\n\nfunction getMaxTicksDecimals(axis) {\n var maxDecimals = 0;\n forAxisTicks(axis, function (tick, pos) {\n var decimal = tick.label.textStr.split('.')[1];\n if (decimal !== undefined) {\n maxDecimals = Math.max(decimal.length, maxDecimals);\n }\n });\n return maxDecimals;\n}\n\nfunction getHighchart(options, data) {\n return new Promise(function (resolve, reject) {\n return resolve(renderHighchart(options, data));\n });\n}\n\n// async function getHighchart(options, data) {\n// const newChart = await renderHighchart(options, data);\n// return newChart;\n// }\n\nfunction createInnerSpacing(options, spacing) {\n var inner = spacing ? spacing.map(function (n) {\n return n;\n }) : [0, 0, 0, 0];\n var annotations = options.annotations,\n axes = options.axes,\n product = options.product,\n styles = options.styles,\n id = options.id;\n // const { items } = annotations;\n\n var units = axes.units,\n showRecessions = axes.showRecessions,\n showUkRecessions = axes.showUkRecessions;\n\n if (annotations /*items*/ && annotations /*items*/.length && (units.suffix.length > 2 || showRecessions || showUkRecessions)) {\n var isVideoGroup = id === 'video' || id === 'twitterVideo';\n var wsjHeight = isVideoGroup ? _constants.ANNOTATIONS_LINEHEIGHT_VIDEO : _constants.ANNOTATIONS_LINEHEIGHT;\n inner[0] += product === 'wsj' ? wsjHeight : parseFloat(styles.normal.lineHeight);\n inner[0] = Math.max(0, inner[0]);\n }\n return inner;\n}\n\n// Render a Highcharts chart via either the standalone Highcharts adapter or\n// jQuery, depending on the environment.\nfunction renderHighchart(options, data, postRender) {\n if (options.irregularDates) {\n return new _highstock2.default.stockChart(data, postRender);\n } else {\n return new _highcharts2.default.chart(data, postRender);\n }\n}\n\nfunction destroy(el) {\n if (el) {\n var obj = getExistChart(el);\n if (obj.chart) {\n destroyOuter(obj.chart.outer, obj.chart.inner);\n }\n if (obj.index !== -1) {\n charts.splice(obj.index, 1);\n }\n } else {\n // charts.forEach(c => {\n // if (c.el) {\n // destroy(c.el);\n // }\n // });\n while (charts.length) {\n destroy(charts[0].el);\n }\n }\n}\n\nfunction destroyOuter(outer, inner) {\n destroyInner(inner);\n if (outer) {\n try {\n destroyCommon(outer);\n outer.destroy();\n } catch (e) {\n // Highcharts error.... because older version?\n // console.warn(e);\n }\n }\n}\n\nfunction destroyInner(inner) {\n if (inner) {\n try {\n destroyCommon(inner);\n inner.destroy();\n } catch (e) {\n // Usually exception caused by no innerEl !?!\n // console.warn(e);\n }\n }\n}\n\n// The version of Highcharts used at DJ does not do this automatically.\nfunction destroyCommon(chart) {\n if (chart.series) {\n chart.series.forEach(function (s) {\n try {\n s.update({\n enableMouseTracking: false\n });\n } catch (e) {\n //\n }\n });\n }\n}\n\nfunction getExistChart(el) {\n var existChartIndex = chartIndexOf(el);\n return {\n index: existChartIndex,\n chart: existChartIndex !== -1 ? charts[existChartIndex] : null\n };\n}\n\nfunction chartIndexOf(el) {\n for (var i = 0; i < charts.length; i++) {\n if (charts[i].el === el) {\n return i;\n }\n }\n return -1;\n}\n\nexports.default = { render: render, destroy: destroy, datetime: _datetime2.default, chart: getExistChart };\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(221), __esModule: true };\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(25);\n__webpack_require__(23);\nmodule.exports = __webpack_require__(232);\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(223);\nvar step = __webpack_require__(224);\nvar Iterators = __webpack_require__(16);\nvar toIObject = __webpack_require__(17);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(57)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports) {\n\nmodule.exports = function () { /* empty */ };\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(19);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(60);\nvar descriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(29);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(11)(IteratorPrototype, __webpack_require__(2)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(6);\nvar anObject = __webpack_require__(7);\nvar getKeys = __webpack_require__(38);\n\nmodule.exports = __webpack_require__(9) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(17);\nvar toLength = __webpack_require__(39);\nvar toAbsoluteIndex = __webpack_require__(229);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(40);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(13);\nvar toObject = __webpack_require__(44);\nvar IE_PROTO = __webpack_require__(41)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(40);\nvar defined = __webpack_require__(35);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(45);\nvar ITERATOR = __webpack_require__(2)('iterator');\nvar Iterators = __webpack_require__(16);\nmodule.exports = __webpack_require__(5).isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(234), __esModule: true };\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(25);\n__webpack_require__(23);\nmodule.exports = __webpack_require__(235);\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(7);\nvar get = __webpack_require__(46);\nmodule.exports = __webpack_require__(5).getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.normalize = normalize;\nexports.makeFiscalYears = makeFiscalYears;\nexports.removeFiscalYears = removeFiscalYears;\nexports.makeQuarterly = makeQuarterly;\nexports.removeQuarterly = removeQuarterly;\nexports.getQuarter = getQuarter;\nexports.getHalf = getHalf;\n\nvar _dateutils = __webpack_require__(63);\n\n/**\n * For quarterly data, fills in missing quarters, years, etc.\n */\nfunction normalize(items) {\n // Quarters, halves, years must be declared/set in first item of a year.\n var hasQ = items[0].quarter !== undefined;\n var hasH = items[0].half !== undefined;\n var hasY = items[0].year !== undefined;\n var FY = hasY && items[0].fiscalYear;\n\n // Dates are neither quarterly, halves, or fiscal years, so just return.\n if (!(hasQ || hasH || FY)) {\n return items;\n }\n\n var quarter = undefined;\n var half = undefined;\n var year = undefined;\n var currYear = undefined;\n items.forEach(function (item) {\n var prevQ = hasQ ? quarter : hasH ? half : null;\n item.fiscalYear = FY;\n\n if (hasQ) {\n if (!item.quarter) {\n if (item.hasOwnProperty('month')) {\n // - 1 because getQuarter starts months from 0:\n item.quarter = getQuarter(item.month - 1);\n } else {\n quarter += 1;\n quarter %= 4;\n quarter = quarter === 0 ? 4 : quarter;\n item.quarter = quarter + 'Q';\n }\n }\n quarter = +item.quarter.substring(0, 1);\n } else {\n item.quarter = undefined;\n }\n\n if (hasH) {\n if (!item.half) {\n half += 1;\n half %= 2;\n half = half === 0 ? 2 : half;\n item.half = half + 'H';\n }\n half = +item.half.substring(0, 1);\n } else {\n item.half = undefined;\n }\n\n if (hasY) {\n if (item.year === undefined) {\n item.year = year;\n if (hasQ && quarter <= prevQ || hasH && half <= prevQ) {\n item.year += 1;\n }\n }\n item.year = year = (0, _dateutils.fullYear)(item.year);\n\n if (currYear !== year) {\n currYear = year;\n hasQ = item.quarter !== undefined;\n hasH = item.half !== undefined;\n }\n }\n });\n\n return items;\n}\n\n/**\n * Transforms items into a fiscal years by declaring fiscalYear to be true for\n * first item. Assumes normalize() will be called subsequently.\n */\nfunction makeFiscalYears(items) {\n items[0].fiscalYear = items[0].year !== undefined;\n return items;\n}\n\nfunction removeFiscalYears(items) {\n items.forEach(function (item) {\n item.fiscalYear = false;\n });\n return items;\n}\n\nfunction makeQuarterly(items) {\n items.forEach(function (item) {\n if (item.quarter === undefined && item.half === undefined && item.month !== undefined) {\n item.quarter = getQuarter(item.month);\n }\n });\n return makeHalves(items);\n}\n\nfunction makeHalves(items) {\n var isHalf = false;\n var yearBlocks = {};\n\n // Separate dates into blocks of years.\n items.forEach(function (item) {\n if (item.quarter && item.year !== undefined) {\n yearBlocks[item.year] = yearBlocks[item.year] || [];\n if (item.month !== undefined) {\n yearBlocks[item.year].push(item);\n }\n }\n });\n\n // Transform any year blocks with 2 dates 6 months or more apart into halves.\n Object.keys(yearBlocks).forEach(function (key) {\n var block = yearBlocks[key];\n if (block.length === 2) {\n if (block[1].month - block[0].month >= 6) {\n isHalf = true;\n block[0].quarter = block[1].quarter = undefined;\n block[0].half = '1H';\n block[1].half = '2H';\n }\n }\n });\n\n if (isHalf) {\n // Data if halves, not quarters, so convert quarters in years with only\n // one quarter to a half.\n Object.keys(yearBlocks).forEach(function (key) {\n block = yearBlocks[key];\n if (block.length === 1) {\n block[0].quarter = undefined;\n block[0].half = getHalf(block[0].month);\n }\n });\n }\n return items;\n}\n\nfunction removeQuarterly(items) {\n items.forEach(function (item) {\n item.quarter = item.half = undefined;\n });\n return items;\n}\n\n/**\n * Converts a month index to a quarterly string value.\n * @private\n */\nfunction getQuarter(month) {\n if (month < 3) {\n return '1Q';\n } else if (month < 6) {\n return '2Q';\n } else if (month < 9) {\n return '3Q';\n } else {\n return '4Q';\n }\n}\n\n/**\n * Converts a month index to a half year string value.\n * @private\n */\nfunction getHalf(month) {\n return month < 6 ? '1H' : '2H';\n}\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = processOptions;\n\nvar _highchartsVersion = __webpack_require__(238);\n\nvar _highchartsVersion2 = _interopRequireDefault(_highchartsVersion);\n\nvar _filterOptionsForSize = __webpack_require__(64);\n\nvar _filterOptionsForSize2 = _interopRequireDefault(_filterOptionsForSize);\n\nvar _processData = __webpack_require__(239);\n\nvar _processData2 = _interopRequireDefault(_processData);\n\nvar _processCategories = __webpack_require__(200);\n\nvar _processCategories2 = _interopRequireDefault(_processCategories);\n\nvar _processSeries = __webpack_require__(50);\n\nvar _processSeries2 = _interopRequireDefault(_processSeries);\n\nvar _style = __webpack_require__(246);\n\nvar _lodash = __webpack_require__(201);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = __webpack_require__(247);\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction processOptions(options, Highcharts) {\n removeOldProperties(options);\n options = copyOptions(options, Highcharts);\n options = (0, _filterOptionsForSize2.default)(options);\n options = (0, _processData2.default)(options);\n options = (0, _processCategories2.default)(options);\n options.styles = (0, _style.processStyles)(options);\n options = (0, _processSeries2.default)(options);\n options.el = containerElement(options.el);\n //new added propeerties are handled here\n addNewProperties(options);\n return options;\n}\n\nfunction removeOldProperties(options) {\n //if layout is bottom make it default;\n if (options.legend.layout === 'bottom') {\n options.legend.layout = 'default';\n };\n}\n\nfunction copyOptions(options, Highcharts) {\n return (0, _lodash2.default)({}, {\n HIGHCHARTS_VERSION: (0, _highchartsVersion2.default)(Highcharts),\n id: options.el.getAttribute('id') || options.size\n }, options);\n}\n\n// Prepares the container DOM element.\nfunction containerElement(el) {\n el = typeof el === 'string' ? document.querySelector(el) : el;\n if (!el.querySelector('div.dj-chart-container')) {\n var divA = document.createElement('div');\n var divB = document.createElement('div');\n divA.className = 'dj-chart-container';\n divB.className = 'dj-chart-inner';\n el.appendChild(divA);\n el.appendChild(divB);\n }\n return el;\n}\n\nfunction addNewProperties(options) {\n //promo fields\n options.headings.sourcePromo = options.headings.sourcePromo ? options.headings.sourcePromo : { text: options.headings.source.text, enabled: true };\n options.headings.notePromo = options.headings.notePromo ? options.headings.notePromo : { text: options.headings.note.text, enabled: true };\n options.headings.subdekPromo = options.headings.subdekPromo ? options.headings.subdekPromo : { text: options.headings.subdek.text, enabled: true };\n //plot lines\n options.plotLines = options.plotLines ? options.plotLines : [{ plotLineValue: '',\n plotLineDashStyle: 'solid',\n plotLineLabel: '',\n plotLineLabelPosition: 'top right',\n plotLineColor: '' }];\n //allowDecimals yAxis\n options.allowDecimals = options.allowDecimals === undefined ? true : options.allowDecimals;\n}\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = highchartsVersion;\nfunction highchartsVersion() {\n var localHighcharts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n var parts = (localHighcharts || Highcharts).version.split(' ');\n for (var i = 0; i < parts.length; i++) {\n var n = parseFloat(parts[i]);\n if (!isNaN(n)) {\n return n;\n }\n }\n return 0;\n}\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.default = processData;\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nvar _datetime = __webpack_require__(30);\n\nvar _datetime2 = _interopRequireDefault(_datetime);\n\nvar _constants = __webpack_require__(3);\n\nvar _axisIntervals = __webpack_require__(244);\n\nvar _moment = __webpack_require__(0);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _axesCommon = __webpack_require__(49);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Processes and optimizes the chart data before building categories and series.\n */\nfunction processData(options) {\n if (options.categoriesAreDates) {\n options.dates = _datetime2.default.parse(options.categories, options);\n if ((!options.quarterlyResults || options.quarterlyResults && options.series[0].data.length > 44) && options.type !== 'bar') {\n var _options = options,\n fiscalYears = _options.fiscalYears;\n\n var sortedDates = [].concat((0, _toConsumableArray3.default)(options.dates)).sort(function (a, b) {\n return a.value - b.value;\n });\n options.xAxisTicks = {};\n var isArticle = (0, _axesCommon.checkArticle)(options.size, options.product);\n var majorValue = isArticle ? options.majorTicksArticle : options.majorTicksPromo;\n var minorValue = isArticle ? options.minorTicksArticle : options.minorTicksPromo;\n var isDecade = majorValue === 'decade';\n var isHalfDecade = majorValue === 'halfDecade';\n var isCentury = majorValue === 'century';\n var longerThanYear = isDecade || isHalfDecade || isCentury;\n var major = longerThanYear ? 'year' : majorValue;\n var minor = minorValue === 'decade' ? 'year' : minorValue;\n var firstDate = sortedDates[0];\n var lastDate = sortedDates[sortedDates.length - 1];\n var majorTick = firstDate[major];\n var minorTick = firstDate[minor];\n var isFirstLabel = true;\n var interval = _axisIntervals.INTERVALS.find(function (_ref) {\n var name = _ref.name;\n return name === majorValue;\n }).time;\n var tickPerColumn = options.dateSpan / interval >= options.series[0].data.length - 2;\n if (options.type === 'column' && tickPerColumn) {\n sortedDates.forEach(function (date) {\n var label = createLabel(date, majorValue, isFirstLabel, fiscalYears);\n options.xAxisTicks[date.value] = { label: label, type: 'major' };\n isFirstLabel = false;\n });\n } else {\n if (options.liveMarketData) {\n sortedDates.forEach(function (date, i) {\n var needsMajor = date[major] !== majorTick && (!longerThanYear || isDecade && date.year % 10 === 0 || isHalfDecade && date.year % 5 === 0 || isCentury && date.year % 100 === 0);\n var needsMinor = date[minor] !== minorTick && (options.type !== 'column' || isFirstLabel) && (minorValue !== 'decade' || minorValue === 'decade' && date.year % 10 === 0);\n if (needsMajor) {\n majorTick = date[major];\n minorTick = date[minor];\n var label = createLabel(date, majorValue, isFirstLabel, fiscalYears);\n options.xAxisTicks[date.value] = { label: label, type: 'major' };\n isFirstLabel = false;\n } else if (needsMinor) {\n minorTick = date[minor];\n var _label = isFirstLabel ? createLabel(date, minorValue, isFirstLabel, fiscalYears) : '';\n options.xAxisTicks[date.value] = { type: 'minor', label: _label };\n isFirstLabel = false;\n }\n });\n } else {\n var firstTick = void 0;\n var needsMajor = void 0;\n for (var i = 1; i < sortedDates.length; i++) {\n var date = sortedDates[i];\n needsMajor = date[major] !== majorTick && (!longerThanYear || isDecade && date.year % 10 === 0 || isHalfDecade && date.year % 5 === 0 || isCentury && date.year % 100 === 0);\n var needsMinor = date[minor] !== minorTick && (options.type !== 'column' || isFirstLabel) && (minorValue !== 'decade' || minorValue === 'decade' && date.year % 10 === 0);\n if (needsMajor || needsMinor) {\n firstTick = date.value;\n break;\n }\n }\n var tick = _moment2.default.utc(firstTick);\n var lastMoment = _moment2.default.utc(lastDate.value);\n while (tick.isBefore(lastMoment) || tick.isSame(lastMoment)) {\n needsMajor = tick[major]() !== majorTick && (!longerThanYear || isDecade && tick.year() % 10 === 0 || isHalfDecade && tick.year() % 5 === 0 || isCentury && tick.year() % 100 === 0);\n if (needsMajor) {\n var label = createLabel(tick.toObject(), majorValue, isFirstLabel, fiscalYears);\n options.xAxisTicks[tick.valueOf()] = { label: label, type: 'major' };\n majorTick = tick[major]();\n isFirstLabel = false;\n } else if (options.type !== 'column' || isFirstLabel) {\n var _label2 = isFirstLabel ? createLabel(tick.toObject(), minorValue, isFirstLabel, fiscalYears) : '';\n options.xAxisTicks[tick.valueOf()] = { label: _label2, type: 'minor' };\n isFirstLabel = false;\n }\n\n var _getTimeType = getTimeType(minorValue),\n _getTimeType2 = (0, _slicedToArray3.default)(_getTimeType, 2),\n n = _getTimeType2[0],\n timeType = _getTimeType2[1];\n\n tick.add(n, timeType);\n isFirstLabel = false;\n }\n }\n var tickValues = Object.keys(options.xAxisTicks);\n var labeledTicks = tickValues.filter(function (key) {\n return options.xAxisTicks[key].label;\n });\n if (labeledTicks.length === 1) {\n var lastTickValue = Math.max.apply(Math, (0, _toConsumableArray3.default)(tickValues));\n var firstTickValue = Math.min.apply(Math, (0, _toConsumableArray3.default)(tickValues));\n var lastTickDate = _moment2.default.utc(lastTickValue).toObject();\n var firstTickDate = _moment2.default.utc(firstTickValue).toObject();\n options.xAxisTicks[lastTickValue].label = createLabel(lastTickDate, minorValue, false);\n options.xAxisTicks[firstTickValue].label = createLabel(firstTickDate, minorValue, true, fiscalYears);\n } else if (!labeledTicks.length) {\n var _label3 = createLabel(firstDate, minorValue, true, fiscalYears);\n options.xAxisTicks[firstDate.value] = { label: _label3, type: 'minor' };\n }\n }\n }\n\n options.datesAll = _datetime2.default.all(options.dates);\n if ((!options.quarterlyResults || options.quarterlyResults && options.series[0].data.length > 44) && options.type !== 'bar') {\n options.series = insertDates(options.series, options);\n }\n }\n if (options.type === 'pie' && options.optimizeDataOrder) {\n options = optimizePieData(options);\n } else if (options.categoriesAreDates && (!options.quarterlyResults || options.quarterlyResults && options.series[0].data.length > 44)) {\n options = sortDataByDate(options);\n }\n if (options.axes && options.axes.units && options.axes.units.divisor !== \"none\") {\n options = divideYAxisValues(options);\n }\n return options;\n}\n\nfunction getTimeType(minorValue) {\n var timeType = minorValue;\n if (minorValue === 'date') timeType = 'day';\n if (minorValue === 'decade') timeType = 'year';\n var n = minorValue === 'decade' ? 10 : 1;\n return [n, timeType];\n}\n\nfunction createLabel(dateObj, type, isFirst, fiscalYears) {\n var year = dateObj.year || dateObj.years;\n var month = dateObj.month === undefined ? dateObj.months : dateObj.month;\n var date = dateObj.date;\n var hour = dateObj.hour || dateObj.hours;\n var minute = dateObj.minute || dateObj.minutes;\n var shortYear = year.toString().slice(2);\n var yearText = isFirst || shortYear === '00' ? year : '\\'' + shortYear;\n if (isFirst && fiscalYears) yearText = 'FY' + yearText;\n var monthText = _constants.MONTHS[month];\n var quarterText = (month - (date === 1 ? 0 : 2)) / 3 + 1 + 'Q';\n switch (type) {\n case 'year':\n case 'decade':\n case 'halfDecade':\n case 'century':\n return yearText;\n case 'quarter':\n return month === 0 || month === 2 ? quarterText + ' ' + yearText : quarterText;\n case 'month':\n return month === 0 || isFirst ? monthText + ' ' + yearText : monthText;\n case 'date':\n return monthText + ' ' + date;\n case 'hour':\n var ampm = hour >= 12 ? 'p.m.' : 'a.m.';\n var formattedHour = hour === 12 ? 'noon' : hour % 12 + ' ' + ampm;\n return isFirst ? monthText + ' ' + date : formattedHour;\n default:\n return '';\n }\n}\n\n// Insert date values into all data.\nfunction insertDates(data, options) {\n var proxyYears = getProxyYears(options);\n data.forEach(function (series) {\n series.data.forEach(function (item, index) {\n var dateObj = options.dates[index];\n var date = new Date(dateObj.value);\n if (dateObj.year === undefined && proxyYears[index] !== undefined) {\n dateObj.yearIsProxy = true;\n date.setUTCFullYear(proxyYears[index]);\n }\n item.x = date.valueOf();\n });\n });\n return data;\n}\n\n// For data with dates with months but not years, create proxy years so the\n// dates can be sorted correctly.\nfunction getProxyYears(options) {\n var proxyYears = [];\n if (options.datesAll.month && !options.datesAll.year) {\n var year = new Date().getUTCFullYear();\n var month = undefined;\n for (var i = options.dates.length - 1; i >= 0; i--) {\n if (month !== undefined && month <= options.dates[i].month) {\n year -= 1;\n }\n proxyYears[i] = year;\n month = options.dates[i].month;\n }\n }\n return proxyYears;\n}\n\nfunction sortDataByDate(options) {\n options.series.forEach(function (item) {\n item.data.forEach(function (pt, index) {\n pt.index = index;\n });\n if (item.data.every(function (point) {\n return point.x;\n })) {\n item.data.sort(function (a, b) {\n // if (a.x === undefined || b.x === undefined) {\n // return 0;\n // }\n return a.x - b.x;\n });\n }\n // item.data.forEach((pt, index) => {\n // pt.index = index;\n // });\n });\n return options;\n}\n\n// Data should be ordered like so:\n// 2 1\n// 3 10\n// 4 9\n// 5 8\n// 6 7\n// Also, category names get attached to points.\nfunction optimizePieData(options) {\n if (Array.isArray(options.categories)) {\n // Link each point to a category.\n options.series[0].data.forEach(function (point, index) {\n point.name = options.categories[index];\n point.originalIndex = index;\n });\n }\n // Sort the data smallest to largest.\n options.series[0].data.sort(function (a, b) {\n if (a.y > b.y) {\n return 1;\n } else if (a.y < b.y) {\n return -1;\n }\n return 0;\n });\n // Take the largest data at the end and make it first.\n options.series[0].data.unshift(options.series[0].data.pop());\n return options;\n}\n\nfunction divideYAxisValues(options) {\n var divisor = format.getDivisor(options.axes.units.divisor);\n for (var i = 0; i < options.series.length; i++) {\n var yAxisValue = options.series[i].data;\n yAxisValue.forEach(function (value) {\n if (value.y !== null) {\n value.y = value.y / divisor;\n }\n });\n }\n return options;\n}\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(241), __esModule: true };\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(23);\n__webpack_require__(242);\nmodule.exports = __webpack_require__(5).Array.from;\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ctx = __webpack_require__(21);\nvar $export = __webpack_require__(10);\nvar toObject = __webpack_require__(44);\nvar call = __webpack_require__(65);\nvar isArrayIter = __webpack_require__(66);\nvar toLength = __webpack_require__(39);\nvar createProperty = __webpack_require__(243);\nvar getIterFn = __webpack_require__(46);\n\n$export($export.S + $export.F * !__webpack_require__(67)(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $defineProperty = __webpack_require__(6);\nvar createDesc = __webpack_require__(22);\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INTERVALS = undefined;\nexports.getWidth = getWidth;\n\nvar _marketdata = __webpack_require__(47);\n\nvar Y = _marketdata.TIMETYPES.Y,\n D = _marketdata.TIMETYPES.D,\n M = _marketdata.TIMETYPES.M;\nvar INTERVALS = exports.INTERVALS = [{ name: 'century', time: 100 * Y }, { name: 'decade', time: 10 * Y }, { name: 'halfDecade', time: 5 * Y }, { name: 'year', time: Y }, { name: 'month', time: M }, { name: 'date', time: D }, { name: 'hour', time: 1000 * 60 * 60 }, { name: 'minute', time: 1000 * 60 }];\n\nfunction getWidth(type, printWidth) {\n return type = 'Print' && printWidth > 114 ? printWidth : 300;\n}\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 68,\n\t\"./af.js\": 68,\n\t\"./ar\": 69,\n\t\"./ar-dz\": 70,\n\t\"./ar-dz.js\": 70,\n\t\"./ar-kw\": 71,\n\t\"./ar-kw.js\": 71,\n\t\"./ar-ly\": 72,\n\t\"./ar-ly.js\": 72,\n\t\"./ar-ma\": 73,\n\t\"./ar-ma.js\": 73,\n\t\"./ar-sa\": 74,\n\t\"./ar-sa.js\": 74,\n\t\"./ar-tn\": 75,\n\t\"./ar-tn.js\": 75,\n\t\"./ar.js\": 69,\n\t\"./az\": 76,\n\t\"./az.js\": 76,\n\t\"./be\": 77,\n\t\"./be.js\": 77,\n\t\"./bg\": 78,\n\t\"./bg.js\": 78,\n\t\"./bm\": 79,\n\t\"./bm.js\": 79,\n\t\"./bn\": 80,\n\t\"./bn.js\": 80,\n\t\"./bo\": 81,\n\t\"./bo.js\": 81,\n\t\"./br\": 82,\n\t\"./br.js\": 82,\n\t\"./bs\": 83,\n\t\"./bs.js\": 83,\n\t\"./ca\": 84,\n\t\"./ca.js\": 84,\n\t\"./cs\": 85,\n\t\"./cs.js\": 85,\n\t\"./cv\": 86,\n\t\"./cv.js\": 86,\n\t\"./cy\": 87,\n\t\"./cy.js\": 87,\n\t\"./da\": 88,\n\t\"./da.js\": 88,\n\t\"./de\": 89,\n\t\"./de-at\": 90,\n\t\"./de-at.js\": 90,\n\t\"./de-ch\": 91,\n\t\"./de-ch.js\": 91,\n\t\"./de.js\": 89,\n\t\"./dv\": 92,\n\t\"./dv.js\": 92,\n\t\"./el\": 93,\n\t\"./el.js\": 93,\n\t\"./en-au\": 94,\n\t\"./en-au.js\": 94,\n\t\"./en-ca\": 95,\n\t\"./en-ca.js\": 95,\n\t\"./en-gb\": 96,\n\t\"./en-gb.js\": 96,\n\t\"./en-ie\": 97,\n\t\"./en-ie.js\": 97,\n\t\"./en-il\": 98,\n\t\"./en-il.js\": 98,\n\t\"./en-in\": 99,\n\t\"./en-in.js\": 99,\n\t\"./en-nz\": 100,\n\t\"./en-nz.js\": 100,\n\t\"./en-sg\": 101,\n\t\"./en-sg.js\": 101,\n\t\"./eo\": 102,\n\t\"./eo.js\": 102,\n\t\"./es\": 103,\n\t\"./es-do\": 104,\n\t\"./es-do.js\": 104,\n\t\"./es-us\": 105,\n\t\"./es-us.js\": 105,\n\t\"./es.js\": 103,\n\t\"./et\": 106,\n\t\"./et.js\": 106,\n\t\"./eu\": 107,\n\t\"./eu.js\": 107,\n\t\"./fa\": 108,\n\t\"./fa.js\": 108,\n\t\"./fi\": 109,\n\t\"./fi.js\": 109,\n\t\"./fil\": 110,\n\t\"./fil.js\": 110,\n\t\"./fo\": 111,\n\t\"./fo.js\": 111,\n\t\"./fr\": 112,\n\t\"./fr-ca\": 113,\n\t\"./fr-ca.js\": 113,\n\t\"./fr-ch\": 114,\n\t\"./fr-ch.js\": 114,\n\t\"./fr.js\": 112,\n\t\"./fy\": 115,\n\t\"./fy.js\": 115,\n\t\"./ga\": 116,\n\t\"./ga.js\": 116,\n\t\"./gd\": 117,\n\t\"./gd.js\": 117,\n\t\"./gl\": 118,\n\t\"./gl.js\": 118,\n\t\"./gom-deva\": 119,\n\t\"./gom-deva.js\": 119,\n\t\"./gom-latn\": 120,\n\t\"./gom-latn.js\": 120,\n\t\"./gu\": 121,\n\t\"./gu.js\": 121,\n\t\"./he\": 122,\n\t\"./he.js\": 122,\n\t\"./hi\": 123,\n\t\"./hi.js\": 123,\n\t\"./hr\": 124,\n\t\"./hr.js\": 124,\n\t\"./hu\": 125,\n\t\"./hu.js\": 125,\n\t\"./hy-am\": 126,\n\t\"./hy-am.js\": 126,\n\t\"./id\": 127,\n\t\"./id.js\": 127,\n\t\"./is\": 128,\n\t\"./is.js\": 128,\n\t\"./it\": 129,\n\t\"./it-ch\": 130,\n\t\"./it-ch.js\": 130,\n\t\"./it.js\": 129,\n\t\"./ja\": 131,\n\t\"./ja.js\": 131,\n\t\"./jv\": 132,\n\t\"./jv.js\": 132,\n\t\"./ka\": 133,\n\t\"./ka.js\": 133,\n\t\"./kk\": 134,\n\t\"./kk.js\": 134,\n\t\"./km\": 135,\n\t\"./km.js\": 135,\n\t\"./kn\": 136,\n\t\"./kn.js\": 136,\n\t\"./ko\": 137,\n\t\"./ko.js\": 137,\n\t\"./ku\": 138,\n\t\"./ku.js\": 138,\n\t\"./ky\": 139,\n\t\"./ky.js\": 139,\n\t\"./lb\": 140,\n\t\"./lb.js\": 140,\n\t\"./lo\": 141,\n\t\"./lo.js\": 141,\n\t\"./lt\": 142,\n\t\"./lt.js\": 142,\n\t\"./lv\": 143,\n\t\"./lv.js\": 143,\n\t\"./me\": 144,\n\t\"./me.js\": 144,\n\t\"./mi\": 145,\n\t\"./mi.js\": 145,\n\t\"./mk\": 146,\n\t\"./mk.js\": 146,\n\t\"./ml\": 147,\n\t\"./ml.js\": 147,\n\t\"./mn\": 148,\n\t\"./mn.js\": 148,\n\t\"./mr\": 149,\n\t\"./mr.js\": 149,\n\t\"./ms\": 150,\n\t\"./ms-my\": 151,\n\t\"./ms-my.js\": 151,\n\t\"./ms.js\": 150,\n\t\"./mt\": 152,\n\t\"./mt.js\": 152,\n\t\"./my\": 153,\n\t\"./my.js\": 153,\n\t\"./nb\": 154,\n\t\"./nb.js\": 154,\n\t\"./ne\": 155,\n\t\"./ne.js\": 155,\n\t\"./nl\": 156,\n\t\"./nl-be\": 157,\n\t\"./nl-be.js\": 157,\n\t\"./nl.js\": 156,\n\t\"./nn\": 158,\n\t\"./nn.js\": 158,\n\t\"./oc-lnc\": 159,\n\t\"./oc-lnc.js\": 159,\n\t\"./pa-in\": 160,\n\t\"./pa-in.js\": 160,\n\t\"./pl\": 161,\n\t\"./pl.js\": 161,\n\t\"./pt\": 162,\n\t\"./pt-br\": 163,\n\t\"./pt-br.js\": 163,\n\t\"./pt.js\": 162,\n\t\"./ro\": 164,\n\t\"./ro.js\": 164,\n\t\"./ru\": 165,\n\t\"./ru.js\": 165,\n\t\"./sd\": 166,\n\t\"./sd.js\": 166,\n\t\"./se\": 167,\n\t\"./se.js\": 167,\n\t\"./si\": 168,\n\t\"./si.js\": 168,\n\t\"./sk\": 169,\n\t\"./sk.js\": 169,\n\t\"./sl\": 170,\n\t\"./sl.js\": 170,\n\t\"./sq\": 171,\n\t\"./sq.js\": 171,\n\t\"./sr\": 172,\n\t\"./sr-cyrl\": 173,\n\t\"./sr-cyrl.js\": 173,\n\t\"./sr.js\": 172,\n\t\"./ss\": 174,\n\t\"./ss.js\": 174,\n\t\"./sv\": 175,\n\t\"./sv.js\": 175,\n\t\"./sw\": 176,\n\t\"./sw.js\": 176,\n\t\"./ta\": 177,\n\t\"./ta.js\": 177,\n\t\"./te\": 178,\n\t\"./te.js\": 178,\n\t\"./tet\": 179,\n\t\"./tet.js\": 179,\n\t\"./tg\": 180,\n\t\"./tg.js\": 180,\n\t\"./th\": 181,\n\t\"./th.js\": 181,\n\t\"./tl-ph\": 182,\n\t\"./tl-ph.js\": 182,\n\t\"./tlh\": 183,\n\t\"./tlh.js\": 183,\n\t\"./tr\": 184,\n\t\"./tr.js\": 184,\n\t\"./tzl\": 185,\n\t\"./tzl.js\": 185,\n\t\"./tzm\": 186,\n\t\"./tzm-latn\": 187,\n\t\"./tzm-latn.js\": 187,\n\t\"./tzm.js\": 186,\n\t\"./ug-cn\": 188,\n\t\"./ug-cn.js\": 188,\n\t\"./uk\": 189,\n\t\"./uk.js\": 189,\n\t\"./ur\": 190,\n\t\"./ur.js\": 190,\n\t\"./uz\": 191,\n\t\"./uz-latn\": 192,\n\t\"./uz-latn.js\": 192,\n\t\"./uz.js\": 191,\n\t\"./vi\": 193,\n\t\"./vi.js\": 193,\n\t\"./x-pseudo\": 194,\n\t\"./x-pseudo.js\": 194,\n\t\"./yo\": 195,\n\t\"./yo.js\": 195,\n\t\"./zh-cn\": 196,\n\t\"./zh-cn.js\": 196,\n\t\"./zh-hk\": 197,\n\t\"./zh-hk.js\": 197,\n\t\"./zh-mo\": 198,\n\t\"./zh-mo.js\": 198,\n\t\"./zh-tw\": 199,\n\t\"./zh-tw.js\": 199\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 245;\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.processStyles = processStyles;\n\nvar _lodash = __webpack_require__(201);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = __webpack_require__(32);\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Whitney SSm will be displayed in the SVG, but in the image export, the\n// fonts prepended below ('Whitney SSm Regular') will be used.\nvar BASE_STYLE = {\n color: {\n background: '#fff',\n normal: '#333',\n light: '#666',\n hed: '#333',\n dek: '#666'\n },\n font: {\n light: 'sans-serif',\n normal: 'sans-serif',\n semibold: 'sans-serif',\n bold: 'sans-serif'\n },\n weight: {\n light: 300,\n normal: 400,\n semibold: 600,\n bold: 700\n },\n size: {\n small: '11px',\n normal: '13px',\n large: '16px',\n xlarge: '16px'\n },\n lineHeight: {\n small: '16px',\n normal: '16px',\n large: '20px',\n xlarge: '20px'\n },\n annotations: {},\n headline: {},\n title: {},\n description: {},\n notes: {},\n source: {},\n tick: {},\n axes: {\n zeroGridLine: {},\n label: {\n seriesAreNotDates: {},\n bar: {\n x: {},\n y: {}\n }\n }\n },\n legend: {},\n dataLabel: {}\n};\n\nfunction processStyles(options) {\n var STYLE = (0, _lodash2.default)({}, BASE_STYLE);\n var product = options.product,\n print = options.print,\n id = options.id;\n\n if (true) {\n if (product === 'wsj') {\n if (print) {\n STYLE.annotations.fontSize = 7.5;\n STYLE.annotations.lineHeight = 10;\n STYLE.axes.label.bar.x.fontSize = 7.5;\n STYLE.axes.label.bar.x.fontWeight = 'normal';\n STYLE.axes.label.bar.x.lineHeight = 7.5;\n STYLE.axes.label.bar.y.fontSize = 7.5;\n STYLE.axes.label.bar.y.fontWeight = 'normal';\n STYLE.axes.label.bar.y.lineHeight = 7.5;\n STYLE.axes.label.color = '#666';\n STYLE.axes.label.fontSize = 7.5;\n STYLE.axes.label.fontWeight = 400;\n STYLE.axes.label.lineHeight = 7.5;\n STYLE.axes.label.seriesAreNotDates.fontSize = 7;\n STYLE.axes.label.seriesAreNotDates.fontWeight = 'normal';\n STYLE.axes.label.seriesAreNotDates.lineHeight = 8;\n STYLE.axes.zeroGridLine.color = '#333';\n STYLE.color.dek = '#000';\n STYLE.color.hed = '#000';\n STYLE.color.normal = '#000';\n STYLE.description.color = '#000';\n STYLE.description.fontFamily = '\"DJ5RetinaNr Medium\",sans-serif';\n STYLE.description.fontSize = 8.4;\n STYLE.description.fontWeight = 400;\n STYLE.description.lineHeight = 10;\n STYLE.font.bold = '\"DJ5RetinaNr Bold\",' + STYLE.font.bold;\n STYLE.font.light = '\"DJ5RetinaNr Light\",' + STYLE.font.light;\n STYLE.font.normal = '\"DJ5RetinaNr Medium\",' + STYLE.font.normal;\n STYLE.font.semibold = '\"DJ5RetinaNr Semibold\",' + STYLE.font.bold;\n STYLE.headline.color = '#000';\n STYLE.headline.fontFamily = '\"DJ5RetinaNr Bold\",sans-serif';\n STYLE.headline.fontSize = 12.6;\n STYLE.headline.fontWeight = 'normal';\n STYLE.headline.lineHeight = 14.4;\n STYLE.legend.fontSize = 7.5;\n STYLE.legend.fontWeight = 400;\n STYLE.legend.lineHeight = 'inherit';\n STYLE.legend.rectHeight = 6;\n STYLE.legend.rectWidth = 4;\n STYLE.lineHeight.large = 9.6;\n STYLE.lineHeight.normal = 8;\n STYLE.lineHeight.small = 7.2;\n STYLE.lineHeight.xlarge = 14.4;\n STYLE.size.large = 8.4;\n STYLE.size.normal = 7.5;\n STYLE.size.small = 6;\n STYLE.size.xlarge = 12.6;\n STYLE.tick.color = '#333';\n STYLE.tick.longSize = 5;\n STYLE.tick.mediumSize = 4;\n STYLE.tick.shortSize = 2;\n STYLE.tick.yOffset = 1;\n STYLE.weight.bold = 'normal';\n STYLE.weight.light = 'normal';\n STYLE.weight.normal = 'normal';\n STYLE.weight.semibold = 'normal';\n } else {\n STYLE.annotations.fontSize = '15px';\n STYLE.annotations.fontWeight = 300;\n STYLE.annotations.lineHeight = 20;\n STYLE.annotations.color = '#333';\n STYLE.annotations.fontFamily = '\"Retina\", sans-serif';\n // STYLE.axes.label.fontFamily = '\"Retina\", \"Retina Narrow\"'\n STYLE.axes.label.bar.x.fontSize = '15px';\n STYLE.axes.label.bar.x.fontWeight = 500;\n STYLE.axes.label.bar.x.lineHeight = '16px';\n STYLE.axes.label.bar.y.fontSize = '13px';\n STYLE.axes.label.bar.y.fontWeight = 300;\n STYLE.axes.label.bar.y.lineHeight = 20;\n STYLE.axes.label.color = '#333';\n // weirdly breaks if I set below to '13px' in firefox\n STYLE.axes.label.fontSize = 13;\n STYLE.axes.label.fontWeight = 300;\n STYLE.axes.label.lineHeight = 20;\n STYLE.axes.label.seriesAreNotDates.fontSize = '15px';\n STYLE.axes.label.seriesAreNotDates.fontWeight = 500;\n STYLE.axes.label.seriesAreNotDates.lineHeight = 18;\n STYLE.axes.label.seriesAreNotDates.fontFamily = '\"Retina\", sans-serif';\n STYLE.axes.zeroGridLine.color = '#333';\n STYLE.description.color = '#333';\n STYLE.description.fontFamily = '\"Retina\", sans-serif';\n STYLE.description.fontSize = '15px';\n STYLE.description.fontWeight = 300;\n STYLE.description.lineHeight = 20;\n STYLE.font.bold = '\"Retina\",' + STYLE.font.bold;\n STYLE.font.light = '\"Retina\",' + STYLE.font.light;\n STYLE.font.normal = '\"Retina\",' + STYLE.font.normal;\n STYLE.font.semibold = '\"Retina\",' + STYLE.font.bold;\n STYLE.weight.bold = 500;\n STYLE.weight.light = 300;\n STYLE.weight.normal = 300;\n STYLE.weight.semibold = 500;\n STYLE.title.fontFamily = 'Retina Narrow';\n STYLE.title.fontSize = '13px';\n STYLE.headline.color = '#333';\n STYLE.headline.fontFamily = \"Retina\";\n STYLE.headline.fontSize = '18px';\n STYLE.headline.fontWeight = 500;\n STYLE.headline.lineHeight = '20px';\n STYLE.legend.fontSize = '15px';\n STYLE.dataLabel.fontSize = '15px';\n STYLE.dataLabel.lineHeight = '18px';\n STYLE.legend.fontWeight = 300;\n STYLE.legend.lineHeight = 18;\n STYLE.legend.rectHeight = 10;\n STYLE.legend.rectWidth = 10;\n STYLE.notes.lineHeight = 14;\n STYLE.source.lineHeight = 14;\n STYLE.source.fontWeight = 300;\n STYLE.tick.color = '#333';\n STYLE.tick.longSize = 7;\n STYLE.tick.mediumSize = 5;\n STYLE.tick.shortSize = 3;\n STYLE.tick.yOffset = 1.5;\n STYLE.weight.bold = 500;\n STYLE.weight.semibold = 500;\n }\n if (id === 'video') {\n STYLE.annotations.fontSize = '24px';\n STYLE.annotations.color = '#fff';\n STYLE.annotations.fontWeight = 400;\n STYLE.annotations.fontFamily = 'Retina Narrow';\n STYLE.color.background = '#222222';\n STYLE.color.hed = '#fff';\n STYLE.axes.label.color = '#fff';\n STYLE.color.normal = '#fff';\n STYLE.headline.color = '#fff';\n STYLE.headline.fontSize = '60px';\n STYLE.headline.fontFamily = 'Retina Narrow';\n STYLE.headline.fontWeight = 'bold';\n STYLE.description.fontFamily = 'Retina Narrow';\n STYLE.description.fontWeight = 400;\n STYLE.description.fontSize = '35px';\n STYLE.description.color = '#fff';\n STYLE.legend.fontSize = '35px';\n STYLE.legend.fontWeight = 400;\n STYLE.axes.label.fontSize = 32;\n STYLE.axes.zeroGridLine.color = '#656565';\n STYLE.axes.label.seriesAreNotDates.fontSize = '32px';\n STYLE.axes.label.seriesAreNotDates.fontWeight = 'normal';\n STYLE.axes.label.seriesAreNotDates.lineHeight = 15;\n STYLE.font.normal = 'Retina Narrow';\n }\n if (id === 'twitterVideo') {\n STYLE.annotations.fontSize = '18px';\n STYLE.annotations.color = '#fff';\n STYLE.annotations.fontWeight = 300;\n STYLE.annotations.fontFamily = 'Retina Narrow';\n STYLE.color.background = '#222222';\n STYLE.color.hed = '#fff';\n STYLE.axes.label.color = '#fff';\n STYLE.color.normal = '#fff';\n STYLE.headline.color = '#fff';\n STYLE.headline.fontSize = '50px';\n STYLE.headline.fontFamily = 'Retina Narrow';\n STYLE.headline.fontWeight = 'bold';\n STYLE.description.fontSize = '35px';\n STYLE.description.color = '#fff';\n STYLE.legend.fontSize = '35px';\n STYLE.legend.fontWeight = 400;\n STYLE.axes.label.fontSize = 30;\n STYLE.axes.zeroGridLine.color = '#656565';\n STYLE.axes.label.seriesAreNotDates.fontSize = '30px';\n STYLE.axes.label.seriesAreNotDates.fontWeight = 'normal';\n STYLE.axes.label.seriesAreNotDates.lineHeight = 15;\n STYLE.font.normal = 'Retina Narrow';\n }\n }\n }\n if (false) {\n if (product === 'barrons') {\n if (print) {\n STYLE.annotations.color = '#000';\n STYLE.annotations.fontSize = '12px';\n STYLE.color.normal = '#000000';\n STYLE.color.light = '#000000';\n STYLE.color.hed = '#000000';\n STYLE.color.dek = '#000000';\n STYLE.font.light = 'Aileron,' + STYLE.font.light;\n STYLE.font.normal = 'Aileron,' + STYLE.font.normal;\n STYLE.font.semibold = 'Aileron,' + STYLE.font.bold;\n STYLE.font.bold = 'Aileron,' + STYLE.font.bold;\n STYLE.size.small = '12px';\n STYLE.size.normal = '12px';\n STYLE.size.large = '9.5px';\n STYLE.size.xlarge = '14px';\n STYLE.lineHeight.large = '12.5px';\n STYLE.lineHeight.xlarge = '15.5px';\n } else {\n STYLE.annotations.color = '#6F7878';\n STYLE.annotations.fontSize = '14px';\n STYLE.annotations.lineHeight = 21;\n STYLE.annotations.fontFamily = 'Aileron,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n STYLE.color.normal = '#6F7878';\n STYLE.color.light = '#6F7878';\n STYLE.color.hed = '#001E20';\n STYLE.color.dek = '#001E20';\n STYLE.font.light = 'Aileron,' + STYLE.font.light;\n STYLE.font.normal = 'Aileron,' + STYLE.font.normal;\n STYLE.font.semibold = 'Aileron,' + STYLE.font.bold;\n STYLE.font.bold = 'Aileron,' + STYLE.font.bold;\n STYLE.title.fontFamily = 'Aileron';\n STYLE.title.fontSize = '13px';\n STYLE.size.small = '14px';\n STYLE.lineHeight.small = '18px';\n STYLE.size.normal = '14px';\n STYLE.lineHeight.normal = '21px';\n STYLE.size.large = '16px';\n STYLE.lineHeight.large = '21px';\n STYLE.size.xlarge = '22px';\n STYLE.lineHeight.xlarge = '24px';\n }\n }\n }\n // if (__ALL__ || __KNEWZ__) {\n if (product === 'knewz') {\n STYLE.annotations.color = '#6F7878';\n STYLE.annotations.fontSize = '14px';\n STYLE.annotations.lineHeight = 21;\n STYLE.annotations.fontFamily = 'Aileron,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n // STYLE.color.background = 'transparent';\n STYLE.color.normal = '#000000';\n STYLE.color.light = '#000000';\n STYLE.color.hed = '#000000';\n STYLE.legend.color = '#4A4A4A';\n STYLE.legend.fontWeight = 400;\n STYLE.legend.fontSize = '10px';\n STYLE.legend.lineHeight = '12px';\n STYLE.axes.label.fontSize = '12px';\n STYLE.axes.label.lineHeight = '16px';\n STYLE.color.dek = '#000000';\n STYLE.font.light = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.font.normal = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.font.semibold = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.font.bold = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.title.fontFamily = 'Ringside Condensed';\n STYLE.title.fontSize = '13px';\n STYLE.size.small = '14px';\n STYLE.lineHeight.small = '18px';\n STYLE.size.normal = '14px';\n STYLE.lineHeight.normal = '21px';\n STYLE.size.large = '16px';\n STYLE.lineHeight.large = '21px';\n STYLE.size.xlarge = '22px';\n STYLE.lineHeight.xlarge = '24px';\n }\n // }\n if (false) {\n if (product === 'financialnews') {\n STYLE.annotations.color = '#70808C';\n STYLE.annotations.fontSize = '12px';\n STYLE.annotations.lineHeight = '17px';\n STYLE.annotations.fontFamily = 'Theinhardt,TheinhardtRegular,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n STYLE.color.background = 'transparent';\n STYLE.color.normal = '#70808C';\n STYLE.color.light = '#70808C';\n STYLE.color.hed = '#005879';\n STYLE.color.dek = '#4D6172';\n STYLE.font.light = 'Theinhardt,TheinhardtRegular,' + STYLE.font.light;\n STYLE.font.normal = 'Theinhardt,TheinhardtRegular,' + STYLE.font.normal;\n STYLE.font.semibold = 'Theinhardt,TheinhardtBold,' + STYLE.font.bold;\n STYLE.font.bold = 'Theinhardt,TheinhardtBold,' + STYLE.font.bold;\n STYLE.size.small = '12px';\n STYLE.size.normal = '12px';\n STYLE.size.large = '16px';\n STYLE.size.xlarge = '24px';\n STYLE.title.fontFamily = 'Theinhardt,TheinhardtRegular';\n STYLE.title.fontSize = '13px';\n STYLE.lineHeight.small = '17px';\n STYLE.lineHeight.normal = '17px';\n STYLE.lineHeight.large = '22px';\n STYLE.lineHeight.xlarge = '28px';\n }\n }\n if (false) {\n if (product === 'marketwatch') {\n STYLE.font.light = 'Lato,' + STYLE.font.light;\n STYLE.font.normal = 'Lato,' + STYLE.font.normal;\n STYLE.font.semibold = 'Lato,' + STYLE.font.semibold;\n STYLE.font.bold = 'Lato,' + STYLE.font.bold;\n STYLE.font.axes = 'Lato,' + 'sans-serif';\n STYLE.title.fontFamily = 'Lato';\n STYLE.title.fontSize = '13px';\n STYLE.weight.light = 300;\n STYLE.weight.normal = 400;\n STYLE.weight.semibold = 700;\n STYLE.weight.bold = 900;\n STYLE.weight.axes = 700;\n STYLE.annotations.color = '#555';\n STYLE.annotations.fontSize = '13px';\n STYLE.annotations.lineHeight = '19px';\n STYLE.annotations.fontFamily = 'Lato,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n STYLE.color.normal = '#555';\n STYLE.color.dek = '#555';\n STYLE.color.light = '#555';\n STYLE.color.axes = '#555';\n STYLE.size.small = '13px';\n STYLE.size.axes = '13px';\n STYLE.size.normal = '13px';\n STYLE.size.large = '16px';\n STYLE.size.xlarge = '28px';\n STYLE.lineHeight.small = '19px';\n STYLE.lineHeight.normal = '19px';\n STYLE.lineHeight.large = '25px';\n STYLE.lineHeight.xlarge = '34px';\n }\n }\n if (product === 'mansionglobal') {\n STYLE.font.light = '\"Whitney SSm Light\",\"Whitney SSm\",Whitney,' + STYLE.font.light;\n STYLE.font.normal = '\"Whitney SSm Regular\",\"Whitney SSm\",Whitney,' + STYLE.font.normal;\n STYLE.font.normal = '\"Whitney SSm Book\",\"Whitney SSm\",Whitney,' + STYLE.font.normal;\n STYLE.font.semibold = '\"Whitney SSm Semi-Bold\",\"Whitney SSm\",Whitney,' + STYLE.font.semibold;\n STYLE.font.bold = '\"Whitney SSm Semi-Bold\",\"Whitney SSm\",Whitney,' + STYLE.font.bold;\n STYLE.title.fontFamily = 'Whitney SSm Regular\",\"Whitney SSm\",Whitney';\n STYLE.title.fontSize = '13px';\n STYLE.weight.light = 400;\n STYLE.weight.normal = 400;\n STYLE.weight.semibold = 600;\n STYLE.weight.semibold = 500;\n STYLE.weight.bold = 700;\n STYLE.color.light = '#666';\n STYLE.color.normal = '#333';\n STYLE.size.small = '14px';\n STYLE.size.normal = '14px';\n STYLE.size.large = '18px';\n STYLE.size.xlarge = '24px';\n STYLE.lineHeight.xlarge = '28px';\n STYLE.lineHeight.dek = '22px';\n STYLE.lineHeight.subdek = '22px';\n STYLE.notes.color = '#777';\n STYLE.axes.color = '#777';\n STYLE.legend.color = '#777';\n STYLE.annotations.color = '#777';\n STYLE.annotations.fontSize = '14px';\n STYLE.annotations.lineHeight = '16px';\n STYLE.annotations.fontFamily = '\"Whitney SSm Regular\",\"Whitney SSm\",Whitney,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n }\n STYLE.base = {\n fontFamily: STYLE.font.normal,\n fontSize: STYLE.size.normal,\n fontWeight: STYLE.weight.normal,\n lineHeight: STYLE.lineHeight.normal,\n color: STYLE.color.normal\n };\n STYLE.get = function (size, options) {\n var sizeStyle = STYLE[size];\n return sizeStyle ? (0, _lodash4.default)({}, sizeStyle, options) : STYLE.base;\n };\n STYLE.small = STYLE.get('base', {\n fontSize: STYLE.size.small,\n lineHeight: STYLE.lineHeight.small\n });\n STYLE.normal = STYLE.get('base');\n STYLE.large = STYLE.get('base', {\n fontSize: STYLE.size.large,\n lineHeight: STYLE.lineHeight.large\n });\n STYLE.xlarge = STYLE.get('base', {\n fontSize: STYLE.size.xlarge,\n lineHeight: STYLE.lineHeight.xlarge\n });\n return STYLE;\n}\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports) {\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = __webpack_require__(202);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nexports.fonts = fonts;\n\nvar _webfontloader = __webpack_require__(261);\n\nvar _webfontloader2 = _interopRequireDefault(_webfontloader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Preload fonts depending on product. If fonts are *not* preloaded, then\n * line breaks fail (because line breaks are determined with a fallback font).\n */\nfunction fonts(options, complete) {\n var product = options.product,\n print = options.print;\n\n var info = fontsInfo(product, print);\n var interval = 0;\n if (info === true) {\n complete();\n } else {\n var status = window.__charts_fonts_status__ = (0, _typeof3.default)(window.__charts_fonts_status__) === 'object' ? window.__charts_fonts_status__ : {};\n\n var callbackComplete = function callbackComplete() {\n status[info.product] = 'complete';\n complete();\n };\n\n var checkComplete = function checkComplete() {\n if (status[info.product] === 'complete') {\n clearInterval(interval);\n complete();\n }\n };\n\n var checkQueued = function checkQueued() {\n if (!areFontsLoading()) {\n clearInterval(interval);\n if (status[info.product] === 'complete') {\n complete();\n } else {\n status[info.product] = 'loading';\n _webfontloader2.default.load({\n custom: info,\n active: callbackComplete,\n inactive: callbackComplete\n });\n }\n }\n };\n\n if (status[info.product] === 'loading') {\n interval = setInterval(checkComplete, 1);\n } else if (status[info.product] === 'complete') {\n complete();\n } else {\n interval = setInterval(checkQueued, 1);\n }\n }\n}\n\nfunction areFontsLoading() {\n var status = window.__charts_fonts_status__;\n if (status) {\n var keys = Object.keys(status);\n for (var i = 0; i < keys.length; i++) {\n if (status[keys[i]] === 'loading') {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction fontsInfo(product) {\n var print = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (true) {\n if (product === 'wsj') {\n if (print) {\n return {\n product: 'wsj-print',\n families: [\n // 'Retina Standard Narrow:n3,n4,n6',\n // 'DJ5EscrowCond:n6'\n 'DJ5RetinaNr Light', 'DJ5RetinaNr Medium', 'DJ5RetinaNr Semibold', 'DJ5RetinaNr Bold', 'DJ5RetinaAgReg Medium', 'DJ5EscrowCond'],\n urls: ['/assets/css/wsj-print.css']\n };\n } else {\n return {\n product: product,\n families: ['Retina', 'Retina Narrow'],\n urls: ['https://www.wsj.com/fonts/retina.css']\n };\n }\n }\n }\n if (false) {\n if (product === 'barrons') {\n return {\n product: product,\n families: ['Aileron'],\n urls: ['https://www.barrons.com/fonts/Aileron.css']\n };\n }\n }\n if (false) {\n if (product === 'financialnews') {\n return {\n product: product,\n families: ['Publico:n6', 'Theinhardt:n3,n4,n6'],\n urls: ['https://fonts.wsj.net/PublicoMedium.css', 'https://s3.amazonaws.com/fonts.wsj.net/Theinhardt.css']\n };\n }\n }\n if (false) {\n if (product === 'marketwatch') {\n return {\n product: product,\n families: ['Lato'],\n urls: ['https://fonts.googleapis.com/css?family=Lato:400,700,900']\n };\n }\n }\n if (false) {\n if (product === 'mansionglobal') {\n return {\n product: product,\n families: ['Whitney SSm A:n4,n6,n7'],\n urls: ['https://www.mansionglobal.com/fonts/442807/457709E0582EC35B6.css']\n };\n }\n }\n // if (__ALL__ || __KNEWZ__) {\n if (product === 'knewz') {\n return {\n product: product,\n families: ['Ringside Condensed'],\n urls: ['https://knewz.com/wp-content/themes/wp-knewz-theme/knewz-fonts.css']\n };\n }\n // }\n return true;\n}\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(250), __esModule: true };\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(23);\n__webpack_require__(25);\nmodule.exports = __webpack_require__(51).f('iterator');\n\n\n/***/ }),\n/* 251 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(252), __esModule: true };\n\n/***/ }),\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(253);\n__webpack_require__(205);\n__webpack_require__(259);\n__webpack_require__(260);\nmodule.exports = __webpack_require__(5).Symbol;\n\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(1);\nvar has = __webpack_require__(13);\nvar DESCRIPTORS = __webpack_require__(9);\nvar $export = __webpack_require__(10);\nvar redefine = __webpack_require__(59);\nvar META = __webpack_require__(254).KEY;\nvar $fails = __webpack_require__(27);\nvar shared = __webpack_require__(42);\nvar setToStringTag = __webpack_require__(29);\nvar uid = __webpack_require__(28);\nvar wks = __webpack_require__(2);\nvar wksExt = __webpack_require__(51);\nvar wksDefine = __webpack_require__(52);\nvar enumKeys = __webpack_require__(255);\nvar isArray = __webpack_require__(256);\nvar anObject = __webpack_require__(7);\nvar isObject = __webpack_require__(12);\nvar toObject = __webpack_require__(44);\nvar toIObject = __webpack_require__(17);\nvar toPrimitive = __webpack_require__(37);\nvar createDesc = __webpack_require__(22);\nvar _create = __webpack_require__(60);\nvar gOPNExt = __webpack_require__(257);\nvar $GOPD = __webpack_require__(258);\nvar $GOPS = __webpack_require__(203);\nvar $DP = __webpack_require__(6);\nvar $keys = __webpack_require__(38);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(204).f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(53).f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(20)) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(11)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar META = __webpack_require__(28)('meta');\nvar isObject = __webpack_require__(12);\nvar has = __webpack_require__(13);\nvar setDesc = __webpack_require__(6).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__webpack_require__(27)(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// all enumerable object keys, includes symbols\nvar getKeys = __webpack_require__(38);\nvar gOPS = __webpack_require__(203);\nvar pIE = __webpack_require__(53);\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.2 IsArray(argument)\nvar cof = __webpack_require__(19);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(17);\nvar gOPN = __webpack_require__(204).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(53);\nvar createDesc = __webpack_require__(22);\nvar toIObject = __webpack_require__(17);\nvar toPrimitive = __webpack_require__(37);\nvar has = __webpack_require__(13);\nvar IE8_DOM_DEFINE = __webpack_require__(58);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(9) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(52)('asyncIterator');\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(52)('observable');\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.o=b||a;this.c=this.o.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&(\"style\"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}\nfunction w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(\" \").replace(/\\s+/g,\" \").replace(/^\\s+|\\s+$/,\"\")}function y(a,b){for(var c=a.className.split(/\\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}\nfunction ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,\"link\",{rel:\"stylesheet\",href:b,media:\"all\"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error(\"Stylesheet failed to load\");d()}):setTimeout(function(){e=!0;d()},0);u(a,\"head\",b)}\nfunction A(a,b,c,d){var e=a.c.getElementsByTagName(\"head\")[0];if(e){var f=t(a,\"script\",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&\"loaded\"!=this.readyState&&\"complete\"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,\"HEAD\"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error(\"Script load timeout\")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||\"-\"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\\W_]+/g,\"\").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a=\"n\";var c=(b||\"n4\").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+\" \"+(a.f+\"00\")+\" 300px \"+I(a.c)}function I(a){var b=[];a=a.split(/,\\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['\"]/g,\"\");-1!=d.indexOf(\" \")||/^\\d/.test(d)?b.push(\"'\"+d+\"'\"):b.push(d)}return b.join(\",\")}function J(a){return a.a+a.f}function H(a){var b=\"normal\";\"o\"===a.a?b=\"oblique\":\"i\"===a.a&&(b=\"italic\");return b}\nfunction ga(a){var b=4,c=\"n\",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.o.document.documentElement;this.h=b;this.a=new F(\"-\");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c(\"wf\",\"loading\")]);K(a,\"loading\")}function L(a){if(a.g){var b=y(a.f,a.a.c(\"wf\",\"active\")),c=[],d=[a.a.c(\"wf\",\"loading\")];b||c.push(a.a.c(\"wf\",\"inactive\"));w(a.f,c,d)}K(a,\"inactive\")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,\"span\",{\"aria-hidden\":\"true\"},this.f)}function N(a){u(a.c,\"body\",a.a)}function O(a){return\"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\"+I(a.c)+\";\"+(\"font-style:\"+H(a)+\";font-weight:\"+(a.f+\"00\")+\";\")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||\"BESbswy\";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+\",serif\",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+\",sans-serif\",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G(\"serif\",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G(\"sans-serif\",J(this.a));a=\nO(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:\"serif\",C:\"sans-serif\"},S=null;function T(){if(null===S){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f[\"sans-serif\"]=this.m.a.offsetWidth;this.A=q();U(this)};\nfunction la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f[\"sans-serif\"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c(\"wf\",a.c,J(a).toString(),\"active\")],[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\"),b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\")]);K(b,\"fontactive\",a);this.m=!0;na(this)};\nW.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c(\"wf\",a.c,J(a).toString(),\"active\")),d=[],e=[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\")];c||d.push(b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\"));w(b.f,d,e)}K(b,\"fontinactive\",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c(\"wf\",\"active\")],[a.a.c(\"wf\",\"loading\"),a.a.c(\"wf\",\"inactive\")]),K(a,\"active\")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};\nfunction qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c(\"wf\",x.c,J(x).toString(),\"loading\")]);K(r,\"fontloading\",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);\nX=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}\nra.prototype.load=function(a){function b(){if(f[\"__mti_fntLst\"+d]){var c=f[\"__mti_fntLst\"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||\"https://fast.fonts.net/jsapi\")+\"/\"+d+\".js\"+(e?\"?v=\"+e:\"\"),function(e){e?a([]):(f[\"__MonotypeConfiguration__\"+\nd]=function(){return c.a},b())}).id=\"__MonotypeAPIScript__\"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(\":\"),d[1])for(var h=d[1].split(\",\"),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b){a?this.c=a:this.c=ua;this.a=[];this.f=[];this.g=b||\"\"}var ua=\"https://fonts.googleapis.com/css\";function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(\":\");3==e.length&&a.f.push(e.pop());var f=\"\";2==e.length&&\"\"!=e[1]&&(f=\":\");a.a.push(e.join(f))}}\nfunction wa(a){if(0==a.a.length)throw Error(\"No fonts to load!\");if(-1!=a.c.indexOf(\"kit=\"))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,\"+\"));b=a.c+\"?family=\"+c.join(\"%7C\");0<a.f.length&&(b+=\"&subset=\"+a.f.join(\",\"));0<a.g.length&&(b+=\"&text=\"+encodeURIComponent(a.g));return b};function ya(a){this.f=a;this.a=[];this.c={}}\nvar za={latin:\"BESbswy\",\"latin-ext\":\"\\u00e7\\u00f6\\u00fc\\u011f\\u015f\",cyrillic:\"\\u0439\\u044f\\u0416\",greek:\"\\u03b1\\u03b2\\u03a3\",khmer:\"\\u1780\\u1781\\u1782\",Hanuman:\"\\u1780\\u1781\\u1782\"},Aa={thin:\"1\",extralight:\"2\",\"extra-light\":\"2\",ultralight:\"2\",\"ultra-light\":\"2\",light:\"3\",regular:\"4\",book:\"4\",medium:\"5\",\"semi-bold\":\"6\",semibold:\"6\",\"demi-bold\":\"6\",demibold:\"6\",bold:\"7\",\"extra-bold\":\"8\",extrabold:\"8\",\"ultra-bold\":\"8\",ultrabold:\"8\",black:\"9\",heavy:\"9\",l:\"3\",r:\"4\",b:\"7\"},Ba={i:\"i\",italic:\"i\",n:\"n\",normal:\"n\"},\nCa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;\nfunction Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(\":\"),e=d[0].replace(/\\+/g,\" \"),f=[\"n4\"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(\",\"),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k=\"\";else{k=n[2];k=null==k||\"\"==k?\"n\":Ba[k];n=n[1];if(null==n||\"\"==n)n=\"4\";else var r=Aa[n],n=r?r:isNaN(n)?\"4\":n.substr(0,1);k=[k,n].join(\"\")}}else k=\"\";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(\",\"):\ng,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||\"https://use.typekit.net\")+\"/\"+b+\".js\",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga(\"font-weight:\"+h.weight+\";font-style:\"+h.style)))}a(d.a)},A(this.c,(this.f.api||\"https://f.fontdeck.com/s/css/js/\")+ea(this.c)+\"/\"+b+\".js\",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)}; true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return Z}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):\"undefined\"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _defineProperty2 = __webpack_require__(206);\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _spacing = __webpack_require__(266);\n\nvar _spacing2 = _interopRequireDefault(_spacing);\n\nvar _headlines = __webpack_require__(267);\n\nvar headlines = _interopRequireWildcard(_headlines);\n\nvar _notes = __webpack_require__(268);\n\nvar notes = _interopRequireWildcard(_notes);\n\nvar _element = __webpack_require__(15);\n\nvar element = _interopRequireWildcard(_element);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The Outer Chart renders headlines, footnotes, and credits.\n */\nvar MARGIN = 12;\nvar BARRONS_PRINT_MARGIN = 0;\n\nfunction preRender(options) {\n // const hasAccessibility = options.headings.accessibilityDescription.text;\n // const defaultDescription = hasAccessibility ? hasAccessibility : options.headings.subdek.text || options.headings.title.text;\n\n var data = {\n exporting: {\n enabled: false\n },\n // accessibility: {\n // description: defaultDescription\n // },\n chart: (0, _defineProperty3.default)({\n renderTo: options.el.querySelector('.dj-chart-container'),\n width: options.width,\n height: options.height,\n reflow: false,\n backgroundColor: 'transparent'\n }, 'backgroundColor', options.styles.color.background),\n title: { text: null },\n subtitle: { text: null },\n credits: { enabled: false },\n navigator: { enabled: false }\n };\n if (options.size.indexOf('thumb') !== 0) {\n data.chart.spacing = (0, _spacing2.default)(options);\n data = headlines.preRender(data, options);\n data = notes.preRender(data, options);\n }\n return data;\n}\n\nfunction postRender(highchart, options) {\n if (options.size.indexOf('thumb') === 0) {\n return {\n innerEl: createInnerEl(highchart, options),\n x: 0,\n y: 0,\n width: options.width,\n height: options.height,\n info: null\n };\n } else {\n if (true) {\n if (options.size === 'print-wsj') {\n highchart.renderer.rect(0, 3.2, options.width, 0.5, 0).attr({\n 'fill': '#000'\n }).add();\n // let y = 0;\n // while (y < options.height) {\n // highchart.renderer.rect(0, y, options.width, 0.5, 0)\n // .attr({\n // 'fill': 'rgba(255, 0, 0, 0.25)',\n // })\n // .add();\n // y += 9.6;\n // }\n }\n }\n var isSmallMW = options.product === 'marketwatch' && (options.size === 'marketwatch-ZR' || options.size === 'marketwatch-ZT' || options.size === 'thumb-marketwatch-MA');\n var info = {\n headlines: headlines.postRender(highchart, options),\n notes: notes.postRender(highchart, options)\n };\n var margin = void 0;\n if (options.size === 'print-wsj' || info.headlines.y <= 0) {\n margin = 0;\n } else if (options.id === 'print-barrons') {\n margin = BARRONS_PRINT_MARGIN;\n } else {\n margin = MARGIN;\n }\n var heightOffset = options.id === 'print-barrons' ? 12 : 0;\n return {\n innerEl: createInnerEl(highchart, options),\n x: highchart.spacing[3],\n y: info.headlines.y + margin,\n width: options.width - highchart.spacing[1] - highchart.spacing[3],\n height: info.notes.y - info.headlines.y - margin + heightOffset,\n spacing: [0, 0, 0, 0],\n info: info\n };\n }\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n var updateH = headlines.renderInvalidated(rendered, options, invalidated);\n var updateN = notes.renderInvalidated(rendered, options, invalidated);\n var margin = rendered.outerInfo.info && rendered.outerInfo.info.headlines.y > 0 ? MARGIN : 0;\n if (__WSJ__) {\n margin = options.size === 'print-wsj' ? 0 : margin;\n }\n if (updateH) {\n rendered.outerInfo.y += margin;\n }\n if (updateH || updateN) {\n rendered.outerInfo.height = 0;\n if (rendered.outerInfo.info) {\n rendered.outerInfo.height = rendered.outerInfo.info.notes.y - rendered.outerInfo.info.headlines.y - margin;\n }\n }\n }\n}\n\nfunction getTopHeight(highchart, options) {\n var svg = options.el.querySelector('svg');\n var svgY = svg.getBoundingClientRect().top;\n if (highchart.subtitle) {\n var srect = highchart.subtitle.element.getBoundingClientRect();\n return srect.top - svgY + srect.height;\n } else if (highchart.title) {\n var trect = highchart.title.element.getBoundingClientRect();\n return trect.top - svgY + trect.height;\n }\n return highchart.spacing[0];\n}\n\nfunction getBottomHeight(highchart, options) {\n return highchart.spacing[2];\n}\n\n// Cleans up the outer SVG, removing unnecessary `g` elements, and creates a\n// `g` element specifically for the inner chart SVG.\nfunction createInnerEl(highchart, options) {\n var svg = options.el.querySelector('svg');\n if (svg) {\n var gEls = svg.querySelectorAll('g');\n for (var i = 0; i < gEls.length; i++) {\n element.removeChild(gEls[i]);\n }\n return highchart.renderer.g('djchart').add().element;\n }\n return null;\n}\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(264), __esModule: true };\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(265);\nvar $Object = __webpack_require__(5).Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $export = __webpack_require__(10);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !__webpack_require__(9), 'Object', { defineProperty: __webpack_require__(6).f });\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction spacing(options) {\n switch (options.size) {\n case 'fon':\n return [30, 15, 0, 15];\n case 'soc':\n return [10, 10, 10, 10];\n case 'appfeed':\n return [3, 0, 3, 0];\n case 'video':\n return [120, 220, 140, 120];\n case 'twitterVideo':\n return [40, 60, 60, 60];\n }\n\n var left = options.type === 'scatter' ? 1 : 0;\n if (options.product === 'knewz') {\n return [10, 10, 10, 10];\n }\n return [0, 0, 0, 0];\n}\n\nexports.default = spacing;\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _textRules = __webpack_require__(207);\n\nvar _textRules2 = _interopRequireDefault(_textRules);\n\nvar _util = __webpack_require__(208);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PRINT_LINE = 9.6;\n\nfunction preRender(data, options) {\n return data;\n}\n\nfunction postRender(highchart, options) {\n var R = getRules(options);\n var result = {\n hed: null,\n dek: null,\n subdek: null,\n x: highchart.spacing[3],\n y: highchart.spacing[0],\n width: options.width - highchart.spacing[3] - highchart.spacing[1] + 'px'\n };\n if (R.HED) {\n writeHed(options, highchart.renderer, R.HEADINGS.title.text, result);\n }\n if (R.HED && R.DEK || R.HED && R.SUBDEK) {\n result.y += getMargin(options, true);\n if (options.product === 'wsj' && !options.print) result.y -= 3;\n }\n if (R.DEK) {\n writeDek(options, highchart.renderer, R.HEADINGS.dek.text, result, R);\n }\n if (R.HED && R.DEK && R.SUBDEK || R.DEK && R.SUBDEK) {\n result.y += getMargin(options, false);\n if (options.product === 'wsj' && !options.print) result.y += 9;\n }\n if (R.SUBDEK && !R.RULE.subdekPromo) {\n writeChartLabel(options, highchart.renderer, R.HEADINGS.subdek.text, result, R);\n }\n if (R.SUBDEKPROMO) {\n writeChartLabel(options, highchart.renderer, R.HEADINGS.subdekPromo.text, result, R);\n }\n if (R.WSJ_PRINT) {\n result.y = Math.max(result.y, PRINT_LINE);\n }\n return result;\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n if (!rendered.outerInfo.info) {\n return false;\n }\n var R = getRules(options);\n var result = rendered.outerInfo.info.headlines;\n var invalidHed = invalidated.indexOf('headings/title') !== -1;\n var invalidDek = invalidated.indexOf('headings/dek') !== -1 || R.DEK && invalidHed && !result.hed;\n\n if ((invalidHed || invalidDek) && !!rendered.outer.spacing) {\n result.y = rendered.outer.spacing[0];\n\n // If previously there was no HED but now there is, rewrite the DEK to\n // force the face to change from bold to normal.\n var invalidDek2 = R.DEK && invalidHed && !result.hed;\n\n if (invalidHed) {\n (0, _util.removeEl)(result.hed);\n if (R.HED) {\n writeHed(options, rendered.outer.renderer, R.HEADINGS.title.text, result);\n } else {\n result.hed = null;\n }\n } else if (result.hed) {\n result.y = result.hed.bottom;\n }\n\n if (R.HED && R.DEK) {\n result.y += R.WSJ_PRINT ? WSJ_PRINT_HED_MARGIN : HED_AND_DEK_MARGIN;\n }\n\n if (invalidDek) {\n (0, _util.removeEl)(result.dek);\n if (R.DEK) {\n writeDek(options, rendered.outer.renderer, R.HEADINGS.dek.text, result, R.HED);\n } else {\n result.dek = null;\n }\n } else if (result.dek) {\n if (result.y !== result.dek.y) {\n var delta = result.y - result.dek.y;\n if (result.dek.el) {\n var nowY = +result.dek.el.element.getAttribute('y');\n result.dek.el.element.setAttribute('y', nowY + delta);\n }\n result.dek.y += delta;\n result.dek.bottom += delta;\n }\n result.y = result.dek.bottom;\n }\n\n rendered.outerInfo.y = result.y;\n if (R.WSJ_PRINT) {\n rendered.outerInfo.y = Math.max(rendered.outerInfo.y, PRINT_LINE);\n }\n return true;\n }\n return false;\n }\n}\n\nfunction getRules(options) {\n var RULE = (0, _textRules.getBestRule)(options.size);\n var HEADINGS = options.headings;\n var HED = HEADINGS.title.text && HEADINGS.title.enabled && RULE.title;\n var DEK = HEADINGS.dek.text && HEADINGS.dek.enabled && RULE.dek;\n var SUBDEK = HEADINGS.subdek.text && HEADINGS.subdek.enabled && RULE.subdek;\n var SUBDEKPROMO = HEADINGS.subdekPromo.text && HEADINGS.subdekPromo.enabled && RULE.subdekPromo;\n var WSJ_PRINT = options.size === 'print-wsj';\n return { RULE: RULE, HEADINGS: HEADINGS, HED: HED, DEK: DEK, SUBDEK: SUBDEK, SUBDEKPROMO: SUBDEKPROMO, WSJ_PRINT: WSJ_PRINT };\n}\n\nfunction writeHed(options, renderer, text, result) {\n var css = getCss(options, 'hed', result.width);\n var wsjPrint = false;\n if (true) {\n if (wsjPrint = options.size === 'print-wsj') {\n result.y = PRINT_LINE * 2;\n }\n }\n var financialnewsFirstLetterJ = false;\n if (false) {\n if (text.charAt(0) === \"J\") {\n financialnewsFirstLetterJ = true;\n }\n }\n\n var _ref = options.id === 'video' || options.id === 'twitterVideo' ? [text.toUpperCase(), options.legend.enabled ? 0 : 15] : [text, 0],\n _ref2 = (0, _slicedToArray3.default)(_ref, 2),\n formattedText = _ref2[0],\n offset = _ref2[1];\n\n var obj = writeText(financialnewsFirstLetterJ, renderer, formattedText, result.x, result.y, css, wsjPrint, 'charts-headline', options.id);\n result.hed = {\n x: result.x,\n y: result.y,\n width: result.width,\n offsetY: obj.offsetY,\n bottom: obj.bottom,\n el: obj.el\n };\n result.y = obj.bottom + offset;\n}\n\nfunction writeDek(options, renderer, text, result, rules) {\n var financialnewsFirstLetterJ = false;\n if (true) {\n if (!rules.HED && options.size === 'print-wsj') {\n result.y = PRINT_LINE;\n }\n }\n var css = getCss(options, 'dek', result.width);\n if (options.product === 'mansionglobal') {\n css.lineHeight = options.styles.lineHeight.dek;\n }\n var obj = writeText(financialnewsFirstLetterJ, renderer, text, result.x, result.y, css, null, 'charts-dek');\n result.dek = {\n x: result.x,\n y: result.y,\n width: result.width,\n offsetY: obj.offsetY,\n bottom: obj.bottom,\n el: obj.el\n };\n var offset = options.id === 'video' || options.id === 'twitterVideo' ? 30 : 0;\n result.y = obj.bottom + offset;\n}\n\nfunction writeChartLabel(options, renderer, text, result, rules) {\n var financialnewsFirstLetterJ = false;\n if (true) {\n if (!rules.HED && !rules.DEK && options.size === 'print-wsj') {\n result.y = PRINT_LINE;\n }\n }\n var css = getCss(options, 'subdek', result.width, rules);\n if (options.product === 'mansionglobal') {\n css.lineHeight = options.styles.lineHeight.subdek;\n css.fontWeight = options.styles.weight.semibold;\n }\n var obj = writeText(financialnewsFirstLetterJ, renderer, text, result.x, result.y, css, null, 'charts-dek', options.id, options.legend.enabled);\n result.chartLabel = {\n x: result.x,\n y: result.y,\n width: result.width,\n offsetY: obj.offsetY,\n bottom: obj.bottom,\n el: obj.el\n };\n result.y = obj.bottom;\n}\n\nfunction getCss(options, headline, width, rules) {\n var size = headline === 'hed' ? 'xlarge' : 'large';\n var type = headline === 'dek' ? headline : 'hed';\n var boldSubdek = headline === 'subdek' && (rules.DEK || !rules.HED && !rules.DEK);\n var subdekSameAsDek = headline === 'subdek' && rules.HED && rules.SUBDEK && !rules.DEK;\n var weight = boldSubdek ? 'bold' : 'normal';\n var fontFamily = options.styles.font.normal;\n var fontWeight = options.styles.weight[weight];\n var color = options.styles.color[type];\n // HED\n if (headline === 'hed') {\n if (options.product === 'financialnews') {\n fontFamily = '\"Publico Text\",\"Publico\"';\n fontWeight = options.styles.weight.bold;\n } else if (options.product === 'marketwatch') {\n color = '#666F7D';\n fontFamily = options.styles.font.bold;\n fontWeight = options.styles.weight.bold;\n } else if (options.product === 'mansionglobal') {\n fontFamily = '\"Whitney SSm Medium\", \"Whitney SSm\"';\n fontWeight = options.styles.weight.semibold;\n } else if (options.product === 'heatstreet') {\n fontFamily = options.styles.font.semibold;\n fontWeight = options.styles.weight.semibold;\n } else if (options.product === 'barrons') {\n fontFamily = options.styles.font.bold;\n fontWeight = options.styles.weight.bold;\n } else if (options.product === 'knewz') {\n fontWeight = 700;\n }\n }\n if (headline === 'subdek' && options.product === 'knewz') {\n if (options.headings.title.text) {\n fontWeight = 500;\n } else {\n fontWeight = 700;\n }\n }\n\n var css = options.styles.get(size, {\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n color: color,\n width: width\n });\n\n if (options.id === 'print-barrons') {\n switch (headline) {\n case 'hed':\n css.fontWeight = 700;\n break;\n case 'dek':\n css.fontWeight = 700;\n break;\n case 'subdek':\n css.fontSize = '7.5px';\n css.fontWeight = 300;\n css.lineHeight = '9px';\n break;\n }\n }\n\n if (true) {\n if (options.product === 'wsj') {\n var prop = headline === 'hed' ? 'headline' : 'description';\n var colorProp = type === 'dek' ? 'description' : 'headline';\n var printSubdek = options.print && headline === 'subdek';\n css.fontFamily = printSubdek && boldSubdek ? options.styles.headline.fontFamily : options.styles[prop].fontFamily;\n css.color = options.id === 'appfeed' ? '#222' : options.styles[colorProp].color;\n css.fontSize = headline === 'subdek' && !options.print ? '15px' : options.styles[prop].fontSize;\n if (options.size === 'appfeed') {\n css.fontSize = headline === 'subdek' ? '16px' : options.styles[prop].fontSize;\n }\n css.fontWeight = headline === 'subdek' ? css.fontWeight : options.styles[prop].fontWeight;\n css.lineHeight = options.styles[prop].lineHeight;\n\n if (subdekSameAsDek && headline === 'subdek') {\n css.fontSize = options.styles['description'].fontSize;\n css.lineHeight = options.styles['description'].lineHeight;\n css.fontWeight = options.styles['description'].fontWeight;\n css.color = options.styles['description'].color;\n }\n }\n }\n return css;\n}\n\n// Renders a generic block of text (either hed, dek or subdek) and returns the element\n// and its bottom y.\nfunction writeText(financialnewsFirstLetterJ, renderer, text, x, y, css) {\n var skipOffsetY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;\n var className = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n var id = arguments[8];\n var legendEnabled = arguments[9];\n\n var offsetY = void 0;\n if (skipOffsetY) offsetY = 0;else offsetY = parseInt(css.fontSize, 10);\n var addOffset = offsetY;\n if (legendEnabled) {\n if (id === 'D') addOffset = 2;\n if (id === 'appfeed') addOffset = 12;\n }\n if (financialnewsFirstLetterJ) {\n x = 3;\n };\n var el = renderer.text(text).css(css).attr({ x: x, y: y + offsetY, class: className }).add();\n var tspan = el.element.querySelectorAll('tspan');\n var lines = tspan && tspan.length ? tspan.length : 1;\n var lineHeight = parseInt(css.lineHeight, 10);\n var bottom = y + addOffset + lineHeight * (lines - 1);\n return { el: el, offsetY: offsetY, bottom: bottom };\n}\n\nfunction getMargin(options, hed) {\n switch (options.id) {\n case 'print-wsj':\n return hed ? 4 : 7;\n case 'print-barrons':\n return hed ? 3.5 : 2;\n default:\n return hed ? 8 : 14;\n }\n}\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _textRules = __webpack_require__(207);\n\nvar _textRules2 = _interopRequireDefault(_textRules);\n\nvar _util = __webpack_require__(208);\n\nvar _constants = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction preRender(data, options) {\n return data;\n}\n\nfunction postRender(highchart, options) {\n var R = getRules(options);\n var renderer = highchart.renderer;\n var result = {\n tagline: null,\n source: null,\n note: null,\n date: null,\n x: highchart.spacing[3],\n y: getStartY(highchart, options),\n width: options.width - highchart.spacing[3] - highchart.spacing[1] + 'px'\n };\n var sText = R.headings.source.text;\n var nText = R.headings.note.text;\n var spText = R.headings.sourcePromo.text;\n var npText = R.headings.notePromo.text;\n\n var sourceText = getText(options.id, sText);\n var noteText = getText(options.id, nText);\n var sourcePromoText = getText(options.id, spText);\n var notePromoText = getText(options.id, npText);\n if (R.tagline) {\n var wsjPrintTagline = isWsjPrintTagline(options.size, 'tagline');\n var taglineAlign = getTaglineAlign(options);\n if (wsjPrintTagline) {\n result.y = options.height;\n }\n result = writeSection(R.headings, options, 'tagline', renderer, R.headings.tagline.text, result, taglineAlign);\n if (wsjPrintTagline) {\n result.y = options.height - 9.2;\n }\n }\n if (R.source && !R.rule.sourcePromo) {\n result = writeSection(R.headings, options, 'source', renderer, sourceText, result, getSourceAlign(options));\n }\n if (R.note && !R.rule.notePromo) {\n result = writeSection(R.headings, options, 'note', renderer, noteText, result, getNoteAlign(options));\n }\n if (R.sourcePromo) {\n result = writeSection(R.headings, options, 'source', renderer, sourcePromoText, result, getSourceAlign(options));\n }\n if (R.notePromo) {\n result = writeSection(R.headings, options, 'note', renderer, notePromoText, result, getNoteAlign(options));\n }\n if (R.date) {\n result = writeSection(R.headings, options, 'date', renderer, R.headings.date.text, result, 'right');\n }\n\n return result;\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n var invalidSections = {};\n ['tagline', 'source', 'note', 'date'].forEach(function (section) {\n return invalidSections[section] = invalidated.includes('headings/' + section);\n });\n // const invalidTagline = invalidated.indexOf('headings/tagline') !== -1;\n // const invalidSource = invalidated.indexOf('headings/source') !== -1;\n // const invalidNote = invalidated.indexOf('headings/note') !== -1;\n if (Object.values(invalidSections).includes(true)) {\n var _R = getRules(options);\n var _renderer = rendered.outer.renderer;\n var _info = rendered.outerInfo.info;\n if (!_info) return true;\n _info = _info.notes;\n _info.y = getStartY(rendered.outer, options);\n\n var taglineAlign = getTaglineAlign(options);\n if (invalidSections.tagline) {\n (0, _util.removeEl)(_info.tagline);\n if (_R.tagline) {\n _info = writeSection(_R.headings, options, 'tagline', _renderer, _R.headings.tagline.text, _info, taglineAlign);\n } else {\n _info.tagline = null;\n }\n } else if (_info.tagline) {\n _info.y = _info.tagline.top;\n }\n ['source', 'note', 'date'].forEach(function (section) {\n return invalidSection(section, invalidSections[section]);\n });\n return true;\n }\n return false;\n }\n}\n\nfunction invalidSection(type, isInvalid) {\n if (isInvalid) {\n (0, _util.removeEl)(info[type]);\n if (R[type]) {\n info = writeSection(R.headings, options, type, renderer, R.headings[type].text, info);\n } else {\n info[type] = null;\n }\n } else if (info[type]) {\n if (info.y !== info[type].y) {\n var delta = info.y - info[type].y;\n if (info[type].el) {\n var nowY = +info[type].el.element.getAttribute('y');\n info[type].el.element.setAttribute('y', nowY + delta);\n }\n info[type].y += delta;\n info[type].top += delta;\n }\n info.y = info[type].top;\n }\n}\n\nfunction getRules(options) {\n var rule = (0, _textRules.getBestRule)(options.size);\n var headings = options.headings;\n\n var rules = { rule: rule, headings: headings };\n ['tagline', 'source', 'note', 'date', 'notePromo', 'sourcePromo'].forEach(function (section) {\n var _headings$section = headings[section],\n text = _headings$section.text,\n enabled = _headings$section.enabled;\n\n rules[section] = text && enabled && rule[section];\n });\n return rules;\n}\n\nfunction writeSection(headings, options, section, renderer, text, result) {\n var align = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'left';\n\n result[section] = {\n x: result.x,\n y: result.y,\n width: result.width,\n top: result.y,\n el: null\n };\n var obj = writeText(options, renderer, text, result, align, section);\n result[section].el = obj.el;\n result[section].top = obj.top;\n result.y = obj.top;\n if ((section === 'source' || section === 'note') && options.product === 'wsj' && !options.print) {\n if (result.note && !headings.source.text) result.y -= 3;\n if (!headings.note.text && result.source) result.y -= 3;\n if (headings.note.text && headings.source.text && section === 'source') {\n result.y -= 1;\n }\n }\n if (options.id === 'video') {\n result.y -= 28;\n }\n if (options.id === 'twitterVideo') {\n if (!headings.note.text) result.y -= 28;else result.y -= 6;\n }\n if (section === 'date') {\n var isWsjSmall = options.id === 'appfeed' || options.id === 'E' || options.id === 'D';\n var wsjOffset = isWsjSmall ? 0 : 9;\n var offset = options.product === 'wsj' ? wsjOffset : 2;\n result.y += offset;\n }\n\n return result;\n}\n\n// Renders a generic block of text (tagline or source) and returns the element\n// and its top y.\nfunction writeText(options, renderer, text, result) {\n var align = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'left';\n var section = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n\n var offsetTagline = options.print ? 1 : 0;\n var css = options.styles.get('small', {\n width: result.width\n });\n if (options.product === 'wsj' && !options.print) {\n css.fontSize = '13px';\n css.lineHeight = 17;\n }\n if (options.id === 'video' || options.id === 'twitterVideo') {\n css.fontSize = '24px';\n css.fontFamily = 'Retina Narrow';\n css.color = '#CCC';\n css.fontWeight = 500;\n }\n if (options.product === 'mansionglobal') {\n css.color = options.styles.notes.color;\n }\n if (options.product === 'knewz') {\n css.fontWeight = 900;\n css.color = '#8C8C8C';\n }\n if (true) {\n if (isWsjPrintTagline(options.size, section)) {\n css.fontFamily = \"'DJ5EscrowCond Semibold'\";\n css.fontSize = 6.6;\n } else if (options.size === 'print-wsj') {\n css.fontFamily = \"'DJ5RetinaAgReg Medium'\";\n }\n if (options.product === 'wsj' && (section === 'source' || section === 'note')) {\n css.color = '#666';\n }\n }\n if (options.id === 'print-barrons') {\n css.fontSize = 6;\n }\n if (section === 'date' && options.product === 'wsj') {\n css.fontFamily = 'Retina Narrow';\n }\n\n var resultY = options.id === 'twitterVideo' ? 477 : result.y - offsetTagline;\n var resultX = getResultX(options, align, result);\n var el = renderer.text(text).css(css).attr({\n x: resultX,\n y: resultY,\n align: align\n }).add();\n\n var lines = el.element.querySelectorAll('tspan').length;\n var lineHeight = parseFloat(css.lineHeight);\n var height = lines * lineHeight;\n var yPx = result.y;\n if (lines > 1) {\n yPx = +el.element.getAttribute('y');\n yPx -= (lines - 1) * lineHeight;\n el.element.setAttribute('y', yPx);\n }\n return {\n el: el,\n y: yPx,\n top: yPx - lineHeight\n };\n}\n\nfunction getSourceAlign(options) {\n return options.product === 'marketwatch' || options.id === 'print-barrons' ? 'right' : 'left';\n}\n\nfunction getNoteAlign(options) {\n switch (options.id) {\n case 'print-barrons':\n case 'twitterVideo':\n return 'right';\n default:\n 'left';\n }\n}\n\nfunction getTaglineAlign(options) {\n if (true) {\n if (options.size === 'print-wsj') {\n return options.sizes['print-wsj'].columns >= 2 ? 'right' : 'left';\n } else {\n return options.width > _constants.MAX_4U_WIDTH ? 'right' : 'left';\n }\n }\n if (false) {\n return options.width > _constants.MAX_4U_WIDTH ? 'right' : 'left';\n }\n}\n\nfunction getStartY(highchart, options) {\n return options.height - highchart.spacing[2] - yOffset(options);\n}\n\n// Lifts text just enough so that bottom line shows tails.\nfunction yOffset(options) {\n return Math.round((parseFloat(options.styles.lineHeight.small) - parseFloat(options.styles.size.small)) * 0.5);\n}\n\nfunction isWsjPrintTagline(size, section) {\n if (true) {\n return size === 'print-wsj' && section === 'tagline';\n }\n return false;\n}\n\nfunction getResultX(options, align, result) {\n if (options.id === 'twitterVideo' && align === 'right') return parseFloat(result.width) + 60;\n if (align === 'left') return result.x;\n return parseFloat(result.width);\n}\n\nfunction getText(id, text) {\n return (id === 'twitterVideo' || id === 'video') && text ? text.toUpperCase() : text;\n}\n\n/***/ }),\n/* 269 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _spacing = __webpack_require__(270);\n\nvar _chart = __webpack_require__(271);\n\nvar chart = _interopRequireWildcard(_chart);\n\nvar _legend = __webpack_require__(277);\n\nvar legend = _interopRequireWildcard(_legend);\n\nvar _tooltips = __webpack_require__(278);\n\nvar tooltips = _interopRequireWildcard(_tooltips);\n\nvar _axes = __webpack_require__(279);\n\nvar axes = _interopRequireWildcard(_axes);\n\nvar _recessions = __webpack_require__(210);\n\nvar recessions = _interopRequireWildcard(_recessions);\n\nvar _defs = __webpack_require__(54);\n\nvar defs = _interopRequireWildcard(_defs);\n\nvar _annotationsPrerender = __webpack_require__(209);\n\nvar annotationsPre = _interopRequireWildcard(_annotationsPrerender);\n\nvar _annotationsPostrender = __webpack_require__(287);\n\nvar annotationsPost = _interopRequireWildcard(_annotationsPostrender);\n\nvar _plotLinesPostrender = __webpack_require__(288);\n\nvar plotLines = _interopRequireWildcard(_plotLinesPostrender);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n * The Inner Chart renders the actual chart sans headlines or footnotes.\n */\nfunction preRender(options) {\n // const hasAccessibility = options.headings.accessibilityDescription.text;\n // const defaultDescription = hasAccessibility ? hasAccessibility : options.headings.subdek.text || options.headings.title.text;\n var isVideo = options.id === 'video' || options.id === 'twitterVideo';\n\n var data = {\n exporting: {\n enabled: false\n },\n // accessibility: {\n // description: defaultDescription\n // },\n series: options.series,\n chart: {\n reflow: false,\n type: options.type,\n width: options.width,\n height: options.height,\n style: isVideo ? JSON.stringify(options.styles.base) : options.styles.base,\n renderTo: options.el.querySelector('.dj-chart-inner'),\n backgroundColor: 'transparent',\n panning: false\n // backgroundColor: 'rgba(255, 0, 0, 0.1)'\n },\n credits: { enabled: false },\n title: { text: null },\n legend: { enabled: false },\n annotations: [],\n defs: {},\n plotOptions: {},\n xAxis: {},\n yAxis: {}\n };\n if (options.irregularDates) {\n data.scrollbar = { enabled: false };\n data.rangeSelector = { enabled: false };\n data.navigator = { enabled: false };\n }\n data.chart.spacing = (0, _spacing.chartSpacing)(options);\n var isSmallMW = options.product === 'marketwatch' && (options.size === 'marketwatch-ZR' || options.size === 'marketwatch-ZT' || options.size === 'thumb-marketwatch-MA');\n // only invoke addSpaceForAnnotations for charts that can't be found in isSmallMW variable\n // if (!isSmallMW) {\n // data.chart.spacing = addSpaceForAnnotations(data.chart.spacing, options);\n // }\n\n data.plotOptions[options.type] = {};\n data = chart.preRender(data, options);\n var isZR = options.product === 'marketwatch' && options.size === 'marketwatch-ZR';\n if (isZR || options.size.indexOf('thumb') === 0) {\n data.plotOptions.series = data.plotOptions.series || {};\n data.plotOptions.series.enableMouseTracking = false;\n data.xAxis.labels = data.xAxis.labels || {};\n data.yAxis.labels = data.yAxis.labels || {};\n data.yAxis.labels.enabled = false;\n if (isZR) data.xAxis.labels.enabled = false;\n data.xAxis.tickWidth = 0;\n data.yAxis.title = data.yAxis.title || {};\n data.yAxis.title.text = '';\n data.yAxis.gridLineWidth = data.xAxis.gridLineWidth = 0;\n data.xAxis.lineWidth = 0;\n data.chart.spacingTop = 0;\n } else {\n data = legend.preRender(data, options);\n data = tooltips.preRender(data, options);\n data = axes.preRender(data, options);\n data = recessions.preRender(data, options);\n if (options.annotations.length) {\n defs.preRender(data, options);\n annotationsPre.preRender(data, options);\n }\n }\n if (options.size === 'marketwatch-ZT') {\n data.xAxis.labels.enabled = false;\n data.chart.spacingBottom = 20;\n }\n if (options.irregularDates) {\n data.xAxis.crosshair = { width: 0 };\n data.yAxis.showLastLabel = true;\n }\n return data;\n}\n\nfunction postRender(highchart, options) {\n chart.postRender(highchart, options);\n var isZR = options.product === 'marketwatch' && options.size === 'marketwatch-ZR';\n if (options.size.indexOf('thumb') === 0 || isZR || options.size === 'marketwatch-ZT') {\n if (false) {\n if (options.type !== 'bar') {\n // unclear what this did\n var topEl = options.el.lastChild.lastChild.lastChild.lastChild;\n var firstChildThumb = topEl.firstChild;\n var secondChildThumb = topEl.lastChild;\n // firstChildThumb.transform.baseVal.getItem(0).setTranslate(0, 0);\n // firstChildThumb.transform.baseVal.getItem(0).setTranslate(0, 0);\n }\n }\n } else {\n // if (options.type !== 'scatter') {\n legend.postRender(highchart, options);\n // }\n\n tooltips.postRender(highchart, options);\n axes.postRender(highchart, options);\n recessions.postRender(highchart, options);\n if (options.plotLines[0].plotLineValue) plotLines.postRender(highchart, options);\n if (options.type !== 'pie' && options.type !== 'bar' && options.annotations.length) {\n annotationsPost.postRender(highchart, options);\n }\n }\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n chart.renderInvalidated(rendered, options, invalidated);\n }\n}\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.chartSpacing = chartSpacing;\nexports.chartMargin = chartMargin;\n\nvar _constants = __webpack_require__(3);\n\nfunction chartSpacing(options) {\n var spacing = [16, 0, 0, 0]; // formerly 28 for index 2\n if (options.type === 'bar') {\n spacing[0] += options.print ? -28 : -40; // This makes no sense to me.\n if (options.print) {\n spacing[2] = 0;\n }\n\n if (true) {\n if (options.product === 'wsj') {\n if (options.print) {\n spacing[0] = -12;\n spacing[2] = 4;\n } else {\n spacing[0] = -20;\n spacing[2] = 8;\n }\n }\n }\n\n if (options.horizontalBarType === 'aboveBar' || options.horizontalBarType === 'noScaleAndLeft') {\n spacing[0] = 5;\n spacing[2] = 0;\n }\n } else {\n if (false) {\n if (options.product === 'marketwatch') {\n var hasExtraLegendSpacingRight = options.legend.layout === 'right' && options.legend.enabled ? true : false;\n var isLineOrColumn = options.type === 'line' || options.type === 'column';\n var isThumb = options.size === 'thumb-marketwatch-MA' || options.size === 'marketwatch-ZR' || options.size === 'marketwatch-ZT';\n var hasSuffix = options.axes.units.suffix;\n var hasPrefix = options.axes.units.prefix;\n if (isThumb) {\n return spacing;\n }\n if (isLineOrColumn && options.annotations.length) {\n // if no annotations spacing[0] should equal 6\n spacing[0] = options.annotations.length === 0 ? 6 : 16;\n }\n if (isLineOrColumn && !options.annotations.length) {\n spacing[0] = 6;\n }\n if (isLineOrColumn && !hasExtraLegendSpacingRight) {\n var givenSuffix = hasSuffix === \" thousand\" || hasSuffix === \"%\" || hasSuffix === \" hundred\" || hasSuffix === \" billion\" || hasSuffix === \" trillion\" || hasSuffix === \" cents\";\n if (hasSuffix) {\n if (hasSuffix === \" thousand\") {\n spacing[1] = 70;\n }\n if (hasSuffix === \"%\") {\n spacing[1] = 20;\n }\n if (hasSuffix === \" hundred\") {\n spacing[1] = 60;\n }\n if (hasSuffix === \" billion\") {\n spacing[1] = 45;\n }\n if (hasSuffix === \" trillion\") {\n spacing[1] = 50;\n }\n if (hasSuffix === \" cents\") {\n spacing[1] = 40;\n }\n if (!givenSuffix) {\n var suffixLength = hasSuffix.length;\n var thousand = \" thousand\";\n var thousandLength = thousand.length;\n var diff = suffixLength - thousandLength;\n if (suffixLength === thousandLength) {\n spacing[1] = 70;\n }\n if (suffixLength > thousandLength) {\n spacing[1] = 70 + diff * 7;\n } else {\n spacing[1] = 70 + diff * 5;\n }\n }\n } else {\n spacing[1] = 6;\n }\n if (hasPrefix && !options.axes.units.formatDecimals && !hasExtraLegendSpacingRight) {\n spacing[1] = spacing[1] + 5;\n }\n }\n }\n }\n if (false) {\n if (options.product === 'financialnews' && (options.type === 'line' || options.type === 'column')) {\n spacing[1] = options.type === 'column' && options.axes.units.suffix === '%' ? 15 : 6;\n }\n }\n\n if (true) {\n if (options.product === 'wsj') {\n spacing[0] = 15;\n spacing[2] = 9;\n\n if (options.print) {\n spacing[0] = 14;\n spacing[2] = 9;\n }\n\n if (options.id === '16u') {\n spacing[0] = 16;\n spacing[2] = 10;\n }\n\n if (options.id === '12u') {\n spacing[0] = 14;\n spacing[2] = 10;\n }\n\n if (options.id === '8u') {\n spacing[0] = 13;\n spacing[2] = 7;\n }\n\n if (options.id === '4u') {\n spacing[0] = 12;\n spacing[2] = 6;\n }\n\n if (options.id === 'D' || options.id === 'appfeed') {\n spacing[0] = options.legend.enabled && (options.legend.layout === 'default' || options.legend.layout === 'top') ? 0 : 12;\n spacing[2] = 0;\n }\n\n if (options.id === 'E') {\n spacing[0] = 10;\n spacing[2] = 0;\n }\n\n if (options.annotations.length) {\n spacing[0] = 18;\n }\n if (options.id === 'video' || options.id === 'twitterVideo') {\n if (options.id === 'twitterVideo') {\n spacing[0] = 35;\n } else {\n spacing[0] = options.legend.enabled ? 20 : 35;\n }\n spacing[2] = 0;\n }\n }\n }\n\n if (options.type === 'scatter' && (options.product === 'wsj' || options.product === 'mansionglobal' || options.product === 'barrons')) {\n spacing[1] = 6;\n }\n\n if (options.type === 'scatter' && (options.product === 'financialnews' || options.product === 'marketwatch')) {\n spacing[3] = 6;\n }\n\n if (options.type === 'line' && options.product === 'marketwatch') {\n spacing[3] = 6;\n }\n }\n if (Array.isArray(options.spacing)) {\n spacing.forEach(function (n, i) {\n spacing[i] += options.spacing[i] || 0;\n });\n }\n return spacing;\n}\n\n// DO NOT USE! Interferes with legend spacing!!!\nfunction chartMargin(options) {\n return [null, null, null, null];\n // const lineHeight = parseFloat(options.styles.normal.lineHeight);\n // const margin = [lineHeight, null, lineHeight * 2, null];\n // if (options.type === 'bar') {\n // margin[0] += 4;\n // margin[2] -= lineHeight;\n // }\n // return margin;\n // if (options.size.indexOf('thumb') === 0) {\n // return margin;\n // }\n // margin[0] = 16;\n // margin[2] = 28;\n // if (options.quarterlyResults && options.series[0].data.length <= 9) {\n // margin[2] += parseFloat(options.styles.normal.fontSize);\n // }\n // if (__WSJ__) {\n // if (options.size === 'print-wsj') {\n // if (options.type === 'bar') {\n // margin[0] = 14;\n // margin[2] = 0;\n // } else {\n // margin[0] = 12;\n // margin[2] = 8;\n // }\n // }\n // }\n // return margin;\n}\n\n// export function addSpaceForAnnotations(spacing, options) {\n// if (possibleAnnotationsSpacing(options)/* && needsAnnotationSpace(options)*/) {\n// spacing[1] += options.print ? ANNOTATIONS_SPACE_PRINT : ANNOTATIONS_SPACE;\n// options.spaceAddedForAnnotations = true;\n// }\n// return spacing;\n// }\n\n// function possibleAnnotationsSpacing(options) {\n// return !(\n// options.product === 'marketwatch' ||\n// options.type === 'pie' ||\n// options.type === 'bar' ||\n// (options.type === 'column' && options.stacking)\n// );\n// }\n\n// function needsAnnotationSpace(options) {\n// const endIndex = Math.floor((options.maxDataLength - 1) * 0.95);\n// for (let i = 0; i < options.annotations.length; i++) {\n// const a = options.annotations[i];\n// const attach = a.attach.point.enabled ? a.attach.point : a.attach.category;\n// const index = attach.index;\n// if (index >= endIndex) {\n// if (a.lineEnd === 'circle') {\n// return true;\n// }\n// if (options.print && a.lineEnd === 'dot') {\n// return true;\n// }\n// }\n// }\n// return false;\n// }\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _chartLine = __webpack_require__(272);\n\nvar line = _interopRequireWildcard(_chartLine);\n\nvar _chartArea = __webpack_require__(273);\n\nvar area = _interopRequireWildcard(_chartArea);\n\nvar _chartBar = __webpack_require__(274);\n\nvar bar = _interopRequireWildcard(_chartBar);\n\nvar _chartPie = __webpack_require__(275);\n\nvar pie = _interopRequireWildcard(_chartPie);\n\nvar _chartScatter = __webpack_require__(276);\n\nvar scatter = _interopRequireWildcard(_chartScatter);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n * Updates options for specific chart types.\n */\nfunction preRender(data, options) {\n switch (options.type) {\n case 'line':\n return line.preRender(data, options);\n case 'area':\n return area.preRender(data, options);\n case 'pie':\n return pie.preRender(data, options);\n case 'scatter':\n return scatter.preRender(data, options);\n case 'bar':\n case 'column':\n return bar.preRender(data, options);\n }\n return data;\n}\n\nfunction postRender(highchart, options) {\n\n switch (options.type) {\n case 'line':\n line.postRender(highchart, options);\n break;\n case 'area':\n area.postRender(highchart, options);\n break;\n case 'pie':\n pie.postRender(highchart, options);\n break;\n case 'bar':\n case 'column':\n bar.postRender(highchart, options);\n break;\n }\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n switch (options.type) {\n case 'line':\n return line.renderInvalidated(rendered, options, invalidated);\n case 'area':\n return area.renderInvalidated(rendered, options, invalidated);\n case 'pie':\n return pie.renderInvalidated(rendered, options, invalidated);\n case 'bar':\n case 'column':\n return bar.renderInvalidated(rendered, options, invalidated);\n }\n return false;\n }\n}\n\n/***/ }),\n/* 272 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _chartUtil = __webpack_require__(34);\n\nvar _util = __webpack_require__(24);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Adds options for LINE charts.\n */\nfunction preRender(data, options) {\n var radius = 0;\n var hoverRadius = 2.5;\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var notVideoGroup = options.id !== 'video' && options.id !== 'twitterVideo';\n if (options.markedDataPoints) {\n if (options.print) !options.step ? radius = 1.25 : radius = 0;else {\n radius = !options.step ? 2.5 : 0;\n hoverRadius = !options.step ? 3.5 : 0;\n }\n }\n var showOnHover = options.showTooltips;\n data.plotOptions.line = {\n clip: notVideoGroup,\n lineWidth: options.id === 'video' ? 11 : options.id === 'twitterVideo' ? 8 : 2,\n linecap: isVideoGroup ? 'round' : 'square',\n enableMouseTracking: options.interactive,\n states: {\n hover: {\n halo: {\n opacity: 1,\n size: hoverRadius\n },\n lineWidthPlus: 0\n }\n }\n };\n data.plotOptions.series = {\n marker: {\n symbol: 'circle',\n radius: radius,\n lineWidth: 0,\n lineColor: null,\n enabled: options.markedDataPoints,\n states: {\n hover: {\n enabled: showOnHover\n }\n }\n },\n dataGrouping: {\n enabled: !options.irregularDates\n }\n };\n if (true) {\n if (options.size === 'print-wsj') {\n data.plotOptions.line.lineWidth = 1.5;\n data.plotOptions.line.linecap = 'round';\n }\n }\n return data;\n}\n\nfunction postRender(highchart, options) {\n updateDashStyle(highchart, options);\n roundLineJoins(highchart, options);\n}\n\nfunction updateDashStyle(highchart, options) {\n var paths = [].concat((0, _toConsumableArray3.default)(highchart.container.querySelectorAll('.highcharts-graph')));\n paths.forEach(function (path) {\n return (0, _util.dashStylesHelper)(path, options.size);\n });\n}\n\nfunction roundLineJoins(highchart, options) {\n var selector = 'g.highcharts-series-group g.highcharts-series path';\n var paths = highchart.container.querySelectorAll(selector);\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n for (var i = 0; i < paths.length; i++) {\n (0, _util.roundLineJoinsHelper)(paths[i], isVideoGroup);\n }\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n (0, _chartUtil.renderInvalidatedColors)(rendered, invalidated);\n }\n}\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _chartUtil = __webpack_require__(34);\n\n/**\n * Adds options for LINE charts.\n */\nfunction preRender(data, options) {\n var showOnHover = options.showTooltips;\n data.plotOptions.area = {\n lineWidth: options.series.length > 1 ? 1 : 0,\n lineColor: '#fff',\n linecap: 'square',\n fillOpacity: 1.0,\n enableMouseTracking: options.interactive,\n stacking: options.stacking,\n states: {\n hover: {\n halo: {\n opacity: 1,\n size: 4\n },\n lineWidthPlus: 0\n }\n }\n };\n data.plotOptions.series = {\n marker: {\n symbol: 'circle',\n radius: 0,\n lineWidth: 0,\n lineColor: null,\n states: {\n hover: {\n enabled: showOnHover\n }\n }\n }\n };\n if (true) {\n if (options.size === 'print-wsj') {\n data.plotOptions.area.lineWidth = 1.5;\n // data.plotOptions.area.linecap = 'butt';\n }\n }\n return data;\n}\n\nfunction postRender(highchart, options) {\n roundLineJoins(highchart, options);\n}\n\nfunction roundLineJoins(highchart, options) {\n var selector = 'g.highcharts-series-group g.highcharts-series path';\n var paths = highchart.container.querySelectorAll(selector);\n for (var i = 0; i < paths.length; i++) {\n paths[i].setAttribute('stroke-linejoin', 'bevel');\n if (true) {\n if (options.size === 'print-wsj') {\n paths[i].setAttribute('stroke-linecap', 'butt');\n }\n }\n }\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n (0, _chartUtil.renderInvalidatedColors)(rendered, invalidated);\n }\n}\n\n/***/ }),\n/* 274 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _chartUtil = __webpack_require__(34);\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n * Adds options for BAR and COLUMN charts.\n */\n\nfunction preRender(data, options) {\n var bar = data.plotOptions[options.type];\n bar.stacking = options.stacking;\n bar.marker = {\n enabled: false\n };\n bar.borderWidth = 0;\n if (options.horizontalBarType === 'aboveBar') {\n var defaultHeight = 263;\n if (options.product === 'barrons') defaultHeight = 251;\n if (options.product === 'mansionglobal') defaultHeight = 225;\n if (options.product === 'marketwatch') defaultHeight = 231;\n if (options.product === 'financialnews') defaultHeight = 231;\n if (options.product === 'knewz') defaultHeight = 251;\n var scaleFrom400 = options.height / defaultHeight < 1 ? options.height / defaultHeight : defaultHeight / options.height;\n scaleFrom400 = options.height === defaultHeight ? 0.8 : scaleFrom400;\n data.plotOptions[options.type].pointPadding = 0.2 / scaleFrom400;\n data.plotOptions[options.type].groupPadding = options.series.length > 1 && options.stacking === null ? 0.2 / scaleFrom400 : 0;\n // data.plotOptions[options.type].pointWidth = 15;\n } else {\n data.plotOptions[options.type].pointPadding = 0.2;\n data.plotOptions[options.type].groupPadding = options.series.length > 1 && options.stacking === null ? 0.2 : 0;\n // data.plotOptions[options.type].pointWidth = 15;\n }\n\n if (options.type === 'bar') {\n if (options.horizontalBarType === 'aboveBar' || options.horizontalBarType === 'noScaleAndLeft') {\n var hasPrefix = options.tooltips.prefix ? 1 : 0;\n var firstBarLength = options.series[0].data[0].y.toString().length + hasPrefix;\n firstBarLength = firstBarLength > 3 ? firstBarLength + firstBarLength : firstBarLength;\n var defaultOffset = firstBarLength === 1 ? 20 : 30 + firstBarLength * 2;\n data.plotOptions[options.type].dataLabels = {\n enabled: true,\n align: 'right',\n allowOverlap: true,\n padding: 0,\n style: {\n fontFamily: options.styles.font.normal,\n fontWeight: options.styles.weight.normal,\n fontSize: options.styles.dataLabel.fontSize,\n lineHeight: options.styles.dataLabel.lineHeight,\n textOutline: false,\n shadow: false,\n color: 'black'\n },\n x: options.horizontalBarLabel ? -5 : defaultOffset, // if I set to this to 0 it sits inside the bar,\n y: 4,\n formatter: function formatter() {\n return _formatter(data, options, this);\n }\n };\n }\n }\n data.plotOptions.series = {\n dataGrouping: {\n enabled: !options.irregularDates\n }\n };\n return data;\n}\n\nfunction _formatter(data, options, context) {\n var dataLabel = context.y;\n var value = format.applyFull(context.point.y, false, false, true, true, true);\n // const value = format.applyFull(context.point.y, options.tooltips, options.type === 'pie', true, true);\n var prefix = options.axes.units.prefix;\n var suffix = options.axes.units.suffix;\n if (context.point.index === 0) {\n if (prefix) {\n value = options.axes.units.prefix + value;\n }\n\n if (suffix) {\n value = value + suffix;\n }\n }\n\n return value;\n}\n\n// For bar charts, tweaks the spacing between bars.\n// function adjustBarsWidth(data, options) {\n// if (options.type === 'column') {\n// const c = data.plotOptions[options.type];\n// const seriesLen = options.stacking ? 1 : data.series.length;\n// let maxDataLen = 0;\n// data.series.forEach(item => {\n// maxDataLen = Math.max(maxDataLen, item.data.length);\n// });\n// const yAxisEstimate = getYAxisEstimatedWidth(data, options);\n// const xAxisWidth = options.width - yAxisEstimate;\n// const bars = seriesLen * maxDataLen;\n// const groupBars = (seriesLen > 1) ? (maxDataLen - 1) : 0;\n// const pointBars = (seriesLen === 1) ? (maxDataLen - 1) :\n// (maxDataLen * (seriesLen - 1));\n\n// const adjustedGroupBars = groupBars * 2;\n// // designed = 0.25 :\n// const adjustedPointBars = pointBars * (0.35 + 0.2 * seriesLen);\n\n// c.pointWidth = Math.max(2, xAxisWidth /\n// (bars + adjustedGroupBars + adjustedPointBars));\n\n// // if (options.legend.enabled && options.legend.layout === 'right') {\n// // c.pointWidth = c.pointWidth + (c.pointWidth * 0.25);\n// // } else {\n// // c.pointWidth = c.pointWidth + (c.pointWidth * 0.5)\n// // }\n\n\n// // let factorToSubtractBy = 0;\n\n// // if (data.series[0].data.length > 100) {\n// // if (options.width < 500) {\n// // factorToSubtractBy = 0.95;\n// // }\n// // if (options.width < 620 && options.width > 500) {\n// // factorToSubtractBy = 0.75;\n// // }\n// // if (options.width >= 620) {\n// // factorToSubtractBy = 0.25;\n// // }\n// // }\n\n// // if ((options.legend.enabled && options.legend.layout === 'right') && data.series[0].data.length > 100) {\n// // if (options.width < 500) {\n// // factorToSubtractBy = 0.95;\n// // }\n// // if (options.width < 620 && options.width > 500) {\n// // factorToSubtractBy = 0.9;\n// // }\n// // if (options.width === 620) {\n// // factorToSubtractBy = 0.7;\n// // }\n// // if (options.width > 620) {\n// // factorToSubtractBy = 0.25;\n// // }\n// // }\n\n// // if ((options.legend.enabled && options.legend.layout === 'right') && data.series[0].data.length < 100) {\n// // factorToSubtractBy = options.width < 420 ? 0.35 : 0.25;\n// // }\n\n// // c.pointWidth = c.pointWidth - (c.pointWidth * factorToSubtractBy);\n// // c.pointPadding = 0.5;\n// // c.groupPadding = 0;\n\n// }\n// return data;\n// }\n\n// NEVER CALLED\n// function getYAxisEstimatedWidth(data, options) {\n// let maxNum = 0;\n// data.series.forEach(series => {\n// for (let i = 0; i < series.data.length; i++) {\n// maxNum = Math.max(maxNum, series.data[i].y);\n// }\n// });\n// maxNum = (Math.round(maxNum) + '').length;\n// const units = options.axes.units;\n// const forceDecimals = (units.forceDecimals !== undefined) ?\n// units.forceDecimals : 0;\n// const maxDecimals = (units.maxDecimals !== undefined) ?\n// units.maxDecimals : Number.MAX_VALUE;\n// const len = maxNum + Math.min(forceDecimals, maxDecimals);\n// const fontSize = parseFloat(options.styles.normal.fontSize) * 0.5;\n// return len * fontSize;\n// }\n\nfunction postRender(highchart, options) {\n if (options.type === 'column') {\n adjustBarSpacing(highchart, options);\n }\n stylizeStacks(highchart, options);\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n (0, _chartUtil.renderInvalidatedColors)(rendered, invalidated);\n }\n}\n\n// Tweak spacing to improve rounding/pixel issues.\nfunction adjustBarSpacing(highchart, options) {\n var axis = highchart.yAxis[0];\n var delta = {\n index1: -1,\n index2: -1\n };\n // Set X for each bar to NOT rounded position. I thought this would look\n // terrible, but it's fine.\n var seriesLen = axis.series.length;\n axis.series.forEach(function (series) {\n for (var i = 0; i < series.data.length; i++) {\n var point = series.data[i];\n if (point.graphic) {\n point.graphic.element.setAttribute('x', point.barX);\n // Measure the distance between bars:\n if (delta.index1 === -1) {\n delta.index1 = i;\n delta.bar1 = point.barX;\n } else if (delta.index2 === -1) {\n if (delta.index1 < i - 1) {\n delta.index1 = -1;\n } else {\n delta.index2 = i;\n delta.bar2 = point.barX - point.pointWidth;\n }\n }\n }\n }\n });\n // if (delta.index1 !== -1 && delta.index2 !== -1) {\n // // If bars are too close together, merge them:\n // const deltaPx = delta.bar2 - delta.bar1;\n // console.log(deltaPx);\n // const hasOverOneFiftyDataPoints = options.series[0].data.length > 150 ? 1.5 : 0.5;\n // console.log(deltaPx, options.size);\n // if (deltaPx < hasOverOneFiftyDataPoints) {\n // axis.series.forEach(series => {\n // for (let i = 0; i < series.data.length; i++) {\n // const point = series.data[i];\n // if (point.graphic) {\n // let isLegendRight = options.legend.enabled && options.legend.layout === 'right' ? 0.25 : 0.125;\n // isLegendRight = options.series[0].data.length > 150 ? isLegendRight + 0.05 : isLegendRight;\n // point.graphic.element.setAttribute('x', point.barX + (deltaPx / 2));\n // point.graphic.element.setAttribute('width', point.pointWidth - deltaPx);\n // }\n // }\n // });\n // }\n // }\n}\n\n// If stacking is enabled, adjust the style of the stacks.\nfunction stylizeStacks(highchart, options) {\n if (options.stacking) {\n highchart.yAxis[0].series.forEach(function (series) {\n series.data.forEach(function (item) {\n if (item.graphic) {\n var el = item.graphic.element;\n var px = parseFloat(el.attributes.height.value);\n if (px > 0) {\n el.setAttribute('height', px - 1);\n }\n }\n });\n });\n }\n}\n\n/***/ }),\n/* 275 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.renderInvalidated = renderInvalidated;\n\nvar _transform = __webpack_require__(18);\n\nvar transform = _interopRequireWildcard(_transform);\n\nvar _chartUtil = __webpack_require__(34);\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar TOP_LEFT = 0; /**\n * Adds options for PIE charts.\n */\n\nvar TOP_RIGHT = 1;\nvar BOTTOM_RIGHT = 2;\nvar BOTTOM_LEFT = 3;\n\nvar PERC_MARGIN = 4;\nvar LABEL_MARGIN = 10;\n\nfunction preRender(data, options) {\n options = writeDataNames(options);\n var arrayofYValues = data.series[0].data;\n var sumofYValues = 0;\n arrayofYValues.forEach(function (data) {\n sumofYValues += data.y;\n });\n arrayofYValues.forEach(function (data) {\n data.y = data.y / sumofYValues;\n // data.y = format.decimals(data.y, options.axes.units, true, true);\n data.y = parseFloat(data.y * 100);\n var forceDecimals = Number(options.axes.units.forceDecimals);\n if (forceDecimals === 1) forceDecimals = 10;\n if (forceDecimals === 2) forceDecimals = 100;\n if (forceDecimals === 3) forceDecimals = 1000;\n if (forceDecimals === 0) forceDecimals = 'round';\n if (forceDecimals) {\n data.y = forceDecimals !== 'round' ? Math.ceil(data.y * forceDecimals) / forceDecimals : data.y;\n if (data.y.toString().length > 4 && forceDecimals === 'round') {\n data.y = Math.round(data.y);\n }\n }\n });\n data.plotOptions.pie = {\n dataLabels: { enabled: false },\n enableMouseTracking: options.interactive,\n showInLegend: true,\n minSize: minSize(data, options),\n center: ['50%', '50%'],\n states: {\n hover: {\n enabled: false\n }\n }\n };\n return data;\n}\n\n// Writes the categories into the series[0] data so that they are available\n// for data labels.\nfunction writeDataNames(options) {\n options.series[0].data.forEach(function (item, index) {\n if (options.type === 'pie' && options.optimizeDataOrder) {\n item.name = options.longCategories[item.originalIndex];\n } else {\n item.name = options.longCategories[index];\n }\n });\n return options;\n}\n\n// Set a minimum radius for the chart to render.\nfunction minSize(data, options) {\n return Math.min(options.height - data.chart.spacing[0] - data.chart.spacing[2], options.width - data.chart.spacing[3] - data.chart.spacing[1]) * 0.5;\n}\n\n/**\n * Draws the data labels using custom methods instead of Highcharts.\n * 1) Draw labels into corners of quadrants.\n * 2) Resize and move pie chart based on data labels locations.\n * 3) Draw connectors.\n */\nfunction postRender(highchart, options) {\n if (options.legend.enabled && options.size.indexOf('thumb') !== 0) {\n var g = drawLabelsGroup(highchart);\n var rect = getPieRect(highchart);\n if (rect) {\n var labels = drawLabels(highchart, options, g, rect);\n if (labels.length) {\n var sorted = sortLabels(labels);\n sorted = positionLabels(highchart, sorted, rect);\n var resizedRect = resizeChart(highchart, rect, sorted, labels[0].lineHeight);\n truncateLabels(highchart, labels, resizedRect);\n improveLabelPositions(highchart, labels, resizedRect);\n if (options.product === 'financialnews') {\n makeDonutChart(highchart, options);\n }\n }\n }\n }\n}\n\n// Creates a `g` element to contain the data labels, translated to the same\n// position as the pie chart.\nfunction drawLabelsGroup(highchart) {\n var gPieSelector = '.highcharts-series-group .highcharts-series';\n var gPie = highchart.container.querySelector(gPieSelector);\n var g = highchart.renderer.g().add();\n g.element.setAttribute('transform', gPie.getAttribute('transform'));\n g.element.setAttribute('class', 'pie-chart-data-labels');\n return g;\n}\n\nfunction drawLabels(highchart, options, g, rect) {\n var labels = [];\n var data = highchart.series[0].data;\n var smallSize = isSmall(options.size);\n var styleLabel = options.styles.get(smallSize ? 'small' : 'normal', {\n fontFamily: options.styles.font.bold,\n fontWeight: options.styles.weight.bold\n });\n var stylePerc = options.styles.get(smallSize ? 'small' : 'normal');\n var lineHeight = parseFloat(styleLabel.fontSize);\n var pi2 = Math.PI * 2;\n\n for (var i = 0; i < data.length; i++) {\n var slice = data[i];\n labels[i] = {};\n labels[i].slice = slice;\n labels[i].radians = (slice.angle + pi2) % pi2;\n labels[i].styleLabel = options.styles.get(smallSize ? 'small' : 'normal', {\n fontFamily: options.styles.font.bold,\n fontWeight: options.styles.weight.bold\n });\n labels[i].stylePerc = options.styles.get(smallSize ? 'small' : 'normal', {});\n labels[i].g = highchart.renderer.g().add(g);\n\n // const labelName = getLabelName(slice, options);\n labels[i].labelName = highchart.renderer.text(slice.name, 0, 0).css(labels[i].styleLabel).add(labels[i].g);\n labels[i].labelPerc = highchart.renderer.text(slice.y + '%', labels[i].labelName.element.getBoundingClientRect().width + PERC_MARGIN, 0).css(labels[i].stylePerc).add(labels[i].g);\n labels[i].lineHeight = smallSize ? 14 : parseFloat(styleLabel.lineHeight);\n var isMW = options.product === 'marketwatch';\n var isFN = options.product === 'financialnews';\n var widthVal = isMW ? 12 : 9;\n var heightVal = isMW ? 12 : 13;\n if (!isFN) {\n highchart.renderer.rect().attr({\n width: widthVal,\n height: heightVal,\n fill: slice.color\n }).add(labels[i].g);\n } else {\n highchart.renderer.circle(5, -4, widthVal / 2).attr({\n fill: slice.color\n }).add(labels[i].g);\n }\n\n var xVal = isMW ? 15 : 12;\n var yVal = isMW ? -10 : -12;\n labels[i].g.element.lastElementChild.setAttribute('x', 0);\n labels[i].g.element.firstElementChild.setAttribute('x', xVal);\n var percentageCurrentX = Number(labels[i].g.element.children[1].getAttribute('x'));\n labels[i].g.element.children[1].setAttribute('x', percentageCurrentX + xVal);\n labels[i].g.element.lastElementChild.setAttribute('y', yVal);\n }\n\n return labels;\n}\n\n// function getLabelName(slice, options) {\n// if (options.optimizeDataOrder && Array.isArray(options.categories) &&\n// options.categories.length) {\n// return options.categories[0][slice.originalIndex] || slice.name;\n// }\n// return slice.name\n// }\n\n\n// Sorts labels intro quadrants.\nfunction sortLabels(labels, rect) {\n var BR = [];\n var BL = [];\n var TL = [];\n var TR = [];\n\n labels = labels.sort(sortOnRadians);\n for (var i = 0; i < labels.length; i++) {\n var r = labels[i].radians;\n if (r > 0 && r <= Math.PI * 0.5) {\n BR.push(labels[i]);\n } else if (r > Math.PI * 0.5 && r < Math.PI) {\n BL.push(labels[i]);\n } else if (r >= Math.PI && r < Math.PI * 1.5) {\n TL.push(labels[i]);\n } else {\n TR.push(labels[i]);\n }\n }\n\n if (TR.length === 0 && BR.length) {\n TR.push(BR.shift());\n }\n BR.reverse();\n TL.reverse();\n return { BR: BR, BL: BL, TL: TL, TR: TR };\n}\n\nfunction positionLabels(highchart, sorted, rect) {\n // Top right\n var x = void 0;\n var y = 0;\n sorted.TR.forEach(function (label) {\n label.x = getRightX(highchart, label);\n label.y = y + label.lineHeight;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y += label.lineHeight;\n });\n\n // Bottom right\n y = getBottomY(highchart);\n sorted.BR.forEach(function (label) {\n label.x = getRightX(highchart, label);\n label.y = y;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y -= label.lineHeight;\n });\n\n // Bottom left\n x = getLeftX(highchart);\n y = getBottomY(highchart);\n sorted.BL.forEach(function (label) {\n label.x = x;\n label.y = y;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y -= label.lineHeight;\n });\n\n // Top left\n y = 0;\n sorted.TL.forEach(function (label) {\n label.x = x;\n label.y = y + label.lineHeight;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y += label.lineHeight;\n });\n return sorted;\n}\n\n// Returns default label left x.\nfunction getLeftX(highchart) {\n return 0; //highchart.plotLeft;\n}\n\n// Returns default label right x.\nfunction getRightX(highchart, label) {\n return highchart.plotLeft + highchart.plotWidth - highchart.spacing[1] - label.g.element.getBoundingClientRect().width;\n}\n\n// Returns default label bottom y.\nfunction getBottomY(highchart) {\n return highchart.plotHeight - LABEL_MARGIN; // - highchart.spacing[2];\n}\n\n// Scales the chart down to compensate for labels.\nfunction resizeChart(highchart, rect, sorted, lineHeight) {\n var maxLabelsTop = Math.max(sorted.TL.length, sorted.TR.length);\n var maxLabelsBot = Math.max(sorted.BL.length, sorted.BR.length);\n var newHeight = rect.height - (maxLabelsTop + maxLabelsBot) * lineHeight;\n newHeight = Math.max(newHeight, Math.min(highchart.plotWidth * 0.6, highchart.plotHeight * 0.6));\n\n var scaleRatio = newHeight / rect.height;\n var pieG = highchart.series[0].data[0].graphic.parentGroup;\n var pieContainer = pieG.element.parentElement;\n var translate = transform.read(pieG.element, 'translate');\n var x = (highchart.chartWidth - highchart.chartWidth * scaleRatio) * 0.5;\n var y = translate[1];\n y += maxLabelsTop * lineHeight;\n // y += (rect.height - newHeight) / 2;\n\n transform.write(pieG.element, 'translate', translate[0], 0);\n pieContainer.setAttribute('transform', ['matrix(', scaleRatio, ',0,0,', scaleRatio, ',', x, ',', y, ')'].join(''));\n\n var r = {\n width: rect.width * scaleRatio\n };\n r.height = r.width;\n r.left = rect.center - r.width / 2 + highchart.spacing[3];\n r.center = rect.center;\n r.right = r.left + r.width;\n r.top = y + 10 * scaleRatio;\n r.middle = r.top + r.height / 2;\n r.bottom = r.top + r.height;\n // debugRect(highchart, r.left, r.top, r.width, r.height);\n return r;\n}\n\n// Truncate any labels that overlap the pie chart with '…'.\nfunction truncateLabels(highchart, labels, rect) {\n var labelsLen = labels.length;\n if (labelsLen) {\n var parentGroup = labels[0].g.element.parentElement;\n var parentTop = transform.read(parentGroup, 'translate')[1];\n\n for (var i = 0; i < labelsLen; i++) {\n var label = labels[i];\n parentGroup = parentGroup || label.g.element.parentElement;\n var labelRect = label.g.element.getBoundingClientRect();\n label.bounds = {\n x: label.x + highchart.spacing[3],\n y: label.y + parentTop - parseFloat(label.styleLabel.fontSize) + highchart.spacing[0],\n width: labelRect.width,\n height: labelRect.height\n };\n // debugRect(highchart, testRect.x, testRect.y, testRect.width, testRect.height);\n\n var maxWidth;\n if (label.bounds.y > rect.top && label.bounds.y < rect.bottom) {\n // Label is next to pie chart.\n if (label.x < rect.left) {\n maxWidth = rect.left - label.x - LABEL_MARGIN;\n truncateLabelLeft(labelRect, label, rect.left - label.x - LABEL_MARGIN);\n } else {\n maxWidth = highchart.chartWidth - highchart.spacing[1] - rect.right;\n truncateLabelRight(labelRect, label, label.bounds.x + labelRect.width, maxWidth);\n }\n } else {\n // Label is above or below the pie.\n if (label.radians > Math.PI / 2 && label.radians < Math.PI * 1.5) {\n maxWidth = rect.center - label.x - LABEL_MARGIN;\n truncateLabelLeft(labelRect, label, maxWidth);\n } else {\n maxWidth = highchart.chartWidth - highchart.spacing[1] - rect.center;\n truncateLabelRight(labelRect, label, label.bounds.x + labelRect.width, maxWidth);\n }\n }\n }\n }\n}\n\nfunction truncateLabelLeft(labelRect, label, maxWidth) {\n var tspan = label.labelName.element.querySelector('tspan') || label.labelName.element;\n var s = label.labelName.textStr;\n var n = s.length - 2;\n while (labelRect.width > maxWidth && n > 0) {\n s = s.substr(0, n--);\n tspan.innerHTML = s + '…';\n label.labelPerc.element.setAttribute('x', label.labelName.element.getBoundingClientRect().width + PERC_MARGIN);\n labelRect = label.g.element.getBoundingClientRect();\n }\n}\n\nfunction truncateLabelRight(labelRect, label, rightX, maxWidth) {\n var tspan = label.labelName.element.querySelector('tspan') || label.labelName.element;\n var s = label.labelName.textStr;\n var n = s.length - 2;\n while (labelRect.width > maxWidth && n > 0) {\n s = s.substr(0, n--);\n tspan.innerHTML = s + '…';\n label.labelPerc.element.setAttribute('x', label.labelName.element.getBoundingClientRect().width + PERC_MARGIN);\n labelRect = label.g.element.getBoundingClientRect();\n }\n var translate = transform.read(label.g.element, 'translate');\n transform.write(label.g.element, 'translate', rightX - labelRect.width, translate[1]);\n}\n\n// Moves labels closer to the chart, if possible.\nfunction improveLabelPositions(highchart, labels, rect) {\n var L = [];\n var R = [];\n var maxL = 0;\n var maxR = 0;\n for (var i = 0; i < labels.length; i++) {\n var label = labels[i];\n if (label.radians > Math.PI * 0.5 && label.radians < Math.PI * 1.5) {\n L.push(label);\n maxL = Math.max(maxL, label.bounds.width);\n } else {\n R.push(label);\n maxR = Math.max(maxR, label.bounds.width);\n }\n }\n var delta = rect.left - LABEL_MARGIN - maxL;\n if (delta > 0) {\n L.forEach(function (item) {\n var t = transform.read(item.g.element, 'translate');\n transform.write(item.g.element, 'translate', t[0] + delta, t[1]);\n });\n }\n delta = highchart.chartWidth - (rect.right + LABEL_MARGIN) - maxR;\n if (delta > 0) {\n R.forEach(function (item) {\n var t = transform.read(item.g.element, 'translate');\n transform.write(item.g.element, 'translate', t[0] - delta, t[1]);\n });\n }\n}\n\n// We decided, at least for the moment, not to do this.\nfunction connectLabels(highchart, rect, labels) {}\n//\n\n\n// For sorting the labels from top to bottom.\nfunction sortOnY(a, b) {\n // var ta = transform.read(a.dataLabel.element, 'translate')[1];\n // var tb = transform.read(b.dataLabel.element, 'translate')[1];\n // return ta - tb;\n return a.y - b.y;\n}\n\n// Sorts the labels clockwise around the pie, starting at 3 o'clock. The\n// radians should already have been normalized to a number >= 0 and\n// <= Math.PI * 2.\nfunction sortOnRadians(a, b) {\n return a.radians - b.radians;\n}\n\n// Returns position and dimensions of the pie graphic.\nfunction getPieRect(highchart) {\n var d = highchart.series[0].data[0];\n var g = !!d ? d.graphic : null;\n if (g) {\n var r = {\n left: g.x - g.r,\n top: g.y - g.r\n };\n r.width = g.r * 2;\n r.height = r.width;\n r.right = r.left + r.width;\n r.bottom = r.top + r.height;\n r.center = r.left + r.width / 2;\n r.middle = r.top + r.height / 2;\n return r;\n }\n return null;\n}\n\nfunction debugRect(highchart, x, y, width, height) {\n return highchart.renderer.rect(x, y, width, height).attr({\n 'stroke-width': 1,\n 'stroke': 'red',\n 'fill': 'rgba(255, 255, 255, 0)'\n }).add();\n}\n\n// Used for determining whether to use 'small' or 'normal' font sizes.\nfunction isSmall(size) {\n return size === 'D' || size === '4u' || size === 'fon';\n}\n\nfunction makeDonutChart(highchart, options) {\n if (false) {\n var highchartContainer = highchart.container;\n var highchartContainerSVG = highchartContainer.firstElementChild;\n var pieRect = highchartContainerSVG.querySelectorAll('.highcharts-pie-series')[0];\n var rectRadius = pieRect.getBBox().width;\n var radius = rectRadius / 4.1;\n var svgWidth = Number(highchartContainerSVG.getAttribute('width'));\n var svgHeight = highchartContainerSVG.getAttribute('height');\n var groupOfPieValue = highchartContainer.getElementsByClassName('highcharts-pie-series')[0];\n var lastPathOfPie = groupOfPieValue.lastElementChild.getAttribute('d').split(' ');\n var lastPathOfPieYVal = Number(lastPathOfPie[lastPathOfPie.length - 2]);\n var circle = highchart.renderer.circle(svgWidth / 2, lastPathOfPieYVal, radius).attr({\n fill: '#fefaf3'\n });\n var text = highchart.renderer.text('%', svgWidth / 2 - radius / 2 * .85, lastPathOfPieYVal + radius / 2 * .75).attr({\n 'font-size': radius,\n stroke: 'black',\n text: '%'\n }).add();\n groupOfPieValue.append(circle.element);\n groupOfPieValue.append(text.element);\n }\n}\n\nfunction renderInvalidated(rendered, options, invalidated) {\n if (false) {\n (0, _chartUtil.renderInvalidatedColors)(rendered, invalidated);\n }\n}\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nfunction preRender(data, options) {\n var showOnHover = options.showTooltips;\n data.plotOptions.series = {\n // dataLabels: {\n // enabled: true,\n // formatter: function() {\n // return this.point.value;\n // }\n // },\n stickyTracking: false,\n marker: {\n symbol: 'circle',\n radius: 4,\n enabled: true,\n states: {\n hover: {\n enabled: showOnHover\n }\n }\n }\n };\n return data;\n}\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.preRender = preRender;\nexports.postRender = postRender;\nexports.checkHideColorChips = checkHideColorChips;\n\nvar _constants = __webpack_require__(3);\n\nvar _transform = __webpack_require__(18);\n\nvar transform = _interopRequireWildcard(_transform);\n\nvar _element = __webpack_require__(15);\n\nvar element = _interopRequireWildcard(_element);\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nvar _processSeries = __webpack_require__(50);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MIN_ITEM_CHARS = 16;\nvar MAX_ITEM_CHARS = 32;\nvar MIN_CHARS_RATIO = MIN_ITEM_CHARS / _constants.MAX_4U_WIDTH;\n\nfunction preRender(data, options) {\n if (false) {\n if (options.size === 'marketwatch-ZT') {\n return data;\n }\n }\n data.legend = {\n enabled: options.id === 'twitterVideo' ? false : options.legend.enabled && options.type !== 'pie',\n navigation: { enabled: false }\n };\n\n if (data.legend.enabled) {\n options.forceLegendTop = (0, _processSeries.checkForceLegendTop)(options);\n styleLegend(data, options);\n compileLegendText(data, options);\n positionLegend(data, options);\n }\n return data;\n}\n\nfunction positionLegend(data, options) {\n var LH = parseFloat(options.styles.normal.lineHeight);\n if (options.legend.layout === 'default') {\n options.legend.layout = 'right';\n }\n if (options.forceLegendTop) {\n options.legend.layout = 'top';\n }\n switch (options.legend.layout) {\n case 'top':\n data.legend.layout = 'horizontal';\n data.legend.align = 'left';\n data.legend.verticalAlign = 'top';\n if (options.print) {\n data.legend.margin = options.type === 'bar' ? 8 : 4;\n }\n if (options.id === 'D') {\n data.legend.margin = 15;\n }\n if (options.id === 'appfeed') {\n data.legend.margin = 25;\n }\n if (options.id === 'video' || options.id === 'twitterVideo') {\n data.legend.margin = 50;\n data.legend.x = 6;\n }\n break;\n // case 'right':\n default:\n data.legend.layout = 'vertical';\n data.legend.align = 'right';\n data.legend.verticalAlign = 'middle';\n data.legend.margin = 10;\n break;\n }\n return data;\n}\n\nfunction compileLegendText(data, options) {\n data.legend.labelFormatter = function () {\n var _this = this;\n\n var openTag = '<b>',\n closeTag = '</b>';\n var series = options.series.find(function (series) {\n return series.name === _this.name;\n });\n var text = compileText(series, this, options);\n var textBr = element.replaceLineBreaks(text);\n var lines = textBr.split('<br>');\n var boldLegend = element.boldText();\n var bolded = lines.map(function (line) {\n return boldLegend(line, openTag, closeTag);\n });\n return bolded.join('<br>');\n };\n}\n\nfunction styleLegend(data, options) {\n var fontFamilyStyle = options.product === 'financialnews' ? options.styles.font.normal : options.styles.font.semibold;\n var fontFamilyWeight = options.product === 'financialnews' ? options.styles.weight.normal : options.styles.weight.semibold;\n var fontSizePrint = 7.5;\n if (false) {\n if (options.product === 'financialnews') {\n fontSizePrint = options.print && options.sizes['print-fn'].columns <= 2 ? '7.75px' : '12px';\n }\n }\n var fontStyle = options.print ? {\n fontFamily: options.styles.font.normal,\n fontWeight: options.styles.weight.normal,\n fontSize: fontSizePrint\n } : {\n fontFamily: fontFamilyStyle,\n fontWeight: fontFamilyStyle\n };\n var styles = options.styles.get('normal', fontStyle);\n\n if (true) {\n if (options.product === 'wsj') {\n styles = Object.assign({}, {\n fontSize: options.styles.legend.fontSize,\n fontWeight: options.styles.legend.fontWeight,\n lineHeight: options.styles.legend.lineHeight\n });\n if (options.id === 'video' || options.id === 'twitterVideo') {\n styles.fontFamily = 'Retina Narrow';\n styles.color = '#fff';\n }\n if (options.id === 'appfeed') {\n styles.color = '#666';\n styles.fontSize = '14px';\n }\n }\n }\n\n if (false) {\n if (options.product === 'mansionglobal') {\n styles = Object.assign({}, {\n fontSize: options.styles.legend.fontSize,\n fontWeight: options.styles.legend.fontWeight,\n lineHeight: options.styles.legend.lineHeight,\n color: options.styles.legend.color\n });\n }\n }\n if (options.product === 'knewz') {\n styles = Object.assign({}, {\n color: options.styles.legend.color,\n fontFamily: styles.fontFamily,\n lineHeight: options.styles.legend.lineHeight,\n fontSize: options.styles.legend.fontSize,\n fontWeight: options.styles.legend.fontWeight\n });\n }\n data.legend.itemStyle = styles;\n\n if (options.legend.layout === 'default' && !options.forceLegendTop || options.legend.layout === 'right') {\n // if (options.print) {\n var width = options.width * 0.25 - 17; //data.legend.margin;\n data.legend.itemStyle.width = width; //`${width}px`;\n // }\n\n if (options.print) {\n data.legend.margin = 4;\n }\n data.legend.padding = 2;\n } else {\n data.legend.padding = options.print ? 0 : 2;\n }\n data.legend.itemDistance = options.print ? 6 : 12;\n data.legend.itemMarginBottom = options.print ? 4 : 5;\n data.legend.symbolPadding = 7;\n\n // this doesnt do what you think it does.\n // for some reason this helps space the series name and the series symbol\n if (options.print) {\n data.legend.symbolWidth = 4;\n } else if (options.product === 'wsj') {\n data.legend.symbolWidth = 7;\n } else {\n data.legend.symbolWidth = 9;\n }\n\n if (!options.print) {\n data.legend.itemStyle.textOverflow = null;\n }\n // data.legend.squareSymbol = false;\n if (options.type === 'scatter') {\n data.legend.symbolHeight = 24;\n } else if (options.print) {\n data.legend.symbolHeight = 6;\n } else {\n data.legend.symbolHeight = 12;\n }\n\n data.legend.symbolRadius = options.type === 'scatter' ? 12 : 0;\n\n if (options.id === 'video' || options.id === 'twitterVideo') {\n data.legend.symbolHeight = 30;\n data.legend.symbolWidth = undefined;\n data.legend.itemDistance = 75;\n data.legend.symbolPadding = 30;\n }\n\n var isTooSmallForLineUp = options.series.length > 4 && options.height < 400;\n if (isTooSmallForLineUp) {\n data.legend.verticalAlign = 'middle';\n }\n\n return data;\n}\n\nfunction postRender(highchart, options) {\n if (highchart.legend.options.enabled && options.type !== 'scatter') {\n positionLegendContainer(highchart, options);\n var items = highchart.container.querySelectorAll('.highcharts-legend-item');\n disableItems(highchart, options, items);\n if (options.id !== 'video' && options.id !== 'twitterVideo') {\n formatItems(highchart, options, items);\n } else {\n [].concat((0, _toConsumableArray3.default)(items)).forEach(function (item) {\n if (options.type === 'line') {\n var path = item.querySelector('path');\n path.setAttribute('stroke-width', 30);\n var d = path.getAttribute('d').split(' ');\n d[4] = '23';\n d[1] = '-7';\n path.setAttribute('d', d.join(' '));\n } else {\n var rect = item.querySelector('rect');\n var y = +rect.getAttribute('y');\n rect.setAttribute('y', y + 4);\n }\n });\n }\n if (options.legend.layout === 'right' && items.length) {\n positionRightAlignedItems(highchart, options, items);\n }\n if ((options.type === 'column' || options.type === 'bar') && options.colorMode === 'THRESHOLD' && items.length) {\n styleColorChip(options.series[0], items[0]);\n }\n } else {\n if (options.type === 'scatter' && highchart.legend.options.enabled) {\n var _items = highchart.container.querySelectorAll('.highcharts-legend-item');\n disableItems(highchart, options, _items);\n positionLegendContainer(highchart, options);\n if (options.legend.layout === 'right' && _items.length) {\n positionItemsMiddle(highchart);\n }\n formatScatterLegend(_items);\n }\n }\n}\n\nfunction formatScatterLegend(items) {\n items.forEach(function (item) {\n var editCircle = item.children[1];\n var editCircleDVal = editCircle.getAttribute('d');\n var indexOfFourValue = editCircleDVal.indexOf('4 4');\n editCircleDVal = editCircleDVal.replace('4 4', '5.5 5.5');\n editCircle.setAttribute('d', editCircleDVal);\n });\n}\n\n// Resets the legend group Y as items will track data/item paths instead.\n// Note that `null` in Highcharts is not the same as `0`.\nfunction positionLegendContainer(highchart, options) {\n var el = highchart.container.querySelector('.highcharts-legend');\n var isBar = options.type === 'bar';\n var x = null;\n var y = null;\n if (options.legend.layout === 'top') {\n y = isBar ? 0 : 0;\n x = options.type === 'scatter' ? 1 : x;\n }\n // else if (options.legend.layout === 'bottom') {\n // y = highchart.spacingBox.height + highchart.legend.itemHeight;\n // y = options.height - parseFloat(options.styles.normal.lineHeight) * 2;\n // } \n else if (options.legend.layout === 'right') {\n y = isBar ? null : 0;\n }\n transform.write(el, 'translate', x, y);\n}\n\n// Disable clicks on legend items since the Highcharts behavior is not\n// requested and also a bit strange.\nfunction disableItems(highchart, options, items) {\n for (var i = 0; i < highchart.series.length; i++) {\n if (highchart.series[i].legendGroup) {\n highchart.series[i].legendGroup.element.onmouseover = null;\n if (items[i]) items[i].querySelector('text').style.cursor = 'default';\n }\n }\n}\n\nfunction checkHideColorChips(options) {\n var product = options.product,\n type = options.type,\n legend = options.legend;\n var layout = legend.layout,\n showColorChips = legend.showColorChips;\n\n return product === 'wsj' && layout === 'right' && !showColorChips && (type === 'line' || type === 'area');\n}\n\n// Takes the color in the block and applies it to the text.\nfunction formatItems(highchart, options, items) {\n var hideColorChips = checkHideColorChips(options);\n var x = 0;\n var initX = 0;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n // Draw the key with the correct dimensions:\n var rect = null;\n var path = null;\n\n if (rect = item.querySelector('rect')) {\n if (options.product !== 'marketwatch' && options.id !== 'video' && options.id !== 'twitterVideo') {\n var _ref = options.product === 'wsj' ? [10, 10, 7] : [13, 9, 5],\n _ref2 = (0, _slicedToArray3.default)(_ref, 3),\n height = _ref2[0],\n width = _ref2[1],\n y = _ref2[2];\n\n rect.setAttribute('width', options.print ? 4 : width);\n rect.setAttribute('height', options.print ? 6 : height);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', options.print ? 9 : y);\n }\n if (false) {\n if (options.product === 'financialnews') {\n var circleX = Number(items[i].children[0].getAttribute('x'));\n var circleY = Number(items[i].children[0].getAttribute('y'));\n var circleRadius = options.print && options.sizes['print-fn'].columns <= 2 ? 5.5 : 5;\n var positionY = options.print && options.sizes['print-fn'].columns <= 2 ? 3 : 11;\n var positionX = options.print ? 0 : 7;\n var circle = highchart.renderer.circle(positionX, positionY, circleRadius).attr({\n fill: items[i].children[1].getAttribute('fill')\n });\n items[i].append(circle.element);\n if (options.print) {\n items[i].children[0].setAttribute('x', circleX + 10);\n }\n rect.setAttribute('opacity', 0);\n }\n }\n\n if (false) {\n if ((options.type === 'bar' || options.type === 'area' || options.type === 'column') && options.product === 'marketwatch') {\n rect.setAttribute('width', 13);\n rect.setAttribute('height', 13);\n rect.setAttribute('x', -3);\n rect.setAttribute('y', 5);\n }\n }\n if (hideColorChips) {\n rect.setAttribute('display', 'none');\n }\n } else if (path = item.querySelector('path')) {\n path.setAttribute('stroke-dasharray', 'none');\n path.setAttribute('stroke-linecap', 'butt');\n\n if (options.product !== 'marketwatch') {\n path.setAttribute('stroke-width', options.print ? 6 : 13);\n path.setAttribute('d', options.print ? 'M 0 12 L 4 12' : 'M 0 11 L 9 11');\n }\n\n if (true) {\n if (options.product === 'wsj') {\n path.setAttribute('stroke-width', options.styles.legend.rectHeight);\n path.setAttribute('d', 'M 0 12 L ' + options.styles.legend.rectWidth + ' 12');\n }\n }\n\n if (false) {\n if (options.type === 'line' && options.product === 'marketwatch') {\n path.setAttribute('stroke-width', 3);\n path.setAttribute('d', 'M 0 11 L 9 11');\n } else if (options.type !== 'line' && options.product === 'marketwatch') {\n path.setAttribute('stroke-width', options.print ? 6 : 13);\n path.setAttribute('d', options.print ? 'M 0 12 L 4 12' : 'M 0 11 L 9 11');\n }\n }\n if (false) {\n if (options.product === 'financialnews') {\n var itemsChildrenLength = items[i].children.length;\n var pathColorIndex = 0;\n var circleIndex = 1;\n if (itemsChildrenLength === 3) {\n pathColorIndex = 1;\n circleIndex = 2;\n }\n var pathColor = items[i].children[pathColorIndex].getAttribute('stroke');\n var _circleX = Number(items[i].children[circleIndex].getAttribute('x'));\n var _circleY = Number(items[i].children[circleIndex].getAttribute('y'));\n var _circleRadius = options.print && options.sizes['print-fn'].columns <= 2 ? 5.5 : 5;\n var _positionY = options.print && options.sizes['print-fn'].columns <= 2 ? 3 : 4;\n var _positionX = options.print ? 10 : 8;\n var _circle = highchart.renderer.circle(_circleX - _positionX, _circleY - _positionY, _circleRadius).attr({\n fill: pathColor\n });\n items[i].append(_circle.element);\n path.setAttribute('opacity', 0);\n if (options.print) {\n var translateVal = items[i].getAttribute('transform');\n var getLastVal = translateVal.split(',');\n items[i].setAttribute('transform', 'translate(10,' + getLastVal[1]);\n }\n }\n }\n\n if (hideColorChips) {\n path.setAttribute('display', 'none');\n if (options.markedDataPoints) {\n var marker = item.querySelector('.highcharts-point');\n marker.setAttribute('display', 'none');\n }\n }\n }\n\n if (options.print) {\n var text = item.querySelector('text');\n text.setAttribute('x', 6);\n }\n\n if (options.product === 'wsj' && !options.print) {\n var _text = item.querySelector('text');\n _text.setAttribute('y', 17);\n }\n\n if (hideColorChips) {\n var tspans = item.querySelectorAll('tspan');\n [].concat((0, _toConsumableArray3.default)(tspans)).forEach(function (tspan) {\n var currentX = +tspan.getAttribute('x');\n tspan.setAttribute('x', -2);\n });\n }\n\n // Space the items apart. TODO: Figure out how to make Highcharts do this!\n // if (options.legend.layout !== 'right') {\n // const translate = transform.read(item, 'translate');\n // if (i === 0) {\n // initX = translate[0];\n // }\n // if (translate[0] <= initX) {\n // x = 0;\n // }\n // transform.write(item, 'translate', translate[0] + x);\n // x += options.print ? 6 : 12;\n // }\n }\n}\n\nfunction positionRightAlignedItems(highchart, options, items) {\n switch (options.type) {\n case 'area':\n case 'line':\n positionLineItems(highchart, items, options);\n break;\n case 'column':\n positionColumnItems(highchart, items, options);\n break;\n case 'bar':\n positionItemsMiddle(highchart);\n break;\n }\n}\n\nfunction positionLineItems(highchart, items, options) {\n // const isTooSmallForLineUp = options.series.length > 4 && options.height < 400;\n var itemY = getLineItemsY(highchart.container, items, options);\n var botY = highchart.plotTop + highchart.plotHeight;\n positionLegendItems(itemY, items, options, botY, highchart);\n // if (!isTooSmallForLineUp) {\n // positionLegendItems(itemY, items, options, botY, highchart);\n // } else {\n // positionItemsMiddle(highchart);\n // } \n}\n\nfunction positionColumnItems(highchart, items, options) {\n var itemY = getColumnItemsY(highchart.container, items, options);\n var botY = highchart.plotTop + highchart.plotHeight;\n positionItemsMiddle(highchart);\n}\n\n// Necessary because Highcharts messes up \"middle\".\nfunction positionItemsMiddle(highchart) {\n var legendEl = highchart.container.querySelector('g.highcharts-legend');\n var translate = transform.read(legendEl, 'translate');\n var height = legendEl.getBoundingClientRect().height;\n var newY = highchart.plotTop + (highchart.plotHeight - height) / 2;\n if (translate) transform.write(legendEl, 'translate', translate[0], newY);\n}\n\n// Positions the legend items to track data points but not overlap.\nfunction positionLegendItems(itemY, items, options, botY, highchart) {\n var lineHeight = parseFloat(options.styles.lineHeight.normal);\n var midIndex = Math.min(itemY.length - 1, Math.round(itemY.length / 2));\n var margin = 8; //options.print ? 4 : 8;\n var willFit = true;\n\n // let y = itemY[midIndex].y;\n // for (let i = midIndex - 1; i >= 0; i--) {\n // let h = items[itemY[i].index].getBoundingClientRect().height + margin;\n // itemY[i].y = Math.min(itemY[i].y, y - h);\n // y = itemY[i].y;\n // }\n // y = itemY[midIndex].y +\n // items[itemY[midIndex].index].getBoundingClientRect().height + margin;\n\n // find the Y positions for the corresponding series by matching color\n var legendItemPositions = [].concat((0, _toConsumableArray3.default)(items)).map(function (legendItem, i) {\n var _ref3 = options.type === 'line' ? ['path', 'stroke'] : ['rect', 'fill'],\n _ref4 = (0, _slicedToArray3.default)(_ref3, 2),\n el = _ref4[0],\n attr = _ref4[1];\n\n var colorChip = legendItem.querySelector(el);\n var color = window.getComputedStyle(colorChip).getPropertyValue(attr);\n var match = itemY.find(function (obj) {\n return obj.color === color;\n });\n return { index: i, y: match.y };\n });\n sortItemY(legendItemPositions);\n var y = legendItemPositions[0].y;\n\n legendItemPositions.forEach(function (position) {\n position.y = Math.max(position.y, y);\n y = position.y + items[position.index].getBoundingClientRect().height + margin;\n });\n\n // y = 0;\n // for (let i = 0; i < midIndex; i++) {\n // itemY[i].y = Math.max(y, itemY[i].y);\n // y = itemY[i].y + items[itemY[i].index].getBoundingClientRect().height + margin;\n // }\n\n // for (let i = midIndex; i < items.length; i++) {\n // // let h = y + items[itemY[i - 1].index].getBoundingClientRect().height;// + margin;\n // itemY[i].y = Math.max(itemY[i].y, y);\n // y = itemY[i].y + items[itemY[i].index].getBoundingClientRect().height + margin;\n // }\n\n\n legendItemPositions.forEach(function (position) {\n if (position.y > botY) {\n positionItemsMiddle(highchart);\n willFit = false;\n }\n });\n\n // Finally, set the Y of the actual legend item element.\n if (willFit) {\n legendItemPositions.forEach(function (position) {\n if (position.y < botY) {\n transform.write(items[position.index], 'translate', null, position.y);\n }\n });\n }\n}\n\n// Returns array of Y positions for each legend item for column charts.\nfunction getColumnItemsY(container, items, options) {\n var fontSize = parseFloat(options.styles.size.normal);\n var seriesEl = container.querySelector('.highcharts-series-group');\n var barsEl = seriesEl.querySelectorAll('.highcharts-series');\n var printOffset = options.print ? -8 : 0;\n var itemY = [];\n\n for (var i = 0; i < items.length; i++) {\n // Get the path's parent and path Y.\n var g = barsEl[i];\n var rects = g.querySelectorAll('rect');\n var r = rects[rects.length - 1];\n var rY = rects && rects.length ? transform.read(g, 'translate')[1] + (+r.getAttribute('y') + +r.getAttribute('height') / 2) : fontSize;\n\n // Combine the results.\n itemY[i] = {\n index: i,\n y: rY - fontSize + printOffset\n };\n }\n\n return sortItemY(itemY);\n}\n\n// Returns array of Y positions for each legend item for line/area charts.\nfunction getLineItemsY(container, items, options) {\n var fontSize = parseFloat(options.styles.size.normal);\n var seriesEl = container.querySelector('.highcharts-series-group');\n var linesEl = seriesEl.querySelectorAll('.highcharts-series');\n var itemY = [];\n\n for (var i = 0; i < linesEl.length; i++) {\n // Get the path's parent and path Y.\n var _ref5 = options.type === 'area' ? [i, 'fill'] : [linesEl.length - i - 1, 'stroke'],\n _ref6 = (0, _slicedToArray3.default)(_ref5, 2),\n lineIndex = _ref6[0],\n attr = _ref6[1];\n\n var pathEl = linesEl[lineIndex];\n var pathElY = transform.read(pathEl, 'translate')[1];\n var paths = pathEl.querySelectorAll('path');\n var d = transform.read(paths[0], 'd');\n var color = window.getComputedStyle(paths[0]).getPropertyValue(attr);\n d.sort(function (a, b) {\n return b[0] - a[0];\n });\n\n var pathY = void 0;\n if (options.type === 'line') {\n pathY = d[0][1];\n } else {\n (function () {\n var dx = d[0][0];\n var d0 = d.filter(function (item) {\n return item[0] === dx;\n }).sort(function (a, b) {\n return a[1] - b[1];\n });\n if (d0.length >= 2) {\n pathY = (d0[d0.length - 1][1] - d0[0][1]) / 2 + d0[0][1];\n } else {\n pathY = d0[0][1];\n }\n })();\n }\n\n // Combine the results.\n itemY[i] = {\n index: i,\n y: pathY, // + fontSize / 2,\n color: color\n };\n }\n return sortItemY(itemY);\n}\n\n// Sort on Y and return.\nfunction sortItemY(itemY) {\n itemY.sort(function (a, b) {\n return a.y - b.y;\n });\n return itemY;\n}\n\nfunction compileText(series, item, options) {\n var val = options.type === 'scatter' ? series.name : lastItem(item.yData);\n return (series.markdown || '').replace(_constants.CATEGORY, options.liveMarketData || options.type === 'scatter' ? 'n/a' : compiledCategory(options) || 'n/a').replace(_constants.SERIES, series.name || 'n/a').replace(_constants.SYMBOL, item.userOptions.symbol || 'n/a').replace(_constants.VALUE, options.liveMarketData ? 'n/a' : val).replace(_constants.POINT, options.liveMarketData ? 'n/a' : compiledPoint(item.yData, options));\n}\n\nfunction compiledCategory(options) {\n if (!options.longCategories) return 'n/a';\n return options.categoriesAreDates && options.dates[0].value > lastItem(options.dates).value ? options.longCategories[0] : lastItem(options.longCategories);\n}\n\nfunction compiledPoint(data, options) {\n return lastItem(data) ? format.applyFull(lastItem(data), options.tooltips, options.type === 'pie', true, true) : 'null';\n}\n\nfunction lastItem(arr) {\n return typeof arr === 'string' ? arr : arr[arr.length - 1];\n}\n\n// split the color chip into two colors for threshold charts\nfunction styleColorChip(series, item) {\n var colorChip = item.querySelector('rect');\n var topColor = series.color;\n var bottomColor = series.negativeColor;\n var _ref7 = [createSvgEl('defs'), createSvgEl('linearGradient'), createSvgEl('stop'), createSvgEl('stop')],\n defs = _ref7[0],\n gradient = _ref7[1],\n topStop = _ref7[2],\n bottomStop = _ref7[3];\n\n var gradientAttrs = { 'id': 'lg', 'x2': '0%', 'y2': '100%' };\n setAttrs(gradient, gradientAttrs);\n setOffset(topStop, bottomStop);\n setColor(topStop, topColor);\n setColor(bottomStop, bottomColor);\n gradient.appendChild(topStop);\n gradient.appendChild(bottomStop);\n defs.appendChild(gradient);\n item.appendChild(defs);\n colorChip.setAttribute('fill', 'url(#lg)');\n}\n\nfunction createSvgEl(type) {\n var svgns = 'http://www.w3.org/2000/svg';\n return document.createElementNS(svgns, type);\n}\n\nfunction setAttrs(el, attrs) {\n for (var key in attrs) {\n el.setAttribute(key, attrs[key]);\n }\n}\n\nfunction setOffset() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args.forEach(function (arg) {\n return arg.setAttribute('offset', '50%');\n });\n}\n\nfunction setColor(el, color) {\n el.setAttribute('stop-color', color);\n}\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.preRender = preRender;\nexports.postRender = postRender;\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nvar _moment = __webpack_require__(0);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _constants = __webpack_require__(3);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction preRender(data, options) {\n data.tooltip = { enabled: options.interactive && options.showTooltips };\n var tooltip = data.tooltip;\n if (tooltip.enabled) {\n tooltip.borderWidth = 1;\n tooltip.borderColor = '#CCC';\n tooltip.shared = false;\n tooltip.style = getStyle(options);\n tooltip.split = false;\n tooltip.shadow = false;\n tooltip.hideDelay = options.type === 'line' || options.type === 'area' ? 500 : 5000;\n tooltip.formatter = function () {\n return formatter(data, options, this);\n };\n }\n\n if (true) {\n if (options.product === 'wsj') {\n tooltip.borderRadius = 0;\n tooltip.padding = 5;\n }\n }\n return data;\n}\n\nfunction formatter(data, options, context) {\n // hide tooltip for transparent data\n if (context.color === _constants.TRANSPARENT) return false;\n\n var needsCommas = options.needsCommas,\n liveMarketData = options.liveMarketData,\n isPercent = options.isPercent,\n isIntraday = options.isIntraday,\n series = options.series,\n longCategories = options.longCategories,\n tooltips = options.tooltips,\n type = options.type,\n categoriesAreDates = options.categoriesAreDates,\n optimizeDataOrder = options.optimizeDataOrder,\n stacking = options.stacking,\n axes = options.axes;\n\n\n var categories = longCategories || (options.categories ? options.categories[0] : null);\n\n var marketNotBar = liveMarketData && type !== 'bar';\n var category = void 0;\n if (marketNotBar) {\n var catIdx = series[0].data.findIndex(function (_ref) {\n var x = _ref.x;\n return x === context.x;\n });\n category = formatCategory(categories[catIdx]);\n }\n\n var _context$series$userO = context.series.userOptions,\n decimals = _context$series$userO.decimals,\n prefix = _context$series$userO.prefix,\n suffix = _context$series$userO.suffix;\n\n var tooltipY = getTooltipY(axes, tooltips, context.point.y);\n var isStackedPercent = (type === 'column' || type === 'area' || type === 'bar') && stacking === 'percent';\n var value = marketNotBar ? getValue(context.y, isPercent, prefix, suffix, decimals, needsCommas) : format.applyFull(tooltipY, tooltips, type === 'pie', true, true, false, isStackedPercent);\n\n if (!marketNotBar) {\n var firstYear = categories[0];\n var lastYear = categories[categories.length - 1];\n var isReverse = false;\n if (typeof firstYear === 'string' && typeof lastYear === 'string' && categoriesAreDates) {\n var firstYearSplit = firstYear.split(' ');\n var lastYearSplit = lastYear.split(' ');\n if (firstYearSplit.indexOf('p.m.') !== -1 && firstYearSplit.indexOf('a.m.') !== -1) {\n var firstYearTime = firstYearSplit[firstYearSplit.length - 2];\n var firstYearTimeSplit = firstYearTime.split(':');\n var hourFirstTimeSplit = parseInt(firstYearTimeSplit) + 12;\n hourFirstTimeSplit = hourFirstTimeSplit.toString();\n firstYearTimeSplit[0] = hourFirstTimeSplit;\n firstYearTimeSplit = firstYearTimeSplit.join(':');\n var lastYearTime = lastYearSplit[lastYearSplit.length - 2];\n var lastYearTimeSplit = lastYearTime.split(':');\n var hourLastTimeSplit = parseInt(lastYearTimeSplit) + 12;\n hourLastTimeSplit = hourLastTimeSplit.toString();\n lastYearTimeSplit[0] = hourLastTimeSplit;\n lastYearTimeSplit = lastYearTimeSplit.join(':');\n\n isReverse = firstYearTimeSplit > lastYearTimeSplit;\n } else {\n isReverse = findIfReverse(categories);\n }\n }\n\n if (isReverse) {\n categories.reverse();\n }\n var seriesData = !data.series ? series : data.series;\n var dataPoint = getDataPoint(seriesData, context, isReverse);\n }\n var index = dataPoint ? dataPoint.index : null;\n\n if (type === 'pie' && optimizeDataOrder && dataPoint.point.hasOwnProperty('originalIndex')) {\n category = context.point.name;\n } else if (!marketNotBar) {\n category = categories ? categories[index] : context.point.category || context.point.options.name;\n }\n var formatter = { category: category, value: value, index: index };\n\n if (isStackedPercent) {\n return formatStackedPercent(data, options, context, formatter);\n }\n return formatStandard(options, context, formatter);\n}\n\nfunction formatCategory(category) {\n var month = category.match(/([A-za-z]{3,})(\\s|.)/g);\n var day = category.match(/(\\d{1,2}),/g);\n var year = category.match(/\\d{4}/g);\n var time = category.match(/(\\d{1,2}):(\\d{2})|\\s\\d{1,2}\\s/g);\n var ampm = category.match(/(a|p).m./g);\n var updatedDate = '';\n if (month) updatedDate += formatMonth(month) + ' ';\n if (day) updatedDate += day[0] + ' ';\n if (year) updatedDate += year[0];\n if (time) {\n updatedDate += ' ' + time[0] + ' ' + ampm[0];\n }\n return updatedDate;\n}\n\nfunction formatMonth(month) {\n return month[0].slice(0, 3);\n}\n\nfunction getTooltipY(axes, tooltips, y) {\n if (axes.units) {\n return format.getDivisor(axes.units.divisor) * y / format.getDivisor(tooltips.divisor);\n }\n return y;\n}\n\nfunction getValue(y, isPercent, prefix, suffix, decimals, needsCommas) {\n return isPercent ? y.toFixed(1) + '%' : formatY(y, decimals, needsCommas, prefix, suffix);\n}\n\nfunction formatY(y, decimals, needsCommas, prefix, suffix) {\n y = y.toFixed(decimals);\n\n if (!needsCommas) return y;\n\n var _y$split = y.split('.'),\n _y$split2 = (0, _slicedToArray3.default)(_y$split, 2),\n dollars = _y$split2[0],\n cents = _y$split2[1];\n\n var digitsArr = dollars.split('').reverse();\n var commasAdded = addCommas(digitsArr);\n var finalString = prefix + formatDollars(commasAdded);\n if (cents) finalString += '.' + cents;\n return finalString + suffix;\n}\n\nfunction addCommas(digits) {\n return digits.reduce(function (str, digit, i) {\n return str + checkComma(i) + digit;\n }, '');\n}\n\nfunction checkComma(i) {\n return i % 3 === 0 && i > 0 ? ',' : '';\n}\n\nfunction formatDollars(digits) {\n return digits.split('').reverse().join('');\n}\n\nfunction findIfReverse(categories) {\n var currentDateComparison = categories[0];\n if (isNaN(Date.parse(currentDateComparison))) {\n var currentDateComparisonLength = currentDateComparison.split(' ').length;\n if (currentDateComparisonLength === 2) {\n currentDateComparison = currentDateComparison.split(' ').join(' 1, ');\n currentDateComparison = currentDateComparison.replace('.', '');\n }\n }\n for (var f = 1; f < categories.length; f++) {\n var currentCategory = categories[f];\n if (isNaN(Date.parse(currentCategory))) {\n var currentIndexComparisonLength = categories[f].split(' ').length;\n if (currentIndexComparisonLength === 2) {\n currentCategory = currentCategory.split(' ').join(' 1, ');\n currentCategory = currentCategory.replace('.', '');\n }\n }\n if (isNaN(new Date(currentCategory))) {\n return false;\n }\n if (f === 1) {\n if (Date.parse(currentDateComparison) < Date.parse(currentCategory)) {\n return false;\n }\n } else {\n // currentDateComparison = categories[f - 1];\n if (Date.parse(currentDateComparison) < Date.parse(currentCategory)) {\n return false;\n }\n if (f === categories.length - 1 && Date.parse(currentDateComparison) > Date.parse(currentCategory)) {\n return true;\n }\n }\n }\n}\n\nfunction getDataPoint(series, context, isReverse) {\n if (context.x !== undefined) {\n for (var s = 0; s < series.length; s++) {\n for (var d = 0; d < series[s].data.length; d++) {\n if (series[s].data[d].x === context.x) {\n return { point: series[s].data[d], index: series[s].data[d].index };\n }\n }\n }\n }\n return {\n point: context.point,\n index: context.point.hasOwnProperty('index') ? context.point.index : context.point.x\n };\n}\n\n// NEVER CALLED\n// function divideValue(value, divisorUnit) {\n// if (divisorUnit && divisorUnit !== 'none') {\n// const divisor = format.getDivisor(divisorUnit);\n// return +value / divisor;\n// }\n// return value;\n// }\n\nfunction space() {\n return '<span style=\"color: rgba(255, 255, 255, 0);\">x</span>';\n}\n\nfunction formatStandard(options, context, formatter) {\n var isWSJWeight = options.product === 'wsj' ? 500 : 600;\n return ['<span>', formatSeries(options, context), '<span>', formatter.category, '</span>', space(), '<span style=\"font-weight: ' + isWSJWeight + ';\">', formatter.value, '</span>', '</span>'].join('');\n}\n\nfunction formatStackedPercent(data, options, context, formatter) {\n var isWSJWeight = options.product === 'wsj' ? 500 : 600;\n var total = 0;\n data.series.forEach(function (item) {\n total += item.data[formatter.index].y;\n });\n return ['<span style=\"', formatter.style, '\">', formatSeries(options, context), '<span style=\"padding: 0 6px 0 0;\">', formatter.category, '</span>', space(), '<span style=\"font-weight: ' + isWSJWeight + '; margin: 0 0 0 24px\">', formatter.value, ' (', Math.round(context.point.y / total * 100), '%)', '</span>', '</span>'].join('');\n}\n\nfunction formatSeries(options, context) {\n if (options.legend.enabled && options.series.length > 1) {\n var css = void 0;\n var defaultCSS = ['padding: 0 6px 0 0;'];\n\n if (options.product !== 'wsj') {\n css = defaultCSS.concat(['font-weight: 600;', 'color: ' + context.series.color + ';']).join('');\n }\n\n if (options.product === 'wsj') {\n css = defaultCSS.concat(['font-weight: 500;']).join('');\n }\n var nameArray = options.type === 'scatter' ? context.point.value.toString().split(' ') : context.series.name.toString().split(' ');\n if (nameArray[0] === '<br') {\n for (var i = 0; i < nameArray.length; i++) {\n if (nameArray[i] === '<br' || nameArray[i] === '/>') {\n nameArray.splice(i, 1);\n i--;\n }\n }\n }\n nameArray = nameArray.join(' ');\n return ['<span style=\"' + css + '\">', nameArray, '</span>', space()].join('');\n }\n}\n\nfunction getStyle(options) {\n var width = options.width > 300 ? '400px' : '250px';\n var data = {\n padding: '8px',\n width: width,\n fontSize: '14px',\n fontFamily: options.styles.font.normal,\n fontWeight: options.styles.weight.normal,\n fontStyle: 'normal',\n color: '#000000',\n whiteSpace: 'normal !important',\n overflow: 'auto'\n };\n\n if (true) {\n if (options.product === 'wsj') {\n data.fontSize = '15px';\n data.lineHeight = '18px';\n data.fontWeight = 300;\n }\n }\n\n return data;\n}\n\nfunction postRender(highchart, options) {}\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.preRender = preRender;\nexports.postRender = postRender;\n\nvar _axesPrerender = __webpack_require__(280);\n\nvar _axesPrerender2 = _interopRequireDefault(_axesPrerender);\n\nvar _axesPostrender = __webpack_require__(284);\n\nvar _axesPostrender2 = _interopRequireDefault(_axesPostrender);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar styles = null;\n\nfunction preRender(data, options) {\n styles = writeStyles(options);\n return (0, _axesPrerender2.default)(data, options, styles);\n}\n\nfunction postRender(highchart, options) {\n styles = writeStyles(options);\n return (0, _axesPostrender2.default)(highchart, options, styles);\n}\n\n// Writes styles constants used throughout axes processing.\nfunction writeStyles(options) {\n // const isWSJOnline = !options.product === 'wsj' && options.print ? options.styles.get('normal') : \n // options.styles.get('normal').fontFamily = '\"Retina Narrow\", sans-serif';\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var normal = options.styles.get('normal');\n if (options.product === 'wsj' && !options.print) {\n if (options.categoriesAreDates || options.type !== 'column') normal.fontFamily = '\"Retina Narrow\", sans-serif';\n if (isVideoGroup) normal.fontWeight = 400;\n normal.lineHeight = 15;\n }\n var defaultOptions = {\n FONT_SIZE: parseFloat(options.styles.size.normal),\n NORMAL_STYLE: normal,\n LIGHT_STYLE: options.styles.get('normal', {\n fontFamily: options.styles.font.light,\n fontWeight: options.styles.weight.light\n }),\n BOLD_STYLE: options.styles.get('normal', {\n fontFamily: options.styles.font.bold,\n fontWeight: options.styles.weight.bold\n }),\n SHORT_TICK_LENGTH: 4,\n MEDIUM_TICK_LENGTH: 7,\n LONG_TICK_LENGTH: parseFloat(options.styles.size.normal) + 5,\n MARGIN: 3\n };\n\n if (false) {\n if (options.product === 'marketwatch') {\n return Object.assign({}, defaultOptions, {\n NORMAL_STYLE: options.styles.get('normal', {\n fontFamily: options.styles.font.semibold,\n fontWeight: options.styles.weight.semibold\n })\n });\n }\n }\n\n if (true) {\n if (options.product === 'wsj') {\n var hideTicks = !options.categoriesAreDates && options.type === 'column';\n return Object.assign({}, defaultOptions, {\n SHORT_TICK_LENGTH: hideTicks ? 0 : options.styles.tick.shortSize,\n MEDIUM_TICK_LENGTH: hideTicks ? 0 : options.styles.tick.mediumSize,\n FONT_SIZE: options.styles.axes.label.fontSize,\n LONG_TICK_LENGTH: hideTicks ? 0 : options.styles.tick.longSize,\n AXES: options.styles.axes\n });\n }\n }\n\n if (options.product === 'knewz') {\n return Object.assign({}, defaultOptions, {\n NORMAL_STYLE: options.styles.get('normal', {\n fontWeight: 700,\n fontSize: options.styles.axes.label.fontSize,\n lineHeight: options.styles.axes.label.lineHeight\n })\n });\n }\n\n if (false) {\n if (options.product === 'mansionglobal') {\n return Object.assign({}, defaultOptions, {\n AXES: options.styles.axes\n });\n }\n }\n\n return defaultOptions;\n}\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof2 = __webpack_require__(202);\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.default = axesPreRender;\nexports.formatterYAxisLabel = formatterYAxisLabel;\n\nvar _format = __webpack_require__(14);\n\nvar format = _interopRequireWildcard(_format);\n\nvar _constants = __webpack_require__(3);\n\nvar _axesCommon = __webpack_require__(49);\n\nvar _annotationsPrerender = __webpack_require__(209);\n\nvar _recessions = __webpack_require__(210);\n\nvar _zero = __webpack_require__(31);\n\nvar _lodash = __webpack_require__(32);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _momentTimezone = __webpack_require__(211);\n\nvar _momentTimezone2 = _interopRequireDefault(_momentTimezone);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isPrint = void 0;\n\nfunction axesPreRender(data, options, styles) {\n data = writeCommonOptions(data, options);\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n switch (options.type) {\n case 'pie':\n return data;\n case 'bar':\n data = writeHorizontalOptions(data, options, styles);\n break;\n default:\n data = writeVerticalOptions(data, options, styles);\n break;\n }\n if (options.product !== 'financialnews') {\n data.xAxis.gridLineColor = data.yAxis.gridLineColor = options.print ? '#bfbfbf' : '#e6e6e6';\n } else {\n data.xAxis.gridLineColor = data.yAxis.gridLineColor = options.print ? '#000000' : '#e6e6e6';\n }\n\n if (options.product === 'knewz') {\n data.yAxis.gridLineColor = '#fefefe';\n }\n\n if (isVideoGroup) {\n if (options.id === 'video') {\n data.xAxis.gridLineColor = '#CBCBCB';\n data.yAxis.gridLineColor = '#CBCBCB';\n }\n if (options.id === 'twitterVideo') {\n data.xAxis.gridLineColor = '#8B8B8B';\n data.yAxis.gridLineColor = '#8B8B8B';\n }\n data.xAxis.lineColor = '#656565';\n data.xAxis.lineWidth = options.id === 'video' ? 11 : 8;\n }\n\n data = writeMinMax(data, options);\n if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== 'auto' && options.mobileXAxisInterval !== undefined) {\n tickIntervalCalc(options, data, true);\n }\n if (options.xAxisInterval !== 'auto' && options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n tickIntervalCalc(options, data, false);\n }\n\n if (!options.yAxisMobileEnabled && options.yAxisMobileInterval !== '' && options.yAxisMobileInterval !== undefined && options.width < 620) {\n setTickIntervalForYAxis(options, data, true);\n }\n\n if (options.yAxisInterval !== '' && options.yAxisInterval !== undefined && (options.width >= 620 || options.yAxisMobileEnabled)) {\n setTickIntervalForYAxis(options, data, false);\n }\n\n data.xAxis.plotBands = options.plotBands ? getPlotBands(options) : [];\n\n data.yAxis.plotLines = options.plotLines[0].plotLineValue ? options.plotLines.reduce(function (accum, plotLine) {\n if (plotLine.plotLineValue) {\n var label = options.type === 'bar' ? {\n text: plotLine.plotLineLabel,\n verticalAlign: plotLine.plotLineLabelPosition.includes('top') ? 'top' : 'bottom',\n textAlign: plotLine.plotLineLabelPosition.includes('top') ? 'left' : 'right',\n x: plotLine.plotLineLabelPosition.includes('right') ? 6 : -13,\n y: 0,\n style: {\n color: '#323232',\n fontFamily: 'Retina Narrow'\n }\n } : {\n text: plotLine.plotLineLabel,\n align: plotLine.plotLineLabelPosition.includes('right') ? 'right' : 'left',\n x: plotLine.plotLineLabelPosition.includes('right') ? -10 : 0,\n y: plotLine.plotLineLabelPosition.includes('top') ? -6 : 15,\n style: {\n color: '#323232',\n fontFamily: 'Retina Narrow'\n }\n };\n accum.push({\n value: plotLine.plotLineValue,\n color: plotLine.plotLineColor,\n dashStyle: plotLine.plotLineDashStyle,\n width: plotLine.id === 'video' ? 11 : plotLine.id === 'twitterVideo' ? 8 : 2,\n zIndex: ['area', 'bar', 'column'].includes(options.type) ? 5 : 3,\n label: label\n });\n }\n return accum;\n }, []) : [];\n return data;\n}\n\nfunction getPlotBands(options) {\n var plotBands = options.plotBands,\n id = options.id;\n\n var isVideoGroup = id === 'video' || id === 'twitterVideo';\n\n return plotBands.map(function (band) {\n var offset = (0, _momentTimezone2.default)(band.to).tz('America/New_York').utcOffset();\n\n var _map = ['to', 'from'].map(function (prop) {\n return (0, _momentTimezone2.default)(band[prop]).add(offset, 'm').valueOf();\n }),\n _map2 = (0, _slicedToArray3.default)(_map, 2),\n to = _map2[0],\n from = _map2[1];\n\n return {\n to: to,\n from: from,\n color: isVideoGroup ? _recessions.VIDEO_COLOR_BAND : _recessions.COLOR_BAND\n };\n });\n}\n\nfunction setTickIntervalForYAxis(options, data, isMobile) {\n var typeOfInterval = isMobile ? 'yAxisMobileInterval' : 'yAxisInterval';\n var interval = options[typeOfInterval];\n if (interval !== '') {\n data.yAxis.tickInterval = Number(interval);\n }\n}\n\nfunction tickIntervalCalc(options, data, isMobile) {\n var typeOfInterval = isMobile ? 'mobileXAxisInterval' : 'xAxisInterval';\n var interval = options[typeOfInterval].split(' ')[0];\n var unit = options[typeOfInterval].split(' ')[1];\n if (unit === 'years' || unit === 'year') {\n data.xAxis.tickInterval = 24 * 3600 * 1000 * 365 * parseInt(interval);\n }\n if (unit === 'months' || unit === 'month') {\n data.xAxis.tickInterval = 24 * 3600 * 1000 * 30 * parseInt(interval);\n }\n if (unit === 'day') {\n data.xAxis.tickInterval = 24 * 3600 * 1000;\n }\n if (unit === 'week') {\n data.xAxis.tickInterval = 24 * 3600 * 1000 * 7;\n }\n}\n\nfunction checkForType(type) {\n return function () {\n for (var _len = arguments.length, types = Array(_len), _key = 0; _key < _len; _key++) {\n types[_key] = arguments[_key];\n }\n\n return types.includes(type);\n };\n}\n\n// Options common to all charts with axes.\nfunction writeCommonOptions(data, options) {\n var type = options.type,\n product = options.product;\n\n var checkChartTypes = checkForType(type);\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var offsetVal = isVideoGroup ? 15 : 0;\n var oppositeVal = false;\n var horizontalGridLineStyle = 'solid';\n if (checkChartTypes('line', 'area')) {\n data.plotOptions.series.connectNulls = options.connectEmptyDataPoints !== 'none';\n }\n if (false) {\n if (product === 'marketwatch' && checkChartTypes('line', 'scatter')) {\n offsetVal = 4;\n oppositeVal = true;\n }\n if (product === 'marketwatch' && type === 'column') {\n horizontalGridLineStyle = 'dash';\n oppositeVal = true;\n offsetVal = 8;\n }\n }\n if (false) {\n if (product === 'financialnews' && checkChartTypes('line', 'column', 'scatter')) {\n oppositeVal = true;\n offsetVal = 4;\n }\n }\n\n var endOnTick = options.axes.maxYAxisValue ? false : true;\n var startOnTick = options.axes.minYAxisValue ? false : true;\n\n var endOnTickX = false;\n var startOnTickX = false;\n\n if (type === 'scatter') {\n endOnTickX = options.axes.maxXAxisValue ? false : true;\n startOnTickX = options.axes.minXAxisValue ? false : true;\n }\n\n if (product === 'marketwatch' && type === 'line') {\n endOnTickX = true;\n startOnTickX = true;\n }\n\n data.xAxis = {\n title: {\n text: options.headings.xaxisTitle.text.toUpperCase(),\n style: {\n fontSize: options.styles.title.fontSize,\n fontFamily: options.styles.title.fontFamily\n },\n offset: 20\n },\n tickColor: '#000000',\n startOnTick: startOnTickX,\n endOnTick: endOnTickX,\n overscroll: calculateOverscroll(options)\n };\n data.yAxis = {\n title: {\n text: options.headings.yaxisTitle.text.toUpperCase(),\n style: {\n fontSize: options.styles.title.fontSize,\n fontFamily: options.styles.title.fontFamily\n },\n offset: 40\n },\n tickColor: '#000000',\n offset: offsetVal,\n opposite: oppositeVal,\n gridLineDashStyle: horizontalGridLineStyle,\n startOnTick: startOnTick,\n endOnTick: type === 'scatter' || endOnTick,\n allowDecimals: options.allowDecimals\n // lineColor: options.type === 'scatter' ? '#e6e6e6' : '#ffffff',\n // lineWidth: options.type === 'scatter' ? 1 : 0\n };\n\n if (true) {\n if (product === 'wsj') {\n data.xAxis.tickColor = options.styles.tick.color;\n }\n }\n // data.yAxis.opposite = true;\n // if (options.stacking === 'normal') {\n // data.yAxis.max = 100;\n // }\n return data;\n}\n\nfunction calculateOverscroll(options) {\n var series = options.series,\n id = options.id,\n irregularDates = options.irregularDates,\n markedDataPoints = options.markedDataPoints;\n\n var isVideoGroup = id === 'video' || id === 'twitterVideo';\n var multiplier = isVideoGroup ? 25 : 5;\n return irregularDates && markedDataPoints ? (0, _annotationsPrerender.findMilliseconds)(options, series[0].data) * multiplier : 0;\n}\n\n// Writes chart options for bar charts (i.e., horizontal bars).\nfunction writeHorizontalOptions(data, options, styles) {\n if (options.horizontalBarType === 'normal') {\n if (Array.isArray(options.categories)) {\n data.xAxis.categories = getCategoryLabels(options.categories[0]);\n }\n data.xAxis.tickLength = 0;\n data.xAxis.offset = -2;\n data.xAxis.lineWidth = 0;\n data.yAxis.gridLineWidth = 1;\n\n if (true) {\n if (options.size === 'print-wsj') {\n data.yAxis.gridLineWidth = 0.5;\n }\n }\n\n var lineHeight = styles.BOLD_STYLE.fontSize;\n data.xAxis.labels = {\n style: (0, _lodash2.default)({}, styles.BOLD_STYLE, {\n whiteSpace: 'wrap', textOverflow: 'visible', lineHeight: lineHeight\n }),\n // step: 1,\n x: -7,\n y: options.print ? 3 : undefined,\n align: 'left',\n reserveSpace: true\n // format: '{value}',\n };\n if (options.id === 'print-barrons') {\n data.xAxis.labels.style.fontSize = 7.5;\n }\n\n if (options.axes.shown) {\n data.yAxis.reversedStacks = false;\n data.yAxis.opposite = true;\n data.yAxis.reversed = !!options.axes.reversed;\n data.yAxis.labels = {\n y: -5,\n style: (0, _lodash2.default)({}, styles.NORMAL_STYLE, { whiteSpace: 'nowrap', textOverflow: 'visible`' }),\n autoRotation: false,\n formatter: function formatter() {\n\n var special = options.axes.reversed && this.isLast || !options.axes.reversed && this.isFirst;\n return formatterBarYAxisLabel(options.axes.units, this.value, special);\n }\n };\n if (options.id === 'print-barrons') {\n data.yAxis.labels.style.fontSize = 7.5;\n };\n }\n\n if (true) {\n if (options.product === 'wsj') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.x.fontSize,\n fontWeight: options.styles.axes.label.bar.x.fontWeight,\n lineHeight: options.styles.axes.label.bar.x.lineHeight\n });\n\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.y.fontSize,\n fontWeight: options.styles.axes.label.bar.y.fontWeight,\n lineHeight: options.styles.axes.label.bar.y.lineHeight\n });\n }\n }\n if (false) {\n if (options.product === 'mansionglobal') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n color: options.styles.axes.color\n });\n\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n color: options.styles.axes.color\n });\n }\n }\n } else {\n if (Array.isArray(options.categories)) {\n data.xAxis.categories = getCategoryLabels(options.categories[0]);\n }\n data.xAxis.tickLength = 0;\n data.xAxis.offset = -2;\n data.xAxis.lineWidth = 0;\n data.yAxis.gridLineWidth = options.horizontalBarType === 'aboveBar' ? 0 : 1;\n data.yAxis.visible = false;\n var _lineHeight = styles.BOLD_STYLE.fontSize;\n\n var numerator = 1;\n var denominator = 5;\n var seriesLength = data.series[0].data.length;\n var getNewDemoninator = (seriesLength - 1) * 2.5;\n denominator = denominator + getNewDemoninator;\n if (options.horizontalBarType === 'noScaleAndLeft') {\n data.xAxis.labels = {\n style: (0, _lodash2.default)({}, styles.BOLD_STYLE, {\n whiteSpace: 'wrap', textOverflow: 'visible', lineHeight: _lineHeight\n }),\n // step: 1,\n x: -7,\n y: options.print ? 3 : undefined,\n align: 'left',\n reserveSpace: true\n // format: '{value}',\n };\n } else {\n data.xAxis.labels = {\n style: (0, _lodash2.default)({}, styles.BOLD_STYLE, {\n whiteSpace: 'nowrap', textOverflow: 'visible', lineHeight: _lineHeight\n }),\n // step: 1,\n x: -2,\n align: 'left',\n y: -(options.height * numerator / denominator)\n // format: '{value}',\n };\n }\n\n if (options.id === 'print-barrons') {\n data.xAxis.labels.style.fontSize = 7.5;\n }\n\n if (options.axes.shown) {\n data.yAxis.reversedStacks = false;\n data.yAxis.opposite = true;\n data.yAxis.reversed = !!options.axes.reversed;\n data.yAxis.labels = {\n y: -5,\n style: (0, _lodash2.default)({}, styles.NORMAL_STYLE, { whiteSpace: 'nowrap', textOverflow: 'visible`' }),\n autoRotation: false,\n formatter: function formatter() {\n\n var special = options.axes.reversed && this.isLast || !options.axes.reversed && this.isFirst;\n return formatterBarYAxisLabel(options.axes.units, this.value, special);\n }\n };\n if (options.id === 'print-barrons') {\n data.yAxis.labels.style.fontSize = 7.5;\n };\n }\n\n if (true) {\n if (options.product === 'wsj') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.x.fontSize,\n fontWeight: options.styles.axes.label.bar.x.fontWeight,\n lineHeight: options.styles.axes.label.bar.x.lineHeight\n });\n\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.y.fontSize,\n fontWeight: options.styles.axes.label.bar.y.fontWeight,\n lineHeight: options.styles.axes.label.bar.y.lineHeight\n });\n }\n }\n if (false) {\n if (options.product === 'mansionglobal') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n color: options.styles.axes.color\n });\n\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n color: options.styles.axes.color\n });\n }\n }\n }\n return data;\n}\n\nfunction formatterBarYAxisLabel(units, value, special) {\n value = format.decimals(value, units);\n value = format.commas(value, units);\n var prefix = units.prefix || '';\n var suffix = units.suffix || '';\n if (prefix && value.charAt(0) === '-') {\n // If value is negative, put the negative sign *before* the prefix.\n value = '-' + prefix + value.substr(1);\n } else {\n value = '' + prefix + value;\n }\n if (special && suffix) {\n value += suffix;\n }\n return value;\n}\n\n// Writes chart options for column charts (i.e, vertical bars) and charts for\n// which the axes are the same as for column charts (i.e., line charts).\nfunction writeVerticalOptions(data, options, styles) {\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var Q = options.quarterlyResults && options.series[0].data.length <= 44;\n isPrint = options.print;\n var defaultXGridWidth = 0;\n if (false) {\n if (options.type === 'line' && options.product === 'marketwatch') {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n defaultXGridWidth = 1;\n }\n if (options.type === 'column' && options.product === 'marketwatch') {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n }\n }\n if (false) {\n if (options.product === 'financialnews' && (options.type === 'line' || options.type === 'column')) {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n }\n }\n\n if (options.type === 'scatter') {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n }\n\n data.xAxis.tickWidth = 1;\n data.xAxis.lineWidth = 0;\n data.xAxis.gridLineWidth = options.type === 'scatter' ? 1 : 0;\n if (options.product === 'marketwatch' && options.type === 'line') {\n data.xAxis.gridLineWidth = 1;\n }\n data.xAxis.minorGridLineWidth = defaultXGridWidth;\n data.yAxis.gridLineWidth = options.id === 'print-barrons' ? 0.4 : 1;\n data.yAxis.tickPixelInterval = isVideoGroup ? 90 : parseFloat(styles.NORMAL_STYLE.lineHeight) * 3;\n data.yAxis.reversed = !!options.axes.reversed;\n var alignYAxis = 'right';\n var yAxisXVal = -10;\n if (true) {\n if (options.size === 'print-wsj') {\n data.xAxis.tickWidth = 0.5;\n data.yAxis.gridLineWidth = 0.5;\n }\n if (isVideoGroup) {\n alignYAxis = 'left';\n yAxisXVal = 0;\n }\n }\n var yAxisYVal = -5;\n if (false) {\n if ((options.product === 'marketwatch' || options.product === 'financialnews') && (options.type === 'line' || options.type === 'column')) {\n alignYAxis = 'left';\n yAxisXVal = 0;\n yAxisYVal = -2.5;\n }\n }\n if (false) {\n if (options.product === 'financialnews') {\n if (options.print === true && options.sizes['print-fn'].columns <= 2) {\n styles.LIGHT_STYLE.fontSize = 7.75;\n }\n }\n }\n if (options.print === true && options.product === 'financialnews') {\n styles.LIGHT_STYLE.color = '#000000';\n }\n if (options.id === 'print-barrons') {\n yAxisYVal = -2;\n }\n\n data.yAxis.labels = {\n style: isPrint ? styles.LIGHT_STYLE : styles.NORMAL_STYLE,\n autoRotation: false,\n align: alignYAxis,\n x: yAxisXVal,\n reserveSpace: isVideoGroup ? true : undefined,\n y: calculateYAxesLabelY(options, yAxisYVal),\n formatter: function formatter() {\n var tp = this.axis.tickPositions;\n var decimalsDelta = Math.abs(tp[0] - tp[1]);\n var decimalPlaces = Number.isInteger(decimalsDelta) ? 0 : roundPlaces(decimalsDelta);\n // special = should have prefix and/or suffix:\n var special = options.axes.reversed && this.isFirst || !options.axes.reversed && this.isLast;\n return formatterYAxisLabel(options.axes.units, this.value, decimalPlaces, special);\n }\n };\n\n options.axes.tickStyle = options.axes.tickStyle || 'center';\n data.xAxis.labels = {\n style: isPrint ? styles.LIGHT_STYLE : styles.NORMAL_STYLE,\n autoRotation: false,\n maxStaggerLines: 1\n };\n data.xAxis.labels.style.textOverflow = 'visible';\n if (!options.allowCategoriesLinebreak) {\n data.xAxis.labels.style.whiteSpace = 'nowrap';\n }\n data.xAxis.labels.align = 'center';\n data.xAxis.labels.y = styles.FONT_SIZE + 7;\n data.xAxis.tickLength = styles.MEDIUM_TICK_LENGTH;\n data.xAxis.labels.overflow = 'allow';\n\n if (true) {\n if (options.size === 'print-wsj') {\n data.xAxis.labels.y -= 4;\n }\n if (isVideoGroup) {\n if (options.id === 'video') data.xAxis.labels.y += 6;else data.xAxis.labels.y += 2;\n }\n }\n\n if (options.type === 'scatter') {\n data.xAxis.type = 'linear';\n // const maxNum = Match.ceil(Math.max.apply(null, xValues));\n // data.xAxis.max = Math.ceil(Math.max.apply(null, xValues));\n if (options.axes.minXAxisValue) data.xAxis.min = Number(options.axes.minXAxisValue);\n if (options.axes.maxXAxisValue) data.xAxis.max = Number(options.axes.maxXAxisValue);\n if (options.axes.xAxisIncrementsForScatter) data.xAxis.tickInterval = Number(options.axes.xAxisIncrementsForScatter);\n }\n\n if (Array.isArray(options.categories) && (Q || !options.categoriesAreDates) && options.type !== 'scatter') {\n var categoryLabels = getCategoryLabels(options.categories[0]);\n var isArticle = (0, _axesCommon.checkArticle)(options.size, options.product);\n var hiddenCategories = isArticle ? options.hiddenCategoriesArticle : options.hiddenCategoriesPromo;\n data.xAxis.categories = categoryLabels.map(function (label, i) {\n return hiddenCategories.includes(i) ? '' : label;\n });\n data.xAxis.tickWidth = 1;\n data.xAxis.tickmarkPlacement = 'on';\n data.xAxis.tickPositioner = function () {\n return this.tickPositions.filter(function (position) {\n return !hiddenCategories.includes(position);\n });\n };\n if (Q) {\n data.xAxis.labels.formatter = formatterQuarterlyResults(options);\n }\n }\n if (options.categoriesAreDates && !Q) {\n data.xAxis.labels.style.whiteSpace = 'nowrap';\n\n if (options.fiscalYears) {\n data.xAxis.tickInterval = _axesCommon.YEAR_MILLISECONDS;\n } else {\n var firstDate = new Date(options.originalCategories[0]);\n var lastDate = new Date(options.originalCategories[options.originalCategories.length - 1]);\n var diff = Math.abs((firstDate.getTime() - lastDate.getTime()) / (24 * 3600 * 1000));\n var hasMoreThanTwoDays = diff > 2;\n }\n if (data.xAxis.tickInterval) {\n data.xAxis.tickInterval = Math.round(data.xAxis.tickInterval);\n }\n\n data.xAxis.labels.formatter = function () {\n var label = options.xAxisTicks[this.value].label;\n\n return label || null;\n };\n data.xAxis.tickPositioner = function () {\n return Object.keys(options.xAxisTicks).map(function (value) {\n return +value;\n });\n };\n data.xAxis.type = 'datetime';\n }\n\n if (true) {\n if (options.product === 'wsj') {\n var isPrintColor = options.print ? 'rgb(0, 0, 0)' : options.styles.axes.label.color;\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.fontSize,\n color: isPrintColor,\n fill: isPrintColor\n });\n\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n fontSize: options.styles.axes.label.fontSize,\n color: isPrintColor,\n fill: isPrintColor\n });\n\n if (options.type === 'column' && !options.categoriesAreDates) {\n data.xAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.seriesAreNotDates.fontSize,\n fontWeight: options.styles.axes.label.seriesAreNotDates.fontWeight,\n lineHeight: options.styles.axes.label.seriesAreNotDates.lineHeight\n });\n }\n\n if (options.type === 'area') {\n data.yAxis.gridZIndex = 4;\n }\n }\n }\n\n if (false) {\n if (options.product === 'mansionglobal') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n color: options.styles.axes.color\n });\n\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n color: options.styles.axes.color\n });\n }\n }\n\n if (options.id === 'print-barrons') {\n data.xAxis.labels.style.fontSize = 7.5;\n data.yAxis.labels.style.fontSize = 7.5;\n }\n return data;\n}\n\nfunction calculateYAxesLabelY(options, initialValue) {\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n if (true) {\n if (options.product === 'wsj') {\n if (options.size === 'print-wsj') {\n if (options.type === 'line') {\n return -2.5;\n }\n\n if (options.type === 'column') {\n return -1.5;\n }\n }\n if (options.type === 'scatter') {\n return 5;\n }\n if (isVideoGroup) {\n return -12;\n }\n return -2;\n }\n }\n\n if (options.product !== 'wsj' && options.type === 'scatter') {\n return 5;\n }\n\n return initialValue;\n}\n\n// Returns correct spacing between ticks on x-axis depending.\nfunction getDatetimeTickInterval(context, options) {\n if (options.datesAll) {\n var currYear = void 0;\n var yearsTraversed = 0;\n var yearRepeated = false;\n\n var currMonth = void 0;\n var monthsTraversed = 0;\n var monthRepeated = false;\n\n var currDate = void 0;\n var datesTraversed = 0;\n var dateRepeated = false;\n\n if (options.datesAll.year && !options.datesAll.month) {\n var isYears = true;\n for (var i = 0; isYears && i < options.dates.length; i++) {\n if (currYear === undefined || options.dates[i].year !== currYear) {\n currYear = options.dates[i].year;\n } else if (options.dates[i].year === currYear) {\n isYears = false;\n }\n }\n return _axesCommon.YEAR_MILLISECONDS;\n }\n\n for (var _i = 0; _i < options.dates.length; _i++) {\n // If data passes through >= 3 years but data is spaced less than a year\n // apart, ensure that ticks are spaced by years.\n if (options.datesAll.year && options.datesAll.month) {\n if (currYear === undefined || options.dates[_i].year !== currYear) {\n currYear = options.dates[_i].year;\n yearsTraversed += 1;\n } else if (!yearRepeated && options.dates[_i].year === currYear) {\n yearRepeated = true;\n }\n if (yearRepeated && yearsTraversed >= 3) {\n return _axesCommon.YEAR_MILLISECONDS;\n }\n }\n }\n\n for (var _i2 = 0; _i2 < options.dates.length; _i2++) {\n // If data passes through >= 3 months but data is spaced less than a\n // month apart, ensure that ticks are spaced by months.\n if (options.datesAll.month && options.datesAll.date) {\n if (currMonth === undefined || options.dates[_i2].month !== currMonth) {\n currMonth = options.dates[_i2].month;\n monthsTraversed += 1;\n } else if (!monthRepeated && options.dates[_i2].month === currMonth) {\n monthRepeated = true;\n }\n if (monthRepeated && monthsTraversed >= 3) {\n return 1000 * 60 * 60 * 24 * 30;\n }\n }\n }\n\n for (var _i3 = 0; _i3 < options.dates.length; _i3++) {\n // If data passes through >= 3 dates but data is spaced less than a day\n // apart, ensure that ticks are spaced by days.\n if (options.datesAll.date) {\n if (currDate === undefined || options.dates[_i3].date !== currDate) {\n currDate = options.dates[_i3].date;\n datesTraversed += 1;\n } else if (!dateRepeated && options.dates[_i3].date === currDate) {\n dateRepeated = true;\n }\n if (dateRepeated && datesTraversed >= 3) {\n return 1000 * 60 * 60 * 24;\n }\n }\n }\n\n if (options.datesAll.hour && !options.datesAll.year && !options.datesAll.month) {\n var fd = options.dates[0];\n var ld = options.dates[options.dates.length - 1];\n var d1 = new Date();\n var d2 = new Date();\n var hour = 1000 * 60 * 60;\n d1.setUTCHours(fd.hour);\n d1.setUTCMinutes(fd.minute);\n d2.setUTCHours(ld.hour);\n d2.setUTCMinutes(ld.minute);\n if (d2.valueOf() - d1.valueOf() > hour) {\n return hour;\n }\n }\n }\n return null;\n}\n\n// A Highcharts `formatter` function to format x-axis dates.\nfunction formatterDate(context, options, interval) {\n // INDEX = (INDEX >= options.series[0].data.length) ? 0 : INDEX;\n // const index = INDEX++;\n var index = getDataIndex(context.value, options.series[0].data, interval);\n\n // This gives some whack results...\n // const date = new Date(context.value);\n\n // ...therefore, track the index of this tick:\n // options.xAxisLabelIndex = options.xAxisLabelIndex || 0;\n // options.xAxisLabelIndex %= options.series[0].data.length;\n // const index = options.xAxisLabelIndex;\n // const date = new Date(options.series[0].data[index].x);\n var date = new Date(context.value);\n var momentDate = _momentTimezone2.default.utc(context.value);\n\n // options.xAxisLabelIndex += 1;\n\n options.dateTimeLabelFormat = context.dateTimeLabelFormat;\n var labelFormat = options.dateTimeLabelFormat;\n // if (labelFormat === '%H:%M') labelFormat = '%e. %b'\n\n // const dateObj = options.dates[index];\n switch (labelFormat) {\n case '%H:%M':\n case '%H:%M:%S':\n var incSecs = false; //context.dateTimeLabelFormat === '%H:%M:%S';\n options.series[0].data[index].xAxisLabel = formatHM( /*date*/momentDate, incSecs);\n return formatHM( /*date*/momentDate, incSecs);\n case '%e. %b':\n options.series[0].data[index].xAxisLabel = [_constants.MONTHS[date.getUTCMonth()], date.getUTCDate()].join(' ');\n return [_constants.MONTHS[date.getUTCMonth()], date.getUTCDate()].join(' ');\n case '%b \\'%y':\n if (options.dates[index].yearIsProxy) {\n options.series[0].data[index].xAxisLabel = _constants.MONTHS[date.getUTCMonth()];\n return _constants.MONTHS[date.getUTCMonth()];\n } else {\n options.series[0].data[index].xAxisLabel = [_constants.MONTHS[date.getUTCMonth()], '’' + (date.getUTCFullYear() + '').substr(2)].join(' ');\n return [_constants.MONTHS[date.getUTCMonth()], '’' + (date.getUTCFullYear() + '').substr(2)].join(' ');\n }\n case '%Y':\n // console.log(index, date.getUTCFullYear(), date.getFullYear(), realDate.getFullYear());\n options.series[0].data[index].xAxisLabel = date.getUTCFullYear() + '';\n //(dateObj.year || realDate.getUTCFullYear()) + '';\n // return dateObj.year || (date.getFullYear() + '');\n return date.getUTCFullYear() + '';\n }\n options.series[0].data[index].xAxisLabel = '0';\n return '0';\n}\n\nfunction getDataIndex(value, data, interval) {\n var index = 0;\n for (var i = 0; i < data.length; i++) {\n index = i;\n if (value < data[i].x) {\n break;\n }\n }\n return index;\n}\n\nfunction formatHM(date, includeSeconds) {\n // const offset = date.utcOffset() / 60;\n var h = date.hours(); //date.getUTCHours();\n // console.log('in formatHM', date, h, date.utc().hours())\n //h += offset + 4;\n var a = h < 12 ? ' a.m.' : ' p.m.';\n var m = (0, _zero.addZeroes)(date.minutes() /*date.getUTCMinutes()*/, 2);\n var s = includeSeconds ? (0, _zero.addZeroes)(date.seconds() /*date.getUTCSeconds()*/, 2) : null;\n if (h === 12 && m == '00') {\n return 'noon';\n }\n if (h === 0 || h === 12) {\n h = 12;\n } else {\n h %= 12;\n }\n m = m === '00' ? '' : ':' + m;\n s = includeSeconds ? ':' + s : '';\n return [h, m, s, a].join('');\n}\n\n// Used as Highcharts `formatter` function (not directly).\nfunction formatterYAxisLabel(units, value, minDecimals, special) {\n value += '';\n var decimalUnits = (0, _lodash2.default)({}, units);\n if (units.forceDecimals !== undefined) {\n decimalUnits.forceDecimals = Math.max(units.forceDecimals, minDecimals);\n }\n if (units.maxDecimals !== undefined) {\n decimalUnits.maxDecimals = Math.max(units.maxDecimals, minDecimals);\n }\n value = format.decimals(value, decimalUnits);\n value = format.commas(value, units.commas);\n if (special) {\n var neg = '';\n if (units.prefix && value.charAt(0) === '-') {\n neg = '-';\n value = value.substr(1);\n }\n value = [neg, units.prefix, value].join('');\n }\n return value;\n}\n\n// A Highcharts `formatter` function that returns 'nQ<br/>YYYY'.\nfunction formatterQuarterlyResults(options) {\n var rows = options.series[0].data.length;\n var quarter = undefined;\n var year = undefined;\n return function () {\n var value = '';\n var parts = this.value.split(/\\s/);\n var tmpQ = parts[0] || null;\n var tmpY = parts[1] || null;\n var FY = tmpY ? tmpY.indexOf('FY') === 0 : false;\n if (FY) {\n tmpY = tmpY.substr(2);\n }\n if (this.isFirst) {\n // Sometimes Highcharts runs through the date *twice*!\n quarter = year = undefined;\n }\n if (tmpQ && rows <= 9 && options.interactive) {\n value += tmpQ;\n }\n if (tmpY) {\n if (value !== '') {\n value += '<br>';\n }\n if (tmpY !== year) {\n if (year === undefined) {\n value += (FY ? 'FY' : '') + tmpY;\n } else {\n value += _constants.APOSTROPHE + tmpY.substr(2, 4);\n }\n }\n }\n quarter = tmpQ;\n year = tmpY;\n return value;\n };\n}\n\n// Returns an array of category objects as an array of strings for use as the\n// value for `data[x|yAxis].categories`.\nfunction getCategoryLabels(categories) {\n var strings = [];\n if (categories) {\n categories.forEach(function (cat, index) {\n if (typeof cat === 'string' || typeof cat === 'number') {\n strings[index] = cat + '';\n } else if (cat && (typeof cat === 'undefined' ? 'undefined' : (0, _typeof3.default)(cat)) === 'object') {\n strings[index] = cat.text;\n } else {\n strings[index] = '';\n }\n });\n }\n return strings;\n}\n\n// Attempts to allow manual tweaking of min and max axis values, but does not\n// quite do what is requested: Set an *absolute* max and min, whereas\n// Highcharts uses the values as a guide.\nfunction writeMinMax(data, options) {\n if (options.type !== 'pie') {\n if (options.axes.minYAxisValue !== undefined) {\n data.yAxis.min = options.axes.minYAxisValue;\n }\n if (options.axes.maxYAxisValue !== undefined) {\n data.yAxis.max = options.axes.maxYAxisValue;\n }\n }\n return data;\n}\n\n// Finds if yAxis.min should be set automatically so as to ensure that\n// a zero line is included.\nfunction valuesBelowPositive2(options) {\n var found = false;\n for (var s = 0; s < options.series.length; s++) {\n for (var d = 0; d < options.series[s].data.length; d++) {\n if (options.series[s].data[d].y < 0) {\n return false;\n } else if (!found && options.series[s].data[d].y <= 2) {\n found = true;\n }\n }\n }\n return found;\n}\n\n// Finds if yAxis.max should be set automatically so as to ensure that\n// a zero line is included.\nfunction valuesAboveNegative2(options) {\n var found = false;\n for (var s = 0; s < options.series.length; s++) {\n for (var d = 0; d < options.series[s].data.length; d++) {\n if (options.series[s].data[d].y > 0) {\n return false;\n } else if (!found && options.series[s].data[d].y <= -2) {\n found = true;\n }\n }\n }\n return found;\n}\n\n// Sometimes decimals are 17 or something outrageous, but decimalsDelta is something like 0.20000000000000002\n// which should be just 0.2. This fixes the issue.\nfunction roundPlaces(float) {\n for (var places = 1; places < 19; places++) {\n if (float.toFixed(places) + '0' === float.toFixed(places + 1)) break;\n }\n return places;\n}\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getPoint;\n\n// Returns a point by its original index, before sorting by date.\nfunction getPoint(series, index) {\n return series[0].hasOwnProperty('index') ? series.find(function (item) {\n return item.index === index;\n }) : series[index];\n}\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//! moment-timezone.js\n//! version : 0.5.31\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(__webpack_require__(0)); // Node\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.31\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (å°åŒ—標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports) {\n\nmodule.exports = {\"version\":\"2020a\",\"zones\":[\"Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5\",\"Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5\",\"Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5\",\"Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5\",\"Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6\",\"Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4\",\"Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5\",\"Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5\",\"Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3\",\"Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4\",\"Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5\",\"Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0|\",\"Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5\",\"Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5\",\"Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5\",\"Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|\",\"Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5\",\"Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5\",\"Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\",\"America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3\",\"America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4\",\"America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|\",\"America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|\",\"America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|\",\"America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|\",\"America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|\",\"America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4\",\"America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5\",\"America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2\",\"America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3\",\"America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5\",\"America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4\",\"America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5\",\"America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3\",\"America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2\",\"America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2\",\"America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5\",\"America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4\",\"America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2\",\"America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4\",\"America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4\",\"America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5\",\"America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3\",\"America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5\",\"America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4\",\"America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5\",\"America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2\",\"America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4\",\"America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8\",\"America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3\",\"America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|13e2\",\"America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5\",\"America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5\",\"America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3\",\"America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5\",\"America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5\",\"America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2\",\"America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5\",\"America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3\",\"America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2\",\"America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5\",\"America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5\",\"America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4\",\"America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4\",\"America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2\",\"America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2\",\"America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4\",\"America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3\",\"America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5\",\"America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6\",\"America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4\",\"America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5\",\"America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5\",\"America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4\",\"America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4\",\"America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4\",\"America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2\",\"America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5\",\"America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6\",\"America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3\",\"America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5\",\"America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5\",\"America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5\",\"America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4\",\"America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2\",\"America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2\",\"America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2\",\"America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\"America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4\",\"America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5\",\"America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4\",\"America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4\",\"America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5\",\"America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|\",\"America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842\",\"America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2\",\"America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5\",\"America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4\",\"America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229\",\"America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4\",\"America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5\",\"America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5\",\"America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6\",\"America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452\",\"America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2\",\"America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3\",\"America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5\",\"America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656\",\"America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|23e3\",\"America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4\",\"America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642\",\"America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10\",\"Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70\",\"Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80\",\"Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1\",\"Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60\",\"Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5\",\"Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40\",\"Antarctica/Rothera|-00 -03|0 30|01|gOo0|130\",\"Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20\",\"Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40\",\"Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25\",\"Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4\",\"Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5\",\"Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5\",\"Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5\",\"Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3\",\"Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4\",\"Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4\",\"Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4\",\"Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5\",\"Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4\",\"Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5\",\"Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6\",\"Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|\",\"Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5\",\"Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4\",\"Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4\",\"Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6\",\"Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4\",\"Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3\",\"Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6\",\"Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5\",\"Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6\",\"Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5\",\"Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4\",\"Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5\",\"Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4\",\"Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|0101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|18e5\",\"Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|25e4\",\"Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5\",\"Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5\",\"Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6\",\"Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6\",\"Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4\",\"Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4\",\"Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5\",\"Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4\",\"Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6\",\"Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5\",\"Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5\",\"Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2\",\"Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\",\"Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5\",\"Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4\",\"Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4\",\"Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3\",\"Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5\",\"Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6\",\"Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4\",\"Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4\",\"Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5\",\"Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5\",\"Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4\",\"Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4\",\"Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5\",\"Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4\",\"Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5\",\"Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4\",\"Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4\",\"Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6\",\"Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2\",\"Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5\",\"Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5\",\"Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5\",\"Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3\",\"Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6\",\"Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5\",\"Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2\",\"Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4\",\"Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5\",\"Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5\",\"Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4\",\"Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3\",\"Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4\",\"Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3\",\"Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4\",\"Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4\",\"Atlantic/South_Georgia|-02|20|0||30\",\"Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2\",\"Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5\",\"Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5\",\"Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5\",\"Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3\",\"Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746\",\"Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4\",\"Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368\",\"Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4\",\"Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347\",\"Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10\",\"Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5\",\"Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5\",\"CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2\",\"CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"EST|EST|50|0||\",\"EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Etc/GMT-0|GMT|0|0||\",\"Etc/GMT-1|+01|-10|0||\",\"Pacific/Port_Moresby|+10|-a0|0||25e4\",\"Etc/GMT-11|+11|-b0|0||\",\"Pacific/Tarawa|+12|-c0|0||29e3\",\"Etc/GMT-13|+13|-d0|0||\",\"Etc/GMT-14|+14|-e0|0||\",\"Etc/GMT-2|+02|-20|0||\",\"Etc/GMT-3|+03|-30|0||\",\"Etc/GMT-4|+04|-40|0||\",\"Etc/GMT-5|+05|-50|0||\",\"Etc/GMT-6|+06|-60|0||\",\"Indian/Christmas|+07|-70|0||21e2\",\"Etc/GMT-8|+08|-80|0||\",\"Pacific/Palau|+09|-90|0||21e3\",\"Etc/GMT+1|-01|10|0||\",\"Etc/GMT+10|-10|a0|0||\",\"Etc/GMT+11|-11|b0|0||\",\"Etc/GMT+12|-12|c0|0||\",\"Etc/GMT+3|-03|30|0||\",\"Etc/GMT+4|-04|40|0||\",\"Etc/GMT+5|-05|50|0||\",\"Etc/GMT+6|-06|60|0||\",\"Etc/GMT+7|-07|70|0||\",\"Etc/GMT+8|-08|80|0||\",\"Etc/GMT+9|-09|90|0||\",\"Etc/UTC|UTC|0|0||\",\"Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5\",\"Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3\",\"Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5\",\"Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5\",\"Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6\",\"Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5\",\"Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5\",\"Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5\",\"Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5\",\"Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4\",\"Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4\",\"Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3\",\"Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4\",\"Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5\",\"Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4\",\"Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\",\"Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5\",\"Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5\",\"Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3\",\"Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6\",\"Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6\",\"Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4\",\"Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5\",\"Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5\",\"Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|\",\"Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4\",\"Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5\",\"Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4\",\"Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5\",\"Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4\",\"Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5\",\"Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0|10e5\",\"Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4\",\"HST|HST|a0|0||\",\"Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2\",\"Indian/Cocos|+0630|-6u|0||596\",\"Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130\",\"Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3\",\"Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4\",\"Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4\",\"Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4\",\"Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3\",\"MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"MST|MST|70|0||\",\"MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600\",\"Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3\",\"Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4\",\"Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3\",\"Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3\",\"Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1\",\"Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483\",\"Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4\",\"Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3\",\"Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125\",\"Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4\",\"Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4\",\"Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4\",\"Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2\",\"Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2\",\"Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3\",\"Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2\",\"Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2\",\"Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3\",\"Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2\",\"Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4\",\"Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3\",\"Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56\",\"Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3\",\"Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3\",\"Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4\",\"Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3\",\"PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\"],\"links\":[\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Cairo|Egypt\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|US/Alaska\",\"America/Argentina/Buenos_Aires|America/Buenos_Aires\",\"America/Argentina/Catamarca|America/Argentina/ComodRivadavia\",\"America/Argentina/Catamarca|America/Catamarca\",\"America/Argentina/Cordoba|America/Cordoba\",\"America/Argentina/Cordoba|America/Rosario\",\"America/Argentina/Jujuy|America/Jujuy\",\"America/Argentina/Mendoza|America/Mendoza\",\"America/Atikokan|America/Coral_Harbour\",\"America/Chicago|US/Central\",\"America/Curacao|America/Aruba\",\"America/Curacao|America/Kralendijk\",\"America/Curacao|America/Lower_Princes\",\"America/Denver|America/Shiprock\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Detroit|US/Michigan\",\"America/Edmonton|Canada/Mountain\",\"America/Fort_Wayne|America/Indiana/Indianapolis\",\"America/Fort_Wayne|America/Indianapolis\",\"America/Fort_Wayne|US/East-Indiana\",\"America/Godthab|America/Nuuk\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/Indiana/Knox|America/Knox_IN\",\"America/Indiana/Knox|US/Indiana-Starke\",\"America/Jamaica|Jamaica\",\"America/Kentucky/Louisville|America/Louisville\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Manaus|Brazil/West\",\"America/Mazatlan|Mexico/BajaSur\",\"America/Mexico_City|Mexico/General\",\"America/New_York|US/Eastern\",\"America/Noronha|Brazil/DeNoronha\",\"America/Panama|America/Cayman\",\"America/Phoenix|US/Arizona\",\"America/Port_of_Spain|America/Anguilla\",\"America/Port_of_Spain|America/Antigua\",\"America/Port_of_Spain|America/Dominica\",\"America/Port_of_Spain|America/Grenada\",\"America/Port_of_Spain|America/Guadeloupe\",\"America/Port_of_Spain|America/Marigot\",\"America/Port_of_Spain|America/Montserrat\",\"America/Port_of_Spain|America/St_Barthelemy\",\"America/Port_of_Spain|America/St_Kitts\",\"America/Port_of_Spain|America/St_Lucia\",\"America/Port_of_Spain|America/St_Thomas\",\"America/Port_of_Spain|America/St_Vincent\",\"America/Port_of_Spain|America/Tortola\",\"America/Port_of_Spain|America/Virgin\",\"America/Regina|Canada/Saskatchewan\",\"America/Rio_Branco|America/Porto_Acre\",\"America/Rio_Branco|Brazil/Acre\",\"America/Santiago|Chile/Continental\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"America/Tijuana|America/Ensenada\",\"America/Tijuana|America/Santa_Isabel\",\"America/Tijuana|Mexico/BajaNorte\",\"America/Toronto|America/Montreal\",\"America/Toronto|Canada/Eastern\",\"America/Vancouver|Canada/Pacific\",\"America/Whitehorse|Canada/Yukon\",\"America/Winnipeg|Canada/Central\",\"Asia/Ashgabat|Asia/Ashkhabad\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Ho_Chi_Minh|Asia/Saigon\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Macau|Asia/Macao\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Nicosia|Europe/Nicosia\",\"Asia/Qatar|Asia/Bahrain\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Riyadh|Asia/Aden\",\"Asia/Riyadh|Asia/Kuwait\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|PRC\",\"Asia/Taipei|ROC\",\"Asia/Tehran|Iran\",\"Asia/Thimphu|Asia/Thimbu\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Urumqi|Asia/Kashgar\",\"Atlantic/Faroe|Atlantic/Faeroe\",\"Atlantic/Reykjavik|Iceland\",\"Atlantic/South_Georgia|Etc/GMT+2\",\"Australia/Adelaide|Australia/South\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Broken_Hill|Australia/Yancowinna\",\"Australia/Darwin|Australia/North\",\"Australia/Hobart|Australia/Tasmania\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Melbourne|Australia/Victoria\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/NSW\",\"Etc/GMT-0|Etc/GMT\",\"Etc/GMT-0|Etc/GMT+0\",\"Etc/GMT-0|Etc/GMT0\",\"Etc/GMT-0|Etc/Greenwich\",\"Etc/GMT-0|GMT\",\"Etc/GMT-0|GMT+0\",\"Etc/GMT-0|GMT-0\",\"Etc/GMT-0|GMT0\",\"Etc/GMT-0|Greenwich\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Belgrade|Europe/Ljubljana\",\"Europe/Belgrade|Europe/Podgorica\",\"Europe/Belgrade|Europe/Sarajevo\",\"Europe/Belgrade|Europe/Skopje\",\"Europe/Belgrade|Europe/Zagreb\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Helsinki|Europe/Mariehamn\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Portugal\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Oslo|Arctic/Longyearbyen\",\"Europe/Oslo|Atlantic/Jan_Mayen\",\"Europe/Prague|Europe/Bratislava\",\"Europe/Rome|Europe/San_Marino\",\"Europe/Rome|Europe/Vatican\",\"Europe/Warsaw|Poland\",\"Europe/Zurich|Europe/Busingen\",\"Europe/Zurich|Europe/Vaduz\",\"Indian/Christmas|Etc/GMT-7\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Chuuk|Pacific/Truk\",\"Pacific/Chuuk|Pacific/Yap\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kwajalein|Kwajalein\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Palau|Etc/GMT-9\",\"Pacific/Pohnpei|Pacific/Ponape\",\"Pacific/Port_Moresby|Etc/GMT-10\",\"Pacific/Tarawa|Etc/GMT-12\",\"Pacific/Tarawa|Pacific/Funafuti\",\"Pacific/Tarawa|Pacific/Wake\",\"Pacific/Tarawa|Pacific/Wallis\"],\"countries\":[\"AD|Europe/Andorra\",\"AE|Asia/Dubai\",\"AF|Asia/Kabul\",\"AG|America/Port_of_Spain America/Antigua\",\"AI|America/Port_of_Spain America/Anguilla\",\"AL|Europe/Tirane\",\"AM|Asia/Yerevan\",\"AO|Africa/Lagos Africa/Luanda\",\"AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo\",\"AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia\",\"AS|Pacific/Pago_Pago\",\"AT|Europe/Vienna\",\"AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla\",\"AW|America/Curacao America/Aruba\",\"AX|Europe/Helsinki Europe/Mariehamn\",\"AZ|Asia/Baku\",\"BA|Europe/Belgrade Europe/Sarajevo\",\"BB|America/Barbados\",\"BD|Asia/Dhaka\",\"BE|Europe/Brussels\",\"BF|Africa/Abidjan Africa/Ouagadougou\",\"BG|Europe/Sofia\",\"BH|Asia/Qatar Asia/Bahrain\",\"BI|Africa/Maputo Africa/Bujumbura\",\"BJ|Africa/Lagos Africa/Porto-Novo\",\"BL|America/Port_of_Spain America/St_Barthelemy\",\"BM|Atlantic/Bermuda\",\"BN|Asia/Brunei\",\"BO|America/La_Paz\",\"BQ|America/Curacao America/Kralendijk\",\"BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco\",\"BS|America/Nassau\",\"BT|Asia/Thimphu\",\"BW|Africa/Maputo Africa/Gaborone\",\"BY|Europe/Minsk\",\"BZ|America/Belize\",\"CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson\",\"CC|Indian/Cocos\",\"CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi\",\"CF|Africa/Lagos Africa/Bangui\",\"CG|Africa/Lagos Africa/Brazzaville\",\"CH|Europe/Zurich\",\"CI|Africa/Abidjan\",\"CK|Pacific/Rarotonga\",\"CL|America/Santiago America/Punta_Arenas Pacific/Easter\",\"CM|Africa/Lagos Africa/Douala\",\"CN|Asia/Shanghai Asia/Urumqi\",\"CO|America/Bogota\",\"CR|America/Costa_Rica\",\"CU|America/Havana\",\"CV|Atlantic/Cape_Verde\",\"CW|America/Curacao\",\"CX|Indian/Christmas\",\"CY|Asia/Nicosia Asia/Famagusta\",\"CZ|Europe/Prague\",\"DE|Europe/Zurich Europe/Berlin Europe/Busingen\",\"DJ|Africa/Nairobi Africa/Djibouti\",\"DK|Europe/Copenhagen\",\"DM|America/Port_of_Spain America/Dominica\",\"DO|America/Santo_Domingo\",\"DZ|Africa/Algiers\",\"EC|America/Guayaquil Pacific/Galapagos\",\"EE|Europe/Tallinn\",\"EG|Africa/Cairo\",\"EH|Africa/El_Aaiun\",\"ER|Africa/Nairobi Africa/Asmara\",\"ES|Europe/Madrid Africa/Ceuta Atlantic/Canary\",\"ET|Africa/Nairobi Africa/Addis_Ababa\",\"FI|Europe/Helsinki\",\"FJ|Pacific/Fiji\",\"FK|Atlantic/Stanley\",\"FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae\",\"FO|Atlantic/Faroe\",\"FR|Europe/Paris\",\"GA|Africa/Lagos Africa/Libreville\",\"GB|Europe/London\",\"GD|America/Port_of_Spain America/Grenada\",\"GE|Asia/Tbilisi\",\"GF|America/Cayenne\",\"GG|Europe/London Europe/Guernsey\",\"GH|Africa/Accra\",\"GI|Europe/Gibraltar\",\"GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule\",\"GM|Africa/Abidjan Africa/Banjul\",\"GN|Africa/Abidjan Africa/Conakry\",\"GP|America/Port_of_Spain America/Guadeloupe\",\"GQ|Africa/Lagos Africa/Malabo\",\"GR|Europe/Athens\",\"GS|Atlantic/South_Georgia\",\"GT|America/Guatemala\",\"GU|Pacific/Guam\",\"GW|Africa/Bissau\",\"GY|America/Guyana\",\"HK|Asia/Hong_Kong\",\"HN|America/Tegucigalpa\",\"HR|Europe/Belgrade Europe/Zagreb\",\"HT|America/Port-au-Prince\",\"HU|Europe/Budapest\",\"ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura\",\"IE|Europe/Dublin\",\"IL|Asia/Jerusalem\",\"IM|Europe/London Europe/Isle_of_Man\",\"IN|Asia/Kolkata\",\"IO|Indian/Chagos\",\"IQ|Asia/Baghdad\",\"IR|Asia/Tehran\",\"IS|Atlantic/Reykjavik\",\"IT|Europe/Rome\",\"JE|Europe/London Europe/Jersey\",\"JM|America/Jamaica\",\"JO|Asia/Amman\",\"JP|Asia/Tokyo\",\"KE|Africa/Nairobi\",\"KG|Asia/Bishkek\",\"KH|Asia/Bangkok Asia/Phnom_Penh\",\"KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati\",\"KM|Africa/Nairobi Indian/Comoro\",\"KN|America/Port_of_Spain America/St_Kitts\",\"KP|Asia/Pyongyang\",\"KR|Asia/Seoul\",\"KW|Asia/Riyadh Asia/Kuwait\",\"KY|America/Panama America/Cayman\",\"KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral\",\"LA|Asia/Bangkok Asia/Vientiane\",\"LB|Asia/Beirut\",\"LC|America/Port_of_Spain America/St_Lucia\",\"LI|Europe/Zurich Europe/Vaduz\",\"LK|Asia/Colombo\",\"LR|Africa/Monrovia\",\"LS|Africa/Johannesburg Africa/Maseru\",\"LT|Europe/Vilnius\",\"LU|Europe/Luxembourg\",\"LV|Europe/Riga\",\"LY|Africa/Tripoli\",\"MA|Africa/Casablanca\",\"MC|Europe/Monaco\",\"MD|Europe/Chisinau\",\"ME|Europe/Belgrade Europe/Podgorica\",\"MF|America/Port_of_Spain America/Marigot\",\"MG|Africa/Nairobi Indian/Antananarivo\",\"MH|Pacific/Majuro Pacific/Kwajalein\",\"MK|Europe/Belgrade Europe/Skopje\",\"ML|Africa/Abidjan Africa/Bamako\",\"MM|Asia/Yangon\",\"MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan\",\"MO|Asia/Macau\",\"MP|Pacific/Guam Pacific/Saipan\",\"MQ|America/Martinique\",\"MR|Africa/Abidjan Africa/Nouakchott\",\"MS|America/Port_of_Spain America/Montserrat\",\"MT|Europe/Malta\",\"MU|Indian/Mauritius\",\"MV|Indian/Maldives\",\"MW|Africa/Maputo Africa/Blantyre\",\"MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas\",\"MY|Asia/Kuala_Lumpur Asia/Kuching\",\"MZ|Africa/Maputo\",\"NA|Africa/Windhoek\",\"NC|Pacific/Noumea\",\"NE|Africa/Lagos Africa/Niamey\",\"NF|Pacific/Norfolk\",\"NG|Africa/Lagos\",\"NI|America/Managua\",\"NL|Europe/Amsterdam\",\"NO|Europe/Oslo\",\"NP|Asia/Kathmandu\",\"NR|Pacific/Nauru\",\"NU|Pacific/Niue\",\"NZ|Pacific/Auckland Pacific/Chatham\",\"OM|Asia/Dubai Asia/Muscat\",\"PA|America/Panama\",\"PE|America/Lima\",\"PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier\",\"PG|Pacific/Port_Moresby Pacific/Bougainville\",\"PH|Asia/Manila\",\"PK|Asia/Karachi\",\"PL|Europe/Warsaw\",\"PM|America/Miquelon\",\"PN|Pacific/Pitcairn\",\"PR|America/Puerto_Rico\",\"PS|Asia/Gaza Asia/Hebron\",\"PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores\",\"PW|Pacific/Palau\",\"PY|America/Asuncion\",\"QA|Asia/Qatar\",\"RE|Indian/Reunion\",\"RO|Europe/Bucharest\",\"RS|Europe/Belgrade\",\"RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr\",\"RW|Africa/Maputo Africa/Kigali\",\"SA|Asia/Riyadh\",\"SB|Pacific/Guadalcanal\",\"SC|Indian/Mahe\",\"SD|Africa/Khartoum\",\"SE|Europe/Stockholm\",\"SG|Asia/Singapore\",\"SH|Africa/Abidjan Atlantic/St_Helena\",\"SI|Europe/Belgrade Europe/Ljubljana\",\"SJ|Europe/Oslo Arctic/Longyearbyen\",\"SK|Europe/Prague Europe/Bratislava\",\"SL|Africa/Abidjan Africa/Freetown\",\"SM|Europe/Rome Europe/San_Marino\",\"SN|Africa/Abidjan Africa/Dakar\",\"SO|Africa/Nairobi Africa/Mogadishu\",\"SR|America/Paramaribo\",\"SS|Africa/Juba\",\"ST|Africa/Sao_Tome\",\"SV|America/El_Salvador\",\"SX|America/Curacao America/Lower_Princes\",\"SY|Asia/Damascus\",\"SZ|Africa/Johannesburg Africa/Mbabane\",\"TC|America/Grand_Turk\",\"TD|Africa/Ndjamena\",\"TF|Indian/Reunion Indian/Kerguelen\",\"TG|Africa/Abidjan Africa/Lome\",\"TH|Asia/Bangkok\",\"TJ|Asia/Dushanbe\",\"TK|Pacific/Fakaofo\",\"TL|Asia/Dili\",\"TM|Asia/Ashgabat\",\"TN|Africa/Tunis\",\"TO|Pacific/Tongatapu\",\"TR|Europe/Istanbul\",\"TT|America/Port_of_Spain\",\"TV|Pacific/Funafuti\",\"TW|Asia/Taipei\",\"TZ|Africa/Nairobi Africa/Dar_es_Salaam\",\"UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye\",\"UG|Africa/Nairobi Africa/Kampala\",\"UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway\",\"US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu\",\"UY|America/Montevideo\",\"UZ|Asia/Samarkand Asia/Tashkent\",\"VA|Europe/Rome Europe/Vatican\",\"VC|America/Port_of_Spain America/St_Vincent\",\"VE|America/Caracas\",\"VG|America/Port_of_Spain America/Tortola\",\"VI|America/Port_of_Spain America/St_Thomas\",\"VN|Asia/Bangkok Asia/Ho_Chi_Minh\",\"VU|Pacific/Efate\",\"WF|Pacific/Wallis\",\"WS|Pacific/Apia\",\"YE|Asia/Riyadh Asia/Aden\",\"YT|Africa/Nairobi Indian/Mayotte\",\"ZA|Africa/Johannesburg\",\"ZM|Africa/Maputo Africa/Lusaka\",\"ZW|Africa/Maputo Africa/Harare\"]}\n\n/***/ }),\n/* 284 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = axesPostRender;\n\nvar _transform = __webpack_require__(18);\n\nvar transform = _interopRequireWildcard(_transform);\n\nvar _axesPostrenderYAxis = __webpack_require__(285);\n\nvar _axesPostrenderYAxis2 = _interopRequireDefault(_axesPostrenderYAxis);\n\nvar _axesPostrenderXAxis = __webpack_require__(286);\n\nvar _axesPostrenderXAxis2 = _interopRequireDefault(_axesPostrenderXAxis);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction axesPostRender(highchart, options, styles) {\n makeLinesCrisp(highchart, options);\n if (options.type !== 'pie' && options.horizontalBarType === 'normal') {\n (0, _axesPostrenderYAxis2.default)(highchart, options, styles);\n if (options.type === 'line' || options.type === 'column' || options.type === 'area') {\n if (options.categoriesAreDates && !options.quarterlyResults) {\n var ticks = highchart.xAxis[0].ticks;\n for (var key in ticks) {\n if (options.xAxisTicks[key].type === 'minor') {\n var tick = ticks[key].mark.element;\n var d = tick.getAttribute('d');\n var dArr = d.split(' ');\n dArr[5] = +dArr[5] - 2.5;\n var newD = dArr.join(' ');\n tick.setAttribute('d', newD);\n }\n }\n if ((0, _axesPostrenderXAxis.checkVideoGroup)(options.id)) {\n (0, _axesPostrenderXAxis.extendVideoAxisLine)(highchart);\n }\n var labels = highchart.xAxis[0].labelGroup.element.children;\n\n if (options.product === 'marketwatch') {\n var firstLabel = labels[0];\n var _x = +firstLabel.getAttribute('x');\n\n var _firstLabel$getBoundi = firstLabel.getBoundingClientRect(),\n _width = _firstLabel$getBoundi.width;\n\n if (_x < _width / 2) {\n if (_x < 0) firstLabel.setAttribute('x', 0);\n firstLabel.setAttribute('text-anchor', 'start');\n }\n }\n var lastLabel = labels[labels.length - 1];\n var x = +lastLabel.getAttribute('x');\n\n var _lastLabel$getBoundin = lastLabel.getBoundingClientRect(),\n width = _lastLabel$getBoundin.width;\n\n if (x + width / 2 > options.width) {\n lastLabel.setAttribute('text-anchor', 'end');\n }\n }\n } else {\n (0, _axesPostrenderXAxis2.default)(highchart, options, styles);\n }\n }\n\n if (options.type === 'bar' && (options.horizontalBarType === 'aboveBar' || options.horizontalBarType === 'noScaleAndLeft')) {\n // for first label sit inside bar\n var highchartContainer = highchart.container;\n var allDataLabels = highchartContainer.getElementsByClassName('highcharts-data-labels')[0];\n var firstDataLabel = highchartContainer.getElementsByClassName('highcharts-data-labels')[0].children[0];\n var firstDataLabelRight = firstDataLabel.getBoundingClientRect().right;\n var xAxisLabels = highchartContainer.getElementsByClassName('highcharts-xaxis-labels')[0];\n var arrayOfLabelWidths = [];\n for (var g = 0; g < xAxisLabels.children.length; g++) {\n var currentXAxisLabelWidth = xAxisLabels.children[g].getBoundingClientRect().width;\n arrayOfLabelWidths.push(currentXAxisLabelWidth);\n }\n for (var i = 0; i < allDataLabels.children.length; i++) {\n var currentDataLabel = allDataLabels.children[i];\n var currentDataLabelWidth = currentDataLabel.getBoundingClientRect().width;\n var correspondingBarHeight = highchartContainer.getElementsByClassName('highcharts-bar-series')[0].children[i].getAttribute('height');\n var highestXAxisLabelWidth = Math.max.apply(Math, arrayOfLabelWidths);\n var stringLengthOfLabel = currentDataLabel.children[0].innerHTML.length;\n var heightPlusTen = Number(correspondingBarHeight) + (10 - stringLengthOfLabel);\n\n if (options.horizontalBarType === 'aboveBar') {\n if (i !== 0) {\n transform.write(currentDataLabel, 'translate', heightPlusTen);\n }\n }\n\n if (options.horizontalBarType === 'noScaleAndLeft') {\n heightPlusTen += highestXAxisLabelWidth + 5;\n if (options.horizontalBarLabel && i === 0) {\n var additionalSpace = 10;\n if (stringLengthOfLabel > 5 && stringLengthOfLabel < 10) additionalSpace = 5;\n if (stringLengthOfLabel >= 10) additionalSpace = -10;\n heightPlusTen -= currentDataLabelWidth + additionalSpace;\n }\n transform.write(currentDataLabel, 'translate', heightPlusTen);\n }\n }\n if (options.horizontalBarType === 'noScaleAndLeft') {\n var axis = highchart.axes[0];\n var axisLeft = axis.chart.plotLeft;\n var axisSizeX = axis.chart.plotSizeX;\n var elementPathFirst = highchart.renderer.path().attr({\n stroke: '#333',\n fill: 'black',\n 'stroke-width': 1,\n class: 'add-vertical-gridline',\n d: \"M \" + axisLeft + ' 10 L ' + axisLeft + ' ' + axisSizeX,\n opacity: 1\n });\n var root = highchartContainer.getElementsByClassName('highcharts-series-group')[0];\n root.appendChild(elementPathFirst.element);\n }\n }\n\n if (true) {\n if (options.product === 'wsj' && options.print && options.type !== 'bar' && options.type !== 'pie') {\n var suffix = highchart.container.getElementsByClassName('units y-axis-suffix')[0];\n suffix.style.fill = 'rgb(0, 0, 0)';\n }\n }\n\n if (options.print && options.type === 'bar') {\n var barCont = highchart.container.getElementsByClassName('highcharts-bar-series');\n for (var _i = 0; _i < barCont.length; _i++) {\n var highchartBarG = barCont[_i];\n var highchartBarGTransformVal = /translate\\(\\s*([^\\s,)]+)[ ,]([^\\s,)]+)/.exec(highchartBarG.getAttribute('transform'));\n var xValTranslate = parseInt(highchartBarGTransformVal[1]) - 1.5;\n highchartBarG.transform.baseVal.getItem(0).setTranslate(xValTranslate, parseInt(highchartBarGTransformVal[2]));\n }\n }\n if (options.print && options.type === 'column') {\n if (options.product === 'wsj') {\n var seriesGroup = highchart.container.getElementsByClassName('highcharts-series-group')[0];\n var seriesGroupTransformVal = seriesGroup.transform.baseVal.getItem(0).matrix.f;\n var seriesGroupYVal = seriesGroupTransformVal - 1;\n seriesGroup.transform.baseVal.getItem(0).setTranslate(0, seriesGroupYVal);\n }\n var colCont = highchart.container.getElementsByClassName('highcharts-column-series');\n for (var _i2 = 0; _i2 < colCont.length; _i2++) {\n var highchartColumnG = colCont[_i2];\n var highchartColumnGTransformVal = /translate\\(\\s*([^\\s,)]+)[ ,]([^\\s,)]+)/.exec(highchartColumnG.getAttribute('transform'));\n var yValTranslate = parseInt(highchartColumnGTransformVal[2]) + 1;\n highchartColumnG.transform.baseVal.getItem(0).setTranslate(parseInt(highchartColumnGTransformVal[1]), yValTranslate);\n }\n if (options.product === 'wsj') {\n var rectGroup = highchart.container.getElementsByClassName('highcharts-point');\n for (var h = 0; h < rectGroup.length; h++) {\n var rect = rectGroup[h];\n var rectHeight = parseInt(rect.getAttribute('height'));\n var rectY = parseInt(rect.getAttribute('y'));\n rect.setAttribute('height', rectHeight + 1);\n rect.setAttribute('y', rectY - 2);\n }\n }\n }\n\n if (true) {\n if (options.product === 'wsj' && options.type === 'bar' && options.horizontalChartType === 'normal') {\n var yAxis = highchart.container.getElementsByClassName('highcharts-yaxis-labels');\n yAxis[0].setAttribute('transform', 'translate(0, 2)');\n\n // align h-bar xAxis labels to the left\n var xAxis = highchart.container.getElementsByClassName('highcharts-xaxis-labels');\n var xLabels = xAxis[0].childNodes;\n\n xLabels.forEach(function (label) {\n label.setAttribute('x', '0');\n label.setAttribute('text-anchor', 'start');\n\n var tspans = label.childNodes;\n\n tspans.forEach(function (tspan) {\n tspan.setAttribute('x', '0');\n });\n });\n }\n }\n}\n\n// Ensures lines are offset by 0.5 to ensure crispness.\n// TODO: If ever combining inner and outer charts, revisit this function!\nfunction makeLinesCrisp(highchart, options) {\n var g = highchart.container.querySelectorAll('svg > g');\n\n for (var i = 0; i < g.length; i++) {\n var list = g[i].classList;\n\n if (!list.contains('highcharts-legend')) {\n g[i].setAttribute('transform', 'translate(0, 0.5)');\n }\n\n if (true) {\n if (options.product === 'wsj') {\n if (list.contains('highcharts-xaxis')) {\n g[i].setAttribute('transform', 'translate(0, ' + options.styles.tick.yOffset + ')');\n }\n }\n }\n }\n}\n\n/***/ }),\n/* 285 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = axesPostRenderYAxis;\n\nvar _transform = __webpack_require__(18);\n\nvar transform = _interopRequireWildcard(_transform);\n\nvar _util = __webpack_require__(24);\n\nvar _constants = __webpack_require__(3);\n\nvar _element = __webpack_require__(15);\n\nvar element = _interopRequireWildcard(_element);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n/**\n * Manipulates the SVG drawn by Highcharts to update the scale (Y) axis.\n */\nfunction axesPostRenderYAxis(highchart, options, styles) {\n // The scale axis is always the Y axis, even on bar charts where the scale\n // axis visually is the X axis:\n // for wsj yaxis labels, set to tabular-nums\n var notVideoGroup = options.id !== 'video' && options.id !== 'twitterVideo';\n\n if (!options.print && options.product === 'wsj' && notVideoGroup) {\n highchart.container.getElementsByClassName('highcharts-yaxis-labels')[0].setAttribute('style', 'font-variant-numeric: tabular-nums;');\n }\n\n if (options.type === 'scatter' && options.headings.yaxisTitle.text) {\n moveYAxisTitle(highchart, options);\n }\n\n var axis = highchart.axes[1];\n if ((0, _util.isVerticalType)(options.type)) {\n makeDecimalsConsistent(axis);\n extendTicks(axis, options);\n } else {\n if (options.type !== 'scatter') shiftLastHorizontalBarLine(highchart, options);\n }\n\n setZeroLineToBlack(axis, options, highchart);\n\n insertZeroesForEmptyBars(highchart.renderer, axis, options);\n if ((options.type === 'column' || options.type === 'bar') && options.id !== 'video' && options.id !== 'twitterVideo') {\n moveZeroLineToTop(highchart.container, axis, options);\n }\n if (notVideoGroup) {\n ensureLabelsFit(axis, options, highchart);\n }\n\n if (options.type === 'scatter' && (options.product === 'marketwatch' || options.product === 'financialnews')) {\n shiftYAxisLabelsScatter(options, highchart);\n }\n\n if (true) {\n if (options.product === 'wsj' && options.type !== 'bar') {\n // moveTopLabel(axis, options);\n }\n }\n\n addSuffix(highchart.renderer, axis, options, styles, highchart);\n\n if (options.id === 'print-barrons') {\n if (axis.ticks[0]) setZeroLineWidth(axis.ticks[0], 1);\n }\n\n if (options.id === 'video' || options.id === 'twitterVideo') {\n if (axis.ticks[0]) {\n setZeroLineWidth(axis.ticks[0], options.id === 'video' ? 11 : 8);\n //sets xAxis line width to 1\n setXAxisLineToOne(highchart.axes[0].axisLine);\n }\n }\n}\n\nfunction shiftYAxisLabelsScatter(options, highchart) {\n var container = highchart.container;\n var yAxisLabelsGroup = container.getElementsByClassName('highcharts-yaxis-labels')[0];\n var translateValue = 'translate(35, 0.5)';\n yAxisLabelsGroup.attributes.transform.nodeValue = translateValue;\n}\n\nfunction moveYAxisTitle(highchart, options) {\n var yAxisTitle = highchart.container.getElementsByClassName('highcharts-axis-title')[1];\n var yVal = Number(yAxisTitle.getAttribute('y'));\n if (options.product === 'wsj' || options.product === 'barrons') {\n yAxisTitle.setAttribute('y', yVal - yVal * 0.015);\n }\n}\n\nfunction setZeroLineWidth(line, num) {\n line.gridLine.element.setAttribute('stroke-width', num);\n}\n\nfunction setXAxisLineToOne(line) {\n line.element.setAttribute('stroke-width', 1);\n}\n\n// Set line representing the zero value to black.\nfunction setZeroLineToBlack(axis, options, highchart) {\n var zeroTick = axis.ticks[0];\n\n if (false) {\n if (options.product === 'marketwatch' && options.type === 'column') {\n return;\n }\n }\n\n var zeroY = void 0;\n if (options.type === 'scatter') {\n (0, _util.forAxisTicks)(axis, function (ticks, i) {\n var label = ticks.label.textStr;\n if (label === '0' || label === '0<tspan fill-opacity=\"0\">.0</tspan>') {\n zeroY = i;\n }\n });\n\n if (zeroY !== undefined) {\n var zeroTickScatter = axis.ticks[zeroY];\n zeroTickScatter.gridLine.element.setAttribute('stroke', options.styles.axes.zeroGridLine.color || '#333');\n }\n }\n if (zeroTick && options.type !== 'scatter') {\n zeroTick.gridLine.element.setAttribute('stroke', '#000');\n\n if (true) {\n if (options.product === 'wsj') {\n zeroTick.gridLine.element.setAttribute('stroke', options.styles.axes.zeroGridLine.color);\n }\n }\n }\n}\nfunction makeDecimalsConsistent(axis) {\n var zeroIndex = axis.tickPositions.indexOf(0);\n var maxDecimals = getMaxTicksDecimals(axis);\n if (maxDecimals > 0) {\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n var textStr = tick.label.textStr;\n var indexDot = textStr.indexOf('.');\n var decimals = indexDot === -1 ? 0 : textStr.length - indexDot - 1;\n if (key === 0) {\n textStr += '<tspan fill-opacity=\"0\">';\n }\n if (indexDot === -1) {\n indexDot = textStr.length;\n textStr += '.';\n }\n while (decimals++ < maxDecimals) {\n textStr += '0';\n }\n if (key === 0) {\n textStr += '</tspan>';\n }\n tick.label.textStr = textStr;\n tick.label.element.innerHTML = textStr;\n });\n }\n}\n\n// Extend grid lines under the label text on the y-axis (for \"vertical\" axes).\nfunction extendTicks(axis, options) {\n if (options.type === 'scatter' || options.type === 'line' && options.product === 'marketwatch') {\n var firstTick = void 0;\n var lastTick = void 0;\n (0, _util.forAxisTicks)(axis, function (tick) {\n if (tick.isFirst) firstTick = tick;\n if (tick.isLast) lastTick = tick;\n });\n if (firstTick && lastTick) {\n var firstLine = firstTick.gridLine.element;\n var lastLine = lastTick.gridLine.element;\n var dFirst = transform.read(firstLine, 'd');\n var dLast = transform.read(lastLine, 'd');\n dFirst[0][0] = dFirst[0][0] - 1;\n dFirst[1][0] = dFirst[1][0] + 1;\n dLast[0][0] = dLast[0][0] - 1;\n dLast[1][0] = dLast[1][0] + 1;\n transform.write(firstLine, 'd', dFirst);\n transform.write(lastLine, 'd', dLast);\n }\n } else {\n (0, _util.forAxisTicks)(axis, function (tick) {\n var line = tick.gridLine.element;\n if (line.hasAttribute('d')) {\n var d = transform.read(line, 'd');\n d[0][0] = 0;\n if (options.spaceAddedForAnnotations) {\n d[1][0] += options.print ? _constants.ANNOTATIONS_SPACE_PRINT : _constants.ANNOTATIONS_SPACE;\n }\n transform.write(line, 'd', d);\n // const d = line.getAttribute('d').split(/\\s/g);\n // d[1] = 0;\n // if (options.spaceAddedForAnnotations) {\n // console.log('???');\n // }\n // line.setAttribute('d', d.join(' '));\n }\n });\n }\n}\n\nfunction getMaxTicksDecimals(axis) {\n var maxDecimals = 0;\n (0, _util.forAxisTicks)(axis, function (tick, pos) {\n var decimal = tick.label.textStr.split('.')[1];\n if (decimal !== undefined) {\n maxDecimals = Math.max(decimal.length, maxDecimals);\n }\n });\n return maxDecimals;\n}\n\n// Add units suffix string to the top tick label (`isLast`).\nfunction addSuffix(renderer, axis, options, styles, highchart) {\n if (options.axes.units && (0, _util.isVerticalType)(options.type)) {\n for (var key in axis.ticks) {\n var ok1 = options.axes.reversed && axis.ticks[key].isFirst;\n var ok2 = !options.axes.reversed && axis.ticks[key].isLast;\n if (ok1 || ok2) {\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n var label = axis.ticks[key].label.element;\n\n // To align the 0 properly with other labels without having\n // decimals, the decimals are made inivisible. But this means\n // any units suffix must be offset to not show up to the right\n // of these invisible decimals but instead right next to the 0.\n var tspan = label.querySelector('tspan');\n var xOffset = 0;\n if (isVideoGroup) {\n xOffset = label.getBoundingClientRect().width;\n }\n if (tspan && tspan.getAttribute('opacity') === '0') {\n var tspanInnerHTML = label.innerHTML + '';\n var labelFullWidth = label.getBoundingClientRect().width;\n label.innerHTML = '0';\n var labelTmpWidth = label.getBoundingClientRect().width;\n xOffset += labelTmpWidth - labelFullWidth;\n label.innerHTML = tspanInnerHTML;\n }\n var unitStr = options.product === 'financialnews' ? options.axes.units.suffix : options.axes.units.suffix.replace(/^\\s+/, _constants.NBSP);\n if ((options.type === 'line' || options.type === 'column') && options.product === 'marketwatch') {\n label.innerHTML = label.innerHTML + '<tspan>' + ' ' + unitStr + '</tspan>';\n break;\n }\n if ((options.type === 'line' || options.type === 'column') && options.product === 'financialnews') {\n if (options.axes.units.suffix !== \"%\") {\n var labelYVal = label.getAttribute('y');\n var highChartContainer = highchart.container;\n var newLabelYVal = labelYVal - 7;\n styles.NORMAL_STYLE.fontSize = 10;\n styles.NORMAL_STYLE.color = '#555555';\n var firstYAxisLabel = highChartContainer.getElementsByClassName('highcharts-yaxis-labels')[0].lastElementChild.getBoundingClientRect().right;\n var suffix = renderer.text(unitStr, +label.getAttribute('x'), +newLabelYVal).css(styles.NORMAL_STYLE).add();\n suffix.element.setAttribute('class', 'units y-axis-suffix');\n var suffixRight = suffix.element.getBoundingClientRect().right;\n var currentSuffX = suffix.element.getAttribute('x');\n var diff = suffixRight - firstYAxisLabel;\n suffix.element.setAttribute('x', currentSuffX - diff);\n\n // suffix.element.setAttribute('x', currentSuffX - diff);\n break;\n } else {\n label.innerHTML = label.innerHTML + '<tspan>' + unitStr + '</tspan>';\n break;\n }\n } else {\n var css = styles.NORMAL_STYLE;\n\n if (true) {\n if (options.product === 'wsj') {\n css = Object.assign({}, css, {\n fontSize: styles.AXES.label.fontSize,\n color: styles.AXES.label.color,\n fill: styles.AXES.label.color\n });\n }\n }\n\n if (false) {\n if (options.product === 'mansionglobal') {\n css = Object.assign({}, css, {\n color: styles.AXES.color,\n fill: styles.AXES.color\n });\n }\n }\n\n var _suffix = renderer.text(unitStr, +label.getAttribute('x') + xOffset, +label.getAttribute('y')).css(css).add();\n var currentY = _suffix.element.getAttribute('y');\n _suffix.element.setAttribute('class', 'units y-axis-suffix');\n // aligns the suffix with the label\n if (!options.print) {\n _suffix.element.setAttribute('y', +currentY + .5);\n }\n break;\n }\n }\n }\n }\n}\n\n// On vertical bar / column charts, insert a small '0' in place of bars that\n// have a zero value, so that it does not look like an error.\nfunction insertZeroesForEmptyBars(renderer, axis, options) {\n var typeOk = options.type === 'column';\n var stackOk = !options.stacking || axis.series.length === 1;\n if (typeOk && stackOk) {\n var series = axis.series;\n var allLessThanZero = allValuesLessThanZero(axis);\n var g = [];\n axis.series.forEach(function (series) {\n series.data.forEach(function (item) {\n if (item.y === 0) {\n var el = item.graphic.element;\n var translate = transform.read(el.parentElement, 'translate');\n if (translate) {\n var x = +el.attributes.x.value + translate[0];\n var y = +el.attributes.y.value + translate[1];\n var smallStyle = options.styles.get('small');\n if (options.product === 'wsj') {\n smallStyle.color = '#555555';\n } else {\n smallStyle.color = item.color;\n }\n x += +el.attributes.width.value / 2;\n y += allLessThanZero ? parseFloat(options.styles.get('small').fontSize) : -4;\n var text = renderer.text('0', x, y).attr({ 'text-anchor': 'middle' }).css(smallStyle).add();\n g.push({ type: '0', el: text.element });\n }\n } else if (item.graphic) {\n g.push({ type: 'bar', el: item.graphic.element });\n }\n });\n });\n\n // Sort by `left` position.\n g.sort(function (a, b) {\n return a.el.getBoundingClientRect().left - b.el.getBoundingClientRect().left;\n });\n\n // Check if 0s overlap bars or other 0s and, if so, remove.\n for (var i = 0; i < g.length - 1; i++) {\n if (g[i].type === '0') {\n var r1 = g[i].el.getBoundingClientRect();\n var r2 = g[i + 1].el.getBoundingClientRect();\n if (r1.right + 2 > r2.left) {\n element.removeChild(g[i].el);\n }\n }\n }\n }\n}\n\n// Returns true if all values are <= 0.\nfunction allValuesLessThanZero(axis) {\n return axis.series.every(function (series) {\n return series.data.every(function (item) {\n return item.y <= 0;\n });\n });\n}\n\n// In Highcharts, grid lines ares places under lines and columns, which is\n// fine. But we want the 0 line to be above (as in z or depth).\nfunction moveZeroLineToTop(container, axis, options) {\n var zero = axis.ticks[0];\n if (zero) {\n var el = zero.gridLine.element;\n if (true) {\n if (options.size === 'print-wsj') {\n var d = transform.read(el, 'd');\n if (options.type === 'bar') {\n d[0][0] = Math.floor(d[0][0]) - 0.5;\n d[1][0] = d[0][0];\n } else {\n d[0][1] = Math.ceil(d[0][1]);\n d[1][1] = d[0][1];\n }\n transform.write(el, 'd', d);\n }\n }\n container.querySelector('.highcharts-series-group').appendChild(el);\n }\n}\n\n// Sometimes Highcharts lets labels slip off the edge of chart, as if it\n// measured the label width using a short label. Push the labels over so they\n// all fit.\nfunction ensureLabelsFit(axis, options, highchart) {\n // ensureHorizontalLabelsFit(axis);\n if (options.type === 'bar') {\n if (!options.axes.reversed) {\n ensureHorizontalLabelsFit(axis);\n }\n } else {\n if (!options.headings.yaxisTitle.text) {\n ensureVerticalLabelsFit(axis, options, highchart);\n }\n }\n}\n\nfunction ensureHorizontalLabelsFit(axis) {\n var key = axis.tickPositions[axis.tickPositions.length - 1];\n var tick = axis.ticks[key];\n var el = tick.label.element;\n var x2 = tick.label.xy.x + el.getBoundingClientRect().width / 2;\n var dif = axis.left + axis.width - x2;\n tick.label.xy.x += dif;\n if (dif < 0) {\n el.setAttribute('x', +el.getAttribute('x') + dif);\n }\n}\n\nfunction ensureVerticalLabelsFit(axis, options, highchart) {\n var maxWidth = 0;\n (0, _util.forAxisTicks)(axis, function (tick) {\n var width = tick.label.element.getBoundingClientRect().width;\n maxWidth = Math.max(maxWidth, width);\n });\n maxWidth = Math.ceil(maxWidth);\n if (options.product !== \"marketwatch\" && options.product !== 'financialnews') {\n (0, _util.forAxisTicks)(axis, function (tick) {\n tick.label.element.setAttribute('x', maxWidth);\n });\n } else {\n if (options.type !== 'scatter') {\n if (false) {\n if (options.product === 'financialnews') {\n if (options.type === 'line' || options.type === 'column') {\n var highChartContainer = highchart.container;\n var labelsG = highChartContainer.getElementsByClassName('highcharts-yaxis-labels');\n var translateValue = options.print === true ? 'translate(0, 5)' : 'translate(0, 6)';\n labelsG[0].attributes.transform.nodeValue = translateValue;\n var gElRectLabels = highChartContainer.getElementsByClassName('highcharts-yaxis-labels')[0];\n var gElRectRightLabels = gElRectLabels.getBoundingClientRect().right;\n var gElRectLabelsChildren = gElRectLabels.children;\n var horizontalGridLineArr = highChartContainer.getElementsByClassName('highcharts-yaxis-grid')[0].children;\n var gWidth = gElRectLabels.getBoundingClientRect().width;\n // if (options.type === 'line') {\n // // translate the yaxis labels to the right based on width of surround g element\n // gElRectLabels.setAttribute('transform', 'translate(' + gWidth + ',' + '6)' );\n // for (let i = 0; i < gElRectLabelsChildren.length; i++) {\n // gElRectLabelsChildren[i].setAttribute('text-anchor', 'end');\n // // if there's a 0 in yaxis labels remove the extra space/zero\n // const hasZero = gElRectLabels.children[i].innerHTML === '0' || gElRectLabels.children[i].innerHTML[1] === '<' ? true : false;\n // if (hasZero) {\n // gElRectLabels.children[i].children[0].innerHTML = '';\n // }\n // const currentXVal = Number(gElRectLabelsChildren[i].getAttribute('x'));\n // const dValue = transform.read(horizontalGridLineArr[i], 'd');\n // let lastHorizontalGridLineElD = horizontalGridLineArr[i].getAttribute('d').split(' ');\n // const childWidth = gElRectLabelsChildren[i].getBoundingClientRect().width;\n // // extend horizontal gridlines to match position of label, which is now right aligned. highcharts positions them to be left aligned and all horizontal gridlines end at some point, thereby having same length\n // lastHorizontalGridLineElD[3] = ((currentXVal + (gWidth) - childWidth - 2)) + \",\" + dValue[1][1];\n // // if first yaxis label has a percentage sign, decrease length of horizontal gridline to account for extra space that % creates\n // lastHorizontalGridLineElD[3] = (options.axes.units.suffix === '%') && i === gElRectLabelsChildren.length - 1 ? ((currentXVal + (gWidth) - childWidth - 15)) + \",\" + dValue[1][1] : lastHorizontalGridLineElD[3];\n // // make sure first gridline has proper length\n // lastHorizontalGridLineElD[3] = options.axes.units.prefix !== \"\" && i === gElRectLabelsChildren.length - 1 ? (currentXVal - (gWidth * 0.125)) + \",\" + dValue[1][1] : lastHorizontalGridLineElD[3];\n // lastHorizontalGridLineElD[2] = '';\n // lastHorizontalGridLineElD = lastHorizontalGridLineElD.join(' ');\n // horizontalGridLineArr[i].setAttribute('d', lastHorizontalGridLineElD);\n // }\n // }\n }\n if (options.type !== 'line' && options.type !== 'column') {\n (0, _util.forAxisTicks)(axis, function (tick) {\n tick.label.element.setAttribute('x', maxWidth);\n });\n }\n }\n }\n if (false) {\n if (options.type === 'line' && options.product === 'marketwatch') {\n var _highChartContainer = highchart.container;\n\n var _labelsG = _highChartContainer.getElementsByClassName('highcharts-yaxis-labels');\n var _translateValue = 'translate(0, 6)';\n _labelsG[0].attributes.transform.nodeValue = _translateValue;\n }\n if (options.type === 'column' && options.product === 'marketwatch') {\n var _highChartContainer2 = highchart.container;\n var _labelsG2 = _highChartContainer2.getElementsByClassName('highcharts-yaxis-labels');\n var _translateValue2 = 'translate(0, 6)';\n _labelsG2[0].attributes.transform.nodeValue = _translateValue2;\n }\n\n if (options.type !== \"line\" && options.type !== 'column') {\n (0, _util.forAxisTicks)(axis, function (tick) {\n tick.label.element.setAttribute('x', maxWidth);\n });\n }\n }\n }\n }\n}\n\nfunction shiftLastHorizontalBarLine(highchart, options) {\n var axis = highchart.axes[1];\n (0, _util.forAxisTicksReverse)(axis, function (tick) {\n if (tick.isLast) {\n var d = transform.read(tick.gridLine.element, 'd');\n d[0][0] -= 1;\n d[1][0] = d[0][0];\n transform.write(tick.gridLine.element, 'd', d);\n // break:\n return false;\n }\n });\n}\n\nfunction moveTopLabel(axis, options) {\n var isColumn = options.type === 'column';\n var isPrint = options.size === 'print-wsj';\n var is8u = options.size === '8u';\n\n for (var tick in axis.ticks) {\n if (axis.ticks[tick].isLast) {\n var topTick = axis.ticks[tick];\n var label = axis.ticks[tick].label.element;\n var position = +label.getAttribute('y');\n var offset = -2;\n\n if (is8u) {\n offset = -1;\n }\n\n if (isColumn) {\n offset = -1;\n }\n\n if (isPrint) {\n offset = -.5;\n }\n\n var newPostition = position + offset;\n label.setAttribute('y', newPostition);\n }\n }\n}\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = axesPostRenderXAxis;\nexports.checkVideoGroup = checkVideoGroup;\nexports.extendVideoAxisLine = extendVideoAxisLine;\nexports.updateCategoryLabels = updateCategoryLabels;\n\nvar _util = __webpack_require__(24);\n\nvar _transform = __webpack_require__(18);\n\nvar transform = _interopRequireWildcard(_transform);\n\nvar _axesCommon = __webpack_require__(49);\n\nvar _constants = __webpack_require__(3);\n\nvar _element = __webpack_require__(15);\n\nvar element = _interopRequireWildcard(_element);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction axesPostRenderXAxis(highchart, options, style) {\n var id = options.id,\n type = options.type,\n print = options.print,\n product = options.product,\n categoriesAreDates = options.categoriesAreDates;\n\n var isVideoGroup = checkVideoGroup(options.id);\n if (id === 'print-barrons' && type !== 'bar') {\n updateBarronsTickLabels(highchart, options);\n }\n if (barronsNoBaseline(highchart, options) && type !== 'scatter' && type !== 'bar') {\n updateBarronsTicks(highchart, options);\n }\n if (product === 'wsj' && !print && !isVideoGroup) {\n highchart.container.getElementsByClassName('highcharts-xaxis-labels')[0].setAttribute('style', 'font-variant-numeric: tabular-nums;');\n }\n if (product === 'knewz') {\n var xAxisContainerTicks = highchart.container.getElementsByClassName('highcharts-xaxis')[0].children;\n for (var x = 0; x < xAxisContainerTicks.length; x++) {\n xAxisContainerTicks[x].setAttribute('stroke', '#fefefe');\n }\n }\n if (type === 'bar') {\n formatBarChartLabels(highchart, options);\n } else {\n if (categoriesAreDates) {\n updateDateLabels(highchart, options, style);\n } else {\n updateCategoryLabels(highchart, options);\n if (false) {\n if (product === 'marketwatch' && type === 'line') {\n adjustFirstXAxisTick(highchart.axes[0], false, false);\n }\n }\n if (false) {\n if (product === 'financialnews' && type === 'line') {\n adjustFirstXAxisTick(highchart.axes[0], false, false);\n }\n }\n }\n }\n updateForMW(highchart, options);\n if (type === 'scatter') {\n var axis = highchart.axes[0];\n setZeroLineToBlack(highchart, options, axis);\n }\n\n if (isVideoGroup) {\n extendVideoAxisLine(highchart);\n }\n}\n\nfunction checkVideoGroup(id) {\n return id === 'video' || id === 'twitterVideo';\n}\n\nfunction extendVideoAxisLine(highchart) {\n var axisLine = highchart.axes[0].axisLine.element;\n var d = axisLine.getAttribute('d').split(' ');\n d[1] = '0';\n axisLine.setAttribute('d', d.join(' '));\n}\n\nfunction setZeroLineToBlack(highchart, options, axis) {\n var zeroX = void 0;\n\n (0, _util.forAxisTicks)(axis, function (ticks, i) {\n var label = ticks.label.textStr;\n if (label === '0') zeroX = i;\n });\n if (zeroX !== undefined) {\n var zeroTickScatter = axis.ticks[zeroX];\n zeroTickScatter.gridLine.element.setAttribute('stroke', options.styles.axes.zeroGridLine.color || '#333');\n var container = highchart.container;\n var xAxisGrid = container.getElementsByClassName('highcharts-yaxis-grid')[0];\n xAxisGrid.appendChild(zeroTickScatter.gridLine.element);\n }\n}\n\nfunction updateBarronsTickLabels(highchart, options) {\n var ticks = highchart.xAxis[0].ticks;\n for (var key in ticks) {\n var tick = ticks[key];\n var tickBottom = +tick.mark.d.split(' ')[5];\n tick.label.element.setAttribute('y', tickBottom + 7);\n }\n}\n\nfunction barronsNoBaseline(highchart, options) {\n var ticks = highchart.axes[1].tickPositions;\n return options.product === 'barrons' && (!highchart.axes[1].ticks[0] || ticks.some(function (tick) {\n return tick < 0;\n }) && ticks.some(function (tick) {\n return tick >= 0;\n }));\n}\n\nfunction updateBarronsTicks(highchart, options) {\n var ticks = highchart.axes[0].ticks;\n for (var key in ticks) {\n var el = ticks[key].mark.element;\n el.setAttribute('stroke', '#e6e6e6');\n if (options.print) el.setAttribute('stroke-width', 0.4);\n }\n}\n\nfunction updateForMW(highchart, options) {\n if (false) {\n if (options.product === 'marketwatch' && options.type === 'line') {\n var xAxisTicks = highchart.xAxis[0].ticks;\n var xAxisTicksAsArr = Object.keys(xAxisTicks);\n var firstTick = xAxisTicksAsArr[0];\n var lastTick = xAxisTicksAsArr[xAxisTicksAsArr.length - 1];\n for (var x in xAxisTicks) {\n var highchartXAxisGrid = highchart.container.getElementsByClassName('highcharts-xaxis-grid')[0];\n var highchartXAxisGridFirstEl = highchartXAxisGrid.firstElementChild.getAttribute('class');\n var highchartXAxisGridLastEl = highchartXAxisGrid.lastElementChild.getAttribute('class');\n var hasFirstAddedVerticalGridline = highchartXAxisGridFirstEl === 'add-vertical-gridline';\n var hasLastAddedVerticalGridline = highchartXAxisGridLastEl === 'add-vertical-gridline';\n var evalBoth = hasLastAddedVerticalGridline && hasFirstAddedVerticalGridline;\n if (evalBoth) {\n if (xAxisTicks[x].label.element.parentElement) {} else {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n } else {\n if (!hasFirstAddedVerticalGridline && !hasLastAddedVerticalGridline) {\n if (xAxisTicks[x].label.element.parentElement || xAxisTicks[x].isFirst || xAxisTicks[x].isLast) {} else {\n if (!xAxisTicks[x].isFirst || !xAxisTicks[x].isLast) {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n }\n }\n if (!hasFirstAddedVerticalGridline && hasLastAddedVerticalGridline) {\n if (xAxisTicks[x].label.element.parentElement || xAxisTicks[x].isFirst) {} else {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n }\n if (!hasLastAddedVerticalGridline && hasFirstAddedVerticalGridline) {\n\n if (xAxisTicks[x].label.element.parentElement || xAxisTicks[x].isLast) {} else {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n }\n }\n }\n }\n }\n}\n\nfunction formatBarChartLabels(highchart, options) {\n if (!options.allowCategoriesLinebreak) {\n (0, _util.forAxisTicks)(highchart.xAxis[0], function (tick) {\n var tspan = tick.label.element.querySelectorAll('tspan');\n if (tspan.length > 1) {\n // Move the top tspan down to center it vertically in its space:\n var labelY = +tick.label.element.getAttribute('y');\n var tspanY = +tspan[1].getAttribute('dy') / 2 * (tspan.length - 1);\n tick.label.element.setAttribute('y', labelY + tspanY);\n\n // Replace last 4 characters with an ellipsis (4 instead of 3 to be\n // ensure nothing is cut off at left):\n var textStr = tspan[0].textContent.substr(0, tspan[0].textContent.length - 4) + '...';\n tspan[0].innerHTML = textStr;\n\n // Remove the extra tspans:\n for (var i = 1; i < tspan.length; i++) {\n element.removeChild(tspan[i]);\n }\n }\n });\n }\n}\n\n// Remove category ticks and labels that are redudant or overlapping.\nfunction updateCategoryLabels(highchart, options) {\n if (options.removeOverlappingCategories) {\n var maxWidth = 0;\n var ticksShown = [];\n (0, _util.forAxisTicks)(highchart.xAxis[0], function (tick, index) {\n if (tick.label.textStr === index) {\n removeTick(tick);\n } else {\n maxWidth = Math.max(maxWidth, tick.label.textPxLength);\n ticksShown.push(tick);\n }\n });\n var maxLabels = Math.floor(highchart.xAxis[0].width / maxWidth) || 0;\n var skip = Math.ceil(ticksShown.length / maxLabels);\n if (skip > 1) {\n var removeNum = 0;\n for (var i = 0; i < ticksShown.length; i++) {\n if (removeNum > 0 && removeNum < skip) {\n removeTick(ticksShown[i]);\n }\n if (++removeNum === skip) {\n removeNum = 0;\n }\n }\n }\n }\n}\n\n// Remove date ticks and labels that are redudant or overlapping.\nfunction updateDateLabels(highchart, options, styles) {\n var axis = highchart.axes[0];\n if (options.type === 'column') {\n var categoriesLen = options.categories[0].length;\n if (options.quarterlyResults && categoriesLen > 9) {\n // centerCategoriesBetweenBars(axis, options);\n } else {\n if (axis.tickInterval < _axesCommon.YEAR_MILLISECONDS) {\n // TODO: Re-enable this but with long ticks, better rules.\n // centerCategoriesBetweenBars(axis, options);\n // centerLabelsBetweenBars(highchart, options);\n }\n }\n }\n if (options.quarterlyResults && options.series[0].data.length <= 44) {\n // ensureMultipleLinesForQuarterlyResults(highchart, styles);\n removeOverlappingQuarterlyResults(axis, options, styles);\n } else {\n var skipNum = getDatesSkipNum(axis, styles.MARGIN);\n var startNum = formatDateLabels(axis, options, skipNum);\n removeAmPm(axis, options);\n var isMwOrFn = options.product === 'marketwatch' || options.product === 'financialnews' ? true : false;\n var tickArray = Object.keys(axis.ticks);\n if (options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n var isAnIntervalOfOne = options.xAxisInterval.split(' ')[0] === '1' && options.xAxisInterval !== '1 week' ? true : false;\n if (isAnIntervalOfOne || options.xAxisInterval === 'auto') {\n removeOverlappingDates(axis, options, skipNum, startNum, styles);\n if (options.xAxisInterval === '1 day') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n } else {\n if (options.type !== 'column' && !isMwOrFn && options.showMinorTicks) {\n addMinorTick(axis, options, styles, highchart);\n }\n if (isMwOrFn) {\n if (options.xAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.xAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && options.type === 'column') {\n if (options.xAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.xAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && !options.showMinorTicks) {\n if (options.xAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.xAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n }\n }\n\n if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== undefined) {\n var isAnIntervalOfOneMob = options.mobileXAxisInterval.split(' ')[0] === '1' && options.mobileXAxisInterval !== '1 week' ? true : false;\n if (isAnIntervalOfOneMob || options.mobileXAxisInterval === 'auto') {\n removeOverlappingDates(axis, options, skipNum, startNum, styles);\n if (options.mobileXAxisInterval === '1 day') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n } else {\n if (options.type !== 'column' && !isMwOrFn && options.showMinorTicks) {\n addMinorTick(axis, options, styles, highchart);\n }\n if (isMwOrFn) {\n if (options.mobileXAxisInterval === '1 week' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.mobileXAxisInterval === '3 months' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && options.type === 'column') {\n if (options.mobileXAxisInterval === '1 week' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.mobileXAxisInterval === '3 months' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && !options.showMinorTicks) {\n if (options.mobileXAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.mobileXAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n }\n }\n }\n if (options.fiscalYears && !options.quarterlyResults) {\n addFY(axis);\n }\n replaceApostrophes(axis);\n adjustLastXAxisTick(axis);\n ensureTickSpacing(axis, options, styles);\n if (false) {\n if (options.product === 'marketwatch' && options.type === 'line') {\n adjustFirstXAxisTick(axis, true, false);\n }\n if (options.product === 'marketwatch' && options.type === 'column' && options.quarterlyResults && options.size === 'marketwatch-4u-inset') {\n adjustFirstXAxisTick(axis, false, true);\n }\n }\n if (false) {\n if (options.product === 'financialnews' && options.type === 'line') {\n adjustFirstXAxisTick(axis, true, false);\n }\n }\n\n if (true) {\n if (options.product === 'wsj') {\n if (!options.showMinorTicks) {\n makeTickShorter(axis, options, styles, highchart);\n }\n var xGridTickGroup = highchart.container.getElementsByClassName('highcharts-xaxis')[0];\n var xGridLabelGroup = highchart.container.getElementsByClassName('highcharts-xaxis-labels')[0];\n if (!options.print) {\n if (options.showMinorTicks) {\n xGridLabelGroup.setAttribute('transform', 'translate(0, -0.5)');\n } else {\n xGridLabelGroup.setAttribute('transform', 'translate(0, -2.5)');\n }\n }\n\n if (xGridTickGroup.children.length - 1 === xGridLabelGroup.children.length && options.showMinorTicks) {\n if (!options.print) xGridLabelGroup.setAttribute('transform', 'translate(0, -2.5)');\n makeTickShorter(axis, options, styles, highchart);\n }\n }\n }\n}\n\n// Moves ticks to between bars by shifting them to the left by half the space\n// between ticks. For use when x-axis date labels are categories and not actual\n// dates, such as quarterly data.\nfunction centerCategoriesBetweenBars(axis, options) {\n var tickSpacing = Math.round(getTickSpacing(axis) * 0.5);\n var x = [];\n (0, _util.forAxisTicks)(axis, function (tick, tickPos, index) {\n var markD = transform.read(tick.mark.element, 'd');\n x[index] = markD[0][0] - tickSpacing; // + 0.5;\n });\n moveAxisLabels(axis, x);\n}\n\n// Move a series tick marks and labels to specific x positions.\nfunction moveAxisLabels(axis, x) {\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n if (x[index] !== null && x[index] !== undefined) {\n var markD = transform.read(tick.mark.element, 'd');\n markD[0][0] = markD[1][0] = Math.round(x[index]) + 0.5;\n transform.write(tick.mark.element, 'd', markD[0], markD[1]);\n tick.label.element.setAttribute('x', x[index]);\n var tspan = tick.label.element.querySelectorAll('tspan');\n for (var i = 0; i < tspan.length; i++) {\n tspan[i].setAttribute('x', x[index]);\n }\n }\n });\n}\n\n// Get number of x-axis date labels that overlap and therefore must be removed.\nfunction getDatesSkipNum(axis, margin) {\n // At least 2 points are needed if one is to overlap another.\n if (axis.tickPositions.length >= 2) {\n var widest = 0;\n var tickDistance = Math.max(2, getTickSpacing(axis) - margin);\n (0, _util.forAxisTicks)(axis, function (tick) {\n var width = tick.label.element.getBoundingClientRect().right + margin - tick.label.element.getBoundingClientRect().left;\n widest = Math.max(widest, width);\n });\n var skipNum = normalizeSkipNumber(Math.ceil(widest / tickDistance));\n var skipLabels = Math.floor(axis.tickPositions.length / skipNum);\n var maxLabels = Math.floor(axis.width / widest);\n while (skipLabels > maxLabels) {\n skipNum = normalizeSkipNumber(Math.ceil(widest / --tickDistance));\n skipLabels = Math.floor(axis.tickPositions.length / skipNum);\n }\n return skipNum;\n }\n return 0;\n}\n\n// When overlapping date labels are removed, this returns a number that is more\n// normal to skip over: 10 instead of 9 or 5 instead of 3.\nfunction normalizeSkipNumber(skip) {\n if (skip > 2 && skip < 5) {\n return 5;\n } else if (skip > 5 && skip < 10) {\n return 10;\n } else if (skip > 10 && skip < 15) {\n return 15;\n } else if (skip > 15 && skip < 20) {\n return 20;\n } else if (skip > 20 && skip < 25) {\n return 25;\n } else if (skip > 25 && skip < 50) {\n return 50;\n } else if (skip > 50 && skip < 100) {\n return 100;\n }\n return skip;\n}\n\n// Returns the distance/space between the first two ticks of an axis.\nfunction getTickSpacing(axis) {\n var spacing = 0;\n if (axis.tickPositions.length > 1) {\n var t1 = axis.ticks[axis.tickPositions[0]];\n var t2 = axis.ticks[axis.tickPositions[1]];\n var d1 = transform.read(t1.mark.element, 'd');\n var d2 = transform.read(t2.mark.element, 'd');\n spacing = d2[0][0] - d1[0][0];\n }\n return spacing;\n}\n\n// Format x-axis dates that are not quarterly results nor fiscal years.\nfunction formatDateLabels(axis, options, skipNum) {\n var dateType = null;\n var startNum = 0;\n skipNum = skipNum || 0;\n\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n var str = tick.label.textStr;\n\n if (/^(\\d{4})\\b/.test(str)) {\n dateType = 'year';\n } else if (options.dateTimeLabelFormat === '%e. %b') {\n dateType = 'month-date';\n } else if (options.dateTimeLabelFormat === '%b \\'%y') {\n dateType = 'month-year';\n }\n if (skipNum >= 2) {\n if (+str % skipNum === 0) {\n startNum = index;\n return false;\n }\n } else {\n return false;\n }\n });\n\n if (dateType === 'year') {\n formatYears(axis, startNum);\n } else if (dateType === 'month-year') {\n // This just removes duplicated years; we don't actually want to do this yet.\n // formatMonthYear(axis, startNum);\n } else if (dateType === 'month-date') {\n formatMonthDate(axis, startNum);\n }\n return startNum;\n}\n\n// Called from formatXAxisDates().\nfunction formatYears(axis, startNum) {\n var century = void 0;\n var tmpCentury = void 0;\n var abbrYear = void 0;\n var prevStr = void 0;\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n if (index >= startNum) {\n var str = tick.label.textStr + '';\n if (str === prevStr) {\n prevStr = str;\n removeTick(tick);\n } else {\n prevStr = str;\n // Format: 1980 '90 2000 '10\n tmpCentury = str.substr(0, 2);\n if (tmpCentury === century) {\n str = tick.label.textStr = _constants.APOSTROPHE + str.substr(2);\n tick.label.element.innerHTML = str;\n } else {\n century = tmpCentury;\n }\n var apostMatch = str.match(/\\u2019(\\d\\d)/);\n if (apostMatch) {\n if (abbrYear === undefined || abbrYear !== apostMatch[1]) {\n abbrYear = apostMatch[1];\n } else if (abbrYear === apostMatch[1]) {\n var apostIndex = str.indexOf(_constants.APOSTROPHE);\n if (apostIndex > 0) {\n str = str.substr(0, apostIndex - 1);\n tick.label.element.innerHTML = str;\n }\n }\n }\n }\n }\n });\n}\n\n// Called from formatXAxisDates().\nfunction formatMonthYear(axis, startNum) {\n var year = undefined;\n (0, _util.forAxisTicks)(axis, function (tick) {\n if (tick.label.element.parentElement) {\n var label = tick.label.element.innerHTML.split(' ');\n if (label.length === 2) {\n if (label[1] === year) {\n tick.label.textStr = tick.label.element.innerHTML = label[0];\n } else {\n year = label[1];\n }\n }\n }\n });\n}\n\n// Called from formatXAxisDates().\nfunction formatMonthDate(axis, startNum) {\n var month = undefined;\n (0, _util.forAxisTicks)(axis, function (tick) {\n if (tick.label.element.parentElement) {\n var label = tick.label.element.innerHTML.split(' ');\n if (label.length === 2 && _constants.MONTHS.indexOf(label[0]) !== -1) {\n if (label[0] === month) {\n tick.label.textStr = tick.label.element.innerHTML = label[1];\n } else {\n month = label[0];\n }\n }\n }\n });\n}\n\n// Remove superflous am/pm.\nfunction removeAmPm(axis, options) {\n var am = void 0;\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n if (tick.label.element.parentElement) {\n var str = tick.label.textStr + '';\n if (index === 0) {\n if (str.indexOf(' a.m.') !== -1) {\n am = 'a';\n } else if (str.indexOf(' p.m.') !== -1) {\n am = 'p';\n } else if (str === 'noon') {\n am = null;\n } else {\n // Timescale is not hours.\n return;\n }\n } else if (str !== 'noon') {\n var amIndex = str.indexOf(' a.m.');\n var tmpAm = amIndex !== -1 ? 'a' : 'p';\n if (amIndex === -1) {\n amIndex = str.indexOf(' p.m.');\n }\n if (amIndex !== -1) {\n if (tmpAm === am) {\n tick.label.element.innerHTML = str.substr(0, amIndex);\n } else {\n am = tmpAm;\n }\n }\n }\n }\n });\n}\n\n// For overlapping quarterly results, remove labels that do not mention years.\nfunction removeOverlappingQuarterlyResults(axis, options, styles) {\n var tick0 = axis.ticks[axis.tickPositions[0]];\n var rect0 = tick0.label.element.getBoundingClientRect();\n var totalSkips = 0;\n var skips = 1;\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n if (index > 0) {\n if (rect0 === null && totalSkips > 0) {\n if (tick.label.element.innerHTML) {\n if (skips > 0 && totalSkips > 1 && options.xAxisInterval === 'auto') {\n removeDateTick(tick, options, styles);\n }\n if (++skips >= totalSkips) {\n skips = 0;\n }\n }\n } else {\n if (tick.label.element.innerHTML) {\n var rect = tick.label.element.getBoundingClientRect();\n if (rect0.right + styles.MARGIN >= rect.left && options.xAxisInterval === 'auto') {\n removeDateTick(tick, options, styles);\n } else {\n rect0 = null;\n }\n ++totalSkips;\n }\n }\n }\n });\n}\n\n// Removes overlapping datetime labels, accounting for context of datetime\n// labels before and after.\nfunction removeOverlappingDates(axis, options, skipNum, startNum, styles) {\n var prevStr = null;\n var label = null;\n var isMY = options.dateTimeLabelFormat === '%b \\'%y';\n var isHM = /^\\%H\\:\\%M/.test(options.dateTimeLabelFormat);\n var axisTickLen = axis.tickPositions.length;\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n if (axisTickLen >= 2 && skipNum >= 2) {\n if (!(skipNum < 2 || (index - startNum) % skipNum === 0)) {\n removeDateTick(tick, options, styles);\n }\n }\n if (tick.label.element.parentElement) {\n if (isMY) {\n label = tick.label.textStr.split(' ');\n if (label[1] === prevStr) {\n tick.label.element.innerHTML = label[0];\n }\n prevStr = label[1];\n } else if (isHM) {\n label = tick.label.textStr;\n if (label === prevStr) {\n removeDateTick(tick, options, styles);\n }\n prevStr = label;\n }\n }\n });\n}\n\n// If fiscalYears, add 'FY' to first label.\nfunction addFY(axis) {\n (0, _util.forAxisTicks)(axis, function (tick) {\n if (tick.label.element.parentElement) {\n tick.label.element.innerHTML = 'FY' + tick.label.textStr;\n return false;\n }\n });\n}\n\n// Ensures curly apostrophes render correctly.\nfunction replaceApostrophes(axis) {\n (0, _util.forAxisTicks)(axis, function (tick) {\n var str = tick.label.element.innerHTML + '';\n tick.label.element.innerHTML = str.replace(_constants.APOSTROPHE, '’');\n });\n}\n\nfunction adjustLastXAxisTick(axis) {\n var tick = axis.ticks[axis.tickPositions[axis.tickPositions.length - 1]];\n var markX = transform.read(tick.mark.element, 'd')[0][0];\n var labelWidth = tick.label.element.getBoundingClientRect().width;\n var offset = axis.left + axis.width - (markX + labelWidth / 2);\n tick.label.element.setAttribute('x', markX + Math.min(0, offset));\n tick.label.element.setAttribute('text-anchor', 'middle');\n}\n\nfunction adjustFirstXAxisTick(axis, isDateTime, isColQuarterly) {\n var tick = axis.ticks[axis.tickPositions[0]];\n var markX = transform.read(tick.mark.element, 'd')[0][0];\n var labelWidth = tick.label.element.getBoundingClientRect().width;\n if (labelWidth / 2 > markX && !isColQuarterly) {\n if (isDateTime) {\n tick.label.element.setAttribute('x', labelWidth / 2);\n } else {\n tick.label.element.setAttribute('text-anchor', 'left');\n }\n } else {\n tick.label.element.setAttribute('x', markX);\n }\n if (isColQuarterly) {\n var barContainerX = axis.chart.container.getElementsByClassName('highcharts-series-0')[0].firstElementChild.getAttribute('x');\n if (barContainerX <= 0) {\n tick.label.element.setAttribute('text-anchor', 'left');\n tick.label.element.setAttribute('x', 2);\n tick.label.element.children[1].setAttribute('x', 2);\n }\n }\n}\n\n// Ensures ticks are spaced adequately apart by removing ticks that are too\n// close together.\nfunction ensureTickSpacing(axis, options, styles) {\n var MIN = 4;\n var longs = [];\n var dx = void 0;\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n var markEl = tick.mark.element;\n if (markEl.parentElement && Math.round(markEl.getBoundingClientRect().height) >= styles.MEDIUM_TICK_LENGTH) {\n longs.push(index);\n }\n });\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n var markEl = tick.mark.element;\n if (markEl.parentElement) {\n var d = transform.read(null, 'd', tick.mark.d);\n if (dx === undefined) {\n dx = d[0][0];\n }\n if (longs.indexOf(index) === -1) {\n if (d[0][0] - dx <= MIN) {\n element.removeChild(markEl);\n } else {\n var n = -1;\n var longFwd = longs.some(function (longIndex) {\n n = longIndex;\n return longIndex > index;\n });\n if (longFwd) {\n var longTickF = axis.ticks[axis.tickPositions[n]];\n var dlf = transform.read(null, 'd', longTickF.mark.d);\n if (dlf[0][0] - d[0][0] <= MIN) {\n element.removeChild(markEl);\n }\n }\n if (markEl.parentElement) {\n var longBck = longs.some(function (longIndex) {\n n = longIndex;\n return longIndex < index;\n });\n if (longBck) {\n var longTickB = axis.ticks[axis.tickPositions[n]];\n var dlb = transform.read(null, 'd', longTickB.mark.d);\n if (d[0][0] - dlb[0][0] <= MIN) {\n element.removeChild(markEl);\n }\n }\n }\n dx = d[0][0];\n }\n } else {\n dx = d[0][0];\n }\n }\n });\n}\n\n// Removes a date tick and label or replaces it with a short tick depending\n// on the context.\nfunction removeDateTick(tick, options, styles) {\n var labelEl = tick.label.element;\n var markEl = tick.mark.element;\n element.removeChild(labelEl);\n if (!options.showMinorTicks) {\n element.removeChild(markEl);\n }\n if (options.type === 'column') {\n element.removeChild(markEl);\n } else if (Math.round(markEl.getBoundingClientRect().height) >= styles.MEDIUM_TICK_LENGTH && options.showMinorTicks) {\n var d = transform.read(null, 'd', tick.mark.d);\n d[1][1] = d[0][1] + styles.SHORT_TICK_LENGTH;\n transform.write(markEl, 'd', d);\n }\n}\n\nfunction addMinorTick(axis, options, styles, highchart) {\n var xAxisGridGroup = axis.chart.axes[0].gridGroup.element;\n if (xAxisGridGroup.children.length > 1) {\n var firstInGroupD = transform.read(null, 'd', xAxisGridGroup.children[0].getAttribute('d'));\n var secondInGroupD = transform.read(null, 'd', xAxisGridGroup.children[1].getAttribute('d'));\n var interval = void 0;\n var unit = void 0;\n if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== 'auto' && options.mobileXAxisInterval !== undefined) {\n interval = options.mobileXAxisInterval.split(' ')[0];\n unit = options.mobileXAxisInterval.split(' ')[1];\n }\n if (options.xAxisInterval !== 'auto' && options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n interval = options.xAxisInterval.split(' ')[0];\n unit = options.xAxisInterval.split(' ')[1];\n }\n interval = unit === 'week' ? 7 : interval;\n var diff = (secondInGroupD[0][0] - firstInGroupD[0][0]) / parseInt(interval);\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n var labelEl = tick.label.element;\n var markEl = tick.mark.element;\n var d = transform.read(null, 'd', tick.mark.d);\n if (options.dates[0].year % interval !== 0 && options.dates[0].month === 1 || unit === 'months' || unit === 'week') {\n var backD = transform.read(null, 'd', tick.mark.d);\n var firstTick = void 0;\n if (unit === 'years') {\n firstTick = index === 0 ? parseInt(tick.label.element.children[0].innerHTML) : firstTick;\n }\n if (unit === 'months') {\n var label = tick.label.textStr.split(' ')[0];\n var labelMonthValue = findMonthValue(label);\n firstTick = index === 0 ? labelMonthValue : firstTick;\n }\n if (unit === 'week') {\n firstTick = index === 0 ? parseInt(tick.label.textStr.split(' ')[1]) : firstTick;\n }\n var benchmark = void 0;\n if (unit === 'years') {\n benchmark = firstTick - options.dates[0].year;\n }\n if (unit === 'months') {\n benchmark = firstTick - options.dates[0].month - 1;\n }\n if (unit === 'week') {\n benchmark = options.dates[0].date > firstTick ? firstTick + 30 - options.dates[0].date : firstTick - options.dates[0].date;\n }\n for (var w = 0; w < benchmark; w++) {\n appendToXGridGroup(highchart, diff, styles, backD, false);\n }\n }\n\n var tickArray = Object.keys(tick.axis.ticks);\n var lastTick = tickArray[tickArray.length - 1];\n var isLastTick = tick.pos === tick.axis.ticks[lastTick].pos ? true : false;\n if (!isLastTick) {\n for (var i = 0; i < interval - 1; i++) {\n appendToXGridGroup(highchart, diff, styles, d, true);\n }\n } else {\n var lastBenchmark = void 0;\n if (unit === 'years') {\n lastBenchmark = options.dates[options.dates.length - 1].year - parseInt(tick.label.textCache.split(',')[0]);\n }\n if (unit === 'months') {\n var _label = tick.label.textStr.split(' ')[0];\n var _labelMonthValue = findMonthValue(_label);\n lastBenchmark = options.dates[options.dates.length - 1].month - _labelMonthValue;\n }\n if (unit === 'week') {\n lastBenchmark = options.dates[options.dates.length - 1].month.date - parseInt(tick.label.textStr.split(' ')[1]);\n }\n for (var _i = 0; _i < lastBenchmark; _i++) {\n appendToXGridGroup(highchart, diff, styles, d, true);\n }\n }\n\n var isMonth = unit === 'months' ? true : false;\n if (unit === 'months' || unit === 'week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, isMonth);\n }\n });\n }\n // if (xAxisGridGroup.children.length === 1) {\n // const firstInGroupD = transform.read(null, 'd', xAxisGridGroup.children[0].getAttribute('d'));\n // let interval;\n // let unit;\n // if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== 'auto' && options.mobileXAxisInterval !== undefined) {\n // interval = options.mobileXAxisInterval.split(' ')[0];\n // unit = options.mobileXAxisInterval.split(' ')[1];\n // } \n // if (options.xAxisInterval !== 'auto' && options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n // interval = options.xAxisInterval.split(' ')[0];\n // unit = options.xAxisInterval.split(' ')[1];\n // }\n // let firstDate;\n // let lastDate;\n // if (unit === 'years') {\n // firstDate = options.dates[0].year;\n // lastDate = options.dates[options.dates.length - 1].year;\n // }\n // if (unit === 'months') {\n // firstDate = options.dates[0].month;\n // lastDate = options.dates[options.dates.length - 1].month;\n // }\n // if (unit === 'week') {\n // firstDate = options.dates[0].date;\n // lastDate = options.dates[options.dates.length - 1].date;\n // }\n // const axisTicksKey = Object.keys(axis.ticks);\n // const xAxisGridLine = highchart.container.getElementsByClassName('highcharts-axis-line')[0];\n // const xAxisGridLineD = xAxisGridLine.getAttribute('d');\n // const gridLineD = transform.read(null, 'd', xAxisGridLineD);\n // const d = transform.read(null, 'd', axis.ticks[axisTicksKey[0]].mark.d);\n // const secD = transform.read(null, 'd', axis.ticks[axisTicksKey[0]].mark.d);\n // const isWeekOrYear = unit === 'years' ? axis.ticks[axisTicksKey[0]].label.textStr : axis.ticks[axisTicksKey[0]].label.textStr.split(' ')[1];\n // let diff = unit !== 'months' ? parseInt(isWeekOrYear) - firstDate : \n // findMonthValue(axis.ticks[axisTicksKey[0]].label.textStr.split(' ')[0]) - firstDate;\n // let diffLast = unit !== 'months' ? lastDate - parseInt(isWeekOrYear) : \n // lastDate - findMonthValue(axis.ticks[axisTicksKey[0]].label.textStr.split(' ')[0]);\n // const diffBetweenFirstDataPoint = Math.round(d[0][0] / diff);\n // for (let u = 0; u < diff; u++) {\n // if (d[0][0] - diffBetweenFirstDataPoint >= gridLineD[0][0]) {\n // appendToXGridGroup(highchart, diffBetweenFirstDataPoint, styles, d, false);\n // }\n // }\n // for (let y = 0; y < diffLast; y++) {\n // if (secD[1][0] + diffBetweenFirstDataPoint <= gridLineD[1][0]) {\n // appendToXGridGroup(highchart, diffBetweenFirstDataPoint, styles, secD, true);\n // }\n // }\n // }\n}\n\nfunction appendToXGridGroup(highchart, diff, styles, d, isAfterFirstTick) {\n var newPath = highchart.renderer.path().attr({\n 'opacity': 1\n });\n if (isAfterFirstTick) {\n d[0][0] = d[0][0] + diff;\n d[1][0] = d[1][0] + diff;\n } else {\n d[0][0] = d[0][0] - diff;\n d[1][0] = d[1][0] - diff;\n }\n d[1][1] = d[0][1] + styles.SHORT_TICK_LENGTH;\n newPath = transform.write(newPath.element, 'd', d);\n newPath.setAttribute('stroke-width', 1);\n newPath.setAttribute('stroke', '#333333');\n var gridGroup = highchart.container.getElementsByClassName('highcharts-xaxis')[0];\n gridGroup.appendChild(newPath);\n}\n\n// Removes a tick label and grid line.\nfunction removeTick(tick) {\n element.removeChild(tick.label.element);\n element.removeChild((tick['gridLine'] || tick['mark']).element);\n}\n\nfunction styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, isMonth) {\n var firstTick = tickArray[0];\n var firstTickVal = isMonth ? axis.ticks[firstTick].label.element.children[0].innerHTML.split(' ')[1] : axis.ticks[firstTick].label.element.children[0].innerHTML.split(' ')[0];\n var landMarkTicks = [firstTickVal];\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n var tickVal = tick.label.textStr;\n var tickValUnit = isMonth ? tickVal.split(' ')[1] : tickVal.split(' ')[0];\n if (landMarkTicks.indexOf(tickValUnit) !== -1 && index !== 0) {\n var arrayVal = isMonth ? 0 : 1;\n if (tick.label.element.children.length > 0) {\n tick.label.element.children[0].innerHTML = tickVal.split(' ')[arrayVal];\n } else {\n tick.label.element.innerHTML = tickVal.split(' ')[arrayVal];\n }\n } else {\n landMarkTicks.push(tickValUnit);\n }\n });\n}\n\nfunction findMonthValue(label) {\n var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n return months.indexOf(label);\n}\n\nfunction makeTickShorter(axis, options, styles, highchart) {\n (0, _util.forAxisTicks)(axis, function (tick, key, index) {\n // const labelEl = tick.label.element;\n var markEl = tick.mark.element;\n var d = transform.read(null, 'd', tick.mark.d);\n d[1][1] = d[0][1] + styles.SHORT_TICK_LENGTH;\n transform.write(markEl, 'd', d);\n });\n}\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.postRender = postRender;\n\nvar _defs = __webpack_require__(54);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar COLOR = '#333';\nvar VIDEO_COLOR = '#fff';\nvar MARGIN_ONLINE = 16;\nvar MARGIN_PRINT = 8;\n\nfunction postRender(highchart, options) {\n var container = highchart.container;\n\n removeClipPath(container);\n\n var _getAnnotationEls = getAnnotationEls(container),\n _getAnnotationEls2 = (0, _slicedToArray3.default)(_getAnnotationEls, 2),\n labels = _getAnnotationEls2[0],\n shapes = _getAnnotationEls2[1];\n\n spaceOutAndDrawLines(highchart, options, labels, shapes);\n}\n\nfunction removeClipPath(container) {\n // prevents labels from being cut off\n var el = findEl(container, '.highcharts-annotation');\n el.setAttribute('clip-path', 'none');\n}\n\nfunction findEl(el, selector) {\n return el.querySelector(selector);\n}\n\nfunction getAnnotationEls(container) {\n var findByType = searchContainer(container);\n return ['label', 'shape'].map(findByType).map(sortEls);\n}\n\nfunction searchContainer(container) {\n return function (type) {\n var els = container.querySelectorAll('.highcharts-annotation-' + type + 's');\n return [].concat((0, _toConsumableArray3.default)(els[0].children));\n };\n}\n\nfunction sortEls(els) {\n // labels/shapes both sorted by x ascending\n return els.sort(function (a, b) {\n return findAttr(a) - findAttr(b);\n });\n}\n\nfunction findAttr(el) {\n var type = el.tagName;\n switch (type) {\n case 'g':\n // label\n var labelX = parseTransform(el).x;\n var labelWidth = getWidth(el);\n return labelX + labelWidth / 2;\n case 'circle':\n // circle/dot line ends\n return +el.getAttribute('cx');\n case 'path':\n // arrow line end\n return getArrowPosition(el).x;\n }\n}\n\nfunction parseTransform(label) {\n // get label's x, y\n var transform = label.getAttribute('transform');\n var start = transform.indexOf('(') + 1;\n var end = transform.indexOf(')');\n var nums = transform.slice(start, end).split(',');\n return { x: +nums[0], y: +nums[1] };\n}\n\nfunction getWidth(el) {\n return el.getBoundingClientRect().width;\n}\n\nfunction getArrowPosition(path) {\n // get arrow's x, y\n var d = path.getAttribute('d').split(' ');\n return { x: +d[4], y: +d[5] };\n}\n\nfunction spaceOutAndDrawLines(highchart, options, labels, shapes) {\n var _getEls = getEls(highchart),\n _getEls2 = (0, _slicedToArray3.default)(_getEls, 2),\n recession = _getEls2[0],\n suffix = _getEls2[1];\n\n var margin = options.print ? MARGIN_PRINT : MARGIN_ONLINE;\n var x = getLeftX(highchart, options, margin);\n var args = [labels, shapes, x, margin, suffix, recession];\n shiftLabelsRight.apply(undefined, args);\n shiftLabelsLeft.apply(undefined, [options, highchart].concat(args));\n}\n\nfunction getEls(highchart) {\n var el = getEl(highchart.container);\n var recessionEl = el('.label-recession');\n var suffixEl = el('.y-axis-suffix');\n var recession = recessionEl ? {\n type: 'recession',\n startX: getStartX(recessionEl),\n endX: getStartX(recessionEl) + getWidth(recessionEl),\n midpoint: getStartX(recessionEl) + getWidth(recessionEl) / 2\n } : null;\n var suffix = suffixEl ? {\n type: 'suffix',\n startX: getStartX(suffixEl),\n endX: getStartX(suffixEl) + getWidth(suffixEl)\n } : null;\n return [recession, suffix];\n}\n\nfunction getEl(container) {\n return function (tag) {\n return findEl(container, tag);\n };\n}\n\nfunction getStartX(el) {\n return +el.getAttribute('x');\n}\n\nfunction getLeftX(highchart, options, margin) {\n if (highchart.axes[1].opposite) return 0; // y axis on right\n var shortSuffix = options.axes.units.suffix && options.axes.units.suffix.length <= 2;\n if (shortSuffix) {\n var suffixEl = findEl(highchart.container, '.y-axis-suffix');\n return +suffixEl.getAttribute('x') + getWidth(suffixEl) + margin;\n }\n return topLabelX(highchart, options) + margin;\n}\n\nfunction topLabelX(highchart, options) {\n var reversed = options.axes.reversed;\n var yAxis = highchart.axes[1];\n var tickPositions = yAxis.tickPositions;\n var tickPosition = reversed ? tickPositions[0] : lastItem(tickPositions);\n return yAxis.ticks[tickPosition].label.xy.x;\n}\n\nfunction lastItem(arr) {\n return arr[arr.length - 1];\n}\n\nfunction shiftLabelsRight(labels, shapes, hardLeft, margin, suffix, recession) {\n // from left to right, ensure proper spacing between labels\n var startX = hardLeft;\n\n labels.forEach(function (label, i) {\n var shape = shapes[i];\n var labelWidth = getWidth(label);\n\n var _parseTransform = parseTransform(label),\n x = _parseTransform.x,\n needTransform = false;\n\n if (needTransform = x < startX) x = startX;\n\n if (suffix || recession) {\n var _getPositions = getPositions(x, shape, labelWidth),\n moveX = _getPositions.moveX,\n shapeX = _getPositions.shapeX;\n\n var _needShiftRight = needShiftRight(moveX, suffix, recession),\n _needShiftRight2 = (0, _slicedToArray3.default)(_needShiftRight, 2),\n shiftRight = _needShiftRight2[0],\n overlap = _needShiftRight2[1];\n\n if (shiftRight) {\n x = shiftRightX(overlap, shapeX, labelWidth);\n needTransform = true;\n }\n }\n\n if (needTransform) updateTransform(label, x);\n\n startX = x + labelWidth + margin; // farthest left next label can be\n });\n}\n\nfunction getPositions(x, shape, labelWidth) {\n var shapeX = getShapeX(shape);\n var labelX = x + labelWidth / 2; // label center\n var jointed = isJointed(labelX, shapeX, labelWidth);\n var moveX = jointed ? labelX : shapeX; // line top\n return { labelX: labelX, moveX: moveX, shapeX: shapeX, jointed: jointed };\n}\n\nfunction getShapeX(shape) {\n return shape.tagName === 'circle' ? +shape.getAttribute('cx') : getArrowPosition(shape).x;\n}\n\nfunction isJointed(labelX, shapeX, labelWidth) {\n // draw jointed line only if shapeX outside label width\n return Math.abs(labelX - shapeX) >= labelWidth / 2;\n}\n\nfunction needShiftRight(moveX, suffix, recession) {\n var overlap = checkOverlap(moveX, recession, suffix);\n var shiftRight = overlap.type === 'suffix' || overlap.type === 'recession' && moveX >= recession.midpoint;\n return [shiftRight, overlap];\n}\n\nfunction checkOverlap(moveX, recession, suffix) {\n // does line overlap with recession or suffix label\n if (recession && moveX >= recession.startX && moveX <= recession.endX) {\n return recession;\n } else if (suffix && moveX >= suffix.startX && moveX <= suffix.endX) {\n return suffix;\n } else {\n return { type: 'none' };\n }\n}\n\nfunction shiftRightX(overlap, shapeX, labelWidth) {\n // position label to ensure line wraps around recession/suffix\n var centeredOnOverlap = overlap.startX + 2 - labelWidth / 2;\n return shapeX >= centeredOnOverlap && shapeX <= overlap.endX ? shapeX + 1 : centeredOnOverlap;\n}\n\nfunction updateTransform(label, x) {\n // set new x for label\n var _parseTransform2 = parseTransform(label),\n y = _parseTransform2.y;\n\n var translate = 'translate(' + x + ',' + y + ')';\n label.setAttribute('transform', translate);\n}\n\nfunction shiftLabelsLeft(options, highchart, labels, shapes, hardLeft, margin, suffix, recession) {\n /*\n * From right to left, ensure proper spacing between labels\n * After positioning each label, draw its line\n * Hide annotations pushed off left of chart or into suffix label\n */\n var wsjPrint = options.print && options.product === 'wsj';\n var offset = wsjPrint ? 1 : 0;\n var hardRight = highchart.plotLeft + highchart.plotWidth - offset;\n\n var drawLine = lineRenderer(highchart, options, margin);\n\n var startX = hardRight,\n nextLabel = void 0,\n nextShape = void 0;\n var lastLabel = labels.length - 1;\n\n for (var i = lastLabel; i >= 0; i--) {\n\n var label = labels[i],\n shape = shapes[i];\n var labelWidth = getWidth(label);\n\n var _getProps = getProps(label),\n _getProps2 = (0, _slicedToArray3.default)(_getProps, 3),\n flushAlign = _getProps2[0],\n showLine = _getProps2[1],\n dotted = _getProps2[2];\n\n var _parseTransform3 = parseTransform(label),\n x = _parseTransform3.x,\n transformX = void 0;\n\n if (x + labelWidth >= startX) {\n x = startX - labelWidth;\n var itemFlush = i === lastLabel && flushAlign;\n // for right-most labels pushed off chart with flush alignment selected\n if (itemFlush) label.setAttribute('text-anchor', 'end');\n transformX = itemFlush ? hardRight : x;\n }\n\n if (recession || suffix) {\n var _getPositions2 = getPositions(x, shape, labelWidth),\n moveX = _getPositions2.moveX,\n shapeX = _getPositions2.shapeX;\n\n var overlap = checkOverlap(moveX, recession, suffix);\n if (overlap.type !== 'none') {\n x = shiftLeftX(overlap, shapeX, labelWidth);\n transformX = x;\n }\n }\n\n var positions = getPositions(x, shape, labelWidth);\n\n var hidden = x < hardLeft || options.product !== 'financialnews' && suffix && positions.moveX <= suffix.endX;\n if (hidden) {\n hideAnnotation(label, shape);\n } else {\n if (transformX) {\n updateTransform(label, transformX);\n }\n if (showLine) {\n drawLine(label, shape, nextLabel, nextShape, positions, dotted);\n }\n }\n\n // to determine whether jointed lines overlap\n var _ref = [positions.moveX, positions.shapeX];\n nextLabel = _ref[0];\n nextShape = _ref[1];\n startX = x - margin; // farthest right next label can be\n }\n}\n\nfunction lineRenderer(highchart, options, margin) {\n var cushion = margin / 2;\n var addPx = cushion;\n return function (label, shape, nextLabel, nextShape, positions, dotted) {\n var labelX = positions.labelX,\n moveX = positions.moveX,\n shapeX = positions.shapeX,\n jointed = positions.jointed;\n var _ref2 = [getLabelY(label), adjustShapeY(highchart, options, shape)],\n labelY = _ref2[0],\n shapeY = _ref2[1];\n\n // for highstocks charts, if shape cut off on left, re-render shape to force added space\n\n if (options.irregularDates) checkCutoff(highchart, options, shape, shapeX, shapeY);\n\n var _getPathStart = getPathStart(moveX, labelY, shapeX, shapeY),\n _getPathStart2 = (0, _slicedToArray3.default)(_getPathStart, 3),\n m = _getPathStart2[0],\n jointPath = _getPathStart2[1],\n lastL = _getPathStart2[2];\n\n if (jointed) {\n // draw jointed line\n var jointRight = labelX > shapeX;\n var jointY = initialJointY(highchart, margin, jointRight);\n // if jointed lines overlap, bump 2nd line down\n if (nextLabel) {\n if (shapeX >= nextLabel) {\n jointY += addPx;\n addPx += cushion; // keep increasing addPx if >2 consecutive jointed lines overlap\n } else if (moveX >= nextShape) {\n jointY -= addPx;\n addPx += cushion;\n } else {\n addPx = cushion; // reset addPx once consecutive jointed lines don't overlap\n }\n }\n jointPath.push.apply(jointPath, ['L', labelX, jointY, 'L', shapeX, jointY]);\n }\n var path = [].concat((0, _toConsumableArray3.default)(m), (0, _toConsumableArray3.default)(jointPath), (0, _toConsumableArray3.default)(lastL));\n renderPath(highchart, options, path, dotted);\n };\n}\n\nfunction getLabelY(label) {\n // line top positioned below label\n var _parseTransform4 = parseTransform(label),\n y = _parseTransform4.y;\n\n var labelHeight = label.getBoundingClientRect().height;\n return y + labelHeight;\n}\n\nfunction adjustShapeY(highchart, options, shape) {\n var shapeY = shape.tagName === 'circle' ? +shape.getAttribute('cy') : getArrowPosition(shape).y;\n if (!shapeY) {\n // check whether category enabled\n var xAxisPathPoints = highchart.axes[0].axisLine.d.split(' ');\n shapeY = +lastItem(xAxisPathPoints); // line extends to xAxis\n }\n return adjustLineEnd(options, shape, shapeY);\n}\n\nfunction adjustLineEnd(options, shape, shapeY) {\n // for arrow/circle line ends, shorten line for proper intersection with shape\n var isCircle = +shape.getAttribute('stroke-width') > 0;\n var offsetY = 0;\n if (isCircle) {\n offsetY = +shape.getAttribute('r');\n } else if (shape.tagName === 'path') {\n // arrow\n offsetY = (0, _defs.findOffset)(options);\n }\n return shapeY - offsetY;\n}\n\nfunction checkCutoff(highchart, options, shape, shapeX, shapeY) {\n if (+shape.getAttribute('stroke-width') === 0) {\n var isDot = shape.tagName === 'circle';\n var width = (0, _defs.arrowWidth)(options.print);\n var midpoint = width / 2;\n var r = isDot ? +shape.getAttribute('r') : midpoint;\n\n if (shapeX - r <= highchart.plotLeft) {\n shape.setAttribute('display', 'none');\n var fill = options.id === 'video' || options.id === 'twitterVideo' ? VIDEO_COLOR : COLOR;\n var attr = { fill: fill, zIndex: 4 };\n\n if (isDot) {\n highchart.renderer.circle(shapeX, shapeY, r).attr(attr).add();\n } else {\n // arrow\n var height = (0, _defs.getHeight)(width, midpoint);\n var path = ['M', shapeX, shapeY, 'L', shapeX + midpoint, shapeY, 'L', shapeX, shapeY + height, 'L', shapeX - midpoint, shapeY, 'z'];\n\n highchart.renderer.path(path).attr(attr).add();\n }\n }\n }\n}\n\nfunction getPathStart(moveX, labelY, shapeX, shapeY) {\n // top, bottom of line\n return [['M', moveX, labelY], [], ['L', shapeX, shapeY]];\n}\n\nfunction initialJointY(highchart, margin, jointRight) {\n var divisor = jointRight ? 1 : 2;\n return highchart.plotTop + margin / divisor;\n}\n\nfunction renderPath(highchart, options, path, dotted) {\n var print = options.print,\n id = options.id;\n\n var strokeWidth = getStrokeWidth(print, dotted);\n var gap = print ? 3 : 5;\n var dashArray = dotted ? '0.1,' + gap : undefined;\n highchart.renderer.path(path).attr({\n stroke: id === 'video' || id === 'twitterVideo' ? VIDEO_COLOR : COLOR,\n 'stroke-width': strokeWidth,\n 'stroke-dasharray': dashArray,\n 'stroke-linecap': 'round',\n zIndex: 4\n }).add();\n}\n\nfunction getStrokeWidth(print, dotted) {\n if (print && dotted) return 1.5;else if (print && !dotted) return 0.5;else if (!print && dotted) return 2.5;else return 1;\n}\n\nfunction getProps(label) {\n // get properties set in prerender\n var styles = label.getAttribute('style').split(';');\n var flushAlign = styles[0];\n var showLine = styles[1];\n var lineType = styles[2];\n return [!flushAlign.includes('default'), showLine.includes('true') || showLine.includes('undefined'), lineType.includes('dotted')];\n}\n\nfunction shiftLeftX(overlap, shapeX, labelWidth) {\n // position label to ensure line wraps around recession/suffix\n var centeredOnOverlap = overlap.startX - 2 - labelWidth / 2;\n return shapeX <= centeredOnOverlap + labelWidth && shapeX >= overlap.startX ? shapeX - labelWidth - 1 : centeredOnOverlap;\n}\n\nfunction hideAnnotation() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n args.forEach(function (arg) {\n return arg.setAttribute('display', 'none');\n });\n}\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.postRender = undefined;\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _util = __webpack_require__(24);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar postRender = exports.postRender = function postRender(highchart, options) {\n var lineInFront = ['area', 'bar', 'column'].includes(options.type);\n var gPlotLines = [].concat((0, _toConsumableArray3.default)(highchart.container.querySelectorAll(lineInFront ? '.highcharts-plot-lines-5' : '.highcharts-plot-lines-3')))[0];\n var paths = gPlotLines.querySelectorAll('path');\n var isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n paths.forEach(function (path) {\n (0, _util.dashStylesHelper)(path, options.size);\n (0, _util.roundLineJoinsHelper)(path, isVideoGroup);\n });\n};\n\n/***/ }),\n/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createDataParser = exports.fetchData = exports.createDataFormatter = exports.getMikeParams = undefined;\n\nvar _slicedToArray2 = __webpack_require__(4);\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _moment = __webpack_require__(0);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _marketdata = __webpack_require__(47);\n\nvar _marketdata2 = __webpack_require__(212);\n\nvar _constants = __webpack_require__(3);\n\nvar _helpers = __webpack_require__(290);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hstri = __webpack_require__(311);\n\n// functions to export\nfunction getMikeParams(query) {\n return ['instrument', 'start', 'end', 'frequency', 'format', 'dateRange', 'product', 'type'].map(function (prop) {\n return getParam(query, prop);\n });\n}\n\nfunction createDataFormatter(res, isPercent, isCustom, dateRange, frequency, end, instruments) {\n return function (data) {\n var series = formatForChartlos(data, isPercent, isCustom, dateRange, frequency, end, instruments);\n res.send({ series: series });\n };\n}\n\nfunction fetchData(instrument, start, end, frequency, isCustom, dateRange, isRolling, product, done) {\n var isIntraday = /\\d+D/.test(dateRange) || isCustom && (0, _marketdata2.checkIntradayFrequency)(frequency);\n var formattedEnd = findEndDate(end, isRolling, isCustom, isIntraday);\n\n var token = getToken(product);\n\n queryHstri(start, instrument, frequency, formattedEnd, token, dateRange).then(function (data) {\n return done(data);\n });\n}\n\nfunction createDataParser(res, isPercent, isCustom, frequency, dateRange, end) {\n var isMultiple = res.length > 1;\n\n var showAsPercentProps = checkShowAsPercent(res, isPercent);\n var usePercent = isPercent || mustShowAsPercent(showAsPercentProps);\n\n var _res$0$raw = res[0].raw,\n TimeInfo = _res$0$raw.TimeInfo,\n Series = _res$0$raw.Series;\n var IsIntraday = TimeInfo.IsIntraday;\n\n\n var startDates = findStartDates(Series, dateRange);\n\n var needsLast = !isCustom || checkToday(isCustom, IsIntraday, end, (0, _moment2.default)());\n var allDates = buildDatesArr(res, [].concat((0, _toConsumableArray3.default)(startDates)), end, isCustom, frequency, needsLast);\n\n var lastIndex = getLastIdx(allDates);\n\n var lastQuoteDate = findLastQuoteDate(Series);\n var lastDate = IsIntraday ? allDates[lastIndex] : lastQuoteDate;\n\n var categories = createCategories(allDates, needsLast, lastIndex, IsIntraday, frequency, lastQuoteDate);\n\n var date = formatAsOfDate(lastDate, IsIntraday, frequency);\n\n var dataTemplate = buildDataTemplate(allDates);\n\n return function (series, index) {\n var data = series.data,\n raw = series.raw;\n var _raw$Series$index = raw.Series[index],\n InstrumentType = _raw$Series$index.InstrumentType,\n ExtraData = _raw$Series$index.ExtraData;\n\n var _findPriorClose = findPriorClose(ExtraData),\n Value = _findPriorClose.Value;\n\n var priorDate = startDates[index];\n\n var seriesArr = mapSeriesData(data, !usePercent, InstrumentType, priorDate, Value, dataTemplate);\n\n return [seriesArr, categories, date, showAsPercentProps];\n };\n}\n\n// getMikeParams helper function\nfunction getParam(query, prop) {\n var param = query[prop];\n switch (prop) {\n case 'instrument':\n return (0, _helpers.checkArray)(param);\n case 'format':\n return param === 'percent';\n case 'type':\n return param === 'rolling';\n default:\n return param;\n }\n}\n\n// createDataFormatter helper functions\nfunction formatForChartlos(res, isPercent, isCustom, dateRange, frequency, end, instruments) {\n var parseData = createDataParser(res, isPercent, isCustom, frequency, dateRange, end);\n return res.map(function (series, index) {\n var _parseData = parseData(series, index),\n _parseData2 = (0, _slicedToArray3.default)(_parseData, 4),\n seriesArr = _parseData2[0],\n categories = _parseData2[1],\n date = _parseData2[2],\n showAsPercentProps = _parseData2[3];\n\n var raw = series.raw,\n name = series.name,\n ticker = series.ticker;\n var TimeInfo = raw.TimeInfo,\n Series = raw.Series;\n var isIntraday = TimeInfo.IsIntraday;\n var _Series$index = Series[index],\n tickerType = _Series$index.InstrumentType,\n FormatHints = _Series$index.FormatHints;\n\n var instrument = instruments[index];\n var sourceInfo = getSourceInfo(tickerType, ticker, instrument);\n\n var _setFormatProps = setFormatProps(FormatHints, tickerType),\n _setFormatProps2 = (0, _slicedToArray3.default)(_setFormatProps, 3),\n prefix = _setFormatProps2[0],\n suffix = _setFormatProps2[1],\n decimals = _setFormatProps2[2];\n\n var needsCommas = tickerType !== 'Index';\n return {\n data: seriesArr,\n name: name,\n symbol: ticker,\n needsCommas: needsCommas,\n index: index,\n date: date,\n prefix: prefix,\n suffix: suffix,\n decimals: decimals,\n isIntraday: isIntraday,\n sourceInfo: sourceInfo,\n tickerType: tickerType,\n showAsPercentProps: showAsPercentProps,\n categories: categories\n };\n });\n}\n\nfunction getSourceInfo(type, symbol, fullSymbol) {\n return {\n source: getSource(type, symbol, fullSymbol),\n type: getPlural(type),\n symbol: symbol\n };\n}\n\nfunction getSource(type, symbol, fullSymbol) {\n switch (type) {\n case 'Bond':\n case 'Currency':\n return 'Tullett Prebon';\n case 'Index':\n return getIndexSource(symbol);\n case 'CryptoCurrency':\n return getCryptoSource(symbol, fullSymbol);\n default:\n return 'FactSet';\n }\n}\n\nfunction getIndexSource(symbol) {\n switch (symbol) {\n case 'BUXX':\n case 'NEXT50':\n case 'VCIPO':\n return 'Dow Jones Market Data';\n default:\n return 'FactSet';\n }\n}\n\nfunction getCryptoSource(symbol, fullSymbol) {\n var symbols = ['BTCEUR', 'BTCUSD', 'ETHEUR', 'ETHUSD', 'XRPEUR', 'XRPUSD', 'LTCEUR', 'LTCUSD', 'BCHEUR', 'BCHUSD', 'XMREUR', 'XMRUSD', 'ETCEUR', 'ETCUSD', 'DASHEUR', 'DASHUSD', 'ZECEUR', 'ZECUSD'];\n return symbols.includes(symbol) && fullSymbol.includes('KRAKEN') ? 'KRAKEN' : 'CoinDesk';\n}\n\nfunction getPlural(type) {\n switch (type) {\n case 'Index':\n return 'indexes';\n case 'Commodity':\n return 'commodities';\n case 'CryptoCurrency':\n return 'crypto currencies';\n case 'Currency':\n return 'currencies';\n case 'ExchangeTradedFund':\n return 'ETFs';\n case 'ExchangeTradedNote':\n return 'ETNs';\n case 'Adr':\n return 'ADRs';\n case 'PreferredStock':\n return 'preferred stocks';\n // case 'MutualFundClosed':\n // return;\n // case 'MutualFundOpen':\n // return;\n // case 'RealEstateInvestmentTrust':\n // return;\n default:\n return type.toLowerCase() + 's';\n }\n}\n\nfunction setFormatProps(formatHints, tickerType) {\n var UnitSymbol = formatHints.UnitSymbol,\n DecimalPlaces = formatHints.DecimalPlaces,\n Suffix = formatHints.Suffix;\n\n var prefix = Suffix || !UnitSymbol ? '' : UnitSymbol;\n var suffix = Suffix ? UnitSymbol : '';\n var decimals = checkDecimals(tickerType, DecimalPlaces) ? DecimalPlaces : 2;\n return [prefix, suffix, decimals];\n}\n\nfunction checkDecimals(tickerType, places) {\n return tickerType === 'Bond' || tickerType === 'Currency' || places <= 2;\n}\n\n// fetchData helper functions\nfunction findEndDate(end, isRolling, isCustom, isIntraday) {\n var currentTime = (0, _moment2.default)();\n /*\n * Use the current time for custom interday with an end date of today\n */\n var isCustomToday = checkToday(isCustom, isIntraday, end, currentTime);\n if (isCustomToday) return currentTime;\n /*\n * For other custom auto-updating charts, update only until specified end date\n */\n if (isRolling && isCustom) return _moment2.default.min((0, _moment2.default)(end), currentTime);\n /* \n * Otherwise use specified end date\n */\n return end;\n}\n\nfunction checkToday(isCustom, isIntraday, end, currentTime) {\n return isCustom && !isIntraday && end.slice(0, 10) === currentTime.format('YYYY-MM-DD');\n}\n\nfunction getToken(product) {\n switch (product) {\n case 'wsj':\n return '57494d5ed7ad44af85bc59a51dd87c90';\n case 'barrons':\n return 'c1b7ca756343461b86565b61bbd2ac6f';\n case 'marketwatch':\n return 'cecc4267a0194af89ca343805a3e57af';\n case 'mansionglobal':\n return '45mb4gzz6uqrogv7xgv37k654z2e5d6q';\n case 'financialnews':\n return 'brewtbcvblmff8sb1kcdbj21c29j8lv5';\n default:\n return '57494d5ed7ad44af85bc59a51dd87c90';\n }\n // WSJ Pro: 'eb0af67ce7f24679a0e2d2c7c32e7d98'\n}\n\nfunction queryHstri(start, instrument, frequency, end, entitlementToken, timeFrame) {\n return hstri({\n start: getHstriDate(start),\n timeFrame: _marketdata.RANGE[timeFrame].value,\n instrument: instrument,\n frequency: frequency || 'P1D',\n end: getHstriDate(end),\n service: 'michelangelo',\n entitlementToken: entitlementToken\n });\n}\n\nfunction getHstriDate(date) {\n return date ? (0, _marketdata2.createETMoment)(date) : '';\n}\n\n// createDataParser helper functions\nfunction checkShowAsPercent(series, isPercentProp) {\n // \"Show as percent change\" toggle should be locked into true or false in certain situations\n var hasBonds = series.some(checkBonds);\n var differentUnitSymbols = series.some(function (currentSeries, i) {\n return checkUnitSymbols(series[0], currentSeries, i);\n });\n var disabled = hasBonds || differentUnitSymbols;\n var isPercent = !hasBonds && (differentUnitSymbols || isPercentProp);\n return { isPercent: isPercent, disabled: disabled };\n}\n\nfunction checkBonds(series, i) {\n var instrumentType = getSeriesProp(series, i, 'InstrumentType');\n return instrumentType === 'Bond';\n}\n\nfunction getSeriesProp(series, i, prop) {\n return series.raw.Series[i][prop];\n}\n\nfunction checkUnitSymbols(firstSeries, currentSeries, i) {\n return getUnitSymbol(currentSeries, i) !== getUnitSymbol(firstSeries, 0);\n}\n\nfunction getUnitSymbol(series, i) {\n return getSeriesProp(series, i, 'FormatHints').UnitSymbol;\n}\n\nfunction mustShowAsPercent(showAsPercentProps) {\n var isPercent = showAsPercentProps.isPercent,\n disabled = showAsPercentProps.disabled;\n\n return isPercent && disabled;\n}\n\nfunction buildDatesArr(res, rawDateArr, end, isCustom, frequency, needsLast) {\n var compiledDates = compileDates(res, rawDateArr);\n var lastDate = compiledDates[getLastIdx(compiledDates)];\n\n var longerThanDaily = checkLongerThanDaily(frequency);\n\n var isBefore = longerThanDaily && checkBefore(frequency, lastDate, end);\n\n return isCustom && end && !needsLast && isBefore ? compiledDates.slice(0, -1) : compiledDates;\n}\n\nfunction compileDates(res, rawDateArr) {\n res.forEach(function (series) {\n return rawDateArr.push.apply(rawDateArr, (0, _toConsumableArray3.default)(series.ticks));\n });\n var uniqueDates = new Set(rawDateArr);\n return [].concat((0, _toConsumableArray3.default)(uniqueDates)).filter(function (date) {\n return date;\n }).sort(function (a, b) {\n return a - b;\n });\n}\n\nfunction getLastIdx(arr) {\n return arr.length - 1;\n}\n\nfunction checkLongerThanDaily(frequency) {\n return ['P7D', 'P1M', 'P3M', 'P1Y'].some(function (code) {\n return code === frequency;\n });\n}\n\nfunction checkBefore(frequency, lastDate, end) {\n var date = (0, _moment2.default)(lastDate);\n return convertDate(date, frequency).isAfter(end);\n}\n\nfunction convertDate(date, frequency) {\n switch (frequency) {\n case 'P7D':\n return date.add(5, 'd');\n case 'P1M':\n return date.utc().endOf('month');\n case 'P3M':\n return date.utc().add(2, 'M').endOf('month');\n case 'P1Y':\n return date.utc().endOf('year');\n default:\n return date;\n }\n}\n\nfunction findStartDates(series, dateRange) {\n return series.map(function (currentSeries) {\n var MarketSessions = currentSeries.MarketSessions,\n ExtraData = currentSeries.ExtraData,\n InstrumentType = currentSeries.InstrumentType;\n\n if (MarketSessions && dateRange !== 'Custom') {\n var priorClose = findPriorClose(ExtraData).Date;\n var closingTime = MarketSessions.reverse().find(function (session) {\n return session.Kind === 'Trading';\n }).End;\n var date = (0, _moment2.default)(priorClose).utc();\n var year = date.year();\n var month = date.month();\n var day = date.date();\n var time = (0, _moment2.default)(closingTime);\n var hour = time.hour();\n var minutes = time.minute();\n var seconds = time.second();\n return +(0, _moment2.default)().year(year).month(month).date(day).hour(hour).minute(minutes).second(seconds).format('x');\n }\n if (dateRange === 'YTD') {\n return findPriorClose(ExtraData).Date;\n }\n });\n}\n\nfunction findPriorClose(extraData) {\n return extraData.find(function (data) {\n return data.Name === 'PriorClose';\n });\n}\n\nfunction findLastQuoteDate(series) {\n var currentQuoteDates = series.map(function (currentSeries) {\n return currentSeries.CurrentQuote.DateUtc;\n });\n return Math.max.apply(Math, (0, _toConsumableArray3.default)(currentQuoteDates));\n}\n\nfunction createCategories(dates, needsLast, lastIndex, isIntraday, frequency, lastDate) {\n return dates.map(function (x, i) {\n var isLast = needsLast && i === lastIndex;\n return formatCategory(x, isIntraday, frequency, isLast, lastDate);\n });\n}\n\nfunction formatCategory(x, isIntraday, frequency, isLast, lastDate) {\n var date = getDate(x, isIntraday, frequency, isLast, lastDate);\n var dayFormat = 'MM/DD/YYYY';\n return isIntraday ? date.format(dayFormat + ' h:mm:ss a').slice(0, -1) : date.format(dayFormat);\n}\n\nfunction getDate(x, isIntraday, frequency, isLast, lastDate) {\n var needsToday = checkNeedsToday(frequency, isLast);\n var date = needsToday ? _moment2.default.tz(lastDate, 'America/New_York') : convertDate((0, _marketdata2.createETMoment)(x), frequency);\n return isIntraday || needsToday ? date : date.utc();\n}\n\nfunction checkNeedsToday(frequency, isLast) {\n return isLast && checkLongerThanDaily(frequency);\n}\n\nfunction formatAsOfDate(x, isIntraday, frequency) {\n var date = (0, _marketdata2.createETMoment)(x);\n var month = _constants.MONTHS[date.month()];\n var day = date.date();\n var formattedDate = month + ' ' + day;\n var time = date.format('h:mm a');\n var formattedTime = formatTime(time);\n return formattedDate + formattedTime;\n}\n\nfunction formatTime(time) {\n var zerosRemoved = time.replace(':00', '');\n return ', ' + zerosRemoved.slice(0, -1) + '.m. ET';\n}\n\nfunction buildDataTemplate(dates) {\n var dataTemplate = {};\n dates.forEach(function (date) {\n dataTemplate[date] = null;\n });\n return dataTemplate;\n}\n\nfunction mapSeriesData(data, notPercent, tickerType, firstDate, firstValue, dataTemplate) {\n var seriesData = Object.assign({}, dataTemplate);\n\n var value = notPercent ? firstValue : 0;\n if (firstDate) seriesData[firstDate] = value;\n\n var initialY = firstDate ? firstValue : findFirstY(data);\n\n data.forEach(function (item, index) {\n var x = item[0];\n var y = getY(item[1], initialY, notPercent);\n if (seriesData[x] === null) seriesData[x] = y;\n });\n\n return Object.values(seriesData).map(function (y) {\n return { y: y };\n });\n}\n\nfunction findFirstY(data) {\n // find first non-null Y value (needed to calculate percent change)\n return data.find(function (point) {\n return point[1];\n })[1];\n}\n\nfunction getY(y, initialY, notPercent) {\n if (y === undefined || y === null) return null;\n if (notPercent) return y;\n return getChange(initialY, y);\n}\n\nfunction getChange(initialY, y) {\n // percentage change from first Y value\n return (y - initialY) / initialY * 100;\n}\n\nexports.getMikeParams = getMikeParams;\nexports.createDataFormatter = createDataFormatter;\nexports.fetchData = fetchData;\nexports.createDataParser = createDataParser;\n\n/***/ }),\n/* 290 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.buildMetadata = exports.checkArray = exports.convertSortObj = exports.convertQueryObj = exports.convertTime = exports.pullOutHeadlines = exports.findUniqueHeadlines = exports.simplifyCharts = exports.fail = exports.success = exports.epsRequest = exports.pngRequest = exports.updateChartData = undefined;\n\nvar _toConsumableArray2 = __webpack_require__(8);\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _regenerator = __webpack_require__(291);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(294);\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar epsRequest = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(data, environment) {\n var url;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n url = 'http://int.production.svg-converter.virginia.dj01.onservo.com/api/v1/eps/string/publish';\n _context.next = 3;\n return fetch(url, {\n method: 'POST',\n uri: url,\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify(data)\n });\n\n case 3:\n return _context.abrupt('return', _context.sent);\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function epsRequest(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _lodash = __webpack_require__(32);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = __webpack_require__(0);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _async = __webpack_require__(307);\n\nvar _async2 = _interopRequireDefault(_async);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fetch = __webpack_require__(310);\n\nfunction checkArray(prop) {\n return Array.isArray(prop) ? prop : [prop];\n}\n\nfunction convertTime(time) {\n var day = (0, _moment2.default)().format('YYYY-MM-DD');\n switch (time) {\n case 'day':\n return day;\n case 'week':\n return (0, _moment2.default)().subtract(7, 'd').format('YYYY-MM-DD');\n case 'month':\n return (0, _moment2.default)().subtract(1, 'months').format('YYYY-MM-DD');\n case '6months':\n return (0, _moment2.default)().subtract(6, 'months').format('YYYY-MM-DD');\n case 'year':\n return (0, _moment2.default)().subtract(1, 'years').format('YYYY-MM-DD');\n }\n}\n\nfunction convertQueryObj(query) {\n var obj = {\n headline: query.headline,\n slug: query.title,\n creator: query.creator,\n modifier: query.modifier,\n create_date: query.created,\n modify_date: query.modified,\n product: query.targets,\n source: query.source,\n chart_type: query.type,\n status: query.status\n };\n if (obj.create_date === 'anytime') {\n delete obj.create_date;\n }\n if (obj.modify_date === 'anytime') {\n delete obj.modify_date;\n }\n if (Array.isArray(obj.status)) {\n delete obj.status;\n }\n\n for (var key in obj) {\n if (obj[key] === '' || obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n\nfunction convertSortObj(prop, order) {\n var obj = {};\n switch (prop) {\n case 'DATE_CREATED':\n obj.prop = 'create_date';\n break;\n case 'DATE_MODIFIED':\n obj.prop = 'modify_date';\n break;\n case 'CREATED_BY':\n obj.prop = 'creator';\n break;\n case 'STATUS':\n obj.prop = 'status';\n break;\n case 'MODIFIED_BY':\n obj.prop = 'modifier';\n break;\n case 'TITLE':\n obj.prop = 'slug';\n break;\n default:\n obj.prop = 'modify_date';\n break;\n }\n switch (order) {\n case 'DESCENDING':\n obj.order = 'desc';\n break;\n case 'ASCENDING':\n obj.order = 'asc';\n break;\n }\n return obj;\n}\n\nfunction pullOutHeadlines(chart) {\n\n //if new way is used, function always returns an object, for the old way if no sizes were selected the function return false\n var textObj = findUniqueHeadlines(chart.chart, chart.id);\n //converting source into new way, to be able to search by source\n if (!chart.chart.source && chart.chart.data.source) {\n chart.source = chart.chart.data.source.text;\n }\n var textItemInsert = [];\n var defaultHeadline = [];\n var hasDefaultHeadline = chart.default_headline ? true : false;\n\n if (textObj) {\n var _loop = function _loop(key) {\n textObj[key].map(function (item) {\n item.text_type = key;\n if (item.content) {\n textItemInsert.push(item);\n if (item['size'] === 'default') {\n var obj = {\n content: item.content,\n type: item.text_type\n };\n defaultHeadline.push(obj);\n }\n }\n });\n };\n\n for (var key in textObj) {\n _loop(key);\n }\n if (defaultHeadline.length === 1) {\n chart.default_headline = defaultHeadline[0].content;\n }\n if (defaultHeadline.length > 1) {\n for (var x = 0; x < defaultHeadline.length; x++) {\n if (defaultHeadline[x].type === 'headline') {\n chart.default_headline = defaultHeadline[x].content;\n }\n }\n }\n if (!defaultHeadline.length) {\n chart.default_headline = 'Untitled';\n }\n }\n\n return { textObj: textObj, textItemInsert: textItemInsert, hasDefaultHeadline: hasDefaultHeadline, chart: chart };\n}\n\nfunction findUniqueHeadlines(chart, id) {\n var sizes = chart.sizes;\n var _chart$data = chart.data,\n title = _chart$data.title,\n dek = _chart$data.dek,\n subdek = _chart$data.subdek;\n\n\n var titleArr = [];\n var dekArr = [];\n var subdekArr = [];\n var helper = ['title', 'dek', 'subdek'];\n\n function check(heading, obj) {\n var titleCheck = heading === 'title';\n var dekCheck = heading === 'dek';\n var subdekCheck = heading === 'subdek';\n if (titleCheck) titleArr.push(obj);\n if (dekCheck) dekArr.push(obj);\n if (subdekCheck) subdekArr.push(obj);\n }\n\n //new way - no sizes\n if (title && dek && subdek) {\n helper.forEach(function (heading) {\n var obj = {\n content: chart.data[heading].text || '',\n chart_id: id };\n check(heading, obj);\n });\n } else {\n var filterHeadings = function filterHeadings(arr) {\n var contentSet = new Set();\n arr = arr.filter(function (elem) {\n if (contentSet.has(elem.content)) return false;\n contentSet.add(elem.content);\n });\n };\n\n var _loop2 = function _loop2(key) {\n helper.forEach(function (heading) {\n if (sizes[key].headings[heading]) {\n var _obj = {\n content: sizes[key].headings[heading].text || '',\n size: key,\n chart_id: id\n };\n check(heading, _obj);\n }\n });\n };\n\n //old way iterating over the sizes\n for (var key in sizes) {\n _loop2(key);\n }\n\n filterHeadings(titleArr);\n filterHeadings(dekArr);\n filterHeadings(subdekArr);\n }\n // adding(new way)/redefining(old way) size to default\n function addSize(arr) {\n if (arr.length) arr[0]['size'] = 'default';\n }\n\n addSize(titleArr);\n addSize(dekArr);\n addSize(subdekArr);\n\n var obj = {\n headline: titleArr,\n subheadline: dekArr,\n title: subdekArr\n\n //this check required only for old (size) way, because the new way will always have length 1 for each property.\n };if (obj.headline.length || obj.subheadline.length || obj.title.length) {\n return obj;\n } else {\n return false;\n }\n}\n\nfunction updateChartData(chart, data, action) {\n var now = new Date();\n chart.status = data.status || chart.status || 'draft';\n var prevGams = chart.urls ? chart.urls.gams : '';\n if (data.urls) {\n var urls = {};\n if (chart.urls) {\n Object.keys(chart.urls).forEach(function (key) {\n urls[key] = chart.urls[key];\n });\n }\n Object.keys(data.urls).forEach(function (key) {\n // chart['url_' + key] = data.urls[key];\n urls[key] = data.urls[key];\n });\n // if (chart.url_gams && chart.url_gamsError) {\n // chart.url_gamsError = null;\n // }\n if (urls.gams && urls.gamsError) {\n urls.gamsError = null;\n }\n chart.urls = urls;\n }\n\n chart['chart_type'] = data.chart.type || chart.type;\n chart.chart = data.chart || chart.chart || {};\n chart.default_headline = data.default_headline || chart.default_headline;\n chart.slug = data.chart && data.chart.title ? data.chart.title : chart.slug || '';\n chart.modifier = data.modifier || chart.modifier;\n chart.product = data.chart.product || chart.product;\n chart.version = data.version || chart.version;\n var source = '';\n if (data.chart.data.source.text.length > 0) {\n source = data.chart.data.source.text;\n var writtenSource = 'Source: ';\n source = source.indexOf(writtenSource) === 0 ? source.replace(writtenSource, '') : source;\n }\n chart.source = source;\n var gamsId = 'draft';\n var imageUrl = '';\n if (data.urls) {\n if (data.urls.gams) {\n gamsId = data.urls.gams;\n // if new gamsId was not generated that means imageUrl wasn't produced\n if (gamsId === prevGams) imageUrl = '';else if (data.product === 'marketwatch') imageUrl = data.urls.gamsUrls[5];else {\n imageUrl = data.urls.gamsUrls[1] || data.urls.gamsUrls[0];\n }\n }\n }\n chart.gams = gamsId || chart.gams;\n\n chart['modify_date'] = now;\n if (data.chart && data.chart.approved) {\n chart['approved_graphics'] = data.chart.approved.graphics;\n chart['approved_editor'] = data.chart.approved.editor;\n }\n // if (data.chart && data.chart.sections) {\n // chart.sections = data.chart.sections;\n // }\n\n chart.history = data.history || chart.history || [];\n\n chart.history.push({\n action: action,\n user: data.modifier,\n date: now,\n imageUrl: imageUrl\n });\n\n if (action === 'created') {\n chart.creator = data.modifier;\n chart.id = data.id;\n chart['create_date'] = now;\n chart.modify_date = now;\n }\n return chart;\n}\n\nfunction pngRequest(data, environment) {\n var uri = converterBaseUrl(environment) + 'api/v1/png/string/base64/';\n // var uri = 'http://int.prod.michelangelo-imaging.virginia.dj01.onservo.com/Rasterize/Svg?base64=true&type=png';\n // var uri = 'http://int.stg.michelangelo-imaging.virginia.dj01.onservo.com/Rasterize/Svg?base64=true&type=png'\n // const uri = `${converterBaseUrl(environment)}api/convert/base64`;\n var svgJSON = {\n \"svg\": sanitizeSVG(data)\n };\n return {\n method: 'POST',\n uri: uri,\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify(svgJSON)\n };\n}\n\nfunction sanitizeSVG(data) {\n return data.replace(/\\u00a0/g, \" \").replace(/\\u0003/g, \"\").replace(' ', \" \").replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\");\n}\n\nfunction converterBaseUrl(env) {\n if (false) {\n return 'https://int-development-svg-converter.vir-dev.onservo.com/';\n } else {\n return 'https://int-wsj-svg-converter.vir.onservo.com/';\n }\n}\n\n// When returning multiple charts, returns only necessary data to display a\n// table of charts and not all charts data.\nfunction simplifyCharts(charts, query) {\n var filtered = charts;\n /* if (query.created && query.created !== 'anytime') {\n filtered = filtered.filter(chart => {\n return filterByDate(chart.createDate, query.created);\n });\n }\n if (query.modified && query.modified !== 'anytime') {\n filtered = filtered.filter(chart => {\n return filterByDate(chart.modifyDate, query.modified);\n });\n }\n if (query.title) {\n query.title = query.title.toLowerCase();\n filtered = filtered.filter(chart => {\n console.log(chart.chart.title);\n return chart.chart.title.indexOf(query.title) !== -1;\n });\n }\n if (query.text) {\n filtered = filtered.filter(chart => {\n return chartHasText(chart, query.text);\n });\n }\n if (query.creator) {\n query.creator = query.creator.toLowerCase();\n filtered = filtered.filter(chart => {\n return chart.creator.toLowerCase().indexOf(query.creator) !== -1;\n });\n }\n if (query.modifier) {\n query.modifier = query.modifier.toLowerCase();\n filtered = filtered.filter(chart => {\n return chart.modifier.toLowerCase().indexOf(query.modifier) !== -1;\n });\n }\n if (query.targets) {\n filtered = filtered.filter(chart => {\n const targets = chart.chart.targets || chart.targets;\n query.targets = Array.isArray(query.targets) ? query.targets : [query.targets];\n let found = false;\n query.targets.some(qt => {\n if (targets.indexOf(qt) !== -1) {\n console.log(qt, targets, targets.indexOf(qt) !== -1);\n return (found = true);\n }\n });\n return found;\n });\n }*/\n // const filtered = charts.filter(chart => {\n // const targets = chart.targets || chart.chart.targets;\n // if (query.targets && Array.isArray(targets)) {\n // query.targets = Array.isArray(query.targets) ? query.targets : [query.targets];\n // let found = false;\n // // console.log(targets, query.targets);\n // for (let i = 0; !found && i < query.targets.length; i++) {\n // found = targets.some(target => {\n // const targetStr = (target.indexOf('wsj') === 0) ? 'wsj' : target;\n // return targetStr === query.targets[i];\n // });\n // }\n // if (!found) {\n // return false;\n // }\n // }\n // return true;\n // });\n var simplified = filtered.map(function (chart) {\n var targets = chart.targets || chart.chart.targets;\n return {\n id: chart._id,\n title: chart.chart.title,\n createDate: chart.createDate,\n creator: chart.creator,\n modifyDate: chart.modifyDate || chart.createDate,\n modifier: chart.modifier || chart.creator,\n status: chart.status,\n sections: chart.chart.admin && chart.chart.admin.sections,\n targets: Array.isArray(targets) ? targets.sort(function (a, b) {\n a = Array.isArray(a) ? a : [a];\n b = Array.isArray(b) ? b : [b];\n return sortStrs(a.join(''), b.join(''), 'asc');\n }) : [],\n approvedEditor: chart.chart.admin && chart.chart.admin.approved.editor,\n approvedGraphics: chart.chart.admin && chart.chart.admin.approved.graphics\n };\n });\n return simplified;\n // return sortCharts(simplified, query.prop, query.order);\n}\n\nfunction chartHasText(chart, text) {\n text = text.toLowerCase();\n if (chart.chart.title.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n if (chart.chart.data) {\n var data = chart.chart.data;\n if (data.raw && data.raw.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n if (Array.isArray(data.series)) {\n for (var i = 0; i < data.series.length; i++) {\n var name = (data.series[i].name || '') + '';\n if (name && name.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n }\n }\n }\n var keys = chart.chart.sizes ? Object.keys(chart.chart.sizes) : [];\n for (var _i = 0; _i < keys.length; _i++) {\n var axes = chart.chart.sizes[keys[_i]].axes;\n if (axes && axes.units) {\n var units = chart.chart.sizes[keys[_i]].axes.units;\n if (units.prefix && units.prefix.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n if (units.suffix && units.suffix.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction filterByDate(dateValue, relativeValue) {\n var minDate = Date.now() - getRelativeTime(relativeValue);\n return Date.parse(dateValue) >= minDate;\n}\n\nfunction sortStrs(a, b, order) {\n if (a < b) {\n return order === 'desc' ? -1 : 1;\n } else if (a > b) {\n return order === 'desc' ? 1 : -1;\n }\n return 0;\n}\n\nfunction buildMetadata(resp) {\n var status = '',\n hed = '',\n dek = '',\n chartTitle = '',\n inset = '',\n embed = '',\n image = '',\n publishDate = '',\n name = '',\n description = '';\n if (resp[0]) {\n var _resp$ = resp[0],\n urls = _resp$.urls,\n history = _resp$.history,\n chart = _resp$.chart,\n statusText = _resp$.status,\n slug = _resp$.slug;\n\n status = createStatus(statusText);\n var _chart$data2 = chart.data,\n hedObj = _chart$data2.title,\n dekObj = _chart$data2.dek,\n subdekObj = _chart$data2.subdek;\n\n if (urls) {\n inset = urls.inset;\n var iframe = urls.iframe || '';\n var startIdx = iframe.indexOf('src=');\n var endIdx = iframe.indexOf('.html');\n embed = iframe.slice(startIdx + 5, endIdx + 5);\n }\n image = findImage(urls);\n var lastPublishedItem = findLastPublished(history);\n if (lastPublishedItem) publishDate = lastPublishedItem.date;\n if (hedObj) hed = hedObj.text;\n if (dekObj) dek = dekObj.text;\n if (subdekObj) chartTitle = subdekObj.text;\n name = slug || hed || dek || chartTitle;\n description = slug ? hed || dek || chartTitle : dek || chartTitle;\n }\n return { status: status, hed: hed, dek: dek, chartTitle: chartTitle, inset: inset, embed: embed, image: image, publishDate: publishDate, name: name, description: description };\n}\n\nfunction findLastPublished(history) {\n return [].concat((0, _toConsumableArray3.default)(history)).reverse().map(JSON.parse).find(function (obj) {\n return obj.imageUrl;\n });\n}\n\nfunction createStatus(statusText) {\n return statusText[0].toUpperCase() + statusText.slice(1);\n}\n\nfunction findImage(urls) {\n var gamsUrls = setGamsUrls(urls) || [];\n var searchByCrop = searchGamsUrls(gamsUrls);\n return searchByCrop('4U') || searchByCrop('PREVIEW') || 'https://images.wsj.net/im-108184';\n}\n\nfunction setGamsUrls(urls) {\n if (urls && urls.gamsUrls) {\n var gamsUrls = urls.gamsUrls;\n\n return Array.isArray(gamsUrls) ? gamsUrls : [gamsUrls];\n }\n}\n\nfunction searchGamsUrls(gamsUrls) {\n return function (crop) {\n return gamsUrls.find(function (url) {\n return url.includes(crop);\n });\n };\n}\n\nfunction success(res, data) {\n data.status = 'success';\n res.json(data);\n // res.json(_.assign({ status: 'success' }, data ));\n}\n\nfunction fail(res, data) {\n data.status = 'fail';\n res.json(data);\n // res.json(_.assign({ status: 'fail'}, data ));\n}\n\n// function filterByArray(charts, prop, value) {\n// if (!value) {\n// return charts;\n// }\n// value = Array.isArray(value) ? value : [value];\n// let filtered = [];\n// charts.forEach(chart => {\n// const chartVal = chart[prop];\n// if (chartVal) {\n// let found = false;\n// for (let i = 0; i < value.length; i++) {\n// if (chartVal.indexOf(value[i]) !== -1) {\n// found = true;\n// break;\n// }\n// }\n// if (found) filtered.push(chart);\n// }\n// });\n// return filtered;\n// }\n//\n//\n// function filterByString(charts, prop, value) {\n// if (value) {\n// let filtered = [];\n// charts.forEach(chart => {\n// const chartVal = chart[prop];\n// if (chartVal) {\n// if (chartVal.indexOf(value) !== -1) {\n// filtered.push(chart);\n// }\n// }\n// });\n// return filtered;\n// }\n// return charts;\n// }\n\n\n// function filterByDate(charts, prop, value) {\n// if (value && value !== 'anytime') {\n// let filtered = [];\n// const minDate = Date.now() - getRelativeTime(value);\n// charts.forEach(chart => {\n// if (Date.parse(chart[prop]) >= minDate) {\n// filtered.push(chart);\n// }\n// });\n// return filtered;\n// }\n// return charts;\n// }\n\n\nexports.updateChartData = updateChartData;\nexports.pngRequest = pngRequest;\nexports.epsRequest = epsRequest;\nexports.success = success;\nexports.fail = fail;\nexports.simplifyCharts = simplifyCharts;\nexports.findUniqueHeadlines = findUniqueHeadlines;\nexports.pullOutHeadlines = pullOutHeadlines;\nexports.convertTime = convertTime;\nexports.convertQueryObj = convertQueryObj;\nexports.convertSortObj = convertSortObj;\nexports.checkArray = checkArray;\nexports.buildMetadata = buildMetadata;\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(292);\n\n\n/***/ }),\n/* 292 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = __webpack_require__(293);\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports) {\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n\n\n/***/ }),\n/* 294 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _promise = __webpack_require__(295);\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};\n\n/***/ }),\n/* 295 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = { \"default\": __webpack_require__(296), __esModule: true };\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(205);\n__webpack_require__(23);\n__webpack_require__(25);\n__webpack_require__(297);\n__webpack_require__(305);\n__webpack_require__(306);\nmodule.exports = __webpack_require__(5).Promise;\n\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(20);\nvar global = __webpack_require__(1);\nvar ctx = __webpack_require__(21);\nvar classof = __webpack_require__(45);\nvar $export = __webpack_require__(10);\nvar isObject = __webpack_require__(12);\nvar aFunction = __webpack_require__(26);\nvar anInstance = __webpack_require__(298);\nvar forOf = __webpack_require__(299);\nvar speciesConstructor = __webpack_require__(213);\nvar task = __webpack_require__(214).set;\nvar microtask = __webpack_require__(301)();\nvar newPromiseCapabilityModule = __webpack_require__(55);\nvar perform = __webpack_require__(215);\nvar userAgent = __webpack_require__(302);\nvar promiseResolve = __webpack_require__(216);\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[__webpack_require__(2)('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = __webpack_require__(303)($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n__webpack_require__(29)($Promise, PROMISE);\n__webpack_require__(304)(PROMISE);\nWrapper = __webpack_require__(5)[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(67)(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 298 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(21);\nvar call = __webpack_require__(65);\nvar isArrayIter = __webpack_require__(66);\nvar anObject = __webpack_require__(7);\nvar toLength = __webpack_require__(39);\nvar getIterFn = __webpack_require__(46);\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, exports) {\n\n// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(1);\nvar macrotask = __webpack_require__(214).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __webpack_require__(19)(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(1);\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hide = __webpack_require__(11);\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n\n\n/***/ }),\n/* 304 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(1);\nvar core = __webpack_require__(5);\nvar dP = __webpack_require__(6);\nvar DESCRIPTORS = __webpack_require__(9);\nvar SPECIES = __webpack_require__(2)('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// https://github.com/tc39/proposal-promise-finally\n\nvar $export = __webpack_require__(10);\nvar core = __webpack_require__(5);\nvar global = __webpack_require__(1);\nvar speciesConstructor = __webpack_require__(213);\nvar promiseResolve = __webpack_require__(216);\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/proposal-promise-try\nvar $export = __webpack_require__(10);\nvar newPromiseCapability = __webpack_require__(55);\nvar perform = __webpack_require__(215);\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(setImmediate, process, global, module) {(function (global, factory) {\n true ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.async = global.async || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction slice(arrayLike, start) {\n start = start|0;\n var newLen = Math.max(arrayLike.length - start, 0);\n var newArr = Array(newLen);\n for(var idx = 0; idx < newLen; idx++) {\n newArr[idx] = arrayLike[start + idx];\n }\n return newArr;\n}\n\n/**\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {Function} fn - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @returns {Function} the partially-applied function\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n */\nvar apply = function(fn/*, ...args*/) {\n var args = slice(arguments, 1);\n return function(/*callArgs*/) {\n var callArgs = slice(arguments);\n return fn.apply(null, args.concat(callArgs));\n };\n};\n\nvar initialParams = function (fn) {\n return function (/*...args, callback*/) {\n var args = slice(arguments);\n var callback = args.pop();\n fn.call(this, args, callback);\n };\n};\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return function (fn/*, ...args*/) {\n var args = slice(arguments, 1);\n defer(function () {\n fn.apply(null, args);\n });\n };\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nvar setImmediate$1 = wrap(_defer);\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n return initialParams(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (isObject(result) && typeof result.then === 'function') {\n result.then(function(value) {\n invokeCallback(callback, null, value);\n }, function(err) {\n invokeCallback(callback, err.message ? err : new Error(err));\n });\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (e) {\n setImmediate$1(rethrow, e);\n }\n}\n\nfunction rethrow(error) {\n throw error;\n}\n\nvar supportsSymbol = typeof Symbol === 'function';\n\nfunction isAsync(fn) {\n return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction wrapAsync(asyncFn) {\n return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn;\n}\n\nfunction applyEach$1(eachfn) {\n return function(fns/*, ...args*/) {\n var args = slice(arguments, 1);\n var go = initialParams(function(args, callback) {\n var that = this;\n return eachfn(fns, function (fn, cb) {\n wrapAsync(fn).apply(that, args.concat(cb));\n }, callback);\n });\n if (args.length) {\n return go.apply(this, args);\n }\n else {\n return go;\n }\n };\n}\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Built-in value references. */\nvar Symbol$1 = root.Symbol;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString$1 = objectProto$1.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString$1.call(value);\n}\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]';\nvar undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]';\nvar funcTag = '[object Function]';\nvar genTag = '[object GeneratorFunction]';\nvar proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nvar breakLoop = {};\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nfunction once(fn) {\n return function () {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\nvar iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;\n\nvar getIterator = function (coll) {\n return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();\n};\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/** Used for built-in method references. */\nvar objectProto$3 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$2 = objectProto$3.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto$3.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty$2.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/** `Object#toString` result references. */\nvar argsTag$1 = '[object Arguments]';\nvar arrayTag = '[object Array]';\nvar boolTag = '[object Boolean]';\nvar dateTag = '[object Date]';\nvar errorTag = '[object Error]';\nvar funcTag$1 = '[object Function]';\nvar mapTag = '[object Map]';\nvar numberTag = '[object Number]';\nvar objectTag = '[object Object]';\nvar regexpTag = '[object RegExp]';\nvar setTag = '[object Set]';\nvar stringTag = '[object String]';\nvar weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\nvar dataViewTag = '[object DataView]';\nvar float32Tag = '[object Float32Array]';\nvar float64Tag = '[object Float64Array]';\nvar int8Tag = '[object Int8Array]';\nvar int16Tag = '[object Int16Array]';\nvar int32Tag = '[object Int32Array]';\nvar uint8Tag = '[object Uint8Array]';\nvar uint8ClampedTag = '[object Uint8ClampedArray]';\nvar uint16Tag = '[object Uint16Array]';\nvar uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag$1] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/** Detect free variable `exports`. */\nvar freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports$1 && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule$1 && freeModule$1.require && freeModule$1.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/** Used for built-in method references. */\nvar objectProto$2 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$2.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty$1.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar objectProto$5 = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5;\n\n return value === proto;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/** Used for built-in method references. */\nvar objectProto$4 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$3 = objectProto$4.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$3.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? {value: coll[i], key: i} : null;\n }\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done)\n return null;\n i++;\n return {value: item.value, key: i};\n }\n}\n\nfunction createObjectIterator(obj) {\n var okeys = keys(obj);\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n return i < len ? {value: obj[key], key: key} : null;\n };\n}\n\nfunction iterator(coll) {\n if (isArrayLike(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = getIterator(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\n\nfunction onlyOnce(fn) {\n return function() {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\nfunction _eachOfLimit(limit) {\n return function (obj, iteratee, callback) {\n callback = once(callback || noop);\n if (limit <= 0 || !obj) {\n return callback(null);\n }\n var nextElem = iterator(obj);\n var done = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n }\n else if (value === breakLoop || (done && running <= 0)) {\n done = true;\n return callback(null);\n }\n else if (!looping) {\n replenish();\n }\n }\n\n function replenish () {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, onlyOnce(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n}\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, wrapAsync(iteratee), callback);\n}\n\nfunction doLimit(fn, limit) {\n return function (iterable, iteratee, callback) {\n return fn(iterable, limit, iteratee, callback);\n };\n}\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = once(callback || noop);\n var index = 0,\n completed = 0,\n length = coll.length;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err) {\n callback(err);\n } else if ((++completed === length) || value === breakLoop) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, onlyOnce(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nvar eachOfGeneric = doLimit(eachOfLimit, Infinity);\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n */\nvar eachOf = function(coll, iteratee, callback) {\n var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric;\n eachOfImplementation(coll, wrapAsync(iteratee), callback);\n};\n\nfunction doParallel(fn) {\n return function (obj, iteratee, callback) {\n return fn(eachOf, obj, wrapAsync(iteratee), callback);\n };\n}\n\nfunction _asyncMap(eachfn, arr, iteratee, callback) {\n callback = callback || noop;\n arr = arr || [];\n var results = [];\n var counter = 0;\n var _iteratee = wrapAsync(iteratee);\n\n eachfn(arr, function (value, _, callback) {\n var index = counter++;\n _iteratee(value, function (err, v) {\n results[index] = v;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n\n/**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines).\n *\n * @name map\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n */\nvar map = doParallel(_asyncMap);\n\n/**\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, `fns`, then it will return a function which lets you pass in the\n * arguments as if it were a single function call. If more arguments are\n * provided, `callback` is required while `args` is still optional.\n *\n * @name applyEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} fns - A collection of {@link AsyncFunction}s\n * to all call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument, `fns`, is provided, it will\n * return a function which lets you pass in the arguments as if it were a single\n * function call. The signature is `(..args, callback)`. If invoked with any\n * arguments, `callback` is required.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n */\nvar applyEach = applyEach$1(map);\n\nfunction doParallelLimit(fn) {\n return function (obj, limit, iteratee, callback) {\n return fn(_eachOfLimit(limit), obj, wrapAsync(iteratee), callback);\n };\n}\n\n/**\n * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nvar mapLimit = doParallelLimit(_asyncMap);\n\n/**\n * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nvar mapSeries = doLimit(mapLimit, 1);\n\n/**\n * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.applyEach]{@link module:ControlFlow.applyEach}\n * @category Control Flow\n * @param {Array|Iterable|Object} fns - A collection of {@link AsyncFunction}s to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n */\nvar applyEachSeries = applyEach$1(mapSeries);\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\n/**\n * Determines the best order for running the {@link AsyncFunction}s in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the {@link AsyncFunction}s pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * {@link AsyncFunction}s also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the {@link AsyncFunction} itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n */\nvar auto = function (tasks, concurrency, callback) {\n if (typeof concurrency === 'function') {\n // concurrency is optional, shift the args.\n callback = concurrency;\n concurrency = null;\n }\n callback = once(callback || noop);\n var keys$$1 = keys(tasks);\n var numTasks = keys$$1.length;\n if (!numTasks) {\n return callback(null);\n }\n if (!concurrency) {\n concurrency = numTasks;\n }\n\n var results = {};\n var runningTasks = 0;\n var hasError = false;\n\n var listeners = Object.create(null);\n\n var readyTasks = [];\n\n // for cycle detection:\n var readyToCheck = []; // tasks that have been identified as reachable\n // without the possibility of returning to an ancestor task\n var uncheckedDependencies = {};\n\n baseForOwn(tasks, function (task, key) {\n if (!isArray(task)) {\n // no dependencies\n enqueueTask(key, [task]);\n readyToCheck.push(key);\n return;\n }\n\n var dependencies = task.slice(0, task.length - 1);\n var remainingDependencies = dependencies.length;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n readyToCheck.push(key);\n return;\n }\n uncheckedDependencies[key] = remainingDependencies;\n\n arrayEach(dependencies, function (dependencyName) {\n if (!tasks[dependencyName]) {\n throw new Error('async.auto task `' + key +\n '` has a non-existent dependency `' +\n dependencyName + '` in ' +\n dependencies.join(', '));\n }\n addListener(dependencyName, function () {\n remainingDependencies--;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n }\n });\n });\n });\n\n checkForDeadlocks();\n processQueue();\n\n function enqueueTask(key, task) {\n readyTasks.push(function () {\n runTask(key, task);\n });\n }\n\n function processQueue() {\n if (readyTasks.length === 0 && runningTasks === 0) {\n return callback(null, results);\n }\n while(readyTasks.length && runningTasks < concurrency) {\n var run = readyTasks.shift();\n run();\n }\n\n }\n\n function addListener(taskName, fn) {\n var taskListeners = listeners[taskName];\n if (!taskListeners) {\n taskListeners = listeners[taskName] = [];\n }\n\n taskListeners.push(fn);\n }\n\n function taskComplete(taskName) {\n var taskListeners = listeners[taskName] || [];\n arrayEach(taskListeners, function (fn) {\n fn();\n });\n processQueue();\n }\n\n\n function runTask(key, task) {\n if (hasError) return;\n\n var taskCallback = onlyOnce(function(err, result) {\n runningTasks--;\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n }\n if (err) {\n var safeResults = {};\n baseForOwn(results, function(val, rkey) {\n safeResults[rkey] = val;\n });\n safeResults[key] = result;\n hasError = true;\n listeners = Object.create(null);\n\n callback(err, safeResults);\n } else {\n results[key] = result;\n taskComplete(key);\n }\n });\n\n runningTasks++;\n var taskFn = wrapAsync(task[task.length - 1]);\n if (task.length > 1) {\n taskFn(results, taskCallback);\n } else {\n taskFn(taskCallback);\n }\n }\n\n function checkForDeadlocks() {\n // Kahn's algorithm\n // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm\n // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html\n var currentTask;\n var counter = 0;\n while (readyToCheck.length) {\n currentTask = readyToCheck.pop();\n counter++;\n arrayEach(getDependents(currentTask), function (dependent) {\n if (--uncheckedDependencies[dependent] === 0) {\n readyToCheck.push(dependent);\n }\n });\n }\n\n if (counter !== numTasks) {\n throw new Error(\n 'async.auto cannot execute tasks due to a recursive dependency'\n );\n }\n }\n\n function getDependents(taskName) {\n var result = [];\n baseForOwn(tasks, function (task, key) {\n if (isArray(task) && baseIndexOf(task, taskName, 0) >= 0) {\n result.push(key);\n }\n });\n return result;\n }\n};\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : undefined;\nvar symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff';\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f';\nvar reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f';\nvar rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff';\nvar rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\nvar rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange$1 = '\\\\ud800-\\\\udfff';\nvar rsComboMarksRange$1 = '\\\\u0300-\\\\u036f';\nvar reComboHalfMarksRange$1 = '\\\\ufe20-\\\\ufe2f';\nvar rsComboSymbolsRange$1 = '\\\\u20d0-\\\\u20ff';\nvar rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1;\nvar rsVarRange$1 = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange$1 + ']';\nvar rsCombo = '[' + rsComboRange$1 + ']';\nvar rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]';\nvar rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')';\nvar rsNonAstral = '[^' + rsAstralRange$1 + ']';\nvar rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}';\nvar rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]';\nvar rsZWJ$1 = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?';\nvar rsOptVar = '[' + rsVarRange$1 + ']?';\nvar rsOptJoin = '(?:' + rsZWJ$1 + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*';\nvar rsSeq = rsOptVar + reOptMod + rsOptJoin;\nvar rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrim, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nvar FN_ARGS = /^(?:async\\s+)?(function)?\\s*[^\\(]*\\(\\s*([^\\)]*)\\)/m;\nvar FN_ARG_SPLIT = /,/;\nvar FN_ARG = /(=.+)?(\\s*)$/;\nvar STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\n\nfunction parseParams(func) {\n func = func.toString().replace(STRIP_COMMENTS, '');\n func = func.match(FN_ARGS)[2].replace(' ', '');\n func = func ? func.split(FN_ARG_SPLIT) : [];\n func = func.map(function (arg){\n return trim(arg.replace(FN_ARG, ''));\n });\n return func;\n}\n\n/**\n * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.auto]{@link module:ControlFlow.auto}\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is an {@link AsyncFunction} of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback, and a `results` object with any completed\n * task results, similar to `auto`.\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n */\nfunction autoInject(tasks, callback) {\n var newTasks = {};\n\n baseForOwn(tasks, function (taskFn, key) {\n var params;\n var fnIsAsync = isAsync(taskFn);\n var hasNoDeps =\n (!fnIsAsync && taskFn.length === 1) ||\n (fnIsAsync && taskFn.length === 0);\n\n if (isArray(taskFn)) {\n params = taskFn.slice(0, -1);\n taskFn = taskFn[taskFn.length - 1];\n\n newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn);\n } else if (hasNoDeps) {\n // no dependencies, use the function as-is\n newTasks[key] = taskFn;\n } else {\n params = parseParams(taskFn);\n if (taskFn.length === 0 && !fnIsAsync && params.length === 0) {\n throw new Error(\"autoInject task functions require explicit parameters.\");\n }\n\n // remove callback param\n if (!fnIsAsync) params.pop();\n\n newTasks[key] = params.concat(newTask);\n }\n\n function newTask(results, taskCb) {\n var newArgs = arrayMap(params, function (name) {\n return results[name];\n });\n newArgs.push(taskCb);\n wrapAsync(taskFn).apply(null, newArgs);\n }\n });\n\n auto(newTasks, callback);\n}\n\n// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n// used for queues. This implementation assumes that the node provided by the user can be modified\n// to adjust the next and last properties. We implement only the minimal functionality\n// for queue support.\nfunction DLL() {\n this.head = this.tail = null;\n this.length = 0;\n}\n\nfunction setInitial(dll, node) {\n dll.length = 1;\n dll.head = dll.tail = node;\n}\n\nDLL.prototype.removeLink = function(node) {\n if (node.prev) node.prev.next = node.next;\n else this.head = node.next;\n if (node.next) node.next.prev = node.prev;\n else this.tail = node.prev;\n\n node.prev = node.next = null;\n this.length -= 1;\n return node;\n};\n\nDLL.prototype.empty = function () {\n while(this.head) this.shift();\n return this;\n};\n\nDLL.prototype.insertAfter = function(node, newNode) {\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next) node.next.prev = newNode;\n else this.tail = newNode;\n node.next = newNode;\n this.length += 1;\n};\n\nDLL.prototype.insertBefore = function(node, newNode) {\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev) node.prev.next = newNode;\n else this.head = newNode;\n node.prev = newNode;\n this.length += 1;\n};\n\nDLL.prototype.unshift = function(node) {\n if (this.head) this.insertBefore(this.head, node);\n else setInitial(this, node);\n};\n\nDLL.prototype.push = function(node) {\n if (this.tail) this.insertAfter(this.tail, node);\n else setInitial(this, node);\n};\n\nDLL.prototype.shift = function() {\n return this.head && this.removeLink(this.head);\n};\n\nDLL.prototype.pop = function() {\n return this.tail && this.removeLink(this.tail);\n};\n\nDLL.prototype.toArray = function () {\n var arr = Array(this.length);\n var curr = this.head;\n for(var idx = 0; idx < this.length; idx++) {\n arr[idx] = curr.data;\n curr = curr.next;\n }\n return arr;\n};\n\nDLL.prototype.remove = function (testFn) {\n var curr = this.head;\n while(!!curr) {\n var next = curr.next;\n if (testFn(curr)) {\n this.removeLink(curr);\n }\n curr = next;\n }\n return this;\n};\n\nfunction queue(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n }\n else if(concurrency === 0) {\n throw new Error('Concurrency must not be zero');\n }\n\n var _worker = wrapAsync(worker);\n var numRunning = 0;\n var workersList = [];\n\n var processingScheduled = false;\n function _insert(data, insertAtFront, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n return setImmediate$1(function() {\n q.drain();\n });\n }\n\n for (var i = 0, l = data.length; i < l; i++) {\n var item = {\n data: data[i],\n callback: callback || noop\n };\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n } else {\n q._tasks.push(item);\n }\n }\n\n if (!processingScheduled) {\n processingScheduled = true;\n setImmediate$1(function() {\n processingScheduled = false;\n q.process();\n });\n }\n }\n\n function _next(tasks) {\n return function(err){\n numRunning -= 1;\n\n for (var i = 0, l = tasks.length; i < l; i++) {\n var task = tasks[i];\n\n var index = baseIndexOf(workersList, task, 0);\n if (index === 0) {\n workersList.shift();\n } else if (index > 0) {\n workersList.splice(index, 1);\n }\n\n task.callback.apply(task, arguments);\n\n if (err != null) {\n q.error(err, task.data);\n }\n }\n\n if (numRunning <= (q.concurrency - q.buffer) ) {\n q.unsaturated();\n }\n\n if (q.idle()) {\n q.drain();\n }\n q.process();\n };\n }\n\n var isProcessing = false;\n var q = {\n _tasks: new DLL(),\n concurrency: concurrency,\n payload: payload,\n saturated: noop,\n unsaturated:noop,\n buffer: concurrency / 4,\n empty: noop,\n drain: noop,\n error: noop,\n started: false,\n paused: false,\n push: function (data, callback) {\n _insert(data, false, callback);\n },\n kill: function () {\n q.drain = noop;\n q._tasks.empty();\n },\n unshift: function (data, callback) {\n _insert(data, true, callback);\n },\n remove: function (testFn) {\n q._tasks.remove(testFn);\n },\n process: function () {\n // Avoid trying to start too many processing operations. This can occur\n // when callbacks resolve synchronously (#1267).\n if (isProcessing) {\n return;\n }\n isProcessing = true;\n while(!q.paused && numRunning < q.concurrency && q._tasks.length){\n var tasks = [], data = [];\n var l = q._tasks.length;\n if (q.payload) l = Math.min(l, q.payload);\n for (var i = 0; i < l; i++) {\n var node = q._tasks.shift();\n tasks.push(node);\n workersList.push(node);\n data.push(node.data);\n }\n\n numRunning += 1;\n\n if (q._tasks.length === 0) {\n q.empty();\n }\n\n if (numRunning === q.concurrency) {\n q.saturated();\n }\n\n var cb = onlyOnce(_next(tasks));\n _worker(data, cb);\n }\n isProcessing = false;\n },\n length: function () {\n return q._tasks.length;\n },\n running: function () {\n return numRunning;\n },\n workersList: function () {\n return workersList;\n },\n idle: function() {\n return q._tasks.length + numRunning === 0;\n },\n pause: function () {\n q.paused = true;\n },\n resume: function () {\n if (q.paused === false) { return; }\n q.paused = false;\n setImmediate$1(q.process);\n }\n };\n return q;\n}\n\n/**\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as [`queue`]{@link module:ControlFlow.queue}.\n * @typedef {Object} CargoObject\n * @memberOf module:ControlFlow\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke like `cargo.length()`.\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke like `cargo.push(task, [callback])`.\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke like `cargo.idle()`.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke like `cargo.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke like `cargo.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke like `cargo.kill()`.\n */\n\n/**\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An asynchronous function for processing an array\n * of queued tasks. Invoked with `(tasks, callback)`.\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {module:ControlFlow.CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n */\nfunction cargo(worker, payload) {\n return queue(worker, 1, payload);\n}\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n */\nvar eachOfSeries = doLimit(eachOfLimit, 1);\n\n/**\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf module:Collections\n * @method\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee complete with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n */\nfunction reduce(coll, memo, iteratee, callback) {\n callback = once(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n eachOfSeries(coll, function(x, i, callback) {\n _iteratee(memo, x, function(err, v) {\n memo = v;\n callback(err);\n });\n }, function(err) {\n callback(err, memo);\n });\n}\n\n/**\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * [compose]{@link module:ControlFlow.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.compose]{@link module:ControlFlow.compose}\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n */\nfunction seq(/*...functions*/) {\n var _functions = arrayMap(arguments, wrapAsync);\n return function(/*...args*/) {\n var args = slice(arguments);\n var that = this;\n\n var cb = args[args.length - 1];\n if (typeof cb == 'function') {\n args.pop();\n } else {\n cb = noop;\n }\n\n reduce(_functions, args, function(newargs, fn, cb) {\n fn.apply(that, newargs.concat(function(err/*, ...nextargs*/) {\n var nextargs = slice(arguments, 1);\n cb(err, nextargs);\n }));\n },\n function(err, results) {\n cb.apply(that, [err].concat(results));\n });\n };\n}\n\n/**\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n */\nvar compose = function(/*...args*/) {\n return seq.apply(null, slice(arguments).reverse());\n};\n\nvar _concat = Array.prototype.concat;\n\n/**\n * The same as [`concat`]{@link module:Collections.concat} but runs a maximum of `limit` async operations at a time.\n *\n * @name concatLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n */\nvar concatLimit = function(coll, limit, iteratee, callback) {\n callback = callback || noop;\n var _iteratee = wrapAsync(iteratee);\n mapLimit(coll, limit, function(val, callback) {\n _iteratee(val, function(err /*, ...args*/) {\n if (err) return callback(err);\n return callback(null, slice(arguments, 1));\n });\n }, function(err, mapResults) {\n var result = [];\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n result = _concat.apply(result, mapResults[i]);\n }\n }\n\n return callback(err, result);\n });\n};\n\n/**\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n */\nvar concat = doLimit(concatLimit, Infinity);\n\n/**\n * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`.\n * The iteratee should complete with an array an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n */\nvar concatSeries = doLimit(concatLimit, 1);\n\n/**\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to\n * [`auto`]{@link module:ControlFlow.auto}.\n *\n * @name constant\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {AsyncFunction} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n */\nvar constant = function(/*...values*/) {\n var values = slice(arguments);\n var args = [null].concat(values);\n return function (/*...ignoredArgs, callback*/) {\n var callback = arguments[arguments.length - 1];\n return callback.apply(this, args);\n };\n};\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nfunction _createTester(check, getResult) {\n return function(eachfn, arr, iteratee, cb) {\n cb = cb || noop;\n var testPassed = false;\n var testResult;\n eachfn(arr, function(value, _, callback) {\n iteratee(value, function(err, result) {\n if (err) {\n callback(err);\n } else if (check(result) && !testResult) {\n testPassed = true;\n testResult = getResult(true, value);\n callback(null, breakLoop);\n } else {\n callback();\n }\n });\n }, function(err) {\n if (err) {\n cb(err);\n } else {\n cb(null, testPassed ? testResult : getResult(false));\n }\n });\n };\n}\n\nfunction _findGetResult(v, x) {\n return x;\n}\n\n/**\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * [`detectSeries`]{@link module:Collections.detectSeries}.\n *\n * @name detect\n * @static\n * @memberOf module:Collections\n * @method\n * @alias find\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n */\nvar detect = doParallel(_createTester(identity, _findGetResult));\n\n/**\n * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findLimit\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nvar detectLimit = doParallelLimit(_createTester(identity, _findGetResult));\n\n/**\n * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findSeries\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nvar detectSeries = doLimit(detectLimit, 1);\n\nfunction consoleFunc(name) {\n return function (fn/*, ...args*/) {\n var args = slice(arguments, 1);\n args.push(function (err/*, ...args*/) {\n var args = slice(arguments, 1);\n if (typeof console === 'object') {\n if (err) {\n if (console.error) {\n console.error(err);\n }\n } else if (console[name]) {\n arrayEach(args, function (x) {\n console[name](x);\n });\n }\n }\n });\n wrapAsync(fn).apply(null, args);\n };\n}\n\n/**\n * Logs the result of an [`async` function]{@link AsyncFunction} to the\n * `console` using `console.dir` to display the properties of the resulting object.\n * Only works in Node.js or in browsers that support `console.dir` and\n * `console.error` (such as FF and Chrome).\n * If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name dir\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n */\nvar dir = consoleFunc('dir');\n\n/**\n * The post-check version of [`during`]{@link module:ControlFlow.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of [`doWhilst`]{@link module:ControlFlow.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.during]{@link module:ControlFlow.during}\n * @category Control Flow\n * @param {AsyncFunction} fn - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error if one occurred, otherwise `null`.\n */\nfunction doDuring(fn, test, callback) {\n callback = onlyOnce(callback || noop);\n var _fn = wrapAsync(fn);\n var _test = wrapAsync(test);\n\n function next(err/*, ...args*/) {\n if (err) return callback(err);\n var args = slice(arguments, 1);\n args.push(check);\n _test.apply(this, args);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n _fn(next);\n }\n\n check(null, true);\n\n}\n\n/**\n * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `iteratee` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - A function which is called each time `test`\n * passes. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `iteratee`. Invoked with any non-error callback results of\n * `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped.\n * `callback` will be passed an error and any arguments passed to the final\n * `iteratee`'s callback. Invoked with (err, [results]);\n */\nfunction doWhilst(iteratee, test, callback) {\n callback = onlyOnce(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n var next = function(err/*, ...args*/) {\n if (err) return callback(err);\n var args = slice(arguments, 1);\n if (test.apply(this, args)) return _iteratee(next);\n callback.apply(null, [null].concat(args));\n };\n _iteratee(next);\n}\n\n/**\n * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.doWhilst]{@link module:ControlFlow.doWhilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `iteratee`. Invoked with any non-error callback results of\n * `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n */\nfunction doUntil(iteratee, test, callback) {\n doWhilst(iteratee, function() {\n return !test.apply(this, arguments);\n }, callback);\n}\n\n/**\n * Like [`whilst`]{@link module:ControlFlow.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {AsyncFunction} fn - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error, if one occurred, otherwise `null`.\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n */\nfunction during(test, fn, callback) {\n callback = onlyOnce(callback || noop);\n var _fn = wrapAsync(fn);\n var _test = wrapAsync(test);\n\n function next(err) {\n if (err) return callback(err);\n _test(check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n _fn(next);\n }\n\n _test(check);\n}\n\nfunction _withoutIndex(iteratee) {\n return function (value, index, callback) {\n return iteratee(value, callback);\n };\n}\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n */\nfunction eachLimit(coll, iteratee, callback) {\n eachOf(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n}\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfLimit`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachLimit$1(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n}\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfSeries`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nvar eachSeries = doLimit(eachLimit$1, 1);\n\n/**\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained. ES2017 `async` functions are returned as-is -- they are immune\n * to Zalgo's corrupting influences, as they always resolve on a later tick.\n *\n * @name ensureAsync\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {AsyncFunction} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n */\nfunction ensureAsync(fn) {\n if (isAsync(fn)) return fn;\n return initialParams(function (args, callback) {\n var sync = true;\n args.push(function () {\n var innerArgs = arguments;\n if (sync) {\n setImmediate$1(function () {\n callback.apply(null, innerArgs);\n });\n } else {\n callback.apply(null, innerArgs);\n }\n });\n fn.apply(this, args);\n sync = false;\n });\n}\n\nfunction notId(v) {\n return !v;\n}\n\n/**\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf module:Collections\n * @method\n * @alias all\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n */\nvar every = doParallel(_createTester(notId, notId));\n\n/**\n * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nvar everyLimit = doParallelLimit(_createTester(notId, notId));\n\n/**\n * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in series.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nvar everySeries = doLimit(everyLimit, 1);\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nfunction filterArray(eachfn, arr, iteratee, callback) {\n var truthValues = new Array(arr.length);\n eachfn(arr, function (x, index, callback) {\n iteratee(x, function (err, v) {\n truthValues[index] = !!v;\n callback(err);\n });\n }, function (err) {\n if (err) return callback(err);\n var results = [];\n for (var i = 0; i < arr.length; i++) {\n if (truthValues[i]) results.push(arr[i]);\n }\n callback(null, results);\n });\n}\n\nfunction filterGeneric(eachfn, coll, iteratee, callback) {\n var results = [];\n eachfn(coll, function (x, index, callback) {\n iteratee(x, function (err, v) {\n if (err) {\n callback(err);\n } else {\n if (v) {\n results.push({index: index, value: x});\n }\n callback();\n }\n });\n }, function (err) {\n if (err) {\n callback(err);\n } else {\n callback(null, arrayMap(results.sort(function (a, b) {\n return a.index - b.index;\n }), baseProperty('value')));\n }\n });\n}\n\nfunction _filter(eachfn, coll, iteratee, callback) {\n var filter = isArrayLike(coll) ? filterArray : filterGeneric;\n filter(eachfn, coll, wrapAsync(iteratee), callback || noop);\n}\n\n/**\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf module:Collections\n * @method\n * @alias select\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n */\nvar filter = doParallel(_filter);\n\n/**\n * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar filterLimit = doParallelLimit(_filter);\n\n/**\n * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n */\nvar filterSeries = doLimit(filterLimit, 1);\n\n/**\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the callback then `errback` is called with the\n * error, and execution stops, otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} fn - an async function to call repeatedly.\n * Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n */\nfunction forever(fn, errback) {\n var done = onlyOnce(errback || noop);\n var task = wrapAsync(ensureAsync(fn));\n\n function next(err) {\n if (err) return done(err);\n task(next);\n }\n next();\n}\n\n/**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs a maximum of `limit` async operations at a time.\n *\n * @name groupByLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n */\nvar groupByLimit = function(coll, limit, iteratee, callback) {\n callback = callback || noop;\n var _iteratee = wrapAsync(iteratee);\n mapLimit(coll, limit, function(val, callback) {\n _iteratee(val, function(err, key) {\n if (err) return callback(err);\n return callback(null, {key: key, val: val});\n });\n }, function(err, mapResults) {\n var result = {};\n // from MDN, handle object having an `hasOwnProperty` prop\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n var key = mapResults[i].key;\n var val = mapResults[i].val;\n\n if (hasOwnProperty.call(result, key)) {\n result[key].push(val);\n } else {\n result[key] = [val];\n }\n }\n }\n\n return callback(err, result);\n });\n};\n\n/**\n * Returns a new object, where each value corresponds to an array of items, from\n * `coll`, that returned the corresponding key. That is, the keys of the object\n * correspond to the values passed to the `iteratee` callback.\n *\n * Note: Since this function applies the `iteratee` to each item in parallel,\n * there is no guarantee that the `iteratee` functions will complete in order.\n * However, the values for each key in the `result` will be in the same order as\n * the original `coll`. For Objects, the values will roughly be in the order of\n * the original Objects' keys (but this can vary across JavaScript engines).\n *\n * @name groupBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @example\n *\n * async.groupBy(['userId1', 'userId2', 'userId3'], function(userId, callback) {\n * db.findById(userId, function(err, user) {\n * if (err) return callback(err);\n * return callback(null, user.age);\n * });\n * }, function(err, result) {\n * // result is object containing the userIds grouped by age\n * // e.g. { 30: ['userId1', 'userId3'], 42: ['userId2']};\n * });\n */\nvar groupBy = doLimit(groupByLimit, Infinity);\n\n/**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs only a single async operation at a time.\n *\n * @name groupBySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n */\nvar groupBySeries = doLimit(groupByLimit, 1);\n\n/**\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n */\nvar log = consoleFunc('log');\n\n/**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n */\nfunction mapValuesLimit(obj, limit, iteratee, callback) {\n callback = once(callback || noop);\n var newObj = {};\n var _iteratee = wrapAsync(iteratee);\n eachOfLimit(obj, limit, function(val, key, next) {\n _iteratee(val, key, function (err, result) {\n if (err) return next(err);\n newObj[key] = result;\n next();\n });\n }, function (err) {\n callback(err, newObj);\n });\n}\n\n/**\n * A relative of [`map`]{@link module:Collections.map}, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, function (file, key, callback) {\n * fs.stat(file, callback);\n * }, function(err, result) {\n * // result is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n */\n\nvar mapValues = doLimit(mapValuesLimit, Infinity);\n\n/**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n */\nvar mapValuesSeries = doLimit(mapValuesLimit, 1);\n\nfunction has(obj, key) {\n return key in obj;\n}\n\n/**\n * Caches the results of an async function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {AsyncFunction} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n */\nfunction memoize(fn, hasher) {\n var memo = Object.create(null);\n var queues = Object.create(null);\n hasher = hasher || identity;\n var _fn = wrapAsync(fn);\n var memoized = initialParams(function memoized(args, callback) {\n var key = hasher.apply(null, args);\n if (has(memo, key)) {\n setImmediate$1(function() {\n callback.apply(null, memo[key]);\n });\n } else if (has(queues, key)) {\n queues[key].push(callback);\n } else {\n queues[key] = [callback];\n _fn.apply(null, args.concat(function(/*args*/) {\n var args = slice(arguments);\n memo[key] = args;\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i].apply(null, args);\n }\n }));\n }\n });\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n}\n\n/**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `process.nextTick`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.setImmediate]{@link module:Utils.setImmediate}\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\nvar _defer$1;\n\nif (hasNextTick) {\n _defer$1 = process.nextTick;\n} else if (hasSetImmediate) {\n _defer$1 = setImmediate;\n} else {\n _defer$1 = fallback;\n}\n\nvar nextTick = wrap(_defer$1);\n\nfunction _parallel(eachfn, tasks, callback) {\n callback = callback || noop;\n var results = isArrayLike(tasks) ? [] : {};\n\n eachfn(tasks, function (task, key, callback) {\n wrapAsync(task)(function (err, result) {\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n }\n results[key] = result;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n\n/**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the\n * execution of other tasks when a task fails.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n *\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n */\nfunction parallelLimit(tasks, callback) {\n _parallel(eachOf, tasks, callback);\n}\n\n/**\n * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallelLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.parallel]{@link module:ControlFlow.parallel}\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n */\nfunction parallelLimit$1(tasks, limit, callback) {\n _parallel(_eachOfLimit(limit), tasks, callback);\n}\n\n/**\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @memberOf module:ControlFlow\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with `queue.length()`.\n * @property {boolean} started - a boolean indicating whether or not any\n * items have been pushed and processed by the queue.\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with `queue.running()`.\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with `queue.workersList()`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with `queue.push(task, [callback])`,\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with `queue.unshift(task, [callback])`.\n * @property {Function} remove - remove items from the queue that match a test\n * function. The test function will be passed an object with a `data` property,\n * and a `priority` property, if this is a\n * [priorityQueue]{@link module:ControlFlow.priorityQueue} object.\n * Invoked with `queue.remove(testFn)`, where `testFn` is of the form\n * `function ({data, priority}) {}` and returns a Boolean.\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with `queue.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. No more tasks\n * should be pushed to the queue after calling this function. Invoke with `queue.kill()`.\n */\n\n/**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`. Invoked with (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */\nvar queue$1 = function (worker, concurrency) {\n var _worker = wrapAsync(worker);\n return queue(function (items, cb) {\n _worker(items[0], cb);\n }, concurrency, 1);\n};\n\n/**\n * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`.\n * Invoked with (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n */\nvar priorityQueue = function(worker, concurrency) {\n // Start with a normal queue\n var q = queue$1(worker, concurrency);\n\n // Override push to accept second parameter representing priority\n q.push = function(data, priority, callback) {\n if (callback == null) callback = noop;\n if (typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0) {\n // call drain immediately if there are no tasks\n return setImmediate$1(function() {\n q.drain();\n });\n }\n\n priority = priority || 0;\n var nextNode = q._tasks.head;\n while (nextNode && priority >= nextNode.priority) {\n nextNode = nextNode.next;\n }\n\n for (var i = 0, l = data.length; i < l; i++) {\n var item = {\n data: data[i],\n priority: priority,\n callback: callback\n };\n\n if (nextNode) {\n q._tasks.insertBefore(nextNode, item);\n } else {\n q._tasks.push(item);\n }\n }\n setImmediate$1(q.process);\n };\n\n // Remove unshift function\n delete q.unshift;\n\n return q;\n};\n\n/**\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any of the `tasks` complete or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array containing [async functions]{@link AsyncFunction}\n * to run. Each function can complete with an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n */\nfunction race(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions'));\n if (!tasks.length) return callback();\n for (var i = 0, l = tasks.length; i < l; i++) {\n wrapAsync(tasks[i])(callback);\n }\n}\n\n/**\n * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reduce]{@link module:Collections.reduce}\n * @alias foldr\n * @category Collection\n * @param {Array} array - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee complete with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n */\nfunction reduceRight (array, memo, iteratee, callback) {\n var reversed = slice(array).reverse();\n reduce(reversed, memo, iteratee, callback);\n}\n\n/**\n * Wraps the async function in another function that always completes with a\n * result object, even when it errors.\n *\n * The result object has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n */\nfunction reflect(fn) {\n var _fn = wrapAsync(fn);\n return initialParams(function reflectOn(args, reflectCallback) {\n args.push(function callback(error, cbArg) {\n if (error) {\n reflectCallback(null, { error: error });\n } else {\n var value;\n if (arguments.length <= 2) {\n value = cbArg;\n } else {\n value = slice(arguments, 1);\n }\n reflectCallback(null, { value: value });\n }\n });\n\n return _fn.apply(this, args);\n });\n}\n\n/**\n * A helper function that wraps an array or an object of functions with `reflect`.\n *\n * @name reflectAll\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.reflect]{@link module:Utils.reflect}\n * @category Util\n * @param {Array|Object|Iterable} tasks - The collection of\n * [async functions]{@link AsyncFunction} to wrap in `async.reflect`.\n * @returns {Array} Returns an array of async functions, each wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n *\n * // an example using an object instead of an array\n * let tasks = {\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * two: function(callback) {\n * callback('two');\n * },\n * three: function(callback) {\n * setTimeout(function() {\n * callback(null, 'three');\n * }, 100);\n * }\n * };\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results.one.value = 'one'\n * // results.two.error = 'two'\n * // results.three.value = 'three'\n * });\n */\nfunction reflectAll(tasks) {\n var results;\n if (isArray(tasks)) {\n results = arrayMap(tasks, reflect);\n } else {\n results = {};\n baseForOwn(tasks, function(task, key) {\n results[key] = reflect.call(this, task);\n });\n }\n return results;\n}\n\nfunction reject$1(eachfn, arr, iteratee, callback) {\n _filter(eachfn, arr, function(value, cb) {\n iteratee(value, function(err, v) {\n cb(err, !v);\n });\n }, callback);\n}\n\n/**\n * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n */\nvar reject = doParallel(reject$1);\n\n/**\n * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar rejectLimit = doParallelLimit(reject$1);\n\n/**\n * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar rejectSeries = doLimit(rejectLimit, 1);\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant$1(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @see [async.retryable]{@link module:ControlFlow.retryable}\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * `errorFilter` - An optional synchronous function that is invoked on\n * erroneous result. If it returns `true` the retry attempts will continue;\n * if the function returns `false` the retry flow is aborted with the current\n * attempt's error and result being returned to the final callback.\n * Invoked with (err).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {AsyncFunction} task - An async function to retry.\n * Invoked with (callback).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n *\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod only when error condition satisfies, all other\n * // errors will abort the retry control flow and return to final callback\n * async.retry({\n * errorFilter: function(err) {\n * return err.message === 'Temporary error'; // only retry on a specific error\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // to retry individual methods that are not as reliable within other\n * // control flow functions, use the `retryable` wrapper:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retryable(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n *\n */\nfunction retry(opts, task, callback) {\n var DEFAULT_TIMES = 5;\n var DEFAULT_INTERVAL = 0;\n\n var options = {\n times: DEFAULT_TIMES,\n intervalFunc: constant$1(DEFAULT_INTERVAL)\n };\n\n function parseTimes(acc, t) {\n if (typeof t === 'object') {\n acc.times = +t.times || DEFAULT_TIMES;\n\n acc.intervalFunc = typeof t.interval === 'function' ?\n t.interval :\n constant$1(+t.interval || DEFAULT_INTERVAL);\n\n acc.errorFilter = t.errorFilter;\n } else if (typeof t === 'number' || typeof t === 'string') {\n acc.times = +t || DEFAULT_TIMES;\n } else {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n }\n\n if (arguments.length < 3 && typeof opts === 'function') {\n callback = task || noop;\n task = opts;\n } else {\n parseTimes(options, opts);\n callback = callback || noop;\n }\n\n if (typeof task !== 'function') {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n\n var _task = wrapAsync(task);\n\n var attempt = 1;\n function retryAttempt() {\n _task(function(err) {\n if (err && attempt++ < options.times &&\n (typeof options.errorFilter != 'function' ||\n options.errorFilter(err))) {\n setTimeout(retryAttempt, options.intervalFunc(attempt));\n } else {\n callback.apply(null, arguments);\n }\n });\n }\n\n retryAttempt();\n}\n\n/**\n * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method\n * wraps a task and makes it retryable, rather than immediately calling it\n * with retries.\n *\n * @name retryable\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.retry]{@link module:ControlFlow.retry}\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {AsyncFunction} task - the asynchronous function to wrap.\n * This function will be passed any arguments passed to the returned wrapper.\n * Invoked with (...args, callback).\n * @returns {AsyncFunction} The wrapped function, which when invoked, will\n * retry on an error, based on the parameters specified in `opts`.\n * This function will accept the same parameters as `task`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n */\nvar retryable = function (opts, task) {\n if (!task) {\n task = opts;\n opts = null;\n }\n var _task = wrapAsync(task);\n return initialParams(function (args, callback) {\n function taskFn(cb) {\n _task.apply(null, args.concat(cb));\n }\n\n if (opts) retry(opts, taskFn, callback);\n else retry(taskFn, callback);\n\n });\n};\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n */\nfunction series(tasks, callback) {\n _parallel(eachOfSeries, tasks, callback);\n}\n\n/**\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf module:Collections\n * @method\n * @alias any\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n */\nvar some = doParallel(_createTester(Boolean, identity));\n\n/**\n * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anyLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nvar someLimit = doParallelLimit(_createTester(Boolean, identity));\n\n/**\n * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anySeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in series.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nvar someSeries = doLimit(someLimit, 1);\n\n/**\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a value to use as the sort criteria as\n * its `result`.\n * Invoked with (item, callback).\n * @param {Function} callback - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n */\nfunction sortBy (coll, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n map(coll, function (x, callback) {\n _iteratee(x, function (err, criteria) {\n if (err) return callback(err);\n callback(null, {value: x, criteria: criteria});\n });\n }, function (err, results) {\n if (err) return callback(err);\n callback(null, arrayMap(results.sort(comparator), baseProperty('value')));\n });\n\n function comparator(left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n }\n}\n\n/**\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} asyncFn - The async function to limit in time.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {AsyncFunction} Returns a wrapped function that can be used with any\n * of the control flow functions.\n * Invoke this function with the same parameters as you would `asyncFunc`.\n * @example\n *\n * function myFunction(foo, callback) {\n * doAsyncTask(foo, function(err, data) {\n * // handle errors\n * if (err) return callback(err);\n *\n * // do some stuff ...\n *\n * // return processed data\n * return callback(null, data);\n * });\n * }\n *\n * var wrapped = async.timeout(myFunction, 1000);\n *\n * // call `wrapped` as you would `myFunction`\n * wrapped({ bar: 'bar' }, function(err, data) {\n * // if `myFunction` takes < 1000 ms to execute, `err`\n * // and `data` will have their expected values\n *\n * // else `err` will be an Error with the code 'ETIMEDOUT'\n * });\n */\nfunction timeout(asyncFn, milliseconds, info) {\n var fn = wrapAsync(asyncFn);\n\n return initialParams(function (args, callback) {\n var timedOut = false;\n var timer;\n\n function timeoutCallback() {\n var name = asyncFn.name || 'anonymous';\n var error = new Error('Callback function \"' + name + '\" timed out.');\n error.code = 'ETIMEDOUT';\n if (info) {\n error.info = info;\n }\n timedOut = true;\n callback(error);\n }\n\n args.push(function () {\n if (!timedOut) {\n callback.apply(null, arguments);\n clearTimeout(timer);\n }\n });\n\n // setup timer and call original function\n timer = setTimeout(timeoutCallback, milliseconds);\n fn.apply(null, args);\n });\n}\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\nvar nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\n/**\n * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name timesLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see [async.map]{@link module:Collections.map}.\n */\nfunction timeLimit(count, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n mapLimit(baseRange(0, count, 1), limit, _iteratee, callback);\n}\n\n/**\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with [map]{@link module:Collections.map}.\n *\n * @name times\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n */\nvar times = doLimit(timeLimit, Infinity);\n\n/**\n * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n */\nvar timesSeries = doLimit(timeLimit, 1);\n\n/**\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n */\nfunction transform (coll, accumulator, iteratee, callback) {\n if (arguments.length <= 3) {\n callback = iteratee;\n iteratee = accumulator;\n accumulator = isArray(coll) ? [] : {};\n }\n callback = once(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n\n eachOf(coll, function(v, k, cb) {\n _iteratee(accumulator, v, k, cb);\n }, function(err) {\n callback(err, accumulator);\n });\n}\n\n/**\n * It runs each task in series but stops whenever any of the functions were\n * successful. If one of the tasks were successful, the `callback` will be\n * passed the result of the successful task. If all tasks fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name tryEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection containing functions to\n * run, each function is passed a `callback(err, result)` it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback which is called when one\n * of the tasks has succeeded, or all have failed. It receives the `err` and\n * `result` arguments of the last attempt at completing the `task`. Invoked with\n * (err, results).\n * @example\n * async.tryEach([\n * function getDataFromFirstWebsite(callback) {\n * // Try getting the data from the first website\n * callback(err, data);\n * },\n * function getDataFromSecondWebsite(callback) {\n * // First website failed,\n * // Try getting the data from the backup website\n * callback(err, data);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * Now do something with the data.\n * });\n *\n */\nfunction tryEach(tasks, callback) {\n var error = null;\n var result;\n callback = callback || noop;\n eachSeries(tasks, function(task, callback) {\n wrapAsync(task)(function (err, res/*, ...args*/) {\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n } else {\n result = res;\n }\n error = err;\n callback(!err);\n });\n }, function () {\n callback(error, result);\n });\n}\n\n/**\n * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.memoize]{@link module:Utils.memoize}\n * @category Util\n * @param {AsyncFunction} fn - the memoized function\n * @returns {AsyncFunction} a function that calls the original unmemoized function\n */\nfunction unmemoize(fn) {\n return function () {\n return (fn.unmemoized || fn).apply(null, arguments);\n };\n}\n\n/**\n * Repeatedly call `iteratee`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `iteratee`. Invoked with ().\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n */\nfunction whilst(test, iteratee, callback) {\n callback = onlyOnce(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n if (!test()) return callback(null);\n var next = function(err/*, ...args*/) {\n if (err) return callback(err);\n if (test()) return _iteratee(next);\n var args = slice(arguments, 1);\n callback.apply(null, [null].concat(args));\n };\n _iteratee(next);\n}\n\n/**\n * Repeatedly call `iteratee` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `iteratee`'s callback.\n *\n * The inverse of [whilst]{@link module:ControlFlow.whilst}.\n *\n * @name until\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `iteratee`. Invoked with ().\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n */\nfunction until(test, iteratee, callback) {\n whilst(function() {\n return !test.apply(this, arguments);\n }, iteratee, callback);\n}\n\n/**\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array of [async functions]{@link AsyncFunction}\n * to run.\n * Each function should complete with any number of `result` values.\n * The `result` values will be passed as arguments, in order, to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n */\nvar waterfall = function(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions'));\n if (!tasks.length) return callback();\n var taskIndex = 0;\n\n function nextTask(args) {\n var task = wrapAsync(tasks[taskIndex++]);\n args.push(onlyOnce(next));\n task.apply(null, args);\n }\n\n function next(err/*, ...args*/) {\n if (err || taskIndex === tasks.length) {\n return callback.apply(null, arguments);\n }\n nextTask(slice(arguments, 1));\n }\n\n nextTask([]);\n};\n\n/**\n * An \"async function\" in the context of Async is an asynchronous function with\n * a variable number of parameters, with the final parameter being a callback.\n * (`function (arg1, arg2, ..., callback) {}`)\n * The final callback is of the form `callback(err, results...)`, which must be\n * called once the function is completed. The callback should be called with a\n * Error as its first argument to signal that an error occurred.\n * Otherwise, if no error occurred, it should be called with `null` as the first\n * argument, and any additional `result` arguments that may apply, to signal\n * successful completion.\n * The callback must be called exactly once, ideally on a later tick of the\n * JavaScript event loop.\n *\n * This type of function is also referred to as a \"Node-style async function\",\n * or a \"continuation passing-style function\" (CPS). Most of the methods of this\n * library are themselves CPS/Node-style async functions, or functions that\n * return CPS/Node-style async functions.\n *\n * Wherever we accept a Node-style async function, we also directly accept an\n * [ES2017 `async` function]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function}.\n * In this case, the `async` function will not be passed a final callback\n * argument, and any thrown error will be used as the `err` argument of the\n * implicit callback, and the return value will be used as the `result` value.\n * (i.e. a `rejected` of the returned Promise becomes the `err` callback\n * argument, and a `resolved` value becomes the `result`.)\n *\n * Note, due to JavaScript limitations, we can only detect native `async`\n * functions and not transpilied implementations.\n * Your environment must have `async`/`await` support for this to work.\n * (e.g. Node > v7.6, or a recent version of a modern browser).\n * If you are using `async` functions through a transpiler (e.g. Babel), you\n * must still wrap the function with [asyncify]{@link module:Utils.asyncify},\n * because the `async function` will be compiled to an ordinary function that\n * returns a promise.\n *\n * @typedef {Function} AsyncFunction\n * @static\n */\n\n/**\n * Async is a utility module which provides straight-forward, powerful functions\n * for working with asynchronous JavaScript. Although originally designed for\n * use with [Node.js](http://nodejs.org) and installable via\n * `npm install --save async`, it can also be used directly in the browser.\n * @module async\n * @see AsyncFunction\n */\n\n\n/**\n * A collection of `async` functions for manipulating collections, such as\n * arrays and objects.\n * @module Collections\n */\n\n/**\n * A collection of `async` functions for controlling the flow through a script.\n * @module ControlFlow\n */\n\n/**\n * A collection of `async` utility functions.\n * @module Utils\n */\n\nvar index = {\n apply: apply,\n applyEach: applyEach,\n applyEachSeries: applyEachSeries,\n asyncify: asyncify,\n auto: auto,\n autoInject: autoInject,\n cargo: cargo,\n compose: compose,\n concat: concat,\n concatLimit: concatLimit,\n concatSeries: concatSeries,\n constant: constant,\n detect: detect,\n detectLimit: detectLimit,\n detectSeries: detectSeries,\n dir: dir,\n doDuring: doDuring,\n doUntil: doUntil,\n doWhilst: doWhilst,\n during: during,\n each: eachLimit,\n eachLimit: eachLimit$1,\n eachOf: eachOf,\n eachOfLimit: eachOfLimit,\n eachOfSeries: eachOfSeries,\n eachSeries: eachSeries,\n ensureAsync: ensureAsync,\n every: every,\n everyLimit: everyLimit,\n everySeries: everySeries,\n filter: filter,\n filterLimit: filterLimit,\n filterSeries: filterSeries,\n forever: forever,\n groupBy: groupBy,\n groupByLimit: groupByLimit,\n groupBySeries: groupBySeries,\n log: log,\n map: map,\n mapLimit: mapLimit,\n mapSeries: mapSeries,\n mapValues: mapValues,\n mapValuesLimit: mapValuesLimit,\n mapValuesSeries: mapValuesSeries,\n memoize: memoize,\n nextTick: nextTick,\n parallel: parallelLimit,\n parallelLimit: parallelLimit$1,\n priorityQueue: priorityQueue,\n queue: queue$1,\n race: race,\n reduce: reduce,\n reduceRight: reduceRight,\n reflect: reflect,\n reflectAll: reflectAll,\n reject: reject,\n rejectLimit: rejectLimit,\n rejectSeries: rejectSeries,\n retry: retry,\n retryable: retryable,\n seq: seq,\n series: series,\n setImmediate: setImmediate$1,\n some: some,\n someLimit: someLimit,\n someSeries: someSeries,\n sortBy: sortBy,\n timeout: timeout,\n times: times,\n timesLimit: timeLimit,\n timesSeries: timesSeries,\n transform: transform,\n tryEach: tryEach,\n unmemoize: unmemoize,\n until: until,\n waterfall: waterfall,\n whilst: whilst,\n\n // aliases\n all: every,\n allLimit: everyLimit,\n allSeries: everySeries,\n any: some,\n anyLimit: someLimit,\n anySeries: someSeries,\n find: detect,\n findLimit: detectLimit,\n findSeries: detectSeries,\n forEach: eachLimit,\n forEachSeries: eachSeries,\n forEachLimit: eachLimit$1,\n forEachOf: eachOf,\n forEachOfSeries: eachOfSeries,\n forEachOfLimit: eachOfLimit,\n inject: reduce,\n foldl: reduce,\n foldr: reduceRight,\n select: filter,\n selectLimit: filterLimit,\n selectSeries: filterSeries,\n wrapSync: asyncify\n};\n\nexports['default'] = index;\nexports.apply = apply;\nexports.applyEach = applyEach;\nexports.applyEachSeries = applyEachSeries;\nexports.asyncify = asyncify;\nexports.auto = auto;\nexports.autoInject = autoInject;\nexports.cargo = cargo;\nexports.compose = compose;\nexports.concat = concat;\nexports.concatLimit = concatLimit;\nexports.concatSeries = concatSeries;\nexports.constant = constant;\nexports.detect = detect;\nexports.detectLimit = detectLimit;\nexports.detectSeries = detectSeries;\nexports.dir = dir;\nexports.doDuring = doDuring;\nexports.doUntil = doUntil;\nexports.doWhilst = doWhilst;\nexports.during = during;\nexports.each = eachLimit;\nexports.eachLimit = eachLimit$1;\nexports.eachOf = eachOf;\nexports.eachOfLimit = eachOfLimit;\nexports.eachOfSeries = eachOfSeries;\nexports.eachSeries = eachSeries;\nexports.ensureAsync = ensureAsync;\nexports.every = every;\nexports.everyLimit = everyLimit;\nexports.everySeries = everySeries;\nexports.filter = filter;\nexports.filterLimit = filterLimit;\nexports.filterSeries = filterSeries;\nexports.forever = forever;\nexports.groupBy = groupBy;\nexports.groupByLimit = groupByLimit;\nexports.groupBySeries = groupBySeries;\nexports.log = log;\nexports.map = map;\nexports.mapLimit = mapLimit;\nexports.mapSeries = mapSeries;\nexports.mapValues = mapValues;\nexports.mapValuesLimit = mapValuesLimit;\nexports.mapValuesSeries = mapValuesSeries;\nexports.memoize = memoize;\nexports.nextTick = nextTick;\nexports.parallel = parallelLimit;\nexports.parallelLimit = parallelLimit$1;\nexports.priorityQueue = priorityQueue;\nexports.queue = queue$1;\nexports.race = race;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reflect = reflect;\nexports.reflectAll = reflectAll;\nexports.reject = reject;\nexports.rejectLimit = rejectLimit;\nexports.rejectSeries = rejectSeries;\nexports.retry = retry;\nexports.retryable = retryable;\nexports.seq = seq;\nexports.series = series;\nexports.setImmediate = setImmediate$1;\nexports.some = some;\nexports.someLimit = someLimit;\nexports.someSeries = someSeries;\nexports.sortBy = sortBy;\nexports.timeout = timeout;\nexports.times = times;\nexports.timesLimit = timeLimit;\nexports.timesSeries = timesSeries;\nexports.transform = transform;\nexports.tryEach = tryEach;\nexports.unmemoize = unmemoize;\nexports.until = until;\nexports.waterfall = waterfall;\nexports.whilst = whilst;\nexports.all = every;\nexports.allLimit = everyLimit;\nexports.allSeries = everySeries;\nexports.any = some;\nexports.anyLimit = someLimit;\nexports.anySeries = someSeries;\nexports.find = detect;\nexports.findLimit = detectLimit;\nexports.findSeries = detectSeries;\nexports.forEach = eachLimit;\nexports.forEachSeries = eachSeries;\nexports.forEachLimit = eachLimit$1;\nexports.forEachOf = eachOf;\nexports.forEachOfSeries = eachOfSeries;\nexports.forEachOfLimit = eachOfLimit;\nexports.inject = reduce;\nexports.foldl = reduce;\nexports.foldr = reduceRight;\nexports.select = filter;\nexports.selectLimit = filterLimit;\nexports.selectSeries = filterSeries;\nexports.wrapSync = asyncify;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(308).setImmediate, __webpack_require__(217), __webpack_require__(33), __webpack_require__(48)(module)))\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\n__webpack_require__(309);\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33)))\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33), __webpack_require__(217)))\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar global = getGlobal();\n\nmodule.exports = exports = global.fetch;\n\n// Needed for TypeScript and Webpack.\nexports.default = global.fetch.bind(global);\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar moment = __webpack_require__(0);\nvar $ = __webpack_require__(312);\n\n(function (global, factory) {\n true ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.hstri = factory());\n}(this, (function () { 'use strict';\n\nvar queryMichelangelo = function (opts, ajax) {\n var data = buildQuery({\n timeFrame: opts.timeFrame,\n start: opts.start,\n end: opts.end,\n series: opts.instrument,\n frequency: opts.frequency,\n entitlementToken: opts.entitlementToken,\n volume: opts.volume\n });\n var promise = sendQuery(data, ajax).fail(function (err) {\n if (err.responseJSON && err.responseJSON.Message) {\n throw 'Message from API: ' + err.responseJSON.Message;\n }\n throw err.statusText;\n });\n\n if (opts.raw !== true) {\n promise = promise.then(extractValues).then(combineValues).then(extractMetadata).fail(function (err) {\n console.error(err);\n throw 'Error parsing data';\n });\n\n // .then(fillBlanks);\n }\n\n if (opts.callback) {\n promise.done(opts.callback);\n }\n\n return promise;\n};\n\nfunction extractValues(data) {\n return data.Series.map(function (d, i) {\n return {\n points: d.DataPoints.map(function (p, j) {\n var points = {};\n d.DesiredDataPoints.forEach(function (dataPointType, k) {\n points[dataPointType] = p[k];\n });\n return points;\n }),\n ticks: data.TimeInfo.Ticks,\n raw: data\n };\n });\n}\n\nfunction combineValues(data) {\n return data.map(function (d, i) {\n var combined = d.points.map(function (p, j) {\n p.date = d.ticks[j];\n return p;\n });\n d.data = combined.map(function (p) {\n return [p.date, p.Last ? p.Last : p.Volume];\n });\n d.fullData = combined;\n return d;\n });\n}\n\nfunction extractMetadata(data) {\n return data.map(function (d, i) {\n var raw = d.raw.Series[i];\n d.ticker = raw.Ticker;\n d.name = raw.CommonName;\n return d;\n });\n}\n\n/*\nopts:\n- start (date)\n- end (date)\n- series (array of instrument keys)\n*/\nfunction buildQuery(opts) {\n var series = opts.series.map(function (symbol) {\n var props = {\n \"Key\": symbol,\n \"Dialect\": \"Charting\",\n \"Kind\": \"Ticker\",\n \"SeriesId\": \"s1\",\n \"DataTypes\": [\"Open\", \"High\", \"Low\", \"Last\", \"PercentChange\"]\n };\n if (opts.volume) {\n props[\"Indicators\"] = [{ \"Parameters\": [], \"Kind\": \"Volume\", \"SeriesId\": \"i2\" }];\n }\n return props;\n });\n return {\n \"Series\": series,\n \"StartDate\": opts.start ? opts.start.valueOf() : null,\n \"EndDate\": opts.end ? opts.end.valueOf() : null,\n \"Step\": opts.frequency,\n // \"TimeFrame\":\"D1\",\n \"EntitlementToken\": opts.entitlementToken,\n \"IncludeMockTick\": true,\n \"FilterNullSlots\": true,\n \"FilterClosedPoints\": true,\n \"IncludeClosedSlots\": false,\n \"IncludeOfficialClose\": true,\n \"InjectOpen\": false,\n \"ShowPreMarket\": false,\n \"ShowAfterHours\": false,\n \"UseExtendedTimeFrame\": true,\n \"WantPriorClose\": true,\n \"IncludeCurrentQuotes\": true,\n \"ResetTodaysAfterHoursPercentChange\": false,\n \"TimeFrame\": opts.timeFrame\n };\n}\n\nfunction sendQuery(data, ajax) {\n var request = ajax({\n url: \"https://api.wsj.net/api/michelangelo/timeseries/history?ckey=\" + data.EntitlementToken.slice(0, 10),\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify(data),\n beforeSend: function beforeSend(request) {\n request.setRequestHeader(\"Dylan2010.EntitlementToken\", data.EntitlementToken);\n request.setRequestHeader(\"Content-Type\", \"application/json; charset=UTF-8\");\n }\n });\n return request;\n}\n\nvar queryDylan = function (opts, ajax) {\n\n var query = buildQuery(opts);\n var url = 'https://api.wsj.net/api/dylan/dataseries/v2/pricing?id=' + query + '&ckey=57494d5ed7&Dylan2010.EntitlementToken=57494d5ed7ad44af85bc59a51dd87c90&json=true';\n\n var promise = ajax({\n url: url,\n type: \"GET\",\n crossDomain: true,\n headers: {\n \"Accept\": \"application/json\",\n \"Dylan2010.EntitlementToken\": '57494d5ed7ad44af85bc59a51dd87c90'\n },\n dataType: 'json'\n }).fail(function (err) {\n console.error(err);\n if (typeof $ !== 'undefined') {\n var message = $(err.responseText).find('p:eq(1)').text().split(\"'\")[1];\n throw 'Message from API: ' + message;\n } else {\n throw err.responseText;\n }\n });\n\n if (opts.raw !== true) {\n promise = promise.then(extractValues).then(processValues).then(extractMetadata$1).fail(function (err) {\n console.error(err);\n throw 'Problem parsing data';\n });\n }\n\n if (opts.callback) {\n promise.done(opts.callback);\n }\n\n return promise;\n\n function extractValues(d) {\n var metadata = d.GetDataSeriesResponse.DataSeriesResponses[0].SeriesMatches[0];\n var values = metadata.DataPoints;\n if (values.length === 0) {\n throw 'Live data is empty.';\n }\n return { metadata: metadata, values: values };\n }\n\n function processValues(_ref) {\n var metadata = _ref.metadata,\n values = _ref.values;\n\n var processed = values.map(function (d, i) {\n var date = Date.parse(d.Trading.Last.Time);\n var value = d.Trading.Last.Price.Value;\n return [date, value];\n });\n return [{\n raw: metadata,\n data: processed\n }];\n }\n\n function buildQuery(opts) {\n /*\n Instruments --> comma separated list of instruments to request formated as follows \n Ticker|CountryCode|ExchangeIsoCode|InstrumentType\n \n Needed --> pipe separated list of what you want returned possibilities\n AfterHoursTrading, BeforeHourseTrading, Financials, FinancialStatusIndicator, Offers, Trading, TradingStatistics, RealtimeTrading, RealtimeBeforeHoursTrading, RealTimeAfterHoursTrading, CompositeTrading, CompositeBeforeHoursTrading, CompositeAfterHoursTrading, IndustryClassification, BluegrassChannels, TimeZoneInfo, BondSpecific, CurrencySpecific)\n */\n\n var query = '';\n\n query += opts.instrument[0] + '|'; // Ticker|CountryCode|ExchangeIsoCode|InstrumentType\n query += opts.start.format('YYYY-MM-DD[T]HH:mm:ss') + '|';\n query += opts.end.format('YYYY-MM-DD[T]HH:mm:ss') + '|';\n query += opts.frequency + '||True';\n\n return query;\n\n // EURUSD|US||Currency|'+range[0]+ '|' +range[1] + '|PT1M||True\n }\n};\n\nfunction extractMetadata$1(data) {\n var raw = data[0].raw.Instrument;\n data[0].name = raw.CommonName;\n data[0].ticker = raw.Ticker;\n return data;\n}\n\nvar fillBlanksWith = function (_ref, moment) {\n var frequency = _ref.frequency,\n fillBlanksWithPrevious = _ref.fillBlanksWithPrevious,\n start = _ref.start,\n end = _ref.end;\n\n return function (arr) {\n var precisions = {\n P1D: 'day',\n P1Y: 'year',\n P1W: 'week',\n PT1M: 'minute',\n PT1H: 'hour'\n };\n var intervals = {};\n Object.keys(precisions).forEach(function (k) {\n intervals[k] = moment() - moment().subtract(1, precisions[k]);\n });\n var interval = intervals[frequency];\n\n arr.forEach(function (instr) {\n\n var data = JSON.parse(JSON.stringify(instr.data));\n var lengthOfTime = end - start;\n var expectedNumberOfTicks = lengthOfTime / interval;\n var expectedTicks = [];\n for (var i = 0; i < expectedNumberOfTicks; i++) {\n expectedTicks.push([start + interval * i, null]);\n }\n\n var fullTicks = [].concat(data, expectedTicks);\n fullTicks.sort(function (a, b) {\n return a[0] - b[0];\n });\n fullTicks.forEach(function (d) {\n d[0] = moment.utc(d[0]).startOf(precisions[frequency]).valueOf();\n });\n var uniqueTicks = fullTicks.reduce(function (accum, curr, i) {\n var existingIndex = -1;\n var existing = accum.filter(function (d, i) {\n if (d[0] === curr[0]) {\n existingIndex = i;\n }\n return d[0] === curr[0];\n });\n if (existing.length === 0) {\n accum.push([curr[0], curr[1]]);\n } else if (existingIndex > -1 && existing[0][1] === null) {\n accum[existingIndex] = curr;\n }\n return accum;\n }, []);\n\n var fillWithPreviousValue = createFillerBackTo(instr.ticks[instr.ticks.length - 1]);\n if (fillBlanksWithPrevious) {\n uniqueTicks = uniqueTicks.map(fillWithPreviousValue);\n }\n\n instr.data = uniqueTicks;\n instr.ticks = uniqueTicks.map(function (d) {\n return d[0];\n });\n instr.points = uniqueTicks.map(function (d) {\n return d[1];\n });\n });\n\n return arr;\n };\n\n function createFillerBackTo(d) {\n var date = moment(d);\n return function (d, i, arr) {\n var notFirst = i > 0;\n var isNull = d[1] === null;\n var inPast = moment.utc(d[0]).isBefore(date);\n if (notFirst && isNull && inPast) {\n d[1] = arr[i - 1][1];\n }\n return d;\n };\n }\n};\n\nvar hstri$2 = function hstri$2(opts, deps) {\n\n opts = processOpts(opts, deps.moment);\n\n var promise = void 0;\n\n if (opts.service === 'dylan') {\n promise = queryDylan(opts, deps.ajax);\n } else {\n promise = queryMichelangelo(opts, deps.ajax);\n }\n\n if (opts.fillBlanks || opts.fillBlanksWithPrevious) {\n var fillBlanks = fillBlanksWith(opts, deps.moment);\n promise = promise.then(fillBlanks);\n }\n\n if (opts.raw !== true) {\n promise = promise.then(addSource(opts));\n }\n\n return promise;\n};\n\nfunction validateFrequency(frequency) {\n // regex from moment.js\n // https://github.com/moment/moment/blob/develop/src/lib/duration/create.js#L14\n var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n var match = frequency.match(isoRegex);\n if (match === null || !frequency) {\n throw '\"' + frequency + '\" option is not valid. Here are some example time codes:\\\nP1D | daily\\\nP1Y | yearly\\\nP1W | weekly\\\nPT1M | every minute\\\nPT1H | every hour\\\n';\n }\n}\n\nfunction processOpts(opts, moment) {\n var checkDate = createDateChecker(moment);\n var roundToNearestMinute = createMinuteRounder(moment);\n\n if (!opts.instrument) {\n throw 'No symbol specified';\n }\n if (Array.isArray(opts.instrument) === false) {\n opts.instrument = [opts.instrument];\n }\n if (opts.timeFrame === 'custom' || !opts.timeFrame) {\n if (!opts.start) {\n throw 'Must specify start date or time frame code';\n } else {\n checkDate(opts.start, 'Start date');\n }\n if (opts.end) {\n checkDate(opts.end, 'End date');\n } else {\n opts.end = moment();\n }\n\n if (opts.start.isSame(opts.end)) {\n if (opts.start.format('HH:mm:ss') === '00:00:00') {\n // if both dates are midnight, assume user wants that full day\n opts.end.endOf('day');\n } else {\n throw 'Start and end dates are exactly the same day and time.';\n }\n }\n\n opts.start = roundToNearestMinute(opts.start);\n opts.end = roundToNearestMinute(opts.end, true);\n opts.timeFrame = 'custom';\n } else {\n opts.start = '';\n opts.end = '';\n }\n validateFrequency(opts.frequency);\n\n opts.entitlementToken = opts.entitlementToken || '57494d5ed7ad44af85bc59a51dd87c90';\n\n return opts;\n}\n\nfunction createDateChecker(moment) {\n return function checkDate(date, name) {\n if (date instanceof moment === false) {\n throw name + ' is not a Moment.js date object. It also needs a timezone explicitly set using the Moment Timezone plugin. Downloads and documentation here: http://momentjs.com/timezone/';\n return false;\n }\n if (date.tz() === undefined) {\n throw name + ' needs a timezone explicitly set using the Moment Timezone plugin. Downloads and documentation here: http://momentjs.com/timezone/';\n return false;\n }\n return true;\n };\n}\n\nfunction createMinuteRounder(moment) {\n return function roundToNearestMinute(date) {\n var roundUp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var roundToNearest = 60000; // 1 minutes\n if (roundUp) {\n return moment(Math.ceil(date / roundToNearest) * roundToNearest);\n }\n return moment(Math.floor(date / roundToNearest) * roundToNearest);\n };\n}\n\nfunction addSource(opts) {\n return function (data) {\n data.forEach(function (d) {\n d.source = {\n entitlementToken: opts.entitlementToken\n };\n });\n return data;\n };\n}\n\n// NOTE: this.moment is set in the entry script\n\nfunction log(data) {\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'json';\n\n var fmt = format.toLowerCase();\n var output = '';\n\n console.log(this);\n\n if (fmt === 'raw') {\n output = JSON.stringify(data);\n } else if (fmt === 'csv') {\n console.log(arrayToCSV(data.data, this.moment));\n } else {\n output = JSON.stringify(data.data);\n }\n console.log(output);\n return output;\n}\n\nfunction arrayToCSV(data, moment) {\n var newArr = data.map(function (d, i) {\n d[0] = moment.tz(d[0], 'America/New_York').format('DD-MM-YY HH:mm:ss');\n return d.join(\",\");\n });\n newArr.unshift('date,value');\n return newArr.join(\"\\n\");\n}\n\n/*\nTODO: check moment-timezone and jQuery are present\n*/\n\nvar hstri = function hstri(opts) {\n return hstri$2(opts, {\n moment: moment,\n ajax: $.ajax\n });\n};\nhstri.moment = moment;\nhstri.log = log;\n\nreturn hstri;\n\n})));\n//# sourceMappingURL=hstri.js.map\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tif ( typeof props.top === \"number\" ) {\n\t\t\t\tprops.top += \"px\";\n\t\t\t}\n\t\t\tif ( typeof props.left === \"number\" ) {\n\t\t\t\tprops.left += \"px\";\n\t\t\t}\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t} );\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( true ) {\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n\t\treturn jQuery;\n\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n Highcharts JS v8.1.0 (2020-05-05)\n\n Annotations module\n\n (c) 2009-2019 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(c){\"object\"===typeof module&&module.exports?(c[\"default\"]=c,module.exports=c): true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(56)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(p){c(p);c.Highcharts=p;return c}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):c(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(c){function p(c,a,m,t){c.hasOwnProperty(a)||(c[a]=t.apply(null,m))}c=c?c._modules:{};p(c,\"annotations/eventEmitterMixin.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"]],function(c,a){var k=a.addEvent,t=a.fireEvent,\nf=a.inArray,d=a.objectEach,B=a.pick,r=a.removeEvent;return{addEvents:function(){var b=this,g=function(g){k(g,\"mousedown\",function(e){b.onMouseDown(e)})};g(this.graphic.element);(b.labels||[]).forEach(function(b){b.options.useHTML&&b.graphic.text&&g(b.graphic.text.element)});d(b.options.events,function(g,e){var h=function(h){\"click\"===e&&b.cancelClick||g.call(b,b.chart.pointer.normalize(h),b.target)};if(-1===f(e,b.nonDOMEvents||[]))b.graphic.on(e,h);else k(b,e,h)});if(b.options.draggable&&(k(b,\"drag\",\nb.onDrag),!b.graphic.renderer.styledMode)){var a={cursor:{x:\"ew-resize\",y:\"ns-resize\",xy:\"move\"}[b.options.draggable]};b.graphic.css(a);(b.labels||[]).forEach(function(b){b.options.useHTML&&b.graphic.text&&b.graphic.text.css(a)})}b.isUpdating||t(b,\"add\")},removeDocEvents:function(){this.removeDrag&&(this.removeDrag=this.removeDrag());this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())},onMouseDown:function(b){var g=this,d=g.chart.pointer;b.preventDefault&&b.preventDefault();if(2!==b.button){b=\nd.normalize(b);var a=b.chartX;var e=b.chartY;g.cancelClick=!1;g.chart.hasDraggedAnnotation=!0;g.removeDrag=k(c.doc,\"mousemove\",function(b){g.hasDragged=!0;b=d.normalize(b);b.prevChartX=a;b.prevChartY=e;t(g,\"drag\",b);a=b.chartX;e=b.chartY});g.removeMouseUp=k(c.doc,\"mouseup\",function(b){g.cancelClick=g.hasDragged;g.hasDragged=!1;g.chart.hasDraggedAnnotation=!1;t(B(g.target,g),\"afterUpdate\");g.onMouseUp(b)})}},onMouseUp:function(b){var g=this.chart;b=this.target||this;var d=g.options.annotations;g=g.annotations.indexOf(b);\nthis.removeDocEvents();d[g]=b.options},onDrag:function(b){if(this.chart.isInsidePlot(b.chartX-this.chart.plotLeft,b.chartY-this.chart.plotTop)){var g=this.mouseMoveToTranslation(b);\"x\"===this.options.draggable&&(g.y=0);\"y\"===this.options.draggable&&(g.x=0);this.points.length?this.translate(g.x,g.y):(this.shapes.forEach(function(b){b.translate(g.x,g.y)}),this.labels.forEach(function(b){b.translate(g.x,g.y)}));this.redraw(!1)}},mouseMoveToRadians:function(b,g,d){var a=b.prevChartY-d,e=b.prevChartX-\ng;d=b.chartY-d;b=b.chartX-g;this.chart.inverted&&(g=e,e=a,a=g,g=b,b=d,d=g);return Math.atan2(d,b)-Math.atan2(a,e)},mouseMoveToTranslation:function(b){var g=b.chartX-b.prevChartX;b=b.chartY-b.prevChartY;if(this.chart.inverted){var d=b;b=g;g=d}return{x:g,y:b}},mouseMoveToScale:function(b,g,d){g=(b.chartX-g||1)/(b.prevChartX-g||1);b=(b.chartY-d||1)/(b.prevChartY-d||1);this.chart.inverted&&(d=b,b=g,g=d);return{x:g,y:b}},destroy:function(){this.removeDocEvents();r(this);this.hcEvents=null}}});p(c,\"annotations/ControlPoint.js\",\n[c[\"parts/Utilities.js\"],c[\"annotations/eventEmitterMixin.js\"]],function(c,a){var k=c.merge,t=c.pick;return function(){function f(d,f,c,b){this.addEvents=a.addEvents;this.graphic=void 0;this.mouseMoveToRadians=a.mouseMoveToRadians;this.mouseMoveToScale=a.mouseMoveToScale;this.mouseMoveToTranslation=a.mouseMoveToTranslation;this.onDrag=a.onDrag;this.onMouseDown=a.onMouseDown;this.onMouseUp=a.onMouseUp;this.removeDocEvents=a.removeDocEvents;this.nonDOMEvents=[\"drag\"];this.chart=d;this.target=f;this.options=\nc;this.index=t(c.index,b)}f.prototype.setVisibility=function(d){this.graphic.attr(\"visibility\",d?\"visible\":\"hidden\");this.options.visible=d};f.prototype.render=function(){var d=this.chart,a=this.options;this.graphic=d.renderer.symbol(a.symbol,0,0,a.width,a.height).add(d.controlPointsGroup).css(a.style);this.setVisibility(a.visible);this.addEvents()};f.prototype.redraw=function(d){this.graphic[d?\"animate\":\"attr\"](this.options.positioner.call(this,this.target))};f.prototype.destroy=function(){a.destroy.call(this);\nthis.graphic&&(this.graphic=this.graphic.destroy());this.options=this.target=this.chart=null};f.prototype.update=function(d){var a=this.chart,f=this.target,b=this.index;d=k(!0,this.options,d);this.destroy();this.constructor(a,f,d,b);this.render(a.controlPointsGroup);this.redraw()};return f}()});p(c,\"annotations/MockPoint.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"]],function(c,a){var k=a.defined,t=a.fireEvent;return function(){function a(d,a,f){this.y=this.x=this.plotY=this.plotX=this.isInside=\nvoid 0;this.mock=!0;this.series={visible:!0,chart:d,getPlotBox:c.Series.prototype.getPlotBox};this.target=a||null;this.options=f;this.applyOptions(this.getOptions())}a.fromPoint=function(d){return new a(d.series.chart,null,{x:d.x,y:d.y,xAxis:d.series.xAxis,yAxis:d.series.yAxis})};a.pointToPixels=function(d,a){var c=d.series,b=c.chart,g=d.plotX,f=d.plotY;b.inverted&&(d.mock?(g=d.plotY,f=d.plotX):(g=b.plotWidth-d.plotY,f=b.plotHeight-d.plotX));c&&!a&&(d=c.getPlotBox(),g+=d.translateX,f+=d.translateY);\nreturn{x:g,y:f}};a.pointToOptions=function(d){return{x:d.x,y:d.y,xAxis:d.series.xAxis,yAxis:d.series.yAxis}};a.prototype.hasDynamicOptions=function(){return\"function\"===typeof this.options};a.prototype.getOptions=function(){return this.hasDynamicOptions()?this.options(this.target):this.options};a.prototype.applyOptions=function(d){this.command=d.command;this.setAxis(d,\"x\");this.setAxis(d,\"y\");this.refresh()};a.prototype.setAxis=function(d,a){a+=\"Axis\";d=d[a];var f=this.series.chart;this.series[a]=\nd instanceof c.Axis?d:k(d)?f[a][d]||f.get(d):null};a.prototype.toAnchor=function(){var a=[this.plotX,this.plotY,0,0];this.series.chart.inverted&&(a[0]=this.plotY,a[1]=this.plotX);return a};a.prototype.getLabelConfig=function(){return{x:this.x,y:this.y,point:this}};a.prototype.isInsidePlot=function(){var a=this.plotX,c=this.plotY,f=this.series.xAxis,b=this.series.yAxis,g={x:a,y:c,isInsidePlot:!0};f&&(g.isInsidePlot=k(a)&&0<=a&&a<=f.len);b&&(g.isInsidePlot=g.isInsidePlot&&k(c)&&0<=c&&c<=b.len);t(this.series.chart,\n\"afterIsInsidePlot\",g);return g.isInsidePlot};a.prototype.refresh=function(){var a=this.series,c=a.xAxis;a=a.yAxis;var f=this.getOptions();c?(this.x=f.x,this.plotX=c.toPixels(f.x,!0)):(this.x=null,this.plotX=f.x);a?(this.y=f.y,this.plotY=a.toPixels(f.y,!0)):(this.y=null,this.plotY=f.y);this.isInside=this.isInsidePlot()};a.prototype.translate=function(a,f,c,b){this.hasDynamicOptions()||(this.plotX+=c,this.plotY+=b,this.refreshOptions())};a.prototype.scale=function(a,c,f,b){if(!this.hasDynamicOptions()){var g=\nthis.plotY*b;this.plotX=(1-f)*a+this.plotX*f;this.plotY=(1-b)*c+g;this.refreshOptions()}};a.prototype.rotate=function(a,f,c){if(!this.hasDynamicOptions()){var b=Math.cos(c);c=Math.sin(c);var g=this.plotX,d=this.plotY;g-=a;d-=f;this.plotX=g*b-d*c+a;this.plotY=g*c+d*b+f;this.refreshOptions()}};a.prototype.refreshOptions=function(){var a=this.series,c=a.xAxis;a=a.yAxis;this.x=this.options.x=c?this.options.x=c.toValue(this.plotX,!0):this.plotX;this.y=this.options.y=a?a.toValue(this.plotY,!0):this.plotY};\nreturn a}()});p(c,\"annotations/controllable/controllableMixin.js\",[c[\"parts/Utilities.js\"],c[\"annotations/ControlPoint.js\"],c[\"annotations/MockPoint.js\"],c[\"parts/Tooltip.js\"]],function(c,a,m,t){var f=c.isObject,d=c.isString,k=c.merge,r=c.splat;return{init:function(b,a,c){this.annotation=b;this.chart=b.chart;this.options=a;this.points=[];this.controlPoints=[];this.index=c;this.linkPoints();this.addControlPoints()},attr:function(){this.graphic.attr.apply(this.graphic,arguments)},getPointsOptions:function(){var b=\nthis.options;return b.points||b.point&&r(b.point)},attrsFromOptions:function(b){var a=this.constructor.attrsMap,c={},d,e=this.chart.styledMode;for(d in b){var h=a[d];!h||e&&-1!==[\"fill\",\"stroke\",\"stroke-width\"].indexOf(h)||(c[h]=b[d])}return c},anchor:function(b){var a=b.series.getPlotBox();b=b.mock?b.toAnchor():t.prototype.getAnchor.call({chart:b.series.chart},b);b={x:b[0]+(this.options.x||0),y:b[1]+(this.options.y||0),height:b[2]||0,width:b[3]||0};return{relativePosition:b,absolutePosition:k(b,\n{x:b.x+a.translateX,y:b.y+a.translateY})}},point:function(b,a){if(b&&b.series)return b;a&&null!==a.series||(f(b)?a=new m(this.chart,this,b):d(b)?a=this.chart.get(b)||null:\"function\"===typeof b&&(a=b.call(a,this),a=a.series?a:new m(this.chart,this,b)));return a},linkPoints:function(){var b=this.getPointsOptions(),a=this.points,c=b&&b.length||0,d;for(d=0;d<c;d++){var e=this.point(b[d],a[d]);if(!e){a.length=0;return}e.mock&&e.refresh();a[d]=e}return a},addControlPoints:function(){var b=this.options.controlPoints;\n(b||[]).forEach(function(g,d){g=k(this.options.controlPointOptions,g);g.index||(g.index=d);b[d]=g;this.controlPoints.push(new a(this.chart,this,g))},this)},shouldBeDrawn:function(){return!!this.points.length},render:function(b){this.controlPoints.forEach(function(b){b.render()})},redraw:function(b){this.controlPoints.forEach(function(a){a.redraw(b)})},transform:function(b,a,d,c,e){if(this.chart.inverted){var h=a;a=d;d=h}this.points.forEach(function(h,g){this.transformPoint(b,a,d,c,e,g)},this)},transformPoint:function(b,\na,d,c,e,h){var l=this.points[h];l.mock||(l=this.points[h]=m.fromPoint(l));l[b](a,d,c,e)},translate:function(b,a){this.transform(\"translate\",null,null,b,a)},translatePoint:function(b,a,d){this.transformPoint(\"translate\",null,null,b,a,d)},translateShape:function(b,a){var d=this.annotation.chart,c=this.annotation.userOptions,e=d.annotations.indexOf(this.annotation);d=d.options.annotations[e];this.translatePoint(b,a,0);d[this.collection][this.index].point=this.options.point;c[this.collection][this.index].point=\nthis.options.point},rotate:function(b,a,d){this.transform(\"rotate\",b,a,d)},scale:function(b,a,d,c){this.transform(\"scale\",b,a,d,c)},setControlPointsVisibility:function(b){this.controlPoints.forEach(function(a){a.setVisibility(b)})},destroy:function(){this.graphic&&(this.graphic=this.graphic.destroy());this.tracker&&(this.tracker=this.tracker.destroy());this.controlPoints.forEach(function(b){b.destroy()});this.options=this.controlPoints=this.points=this.chart=null;this.annotation&&(this.annotation=\nnull)},update:function(b){var a=this.annotation;b=k(!0,this.options,b);var d=this.graphic.parentGroup;this.destroy();this.constructor(a,b);this.render(d);this.redraw()}}});p(c,\"annotations/controllable/markerMixin.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"]],function(c,a){var k=a.addEvent,t=a.defined,f=a.merge,d=a.objectEach,B=a.uniqueKey,r={arrow:{tagName:\"marker\",render:!1,id:\"arrow\",refY:5,refX:9,markerWidth:10,markerHeight:10,children:[{tagName:\"path\",d:\"M 0 0 L 10 5 L 0 10 Z\",strokeWidth:0}]},\n\"reverse-arrow\":{tagName:\"marker\",render:!1,id:\"reverse-arrow\",refY:5,refX:1,markerWidth:10,markerHeight:10,children:[{tagName:\"path\",d:\"M 0 5 L 10 0 L 10 10 Z\",strokeWidth:0}]}};c.SVGRenderer.prototype.addMarker=function(b,a){var d={id:b},c={stroke:a.color||\"none\",fill:a.color||\"rgba(0, 0, 0, 0.75)\"};d.children=a.children.map(function(a){return f(c,a)});a=this.definition(f(!0,{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:\"auto\"},a,d));a.id=b;return a};a=function(a){return function(b){this.attr(a,\n\"url(#\"+b+\")\")}};a={markerEndSetter:a(\"marker-end\"),markerStartSetter:a(\"marker-start\"),setItemMarkers:function(a){var b=a.options,d=a.chart,c=d.options.defs,e=b.fill,h=t(e)&&\"none\"!==e?e:b.stroke;[\"markerStart\",\"markerEnd\"].forEach(function(e){var l=b[e],g;if(l){for(g in c){var v=c[g];if(l===v.id&&\"marker\"===v.tagName){var n=v;break}}n&&(l=a[e]=d.renderer.addMarker((b.id||B())+\"-\"+n.id,f(n,{color:h})),a.attr(e,l.attr(\"id\")))}})}};k(c.Chart,\"afterGetContainer\",function(){this.options.defs=f(r,this.options.defs||\n{});d(this.options.defs,function(a){\"marker\"===a.tagName&&!1!==a.render&&this.renderer.addMarker(a.id,a)},this)});return a});p(c,\"annotations/controllable/ControllablePath.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/markerMixin.js\"]],function(c,a,m,t){var f=a.extend;a=a.merge;var d=\"rgba(192,192,192,\"+(c.svg?.0001:.002)+\")\";c=function(a,d,b){this.init(a,d,b);this.collection=\"shapes\"};c.attrsMap={dashStyle:\"dashstyle\",\nstrokeWidth:\"stroke-width\",stroke:\"stroke\",fill:\"fill\",zIndex:\"zIndex\"};a(!0,c.prototype,m,{type:\"path\",setMarkers:t.setItemMarkers,toD:function(){var a=this.options.d;if(a)return\"function\"===typeof a?a.call(this):a;a=this.points;var d=a.length,b=d,c=a[0],f=b&&this.anchor(c).absolutePosition,x=0,e=[];if(f)for(e.push([\"M\",f.x,f.y]);++x<d&&b;)c=a[x],b=c.command||\"L\",f=this.anchor(c).absolutePosition,\"M\"===b?e.push([b,f.x,f.y]):\"L\"===b?e.push([b,f.x,f.y]):\"Z\"===b&&e.push([b]),b=c.series.visible;return b?\nthis.chart.renderer.crispLine(e,this.graphic.strokeWidth()):null},shouldBeDrawn:function(){return m.shouldBeDrawn.call(this)||!!this.options.d},render:function(a){var c=this.options,b=this.attrsFromOptions(c);this.graphic=this.annotation.chart.renderer.path([[\"M\",0,0]]).attr(b).add(a);c.className&&this.graphic.addClass(c.className);this.tracker=this.annotation.chart.renderer.path([[\"M\",0,0]]).addClass(\"highcharts-tracker-line\").attr({zIndex:2}).add(a);this.annotation.chart.styledMode||this.tracker.attr({\"stroke-linejoin\":\"round\",\nstroke:d,fill:d,\"stroke-width\":this.graphic.strokeWidth()+2*c.snap});m.render.call(this);f(this.graphic,{markerStartSetter:t.markerStartSetter,markerEndSetter:t.markerEndSetter});this.setMarkers(this)},redraw:function(a){var d=this.toD(),b=a?\"animate\":\"attr\";d?(this.graphic[b]({d:d}),this.tracker[b]({d:d})):(this.graphic.attr({d:\"M 0 -9000000000\"}),this.tracker.attr({d:\"M 0 -9000000000\"}));this.graphic.placed=this.tracker.placed=!!d;m.redraw.call(this,a)}});return c});p(c,\"annotations/controllable/ControllableRect.js\",\n[c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllablePath.js\"]],function(c,a,m){c=c.merge;var k=function(a,d,c){this.init(a,d,c);this.collection=\"shapes\"};k.attrsMap=c(m.attrsMap,{width:\"width\",height:\"height\"});c(!0,k.prototype,a,{type:\"rect\",translate:a.translateShape,render:function(c){var d=this.attrsFromOptions(this.options);this.graphic=this.annotation.chart.renderer.rect(0,-9E9,0,0).attr(d).add(c);a.render.call(this)},redraw:function(c){var d=\nthis.anchor(this.points[0]).absolutePosition;if(d)this.graphic[c?\"animate\":\"attr\"]({x:d.x,y:d.y,width:this.options.width,height:this.options.height});else this.attr({x:0,y:-9E9});this.graphic.placed=!!d;a.redraw.call(this,c)}});return k});p(c,\"annotations/controllable/ControllableCircle.js\",[c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllablePath.js\"]],function(c,a,m){c=c.merge;var k=function(a,c,k){this.init(a,c,k);this.collection=\"shapes\"};\nk.attrsMap=c(m.attrsMap,{r:\"r\"});c(!0,k.prototype,a,{type:\"circle\",translate:a.translateShape,render:function(c){var d=this.attrsFromOptions(this.options);this.graphic=this.annotation.chart.renderer.circle(0,-9E9,0).attr(d).add(c);a.render.call(this)},redraw:function(c){var d=this.anchor(this.points[0]).absolutePosition;if(d)this.graphic[c?\"animate\":\"attr\"]({x:d.x,y:d.y,r:this.options.r});else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!d;a.redraw.call(this,c)},setRadius:function(a){this.options.r=\na}});return k});p(c,\"annotations/controllable/ControllableLabel.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/MockPoint.js\"],c[\"parts/Tooltip.js\"]],function(c,a,m,t,f){var d=a.extend,k=a.format,r=a.isNumber,b=a.merge,g=a.pick,p=function(a,b,c){this.init(a,b,c);this.collection=\"labels\"};p.shapesWithoutBackground=[\"connector\"];p.alignedPosition=function(a,b){var e=a.align,c=a.verticalAlign,d=(b.x||0)+(a.x||0),f=(b.y||0)+(a.y||0),\ng,n;\"right\"===e?g=1:\"center\"===e&&(g=2);g&&(d+=(b.width-(a.width||0))/g);\"bottom\"===c?n=1:\"middle\"===c&&(n=2);n&&(f+=(b.height-(a.height||0))/n);return{x:Math.round(d),y:Math.round(f)}};p.justifiedOptions=function(a,b,c,d){var e=c.align,h=c.verticalAlign,l=b.box?0:b.padding||0,n=b.getBBox();b={align:e,verticalAlign:h,x:c.x,y:c.y,width:b.width,height:b.height};c=d.x-a.plotLeft;var u=d.y-a.plotTop;d=c+l;0>d&&(\"right\"===e?b.align=\"left\":b.x=-d);d=c+n.width-l;d>a.plotWidth&&(\"left\"===e?b.align=\"right\":\nb.x=a.plotWidth-d);d=u+l;0>d&&(\"bottom\"===h?b.verticalAlign=\"top\":b.y=-d);d=u+n.height-l;d>a.plotHeight&&(\"top\"===h?b.verticalAlign=\"bottom\":b.y=a.plotHeight-d);return b};p.attrsMap={backgroundColor:\"fill\",borderColor:\"stroke\",borderWidth:\"stroke-width\",zIndex:\"zIndex\",borderRadius:\"r\",padding:\"padding\"};b(!0,p.prototype,m,{translatePoint:function(a,b){m.translatePoint.call(this,a,b,0)},translate:function(a,b){var c=this.annotation.chart,e=this.annotation.userOptions,d=c.annotations.indexOf(this.annotation);\nd=c.options.annotations[d];c.inverted&&(c=a,a=b,b=c);this.options.x+=a;this.options.y+=b;d[this.collection][this.index].x=this.options.x;d[this.collection][this.index].y=this.options.y;e[this.collection][this.index].x=this.options.x;e[this.collection][this.index].y=this.options.y},render:function(a){var b=this.options,c=this.attrsFromOptions(b),d=b.style;this.graphic=this.annotation.chart.renderer.label(\"\",0,-9999,b.shape,null,null,b.useHTML,null,\"annotation-label\").attr(c).add(a);this.annotation.chart.styledMode||\n(\"contrast\"===d.color&&(d.color=this.annotation.chart.renderer.getContrast(-1<p.shapesWithoutBackground.indexOf(b.shape)?\"#FFFFFF\":b.backgroundColor)),this.graphic.css(b.style).shadow(b.shadow));b.className&&this.graphic.addClass(b.className);this.graphic.labelrank=b.labelrank;m.render.call(this)},redraw:function(a){var b=this.options,c=this.text||b.format||b.text,d=this.graphic,f=this.points[0];d.attr({text:c?k(c,f.getLabelConfig(),this.annotation.chart):b.formatter.call(f,this)});b=this.anchor(f);\n(c=this.position(b))?(d.alignAttr=c,c.anchorX=b.absolutePosition.x,c.anchorY=b.absolutePosition.y,d[a?\"animate\":\"attr\"](c)):d.attr({x:0,y:-9999});d.placed=!!c;m.redraw.call(this,a)},anchor:function(){var a=m.anchor.apply(this,arguments),b=this.options.x||0,c=this.options.y||0;a.absolutePosition.x-=b;a.absolutePosition.y-=c;a.relativePosition.x-=b;a.relativePosition.y-=c;return a},position:function(a){var b=this.graphic,c=this.annotation.chart,l=this.points[0],q=this.options,k=a.absolutePosition,v=\na.relativePosition;if(a=l.series.visible&&t.prototype.isInsidePlot.call(l)){if(q.distance)var n=f.prototype.getPosition.call({chart:c,distance:g(q.distance,16)},b.width,b.height,{plotX:v.x,plotY:v.y,negative:l.negative,ttBelow:l.ttBelow,h:v.height||v.width});else q.positioner?n=q.positioner.call(this):(l={x:k.x,y:k.y,width:0,height:0},n=p.alignedPosition(d(q,{width:b.width,height:b.height}),l),\"justify\"===this.options.overflow&&(n=p.alignedPosition(p.justifiedOptions(c,b,q,n),l)));q.crop&&(q=n.x-\nc.plotLeft,l=n.y-c.plotTop,a=c.isInsidePlot(q,l)&&c.isInsidePlot(q+b.width,l+b.height))}return a?n:null}});c.SVGRenderer.prototype.symbols.connector=function(a,b,c,d,f){var e=f&&f.anchorX;f=f&&f.anchorY;var h=c/2;if(r(e)&&r(f)){var n=[[\"M\",e,f]];var u=b-f;0>u&&(u=-d-u);u<c&&(h=e<a+c/2?u:c-u);f>b+d?n.push([\"L\",a+h,b+d]):f<b?n.push([\"L\",a+h,b]):e<a?n.push([\"L\",a,b+d/2]):e>a+c&&n.push([\"L\",a+c,b+d/2])}return n||[]};return p});p(c,\"annotations/controllable/ControllableImage.js\",[c[\"parts/Utilities.js\"],\nc[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllableLabel.js\"]],function(c,a,m){c=c.merge;var k=function(a,c,k){this.init(a,c,k);this.collection=\"shapes\"};k.attrsMap={width:\"width\",height:\"height\",zIndex:\"zIndex\"};c(!0,k.prototype,a,{type:\"image\",translate:a.translateShape,render:function(c){var d=this.attrsFromOptions(this.options),f=this.options;this.graphic=this.annotation.chart.renderer.image(f.src,0,-9E9,f.width,f.height).attr(d).add(c);this.graphic.width=\nf.width;this.graphic.height=f.height;a.render.call(this)},redraw:function(c){var d=this.anchor(this.points[0]);if(d=m.prototype.position.call(this,d))this.graphic[c?\"animate\":\"attr\"]({x:d.x,y:d.y});else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!d;a.redraw.call(this,c)}});return k});p(c,\"annotations/annotations.src.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllableRect.js\"],c[\"annotations/controllable/ControllableCircle.js\"],\nc[\"annotations/controllable/ControllablePath.js\"],c[\"annotations/controllable/ControllableImage.js\"],c[\"annotations/controllable/ControllableLabel.js\"],c[\"annotations/eventEmitterMixin.js\"],c[\"annotations/MockPoint.js\"],c[\"annotations/ControlPoint.js\"]],function(c,a,m,t,f,d,p,r,b,g,z){var k=a.addEvent,e=a.defined,h=a.destroyObjectProperties,l=a.erase,q=a.extend,y=a.find,v=a.fireEvent,n=a.merge,u=a.pick,C=a.splat;a=a.wrap;var A=c.Chart.prototype,w=c.Annotation=function(a,b){this.chart=a;this.points=\n[];this.controlPoints=[];this.coll=\"annotations\";this.labels=[];this.shapes=[];this.options=n(this.defaultOptions,b);this.userOptions=b;b=this.getLabelsAndShapesOptions(this.options,b);this.options.labels=b.labels;this.options.shapes=b.shapes;this.init(a,this.options)};n(!0,w.prototype,m,b,{nonDOMEvents:[\"add\",\"afterUpdate\",\"drag\",\"remove\"],defaultOptions:{visible:!0,draggable:\"xy\",labelOptions:{align:\"center\",allowOverlap:!1,backgroundColor:\"rgba(0, 0, 0, 0.75)\",borderColor:\"black\",borderRadius:3,\nborderWidth:1,className:\"\",crop:!1,formatter:function(){return e(this.y)?this.y:\"Annotation label\"},overflow:\"justify\",padding:5,shadow:!1,shape:\"callout\",style:{fontSize:\"11px\",fontWeight:\"normal\",color:\"contrast\"},useHTML:!1,verticalAlign:\"bottom\",x:0,y:-16},shapeOptions:{stroke:\"rgba(0, 0, 0, 0.75)\",strokeWidth:1,fill:\"rgba(0, 0, 0, 0.75)\",r:0,snap:2},controlPointOptions:{symbol:\"circle\",width:10,height:10,style:{stroke:\"black\",\"stroke-width\":2,fill:\"white\"},visible:!1,events:{}},events:{},zIndex:6},\ninit:function(){this.linkPoints();this.addControlPoints();this.addShapes();this.addLabels();this.setLabelCollector()},getLabelsAndShapesOptions:function(a,b){var c={};[\"labels\",\"shapes\"].forEach(function(d){a[d]&&(c[d]=C(b[d]).map(function(b,c){return n(a[d][c],b)}))});return c},addShapes:function(){(this.options.shapes||[]).forEach(function(a,b){a=this.initShape(a,b);n(!0,this.options.shapes[b],a.options)},this)},addLabels:function(){(this.options.labels||[]).forEach(function(a,b){a=this.initLabel(a,\nb);n(!0,this.options.labels[b],a.options)},this)},addClipPaths:function(){this.setClipAxes();this.clipXAxis&&this.clipYAxis&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))},setClipAxes:function(){var a=this.chart.xAxis,b=this.chart.yAxis,c=(this.options.labels||[]).concat(this.options.shapes||[]).reduce(function(c,d){return[a[d&&d.point&&d.point.xAxis]||c[0],b[d&&d.point&&d.point.yAxis]||c[1]]},[]);this.clipXAxis=c[0];this.clipYAxis=c[1]},getClipBox:function(){if(this.clipXAxis&&\nthis.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}},setLabelCollector:function(){var a=this;a.labelCollector=function(){return a.labels.reduce(function(a,b){b.options.allowOverlap||a.push(b.graphic);return a},[])};a.chart.labelCollectors.push(a.labelCollector)},setOptions:function(a){this.options=n(this.defaultOptions,a)},redraw:function(a){this.linkPoints();this.graphic||this.render();this.clipRect&&this.clipRect.animate(this.getClipBox());\nthis.redrawItems(this.shapes,a);this.redrawItems(this.labels,a);m.redraw.call(this,a)},redrawItems:function(a,b){for(var c=a.length;c--;)this.redrawItem(a[c],b)},renderItems:function(a){for(var b=a.length;b--;)this.renderItem(a[b])},render:function(){var a=this.chart.renderer;this.graphic=a.g(\"annotation\").attr({zIndex:this.options.zIndex,visibility:this.options.visible?\"visible\":\"hidden\"}).add();this.shapesGroup=a.g(\"annotation-shapes\").add(this.graphic).clip(this.chart.plotBoxClip);this.labelsGroup=\na.g(\"annotation-labels\").attr({translateX:0,translateY:0}).add(this.graphic);this.addClipPaths();this.clipRect&&this.graphic.clip(this.clipRect);this.renderItems(this.shapes);this.renderItems(this.labels);this.addEvents();m.render.call(this)},setVisibility:function(a){var b=this.options;a=u(a,!b.visible);this.graphic.attr(\"visibility\",a?\"visible\":\"hidden\");a||this.setControlPointsVisibility(!1);b.visible=a},setControlPointsVisibility:function(a){var b=function(b){b.setControlPointsVisibility(a)};\nm.setControlPointsVisibility.call(this,a);this.shapes.forEach(b);this.labels.forEach(b)},destroy:function(){var a=this.chart,c=function(a){a.destroy()};this.labels.forEach(c);this.shapes.forEach(c);this.clipYAxis=this.clipXAxis=null;l(a.labelCollectors,this.labelCollector);b.destroy.call(this);m.destroy.call(this);h(this,a)},remove:function(){return this.chart.removeAnnotation(this)},update:function(a,b){var c=this.chart,d=this.getLabelsAndShapesOptions(this.userOptions,a),e=c.annotations.indexOf(this);\na=n(!0,this.userOptions,a);a.labels=d.labels;a.shapes=d.shapes;this.destroy();this.constructor(c,a);c.options.annotations[e]=a;this.isUpdating=!0;u(b,!0)&&c.redraw();v(this,\"afterUpdate\");this.isUpdating=!1},initShape:function(a,b){a=n(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},a);b=new w.shapesMap[a.type](this,a,b);b.itemType=\"shape\";this.shapes.push(b);return b},initLabel:function(a,b){a=n(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},\na);b=new r(this,a,b);b.itemType=\"label\";this.labels.push(b);return b},redrawItem:function(a,b){a.linkPoints();a.shouldBeDrawn()?(a.graphic||this.renderItem(a),a.redraw(u(b,!0)&&a.graphic.placed),a.points.length&&this.adjustVisibility(a)):this.destroyItem(a)},adjustVisibility:function(a){var b=!1,c=a.graphic;a.points.forEach(function(a){!1!==a.series.visible&&!1!==a.visible&&(b=!0)});b?\"hidden\"===c.visibility&&c.show():c.hide()},destroyItem:function(a){l(this[a.itemType+\"s\"],a);a.destroy()},renderItem:function(a){a.render(\"label\"===\na.itemType?this.labelsGroup:this.shapesGroup)}});w.shapesMap={rect:t,circle:f,path:d,image:p};w.types={};w.MockPoint=g;w.ControlPoint=z;c.extendAnnotation=function(a,b,c,d){b=b||w;n(!0,a.prototype,b.prototype,c);a.prototype.defaultOptions=n(a.prototype.defaultOptions,d||{})};q(A,{initAnnotation:function(a){a=new (w.types[a.type]||w)(this,a);this.annotations.push(a);return a},addAnnotation:function(a,b){a=this.initAnnotation(a);this.options.annotations.push(a.options);u(b,!0)&&a.redraw();return a},\nremoveAnnotation:function(a){var b=this.annotations,c=\"annotations\"===a.coll?a:y(b,function(b){return b.options.id===a});c&&(v(c,\"remove\"),l(this.options.annotations,c.options),l(b,c),c.destroy())},drawAnnotations:function(){this.plotBoxClip.attr(this.plotBox);this.annotations.forEach(function(a){a.redraw()})}});A.collectionsWithUpdate.push(\"annotations\");A.collectionsWithInit.annotations=[A.addAnnotation];A.callbacks.push(function(a){a.annotations=[];a.options.annotations||(a.options.annotations=\n[]);a.plotBoxClip=this.renderer.clipRect(this.plotBox);a.controlPointsGroup=a.renderer.g(\"control-points\").attr({zIndex:99}).clip(a.plotBoxClip).add();a.options.annotations.forEach(function(b,c){b=a.initAnnotation(b);a.options.annotations[c]=b.options});a.drawAnnotations();k(a,\"redraw\",a.drawAnnotations);k(a,\"destroy\",function(){a.plotBoxClip.destroy();a.controlPointsGroup.destroy()})});a(c.Pointer.prototype,\"onContainerMouseDown\",function(a){this.chart.hasDraggedAnnotation||a.apply(this,Array.prototype.slice.call(arguments,\n1))})});p(c,\"mixins/navigation.js\",[],function(){return{initUpdate:function(c){c.navigation||(c.navigation={updates:[],update:function(a,c){this.updates.forEach(function(k){k.update.call(k.context,a,c)})}})},addUpdate:function(c,a){a.navigation||this.initUpdate(a);a.navigation.updates.push({update:c,context:a})}}});p(c,\"annotations/navigationBindings.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"mixins/navigation.js\"]],function(c,a,m){function k(a){var b=a.prototype.defaultOptions.events&&\na.prototype.defaultOptions.events.click;e(!0,a.prototype.defaultOptions.events,{click:function(a){var c=this,d=c.chart.navigationBindings,e=d.activeAnnotation;b&&b.click.call(c,a);e!==c?(d.deselectAnnotation(),d.activeAnnotation=c,c.setControlPointsVisibility(!0),r(d,\"showPopup\",{annotation:c,formType:\"annotation-toolbar\",options:d.annotationToFields(c),onSubmit:function(a){var b={};\"remove\"===a.actionType?(d.activeAnnotation=!1,d.chart.removeAnnotation(c)):(d.fieldsToOptions(a.fields,b),d.deselectAnnotation(),\na=b.typeOptions,\"measure\"===c.options.type&&(a.crosshairY.enabled=0!==a.crosshairY.strokeWidth,a.crosshairX.enabled=0!==a.crosshairX.strokeWidth),c.update(b))}})):(d.deselectAnnotation(),r(d,\"closePopup\"));a.activeAnnotation=!0}})}var f=a.addEvent,d=a.attr,p=a.format,r=a.fireEvent,b=a.isArray,g=a.isFunction,z=a.isNumber,x=a.isObject,e=a.merge,h=a.objectEach,l=a.pick,q=c.doc,y=c.win,v=function(){function a(a,b){this.selectedButton=this.boundClassNames=void 0;this.chart=a;this.options=b;this.eventsToUnbind=\n[];this.container=q.getElementsByClassName(this.options.bindingsClassName||\"\")}a.prototype.initEvents=function(){var a=this,b=a.chart,c=a.container,d=a.options;a.boundClassNames={};h(d.bindings||{},function(b){a.boundClassNames[b.className]=b});[].forEach.call(c,function(b){a.eventsToUnbind.push(f(b,\"click\",function(c){var d=a.getButtonEvents(b,c);d&&a.bindingsButtonClick(d.button,d.events,c)}))});h(d.events||{},function(b,c){g(b)&&a.eventsToUnbind.push(f(a,c,b))});a.eventsToUnbind.push(f(b.container,\n\"click\",function(c){!b.cancelClick&&b.isInsidePlot(c.chartX-b.plotLeft,c.chartY-b.plotTop)&&a.bindingsChartClick(this,c)}));a.eventsToUnbind.push(f(b.container,\"mousemove\",function(b){a.bindingsContainerMouseMove(this,b)}))};a.prototype.initUpdate=function(){var a=this;m.addUpdate(function(b){a.update(b)},this.chart)};a.prototype.bindingsButtonClick=function(a,b,c){var d=this.chart;this.selectedButtonElement&&(r(this,\"deselectButton\",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&\n\"annotations\"===this.currentUserDetails.coll&&d.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1));this.selectedButton=b;this.selectedButtonElement=a;r(this,\"selectButton\",{button:a});b.init&&b.init.call(this,a,c);(b.start||b.steps)&&d.renderer.boxWrapper.addClass(\"highcharts-draw-mode\")};a.prototype.bindingsChartClick=function(a,b){a=this.chart;var c=this.selectedButton;a=a.renderer.boxWrapper;var d;if(d=this.activeAnnotation&&!b.activeAnnotation&&b.target.parentNode){a:{d=\nb.target;var e=y.Element.prototype,h=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,f=null;if(e.closest)f=e.closest.call(d,\".highcharts-popup\");else{do{if(h.call(d,\".highcharts-popup\"))break a;d=d.parentElement||d.parentNode}while(null!==d&&1===d.nodeType)}d=f}d=!d}d&&(r(this,\"closePopup\"),this.deselectAnnotation());c&&c.start&&(this.nextEvent?(this.nextEvent(b,this.currentUserDetails),this.steps&&(this.stepIndex++,c.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=c.steps[this.stepIndex]:\n(r(this,\"deselectButton\",{button:this.selectedButtonElement}),a.removeClass(\"highcharts-draw-mode\"),c.end&&c.end.call(this,b,this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1,this.selectedButton=null))):(this.currentUserDetails=c.start.call(this,b),c.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=c.steps[this.stepIndex]):(r(this,\"deselectButton\",{button:this.selectedButtonElement}),a.removeClass(\"highcharts-draw-mode\"),this.steps=!1,this.selectedButton=null,\nc.end&&c.end.call(this,b,this.currentUserDetails))))};a.prototype.bindingsContainerMouseMove=function(a,b){this.mouseMoveEvent&&this.mouseMoveEvent(b,this.currentUserDetails)};a.prototype.fieldsToOptions=function(a,b){h(a,function(a,c){var d=parseFloat(a),e=c.split(\".\"),h=b,f=e.length-1;!z(d)||a.match(/px/g)||c.match(/format/g)||(a=d);\"\"!==a&&\"undefined\"!==a&&e.forEach(function(b,c){var d=l(e[c+1],\"\");f===c?h[b]=a:(h[b]||(h[b]=d.match(/\\d/g)?[]:{}),h=h[b])})});return b};a.prototype.deselectAnnotation=\nfunction(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)};a.prototype.annotationToFields=function(c){function d(a,e,f,l){if(f&&-1===v.indexOf(e)&&(0<=(f.indexOf&&f.indexOf(e))||f[e]||!0===f))if(b(a))l[e]=[],a.forEach(function(a,b){x(a)?(l[e][b]={},h(a,function(a,c){d(a,c,n[e],l[e][b])})):d(a,0,n[e],l[e])});else if(x(a)){var u={};b(l)?(l.push(u),u[e]={},u=u[e]):l[e]=u;h(a,function(a,b){d(a,b,0===e?f:n[e],u)})}else\"format\"===e?l[e]=[p(a,c.labels[0].points[0]).toString(),\n\"text\"]:b(l)?l.push([a,g(a)]):l[e]=[a,g(a)]}var e=c.options,f=a.annotationsEditable,n=f.nestedOptions,g=this.utils.getFieldType,u=l(e.type,e.shapes&&e.shapes[0]&&e.shapes[0].type,e.labels&&e.labels[0]&&e.labels[0].itemType,\"label\"),v=a.annotationsNonEditable[e.langKey]||[],q={langKey:e.langKey,type:u};h(e,function(a,b){\"typeOptions\"===b?(q[b]={},h(e[b],function(a,c){d(a,c,n,q[b],!0)})):d(a,b,f[u],q)});return q};a.prototype.getClickedClassNames=function(a,b){var c=b.target;b=[];for(var e;c&&((e=d(c,\n\"class\"))&&(b=b.concat(e.split(\" \").map(function(a){return[a,c]}))),c=c.parentNode,c!==a););return b};a.prototype.getButtonEvents=function(a,b){var c=this,d;this.getClickedClassNames(a,b).forEach(function(a){c.boundClassNames[a[0]]&&!d&&(d={events:c.boundClassNames[a[0]],button:a[1]})});return d};a.prototype.update=function(a){this.options=e(!0,this.options,a);this.removeEvents();this.initEvents()};a.prototype.removeEvents=function(){this.eventsToUnbind.forEach(function(a){a()})};a.prototype.destroy=\nfunction(){this.removeEvents()};a.annotationsEditable={nestedOptions:{labelOptions:[\"style\",\"format\",\"backgroundColor\"],labels:[\"style\"],label:[\"style\"],style:[\"fontSize\",\"color\"],background:[\"fill\",\"strokeWidth\",\"stroke\"],innerBackground:[\"fill\",\"strokeWidth\",\"stroke\"],outerBackground:[\"fill\",\"strokeWidth\",\"stroke\"],shapeOptions:[\"fill\",\"strokeWidth\",\"stroke\"],shapes:[\"fill\",\"strokeWidth\",\"stroke\"],line:[\"strokeWidth\",\"stroke\"],backgroundColors:[!0],connector:[\"fill\",\"strokeWidth\",\"stroke\"],crosshairX:[\"strokeWidth\",\n\"stroke\"],crosshairY:[\"strokeWidth\",\"stroke\"]},circle:[\"shapes\"],verticalLine:[],label:[\"labelOptions\"],measure:[\"background\",\"crosshairY\",\"crosshairX\"],fibonacci:[],tunnel:[\"background\",\"line\",\"height\"],pitchfork:[\"innerBackground\",\"outerBackground\"],rect:[\"shapes\"],crookedLine:[],basicAnnotation:[]};a.annotationsNonEditable={rectangle:[\"crosshairX\",\"crosshairY\",\"label\"]};return a}();v.prototype.utils={updateRectSize:function(a,b){var c=b.chart,d=b.options.typeOptions,e=c.pointer.getCoordinates(a);\na=e.xAxis[0].value-d.point.x;d=d.point.y-e.yAxis[0].value;b.update({typeOptions:{background:{width:c.inverted?d:a,height:c.inverted?a:d}}})},getFieldType:function(a){return{string:\"text\",number:\"number\",\"boolean\":\"checkbox\"}[typeof a]}};c.Chart.prototype.initNavigationBindings=function(){var a=this.options;a&&a.navigation&&a.navigation.bindings&&(this.navigationBindings=new v(this,a.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())};f(c.Chart,\"load\",function(){this.initNavigationBindings()});\nf(c.Chart,\"destroy\",function(){this.navigationBindings&&this.navigationBindings.destroy()});f(v,\"deselectButton\",function(){this.selectedButtonElement=null});f(c.Annotation,\"remove\",function(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()});c.Annotation&&(k(c.Annotation),h(c.Annotation.types,function(a){k(a)}));c.setOptions({lang:{navigation:{popup:{simpleShapes:\"Simple shapes\",lines:\"Lines\",circle:\"Circle\",rectangle:\"Rectangle\",label:\"Label\",shapeOptions:\"Shape options\",\ntypeOptions:\"Details\",fill:\"Fill\",format:\"Text\",strokeWidth:\"Line width\",stroke:\"Line color\",title:\"Title\",name:\"Name\",labelOptions:\"Label options\",labels:\"Labels\",backgroundColor:\"Background color\",backgroundColors:\"Background colors\",borderColor:\"Border color\",borderRadius:\"Border radius\",borderWidth:\"Border width\",style:\"Style\",padding:\"Padding\",fontSize:\"Font size\",color:\"Color\",height:\"Height\",shapes:\"Shape options\"}}},navigation:{bindingsClassName:\"highcharts-bindings-container\",bindings:{circleAnnotation:{className:\"highcharts-circle-annotation\",\nstart:function(a){a=this.chart.pointer.getCoordinates(a);var b=this.chart.options.navigation;return this.chart.addAnnotation(e({langKey:\"circle\",type:\"basicAnnotation\",shapes:[{type:\"circle\",point:{xAxis:0,yAxis:0,x:a.xAxis[0].value,y:a.yAxis[0].value},r:5}]},b.annotationsOptions,b.bindings.circleAnnotation.annotationsOptions))},steps:[function(a,b){var c=b.options.shapes[0].point,d=this.chart.xAxis[0].toPixels(c.x);c=this.chart.yAxis[0].toPixels(c.y);var e=this.chart.inverted;b.update({shapes:[{r:Math.max(Math.sqrt(Math.pow(e?\nc-a.chartX:d-a.chartX,2)+Math.pow(e?d-a.chartY:c-a.chartY,2)),5)}]})}]},rectangleAnnotation:{className:\"highcharts-rectangle-annotation\",start:function(a){var b=this.chart.pointer.getCoordinates(a);a=this.chart.options.navigation;var c=b.xAxis[0].value;b=b.yAxis[0].value;return this.chart.addAnnotation(e({langKey:\"rectangle\",type:\"basicAnnotation\",shapes:[{type:\"path\",points:[{xAxis:0,yAxis:0,x:c,y:b},{xAxis:0,yAxis:0,x:c,y:b},{xAxis:0,yAxis:0,x:c,y:b},{xAxis:0,yAxis:0,x:c,y:b}]}]},a.annotationsOptions,\na.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(a,b){var c=b.options.shapes[0].points,d=this.chart.pointer.getCoordinates(a);a=d.xAxis[0].value;d=d.yAxis[0].value;c[1].x=a;c[2].x=a;c[2].y=d;c[3].y=d;b.update({shapes:[{points:c}]})}]},labelAnnotation:{className:\"highcharts-label-annotation\",start:function(a){a=this.chart.pointer.getCoordinates(a);var b=this.chart.options.navigation;return this.chart.addAnnotation(e({langKey:\"label\",type:\"basicAnnotation\",labelOptions:{format:\"{y:.2f}\"},\nlabels:[{point:{xAxis:0,yAxis:0,x:a.xAxis[0].value,y:a.yAxis[0].value},overflow:\"none\",crop:!0}]},b.annotationsOptions,b.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{}}});return v});p(c,\"annotations/popup.js\",[c[\"parts/Globals.js\"],c[\"annotations/navigationBindings.js\"],c[\"parts/Utilities.js\"]],function(c,a,m){var k=m.addEvent,f=m.createElement,d=m.defined,p=m.isArray,r=m.isObject,b=m.isString,g=m.objectEach,z=m.pick;m=m.wrap;var x=/\\d/g;m(c.Pointer.prototype,\"onContainerMouseDown\",\nfunction(a,c){var d=c.target&&c.target.className;b(d)&&0<=d.indexOf(\"highcharts-popup-field\")||a.apply(this,Array.prototype.slice.call(arguments,1))});c.Popup=function(a,b){this.init(a,b)};c.Popup.prototype={init:function(a,b){this.container=f(\"div\",{className:\"highcharts-popup\"},null,a);this.lang=this.getLangpack();this.iconsURL=b;this.addCloseBtn()},addCloseBtn:function(){var a=this;var b=f(\"div\",{className:\"highcharts-popup-close\"},null,this.container);b.style[\"background-image\"]=\"url(\"+this.iconsURL+\n\"close.svg)\";[\"click\",\"touchstart\"].forEach(function(c){k(b,c,function(){a.closePopup()})})},addColsContainer:function(a){var b=f(\"div\",{className:\"highcharts-popup-lhs-col\"},null,a);a=f(\"div\",{className:\"highcharts-popup-rhs-col\"},null,a);f(\"div\",{className:\"highcharts-popup-rhs-col-wrapper\"},null,a);return{lhsCol:b,rhsCol:a}},addInput:function(a,b,c,d){var e=a.split(\".\");e=e[e.length-1];var h=this.lang;b=\"highcharts-\"+b+\"-\"+e;b.match(x)||f(\"label\",{innerHTML:h[e]||e,htmlFor:b},null,c);f(\"input\",\n{name:b,value:d[0],type:d[1],className:\"highcharts-popup-field\"},null,c).setAttribute(\"highcharts-data-name\",a)},addButton:function(a,b,c,d,g){var e=this,h=this.closePopup,l=this.getFields;var q=f(\"button\",{innerHTML:b},null,a);[\"click\",\"touchstart\"].forEach(function(a){k(q,a,function(){h.call(e);return d(l(g,c))})});return q},getFields:function(a,b){var c=a.querySelectorAll(\"input\"),d=a.querySelectorAll(\"#highcharts-select-series > option:checked\")[0];a=a.querySelectorAll(\"#highcharts-select-volume > option:checked\")[0];\nvar e,f;var h={actionType:b,linkedTo:d&&d.getAttribute(\"value\"),fields:{}};[].forEach.call(c,function(a){f=a.getAttribute(\"highcharts-data-name\");(e=a.getAttribute(\"highcharts-data-series-id\"))?h.seriesId=a.value:f?h.fields[f]=a.value:h.type=a.value});a&&(h.fields[\"params.volumeSeriesID\"]=a.getAttribute(\"value\"));return h},showPopup:function(){var a=this.container,b=a.querySelectorAll(\".highcharts-popup-close\")[0];a.innerHTML=\"\";0<=a.className.indexOf(\"highcharts-annotation-toolbar\")&&(a.classList.remove(\"highcharts-annotation-toolbar\"),\na.removeAttribute(\"style\"));a.appendChild(b);a.style.display=\"block\"},closePopup:function(){this.popup.container.style.display=\"none\"},showForm:function(a,b,c,d){this.popup=b.navigationBindings.popup;this.showPopup();\"indicators\"===a&&this.indicators.addForm.call(this,b,c,d);\"annotation-toolbar\"===a&&this.annotations.addToolbar.call(this,b,c,d);\"annotation-edit\"===a&&this.annotations.addForm.call(this,b,c,d);\"flag\"===a&&this.annotations.addForm.call(this,b,c,d,!0)},getLangpack:function(){return c.getOptions().lang.navigation.popup},\nannotations:{addToolbar:function(a,b,c){var d=this,e=this.lang,h=this.popup.container,g=this.showForm;-1===h.className.indexOf(\"highcharts-annotation-toolbar\")&&(h.className+=\" highcharts-annotation-toolbar\");h.style.top=a.plotTop+10+\"px\";f(\"span\",{innerHTML:z(e[b.langKey]||b.langKey,b.shapes&&b.shapes[0].type)},null,h);var l=this.addButton(h,e.removeButton||\"remove\",\"remove\",c,h);l.className+=\" highcharts-annotation-remove-button\";l.style[\"background-image\"]=\"url(\"+this.iconsURL+\"destroy.svg)\";l=\nthis.addButton(h,e.editButton||\"edit\",\"edit\",function(){g.call(d,\"annotation-edit\",a,b,c)},h);l.className+=\" highcharts-annotation-edit-button\";l.style[\"background-image\"]=\"url(\"+this.iconsURL+\"edit.svg)\"},addForm:function(a,b,c,d){var e=this.popup.container,h=this.lang;f(\"h2\",{innerHTML:h[b.langKey]||b.langKey,className:\"highcharts-popup-main-title\"},null,e);var g=f(\"div\",{className:\"highcharts-popup-lhs-col highcharts-popup-lhs-full\"},null,e);var l=f(\"div\",{className:\"highcharts-popup-bottom-row\"},\nnull,e);this.annotations.addFormFields.call(this,g,a,\"\",b,[],!0);this.addButton(l,d?h.addButton||\"add\":h.saveButton||\"save\",d?\"add\":\"save\",c,e)},addFormFields:function(a,b,c,d,k,v){var e=this,h=this.annotations.addFormFields,l=this.addInput,q=this.lang,m,y;g(d,function(d,f){m=\"\"!==c?c+\".\"+f:f;r(d)&&(!p(d)||p(d)&&r(d[0])?(y=q[f]||f,y.match(x)||k.push([!0,y,a]),h.call(e,a,b,m,d,k,!1)):k.push([e,m,\"annotation\",a,d]))});v&&(k=k.sort(function(a){return a[1].match(/format/g)?-1:1}),k.forEach(function(a){!0===\na[0]?f(\"span\",{className:\"highcharts-annotation-title\",innerHTML:a[1]},null,a[2]):l.apply(a[0],a.splice(1))}))}},indicators:{addForm:function(a,b,c){var d=this.indicators,e=this.lang;this.tabs.init.call(this,a);b=this.popup.container.querySelectorAll(\".highcharts-tab-item-content\");this.addColsContainer(b[0]);d.addIndicatorList.call(this,a,b[0],\"add\");var f=b[0].querySelectorAll(\".highcharts-popup-rhs-col\")[0];this.addButton(f,e.addButton||\"add\",\"add\",c,f);this.addColsContainer(b[1]);d.addIndicatorList.call(this,\na,b[1],\"edit\");f=b[1].querySelectorAll(\".highcharts-popup-rhs-col\")[0];this.addButton(f,e.saveButton||\"save\",\"edit\",c,f);this.addButton(f,e.removeButton||\"remove\",\"remove\",c,f)},addIndicatorList:function(a,b,c){var d=this,e=b.querySelectorAll(\".highcharts-popup-lhs-col\")[0];b=b.querySelectorAll(\".highcharts-popup-rhs-col\")[0];var h=\"edit\"===c,l=h?a.series:a.options.plotOptions,m=this.indicators.addFormFields,p;var r=f(\"ul\",{className:\"highcharts-indicator-list\"},null,e);var t=b.querySelectorAll(\".highcharts-popup-rhs-col-wrapper\")[0];\ng(l,function(b,c){var e=b.options;if(b.params||e&&e.params){var g=d.indicators.getNameType(b,c),q=g.type;p=f(\"li\",{className:\"highcharts-indicator-list\",innerHTML:g.name},null,r);[\"click\",\"touchstart\"].forEach(function(c){k(p,c,function(){m.call(d,a,h?b:l[q],g.type,t);h&&b.options&&f(\"input\",{type:\"hidden\",name:\"highcharts-id-\"+q,value:b.options.id},null,t).setAttribute(\"highcharts-data-series-id\",b.options.id)})})}});0<r.childNodes.length&&r.childNodes[0].click()},getNameType:function(a,b){var d=\na.options,e=c.seriesTypes;e=e[b]&&e[b].prototype.nameBase||b.toUpperCase();d&&d.type&&(b=a.options.type,e=a.name);return{name:e,type:b}},listAllSeries:function(a,b,c,g,k){a=\"highcharts-\"+b+\"-type-\"+a;var e;f(\"label\",{innerHTML:this.lang[b]||b,htmlFor:a},null,g);var h=f(\"select\",{name:a,className:\"highcharts-popup-field\"},null,g);h.setAttribute(\"id\",\"highcharts-select-\"+b);c.series.forEach(function(a){e=a.options;!e.params&&e.id&&\"highcharts-navigator-series\"!==e.id&&f(\"option\",{innerHTML:e.name||\ne.id,value:e.id},null,h)});d(k)&&(h.value=k)},addFormFields:function(a,b,c,d){var e=b.params||b.options.params,g=this.indicators.getNameType;d.innerHTML=\"\";f(\"h3\",{className:\"highcharts-indicator-title\",innerHTML:g(b,c).name},null,d);f(\"input\",{type:\"hidden\",name:\"highcharts-type-\"+c,value:c},null,d);this.indicators.listAllSeries.call(this,c,\"series\",a,d,b.linkedParent&&e.volumeSeriesID);e.volumeSeriesID&&this.indicators.listAllSeries.call(this,c,\"volume\",a,d,b.linkedParent&&b.linkedParent.options.id);\nthis.indicators.addParamInputs.call(this,a,\"params\",e,c,d)},addParamInputs:function(a,b,c,d,f){var e=this,h=this.indicators.addParamInputs,l=this.addInput,k;g(c,function(c,g){k=b+\".\"+g;r(c)?h.call(e,a,k,c,d,f):\"params.volumeSeriesID\"!==k&&l.call(e,k,d,f,[c,\"text\"])})},getAmount:function(){var a=0;g(this.series,function(b){var c=b.options;(b.params||c&&c.params)&&a++});return a}},tabs:{init:function(a){var b=this.tabs;a=this.indicators.getAmount.call(a);var c=b.addMenuItem.call(this,\"add\");b.addMenuItem.call(this,\n\"edit\",a);b.addContentItem.call(this,\"add\");b.addContentItem.call(this,\"edit\");b.switchTabs.call(this,a);b.selectTab.call(this,c,0)},addMenuItem:function(a,b){var c=this.popup.container,d=\"highcharts-tab-item\",e=this.lang;0===b&&(d+=\" highcharts-tab-disabled\");b=f(\"span\",{innerHTML:e[a+\"Button\"]||a,className:d},null,c);b.setAttribute(\"highcharts-data-tab-type\",a);return b},addContentItem:function(){return f(\"div\",{className:\"highcharts-tab-item-content\"},null,this.popup.container)},switchTabs:function(a){var b=\nthis,c;this.popup.container.querySelectorAll(\".highcharts-tab-item\").forEach(function(d,e){c=d.getAttribute(\"highcharts-data-tab-type\");\"edit\"===c&&0===a||[\"click\",\"touchstart\"].forEach(function(a){k(d,a,function(){b.tabs.deselectAll.call(b);b.tabs.selectTab.call(b,this,e)})})})},selectTab:function(a,b){var c=this.popup.container.querySelectorAll(\".highcharts-tab-item-content\");a.className+=\" highcharts-tab-item-active\";c[b].className+=\" highcharts-tab-item-show\"},deselectAll:function(){var a=this.popup.container,\nb=a.querySelectorAll(\".highcharts-tab-item\");a=a.querySelectorAll(\".highcharts-tab-item-content\");var c;for(c=0;c<b.length;c++)b[c].classList.remove(\"highcharts-tab-item-active\"),a[c].classList.remove(\"highcharts-tab-item-show\")}}};k(a,\"showPopup\",function(a){this.popup||(this.popup=new c.Popup(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||\"https://code.highcharts.com/8.1.0/gfx/stock-icons/\"));this.popup.showForm(a.formType,\nthis.chart,a.options,a.onSubmit)});k(a,\"closePopup\",function(){this.popup&&this.popup.closePopup()})});p(c,\"masters/modules/annotations.src.js\",[],function(){})});\n//# sourceMappingURL=annotations.js.map\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n Highcharts JS v8.1.0 (2020-05-05)\n\n Exporting module\n\n (c) 2010-2019 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(g){\"object\"===typeof module&&module.exports?(g[\"default\"]=g,module.exports=g): true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(56)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(n){g(n);g.Highcharts=n;return g}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):g(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(g){function n(e,f,g,l){e.hasOwnProperty(f)||(e[f]=l.apply(null,g))}g=g?g._modules:{};n(g,\"modules/full-screen.src.js\",[g[\"parts/Globals.js\"],g[\"parts/Utilities.js\"]],function(e,f){var g=f.addEvent;f=e.Chart;var l=function(){function e(k){this.chart=\nk;this.isOpen=!1;k=k.renderTo;this.browserProps||(\"function\"===typeof k.requestFullscreen?this.browserProps={fullscreenChange:\"fullscreenchange\",requestFullscreen:\"requestFullscreen\",exitFullscreen:\"exitFullscreen\"}:k.mozRequestFullScreen?this.browserProps={fullscreenChange:\"mozfullscreenchange\",requestFullscreen:\"mozRequestFullScreen\",exitFullscreen:\"mozCancelFullScreen\"}:k.webkitRequestFullScreen?this.browserProps={fullscreenChange:\"webkitfullscreenchange\",requestFullscreen:\"webkitRequestFullScreen\",\nexitFullscreen:\"webkitExitFullscreen\"}:k.msRequestFullscreen&&(this.browserProps={fullscreenChange:\"MSFullscreenChange\",requestFullscreen:\"msRequestFullscreen\",exitFullscreen:\"msExitFullscreen\"}))}e.prototype.close=function(){var k=this.chart;if(this.isOpen&&this.browserProps&&k.container.ownerDocument instanceof Document)k.container.ownerDocument[this.browserProps.exitFullscreen]();this.unbindFullscreenEvent&&this.unbindFullscreenEvent();this.isOpen=!1;this.setButtonText()};e.prototype.open=function(){var k=\nthis,e=k.chart;if(k.browserProps){k.unbindFullscreenEvent=g(e.container.ownerDocument,k.browserProps.fullscreenChange,function(){k.isOpen?(k.isOpen=!1,k.close()):(k.isOpen=!0,k.setButtonText())});var f=e.renderTo[k.browserProps.requestFullscreen]();if(f)f[\"catch\"](function(){alert(\"Full screen is not supported inside a frame.\")});g(e,\"destroy\",k.unbindFullscreenEvent)}};e.prototype.setButtonText=function(){var e,f=this.chart,g=f.exportDivElements,l=f.options.exporting,q=null===(e=null===l||void 0===\nl?void 0:l.buttons)||void 0===e?void 0:e.contextButton.menuItems;e=f.options.lang;(null===l||void 0===l?0:l.menuItemDefinitions)&&(null===e||void 0===e?0:e.exitFullscreen)&&e.viewFullscreen&&q&&g&&g.length&&(g[q.indexOf(\"viewFullscreen\")].innerHTML=this.isOpen?e.exitFullscreen:l.menuItemDefinitions.viewFullscreen.text||e.viewFullscreen)};e.prototype.toggle=function(){this.isOpen?this.close():this.open()};return e}();e.Fullscreen=l;g(f,\"beforeRender\",function(){this.fullscreen=new e.Fullscreen(this)});\nreturn e.Fullscreen});n(g,\"mixins/navigation.js\",[],function(){return{initUpdate:function(e){e.navigation||(e.navigation={updates:[],update:function(e,g){this.updates.forEach(function(f){f.update.call(f.context,e,g)})}})},addUpdate:function(e,f){f.navigation||this.initUpdate(f);f.navigation.updates.push({update:e,context:f})}}});n(g,\"modules/exporting.src.js\",[g[\"parts/Globals.js\"],g[\"parts/Utilities.js\"],g[\"mixins/navigation.js\"]],function(e,f,g){var l=f.addEvent,q=f.css,k=f.createElement,n=f.discardElement,\nw=f.extend,I=f.find,A=f.fireEvent,J=f.isObject,r=f.merge,E=f.objectEach,t=f.pick,K=f.removeEvent,L=f.uniqueKey,v=e.defaultOptions,x=e.doc,B=e.Chart,M=e.isTouchDevice,y=e.win,G=y.navigator.userAgent,F=e.SVGRenderer,H=e.Renderer.prototype.symbols,N=/Edge\\/|Trident\\/|MSIE /.test(G),O=/firefox/i.test(G);w(v.lang,{viewFullscreen:\"View in full screen\",exitFullscreen:\"Exit from full screen\",printChart:\"Print chart\",downloadPNG:\"Download PNG image\",downloadJPEG:\"Download JPEG image\",downloadPDF:\"Download PDF document\",\ndownloadSVG:\"Download SVG vector image\",contextButtonTitle:\"Chart context menu\"});v.navigation||(v.navigation={});r(!0,v.navigation,{buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:\"right\",buttonSpacing:3,height:22,verticalAlign:\"top\",width:24}});r(!0,v.navigation,{menuStyle:{border:\"1px solid #999999\",background:\"#ffffff\",padding:\"5px 0\"},menuItemStyle:{padding:\"0.5em 1em\",color:\"#333333\",background:\"none\",fontSize:M?\"14px\":\"11px\",transition:\"background 250ms, color 250ms\"},\nmenuItemHoverStyle:{background:\"#335cad\",color:\"#ffffff\"},buttonOptions:{symbolFill:\"#666666\",symbolStroke:\"#666666\",symbolStrokeWidth:3,theme:{padding:5}}});v.exporting={type:\"image/png\",url:\"https://export.highcharts.com/\",printMaxWidth:780,scale:2,buttons:{contextButton:{className:\"highcharts-contextbutton\",menuClassName:\"highcharts-contextmenu\",symbol:\"menu\",titleKey:\"contextButtonTitle\",menuItems:\"viewFullscreen printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG\".split(\" \")}},\nmenuItemDefinitions:{viewFullscreen:{textKey:\"viewFullscreen\",onclick:function(){this.fullscreen.toggle()}},printChart:{textKey:\"printChart\",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:\"downloadPNG\",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:\"downloadJPEG\",onclick:function(){this.exportChart({type:\"image/jpeg\"})}},downloadPDF:{textKey:\"downloadPDF\",onclick:function(){this.exportChart({type:\"application/pdf\"})}},downloadSVG:{textKey:\"downloadSVG\",\nonclick:function(){this.exportChart({type:\"image/svg+xml\"})}}}};e.post=function(a,b,c){var d=k(\"form\",r({method:\"post\",action:a,enctype:\"multipart/form-data\"},c),{display:\"none\"},x.body);E(b,function(a,b){k(\"input\",{type:\"hidden\",name:b,value:a},null,d)});d.submit();n(d)};e.isSafari&&e.win.matchMedia(\"print\").addListener(function(a){e.printingChart&&(a.matches?e.printingChart.beforePrint():e.printingChart.afterPrint())});w(B.prototype,{sanitizeSVG:function(a,b){var c=a.indexOf(\"</svg>\")+6,d=a.substr(c);\na=a.substr(0,c);b&&b.exporting&&b.exporting.allowHTML&&d&&(d='<foreignObject x=\"0\" y=\"0\" width=\"'+b.chart.width+'\" height=\"'+b.chart.height+'\"><body xmlns=\"http://www.w3.org/1999/xhtml\">'+d+\"</body></foreignObject>\",a=a.replace(\"</svg>\",d+\"</svg>\"));a=a.replace(/zIndex=\"[^\"]+\"/g,\"\").replace(/symbolName=\"[^\"]+\"/g,\"\").replace(/jQuery[0-9]+=\"[^\"]+\"/g,\"\").replace(/url\\((\"|")(.*?)(\"|");?\\)/g,\"url($2)\").replace(/url\\([^#]+#/g,\"url(#\").replace(/<svg /,'<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" ').replace(/ (|NS[0-9]+:)href=/g,\n\" xlink:href=\").replace(/\\n/,\" \").replace(/(fill|stroke)=\"rgba\\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\\.]+)\\)\"/g,'$1=\"rgb($2)\" $1-opacity=\"$3\"').replace(/ /g,\"\\u00a0\").replace(/­/g,\"\\u00ad\");this.ieSanitizeSVG&&(a=this.ieSanitizeSVG(a));return a},getChartHTML:function(){this.styledMode&&this.inlineStyles();return this.container.innerHTML},getSVG:function(a){var b,c=r(this.options,a);c.plotOptions=r(this.userOptions.plotOptions,a&&a.plotOptions);c.time=r(this.userOptions.time,a&&a.time);var d=k(\"div\",\nnull,{position:\"absolute\",top:\"-9999em\",width:this.chartWidth+\"px\",height:this.chartHeight+\"px\"},x.body);var f=this.renderTo.style.width;var g=this.renderTo.style.height;f=c.exporting.sourceWidth||c.chart.width||/px$/.test(f)&&parseInt(f,10)||(c.isGantt?800:600);g=c.exporting.sourceHeight||c.chart.height||/px$/.test(g)&&parseInt(g,10)||400;w(c.chart,{animation:!1,renderTo:d,forExport:!0,renderer:\"SVGRenderer\",width:f,height:g});c.exporting.enabled=!1;delete c.data;c.series=[];this.series.forEach(function(a){b=\nr(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});b.isInternal||c.series.push(b)});this.axes.forEach(function(a){a.userOptions.internalKey||(a.userOptions.internalKey=L())});var u=new e.Chart(c,this.callback);a&&[\"xAxis\",\"yAxis\",\"series\"].forEach(function(b){var d={};a[b]&&(d[b]=a[b],u.update(d))});this.axes.forEach(function(a){var b=I(u.axes,function(b){return b.options.internalKey===a.userOptions.internalKey}),d=a.getExtremes(),c=d.userMin;d=d.userMax;b&&(\"undefined\"!==\ntypeof c&&c!==b.min||\"undefined\"!==typeof d&&d!==b.max)&&b.setExtremes(c,d,!0,!1)});f=u.getChartHTML();A(this,\"getSVG\",{chartCopy:u});f=this.sanitizeSVG(f,c);c=null;u.destroy();n(d);return f},getSVGForExport:function(a,b){var c=this.options.exporting;return this.getSVG(r({chart:{borderRadius:0}},c.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||c.sourceWidth,sourceHeight:a&&a.sourceHeight||c.sourceHeight}}))},getFilename:function(){var a=this.userOptions.title&&this.userOptions.title.text,\nb=this.options.exporting.filename;if(b)return b.replace(/\\//g,\"-\");\"string\"===typeof a&&(b=a.toLowerCase().replace(/<\\/?[^>]+(>|$)/g,\"\").replace(/[\\s_]+/g,\"-\").replace(/[^a-z0-9\\-]/g,\"\").replace(/^[\\-]+/g,\"\").replace(/[\\-]+/g,\"-\").substr(0,24).replace(/[\\-]+$/g,\"\"));if(!b||5>b.length)b=\"chart\";return b},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=r(this.options.exporting,a);e.post(a.url,{filename:a.filename?a.filename.replace(/\\//g,\"-\"):this.getFilename(),type:a.type,width:a.width||0,\nscale:a.scale,svg:b},a.formAttributes)},moveContainers:function(a){(this.fixedDiv?[this.fixedDiv,this.scrollingContainer]:[this.container]).forEach(function(b){a.appendChild(b)})},beforePrint:function(){var a=x.body,b=this.options.exporting.printMaxWidth,c={childNodes:a.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0;this.pointer.reset(null,0);A(this,\"beforePrint\");b&&this.chartWidth>b&&(c.resetParams=[this.options.chart.width,void 0,!1],this.setSize(b,void 0,!1));[].forEach.call(c.childNodes,\nfunction(a,b){1===a.nodeType&&(c.origDisplay[b]=a.style.display,a.style.display=\"none\")});this.moveContainers(a);this.printReverseInfo=c},afterPrint:function(){if(this.printReverseInfo){var a=this.printReverseInfo.childNodes,b=this.printReverseInfo.origDisplay,c=this.printReverseInfo.resetParams;this.moveContainers(this.renderTo);[].forEach.call(a,function(a,c){1===a.nodeType&&(a.style.display=b[c]||\"\")});this.isPrinting=!1;c&&this.setSize.apply(this,c);delete this.printReverseInfo;delete e.printingChart;\nA(this,\"afterPrint\")}},print:function(){var a=this;a.isPrinting||(e.printingChart=a,e.isSafari||a.beforePrint(),setTimeout(function(){y.focus();y.print();e.isSafari||setTimeout(function(){a.afterPrint()},1E3)},1))},contextMenu:function(a,b,c,d,e,g,u){var h=this,D=h.options.navigation,r=h.chartWidth,z=h.chartHeight,p=\"cache-\"+a,m=h[p],C=Math.max(e,g);if(!m){h.exportContextMenu=h[p]=m=k(\"div\",{className:a},{position:\"absolute\",zIndex:1E3,padding:C+\"px\",pointerEvents:\"auto\"},h.fixedDiv||h.container);\nvar n=k(\"ul\",{className:\"highcharts-menu\"},{listStyle:\"none\",margin:0,padding:0},m);h.styledMode||q(n,w({MozBoxShadow:\"3px 3px 10px #888\",WebkitBoxShadow:\"3px 3px 10px #888\",boxShadow:\"3px 3px 10px #888\"},D.menuStyle));m.hideMenu=function(){q(m,{display:\"none\"});u&&u.setState(0);h.openMenu=!1;q(h.renderTo,{overflow:\"hidden\"});f.clearTimeout(m.hideTimer);A(h,\"exportMenuHidden\")};h.exportEvents.push(l(m,\"mouseleave\",function(){m.hideTimer=y.setTimeout(m.hideMenu,500)}),l(m,\"mouseenter\",function(){f.clearTimeout(m.hideTimer)}),\nl(x,\"mouseup\",function(b){h.pointer.inClass(b.target,a)||m.hideMenu()}),l(m,\"click\",function(){h.openMenu&&m.hideMenu()}));b.forEach(function(a){\"string\"===typeof a&&(a=h.options.exporting.menuItemDefinitions[a]);if(J(a,!0)){if(a.separator)var b=k(\"hr\",null,null,n);else b=k(\"li\",{className:\"highcharts-menu-item\",onclick:function(b){b&&b.stopPropagation();m.hideMenu();a.onclick&&a.onclick.apply(h,arguments)},innerHTML:a.text||h.options.lang[a.textKey]},null,n),h.styledMode||(b.onmouseover=function(){q(this,\nD.menuItemHoverStyle)},b.onmouseout=function(){q(this,D.menuItemStyle)},q(b,w({cursor:\"pointer\"},D.menuItemStyle)));h.exportDivElements.push(b)}});h.exportDivElements.push(n,m);h.exportMenuWidth=m.offsetWidth;h.exportMenuHeight=m.offsetHeight}b={display:\"block\"};c+h.exportMenuWidth>r?b.right=r-c-e-C+\"px\":b.left=c-C+\"px\";d+g+h.exportMenuHeight>z&&\"top\"!==u.alignOptions.verticalAlign?b.bottom=z-d-C+\"px\":b.top=d+g-C+\"px\";q(m,b);q(h.renderTo,{overflow:\"\"});h.openMenu=!0;A(h,\"exportMenuShown\")},addButton:function(a){var b=\nthis,c=b.renderer,d=r(b.options.navigation.buttonOptions,a),e=d.onclick,f=d.menuItems,g=d.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==d.enabled){var h=d.theme,k=h.states,l=k&&k.hover;k=k&&k.select;var z;b.styledMode||(h.fill=t(h.fill,\"#ffffff\"),h.stroke=t(h.stroke,\"none\"));delete h.states;e?z=function(a){a&&a.stopPropagation();e.call(b,a)}:f&&(z=function(a){a&&a.stopPropagation();b.contextMenu(p.menuClassName,f,p.translateX,\np.translateY,p.width,p.height,p);p.setState(2)});d.text&&d.symbol?h.paddingLeft=t(h.paddingLeft,25):d.text||w(h,{width:d.width,height:d.height,padding:0});b.styledMode||(h[\"stroke-linecap\"]=\"round\",h.fill=t(h.fill,\"#ffffff\"),h.stroke=t(h.stroke,\"none\"));var p=c.button(d.text,0,0,z,h,l,k).addClass(a.className).attr({title:t(b.options.lang[d._titleKey||d.titleKey],\"\")});p.menuClassName=a.menuClassName||\"highcharts-menu-\"+b.btnCount++;if(d.symbol){var m=c.symbol(d.symbol,d.symbolX-g/2,d.symbolY-g/2,\ng,g,{width:g,height:g}).addClass(\"highcharts-button-symbol\").attr({zIndex:1}).add(p);b.styledMode||m.attr({stroke:d.symbolStroke,fill:d.symbolFill,\"stroke-width\":d.symbolStrokeWidth||1})}p.add(b.exportingGroup).align(w(d,{width:p.width,x:t(d.x,b.buttonOffset)}),!0,\"spacingBox\");b.buttonOffset+=(p.width+d.buttonSpacing)*(\"right\"===d.align?-1:1);b.exportSVGElements.push(p,m)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var c=b.exportDivElements,d=b.exportEvents,e;a&&(a.forEach(function(a,\nd){a&&(a.onclick=a.ontouchstart=null,e=\"cache-\"+a.menuClassName,b[e]&&delete b[e],b.exportSVGElements[d]=a.destroy())}),a.length=0);b.exportingGroup&&(b.exportingGroup.destroy(),delete b.exportingGroup);c&&(c.forEach(function(a,d){f.clearTimeout(a.hideTimer);K(a,\"mouseleave\");b.exportDivElements[d]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null;n(a)}),c.length=0);d&&(d.forEach(function(a){a()}),d.length=0)}});F.prototype.inlineToAttributes=\"fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y\".split(\" \");\nF.prototype.inlineBlacklist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/];F.prototype.unstyledElements=[\"clipPath\",\"defs\",\"desc\"];B.prototype.inlineStyles=function(){function a(a){return a.replace(/([A-Z])/g,function(a,b){return\"-\"+b.toLowerCase()})}function b(c){function p(b,f){n=q=!1;if(g){for(t=g.length;t--&&!q;)q=g[t].test(f);n=!q}\"transform\"===f&&\"none\"===b&&(n=!0);for(t=e.length;t--&&!n;)n=e[t].test(f)||\n\"function\"===typeof b;n||w[f]===b&&\"svg\"!==c.nodeName||h[c.nodeName][f]===b||(-1!==d.indexOf(f)?c.setAttribute(a(f),b):m+=a(f)+\":\"+b+\";\")}var m=\"\",n,q,t;if(1===c.nodeType&&-1===f.indexOf(c.nodeName)){var u=y.getComputedStyle(c,null);var w=\"svg\"===c.nodeName?{}:y.getComputedStyle(c.parentNode,null);if(!h[c.nodeName]){k=l.getElementsByTagName(\"svg\")[0];var v=l.createElementNS(c.namespaceURI,c.nodeName);k.appendChild(v);h[c.nodeName]=r(y.getComputedStyle(v,null));\"text\"===c.nodeName&&delete h.text.fill;\nk.removeChild(v)}if(O||N)for(var x in u)p(u[x],x);else E(u,p);m&&(u=c.getAttribute(\"style\"),c.setAttribute(\"style\",(u?u+\";\":\"\")+m));\"svg\"===c.nodeName&&c.setAttribute(\"stroke-width\",\"1px\");\"text\"!==c.nodeName&&[].forEach.call(c.children||c.childNodes,b)}}var c=this.renderer,d=c.inlineToAttributes,e=c.inlineBlacklist,g=c.inlineWhitelist,f=c.unstyledElements,h={},k;c=x.createElement(\"iframe\");q(c,{width:\"1px\",height:\"1px\",visibility:\"hidden\"});x.body.appendChild(c);var l=c.contentWindow.document;l.open();\nl.write('<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');l.close();b(this.container.querySelector(\"svg\"));k.parentNode.removeChild(k)};H.menu=function(a,b,c,d){return[[\"M\",a,b+2.5],[\"L\",a+c,b+2.5],[\"M\",a,b+d/2+.5],[\"L\",a+c,b+d/2+.5],[\"M\",a,b+d-1.5],[\"L\",a+c,b+d-1.5]]};H.menuball=function(a,b,c,d){a=[];d=d/3-2;return a=a.concat(this.circle(c-d,b,d,d),this.circle(c-d,b+d+4,d,d),this.circle(c-d,b+2*(d+4),d,d))};B.prototype.renderExporting=function(){var a=this,b=a.options.exporting,c=b.buttons,d=a.isDirtyExporting||\n!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();d&&!1!==b.enabled&&(a.exportEvents=[],a.exportingGroup=a.exportingGroup||a.renderer.g(\"exporting-group\").attr({zIndex:3}).add(),E(c,function(b){a.addButton(b)}),a.isDirtyExporting=!1);l(a,\"destroy\",a.destroyExport)};l(B,\"init\",function(){var a=this;a.exporting={update:function(b,c){a.isDirtyExporting=!0;r(!0,a.options.exporting,b);t(c,!0)&&a.redraw()}};g.addUpdate(function(b,c){a.isDirtyExporting=!0;r(!0,a.options.navigation,\nb);t(c,!0)&&a.redraw()},a)});B.prototype.callbacks.push(function(a){a.renderExporting();l(a,\"redraw\",a.renderExporting)})});n(g,\"masters/modules/exporting.src.js\",[],function(){})});\n//# sourceMappingURL=exporting.js.map\n\n/***/ }),\n/* 315 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*\n Highstock JS v8.1.0 (2020-05-05)\n\n (c) 2009-2018 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(S,P){\"object\"===typeof module&&module.exports?(P[\"default\"]=P,module.exports=S.document?P(S):P): true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return P(S)}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):(S.Highcharts&&S.Highcharts.error(16,!0),S.Highcharts=P(S))})(\"undefined\"!==typeof window?window:this,function(S){function P(k,g,H,v){k.hasOwnProperty(g)||(k[g]=v.apply(null,H))}var A={};P(A,\"parts/Globals.js\",[],function(){var k=\"undefined\"!==typeof S?S:\"undefined\"!==typeof window?window:{},g=k.document,\nH=k.navigator&&k.navigator.userAgent||\"\",v=g&&g.createElementNS&&!!g.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect,K=/(edge|msie|trident)/i.test(H)&&!k.opera,G=-1!==H.indexOf(\"Firefox\"),N=-1!==H.indexOf(\"Chrome\"),M=G&&4>parseInt(H.split(\"Firefox/\")[1],10);return{product:\"Highcharts\",version:\"8.1.0\",deg2rad:2*Math.PI/360,doc:g,hasBidiBug:M,hasTouch:!!k.TouchEvent,isMS:K,isWebKit:-1!==H.indexOf(\"AppleWebKit\"),isFirefox:G,isChrome:N,isSafari:!N&&-1!==H.indexOf(\"Safari\"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(H),\nSVG_NS:\"http://www.w3.org/2000/svg\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:v,win:k,marginNames:[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],noop:function(){},charts:[],dateFormats:{}}});P(A,\"parts/Utilities.js\",[A[\"parts/Globals.js\"]],function(k){function g(){var b,d=arguments,n={},x=function(b,d){\"object\"!==typeof b&&(b={});T(d,function(n,a){!H(n,!0)||q(n)||t(n)?b[a]=d[a]:b[a]=x(b[a]||{},n)});return b};!0===d[0]&&(n=d[1],d=Array.prototype.slice.call(d,2));var a=d.length;for(b=0;b<\na;b++)n=x(n,d[b]);return n}function H(b,d){return!!b&&\"object\"===typeof b&&(!d||!z(b))}function v(b,d,n){var x;D(d)?f(n)?b.setAttribute(d,n):b&&b.getAttribute&&((x=b.getAttribute(d))||\"class\"!==d||(x=b.getAttribute(d+\"Name\"))):T(d,function(d,n){b.setAttribute(n,d)});return x}function K(){for(var b=arguments,d=b.length,n=0;n<d;n++){var x=b[n];if(\"undefined\"!==typeof x&&null!==x)return x}}function G(b,d){if(!b)return d;var n=b.split(\".\").reverse();if(1===n.length)return d[b];for(b=n.pop();\"undefined\"!==\ntypeof b&&\"undefined\"!==typeof d&&null!==d;)d=d[b],b=n.pop();return d}k.timers=[];var N=k.charts,M=k.doc,y=k.win,I=k.error=function(b,d,n,x){var a=r(b),c=a?\"Highcharts error #\"+b+\": www.highcharts.com/errors/\"+b+\"/\":b.toString(),e=function(){if(d)throw Error(c);y.console&&console.log(c)};if(\"undefined\"!==typeof x){var f=\"\";a&&(c+=\"?\");T(x,function(b,d){f+=\"\\n\"+d+\": \"+b;a&&(c+=encodeURI(d)+\"=\"+encodeURI(b))});c+=f}n?Z(n,\"displayError\",{code:b,message:c,params:x},e):e()},J=function(){function b(b,d,\nn){this.options=d;this.elem=b;this.prop=n}b.prototype.dSetter=function(){var b=this.paths,d=b&&b[0];b=b&&b[1];var n=[],x=this.now||0;if(1!==x&&d&&b)if(d.length===b.length&&1>x)for(var a=0;a<b.length;a++){for(var c=d[a],e=b[a],f=[],m=0;m<e.length;m++){var u=c[m],p=e[m];f[m]=\"number\"===typeof u&&\"number\"===typeof p&&(\"A\"!==e[0]||4!==m&&5!==m)?u+x*(p-u):p}n.push(f)}else n=b;else n=this.toD||[];this.elem.attr(\"d\",n,void 0,!0)};b.prototype.update=function(){var b=this.elem,d=this.prop,n=this.now,x=this.options.step;\nif(this[d+\"Setter\"])this[d+\"Setter\"]();else b.attr?b.element&&b.attr(d,n,null,!0):b.style[d]=n+this.unit;x&&x.call(b,n,this)};b.prototype.run=function(b,d,n){var x=this,a=x.options,c=function(b){return c.stopped?!1:x.step(b)},e=y.requestAnimationFrame||function(b){setTimeout(b,13)},f=function(){for(var b=0;b<k.timers.length;b++)k.timers[b]()||k.timers.splice(b--,1);k.timers.length&&e(f)};b!==d||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=b,this.end=d,this.unit=n,this.now=\nthis.start,this.pos=0,c.elem=this.elem,c.prop=this.prop,c()&&1===k.timers.push(c)&&e(f)):(delete a.curAnim[this.prop],a.complete&&0===Object.keys(a.curAnim).length&&a.complete.call(this.elem))};b.prototype.step=function(b){var d=+new Date,n=this.options,x=this.elem,a=n.complete,c=n.duration,e=n.curAnim;if(x.attr&&!x.element)b=!1;else if(b||d>=c+this.startTime){this.now=this.end;this.pos=1;this.update();var f=e[this.prop]=!0;T(e,function(b){!0!==b&&(f=!1)});f&&a&&a.call(x);b=!1}else this.pos=n.easing((d-\nthis.startTime)/c),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b};b.prototype.initPath=function(b,d,n){function x(b,d){for(;b.length<h;){var n=b[0],x=d[h-b.length];x&&\"M\"===n[0]&&(b[0]=\"C\"===x[0]?[\"C\",n[1],n[2],n[1],n[2],n[1],n[2]]:[\"L\",n[1],n[2]]);b.unshift(n);f&&b.push(b[b.length-1])}}function a(b,d){for(;b.length<h;)if(d=b[b.length/m-1].slice(),\"C\"===d[0]&&(d[1]=d[5],d[2]=d[6]),f){var n=b[b.length/m].slice();b.splice(b.length/2,0,d,n)}else b.push(d)}var c=b.startX,\ne=b.endX;d=d&&d.slice();n=n.slice();var f=b.isArea,m=f?2:1;if(!d)return[n,n];if(c&&e){for(b=0;b<c.length;b++)if(c[b]===e[0]){var u=b;break}else if(c[0]===e[e.length-c.length+b]){u=b;var p=!0;break}else if(c[c.length-1]===e[e.length-c.length+b]){u=c.length-b;break}\"undefined\"===typeof u&&(d=[])}if(d.length&&r(u)){var h=n.length+u*m;p?(x(d,n),a(n,d)):(x(n,d),a(d,n))}return[d,n]};b.prototype.fillSetter=function(){b.prototype.strokeSetter.apply(this,arguments)};b.prototype.strokeSetter=function(){this.elem.attr(this.prop,\nk.color(this.start).tweenTo(k.color(this.end),this.pos),null,!0)};return b}();k.Fx=J;k.merge=g;var E=k.pInt=function(b,d){return parseInt(b,d||10)},D=k.isString=function(b){return\"string\"===typeof b},z=k.isArray=function(b){b=Object.prototype.toString.call(b);return\"[object Array]\"===b||\"[object Array Iterator]\"===b};k.isObject=H;var t=k.isDOMElement=function(b){return H(b)&&\"number\"===typeof b.nodeType},q=k.isClass=function(b){var d=b&&b.constructor;return!(!H(b,!0)||t(b)||!d||!d.name||\"Object\"===\nd.name)},r=k.isNumber=function(b){return\"number\"===typeof b&&!isNaN(b)&&Infinity>b&&-Infinity<b},h=k.erase=function(b,d){for(var n=b.length;n--;)if(b[n]===d){b.splice(n,1);break}},f=k.defined=function(b){return\"undefined\"!==typeof b&&null!==b};k.attr=v;var a=k.splat=function(b){return z(b)?b:[b]},l=k.syncTimeout=function(b,d,n){if(0<d)return setTimeout(b,d,n);b.call(0,n);return-1},e=k.clearTimeout=function(b){f(b)&&clearTimeout(b)},c=k.extend=function(b,d){var n;b||(b={});for(n in d)b[n]=d[n];return b};\nk.pick=K;var m=k.css=function(b,d){k.isMS&&!k.svg&&d&&\"undefined\"!==typeof d.opacity&&(d.filter=\"alpha(opacity=\"+100*d.opacity+\")\");c(b.style,d)},u=k.createElement=function(b,d,n,x,a){b=M.createElement(b);d&&c(b,d);a&&m(b,{padding:\"0\",border:\"none\",margin:\"0\"});n&&m(b,n);x&&x.appendChild(b);return b},L=k.extendClass=function(b,d){var n=function(){};n.prototype=new b;c(n.prototype,d);return n},F=k.pad=function(b,d,n){return Array((d||2)+1-String(b).replace(\"-\",\"\").length).join(n||\"0\")+b},w=k.relativeLength=\nfunction(b,d,n){return/%$/.test(b)?d*parseFloat(b)/100+(n||0):parseFloat(b)},p=k.wrap=function(b,d,n){var x=b[d];b[d]=function(){var b=Array.prototype.slice.call(arguments),d=arguments,a=this;a.proceed=function(){x.apply(a,arguments.length?arguments:d)};b.unshift(x);b=n.apply(this,b);a.proceed=null;return b}},C=k.format=function(b,d,n){var x=\"{\",a=!1,c=[],e=/f$/,f=/\\.([0-9])/,m=k.defaultOptions.lang,u=n&&n.time||k.time;for(n=n&&n.numberFormatter||W;b;){var p=b.indexOf(x);if(-1===p)break;var h=b.slice(0,\np);if(a){h=h.split(\":\");x=G(h.shift()||\"\",d);if(h.length&&\"number\"===typeof x)if(h=h.join(\":\"),e.test(h)){var Q=parseInt((h.match(f)||[\"\",\"-1\"])[1],10);null!==x&&(x=n(x,Q,m.decimalPoint,-1<h.indexOf(\",\")?m.thousandsSep:\"\"))}else x=u.dateFormat(h,x);c.push(x)}else c.push(h);b=b.slice(p+1);x=(a=!a)?\"}\":\"{\"}c.push(b);return c.join(\"\")},O=k.getMagnitude=function(b){return Math.pow(10,Math.floor(Math.log(b)/Math.LN10))},B=k.normalizeTickInterval=function(b,d,n,x,a){var c=b;n=K(n,1);var e=b/n;d||(d=a?[1,\n1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===x&&(1===n?d=d.filter(function(b){return 0===b%1}):.1>=n&&(d=[1/n])));for(x=0;x<d.length&&!(c=d[x],a&&c*n>=b||!a&&e<=(d[x]+(d[x+1]||d[x]))/2);x++);return c=R(c*n,-Math.round(Math.log(.001)/Math.LN10))},d=k.stableSort=function(b,d){var n=b.length,x,a;for(a=0;a<n;a++)b[a].safeI=a;b.sort(function(b,n){x=d(b,n);return 0===x?b.safeI-n.safeI:x});for(a=0;a<n;a++)delete b[a].safeI},b=k.arrayMin=function(b){for(var d=b.length,n=b[0];d--;)b[d]<n&&(n=b[d]);return n},\nn=k.arrayMax=function(b){for(var d=b.length,n=b[0];d--;)b[d]>n&&(n=b[d]);return n},x=k.destroyObjectProperties=function(b,d){T(b,function(n,x){n&&n!==d&&n.destroy&&n.destroy();delete b[x]})},Q=k.discardElement=function(b){var d=k.garbageBin;d||(d=u(\"div\"));b&&d.appendChild(b);d.innerHTML=\"\"},R=k.correctFloat=function(b,d){return parseFloat(b.toPrecision(d||14))},X=k.setAnimation=function(b,d){d.renderer.globalAnimation=K(b,d.options.chart.animation,!0)},U=k.animObject=function(b){return H(b)?g(b):\n{duration:b?500:0}},V=k.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},W=k.numberFormat=function(b,d,n,x){b=+b||0;d=+d;var a=k.defaultOptions.lang,c=(b.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,e=b.toString().split(\"e\");if(-1===d)d=Math.min(c,20);else if(!r(d))d=2;else if(d&&e[1]&&0>e[1]){var f=d+ +e[1];0<=f?(e[0]=(+e[0]).toExponential(f).split(\"e\")[0],d=f):(e[0]=e[0].split(\".\")[0]||0,b=20>d?(e[0]*Math.pow(10,e[1])).toFixed(d):\n0,e[1]=0)}var m=(Math.abs(e[1]?e[0]:b)+Math.pow(10,-Math.max(d,c)-1)).toFixed(d);c=String(E(m));f=3<c.length?c.length%3:0;n=K(n,a.decimalPoint);x=K(x,a.thousandsSep);b=(0>b?\"-\":\"\")+(f?c.substr(0,f)+x:\"\");b+=c.substr(f).replace(/(\\d{3})(?=\\d)/g,\"$1\"+x);d&&(b+=n+m.slice(-d));e[1]&&0!==+b&&(b+=\"e\"+e[1]);return b};Math.easeInOutSine=function(b){return-.5*(Math.cos(Math.PI*b)-1)};var aa=k.getStyle=function(b,d,n){if(\"width\"===d)return d=Math.min(b.offsetWidth,b.scrollWidth),n=b.getBoundingClientRect&&\nb.getBoundingClientRect().width,n<d&&n>=d-1&&(d=Math.floor(n)),Math.max(0,d-k.getStyle(b,\"padding-left\")-k.getStyle(b,\"padding-right\"));if(\"height\"===d)return Math.max(0,Math.min(b.offsetHeight,b.scrollHeight)-k.getStyle(b,\"padding-top\")-k.getStyle(b,\"padding-bottom\"));y.getComputedStyle||I(27,!0);if(b=y.getComputedStyle(b,void 0))b=b.getPropertyValue(d),K(n,\"opacity\"!==d)&&(b=E(b));return b},Y=k.inArray=function(b,d,n){return d.indexOf(b,n)},fa=k.find=Array.prototype.find?function(b,d){return b.find(d)}:\nfunction(b,d){var n,x=b.length;for(n=0;n<x;n++)if(d(b[n],n))return b[n]};k.keys=Object.keys;var ba=k.offset=function(b){var d=M.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,left:0};return{top:b.top+(y.pageYOffset||d.scrollTop)-(d.clientTop||0),left:b.left+(y.pageXOffset||d.scrollLeft)-(d.clientLeft||0)}},ca=k.stop=function(b,d){for(var n=k.timers.length;n--;)k.timers[n].elem!==b||d&&d!==k.timers[n].prop||(k.timers[n].stopped=!0)},T=k.objectEach=function(b,d,n){for(var x in b)Object.hasOwnProperty.call(b,\nx)&&d.call(n||b[x],b[x],x,b)};T({map:\"map\",each:\"forEach\",grep:\"filter\",reduce:\"reduce\",some:\"some\"},function(b,d){k[d]=function(d){return Array.prototype[b].apply(d,[].slice.call(arguments,1))}});var ha=k.addEvent=function(b,d,n,x){void 0===x&&(x={});var a=b.addEventListener||k.addEventListenerPolyfill;var c=\"function\"===typeof b&&b.prototype?b.prototype.protoEvents=b.prototype.protoEvents||{}:b.hcEvents=b.hcEvents||{};k.Point&&b instanceof k.Point&&b.series&&b.series.chart&&(b.series.chart.runTrackerClick=\n!0);a&&a.call(b,d,n,!1);c[d]||(c[d]=[]);c[d].push({fn:n,order:\"number\"===typeof x.order?x.order:Infinity});c[d].sort(function(b,d){return b.order-d.order});return function(){A(b,d,n)}},A=k.removeEvent=function(b,d,n){function x(d,n){var x=b.removeEventListener||k.removeEventListenerPolyfill;x&&x.call(b,d,n,!1)}function a(n){var a;if(b.nodeName){if(d){var c={};c[d]=!0}else c=n;T(c,function(b,d){if(n[d])for(a=n[d].length;a--;)x(d,n[d][a].fn)})}}var c;[\"protoEvents\",\"hcEvents\"].forEach(function(e,f){var m=\n(f=f?b:b.prototype)&&f[e];m&&(d?(c=m[d]||[],n?(m[d]=c.filter(function(b){return n!==b.fn}),x(d,n)):(a(m),m[d]=[])):(a(m),f[e]={}))})},Z=k.fireEvent=function(b,d,n,x){var a;n=n||{};if(M.createEvent&&(b.dispatchEvent||b.fireEvent)){var e=M.createEvent(\"Events\");e.initEvent(d,!0,!0);c(e,n);b.dispatchEvent?b.dispatchEvent(e):b.fireEvent(d,e)}else n.target||c(n,{preventDefault:function(){n.defaultPrevented=!0},target:b,type:d}),function(d,x){void 0===d&&(d=[]);void 0===x&&(x=[]);var c=0,e=0,f=d.length+\nx.length;for(a=0;a<f;a++)!1===(d[c]?x[e]?d[c].order<=x[e].order?d[c++]:x[e++]:d[c++]:x[e++]).fn.call(b,n)&&n.preventDefault()}(b.protoEvents&&b.protoEvents[d],b.hcEvents&&b.hcEvents[d]);x&&!n.defaultPrevented&&x.call(b,n)},ia=k.animate=function(b,d,n){var x,a=\"\",c,e;if(!H(n)){var f=arguments;n={duration:f[2],easing:f[3],complete:f[4]}}r(n.duration)||(n.duration=400);n.easing=\"function\"===typeof n.easing?n.easing:Math[n.easing]||Math.easeInOutSine;n.curAnim=g(d);T(d,function(f,m){ca(b,m);e=new J(b,\nn,m);c=null;\"d\"===m&&z(d.d)?(e.paths=e.initPath(b,b.pathArray,d.d),e.toD=d.d,x=0,c=1):b.attr?x=b.attr(m):(x=parseFloat(aa(b,m))||0,\"opacity\"!==m&&(a=\"px\"));c||(c=f);c&&c.match&&c.match(\"px\")&&(c=c.replace(/px/g,\"\"));e.run(x,c,a)})},ja=k.seriesType=function(b,d,n,x,a){var c=k.getOptions(),e=k.seriesTypes;c.plotOptions[b]=g(c.plotOptions[d],n);e[b]=L(e[d]||function(){},x);e[b].prototype.type=b;a&&(e[b].prototype.pointClass=L(k.Point,a));return e[b]},ea=k.uniqueKey=function(){var b=Math.random().toString(36).substring(2,\n9),d=0;return function(){return\"highcharts-\"+b+\"-\"+d++}}(),P=k.isFunction=function(b){return\"function\"===typeof b};y.jQuery&&(y.jQuery.fn.highcharts=function(){var b=[].slice.call(arguments);if(this[0])return b[0]?(new (k[D(b[0])?b.shift():\"Chart\"])(this[0],b[0],b[1]),this):N[v(this[0],\"data-highcharts-chart\")]});return{Fx:k.Fx,addEvent:ha,animate:ia,animObject:U,arrayMax:n,arrayMin:b,attr:v,clamp:function(b,d,n){return b>d?b<n?b:n:d},clearTimeout:e,correctFloat:R,createElement:u,css:m,defined:f,\ndestroyObjectProperties:x,discardElement:Q,erase:h,error:I,extend:c,extendClass:L,find:fa,fireEvent:Z,format:C,getMagnitude:O,getNestedProperty:G,getStyle:aa,inArray:Y,isArray:z,isClass:q,isDOMElement:t,isFunction:P,isNumber:r,isObject:H,isString:D,merge:g,normalizeTickInterval:B,numberFormat:W,objectEach:T,offset:ba,pad:F,pick:K,pInt:E,relativeLength:w,removeEvent:A,seriesType:ja,setAnimation:X,splat:a,stableSort:d,stop:ca,syncTimeout:l,timeUnits:V,uniqueKey:ea,wrap:p}});P(A,\"parts/Color.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Utilities.js\"]],function(k,g){var H=g.isNumber,v=g.merge,K=g.pInt;g=function(){function g(k){this.parsers=[{regex:/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,parse:function(g){return[K(g[1]),K(g[2]),K(g[3]),parseFloat(g[4],10)]}},{regex:/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,parse:function(g){return[K(g[1]),K(g[2]),K(g[3]),1]}}];this.rgba=[];if(!(this instanceof g))return new g(k);this.init(k)}g.parse=function(k){return new g(k)};\ng.prototype.init=function(k){var v,y;if((this.input=k=g.names[k&&k.toLowerCase?k.toLowerCase():\"\"]||k)&&k.stops)this.stops=k.stops.map(function(y){return new g(y[1])});else{if(k&&k.charAt&&\"#\"===k.charAt()){var I=k.length;k=parseInt(k.substr(1),16);7===I?v=[(k&16711680)>>16,(k&65280)>>8,k&255,1]:4===I&&(v=[(k&3840)>>4|(k&3840)>>8,(k&240)>>4|k&240,(k&15)<<4|k&15,1])}if(!v)for(y=this.parsers.length;y--&&!v;){var J=this.parsers[y];(I=J.regex.exec(k))&&(v=J.parse(I))}}this.rgba=v||[]};g.prototype.get=\nfunction(k){var g=this.input,y=this.rgba;if(\"undefined\"!==typeof this.stops){var I=v(g);I.stops=[].concat(I.stops);this.stops.forEach(function(y,g){I.stops[g]=[I.stops[g][0],y.get(k)]})}else I=y&&H(y[0])?\"rgb\"===k||!k&&1===y[3]?\"rgb(\"+y[0]+\",\"+y[1]+\",\"+y[2]+\")\":\"a\"===k?y[3]:\"rgba(\"+y.join(\",\")+\")\":g;return I};g.prototype.brighten=function(k){var g,y=this.rgba;if(this.stops)this.stops.forEach(function(y){y.brighten(k)});else if(H(k)&&0!==k)for(g=0;3>g;g++)y[g]+=K(255*k),0>y[g]&&(y[g]=0),255<y[g]&&\n(y[g]=255);return this};g.prototype.setOpacity=function(g){this.rgba[3]=g;return this};g.prototype.tweenTo=function(g,k){var y=this.rgba,v=g.rgba;v.length&&y&&y.length?(g=1!==v[3]||1!==y[3],k=(g?\"rgba(\":\"rgb(\")+Math.round(v[0]+(y[0]-v[0])*(1-k))+\",\"+Math.round(v[1]+(y[1]-v[1])*(1-k))+\",\"+Math.round(v[2]+(y[2]-v[2])*(1-k))+(g?\",\"+(v[3]+(y[3]-v[3])*(1-k)):\"\")+\")\"):k=g.input||\"none\";return k};g.names={white:\"#ffffff\",black:\"#000000\"};return g}();k.Color=g;k.color=g.parse;return k.Color});P(A,\"parts/SVGElement.js\",\n[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){var v=g.deg2rad,K=g.doc,G=g.hasTouch,N=g.isFirefox,M=g.noop,y=g.svg,I=g.SVG_NS,J=g.win,E=H.animate,D=H.animObject,z=H.attr,t=H.createElement,q=H.css,r=H.defined,h=H.erase,f=H.extend,a=H.fireEvent,l=H.inArray,e=H.isArray,c=H.isFunction,m=H.isNumber,u=H.isString,L=H.merge,F=H.objectEach,w=H.pick,p=H.pInt,C=H.stop,O=H.uniqueKey;H=function(){function B(){this.height=this.element=void 0;this.opacity=1;this.renderer=void 0;\nthis.SVG_NS=I;this.symbolCustomAttribs=\"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");this.textProps=\"color cursor direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");this.width=void 0}B.prototype._defaultGetter=function(d){d=w(this[d+\"Value\"],this[d],this.element?this.element.getAttribute(d):null,0);/^[\\-0-9\\.]+$/.test(d)&&(d=parseFloat(d));return d};B.prototype._defaultSetter=function(d,b,n){n.setAttribute(b,\nd)};B.prototype.add=function(d){var b=this.renderer,n=this.element;d&&(this.parentGroup=d);this.parentInverted=d&&d.inverted;\"undefined\"!==typeof this.textStr&&b.buildText(this);this.added=!0;if(!d||d.handleZ||this.zIndex)var x=this.zIndexSetter();x||(d?d.element:b.box).appendChild(n);if(this.onAdd)this.onAdd();return this};B.prototype.addClass=function(d,b){var n=b?\"\":this.attr(\"class\")||\"\";d=(d||\"\").split(/ /g).reduce(function(b,d){-1===n.indexOf(d)&&b.push(d);return b},n?[n]:[]).join(\" \");d!==\nn&&this.attr(\"class\",d);return this};B.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};B.prototype.align=function(d,b,n){var x,a={};var c=this.renderer;var e=c.alignedObjects;var f,m;if(d){if(this.alignOptions=d,this.alignByTranslate=b,!n||u(n))this.alignTo=x=n||\"renderer\",h(e,this),e.push(this),n=void 0}else d=this.alignOptions,b=this.alignByTranslate,x=this.alignTo;n=w(n,c[x],c);x=d.align;c=d.verticalAlign;e=(n.x||0)+(d.x||0);var p=(n.y||0)+(d.y||\n0);\"right\"===x?f=1:\"center\"===x&&(f=2);f&&(e+=(n.width-(d.width||0))/f);a[b?\"translateX\":\"x\"]=Math.round(e);\"bottom\"===c?m=1:\"middle\"===c&&(m=2);m&&(p+=(n.height-(d.height||0))/m);a[b?\"translateY\":\"y\"]=Math.round(p);this[this.placed?\"animate\":\"attr\"](a);this.placed=!0;this.alignAttr=a;return this};B.prototype.alignSetter=function(d){var b={left:\"start\",center:\"middle\",right:\"end\"};b[d]&&(this.alignValue=d,this.element.setAttribute(\"text-anchor\",b[d]))};B.prototype.animate=function(d,b,n){var x=D(w(b,\nthis.renderer.globalAnimation,!0));w(K.hidden,K.msHidden,K.webkitHidden,!1)&&(x.duration=0);0!==x.duration?(n&&(x.complete=n),E(this,d,x)):(this.attr(d,void 0,n),F(d,function(b,d){x.step&&x.step.call(this,b,{prop:d,pos:1})},this));return this};B.prototype.applyTextOutline=function(d){var b=this.element,n;-1!==d.indexOf(\"contrast\")&&(d=d.replace(/contrast/g,this.renderer.getContrast(b.style.fill)));d=d.split(\" \");var x=d[d.length-1];if((n=d[0])&&\"none\"!==n&&g.svg){this.fakeTS=!0;d=[].slice.call(b.getElementsByTagName(\"tspan\"));\nthis.ySetter=this.xSetter;n=n.replace(/(^[\\d\\.]+)(.*?)$/g,function(b,d,n){return 2*d+n});this.removeTextOutline(d);var a=b.textContent?/^[\\u0591-\\u065F\\u066A-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]/.test(b.textContent):!1;var c=b.firstChild;d.forEach(function(d,e){0===e&&(d.setAttribute(\"x\",b.getAttribute(\"x\")),e=b.getAttribute(\"y\"),d.setAttribute(\"y\",e||0),null===e&&b.setAttribute(\"y\",0));e=d.cloneNode(!0);z(a&&!N?d:e,{\"class\":\"highcharts-text-outline\",fill:x,stroke:x,\"stroke-width\":n,\"stroke-linejoin\":\"round\"});\nb.insertBefore(e,c)});a&&N&&d[0]&&(d=d[0].cloneNode(!0),d.textContent=\" \",b.insertBefore(d,c))}};B.prototype.attr=function(d,b,n,x){var a=this.element,c,e=this,f,m,u=this.symbolCustomAttribs;if(\"string\"===typeof d&&\"undefined\"!==typeof b){var p=d;d={};d[p]=b}\"string\"===typeof d?e=(this[d+\"Getter\"]||this._defaultGetter).call(this,d,a):(F(d,function(b,n){f=!1;x||C(this,n);this.symbolName&&-1!==l(n,u)&&(c||(this.symbolAttr(d),c=!0),f=!0);!this.rotation||\"x\"!==n&&\"y\"!==n||(this.doTransform=!0);f||(m=\nthis[n+\"Setter\"]||this._defaultSetter,m.call(this,b,n,a),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(n)&&this.updateShadows(n,b,m))},this),this.afterSetters());n&&n.call(this);return e};B.prototype.clip=function(d){return this.attr(\"clip-path\",d?\"url(\"+this.renderer.url+\"#\"+d.id+\")\":\"none\")};B.prototype.crisp=function(d,b){b=b||d.strokeWidth||0;var n=Math.round(b)%2/2;d.x=Math.floor(d.x||this.x||0)+n;d.y=Math.floor(d.y||this.y||0)+n;d.width=Math.floor((d.width||\nthis.width||0)-2*n);d.height=Math.floor((d.height||this.height||0)-2*n);r(d.strokeWidth)&&(d.strokeWidth=b);return d};B.prototype.complexColor=function(d,b,n){var x=this.renderer,c,f,m,u,p,h,w,l,C,B,t=[],q;a(this.renderer,\"complexColor\",{args:arguments},function(){d.radialGradient?f=\"radialGradient\":d.linearGradient&&(f=\"linearGradient\");if(f){m=d[f];p=x.gradients;h=d.stops;C=n.radialReference;e(m)&&(d[f]=m={x1:m[0],y1:m[1],x2:m[2],y2:m[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===f&&C&&\n!r(m.gradientUnits)&&(u=m,m=L(m,x.getRadialAttr(C,u),{gradientUnits:\"userSpaceOnUse\"}));F(m,function(b,d){\"id\"!==d&&t.push(d,b)});F(h,function(b){t.push(b)});t=t.join(\",\");if(p[t])B=p[t].attr(\"id\");else{m.id=B=O();var a=p[t]=x.createElement(f).attr(m).add(x.defs);a.radAttr=u;a.stops=[];h.forEach(function(b){0===b[1].indexOf(\"rgba\")?(c=k.parse(b[1]),w=c.get(\"rgb\"),l=c.get(\"a\")):(w=b[1],l=1);b=x.createElement(\"stop\").attr({offset:b[0],\"stop-color\":w,\"stop-opacity\":l}).add(a);a.stops.push(b)})}q=\"url(\"+\nx.url+\"#\"+B+\")\";n.setAttribute(b,q);n.gradient=t;d.toString=function(){return q}}})};B.prototype.css=function(d){var b=this.styles,n={},x=this.element,a=\"\",c=!b,e=[\"textOutline\",\"textOverflow\",\"width\"];d&&d.color&&(d.fill=d.color);b&&F(d,function(d,x){b&&b[x]!==d&&(n[x]=d,c=!0)});if(c){b&&(d=f(b,n));if(d)if(null===d.width||\"auto\"===d.width)delete this.textWidth;else if(\"text\"===x.nodeName.toLowerCase()&&d.width)var m=this.textWidth=p(d.width);this.styles=d;m&&!y&&this.renderer.forExport&&delete d.width;\nif(x.namespaceURI===this.SVG_NS){var u=function(b,d){return\"-\"+d.toLowerCase()};F(d,function(b,d){-1===e.indexOf(d)&&(a+=d.replace(/([A-Z])/g,u)+\":\"+b+\";\")});a&&z(x,\"style\",a)}else q(x,d);this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),d&&d.textOutline&&this.applyTextOutline(d.textOutline))}return this};B.prototype.dashstyleSetter=function(d){var b=this[\"stroke-width\"];\"inherit\"===b&&(b=1);if(d=d&&d.toLowerCase()){var n=d.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\n\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(d=n.length;d--;)n[d]=\"\"+p(n[d])*w(b,NaN);d=n.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",d)}};B.prototype.destroy=function(){var d=this,b=d.element||{},n=d.renderer,x=n.isSVG&&\"SPAN\"===b.nodeName&&d.parentGroup||void 0,a=b.ownerSVGElement;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=\nnull;C(d);if(d.clipPath&&a){var c=d.clipPath;[].forEach.call(a.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(b){-1<b.getAttribute(\"clip-path\").indexOf(c.element.id)&&b.removeAttribute(\"clip-path\")});d.clipPath=c.destroy()}if(d.stops){for(a=0;a<d.stops.length;a++)d.stops[a].destroy();d.stops.length=0;d.stops=void 0}d.safeRemoveChild(b);for(n.styledMode||d.destroyShadows();x&&x.div&&0===x.div.childNodes.length;)b=x.parentGroup,d.safeRemoveChild(x.div),delete x.div,x=b;d.alignTo&&h(n.alignedObjects,\nd);F(d,function(b,n){d[n]&&d[n].parentGroup===d&&d[n].destroy&&d[n].destroy();delete d[n]})};B.prototype.destroyShadows=function(){(this.shadows||[]).forEach(function(d){this.safeRemoveChild(d)},this);this.shadows=void 0};B.prototype.destroyTextPath=function(d,b){var n=d.getElementsByTagName(\"text\")[0];if(n){if(n.removeAttribute(\"dx\"),n.removeAttribute(\"dy\"),b.element.setAttribute(\"id\",\"\"),this.textPathWrapper&&n.getElementsByTagName(\"textPath\").length){for(d=this.textPathWrapper.element.childNodes;d.length;)n.appendChild(d[0]);\nn.removeChild(this.textPathWrapper.element)}}else if(d.getAttribute(\"dx\")||d.getAttribute(\"dy\"))d.removeAttribute(\"dx\"),d.removeAttribute(\"dy\");this.textPathWrapper&&(this.textPathWrapper=this.textPathWrapper.destroy())};B.prototype.dSetter=function(d,b,n){e(d)&&(\"string\"===typeof d[0]&&(d=this.renderer.pathToSegments(d)),this.pathArray=d,d=d.reduce(function(b,d,n){return d&&d.join?(n?b+\" \":\"\")+d.join(\" \"):(d||\"\").toString()},\"\"));/(NaN| {2}|^$)/.test(d)&&(d=\"M 0 0\");this[b]!==d&&(n.setAttribute(b,\nd),this[b]=d)};B.prototype.fadeOut=function(d){var b=this;b.animate({opacity:0},{duration:w(d,150),complete:function(){b.attr({y:-9999}).hide()}})};B.prototype.fillSetter=function(d,b,n){\"string\"===typeof d?n.setAttribute(b,d):d&&this.complexColor(d,b,n)};B.prototype.getBBox=function(d,b){var n,x=this.renderer,a=this.element,e=this.styles,m=this.textStr,u=x.cache,p=x.cacheKeys,h=a.namespaceURI===this.SVG_NS;b=w(b,this.rotation,0);var l=x.styledMode?a&&B.prototype.getStyle.call(a,\"font-size\"):e&&e.fontSize;\nif(r(m)){var C=m.toString();-1===C.indexOf(\"<\")&&(C=C.replace(/[0-9]/g,\"0\"));C+=[\"\",b,l,this.textWidth,e&&e.textOverflow,e&&e.fontWeight].join()}C&&!d&&(n=u[C]);if(!n){if(h||x.forExport){try{var F=this.fakeTS&&function(b){[].forEach.call(a.querySelectorAll(\".highcharts-text-outline\"),function(d){d.style.display=b})};c(F)&&F(\"none\");n=a.getBBox?f({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight};c(F)&&F(\"\")}catch(ba){\"\"}if(!n||0>n.width)n={width:0,height:0}}else n=this.htmlGetBBox();x.isSVG&&\n(d=n.width,x=n.height,h&&(n.height=x={\"11px,17\":14,\"13px,20\":16}[e&&e.fontSize+\",\"+Math.round(x)]||x),b&&(e=b*v,n.width=Math.abs(x*Math.sin(e))+Math.abs(d*Math.cos(e)),n.height=Math.abs(x*Math.cos(e))+Math.abs(d*Math.sin(e))));if(C&&0<n.height){for(;250<p.length;)delete u[p.shift()];u[C]||p.push(C);u[C]=n}}return n};B.prototype.getStyle=function(d){return J.getComputedStyle(this.element||this,\"\").getPropertyValue(d)};B.prototype.hasClass=function(d){return-1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(d)};\nB.prototype.hide=function(d){d?this.attr({y:-9999}):this.attr({visibility:\"hidden\"});return this};B.prototype.htmlGetBBox=function(){return{height:0,width:0,x:0,y:0}};B.prototype.init=function(d,b){this.element=\"span\"===b?t(b):K.createElementNS(this.SVG_NS,b);this.renderer=d;a(this,\"afterInit\")};B.prototype.invert=function(d){this.inverted=d;this.updateTransform();return this};B.prototype.on=function(d,b){var n,x,a=this.element,c;G&&\"click\"===d?(a.ontouchstart=function(b){n=b.touches[0].clientX;x=\nb.touches[0].clientY},a.ontouchend=function(d){n&&4<=Math.sqrt(Math.pow(n-d.changedTouches[0].clientX,2)+Math.pow(x-d.changedTouches[0].clientY,2))||b.call(a,d);c=!0;d.preventDefault()},a.onclick=function(d){c||b.call(a,d)}):a[\"on\"+d]=b;return this};B.prototype.opacitySetter=function(d,b,n){this[b]=d;n.setAttribute(b,d)};B.prototype.removeClass=function(d){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(u(d)?new RegExp(\" ?\"+d+\" ?\"):d,\"\"))};B.prototype.removeTextOutline=function(d){for(var b=\nd.length,n;b--;)n=d[b],\"highcharts-text-outline\"===n.getAttribute(\"class\")&&h(d,this.element.removeChild(n))};B.prototype.safeRemoveChild=function(d){var b=d.parentNode;b&&b.removeChild(d)};B.prototype.setRadialReference=function(d){var b=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=d;b&&b.radAttr&&b.animate(this.renderer.getRadialAttr(d,b.radAttr));return this};B.prototype.setTextPath=function(d,b){var n=this.element,x={textAnchor:\"text-anchor\"},\na=!1,c=this.textPathWrapper,e=!c;b=L(!0,{enabled:!0,attributes:{dy:-5,startOffset:\"50%\",textAnchor:\"middle\"}},b);var f=b.attributes;if(d&&b&&b.enabled){c&&null===c.element.parentNode?(e=!0,c=c.destroy()):c&&this.removeTextOutline.call(c.parentGroup,[].slice.call(n.getElementsByTagName(\"tspan\")));this.options&&this.options.padding&&(f.dx=-this.options.padding);c||(this.textPathWrapper=c=this.renderer.createElement(\"textPath\"),a=!0);var u=c.element;(b=d.element.getAttribute(\"id\"))||d.element.setAttribute(\"id\",\nb=O());if(e)for(d=n.getElementsByTagName(\"tspan\");d.length;)d[0].setAttribute(\"y\",0),m(f.dx)&&d[0].setAttribute(\"x\",-f.dx),u.appendChild(d[0]);a&&c&&c.add({element:this.text?this.text.element:n});u.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",this.renderer.url+\"#\"+b);r(f.dy)&&(u.parentNode.setAttribute(\"dy\",f.dy),delete f.dy);r(f.dx)&&(u.parentNode.setAttribute(\"dx\",f.dx),delete f.dx);F(f,function(b,d){u.setAttribute(x[d]||d,b)});n.removeAttribute(\"transform\");this.removeTextOutline.call(c,\n[].slice.call(n.getElementsByTagName(\"tspan\")));this.text&&!this.renderer.styledMode&&this.attr({fill:\"none\",\"stroke-width\":0});this.applyTextOutline=this.updateTransform=M}else c&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(n,d),this.updateTransform(),this.options&&this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this};B.prototype.shadow=function(d,b,n){var x=[],a=this.element,c=!1,e=this.oldShadowOptions;var m={color:\"#000000\",\noffsetX:1,offsetY:1,opacity:.15,width:3};var u;!0===d?u=m:\"object\"===typeof d&&(u=f(m,d));u&&(u&&e&&F(u,function(b,d){b!==e[d]&&(c=!0)}),c&&this.destroyShadows(),this.oldShadowOptions=u);if(!u)this.destroyShadows();else if(!this.shadows){var p=u.opacity/u.width;var h=this.parentInverted?\"translate(-1,-1)\":\"translate(\"+u.offsetX+\", \"+u.offsetY+\")\";for(m=1;m<=u.width;m++){var w=a.cloneNode(!1);var l=2*u.width+1-2*m;z(w,{stroke:d.color||\"#000000\",\"stroke-opacity\":p*m,\"stroke-width\":l,transform:h,fill:\"none\"});\nw.setAttribute(\"class\",(w.getAttribute(\"class\")||\"\")+\" highcharts-shadow\");n&&(z(w,\"height\",Math.max(z(w,\"height\")-l,0)),w.cutHeight=l);b?b.element.appendChild(w):a.parentNode&&a.parentNode.insertBefore(w,a);x.push(w)}this.shadows=x}return this};B.prototype.show=function(d){return this.attr({visibility:d?\"inherit\":\"visible\"})};B.prototype.strokeSetter=function(d,b,n){this[b]=d;this.stroke&&this[\"stroke-width\"]?(B.prototype.fillSetter.call(this,this.stroke,\"stroke\",n),n.setAttribute(\"stroke-width\",\nthis[\"stroke-width\"]),this.hasStroke=!0):\"stroke-width\"===b&&0===d&&this.hasStroke?(n.removeAttribute(\"stroke\"),this.hasStroke=!1):this.renderer.styledMode&&this[\"stroke-width\"]&&(n.setAttribute(\"stroke-width\",this[\"stroke-width\"]),this.hasStroke=!0)};B.prototype.strokeWidth=function(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;var d=this.getStyle(\"stroke-width\"),b=0;if(d.indexOf(\"px\")===d.length-2)b=p(d);else if(\"\"!==d){var n=K.createElementNS(I,\"rect\");z(n,{width:d,\"stroke-width\":0});\nthis.element.parentNode.appendChild(n);b=n.getBBox().width;n.parentNode.removeChild(n)}return b};B.prototype.symbolAttr=function(d){var b=this;\"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function(n){b[n]=w(d[n],b[n])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})};B.prototype.textSetter=function(d){d!==this.textStr&&(delete this.textPxLength,this.textStr=d,this.added&&this.renderer.buildText(this))};B.prototype.titleSetter=function(d){var b=\nthis.element.getElementsByTagName(\"title\")[0];b||(b=K.createElementNS(this.SVG_NS,\"title\"),this.element.appendChild(b));b.firstChild&&b.removeChild(b.firstChild);b.appendChild(K.createTextNode(String(w(d,\"\")).replace(/<[^>]*>/g,\"\").replace(/</g,\"<\").replace(/>/g,\">\")))};B.prototype.toFront=function(){var d=this.element;d.parentNode.appendChild(d);return this};B.prototype.translate=function(d,b){return this.attr({translateX:d,translateY:b})};B.prototype.updateShadows=function(d,b,n){var x=this.shadows;\nif(x)for(var a=x.length;a--;)n.call(x[a],\"height\"===d?Math.max(b-(x[a].cutHeight||0),0):\"d\"===d?this.d:b,d,x[a])};B.prototype.updateTransform=function(){var d=this.translateX||0,b=this.translateY||0,n=this.scaleX,x=this.scaleY,a=this.inverted,c=this.rotation,e=this.matrix,f=this.element;a&&(d+=this.width,b+=this.height);d=[\"translate(\"+d+\",\"+b+\")\"];r(e)&&d.push(\"matrix(\"+e.join(\",\")+\")\");a?d.push(\"rotate(90) scale(-1,1)\"):c&&d.push(\"rotate(\"+c+\" \"+w(this.rotationOriginX,f.getAttribute(\"x\"),0)+\" \"+\nw(this.rotationOriginY,f.getAttribute(\"y\")||0)+\")\");(r(n)||r(x))&&d.push(\"scale(\"+w(n,1)+\" \"+w(x,1)+\")\");d.length&&f.setAttribute(\"transform\",d.join(\" \"))};B.prototype.visibilitySetter=function(d,b,n){\"inherit\"===d?n.removeAttribute(b):this[b]!==d&&n.setAttribute(b,d);this[b]=d};B.prototype.xGetter=function(d){\"circle\"===this.element.nodeName&&(\"x\"===d?d=\"cx\":\"y\"===d&&(d=\"cy\"));return this._defaultGetter(d)};B.prototype.zIndexSetter=function(d,b){var n=this.renderer,x=this.parentGroup,a=(x||n).element||\nn.box,c=this.element,e=!1;n=a===n.box;var f=this.added;var m;r(d)?(c.setAttribute(\"data-z-index\",d),d=+d,this[b]===d&&(f=!1)):r(this[b])&&c.removeAttribute(\"data-z-index\");this[b]=d;if(f){(d=this.zIndex)&&x&&(x.handleZ=!0);b=a.childNodes;for(m=b.length-1;0<=m&&!e;m--){x=b[m];f=x.getAttribute(\"data-z-index\");var u=!r(f);if(x!==c)if(0>d&&u&&!n&&!m)a.insertBefore(c,b[m]),e=!0;else if(p(f)<=d||u&&(!r(d)||0<=d))a.insertBefore(c,b[m+1]||null),e=!0}e||(a.insertBefore(c,b[n?3:0]||null),e=!0)}return e};return B}();\nH.prototype[\"stroke-widthSetter\"]=H.prototype.strokeSetter;H.prototype.yGetter=H.prototype.xGetter;H.prototype.matrixSetter=H.prototype.rotationOriginXSetter=H.prototype.rotationOriginYSetter=H.prototype.rotationSetter=H.prototype.scaleXSetter=H.prototype.scaleYSetter=H.prototype.translateXSetter=H.prototype.translateYSetter=H.prototype.verticalAlignSetter=function(a,d){this[d]=a;this.doTransform=!0};g.SVGElement=H;return g.SVGElement});P(A,\"parts/SvgRenderer.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],\nA[\"parts/SVGElement.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=k.parse,G=v.addEvent,N=v.attr,M=v.createElement,y=v.css,I=v.defined,J=v.destroyObjectProperties,E=v.extend,D=v.isArray,z=v.isNumber,t=v.isObject,q=v.isString,r=v.merge,h=v.objectEach,f=v.pick,a=v.pInt,l=v.removeEvent,e=v.splat,c=v.uniqueKey,m=g.charts,u=g.deg2rad,L=g.doc,F=g.isFirefox,w=g.isMS,p=g.isWebKit;v=g.noop;var C=g.svg,O=g.SVG_NS,B=g.symbolSizes,d=g.win;k=g.SVGRenderer=function(){this.init.apply(this,arguments)};E(k.prototype,\n{Element:H,SVG_NS:O,init:function(b,n,x,a,c,e,f){var m=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"});f||m.css(this.getStyle(a));a=m.element;b.appendChild(a);N(b,\"dir\",\"ltr\");-1===b.innerHTML.indexOf(\"xmlns\")&&N(a,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=a;this.boxWrapper=m;this.alignedObjects=[];this.url=(F||p)&&L.getElementsByTagName(\"base\").length?d.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\"):\"\";this.createElement(\"desc\").add().element.appendChild(L.createTextNode(\"Created with Highcharts 8.1.0\"));\nthis.defs=this.createElement(\"defs\").add();this.allowHTML=e;this.forExport=c;this.styledMode=f;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(n,x,!1);var u;F&&b.getBoundingClientRect&&(n=function(){y(b,{left:0,top:0});u=b.getBoundingClientRect();y(b,{left:Math.ceil(u.left)-u.left+\"px\",top:Math.ceil(u.top)-u.top+\"px\"})},n(),this.unSubPixelFix=G(d,\"resize\",n))},definition:function(b){function d(b,n){var x;e(b).forEach(function(b){var c=a.createElement(b.tagName),e={};\nh(b,function(b,d){\"tagName\"!==d&&\"children\"!==d&&\"textContent\"!==d&&(e[d]=b)});c.attr(e);c.add(n||a.defs);b.textContent&&c.element.appendChild(L.createTextNode(b.textContent));d(b.children||[],c);x=c});return x}var a=this;return d(b)},getStyle:function(b){return this.style=E({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},b)},setStyle:function(b){this.boxWrapper.css(this.getStyle(b))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var b=\nthis.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();J(this.gradients||{});this.gradients=null;b&&(this.defs=b.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(b){var d=new this.Element;d.init(this,b);return d},draw:v,getRadialAttr:function(b,d){return{cx:b[0]-b[2]/2+d.cx*b[2],cy:b[1]-b[2]/2+d.cy*b[2],r:d.r*b[2]}},truncate:function(b,d,a,c,e,f,m){var n=this,x=b.rotation,u,p=c?1:0,h=(a||c).length,w=h,l=[],C=function(b){d.firstChild&&\nd.removeChild(d.firstChild);b&&d.appendChild(L.createTextNode(b))},F=function(x,f){f=f||x;if(\"undefined\"===typeof l[f])if(d.getSubStringLength)try{l[f]=e+d.getSubStringLength(0,c?f+1:f)}catch(ea){\"\"}else n.getSpanWidth&&(C(m(a||c,x)),l[f]=e+n.getSpanWidth(b,d));return l[f]},Q;b.rotation=0;var R=F(d.textContent.length);if(Q=e+R>f){for(;p<=h;)w=Math.ceil((p+h)/2),c&&(u=m(c,w)),R=F(w,u&&u.length-1),p===h?p=h+1:R>f?h=w-1:p=w;0===h?C(\"\"):a&&h===a.length-1||C(u||m(a||c,w))}c&&c.splice(0,w);b.actualWidth=\nR;b.rotation=x;return Q},escapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},buildText:function(b){var d=b.element,x=this,c=x.forExport,e=f(b.textStr,\"\").toString(),m=-1!==e.indexOf(\"<\"),u=d.childNodes,p,w=N(d,\"x\"),l=b.styles,F=b.textWidth,B=l&&l.lineHeight,r=l&&l.textOutline,t=l&&\"ellipsis\"===l.textOverflow,q=l&&\"nowrap\"===l.whiteSpace,z=l&&l.fontSize,g,k=u.length;l=F&&!b.added&&this.box;var D=function(b){var n;x.styledMode||(n=/(px|em)$/.test(b&&b.style.fontSize)?b.style.fontSize:\nz||x.style.fontSize||12);return B?a(B):x.fontMetrics(n,b.getAttribute(\"style\")?b:d).h},E=function(b,d){h(x.escapes,function(n,a){d&&-1!==d.indexOf(n)||(b=b.toString().replace(new RegExp(n,\"g\"),a))});return b},v=function(b,d){var n=b.indexOf(\"<\");b=b.substring(n,b.indexOf(\">\")-n);n=b.indexOf(d+\"=\");if(-1!==n&&(n=n+d.length+1,d=b.charAt(n),'\"'===d||\"'\"===d))return b=b.substring(n+1),b.substring(0,b.indexOf(d))},I=/<br.*?>/g;var J=[e,t,q,B,r,z,F].join();if(J!==b.textCache){for(b.textCache=J;k--;)d.removeChild(u[k]);\nm||r||t||F||-1!==e.indexOf(\" \")&&(!q||I.test(e))?(l&&l.appendChild(d),m?(e=x.styledMode?e.replace(/<(b|strong)>/g,'<span class=\"highcharts-strong\">').replace(/<(i|em)>/g,'<span class=\"highcharts-emphasized\">'):e.replace(/<(b|strong)>/g,'<span style=\"font-weight:bold\">').replace(/<(i|em)>/g,'<span style=\"font-style:italic\">'),e=e.replace(/<a/g,\"<span\").replace(/<\\/(b|strong|i|em|a)>/g,\"</span>\").split(I)):e=[e],e=e.filter(function(b){return\"\"!==b}),e.forEach(function(n,a){var e=0,f=0;n=n.replace(/^\\s+|\\s+$/g,\n\"\").replace(/<span/g,\"|||<span\").replace(/<\\/span>/g,\"</span>|||\");var m=n.split(\"|||\");m.forEach(function(n){if(\"\"!==n||1===m.length){var u={},h=L.createElementNS(x.SVG_NS,\"tspan\"),l,Q;(l=v(n,\"class\"))&&N(h,\"class\",l);if(l=v(n,\"style\"))l=l.replace(/(;| |^)color([ :])/,\"$1fill$2\"),N(h,\"style\",l);(Q=v(n,\"href\"))&&!c&&(N(h,\"onclick\",'location.href=\"'+Q+'\"'),N(h,\"class\",\"highcharts-anchor\"),x.styledMode||y(h,{cursor:\"pointer\"}));n=E(n.replace(/<[a-zA-Z\\/](.|\\n)*?>/g,\"\")||\" \");if(\" \"!==n){h.appendChild(L.createTextNode(n));\ne?u.dx=0:a&&null!==w&&(u.x=w);N(h,u);d.appendChild(h);!e&&g&&(!C&&c&&y(h,{display:\"block\"}),N(h,\"dy\",D(h)));if(F){var R=n.replace(/([^\\^])-/g,\"$1- \").split(\" \");u=!q&&(1<m.length||a||1<R.length);Q=0;var B=D(h);if(t)p=x.truncate(b,h,n,void 0,0,Math.max(0,F-parseInt(z||12,10)),function(b,d){return b.substring(0,d)+\"\\u2026\"});else if(u)for(;R.length;)R.length&&!q&&0<Q&&(h=L.createElementNS(O,\"tspan\"),N(h,{dy:B,x:w}),l&&N(h,\"style\",l),h.appendChild(L.createTextNode(R.join(\" \").replace(/- /g,\"-\"))),d.appendChild(h)),\nx.truncate(b,h,null,R,0===Q?f:0,F,function(b,d){return R.slice(0,d).join(\" \").replace(/- /g,\"-\")}),f=b.actualWidth,Q++}e++}}});g=g||d.childNodes.length}),t&&p&&b.attr(\"title\",E(b.textStr,[\"<\",\">\"])),l&&l.removeChild(d),r&&b.applyTextOutline&&b.applyTextOutline(r)):d.appendChild(L.createTextNode(E(e)))}},getContrast:function(b){b=K(b).rgba;b[0]*=1;b[1]*=1.2;b[2]*=.5;return 459<b[0]+b[1]+b[2]?\"#000000\":\"#FFFFFF\"},button:function(b,d,a,c,e,f,m,u,h,p){var n=this.label(b,d,a,h,void 0,void 0,p,void 0,\n\"button\"),x=0,l=this.styledMode;n.attr(r({padding:8,r:2},e));if(!l){e=r({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontWeight:\"normal\"}},e);var C=e.style;delete e.style;f=r(e,{fill:\"#e6e6e6\"},f);var F=f.style;delete f.style;m=r(e,{fill:\"#e6ebf5\",style:{color:\"#000000\",fontWeight:\"bold\"}},m);var Q=m.style;delete m.style;u=r(e,{style:{color:\"#cccccc\"}},u);var R=u.style;delete u.style}G(n.element,w?\"mouseover\":\"mouseenter\",function(){3!==x&&n.setState(1)});\nG(n.element,w?\"mouseout\":\"mouseleave\",function(){3!==x&&n.setState(x)});n.setState=function(b){1!==b&&(n.state=x=b);n.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][b||0]);l||n.attr([e,f,m,u][b||0]).css([C,F,Q,R][b||0])};l||n.attr(e).css(E({cursor:\"default\"},C));return n.on(\"click\",function(b){3!==x&&c.call(n,b)})},crispLine:function(b,d,a){void 0===a&&(a=\"round\");var n=b[0],x=b[1];n[1]===x[1]&&(n[1]=x[1]=Math[a](n[1])-\nd%2/2);n[2]===x[2]&&(n[2]=x[2]=Math[a](n[2])+d%2/2);return b},path:function(b){var d=this.styledMode?{}:{fill:\"none\"};D(b)?d.d=b:t(b)&&E(d,b);return this.createElement(\"path\").attr(d)},circle:function(b,d,a){b=t(b)?b:\"undefined\"===typeof b?{}:{x:b,y:d,r:a};d=this.createElement(\"circle\");d.xSetter=d.ySetter=function(b,d,n){n.setAttribute(\"c\"+d,b)};return d.attr(b)},arc:function(b,d,a,c,e,f){t(b)?(c=b,d=c.y,a=c.r,b=c.x):c={innerR:c,start:e,end:f};b=this.symbol(\"arc\",b,d,a,a,c);b.r=a;return b},rect:function(b,\nd,a,c,e,f){e=t(b)?b.r:e;var n=this.createElement(\"rect\");b=t(b)?b:\"undefined\"===typeof b?{}:{x:b,y:d,width:Math.max(a,0),height:Math.max(c,0)};this.styledMode||(\"undefined\"!==typeof f&&(b.strokeWidth=f,b=n.crisp(b)),b.fill=\"none\");e&&(b.r=e);n.rSetter=function(b,d,a){n.r=b;N(a,{rx:b,ry:b})};n.rGetter=function(){return n.r};return n.attr(b)},setSize:function(b,d,a){var n=this.alignedObjects,c=n.length;this.width=b;this.height=d;for(this.boxWrapper.animate({width:b,height:d},{step:function(){this.attr({viewBox:\"0 0 \"+\nthis.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:f(a,!0)?void 0:0});c--;)n[c].align()},g:function(b){var d=this.createElement(\"g\");return b?d.attr({\"class\":\"highcharts-\"+b}):d},image:function(b,n,a,c,e,f){var x={preserveAspectRatio:\"none\"},m=function(b,d){b.setAttributeNS?b.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",d):b.setAttribute(\"hc-svg-href\",d)},u=function(d){m(h.element,b);f.call(h,d)};1<arguments.length&&E(x,{x:n,y:a,width:c,height:e});var h=this.createElement(\"image\").attr(x);\nf?(m(h.element,\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"),x=new d.Image,G(x,\"load\",u),x.src=b,x.complete&&u({})):m(h.element,b);return h},symbol:function(b,d,a,c,e,u){var n=this,x=/^url\\((.*?)\\)$/,h=x.test(b),p=!h&&(this.symbols[b]?b:\"circle\"),w=p&&this.symbols[p],l;if(w){\"number\"===typeof d&&(l=w.call(this.symbols,Math.round(d||0),Math.round(a||0),c,e,u));var C=this.path(l);n.styledMode||C.attr(\"fill\",\"none\");E(C,{symbolName:p,x:d,y:a,width:c,height:e});u&&E(C,\nu)}else if(h){var F=b.match(x)[1];C=this.image(F);C.imgwidth=f(B[F]&&B[F].width,u&&u.width);C.imgheight=f(B[F]&&B[F].height,u&&u.height);var Q=function(){C.attr({width:C.width,height:C.height})};[\"width\",\"height\"].forEach(function(b){C[b+\"Setter\"]=function(b,d){var n={},a=this[\"img\"+d],c=\"width\"===d?\"translateX\":\"translateY\";this[d]=b;I(a)&&(u&&\"within\"===u.backgroundSize&&this.width&&this.height&&(a=Math.round(a*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(d,\na),this.alignByTranslate||(n[c]=((this[d]||0)-a)/2,this.attr(n)))}});I(d)&&C.attr({x:d,y:a});C.isImg=!0;I(C.imgwidth)&&I(C.imgheight)?Q():(C.attr({width:0,height:0}),M(\"img\",{onload:function(){var b=m[n.chartIndex];0===this.width&&(y(this,{position:\"absolute\",top:\"-999em\"}),L.body.appendChild(this));B[F]={width:this.width,height:this.height};C.imgwidth=this.width;C.imgheight=this.height;C.element&&Q();this.parentNode&&this.parentNode.removeChild(this);n.imgCount--;if(!n.imgCount&&b&&!b.hasLoaded)b.onload()},\nsrc:F}),this.imgCount++)}return C},symbols:{circle:function(b,d,a,c){return this.arc(b+a/2,d+c/2,a/2,c/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(b,d,a,c){return[[\"M\",b,d],[\"L\",b+a,d],[\"L\",b+a,d+c],[\"L\",b,d+c],[\"Z\"]]},triangle:function(b,d,a,c){return[[\"M\",b+a/2,d],[\"L\",b+a,d+c],[\"L\",b,d+c],[\"Z\"]]},\"triangle-down\":function(b,d,a,c){return[[\"M\",b,d],[\"L\",b+a,d],[\"L\",b+a/2,d+c],[\"Z\"]]},diamond:function(b,d,a,c){return[[\"M\",b+a/2,d],[\"L\",b+a,d+c/2],[\"L\",b+a/2,d+c],[\"L\",b,d+c/2],[\"Z\"]]},\narc:function(b,d,a,c,e){var n=e.start,x=e.r||a,m=e.r||c||a,u=e.end-.001;a=e.innerR;c=f(e.open,.001>Math.abs(e.end-e.start-2*Math.PI));var h=Math.cos(n),p=Math.sin(n),w=Math.cos(u);u=Math.sin(u);n=f(e.longArc,.001>e.end-n-Math.PI?0:1);x=[[\"M\",b+x*h,d+m*p],[\"A\",x,m,0,n,f(e.clockwise,1),b+x*w,d+m*u]];I(a)&&x.push(c?[\"M\",b+a*w,d+a*u]:[\"L\",b+a*w,d+a*u],[\"A\",a,a,0,n,I(e.clockwise)?1-e.clockwise:0,b+a*h,d+a*p]);c||x.push([\"Z\"]);return x},callout:function(b,d,a,c,e){var n=Math.min(e&&e.r||0,a,c),x=n+6,f=\ne&&e.anchorX;e=e&&e.anchorY;var m=[[\"M\",b+n,d],[\"L\",b+a-n,d],[\"C\",b+a,d,b+a,d,b+a,d+n],[\"L\",b+a,d+c-n],[\"C\",b+a,d+c,b+a,d+c,b+a-n,d+c],[\"L\",b+n,d+c],[\"C\",b,d+c,b,d+c,b,d+c-n],[\"L\",b,d+n],[\"C\",b,d,b,d,b+n,d]];f&&f>a?e>d+x&&e<d+c-x?m.splice(3,1,[\"L\",b+a,e-6],[\"L\",b+a+6,e],[\"L\",b+a,e+6],[\"L\",b+a,d+c-n]):m.splice(3,1,[\"L\",b+a,c/2],[\"L\",f,e],[\"L\",b+a,c/2],[\"L\",b+a,d+c-n]):f&&0>f?e>d+x&&e<d+c-x?m.splice(7,1,[\"L\",b,e+6],[\"L\",b-6,e],[\"L\",b,e-6],[\"L\",b,d+n]):m.splice(7,1,[\"L\",b,c/2],[\"L\",f,e],[\"L\",b,c/2],\n[\"L\",b,d+n]):e&&e>c&&f>b+x&&f<b+a-x?m.splice(5,1,[\"L\",f+6,d+c],[\"L\",f,d+c+6],[\"L\",f-6,d+c],[\"L\",b+n,d+c]):e&&0>e&&f>b+x&&f<b+a-x&&m.splice(1,1,[\"L\",f-6,d],[\"L\",f,d-6],[\"L\",f+6,d],[\"L\",a-n,d]);return m}},clipRect:function(b,d,a,e){var n=c()+\"-\",x=this.createElement(\"clipPath\").attr({id:n}).add(this.defs);b=this.rect(b,d,a,e,0).add(x);b.id=n;b.clipPath=x;b.count=0;return b},text:function(b,d,a,c){var n={};if(c&&(this.allowHTML||!this.forExport))return this.html(b,d,a);n.x=Math.round(d||0);a&&(n.y=Math.round(a));\nI(b)&&(n.text=b);b=this.createElement(\"text\").attr(n);c||(b.xSetter=function(b,d,n){var a=n.getElementsByTagName(\"tspan\"),c=n.getAttribute(d),e;for(e=0;e<a.length;e++){var x=a[e];x.getAttribute(d)===c&&x.setAttribute(d,b)}n.setAttribute(d,b)});return b},fontMetrics:function(b,n){b=!this.styledMode&&/px/.test(b)||!d.getComputedStyle?b||n&&n.style&&n.style.fontSize||this.style&&this.style.fontSize:n&&H.prototype.getStyle.call(n,\"font-size\");b=/px/.test(b)?a(b):12;n=24>b?b+3:Math.round(1.2*b);return{h:n,\nb:Math.round(.8*n),f:b}},rotCorr:function(b,d,a){var n=b;d&&a&&(n=Math.max(n*Math.cos(d*u),4));return{x:-b/3*Math.sin(d*u),y:n}},pathToSegments:function(b){for(var d=[],a=[],c={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},e=0;e<b.length;e++)q(a[0])&&z(b[e])&&a.length===c[a[0].toUpperCase()]&&b.splice(e,0,a[0].replace(\"M\",\"L\").replace(\"m\",\"l\")),\"string\"===typeof b[e]&&(a.length&&d.push(a.slice(0)),a.length=0),a.push(b[e]);d.push(a.slice(0));return d},label:function(b,d,a,c,e,f,m,u,h){var n=this,x=n.styledMode,\np=n.g(\"button\"!==h&&\"label\"),w=p.text=n.text(\"\",0,0,m).attr({zIndex:1}),C,F={width:0,height:0,x:0,y:0},Q=F,B=0,L=3,t=0,O,q,R,X,g,k={},y,D,U=/^url\\((.*?)\\)$/.test(c),v=x||U,W=function(){return x?C.strokeWidth()%2/2:(y?parseInt(y,10):0)%2/2};h&&p.addClass(\"highcharts-\"+h);var V=function(){var b=w.element.style,d={};Q=z(O)&&z(q)&&!g||!I(w.textStr)?F:w.getBBox();p.width=(O||Q.width||0)+2*L+t;p.height=(q||Q.height||0)+2*L;D=L+Math.min(n.fontMetrics(b&&b.fontSize,w).b,Q.height||Infinity);v&&(C||(p.box=\nC=n.symbols[c]||U?n.symbol(c):n.rect(),C.addClass((\"button\"===h?\"\":\"highcharts-label-box\")+(h?\" highcharts-\"+h+\"-box\":\"\")),C.add(p),b=W(),d.x=b,d.y=(u?-D:0)+b),d.width=Math.round(p.width),d.height=Math.round(p.height),C.attr(E(d,k)),k={})};var J=function(){var b=t+L;var d=u?0:D;I(O)&&Q&&(\"center\"===g||\"right\"===g)&&(b+={center:.5,right:1}[g]*(O-Q.width));if(b!==w.x||d!==w.y)w.attr(\"x\",b),w.hasBoxWidthChanged&&(Q=w.getBBox(!0),V()),\"undefined\"!==typeof d&&w.attr(\"y\",d);w.x=b;w.y=d};var M=function(b,\nd){C?C.attr(b,d):k[b]=d};p.onAdd=function(){w.add(p);p.attr({text:b||0===b?b:\"\",x:d,y:a});C&&I(e)&&p.attr({anchorX:e,anchorY:f})};p.widthSetter=function(b){O=z(b)?b:null};p.heightSetter=function(b){q=b};p[\"text-alignSetter\"]=function(b){g=b};p.paddingSetter=function(b){I(b)&&b!==L&&(L=p.padding=b,J())};p.paddingLeftSetter=function(b){I(b)&&b!==t&&(t=b,J())};p.alignSetter=function(b){b={left:0,center:.5,right:1}[b];b!==B&&(B=b,Q&&p.attr({x:R}))};p.textSetter=function(b){\"undefined\"!==typeof b&&w.attr({text:b});\nV();J()};p[\"stroke-widthSetter\"]=function(b,d){b&&(v=!0);y=this[\"stroke-width\"]=b;M(d,b)};x?p.rSetter=function(b,d){M(d,b)}:p.strokeSetter=p.fillSetter=p.rSetter=function(b,d){\"r\"!==d&&(\"fill\"===d&&b&&(v=!0),p[d]=b);M(d,b)};p.anchorXSetter=function(b,d){e=p.anchorX=b;M(d,Math.round(b)-W()-R)};p.anchorYSetter=function(b,d){f=p.anchorY=b;M(d,b-X)};p.xSetter=function(b){p.x=b;B&&(b-=B*((O||Q.width)+2*L),p[\"forceAnimate:x\"]=!0);R=Math.round(b);p.attr(\"translateX\",R)};p.ySetter=function(b){X=p.y=Math.round(b);\np.attr(\"translateY\",X)};p.isLabel=!0;var G=p.css;m={css:function(b){if(b){var d={};b=r(b);p.textProps.forEach(function(n){\"undefined\"!==typeof b[n]&&(d[n]=b[n],delete b[n])});w.css(d);var n=\"fontSize\"in d||\"fontWeight\"in d;if(\"width\"in d||n)V(),n&&J()}return G.call(p,b)},getBBox:function(){return{width:Q.width+2*L,height:Q.height+2*L,x:Q.x-L,y:Q.y-L}},destroy:function(){l(p.element,\"mouseenter\");l(p.element,\"mouseleave\");w&&w.destroy();C&&(C=C.destroy());H.prototype.destroy.call(p);p=n=w=V=J=M=null}};\np.on=function(b,d){var n=w&&\"SPAN\"===w.element.tagName?w:void 0;if(n){var a=function(a){(\"mouseenter\"===b||\"mouseleave\"===b)&&a.relatedTarget instanceof Element&&(p.element.contains(a.relatedTarget)||n.element.contains(a.relatedTarget))||d.call(p.element,a)};n.on(b,a)}H.prototype.on.call(p,b,a||d);return p};x||(m.shadow=function(b){b&&(V(),C&&C.shadow(b));return p});return E(p,m)}});g.Renderer=k});P(A,\"parts/Html.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.attr,v=g.createElement,\nK=g.css,G=g.defined,N=g.extend,M=g.pick,y=g.pInt,I=k.isFirefox,J=k.isMS,E=k.isWebKit,D=k.SVGElement;g=k.SVGRenderer;var z=k.win;N(D.prototype,{htmlCss:function(t){var q=\"SPAN\"===this.element.tagName&&t&&\"width\"in t,r=M(q&&t.width,void 0);if(q){delete t.width;this.textWidth=r;var h=!0}t&&\"ellipsis\"===t.textOverflow&&(t.whiteSpace=\"nowrap\",t.overflow=\"hidden\");this.styles=N(this.styles,t);K(this.element,t);h&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var t=this.element;return{x:t.offsetLeft,\ny:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var t=this.renderer,q=this.element,r=this.translateX||0,h=this.translateY||0,f=this.x||0,a=this.y||0,l=this.textAlign||\"left\",e={left:0,center:.5,right:1}[l],c=this.styles,m=c&&c.whiteSpace;K(q,{marginLeft:r,marginTop:h});!t.styledMode&&this.shadows&&this.shadows.forEach(function(a){K(a,{marginLeft:r+1,marginTop:h+1})});this.inverted&&[].forEach.call(q.childNodes,function(a){t.invertChild(a,q)});\nif(\"SPAN\"===q.tagName){c=this.rotation;var u=this.textWidth&&y(this.textWidth),L=[c,l,q.innerHTML,this.textWidth,this.textAlign].join(),F;(F=u!==this.oldTextWidth)&&!(F=u>this.oldTextWidth)&&((F=this.textPxLength)||(K(q,{width:\"\",whiteSpace:m||\"nowrap\"}),F=q.offsetWidth),F=F>u);F&&(/[ \\-]/.test(q.textContent||q.innerText)||\"ellipsis\"===q.style.textOverflow)?(K(q,{width:u+\"px\",display:\"block\",whiteSpace:m||\"normal\"}),this.oldTextWidth=u,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;L!==this.cTT&&\n(m=t.fontMetrics(q.style.fontSize,q).b,!G(c)||c===(this.oldRotation||0)&&l===this.oldAlign||this.setSpanRotation(c,e,m),this.getSpanCorrection(!G(c)&&this.textPxLength||q.offsetWidth,m,e,c,l));K(q,{left:f+(this.xCorr||0)+\"px\",top:a+(this.yCorr||0)+\"px\"});this.cTT=L;this.oldRotation=c;this.oldAlign=l}}else this.alignOnAdd=!0},setSpanRotation:function(t,q,r){var h={},f=this.renderer.getTransformKey();h[f]=h.transform=\"rotate(\"+t+\"deg)\";h[f+(I?\"Origin\":\"-origin\")]=h.transformOrigin=100*q+\"% \"+r+\"px\";\nK(this.element,h)},getSpanCorrection:function(t,q,r){this.xCorr=-t*r;this.yCorr=-q}});N(g.prototype,{getTransformKey:function(){return J&&!/Edge/.test(z.navigator.userAgent)?\"-ms-transform\":E?\"-webkit-transform\":I?\"MozTransform\":z.opera?\"-o-transform\":\"\"},html:function(t,q,r){var h=this.createElement(\"span\"),f=h.element,a=h.renderer,l=a.isSVG,e=function(a,e){[\"opacity\",\"visibility\"].forEach(function(c){a[c+\"Setter\"]=function(f,m,u){var p=a.div?a.div.style:e;D.prototype[c+\"Setter\"].call(this,f,m,u);\np&&(p[m]=f)}});a.addedSetters=!0};h.textSetter=function(a){a!==f.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=a;f.innerHTML=M(a,\"\");h.doTransform=!0};l&&e(h,h.element.style);h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(a,e){\"align\"===e&&(e=\"textAlign\");h[e]=a;h.doTransform=!0};h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};h.attr({text:t,x:Math.round(q),y:Math.round(r)}).css({position:\"absolute\"});a.styledMode||h.css({fontFamily:this.style.fontFamily,\nfontSize:this.style.fontSize});f.style.whiteSpace=\"nowrap\";h.css=h.htmlCss;l&&(h.add=function(c){var m=a.box.parentNode,u=[];if(this.parentGroup=c){var l=c.div;if(!l){for(;c;)u.push(c),c=c.parentGroup;u.reverse().forEach(function(a){function c(c,e){a[e]=c;\"translateX\"===e?C.left=c+\"px\":C.top=c+\"px\";a.doTransform=!0}var f=H(a.element,\"class\");l=a.div=a.div||v(\"div\",f?{className:f}:void 0,{position:\"absolute\",left:(a.translateX||0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,\npointerEvents:a.styles&&a.styles.pointerEvents},l||m);var C=l.style;N(a,{classSetter:function(a){return function(c){this.element.setAttribute(\"class\",c);a.className=c}}(l),on:function(){u[0].div&&h.on.apply({element:u[0].div},arguments);return a},translateXSetter:c,translateYSetter:c});a.addedSetters||e(a)})}}else l=m;l.appendChild(f);h.added=!0;h.alignOnAdd&&h.htmlUpdateTransform();return h});return h}})});P(A,\"parts/Tick.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.clamp,\nv=g.correctFloat,K=g.defined,G=g.destroyObjectProperties,N=g.extend,M=g.fireEvent,y=g.isNumber,I=g.merge,J=g.objectEach,E=g.pick,D=k.deg2rad;g=function(){function z(t,q,r,h,f){this.isNewLabel=this.isNew=!0;this.axis=t;this.pos=q;this.type=r||\"\";this.parameters=f||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;M(this,\"init\");r||h||this.addLabel()}z.prototype.addLabel=function(){var t=this,q=t.axis,r=q.options,h=q.chart,f=q.categories,a=q.logarithmic,l=q.names,\ne=t.pos,c=E(t.options&&t.options.labels,r.labels),m=q.tickPositions,u=e===m[0],L=e===m[m.length-1];l=this.parameters.category||(f?E(f[e],l[e],e):e);var F=t.label;f=(!c.step||1===c.step)&&1===q.tickInterval;m=m.info;var w,p;if(q.dateTime&&m){var C=h.time.resolveDTLFormat(r.dateTimeLabelFormats[!r.grid&&m.higherRanks[e]||m.unitName]);var O=C.main}t.isFirst=u;t.isLast=L;t.formatCtx={axis:q,chart:h,isFirst:u,isLast:L,dateTimeLabelFormat:O,tickPositionInfo:m,value:a?v(a.lin2log(l)):l,pos:e};r=q.labelFormatter.call(t.formatCtx,\nthis.formatCtx);if(p=C&&C.list)t.shortenLabel=function(){for(w=0;w<p.length;w++)if(F.attr({text:q.labelFormatter.call(N(t.formatCtx,{dateTimeLabelFormat:p[w]}))}),F.getBBox().width<q.getSlotWidth(t)-2*E(c.padding,5))return;F.attr({text:\"\"})};f&&q._addedPlotLB&&q.isXAxis&&t.moveLabel(r,c);K(F)||t.movedLabel?F&&F.textStr!==r&&!f&&(!F.textWidth||c.style&&c.style.width||F.styles.width||F.css({width:null}),F.attr({text:r}),F.textPxLength=F.getBBox().width):(t.label=F=t.createLabel({x:0,y:0},r,c),t.rotation=\n0)};z.prototype.createLabel=function(t,q,r){var h=this.axis,f=h.chart;if(t=K(q)&&r.enabled?f.renderer.text(q,t.x,t.y,r.useHTML).add(h.labelGroup):null)f.styledMode||t.css(I(r.style)),t.textPxLength=t.getBBox().width;return t};z.prototype.destroy=function(){G(this,this.axis)};z.prototype.getPosition=function(t,q,r,h){var f=this.axis,a=f.chart,l=h&&a.oldChartHeight||a.chartHeight;t={x:t?v(f.translate(q+r,null,null,h)+f.transB):f.left+f.offset+(f.opposite?(h&&a.oldChartWidth||a.chartWidth)-f.right-f.left:\n0),y:t?l-f.bottom+f.offset-(f.opposite?f.height:0):v(l-f.translate(q+r,null,null,h)-f.transB)};t.y=H(t.y,-1E5,1E5);M(this,\"afterGetPosition\",{pos:t});return t};z.prototype.getLabelPosition=function(t,q,r,h,f,a,l,e){var c=this.axis,m=c.transA,u=c.isLinked&&c.linkedParent?c.linkedParent.reversed:c.reversed,L=c.staggerLines,F=c.tickRotCorr||{x:0,y:0},w=f.y,p=h||c.reserveSpaceDefault?0:-c.labelOffset*(\"center\"===c.labelAlign?.5:1),C={};K(w)||(w=0===c.side?r.rotation?-8:-r.getBBox().height:2===c.side?\nF.y+8:Math.cos(r.rotation*D)*(F.y-r.getBBox(!1,0).height/2));t=t+f.x+p+F.x-(a&&h?a*m*(u?-1:1):0);q=q+w-(a&&!h?a*m*(u?1:-1):0);L&&(r=l/(e||1)%L,c.opposite&&(r=L-r-1),q+=c.labelOffset/L*r);C.x=t;C.y=Math.round(q);M(this,\"afterGetLabelPosition\",{pos:C,tickmarkOffset:a,index:l});return C};z.prototype.getLabelSize=function(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0};z.prototype.getMarkPath=function(t,q,r,h,f,a){return a.crispLine([[\"M\",t,q],[\"L\",t+(f?0:-r),q+(f?r:0)]],\nh)};z.prototype.handleOverflow=function(t){var q=this.axis,r=q.options.labels,h=t.x,f=q.chart.chartWidth,a=q.chart.spacing,l=E(q.labelLeft,Math.min(q.pos,a[3]));a=E(q.labelRight,Math.max(q.isRadial?0:q.pos+q.len,f-a[1]));var e=this.label,c=this.rotation,m={left:0,center:.5,right:1}[q.labelAlign||e.attr(\"align\")],u=e.getBBox().width,L=q.getSlotWidth(this),F=L,w=1,p,C={};if(c||\"justify\"!==E(r.overflow,\"justify\"))0>c&&h-m*u<l?p=Math.round(h/Math.cos(c*D)-l):0<c&&h+m*u>a&&(p=Math.round((f-h)/Math.cos(c*\nD)));else if(f=h+(1-m)*u,h-m*u<l?F=t.x+F*(1-m)-l:f>a&&(F=a-t.x+F*m,w=-1),F=Math.min(L,F),F<L&&\"center\"===q.labelAlign&&(t.x+=w*(L-F-m*(L-Math.min(u,F)))),u>F||q.autoRotation&&(e.styles||{}).width)p=F;p&&(this.shortenLabel?this.shortenLabel():(C.width=Math.floor(p)+\"px\",(r.style||{}).textOverflow||(C.textOverflow=\"ellipsis\"),e.css(C)))};z.prototype.moveLabel=function(t,q){var r=this,h=r.label,f=!1,a=r.axis,l=a.reversed,e=a.chart.inverted;h&&h.textStr===t?(r.movedLabel=h,f=!0,delete r.label):J(a.ticks,\nfunction(a){f||a.isNew||a===r||!a.label||a.label.textStr!==t||(r.movedLabel=a.label,f=!0,a.labelPos=r.movedLabel.xy,delete a.label)});if(!f&&(r.labelPos||h)){var c=r.labelPos||h.xy;h=e?c.x:l?0:a.width+a.left;a=e?l?a.width+a.left:0:c.y;r.movedLabel=r.createLabel({x:h,y:a},t,q);r.movedLabel&&r.movedLabel.attr({opacity:0})}};z.prototype.render=function(t,q,r){var h=this.axis,f=h.horiz,a=this.pos,l=E(this.tickmarkOffset,h.tickmarkOffset);a=this.getPosition(f,a,l,q);l=a.x;var e=a.y;h=f&&l===h.pos+h.len||\n!f&&e===h.pos?-1:1;r=E(r,1);this.isActive=!0;this.renderGridLine(q,r,h);this.renderMark(a,r,h);this.renderLabel(a,q,r,t);this.isNew=!1;M(this,\"afterRender\")};z.prototype.renderGridLine=function(t,q,r){var h=this.axis,f=h.options,a=this.gridLine,l={},e=this.pos,c=this.type,m=E(this.tickmarkOffset,h.tickmarkOffset),u=h.chart.renderer,L=c?c+\"Grid\":\"grid\",F=f[L+\"LineWidth\"],w=f[L+\"LineColor\"];f=f[L+\"LineDashStyle\"];a||(h.chart.styledMode||(l.stroke=w,l[\"stroke-width\"]=F,f&&(l.dashstyle=f)),c||(l.zIndex=\n1),t&&(q=0),this.gridLine=a=u.path().attr(l).addClass(\"highcharts-\"+(c?c+\"-\":\"\")+\"grid-line\").add(h.gridGroup));if(a&&(r=h.getPlotLinePath({value:e+m,lineWidth:a.strokeWidth()*r,force:\"pass\",old:t})))a[t||this.isNew?\"attr\":\"animate\"]({d:r,opacity:q})};z.prototype.renderMark=function(t,q,r){var h=this.axis,f=h.options,a=h.chart.renderer,l=this.type,e=l?l+\"Tick\":\"tick\",c=h.tickSize(e),m=this.mark,u=!m,L=t.x;t=t.y;var F=E(f[e+\"Width\"],!l&&h.isXAxis?1:0);f=f[e+\"Color\"];c&&(h.opposite&&(c[0]=-c[0]),u&&\n(this.mark=m=a.path().addClass(\"highcharts-\"+(l?l+\"-\":\"\")+\"tick\").add(h.axisGroup),h.chart.styledMode||m.attr({stroke:f,\"stroke-width\":F})),m[u?\"attr\":\"animate\"]({d:this.getMarkPath(L,t,c[0],m.strokeWidth()*r,h.horiz,a),opacity:q}))};z.prototype.renderLabel=function(t,q,r,h){var f=this.axis,a=f.horiz,l=f.options,e=this.label,c=l.labels,m=c.step;f=E(this.tickmarkOffset,f.tickmarkOffset);var u=!0,L=t.x;t=t.y;e&&y(L)&&(e.xy=t=this.getLabelPosition(L,t,e,a,c,f,h,m),this.isFirst&&!this.isLast&&!E(l.showFirstLabel,\n1)||this.isLast&&!this.isFirst&&!E(l.showLastLabel,1)?u=!1:!a||c.step||c.rotation||q||0===r||this.handleOverflow(t),m&&h%m&&(u=!1),u&&y(t.y)?(t.opacity=r,e[this.isNewLabel?\"attr\":\"animate\"](t),this.isNewLabel=!1):(e.attr(\"y\",-9999),this.isNewLabel=!0))};z.prototype.replaceMovedLabel=function(){var t=this.label,q=this.axis,r=q.reversed,h=this.axis.chart.inverted;if(t&&!this.isNew){var f=h?t.xy.x:r?q.left:q.width+q.left;r=h?r?q.width+q.top:q.top:t.xy.y;t.animate({x:f,y:r,opacity:0},void 0,t.destroy);\ndelete this.label}q.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return z}();k.Tick=g;return k.Tick});P(A,\"parts/Time.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.defined,v=g.error,K=g.extend,G=g.isObject,N=g.merge,M=g.objectEach,y=g.pad,I=g.pick,J=g.splat,E=g.timeUnits,D=k.win;g=function(){function z(t){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=D.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(t)}z.prototype.get=\nfunction(t,q){if(this.variableTimezone||this.timezoneOffset){var r=q.getTime(),h=r-this.getTimezoneOffset(q);q.setTime(h);t=q[\"getUTC\"+t]();q.setTime(r);return t}return this.useUTC?q[\"getUTC\"+t]():q[\"get\"+t]()};z.prototype.set=function(t,q,r){if(this.variableTimezone||this.timezoneOffset){if(\"Milliseconds\"===t||\"Seconds\"===t||\"Minutes\"===t)return q[\"setUTC\"+t](r);var h=this.getTimezoneOffset(q);h=q.getTime()-h;q.setTime(h);q[\"setUTC\"+t](r);t=this.getTimezoneOffset(q);h=q.getTime()+t;return q.setTime(h)}return this.useUTC?\nq[\"setUTC\"+t](r):q[\"set\"+t](r)};z.prototype.update=function(t){var q=I(t&&t.useUTC,!0);this.options=t=N(!0,this.options||{},t);this.Date=t.Date||D.Date||Date;this.timezoneOffset=(this.useUTC=q)&&t.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=!(q&&!t.getTimezoneOffset&&!t.timezone)};z.prototype.makeTime=function(t,q,r,h,f,a){if(this.useUTC){var l=this.Date.UTC.apply(0,arguments);var e=this.getTimezoneOffset(l);l+=e;var c=this.getTimezoneOffset(l);e!==c?\nl+=c-e:e-36E5!==this.getTimezoneOffset(l-36E5)||k.isSafari||(l-=36E5)}else l=(new this.Date(t,q,I(r,1),I(h,0),I(f,0),I(a,0))).getTime();return l};z.prototype.timezoneOffsetFunction=function(){var t=this,q=this.options,r=D.moment;if(!this.useUTC)return function(h){return 6E4*(new Date(h.toString())).getTimezoneOffset()};if(q.timezone){if(r)return function(h){return 6E4*-r.tz(h,q.timezone).utcOffset()};v(25)}return this.useUTC&&q.getTimezoneOffset?function(h){return 6E4*q.getTimezoneOffset(h.valueOf())}:\nfunction(){return 6E4*(t.timezoneOffset||0)}};z.prototype.dateFormat=function(t,q,r){var h;if(!H(q)||isNaN(q))return(null===(h=k.defaultOptions.lang)||void 0===h?void 0:h.invalidDate)||\"\";t=I(t,\"%Y-%m-%d %H:%M:%S\");var f=this;h=new this.Date(q);var a=this.get(\"Hours\",h),l=this.get(\"Day\",h),e=this.get(\"Date\",h),c=this.get(\"Month\",h),m=this.get(\"FullYear\",h),u=k.defaultOptions.lang,L=null===u||void 0===u?void 0:u.weekdays,F=null===u||void 0===u?void 0:u.shortWeekdays;h=K({a:F?F[l]:L[l].substr(0,3),\nA:L[l],d:y(e),e:y(e,2,\" \"),w:l,b:u.shortMonths[c],B:u.months[c],m:y(c+1),o:c+1,y:m.toString().substr(2,2),Y:m,H:y(a),k:a,I:y(a%12||12),l:a%12||12,M:y(this.get(\"Minutes\",h)),p:12>a?\"AM\":\"PM\",P:12>a?\"am\":\"pm\",S:y(h.getSeconds()),L:y(Math.floor(q%1E3),3)},k.dateFormats);M(h,function(a,c){for(;-1!==t.indexOf(\"%\"+c);)t=t.replace(\"%\"+c,\"function\"===typeof a?a.call(f,q):a)});return r?t.substr(0,1).toUpperCase()+t.substr(1):t};z.prototype.resolveDTLFormat=function(t){return G(t,!0)?t:(t=J(t),{main:t[0],from:t[1],\nto:t[2]})};z.prototype.getTimeTicks=function(t,q,r,h){var f=this,a=[],l={};var e=new f.Date(q);var c=t.unitRange,m=t.count||1,u;h=I(h,1);if(H(q)){f.set(\"Milliseconds\",e,c>=E.second?0:m*Math.floor(f.get(\"Milliseconds\",e)/m));c>=E.second&&f.set(\"Seconds\",e,c>=E.minute?0:m*Math.floor(f.get(\"Seconds\",e)/m));c>=E.minute&&f.set(\"Minutes\",e,c>=E.hour?0:m*Math.floor(f.get(\"Minutes\",e)/m));c>=E.hour&&f.set(\"Hours\",e,c>=E.day?0:m*Math.floor(f.get(\"Hours\",e)/m));c>=E.day&&f.set(\"Date\",e,c>=E.month?1:Math.max(1,\nm*Math.floor(f.get(\"Date\",e)/m)));if(c>=E.month){f.set(\"Month\",e,c>=E.year?0:m*Math.floor(f.get(\"Month\",e)/m));var L=f.get(\"FullYear\",e)}c>=E.year&&f.set(\"FullYear\",e,L-L%m);c===E.week&&(L=f.get(\"Day\",e),f.set(\"Date\",e,f.get(\"Date\",e)-L+h+(L<h?-7:0)));L=f.get(\"FullYear\",e);h=f.get(\"Month\",e);var F=f.get(\"Date\",e),w=f.get(\"Hours\",e);q=e.getTime();f.variableTimezone&&(u=r-q>4*E.month||f.getTimezoneOffset(q)!==f.getTimezoneOffset(r));q=e.getTime();for(e=1;q<r;)a.push(q),q=c===E.year?f.makeTime(L+e*m,\n0):c===E.month?f.makeTime(L,h+e*m):!u||c!==E.day&&c!==E.week?u&&c===E.hour&&1<m?f.makeTime(L,h,F,w+e*m):q+c*m:f.makeTime(L,h,F+e*m*(c===E.day?1:7)),e++;a.push(q);c<=E.hour&&1E4>a.length&&a.forEach(function(a){0===a%18E5&&\"000000000\"===f.dateFormat(\"%H%M%S%L\",a)&&(l[a]=\"day\")})}a.info=K(t,{higherRanks:l,totalRange:c*m});return a};z.defaultOptions={Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0};return z}();k.Time=g;return k.Time});P(A,\"parts/Options.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Time.js\"],A[\"parts/Color.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){H=H.parse;var K=v.merge;k.defaultOptions={colors:\"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \"),symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\ndecimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:g.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:\"line\",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}},width:null,height:null,borderColor:\"#335cad\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{text:\"Chart title\",align:\"center\",margin:15,\nwidthAdjust:-44},subtitle:{text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},labels:{style:{position:\"absolute\",color:\"#333333\"}},legend:{enabled:!0,align:\"center\",alignColumns:!0,layout:\"horizontal\",labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{activeColor:\"#003399\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"12px\",fontWeight:\"bold\",textOverflow:\"ellipsis\"},\nitemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#cccccc\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:k.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %b %e, %H:%M:%S.%L\",\nsecond:\"%A, %b %e, %H:%M:%S\",minute:\"%A, %b %e, %H:%M\",hour:\"%A, %b %e, %H:%M\",day:\"%A, %b %e, %Y\",week:\"Week from %A, %b %e, %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",padding:8,snap:k.isTouchDevice?25:10,headerFormat:'<span style=\"font-size: 10px\">{point.key}</span><br/>',pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:H(\"#f7f7f7\").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:\"#333333\",cursor:\"default\",fontSize:\"12px\",\nwhiteSpace:\"nowrap\"}},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"9px\"},text:\"Highcharts.com\"}};k.setOptions=function(g){k.defaultOptions=K(!0,k.defaultOptions,g);(g.time||g.global)&&k.time.update(K(k.defaultOptions.global,k.defaultOptions.time,g.global,g.time));return k.defaultOptions};k.getOptions=function(){return k.defaultOptions};k.defaultPlotOptions=k.defaultOptions.plotOptions;\nk.time=new g(K(k.defaultOptions.global,k.defaultOptions.time));k.dateFormat=function(g,v,M){return k.time.dateFormat(g,v,M)};\"\"});P(A,\"parts/Axis.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Tick.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=v.addEvent,G=v.animObject,N=v.arrayMax,M=v.arrayMin,y=v.clamp,I=v.correctFloat,J=v.defined,E=v.destroyObjectProperties,D=v.error,z=v.extend,t=v.fireEvent,q=v.format,r=v.getMagnitude,h=v.isArray,f=v.isFunction,a=v.isNumber,l=v.isString,e=v.merge,\nc=v.normalizeTickInterval,m=v.objectEach,u=v.pick,L=v.relativeLength,F=v.removeEvent,w=v.splat,p=v.syncTimeout,C=g.defaultOptions,O=g.deg2rad;v=function(){function B(d,b){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=\nthis.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.oldMin=this.oldMax=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0;this.init(d,b)}B.prototype.init=function(d,b){var a=b.isX,c=this;c.chart=d;\nc.horiz=d.inverted&&!c.isZAxis?!a:a;c.isXAxis=a;c.coll=c.coll||(a?\"xAxis\":\"yAxis\");t(this,\"init\",{userOptions:b});c.opposite=b.opposite;c.side=b.side||(c.horiz?c.opposite?0:2:c.opposite?1:3);c.setOptions(b);var e=this.options,p=e.type;c.labelFormatter=e.labels.formatter||c.defaultLabelFormatter;c.userOptions=b;c.minPixelPadding=0;c.reversed=e.reversed;c.visible=!1!==e.visible;c.zoomEnabled=!1!==e.zoomEnabled;c.hasNames=\"category\"===p||!0===e.categories;c.categories=e.categories||c.hasNames;c.names||\n(c.names=[],c.names.keys={});c.plotLinesAndBandsGroups={};c.positiveValuesOnly=!(!c.logarithmic||e.allowNegativeLog);c.isLinked=J(e.linkedTo);c.ticks={};c.labelEdge=[];c.minorTicks={};c.plotLinesAndBands=[];c.alternateBands={};c.len=0;c.minRange=c.userMinRange=e.minRange||e.maxZoom;c.range=e.range;c.offset=e.offset||0;c.max=null;c.min=null;c.crosshair=u(e.crosshair,w(d.options.tooltip.crosshairs)[a?0:1],!1);b=c.options.events;-1===d.axes.indexOf(c)&&(a?d.axes.splice(d.xAxis.length,0,c):d.axes.push(c),\nd[c.coll].push(c));c.series=c.series||[];d.inverted&&!c.isZAxis&&a&&\"undefined\"===typeof c.reversed&&(c.reversed=!0);c.labelRotation=c.options.labels.rotation;m(b,function(b,d){f(b)&&K(c,d,b)});t(this,\"afterInit\")};B.prototype.setOptions=function(d){this.options=e(B.defaultOptions,\"yAxis\"===this.coll&&B.defaultYAxisOptions,[B.defaultTopAxisOptions,B.defaultRightAxisOptions,B.defaultBottomAxisOptions,B.defaultLeftAxisOptions][this.side],e(C[this.coll],d));t(this,\"afterSetOptions\",{userOptions:d})};\nB.prototype.defaultLabelFormatter=function(){var d=this.axis,b=this.value,a=d.chart.time,c=d.categories,e=this.dateTimeLabelFormat,f=C.lang,m=f.numericSymbols;f=f.numericSymbolMagnitude||1E3;var u=m&&m.length,p=d.options.labels.format;d=d.logarithmic?Math.abs(b):d.tickInterval;var h=this.chart,w=h.numberFormatter;if(p)var l=q(p,this,h);else if(c)l=b;else if(e)l=a.dateFormat(e,b);else if(u&&1E3<=d)for(;u--&&\"undefined\"===typeof l;)a=Math.pow(f,u+1),d>=a&&0===10*b%a&&null!==m[u]&&0!==b&&(l=w(b/a,-1)+\nm[u]);\"undefined\"===typeof l&&(l=1E4<=Math.abs(b)?w(b,-1):w(b,-1,void 0,\"\"));return l};B.prototype.getSeriesExtremes=function(){var d=this,b=d.chart,n;t(this,\"getSeriesExtremes\",null,function(){d.hasVisibleSeries=!1;d.dataMin=d.dataMax=d.threshold=null;d.softThreshold=!d.isXAxis;d.stacking&&d.stacking.buildStacks();d.series.forEach(function(c){if(c.visible||!b.options.chart.ignoreHiddenSeries){var e=c.options,f=e.threshold;d.hasVisibleSeries=!0;d.positiveValuesOnly&&0>=f&&(f=null);if(d.isXAxis){if(e=\nc.xData,e.length){n=c.getXExtremes(e);var x=n.min;var m=n.max;a(x)||x instanceof Date||(e=e.filter(a),n=c.getXExtremes(e),x=n.min,m=n.max);e.length&&(d.dataMin=Math.min(u(d.dataMin,x),x),d.dataMax=Math.max(u(d.dataMax,m),m))}}else if(c=c.applyExtremes(),a(c.dataMin)&&(x=c.dataMin,d.dataMin=Math.min(u(d.dataMin,x),x)),a(c.dataMax)&&(m=c.dataMax,d.dataMax=Math.max(u(d.dataMax,m),m)),J(f)&&(d.threshold=f),!e.softThreshold||d.positiveValuesOnly)d.softThreshold=!1}})});t(this,\"afterGetSeriesExtremes\")};\nB.prototype.translate=function(d,b,n,c,e,f){var x=this.linkedParent||this,m=1,u=0,p=c?x.oldTransA:x.transA;c=c?x.oldMin:x.min;var h=x.minPixelPadding;e=(x.isOrdinal||x.brokenAxis&&x.brokenAxis.hasBreaks||x.logarithmic&&e)&&x.lin2val;p||(p=x.transA);n&&(m*=-1,u=x.len);x.reversed&&(m*=-1,u-=m*(x.sector||x.len));b?(d=(d*m+u-h)/p+c,e&&(d=x.lin2val(d))):(e&&(d=x.val2lin(d)),d=a(c)?m*(d-c)*p+u+m*h+(a(f)?p*f:0):void 0);return d};B.prototype.toPixels=function(d,b){return this.translate(d,!1,!this.horiz,null,\n!0)+(b?0:this.pos)};B.prototype.toValue=function(d,b){return this.translate(d-(b?0:this.pos),!0,!this.horiz,null,!0)};B.prototype.getPlotLinePath=function(d){function b(b,d,a){if(\"pass\"!==l&&b<d||b>a)l?b=y(b,d,a):q=!0;return b}var n=this,c=n.chart,e=n.left,f=n.top,m=d.old,p=d.value,h=d.translatedValue,w=d.lineWidth,l=d.force,C,F,B,L,r=m&&c.oldChartHeight||c.chartHeight,O=m&&c.oldChartWidth||c.chartWidth,q,z=n.transB;d={value:p,lineWidth:w,old:m,force:l,acrossPanes:d.acrossPanes,translatedValue:h};\nt(this,\"getPlotLinePath\",d,function(d){h=u(h,n.translate(p,null,null,m));h=y(h,-1E5,1E5);C=B=Math.round(h+z);F=L=Math.round(r-h-z);a(h)?n.horiz?(F=f,L=r-n.bottom,C=B=b(C,e,e+n.width)):(C=e,B=O-n.right,F=L=b(F,f,f+n.height)):(q=!0,l=!1);d.path=q&&!l?null:c.renderer.crispLine([[\"M\",C,F],[\"L\",B,L]],w||1)});return d.path};B.prototype.getLinearTickPositions=function(d,b,a){var n=I(Math.floor(b/d)*d);a=I(Math.ceil(a/d)*d);var c=[],e;I(n+d)===n&&(e=20);if(this.single)return[b];for(b=n;b<=a;){c.push(b);b=\nI(b+d,e);if(b===f)break;var f=b}return c};B.prototype.getMinorTickInterval=function(){var d=this.options;return!0===d.minorTicks?u(d.minorTickInterval,\"auto\"):!1===d.minorTicks?null:d.minorTickInterval};B.prototype.getMinorTickPositions=function(){var d=this.options,b=this.tickPositions,a=this.minorTickInterval,c=[],e=this.pointRangePadding||0,f=this.min-e;e=this.max+e;var m=e-f;if(m&&m/a<this.len/3){var u=this.logarithmic;if(u)this.paddedTicks.forEach(function(b,d,n){d&&c.push.apply(c,u.getLogTickPositions(a,\nn[d-1],n[d],!0))});else if(this.dateTime&&\"auto\"===this.getMinorTickInterval())c=c.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(a),f,e,d.startOfWeek));else for(d=f+(b[0]-f)%a;d<=e&&d!==c[0];d+=a)c.push(d)}0!==c.length&&this.trimTicks(c);return c};B.prototype.adjustForMinRange=function(){var d=this.options,b=this.min,a=this.max,c=this.logarithmic,e,f,m,p,h;this.isXAxis&&\"undefined\"===typeof this.minRange&&!c&&(J(d.min)||J(d.max)?this.minRange=null:(this.series.forEach(function(b){p=\nb.xData;for(f=h=b.xIncrement?1:p.length-1;0<f;f--)if(m=p[f]-p[f-1],\"undefined\"===typeof e||m<e)e=m}),this.minRange=Math.min(5*e,this.dataMax-this.dataMin)));if(a-b<this.minRange){var w=this.dataMax-this.dataMin>=this.minRange;var l=this.minRange;var C=(l-a+b)/2;C=[b-C,u(d.min,b-C)];w&&(C[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin);b=N(C);a=[b+l,u(d.max,b+l)];w&&(a[2]=c?c.log2lin(this.dataMax):this.dataMax);a=M(a);a-b<l&&(C[0]=a-l,C[1]=u(d.min,a-l),b=N(C))}this.min=b;this.max=\na};B.prototype.getClosest=function(){var d;this.categories?d=1:this.series.forEach(function(b){var a=b.closestPointRange,c=b.visible||!b.chart.options.chart.ignoreHiddenSeries;!b.noSharedTooltip&&J(a)&&c&&(d=J(d)?Math.min(d,a):a)});return d};B.prototype.nameToX=function(d){var b=h(this.categories),a=b?this.categories:this.names,c=d.options.x;d.series.requireSorting=!1;J(c)||(c=!1===this.options.uniqueNames?d.series.autoIncrement():b?a.indexOf(d.name):u(a.keys[d.name],-1));if(-1===c){if(!b)var e=a.length}else e=\nc;\"undefined\"!==typeof e&&(this.names[e]=d.name,this.names.keys[d.name]=e);return e};B.prototype.updateNames=function(){var d=this,b=this.names;0<b.length&&(Object.keys(b.keys).forEach(function(d){delete b.keys[d]}),b.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(b){b.xIncrement=null;if(!b.points||b.isDirtyData)d.max=Math.max(d.max,b.xData.length-1),b.processData(),b.generatePoints();b.data.forEach(function(a,c){if(a&&a.options&&\"undefined\"!==typeof a.name){var n=d.nameToX(a);\n\"undefined\"!==typeof n&&n!==a.x&&(a.x=n,b.xData[c]=n)}})}))};B.prototype.setAxisTranslation=function(d){var b=this,a=b.max-b.min,c=b.axisPointRange||0,e=0,f=0,m=b.linkedParent,p=!!b.categories,h=b.transA,w=b.isXAxis;if(w||p||c){var C=b.getClosest();m?(e=m.minPointOffset,f=m.pointRangePadding):b.series.forEach(function(d){var a=p?1:w?u(d.options.pointRange,C,0):b.axisPointRange||0,n=d.options.pointPlacement;c=Math.max(c,a);if(!b.single||p)d=d.is(\"xrange\")?!w:w,e=Math.max(e,d&&l(n)?0:a/2),f=Math.max(f,\nd&&\"on\"===n?0:a)});m=b.ordinal&&b.ordinal.slope&&C?b.ordinal.slope/C:1;b.minPointOffset=e*=m;b.pointRangePadding=f*=m;b.pointRange=Math.min(c,b.single&&p?1:a);w&&(b.closestPointRange=C)}d&&(b.oldTransA=h);b.translationSlope=b.transA=h=b.staticScale||b.len/(a+f||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=h*e;t(this,\"afterSetAxisTranslation\")};B.prototype.minFromRange=function(){return this.max-this.range};B.prototype.setTickInterval=function(d){var b=this,n=b.chart,e=b.logarithmic,f=b.options,\nm=b.isXAxis,p=b.isLinked,h=f.maxPadding,w=f.minPadding,l=f.tickInterval,C=f.tickPixelInterval,F=b.categories,B=a(b.threshold)?b.threshold:null,L=b.softThreshold;b.dateTime||F||p||this.getTickAmount();var O=u(b.userMin,f.min);var q=u(b.userMax,f.max);if(p){b.linkedParent=n[b.coll][f.linkedTo];var z=b.linkedParent.getExtremes();b.min=u(z.min,z.dataMin);b.max=u(z.max,z.dataMax);f.type!==b.linkedParent.options.type&&D(11,1,n)}else{if(!L&&J(B))if(b.dataMin>=B)z=B,w=0;else if(b.dataMax<=B){var g=B;h=0}b.min=\nu(O,z,b.dataMin);b.max=u(q,g,b.dataMax)}e&&(b.positiveValuesOnly&&!d&&0>=Math.min(b.min,u(b.dataMin,b.min))&&D(10,1,n),b.min=I(e.log2lin(b.min),16),b.max=I(e.log2lin(b.max),16));b.range&&J(b.max)&&(b.userMin=b.min=O=Math.max(b.dataMin,b.minFromRange()),b.userMax=q=b.max,b.range=null);t(b,\"foundExtremes\");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(F||b.axisPointRange||b.stacking&&b.stacking.usePercentage||p)&&J(b.min)&&J(b.max)&&(n=b.max-b.min)&&(!J(O)&&w&&(b.min-=n*w),!J(q)&&h&&(b.max+=\nn*h));a(b.userMin)||(a(f.softMin)&&f.softMin<b.min&&(b.min=O=f.softMin),a(f.floor)&&(b.min=Math.max(b.min,f.floor)));a(b.userMax)||(a(f.softMax)&&f.softMax>b.max&&(b.max=q=f.softMax),a(f.ceiling)&&(b.max=Math.min(b.max,f.ceiling)));L&&J(b.dataMin)&&(B=B||0,!J(O)&&b.min<B&&b.dataMin>=B?b.min=b.options.minRange?Math.min(B,b.max-b.minRange):B:!J(q)&&b.max>B&&b.dataMax<=B&&(b.max=b.options.minRange?Math.max(B,b.min+b.minRange):B));b.tickInterval=b.min===b.max||\"undefined\"===typeof b.min||\"undefined\"===\ntypeof b.max?1:p&&!l&&C===b.linkedParent.options.tickPixelInterval?l=b.linkedParent.tickInterval:u(l,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,F?1:(b.max-b.min)*C/Math.max(b.len,C));m&&!d&&b.series.forEach(function(d){d.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.ordinal&&(b.tickInterval=b.ordinal.postProcessTickInterval(b.tickInterval));b.pointRange&&!l&&(b.tickInterval=Math.max(b.pointRange,\nb.tickInterval));d=u(f.minTickInterval,b.dateTime&&b.closestPointRange);!l&&b.tickInterval<d&&(b.tickInterval=d);b.dateTime||b.logarithmic||l||(b.tickInterval=c(b.tickInterval,void 0,r(b.tickInterval),u(f.allowDecimals,.5>b.tickInterval||void 0!==this.tickAmount),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()};B.prototype.setTickPositions=function(){var d=this.options,b=d.tickPositions;var a=this.getMinorTickInterval();var c=d.tickPositioner,e=this.hasVerticalPanning(),\nf=\"colorAxis\"===this.coll,m=(f||!e)&&d.startOnTick;e=(f||!e)&&d.endOnTick;this.tickmarkOffset=this.categories&&\"between\"===d.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\"auto\"===a&&this.tickInterval?this.tickInterval/5:a;this.single=this.min===this.max&&J(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==d.allowDecimals);this.tickPositions=a=b&&b.slice();!a&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,\n200))?a=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,d.units),this.min,this.max,d.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(a=[this.min,this.max],D(19,!1,this.chart)),a.length>this.len&&(a=[a[0],a.pop()],a[0]===a[1]&&(a.length=1)),this.tickPositions=a,c&&(c=c.apply(this,\n[this.min,this.max])))&&(this.tickPositions=a=c);this.paddedTicks=a.slice(0);this.trimTicks(a,m,e);this.isLinked||(this.single&&2>a.length&&!this.categories&&!this.series.some(function(b){return b.is(\"heatmap\")&&\"between\"===b.options.pointPlacement})&&(this.min-=.5,this.max+=.5),b||c||this.adjustTickAmount());t(this,\"afterSetTickPositions\")};B.prototype.trimTicks=function(d,b,a){var c=d[0],n=d[d.length-1],e=!this.isOrdinal&&this.minPointOffset||0;t(this,\"trimTicks\");if(!this.isLinked){if(b&&-Infinity!==\nc)this.min=c;else for(;this.min-e>d[0];)d.shift();if(a)this.max=n;else for(;this.max+e<d[d.length-1];)d.pop();0===d.length&&J(c)&&!this.options.tickPositions&&d.push((n+c)/2)}};B.prototype.alignToOthers=function(){var d={},b,a=this.options;!1===this.chart.options.chart.alignTicks||!1===a.alignTicks||!1===a.startOnTick||!1===a.endOnTick||this.logarithmic||this.chart[this.coll].forEach(function(a){var c=a.options;c=[a.horiz?c.left:c.top,c.width,c.height,c.pane].join();a.series.length&&(d[c]?b=!0:d[c]=\n1)});return b};B.prototype.getTickAmount=function(){var d=this.options,b=d.tickAmount,a=d.tickPixelInterval;!J(d.tickInterval)&&!b&&this.len<a&&!this.isRadial&&!this.logarithmic&&d.startOnTick&&d.endOnTick&&(b=2);!b&&this.alignToOthers()&&(b=Math.ceil(this.len/a)+1);4>b&&(this.finalTickAmt=b,b=5);this.tickAmount=b};B.prototype.adjustTickAmount=function(){var d=this.options,b=this.tickInterval,a=this.tickPositions,c=this.tickAmount,e=this.finalTickAmt,f=a&&a.length,m=u(this.threshold,this.softThreshold?\n0:null),p;if(this.hasData()){if(f<c){for(p=this.min;a.length<c;)a.length%2||p===m?a.push(I(a[a.length-1]+b)):a.unshift(I(a[0]-b));this.transA*=(f-1)/(c-1);this.min=d.startOnTick?a[0]:Math.min(this.min,a[0]);this.max=d.endOnTick?a[a.length-1]:Math.max(this.max,a[a.length-1])}else f>c&&(this.tickInterval*=2,this.setTickPositions());if(J(e)){for(b=d=a.length;b--;)(3===e&&1===b%2||2>=e&&0<b&&b<d-1)&&a.splice(b,1);this.finalTickAmt=void 0}}};B.prototype.setScale=function(){var d,b=!1,a=!1;this.series.forEach(function(d){var c;\nb=b||d.isDirtyData||d.isDirty;a=a||(null===(c=d.xAxis)||void 0===c?void 0:c.isDirty)||!1});this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();(d=this.len!==this.oldAxisLength)||b||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.stacking&&this.stacking.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,\nthis.isDirty||(this.isDirty=d||this.min!==this.oldMin||this.max!==this.oldMax)):this.stacking&&this.stacking.cleanStacks();b&&this.panningState&&(this.panningState.isDirty=!0);t(this,\"afterSetScale\")};B.prototype.setExtremes=function(d,b,a,c,e){var n=this,f=n.chart;a=u(a,!0);n.series.forEach(function(b){delete b.kdTree});e=z(e,{min:d,max:b});t(n,\"setExtremes\",e,function(){n.userMin=d;n.userMax=b;n.eventArgs=e;a&&f.redraw(c)})};B.prototype.zoom=function(d,b){var a=this,c=this.dataMin,e=this.dataMax,\nf=this.options,m=Math.min(c,u(f.min,c)),p=Math.max(e,u(f.max,e));d={newMin:d,newMax:b};t(this,\"zoom\",d,function(b){var d=b.newMin,n=b.newMax;if(d!==a.min||n!==a.max)a.allowZoomOutside||(J(c)&&(d<m&&(d=m),d>p&&(d=p)),J(e)&&(n<m&&(n=m),n>p&&(n=p))),a.displayBtn=\"undefined\"!==typeof d||\"undefined\"!==typeof n,a.setExtremes(d,n,!1,void 0,{trigger:\"zoom\"});b.zoomed=!0});return d.zoomed};B.prototype.setAxisSize=function(){var d=this.chart,b=this.options,a=b.offsets||[0,0,0,0],c=this.horiz,e=this.width=Math.round(L(u(b.width,\nd.plotWidth-a[3]+a[1]),d.plotWidth)),f=this.height=Math.round(L(u(b.height,d.plotHeight-a[0]+a[2]),d.plotHeight)),m=this.top=Math.round(L(u(b.top,d.plotTop+a[0]),d.plotHeight,d.plotTop));b=this.left=Math.round(L(u(b.left,d.plotLeft+a[3]),d.plotWidth,d.plotLeft));this.bottom=d.chartHeight-f-m;this.right=d.chartWidth-e-b;this.len=Math.max(c?e:f,0);this.pos=c?b:m};B.prototype.getExtremes=function(){var d=this.logarithmic;return{min:d?I(d.lin2log(this.min)):this.min,max:d?I(d.lin2log(this.max)):this.max,\ndataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}};B.prototype.getThreshold=function(d){var b=this.logarithmic,a=b?b.lin2log(this.min):this.min;b=b?b.lin2log(this.max):this.max;null===d||-Infinity===d?d=a:Infinity===d?d=b:a>d?d=a:b<d&&(d=b);return this.translate(d,0,1,0,1)};B.prototype.autoLabelAlign=function(d){var b=(u(d,0)-90*this.side+720)%360;d={align:\"center\"};t(this,\"autoLabelAlign\",d,function(d){15<b&&165>b?d.align=\"right\":195<b&&345>b&&(d.align=\"left\")});\nreturn d.align};B.prototype.tickSize=function(d){var b=this.options,a=b[\"tick\"===d?\"tickLength\":\"minorTickLength\"],c=u(b[\"tick\"===d?\"tickWidth\":\"minorTickWidth\"],\"tick\"===d&&this.isXAxis&&!this.categories?1:0);if(c&&a){\"inside\"===b[d+\"Position\"]&&(a=-a);var e=[a,c]}d={tickSize:e};t(this,\"afterTickSize\",d);return d.tickSize};B.prototype.labelMetrics=function(){var d=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,\nthis.ticks[d]&&this.ticks[d].label)};B.prototype.unsquish=function(){var d=this.options.labels,b=this.horiz,a=this.tickInterval,c=a,e=this.len/(((this.categories?1:0)+this.max-this.min)/a),f,m=d.rotation,p=this.labelMetrics(),h,w=Number.MAX_VALUE,l,C=this.max-this.min,F=function(b){var d=b/(e||1);d=1<d?Math.ceil(d):1;d*a>C&&Infinity!==b&&Infinity!==e&&C&&(d=Math.ceil(C/a));return I(d*a)};b?(l=!d.staggerLines&&!d.step&&(J(m)?[m]:e<u(d.autoRotationLimit,80)&&d.autoRotation))&&l.forEach(function(b){if(b===\nm||b&&-90<=b&&90>=b){h=F(Math.abs(p.h/Math.sin(O*b)));var d=h+Math.abs(b/360);d<w&&(w=d,f=b,c=h)}}):d.step||(c=F(p.h));this.autoRotation=l;this.labelRotation=u(f,m);return c};B.prototype.getSlotWidth=function(d){var b,c=this.chart,e=this.horiz,f=this.options.labels,m=Math.max(this.tickPositions.length-(this.categories?0:1),1),u=c.margin[3];if(d&&a(d.slotWidth))return d.slotWidth;if(e&&f&&2>(f.step||0))return f.rotation?0:(this.staggerLines||1)*this.len/m;if(!e){d=null===(b=null===f||void 0===f?void 0:\nf.style)||void 0===b?void 0:b.width;if(void 0!==d)return parseInt(d,10);if(u)return u-c.spacing[3]}return.33*c.chartWidth};B.prototype.renderUnsquish=function(){var d=this.chart,b=d.renderer,a=this.tickPositions,c=this.ticks,e=this.options.labels,f=e&&e.style||{},m=this.horiz,u=this.getSlotWidth(),p=Math.max(1,Math.round(u-2*(e.padding||5))),h={},w=this.labelMetrics(),C=e.style&&e.style.textOverflow,F=0;l(e.rotation)||(h.rotation=e.rotation||0);a.forEach(function(b){b=c[b];b.movedLabel&&b.replaceMovedLabel();\nb&&b.label&&b.label.textPxLength>F&&(F=b.label.textPxLength)});this.maxLabelLength=F;if(this.autoRotation)F>p&&F>w.h?h.rotation=this.labelRotation:this.labelRotation=0;else if(u){var B=p;if(!C){var L=\"clip\";for(p=a.length;!m&&p--;){var r=a[p];if(r=c[r].label)r.styles&&\"ellipsis\"===r.styles.textOverflow?r.css({textOverflow:\"clip\"}):r.textPxLength>u&&r.css({width:u+\"px\"}),r.getBBox().height>this.len/a.length-(w.h-w.f)&&(r.specificTextOverflow=\"ellipsis\")}}}h.rotation&&(B=F>.5*d.chartHeight?.33*d.chartHeight:\nF,C||(L=\"ellipsis\"));if(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))h.align=this.labelAlign;a.forEach(function(b){var d=(b=c[b])&&b.label,a=f.width,e={};d&&(d.attr(h),b.shortenLabel?b.shortenLabel():B&&!a&&\"nowrap\"!==f.whiteSpace&&(B<d.textPxLength||\"SPAN\"===d.element.tagName)?(e.width=B+\"px\",C||(e.textOverflow=d.specificTextOverflow||L),d.css(e)):d.styles&&d.styles.width&&!e.width&&!a&&d.css({width:null}),delete d.specificTextOverflow,b.rotation=h.rotation)},this);this.tickRotCorr=\nb.rotCorr(w.b,this.labelRotation||0,0!==this.side)};B.prototype.hasData=function(){return this.series.some(function(d){return d.hasData()})||this.options.showEmpty&&J(this.min)&&J(this.max)};B.prototype.addTitle=function(d){var b=this.chart.renderer,a=this.horiz,c=this.opposite,f=this.options.title,m,u=this.chart.styledMode;this.axisTitle||((m=f.textAlign)||(m=(a?{low:\"left\",middle:\"center\",high:\"right\"}:{low:c?\"right\":\"left\",middle:\"center\",high:c?\"left\":\"right\"})[f.align]),this.axisTitle=b.text(f.text,\n0,0,f.useHTML).attr({zIndex:7,rotation:f.rotation||0,align:m}).addClass(\"highcharts-axis-title\"),u||this.axisTitle.css(e(f.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0);u||f.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"});this.axisTitle[d?\"show\":\"hide\"](d)};B.prototype.generateTick=function(d){var b=this.ticks;b[d]?b[d].addLabel():b[d]=new H(this,d)};B.prototype.getOffset=function(){var d=this,b=d.chart,a=b.renderer,c=d.options,e=d.tickPositions,f=d.ticks,\np=d.horiz,h=d.side,w=b.inverted&&!d.isZAxis?[1,0,3,2][h]:h,l,C=0,F=0,B=c.title,r=c.labels,L=0,O=b.axisOffset;b=b.clipOffset;var q=[-1,1,1,-1][h],z=c.className,g=d.axisParent;var k=d.hasData();d.showAxis=l=k||u(c.showEmpty,!0);d.staggerLines=d.horiz&&r.staggerLines;d.axisGroup||(d.gridGroup=a.g(\"grid\").attr({zIndex:c.gridZIndex||1}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\"-grid \"+(z||\"\")).add(g),d.axisGroup=a.g(\"axis\").attr({zIndex:c.zIndex||2}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\n\" \"+(z||\"\")).add(g),d.labelGroup=a.g(\"axis-labels\").attr({zIndex:r.zIndex||7}).addClass(\"highcharts-\"+d.coll.toLowerCase()+\"-labels \"+(z||\"\")).add(g));k||d.isLinked?(e.forEach(function(b,a){d.generateTick(b,a)}),d.renderUnsquish(),d.reserveSpaceDefault=0===h||2===h||{1:\"left\",3:\"right\"}[h]===d.labelAlign,u(r.reserveSpace,\"center\"===d.labelAlign?!0:null,d.reserveSpaceDefault)&&e.forEach(function(b){L=Math.max(f[b].getLabelSize(),L)}),d.staggerLines&&(L*=d.staggerLines),d.labelOffset=L*(d.opposite?\n-1:1)):m(f,function(b,d){b.destroy();delete f[d]});if(B&&B.text&&!1!==B.enabled&&(d.addTitle(l),l&&!1!==B.reserveSpace)){d.titleOffset=C=d.axisTitle.getBBox()[p?\"height\":\"width\"];var y=B.offset;F=J(y)?0:u(B.margin,p?5:10)}d.renderLine();d.offset=q*u(c.offset,O[h]?O[h]+(c.margin||0):0);d.tickRotCorr=d.tickRotCorr||{x:0,y:0};a=0===h?-d.labelMetrics().h:2===h?d.tickRotCorr.y:0;F=Math.abs(L)+F;L&&(F=F-a+q*(p?u(r.y,d.tickRotCorr.y+8*q):r.x));d.axisTitleMargin=u(y,F);d.getMaxLabelDimensions&&(d.maxLabelDimensions=\nd.getMaxLabelDimensions(f,e));p=this.tickSize(\"tick\");O[h]=Math.max(O[h],d.axisTitleMargin+C+q*d.offset,F,e&&e.length&&p?p[0]+q*d.offset:0);c=c.offset?0:2*Math.floor(d.axisLine.strokeWidth()/2);b[w]=Math.max(b[w],c);t(this,\"afterGetOffset\")};B.prototype.getLinePath=function(d){var b=this.chart,a=this.opposite,c=this.offset,e=this.horiz,f=this.left+(a?this.width:0)+c;c=b.chartHeight-this.bottom-(a?this.height:0)+c;a&&(d*=-1);return b.renderer.crispLine([[\"M\",e?this.left:f,e?c:this.top],[\"L\",e?b.chartWidth-\nthis.right:f,e?c:b.chartHeight-this.bottom]],d)};B.prototype.renderLine=function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))};B.prototype.getTitlePosition=function(){var d=this.horiz,b=this.left,a=this.top,c=this.len,e=this.options.title,f=d?b:a,m=this.opposite,u=this.offset,p=e.x||0,h=e.y||0,w=this.axisTitle,\nl=this.chart.renderer.fontMetrics(e.style&&e.style.fontSize,w);w=Math.max(w.getBBox(null,0).height-l.h-1,0);c={low:f+(d?0:c),middle:f+c/2,high:f+(d?c:0)}[e.align];b=(d?a+this.height:b)+(d?1:-1)*(m?-1:1)*this.axisTitleMargin+[-w,w,l.f,-w][this.side];d={x:d?c+p:b+(m?this.width:0)+u+p,y:d?b+h-(m?this.height:0)+u:c+h};t(this,\"afterGetTitlePosition\",{titlePosition:d});return d};B.prototype.renderMinorTick=function(d){var b=this.chart.hasRendered&&a(this.oldMin),c=this.minorTicks;c[d]||(c[d]=new H(this,\nd,\"minor\"));b&&c[d].isNew&&c[d].render(null,!0);c[d].render(null,!1,1)};B.prototype.renderTick=function(d,b){var c=this.isLinked,e=this.ticks,f=this.chart.hasRendered&&a(this.oldMin);if(!c||d>=this.min&&d<=this.max)e[d]||(e[d]=new H(this,d)),f&&e[d].isNew&&e[d].render(b,!0,-1),e[d].render(b)};B.prototype.render=function(){var d=this,b=d.chart,c=d.logarithmic,e=d.options,f=d.isLinked,u=d.tickPositions,h=d.axisTitle,w=d.ticks,l=d.minorTicks,C=d.alternateBands,F=e.stackLabels,B=e.alternateGridColor,\nL=d.tickmarkOffset,r=d.axisLine,O=d.showAxis,q=G(b.renderer.globalAnimation),z,k;d.labelEdge.length=0;d.overlap=!1;[w,l,C].forEach(function(b){m(b,function(b){b.isActive=!1})});if(d.hasData()||f)d.minorTickInterval&&!d.categories&&d.getMinorTickPositions().forEach(function(b){d.renderMinorTick(b)}),u.length&&(u.forEach(function(b,a){d.renderTick(b,a)}),L&&(0===d.min||d.single)&&(w[-1]||(w[-1]=new H(d,-1,null,!0)),w[-1].render(-1))),B&&u.forEach(function(a,e){k=\"undefined\"!==typeof u[e+1]?u[e+1]+L:\nd.max-L;0===e%2&&a<d.max&&k<=d.max+(b.polar?-L:L)&&(C[a]||(C[a]=new g.PlotLineOrBand(d)),z=a+L,C[a].options={from:c?c.lin2log(z):z,to:c?c.lin2log(k):k,color:B},C[a].render(),C[a].isActive=!0)}),d._addedPlotLB||((e.plotLines||[]).concat(e.plotBands||[]).forEach(function(b){d.addPlotBandOrLine(b)}),d._addedPlotLB=!0);[w,l,C].forEach(function(d){var a,c=[],e=q.duration;m(d,function(b,d){b.isActive||(b.render(d,!1,0),b.isActive=!1,c.push(d))});p(function(){for(a=c.length;a--;)d[c[a]]&&!d[c[a]].isActive&&\n(d[c[a]].destroy(),delete d[c[a]])},d!==C&&b.hasRendered&&e?e:0)});r&&(r[r.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(r.strokeWidth())}),r.isPlaced=!0,r[O?\"show\":\"hide\"](O));h&&O&&(e=d.getTitlePosition(),a(e.y)?(h[h.isNew?\"attr\":\"animate\"](e),h.isNew=!1):(h.attr(\"y\",-9999),h.isNew=!0));F&&F.enabled&&d.stacking&&d.stacking.renderStackTotals();d.isDirty=!1;t(this,\"afterRender\")};B.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(d){d.render()}));this.series.forEach(function(d){d.isDirty=\n!0})};B.prototype.getKeepProps=function(){return this.keepProps||B.keepProps};B.prototype.destroy=function(d){var b=this,a=b.plotLinesAndBands,c;t(this,\"destroy\",{keepEvents:d});d||F(b);[b.ticks,b.minorTicks,b.alternateBands].forEach(function(b){E(b)});if(a)for(d=a.length;d--;)a[d].destroy();\"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function(d){b[d]&&(b[d]=b[d].destroy())});for(c in b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[c]=b.plotLinesAndBandsGroups[c].destroy();\nm(b,function(d,a){-1===b.getKeepProps().indexOf(a)&&delete b[a]})};B.prototype.drawCrosshair=function(d,b){var a=this.crosshair,c=u(a.snap,!0),e,f=this.cross,m=this.chart;t(this,\"drawCrosshair\",{e:d,point:b});d||(d=this.cross&&this.cross.e);if(this.crosshair&&!1!==(J(b)||!c)){c?J(b)&&(e=u(\"colorAxis\"!==this.coll?b.crosshairPos:null,this.isXAxis?b.plotX:this.len-b.plotY)):e=d&&(this.horiz?d.chartX-this.pos:this.len-d.chartY+this.pos);if(J(e)){var p={value:b&&(this.isXAxis?b.x:u(b.stackY,b.y)),translatedValue:e};\nm.polar&&z(p,{isCrosshair:!0,chartX:d&&d.chartX,chartY:d&&d.chartY,point:b});p=this.getPlotLinePath(p)||null}if(!J(p)){this.hideCrosshair();return}c=this.categories&&!this.isRadial;f||(this.cross=f=m.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(c?\"category \":\"thin \")+a.className).attr({zIndex:u(a.zIndex,2)}).add(),m.styledMode||(f.attr({stroke:a.color||(c?k.parse(\"#ccd6eb\").setOpacity(.25).get():\"#cccccc\"),\"stroke-width\":u(a.width,1)}).css({\"pointer-events\":\"none\"}),a.dashStyle&&\nf.attr({dashstyle:a.dashStyle})));f.show().attr({d:p});c&&!a.width&&f.attr({\"stroke-width\":this.transA});this.cross.e=d}else this.hideCrosshair();t(this,\"afterDrawCrosshair\",{e:d,point:b})};B.prototype.hideCrosshair=function(){this.cross&&this.cross.hide();t(this,\"afterHideCrosshair\")};B.prototype.hasVerticalPanning=function(){var d,b;return/y/.test((null===(b=null===(d=this.chart.options.chart)||void 0===d?void 0:d.panning)||void 0===b?void 0:b.type)||\"\")};B.defaultOptions={dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",\nrange:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e. %b\"},week:{main:\"%e. %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"}},maxPadding:.01,minorTickLength:2,minorTickPosition:\"outside\",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",\nstyle:{color:\"#666666\"}},type:\"linear\",minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",tickColor:\"#ccd6eb\"};B.defaultYAxisOptions={endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){var d=this.axis.chart.numberFormatter;return d(this.total,\n-1)},style:{color:\"#000000\",fontSize:\"11px\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};B.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};B.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};B.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.keepProps=\"extKey hcEvents names series userMax userMin\".split(\" \");return B}();\ng.Axis=v;return g.Axis});P(A,\"parts/DateTimeAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.getMagnitude,K=g.normalizeTickInterval,G=g.timeUnits,N=function(){function g(g){this.axis=g}g.prototype.normalizeTimeTickInterval=function(g,k){var y=k||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]];k=y[y.length-1];var E=\nG[k[0]],D=k[1],z;for(z=0;z<y.length&&!(k=y[z],E=G[k[0]],D=k[1],y[z+1]&&g<=(E*D[D.length-1]+G[y[z+1][0]])/2);z++);E===G.year&&g<5*E&&(D=[1,2,5]);g=K(g/E,D,\"year\"===k[0]?Math.max(v(g/E),1):1);return{unitRange:E,count:g,unitName:k[0]}};return g}();g=function(){function g(){}g.compose=function(g){g.keepProps.push(\"dateTime\");g.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};H(g,\"init\",function(g){\"datetime\"!==g.userOptions.type?this.dateTime=void 0:\nthis.dateTime||(this.dateTime=new N(this))})};g.AdditionsClass=N;return g}();g.compose(k);return g});P(A,\"parts/LogarithmicAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.getMagnitude,K=g.normalizeTickInterval,G=g.pick,N=function(){function g(g){this.axis=g}g.prototype.getLogTickPositions=function(g,k,J,E){var y=this.axis,z=y.len,t=y.options,q=[];E||(this.minorAutoInterval=void 0);if(.5<=g)g=Math.round(g),q=y.getLinearTickPositions(g,k,J);else if(.08<=g){t=\nMath.floor(k);var r,h;for(z=.3<g?[1,2,4]:.15<g?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];t<J+1&&!h;t++){var f=z.length;for(r=0;r<f&&!h;r++){var a=this.log2lin(this.lin2log(t)*z[r]);a>k&&(!E||l<=J)&&\"undefined\"!==typeof l&&q.push(l);l>J&&(h=!0);var l=a}}}else k=this.lin2log(k),J=this.lin2log(J),g=E?y.getMinorTickInterval():t.tickInterval,g=G(\"auto\"===g?null:g,this.minorAutoInterval,t.tickPixelInterval/(E?5:1)*(J-k)/((E?z/y.tickPositions.length:z)||1)),g=K(g,void 0,v(g)),q=y.getLinearTickPositions(g,k,J).map(this.log2lin),\nE||(this.minorAutoInterval=g/5);E||(y.tickInterval=g);return q};g.prototype.lin2log=function(g){return Math.pow(10,g)};g.prototype.log2lin=function(g){return Math.log(g)/Math.LN10};return g}();g=function(){function g(){}g.compose=function(g){g.keepProps.push(\"logarithmic\");var k=g.prototype,y=N.prototype;k.log2lin=y.log2lin;k.lin2log=y.lin2log;H(g,\"init\",function(g){var k=this.logarithmic;\"logarithmic\"!==g.userOptions.type?this.logarithmic=void 0:(k||(k=this.logarithmic=new N(this)),this.log2lin!==\nk.log2lin&&(k.log2lin=this.log2lin.bind(this)),this.lin2log!==k.lin2log&&(k.lin2log=this.lin2log.bind(this)))});H(g,\"afterInit\",function(){var g=this.logarithmic;g&&(this.lin2val=function(k){return g.lin2log(k)},this.val2lin=function(k){return g.log2lin(k)})})};return g}();g.compose(k);return g});P(A,\"parts/PlotLineOrBand.js\",[A[\"parts/Globals.js\"],A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){var v=H.arrayMax,K=H.arrayMin,G=H.defined,N=H.destroyObjectProperties,M=H.erase,y=H.extend,\nI=H.merge,J=H.objectEach,E=H.pick,D=function(){function g(t,q){this.axis=t;q&&(this.options=q,this.id=q.id)}g.prototype.render=function(){k.fireEvent(this,\"render\");var t=this,q=t.axis,r=q.horiz,h=q.logarithmic,f=t.options,a=f.label,l=t.label,e=f.to,c=f.from,m=f.value,u=G(c)&&G(e),L=G(m),F=t.svgElem,w=!F,p=[],C=f.color,O=E(f.zIndex,0),B=f.events;p={\"class\":\"highcharts-plot-\"+(u?\"band \":\"line \")+(f.className||\"\")};var d={},b=q.chart.renderer,n=u?\"bands\":\"lines\";h&&(c=h.log2lin(c),e=h.log2lin(e),m=\nh.log2lin(m));q.chart.styledMode||(L?(p.stroke=C||\"#999999\",p[\"stroke-width\"]=E(f.width,1),f.dashStyle&&(p.dashstyle=f.dashStyle)):u&&(p.fill=C||\"#e6ebf5\",f.borderWidth&&(p.stroke=f.borderColor,p[\"stroke-width\"]=f.borderWidth)));d.zIndex=O;n+=\"-\"+O;(h=q.plotLinesAndBandsGroups[n])||(q.plotLinesAndBandsGroups[n]=h=b.g(\"plot-\"+n).attr(d).add());w&&(t.svgElem=F=b.path().attr(p).add(h));if(L)p=q.getPlotLinePath({value:m,lineWidth:F.strokeWidth(),acrossPanes:f.acrossPanes});else if(u)p=q.getPlotBandPath(c,\ne,f);else return;(w||!F.d)&&p&&p.length?(F.attr({d:p}),B&&J(B,function(b,d){F.on(d,function(b){B[d].apply(t,[b])})})):F&&(p?(F.show(!0),F.animate({d:p})):F.d&&(F.hide(),l&&(t.label=l=l.destroy())));a&&(G(a.text)||G(a.formatter))&&p&&p.length&&0<q.width&&0<q.height&&!p.isFlat?(a=I({align:r&&u&&\"center\",x:r?!u&&4:10,verticalAlign:!r&&u&&\"middle\",y:r?u?16:10:u?6:-4,rotation:r&&!u&&90},a),this.renderLabel(a,p,u,O)):l&&l.hide();return t};g.prototype.renderLabel=function(t,q,r,h){var f=this.label,a=this.axis.chart.renderer;\nf||(f={align:t.textAlign||t.align,rotation:t.rotation,\"class\":\"highcharts-plot-\"+(r?\"band\":\"line\")+\"-label \"+(t.className||\"\")},f.zIndex=h,h=this.getLabelText(t),this.label=f=a.text(h,0,0,t.useHTML).attr(f).add(),this.axis.chart.styledMode||f.css(t.style));a=q.xBounds||[q[0][1],q[1][1],r?q[2][1]:q[0][1]];q=q.yBounds||[q[0][2],q[1][2],r?q[2][2]:q[0][2]];r=K(a);h=K(q);f.align(t,!1,{x:r,y:h,width:v(a)-r,height:v(q)-h});f.show(!0)};g.prototype.getLabelText=function(t){return G(t.formatter)?t.formatter.call(this):\nt.text};g.prototype.destroy=function(){M(this.axis.plotLinesAndBands,this);delete this.axis;N(this)};return g}();y(g.prototype,{getPlotBandPath:function(g,t){var q=this.getPlotLinePath({value:t,force:!0,acrossPanes:this.options.acrossPanes}),r=this.getPlotLinePath({value:g,force:!0,acrossPanes:this.options.acrossPanes}),h=[],f=this.horiz,a=1;g=g<this.min&&t<this.min||g>this.max&&t>this.max;if(r&&q){if(g){var l=r.toString()===q.toString();a=0}for(g=0;g<r.length;g+=2){t=r[g];var e=r[g+1],c=q[g],m=q[g+\n1];\"M\"!==t[0]&&\"L\"!==t[0]||\"M\"!==e[0]&&\"L\"!==e[0]||\"M\"!==c[0]&&\"L\"!==c[0]||\"M\"!==m[0]&&\"L\"!==m[0]||(f&&c[1]===t[1]?(c[1]+=a,m[1]+=a):f||c[2]!==t[2]||(c[2]+=a,m[2]+=a),h.push([\"M\",t[1],t[2]],[\"L\",e[1],e[2]],[\"L\",m[1],m[2]],[\"L\",c[1],c[2]],[\"Z\"]));h.isFlat=l}}return h},addPlotBand:function(g){return this.addPlotBandOrLine(g,\"plotBands\")},addPlotLine:function(g){return this.addPlotBandOrLine(g,\"plotLines\")},addPlotBandOrLine:function(g,t){var q=(new D(this,g)).render(),r=this.userOptions;if(q){if(t){var h=\nr[t]||[];h.push(g);r[t]=h}this.plotLinesAndBands.push(q)}return q},removePlotBandOrLine:function(g){for(var t=this.plotLinesAndBands,q=this.options,r=this.userOptions,h=t.length;h--;)t[h].id===g&&t[h].destroy();[q.plotLines||[],r.plotLines||[],q.plotBands||[],r.plotBands||[]].forEach(function(f){for(h=f.length;h--;)(f[h]||{}).id===g&&M(f,f[h])})},removePlotBand:function(g){this.removePlotBandOrLine(g)},removePlotLine:function(g){this.removePlotBandOrLine(g)}});k.PlotLineOrBand=D;return k.PlotLineOrBand});\nP(A,\"parts/Tooltip.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.clamp,v=g.css,K=g.defined,G=g.discardElement,N=g.extend,M=g.fireEvent,y=g.format,I=g.isNumber,J=g.isString,E=g.merge,D=g.pick,z=g.splat,t=g.syncTimeout,q=g.timeUnits;\"\";var r=k.doc,h=function(){function f(a,f){this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=a;this.init(a,f)}f.prototype.applyFilter=function(){var a=this.chart;a.renderer.definition({tagName:\"filter\",\nid:\"drop-shadow-\"+a.index,opacity:.5,children:[{tagName:\"feGaussianBlur\",\"in\":\"SourceAlpha\",stdDeviation:1},{tagName:\"feOffset\",dx:1,dy:1},{tagName:\"feComponentTransfer\",children:[{tagName:\"feFuncA\",type:\"linear\",slope:.3}]},{tagName:\"feMerge\",children:[{tagName:\"feMergeNode\"},{tagName:\"feMergeNode\",\"in\":\"SourceGraphic\"}]}]});a.renderer.definition({tagName:\"style\",textContent:\".highcharts-tooltip-\"+a.index+\"{filter:url(#drop-shadow-\"+a.index+\")}\"})};f.prototype.bodyFormatter=function(a){return a.map(function(a){var e=\na.series.tooltipOptions;return(e[(a.point.formatPrefix||\"point\")+\"Formatter\"]||a.point.tooltipFormatter).call(a.point,e[(a.point.formatPrefix||\"point\")+\"Format\"]||\"\")})};f.prototype.cleanSplit=function(a){this.chart.series.forEach(function(f){var e=f&&f.tt;e&&(!e.isActive||a?f.tt=e.destroy():e.isActive=!1)})};f.prototype.defaultFormatter=function(a){var f=this.points||z(this);var e=[a.tooltipFooterHeaderFormatter(f[0])];e=e.concat(a.bodyFormatter(f));e.push(a.tooltipFooterHeaderFormatter(f[0],!0));\nreturn e};f.prototype.destroy=function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());this.renderer&&(this.renderer=this.renderer.destroy(),G(this.container));g.clearTimeout(this.hideTimer);g.clearTimeout(this.tooltipTimeout)};f.prototype.getAnchor=function(a,f){var e=this.chart,c=e.pointer,m=e.inverted,u=e.plotTop,h=e.plotLeft,l=0,w=0,p,C;a=z(a);this.followPointer&&f?(\"undefined\"===typeof f.chartX&&(f=c.normalize(f)),\na=[f.chartX-h,f.chartY-u]):a[0].tooltipPos?a=a[0].tooltipPos:(a.forEach(function(a){p=a.series.yAxis;C=a.series.xAxis;l+=a.plotX+(!m&&C?C.left-h:0);w+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!m&&p?p.top-u:0)}),l/=a.length,w/=a.length,a=[m?e.plotWidth-w:l,this.shared&&!m&&1<a.length&&f?f.chartY-u:m?e.plotHeight-l:w]);return a.map(Math.round)};f.prototype.getDateFormat=function(a,f,e,c){var m=this.chart.time,u=m.dateFormat(\"%m-%d %H:%M:%S.%L\",f),h={millisecond:15,second:12,minute:9,hour:6,day:3},\nl=\"millisecond\";for(w in q){if(a===q.week&&+m.dateFormat(\"%w\",f)===e&&\"00:00:00.000\"===u.substr(6)){var w=\"week\";break}if(q[w]>a){w=l;break}if(h[w]&&u.substr(h[w])!==\"01-01 00:00:00.000\".substr(h[w]))break;\"week\"!==w&&(l=w)}if(w)var p=m.resolveDTLFormat(c[w]).main;return p};f.prototype.getLabel=function(){var a,f,e=this,c=this.chart.renderer,m=this.chart.styledMode,u=this.options,h=\"tooltip\"+(K(u.className)?\" \"+u.className:\"\"),F=(null===(a=u.style)||void 0===a?void 0:a.pointerEvents)||(!this.followPointer&&\nu.stickOnContact?\"auto\":\"none\"),w;a=function(){e.inContact=!0};var p=function(){var a=e.chart.hoverSeries;e.inContact=!1;if(a&&a.onMouseOut)a.onMouseOut()};if(!this.label){this.outside&&(this.container=w=k.doc.createElement(\"div\"),w.className=\"highcharts-tooltip-container\",v(w,{position:\"absolute\",top:\"1px\",pointerEvents:F,zIndex:3}),k.doc.body.appendChild(w),this.renderer=c=new k.Renderer(w,0,0,null===(f=this.chart.options.chart)||void 0===f?void 0:f.style,void 0,void 0,c.styledMode));this.split?\nthis.label=c.g(h):(this.label=c.label(\"\",0,0,u.shape||\"callout\",null,null,u.useHTML,null,h).attr({padding:u.padding,r:u.borderRadius}),m||this.label.attr({fill:u.backgroundColor,\"stroke-width\":u.borderWidth}).css(u.style).css({pointerEvents:F}).shadow(u.shadow));m&&(this.applyFilter(),this.label.addClass(\"highcharts-tooltip-\"+this.chart.index));if(e.outside&&!e.split){var C={x:this.label.xSetter,y:this.label.ySetter};this.label.xSetter=function(a,c){C[c].call(this.label,e.distance);w.style.left=a+\n\"px\"};this.label.ySetter=function(a,c){C[c].call(this.label,e.distance);w.style.top=a+\"px\"}}this.label.on(\"mouseenter\",a).on(\"mouseleave\",p).attr({zIndex:8}).add()}return this.label};f.prototype.getPosition=function(a,f,e){var c=this.chart,m=this.distance,u={},h=c.inverted&&e.h||0,l,w=this.outside,p=w?r.documentElement.clientWidth-2*m:c.chartWidth,C=w?Math.max(r.body.scrollHeight,r.documentElement.scrollHeight,r.body.offsetHeight,r.documentElement.offsetHeight,r.documentElement.clientHeight):c.chartHeight,\nt=c.pointer.getChartPosition(),B=c.containerScaling,d=function(b){return B?b*B.scaleX:b},b=function(b){return B?b*B.scaleY:b},n=function(n){var u=\"x\"===n;return[n,u?p:C,u?a:f].concat(w?[u?d(a):b(f),u?t.left-m+d(e.plotX+c.plotLeft):t.top-m+b(e.plotY+c.plotTop),0,u?p:C]:[u?a:f,u?e.plotX+c.plotLeft:e.plotY+c.plotTop,u?c.plotLeft:c.plotTop,u?c.plotLeft+c.plotWidth:c.plotTop+c.plotHeight])},x=n(\"y\"),q=n(\"x\"),g=!this.followPointer&&D(e.ttBelow,!c.inverted===!!e.negative),z=function(a,c,e,f,n,p,w){var x=\n\"y\"===a?b(m):d(m),l=(e-f)/2,C=f<n-m,F=n+m+f<c,B=n-x-e+l;n=n+x-l;if(g&&F)u[a]=n;else if(!g&&C)u[a]=B;else if(C)u[a]=Math.min(w-f,0>B-h?B:B-h);else if(F)u[a]=Math.max(p,n+h+e>c?n:n+h);else return!1},k=function(b,d,a,c,e){var f;e<m||e>d-m?f=!1:u[b]=e<a/2?1:e>d-c/2?d-c-2:e-a/2;return f},y=function(b){var d=x;x=q;q=d;l=b},E=function(){!1!==z.apply(0,x)?!1!==k.apply(0,q)||l||(y(!0),E()):l?u.x=u.y=0:(y(!0),E())};(c.inverted||1<this.len)&&y();E();return u};f.prototype.getXDateFormat=function(a,f,e){f=f.dateTimeLabelFormats;\nvar c=e&&e.closestPointRange;return(c?this.getDateFormat(c,a.x,e.options.startOfWeek,f):f.day)||f.year};f.prototype.hide=function(a){var f=this;g.clearTimeout(this.hideTimer);a=D(a,this.options.hideDelay,500);this.isHidden||(this.hideTimer=t(function(){f.getLabel().fadeOut(a?void 0:a);f.isHidden=!0},a))};f.prototype.init=function(a,f){this.chart=a;this.options=f;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=f.split&&!a.inverted&&!a.polar;this.shared=f.shared||this.split;this.outside=\nD(f.outside,!(!a.scrollablePixelsX&&!a.scrollablePixelsY))};f.prototype.isStickyOnContact=function(){return!(this.followPointer||!this.options.stickOnContact||!this.inContact)};f.prototype.move=function(a,f,e,c){var m=this,u=m.now,h=!1!==m.options.animation&&!m.isHidden&&(1<Math.abs(a-u.x)||1<Math.abs(f-u.y)),l=m.followPointer||1<m.len;N(u,{x:h?(2*u.x+a)/3:a,y:h?(u.y+f)/2:f,anchorX:l?void 0:h?(2*u.anchorX+e)/3:e,anchorY:l?void 0:h?(u.anchorY+c)/2:c});m.getLabel().attr(u);m.drawTracker();h&&(g.clearTimeout(this.tooltipTimeout),\nthis.tooltipTimeout=setTimeout(function(){m&&m.move(a,f,e,c)},32))};f.prototype.refresh=function(a,f){var e=this.chart,c=this.options,m=a,u={},h=[],l=c.formatter||this.defaultFormatter;u=this.shared;var w=e.styledMode;if(c.enabled){g.clearTimeout(this.hideTimer);this.followPointer=z(m)[0].series.tooltipOptions.followPointer;var p=this.getAnchor(m,f);f=p[0];var C=p[1];!u||m.series&&m.series.noSharedTooltip?u=m.getLabelConfig():(e.pointer.applyInactiveState(m),m.forEach(function(a){a.setState(\"hover\");\nh.push(a.getLabelConfig())}),u={x:m[0].category,y:m[0].y},u.points=h,m=m[0]);this.len=h.length;e=l.call(u,this);l=m.series;this.distance=D(l.tooltipOptions.distance,16);!1===e?this.hide():(this.split?this.renderSplit(e,z(a)):(a=this.getLabel(),c.style.width&&!w||a.css({width:this.chart.spacingBox.width+\"px\"}),a.attr({text:e&&e.join?e.join(\"\"):e}),a.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\"+D(m.colorIndex,l.colorIndex)),w||a.attr({stroke:c.borderColor||m.color||l.color||\"#666666\"}),\nthis.updatePosition({plotX:f,plotY:C,negative:m.negative,ttBelow:m.ttBelow,h:p[2]||0})),this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1);M(this,\"refresh\")}};f.prototype.renderSplit=function(a,f){function e(b,d,a,c,e){void 0===e&&(e=!0);a?(d=y?0:I,b=H(b-c/2,g.left,g.right-c)):(d-=E,b=e?b-c-x:b+x,b=H(b,e?b:g.left,g.right));return{x:b,y:d}}var c=this,m=c.chart,u=c.chart,h=u.plotHeight,l=u.plotLeft,w=u.plotTop,p=u.pointer,C=u.renderer,r=u.scrollablePixelsY,B=void 0===r?\n0:r;r=u.scrollingContainer;r=void 0===r?{scrollLeft:0,scrollTop:0}:r;var d=r.scrollLeft,b=r.scrollTop,n=u.styledMode,x=c.distance,q=c.options,t=c.options.positioner,g={left:d,right:d+u.chartWidth,top:b,bottom:b+u.chartHeight},z=c.getLabel(),y=!(!m.xAxis[0]||!m.xAxis[0].opposite),E=w+b,v=0,I=h-B;J(a)&&(a=[!1,a]);a=a.slice(0,f.length+1).reduce(function(d,a,m){if(!1!==a&&\"\"!==a){m=f[m-1]||{isHeader:!0,plotX:f[0].plotX,plotY:h,series:{}};var u=m.isHeader,p=u?c:m.series,F=p.tt,r=m.isHeader;var L=m.series;\nvar O=\"highcharts-color-\"+D(m.colorIndex,L.colorIndex,\"none\");F||(F={padding:q.padding,r:q.borderRadius},n||(F.fill=q.backgroundColor,F[\"stroke-width\"]=q.borderWidth),F=C.label(\"\",0,0,q[r?\"headerShape\":\"shape\"]||\"callout\",void 0,void 0,q.useHTML).addClass((r?\"highcharts-tooltip-header \":\"\")+\"highcharts-tooltip-box \"+O).attr(F).add(z));F.isActive=!0;F.attr({text:a});n||F.css(q.style).shadow(q.shadow).attr({stroke:q.borderColor||m.color||L.color||\"#333333\"});a=p.tt=F;r=a.getBBox();p=r.width+a.strokeWidth();\nu&&(v=r.height,I+=v,y&&(E-=v));L=m.plotX;L=void 0===L?0:L;O=m.plotY;O=void 0===O?0:O;var k=m.series;if(m.isHeader){L=l+L;var Q=w+h/2}else F=k.xAxis,k=k.yAxis,L=F.pos+H(L,-x,F.len+x),k.pos+O>=b+w&&k.pos+O<=b+w+h-B&&(Q=k.pos+O);L=H(L,g.left-x,g.right+x);\"number\"===typeof Q?(r=r.height+1,O=t?t.call(c,p,r,m):e(L,Q,u,p),d.push({align:t?0:void 0,anchorX:L,anchorY:Q,boxWidth:p,point:m,rank:D(O.rank,u?1:0),size:r,target:O.y,tt:a,x:O.x})):a.isActive=!1}return d},[]);!t&&a.some(function(b){return b.x<g.left})&&\n(a=a.map(function(b){var d=e(b.anchorX,b.anchorY,b.point.isHeader,b.boxWidth,!1);return N(b,{target:d.y,x:d.x})}));c.cleanSplit();k.distribute(a,I);a.forEach(function(b){var d=b.pos;b.tt.attr({visibility:\"undefined\"===typeof d?\"hidden\":\"inherit\",x:b.x,y:d+E,anchorX:b.anchorX,anchorY:b.anchorY})});a=c.container;m=c.renderer;c.outside&&a&&m&&(u=z.getBBox(),m.setSize(u.width+u.x,u.height+u.y,!1),p=p.getChartPosition(),a.style.left=p.left+\"px\",a.style.top=p.top+\"px\")};f.prototype.drawTracker=function(){if(this.followPointer||\n!this.options.stickOnContact)this.tracker&&this.tracker.destroy();else{var a=this.chart,f=this.label,e=a.hoverPoint;if(f&&e){var c={x:0,y:0,width:0,height:0};e=this.getAnchor(e);var m=f.getBBox();e[0]+=a.plotLeft-f.translateX;e[1]+=a.plotTop-f.translateY;c.x=Math.min(0,e[0]);c.y=Math.min(0,e[1]);c.width=0>e[0]?Math.max(Math.abs(e[0]),m.width-e[0]):Math.max(Math.abs(e[0]),m.width);c.height=0>e[1]?Math.max(Math.abs(e[1]),m.height-Math.abs(e[1])):Math.max(Math.abs(e[1]),m.height);this.tracker?this.tracker.attr(c):\n(this.tracker=f.renderer.rect(c).addClass(\"highcharts-tracker\").add(f),a.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}};f.prototype.styledModeFormat=function(a){return a.replace('style=\"font-size: 10px\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex}\"')};f.prototype.tooltipFooterHeaderFormatter=function(a,f){var e=f?\"footer\":\"header\",c=a.series,m=c.tooltipOptions,u=m.xDateFormat,h=c.xAxis,l=h&&\"datetime\"===h.options.type&&\nI(a.key),w=m[e+\"Format\"];f={isFooter:f,labelConfig:a};M(this,\"headerFormatter\",f,function(e){l&&!u&&(u=this.getXDateFormat(a,m,h));l&&u&&(a.point&&a.point.tooltipDateKeys||[\"key\"]).forEach(function(a){w=w.replace(\"{point.\"+a+\"}\",\"{point.\"+a+\":\"+u+\"}\")});c.chart.styledMode&&(w=this.styledModeFormat(w));e.text=y(w,{point:a,series:c},this.chart)});return f.text};f.prototype.update=function(a){this.destroy();E(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,E(!0,this.options,a))};f.prototype.updatePosition=\nfunction(a){var f=this.chart,e=f.pointer,c=this.getLabel(),m=a.plotX+f.plotLeft,u=a.plotY+f.plotTop;e=e.getChartPosition();a=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);if(this.outside){var h=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(c.width+h,c.height+h,!1);if(f=f.containerScaling)v(this.container,{transform:\"scale(\"+f.scaleX+\", \"+f.scaleY+\")\"}),m*=f.scaleX,u*=f.scaleY;m+=e.left-a.x;u+=e.top-a.y}this.move(Math.round(a.x),Math.round(a.y||0),\nm,u)};return f}();k.Tooltip=h;return k.Tooltip});P(A,\"parts/Pointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"parts/Tooltip.js\"],A[\"parts/Color.js\"]],function(k,g,H,v){var K=g.addEvent,G=g.attr,N=g.css,M=g.defined,y=g.extend,I=g.find,J=g.fireEvent,E=g.isNumber,D=g.isObject,z=g.objectEach,t=g.offset,q=g.pick,r=g.splat,h=v.parse,f=k.charts,a=k.noop;g=function(){function l(a,c){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.chart=a;this.hasDragged=!1;this.options=c;this.unbindContainerMouseLeave=\nfunction(){};this.init(a,c)}l.prototype.applyInactiveState=function(a){var c=[],e;(a||[]).forEach(function(a){e=a.series;c.push(e);e.linkedParent&&c.push(e.linkedParent);e.linkedSeries&&(c=c.concat(e.linkedSeries));e.navigatorSeries&&c.push(e.navigatorSeries)});this.chart.series.forEach(function(a){-1===c.indexOf(a)?a.setState(\"inactive\",!0):a.options.inactiveOtherPoints&&a.setAllPointsToState(\"inactive\")})};l.prototype.destroy=function(){var a=this;\"undefined\"!==typeof a.unDocMouseMove&&a.unDocMouseMove();\nthis.unbindContainerMouseLeave();k.chartCount||(k.unbindDocumentMouseUp&&(k.unbindDocumentMouseUp=k.unbindDocumentMouseUp()),k.unbindDocumentTouchEnd&&(k.unbindDocumentTouchEnd=k.unbindDocumentTouchEnd()));clearInterval(a.tooltipTimeout);z(a,function(c,e){a[e]=null})};l.prototype.drag=function(a){var c=this.chart,e=c.options.chart,f=a.chartX,l=a.chartY,F=this.zoomHor,w=this.zoomVert,p=c.plotLeft,C=c.plotTop,r=c.plotWidth,B=c.plotHeight,d=this.selectionMarker,b=this.mouseDownX||0,n=this.mouseDownY||\n0,x=D(e.panning)?e.panning&&e.panning.enabled:e.panning,q=e.panKey&&a[e.panKey+\"Key\"];if(!d||!d.touch)if(f<p?f=p:f>p+r&&(f=p+r),l<C?l=C:l>C+B&&(l=C+B),this.hasDragged=Math.sqrt(Math.pow(b-f,2)+Math.pow(n-l,2)),10<this.hasDragged){var t=c.isInsidePlot(b-p,n-C);c.hasCartesianSeries&&(this.zoomX||this.zoomY)&&t&&!q&&!d&&(this.selectionMarker=d=c.renderer.rect(p,C,F?1:r,w?1:B,0).attr({\"class\":\"highcharts-selection-marker\",zIndex:7}).add(),c.styledMode||d.attr({fill:e.selectionMarkerFill||h(\"#335cad\").setOpacity(.25).get()}));\nd&&F&&(f-=b,d.attr({width:Math.abs(f),x:(0<f?0:f)+b}));d&&w&&(f=l-n,d.attr({height:Math.abs(f),y:(0<f?0:f)+n}));t&&!d&&x&&c.pan(a,e.panning)}};l.prototype.dragStart=function(a){var c=this.chart;c.mouseIsDown=a.type;c.cancelClick=!1;c.mouseDownX=this.mouseDownX=a.chartX;c.mouseDownY=this.mouseDownY=a.chartY};l.prototype.drop=function(a){var c=this,e=this.chart,f=this.hasPinched;if(this.selectionMarker){var h={originalEvent:a,xAxis:[],yAxis:[]},l=this.selectionMarker,w=l.attr?l.attr(\"x\"):l.x,p=l.attr?\nl.attr(\"y\"):l.y,C=l.attr?l.attr(\"width\"):l.width,r=l.attr?l.attr(\"height\"):l.height,B;if(this.hasDragged||f)e.axes.forEach(function(d){if(d.zoomEnabled&&M(d.min)&&(f||c[{xAxis:\"zoomX\",yAxis:\"zoomY\"}[d.coll]])){var b=d.horiz,e=\"touchend\"===a.type?d.minPixelPadding:0,m=d.toValue((b?w:p)+e);b=d.toValue((b?w+C:p+r)-e);h[d.coll].push({axis:d,min:Math.min(m,b),max:Math.max(m,b)});B=!0}}),B&&J(e,\"selection\",h,function(d){e.zoom(y(d,f?{animation:!1}:null))});E(e.index)&&(this.selectionMarker=this.selectionMarker.destroy());\nf&&this.scaleGroups()}e&&E(e.index)&&(N(e.container,{cursor:e._cursor}),e.cancelClick=10<this.hasDragged,e.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])};l.prototype.findNearestKDPoint=function(a,c,f){var e=this.chart,m=e.hoverPoint;e=e.tooltip;if(m&&e&&e.isStickyOnContact())return m;var h;a.forEach(function(a){var e=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf(\"y\");a=a.searchPoint(f,e);if((e=D(a,!0))&&!(e=!D(h,!0))){e=h.distX-a.distX;var m=h.dist-a.dist,u=(a.series.group&&\na.series.group.zIndex)-(h.series.group&&h.series.group.zIndex);e=0<(0!==e&&c?e:0!==m?m:0!==u?u:h.series.index>a.series.index?-1:1)}e&&(h=a)});return h};l.prototype.getChartCoordinatesFromPoint=function(a,c){var e=a.series,f=e.xAxis;e=e.yAxis;var h=q(a.clientX,a.plotX),l=a.shapeArgs;if(f&&e)return c?{chartX:f.len+f.pos-h,chartY:e.len+e.pos-a.plotY}:{chartX:h+f.pos,chartY:a.plotY+e.pos};if(l&&l.x&&l.y)return{chartX:l.x,chartY:l.y}};l.prototype.getChartPosition=function(){return this.chartPosition||\n(this.chartPosition=t(this.chart.container))};l.prototype.getCoordinates=function(a){var c={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(e){c[e.isXAxis?\"xAxis\":\"yAxis\"].push({axis:e,value:e.toValue(a[e.horiz?\"chartX\":\"chartY\"])})});return c};l.prototype.getHoverData=function(a,c,f,h,l,F){var e,m=[];h=!(!h||!a);var u=c&&!c.stickyTracking,r={chartX:F?F.chartX:void 0,chartY:F?F.chartY:void 0,shared:l};J(this,\"beforeGetHoverData\",r);u=u?[c]:f.filter(function(a){return r.filter?r.filter(a):a.visible&&\n!(!l&&a.directTouch)&&q(a.options.enableMouseTracking,!0)&&a.stickyTracking});c=(e=h||!F?a:this.findNearestKDPoint(u,l,F))&&e.series;e&&(l&&!c.noSharedTooltip?(u=f.filter(function(a){return r.filter?r.filter(a):a.visible&&!(!l&&a.directTouch)&&q(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),u.forEach(function(a){var d=I(a.points,function(b){return b.x===e.x&&!b.isNull});D(d)&&(a.chart.isBoosting&&(d=a.getPoint(d)),m.push(d))})):m.push(e));r={hoverPoint:e};J(this,\"afterGetHoverData\",r);return{hoverPoint:r.hoverPoint,\nhoverSeries:c,hoverPoints:m}};l.prototype.getPointFromEvent=function(a){a=a.target;for(var c;a&&!c;)c=a.point,a=a.parentNode;return c};l.prototype.onTrackerMouseOut=function(a){a=a.relatedTarget||a.toElement;var c=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!c||!a||c.stickyTracking||this.inClass(a,\"highcharts-tooltip\")||this.inClass(a,\"highcharts-series-\"+c.index)&&this.inClass(a,\"highcharts-tracker\")))c.onMouseOut()};l.prototype.inClass=function(a,c){for(var e;a;){if(e=G(a,\"class\")){if(-1!==\ne.indexOf(c))return!0;if(-1!==e.indexOf(\"highcharts-container\"))return!1}a=a.parentNode}};l.prototype.init=function(a,c){this.options=c;this.chart=a;this.runChartClick=c.chart.events&&!!c.chart.events.click;this.pinchDown=[];this.lastValidTouch={};H&&(a.tooltip=new H(a,c.tooltip),this.followTouchMove=q(c.tooltip.followTouchMove,!0));this.setDOMEvents()};l.prototype.normalize=function(a,c){var e=a.touches,f=e?e.length?e.item(0):e.changedTouches[0]:a;c||(c=this.getChartPosition());e=f.pageX-c.left;\nc=f.pageY-c.top;if(f=this.chart.containerScaling)e/=f.scaleX,c/=f.scaleY;return y(a,{chartX:Math.round(e),chartY:Math.round(c)})};l.prototype.onContainerClick=function(a){var c=this.chart,e=c.hoverPoint;a=this.normalize(a);var f=c.plotLeft,h=c.plotTop;c.cancelClick||(e&&this.inClass(a.target,\"highcharts-tracker\")?(J(e.series,\"click\",y(a,{point:e})),c.hoverPoint&&e.firePointEvent(\"click\",a)):(y(a,this.getCoordinates(a)),c.isInsidePlot(a.chartX-f,a.chartY-h)&&J(c,\"click\",a)))};l.prototype.onContainerMouseDown=\nfunction(a){a=this.normalize(a);if(k.isFirefox&&0!==a.button)this.onContainerMouseMove(a);if(\"undefined\"===typeof a.button||1===((a.buttons||a.button)&1))this.zoomOption(a),this.dragStart(a)};l.prototype.onContainerMouseLeave=function(a){var c=f[q(k.hoverChartIndex,-1)],e=this.chart.tooltip;a=this.normalize(a);c&&(a.relatedTarget||a.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=void 0);e&&!e.isHidden&&this.reset()};l.prototype.onContainerMouseMove=function(a){var c=this.chart;a=this.normalize(a);\nthis.setHoverChartIndex();a.preventDefault||(a.returnValue=!1);\"mousedown\"===c.mouseIsDown&&this.drag(a);c.openMenu||!this.inClass(a.target,\"highcharts-tracker\")&&!c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)||this.runPointActions(a)};l.prototype.onDocumentTouchEnd=function(a){f[k.hoverChartIndex]&&f[k.hoverChartIndex].pointer.drop(a)};l.prototype.onContainerTouchMove=function(a){this.touch(a)};l.prototype.onContainerTouchStart=function(a){this.zoomOption(a);this.touch(a,!0)};l.prototype.onDocumentMouseMove=\nfunction(a){var c=this.chart,e=this.chartPosition;a=this.normalize(a,e);var f=c.tooltip;!e||f&&f.isStickyOnContact()||c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)||this.inClass(a.target,\"highcharts-tracker\")||this.reset()};l.prototype.onDocumentMouseUp=function(a){var c=f[q(k.hoverChartIndex,-1)];c&&c.pointer.drop(a)};l.prototype.pinch=function(e){var c=this,f=c.chart,h=c.pinchDown,l=e.touches||[],F=l.length,w=c.lastValidTouch,p=c.hasZoom,C=c.selectionMarker,r={},B=1===F&&(c.inClass(e.target,\n\"highcharts-tracker\")&&f.runTrackerClick||c.runChartClick),d={};1<F&&(c.initiated=!0);p&&c.initiated&&!B&&e.preventDefault();[].map.call(l,function(b){return c.normalize(b)});\"touchstart\"===e.type?([].forEach.call(l,function(b,d){h[d]={chartX:b.chartX,chartY:b.chartY}}),w.x=[h[0].chartX,h[1]&&h[1].chartX],w.y=[h[0].chartY,h[1]&&h[1].chartY],f.axes.forEach(function(b){if(b.zoomEnabled){var d=f.bounds[b.horiz?\"h\":\"v\"],a=b.minPixelPadding,c=b.toPixels(Math.min(q(b.options.min,b.dataMin),b.dataMin)),\ne=b.toPixels(Math.max(q(b.options.max,b.dataMax),b.dataMax)),h=Math.max(c,e);d.min=Math.min(b.pos,Math.min(c,e)-a);d.max=Math.max(b.pos+b.len,h+a)}}),c.res=!0):c.followTouchMove&&1===F?this.runPointActions(c.normalize(e)):h.length&&(C||(c.selectionMarker=C=y({destroy:a,touch:!0},f.plotBox)),c.pinchTranslate(h,l,r,C,d,w),c.hasPinched=p,c.scaleGroups(r,d),c.res&&(c.res=!1,this.reset(!1,0)))};l.prototype.pinchTranslate=function(a,c,f,h,l,F){this.zoomHor&&this.pinchTranslateDirection(!0,a,c,f,h,l,F);\nthis.zoomVert&&this.pinchTranslateDirection(!1,a,c,f,h,l,F)};l.prototype.pinchTranslateDirection=function(a,c,f,h,l,F,w,p){var e=this.chart,m=a?\"x\":\"y\",u=a?\"X\":\"Y\",d=\"chart\"+u,b=a?\"width\":\"height\",n=e[\"plot\"+(a?\"Left\":\"Top\")],x,r,q=p||1,t=e.inverted,g=e.bounds[a?\"h\":\"v\"],L=1===c.length,k=c[0][d],z=f[0][d],y=!L&&c[1][d],D=!L&&f[1][d];f=function(){\"number\"===typeof D&&20<Math.abs(k-y)&&(q=p||Math.abs(z-D)/Math.abs(k-y));r=(n-z)/q+k;x=e[\"plot\"+(a?\"Width\":\"Height\")]/q};f();c=r;if(c<g.min){c=g.min;var E=\n!0}else c+x>g.max&&(c=g.max-x,E=!0);E?(z-=.8*(z-w[m][0]),\"number\"===typeof D&&(D-=.8*(D-w[m][1])),f()):w[m]=[z,D];t||(F[m]=r-n,F[b]=x);F=t?1/q:q;l[b]=x;l[m]=c;h[t?a?\"scaleY\":\"scaleX\":\"scale\"+u]=q;h[\"translate\"+u]=F*n+(z-F*k)};l.prototype.reset=function(a,c){var e=this.chart,f=e.hoverSeries,h=e.hoverPoint,l=e.hoverPoints,w=e.tooltip,p=w&&w.shared?l:h;a&&p&&r(p).forEach(function(c){c.series.isCartesian&&\"undefined\"===typeof c.plotX&&(a=!1)});if(a)w&&p&&r(p).length&&(w.refresh(p),w.shared&&l?l.forEach(function(a){a.setState(a.state,\n!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):h&&(h.setState(h.state,!0),e.axes.forEach(function(a){a.crosshair&&h.series[a.coll]===a&&a.drawCrosshair(null,h)})));else{if(h)h.onMouseOut();l&&l.forEach(function(a){a.setState()});if(f)f.onMouseOut();w&&w.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());e.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=e.hoverPoints=\ne.hoverPoint=null}};l.prototype.runPointActions=function(a,c){var e=this.chart,h=e.tooltip&&e.tooltip.options.enabled?e.tooltip:void 0,l=h?h.shared:!1,F=c||e.hoverPoint,w=F&&F.series||e.hoverSeries;w=this.getHoverData(F,w,e.series,(!a||\"touchmove\"!==a.type)&&(!!c||w&&w.directTouch&&this.isDirectTouch),l,a);F=w.hoverPoint;var p=w.hoverPoints;c=(w=w.hoverSeries)&&w.tooltipOptions.followPointer;l=l&&w&&!w.noSharedTooltip;if(F&&(F!==e.hoverPoint||h&&h.isHidden)){(e.hoverPoints||[]).forEach(function(a){-1===\np.indexOf(a)&&a.setState()});if(e.hoverSeries!==w)w.onMouseOver();this.applyInactiveState(p);(p||[]).forEach(function(a){a.setState(\"hover\")});e.hoverPoint&&e.hoverPoint.firePointEvent(\"mouseOut\");if(!F.series)return;F.firePointEvent(\"mouseOver\");e.hoverPoints=p;e.hoverPoint=F;h&&h.refresh(l?p:F,a)}else c&&h&&!h.isHidden&&(F=h.getAnchor([{}],a),h.updatePosition({plotX:F[0],plotY:F[1]}));this.unDocMouseMove||(this.unDocMouseMove=K(e.container.ownerDocument,\"mousemove\",function(a){var c=f[k.hoverChartIndex];\nif(c)c.pointer.onDocumentMouseMove(a)}));e.axes.forEach(function(c){var f=q((c.crosshair||{}).snap,!0),h;f&&((h=e.hoverPoint)&&h.series[c.coll]===c||(h=I(p,function(d){return d.series[c.coll]===c})));h||!f?c.drawCrosshair(a,h):c.hideCrosshair()})};l.prototype.scaleGroups=function(a,c){var e=this.chart,f;e.series.forEach(function(h){f=a||h.getPlotBox();h.xAxis&&h.xAxis.zoomEnabled&&h.group&&(h.group.attr(f),h.markerGroup&&(h.markerGroup.attr(f),h.markerGroup.clip(c?e.clipRect:null)),h.dataLabelsGroup&&\nh.dataLabelsGroup.attr(f))});e.clipRect.attr(c||e.clipBox)};l.prototype.setDOMEvents=function(){var a=this.chart.container,c=a.ownerDocument;a.onmousedown=this.onContainerMouseDown.bind(this);a.onmousemove=this.onContainerMouseMove.bind(this);a.onclick=this.onContainerClick.bind(this);this.unbindContainerMouseLeave=K(a,\"mouseleave\",this.onContainerMouseLeave.bind(this));k.unbindDocumentMouseUp||(k.unbindDocumentMouseUp=K(c,\"mouseup\",this.onDocumentMouseUp.bind(this)));k.hasTouch&&(K(a,\"touchstart\",\nthis.onContainerTouchStart.bind(this)),K(a,\"touchmove\",this.onContainerTouchMove.bind(this)),k.unbindDocumentTouchEnd||(k.unbindDocumentTouchEnd=K(c,\"touchend\",this.onDocumentTouchEnd.bind(this))))};l.prototype.setHoverChartIndex=function(){var a=this.chart,c=k.charts[q(k.hoverChartIndex,-1)];if(c&&c!==a)c.pointer.onContainerMouseLeave({relatedTarget:!0});c&&c.mouseIsDown||(k.hoverChartIndex=a.index)};l.prototype.touch=function(a,c){var e=this.chart,f;this.setHoverChartIndex();if(1===a.touches.length)if(a=\nthis.normalize(a),(f=e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop))&&!e.openMenu){c&&this.runPointActions(a);if(\"touchmove\"===a.type){c=this.pinchDown;var h=c[0]?4<=Math.sqrt(Math.pow(c[0].chartX-a.chartX,2)+Math.pow(c[0].chartY-a.chartY,2)):!1}q(h,!0)&&this.pinch(a)}else c&&this.reset();else 2===a.touches.length&&this.pinch(a)};l.prototype.zoomOption=function(a){var c=this.chart,f=c.options.chart,e=f.zoomType||\"\";c=c.inverted;/touch/.test(a.type)&&(e=q(f.pinchType,e));this.zoomX=a=/x/.test(e);\nthis.zoomY=e=/y/.test(e);this.zoomHor=a&&!c||e&&c;this.zoomVert=e&&!c||a&&c;this.hasZoom=a||e};return l}();k.Pointer=g;return k.Pointer});P(A,\"parts/MSPointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Pointer.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){function v(){var q=[];q.item=function(r){return this[r]};y(z,function(r){q.push({pageX:r.pageX,pageY:r.pageY,target:r.target})});return q}function K(q,r,h,f){\"touch\"!==q.pointerType&&q.pointerType!==q.MSPOINTER_TYPE_TOUCH||!J[k.hoverChartIndex]||(f(q),\nf=J[k.hoverChartIndex].pointer,f[r]({type:h,target:q.currentTarget,preventDefault:D,touches:v()}))}var G=this&&this.__extends||function(){var q=function(r,h){q=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,a){f.__proto__=a}||function(f,a){for(var h in a)a.hasOwnProperty(h)&&(f[h]=a[h])};return q(r,h)};return function(r,h){function f(){this.constructor=r}q(r,h);r.prototype=null===h?Object.create(h):(f.prototype=h.prototype,new f)}}(),N=H.addEvent,M=H.css,y=H.objectEach,I=H.removeEvent,\nJ=k.charts,E=k.doc,D=k.noop,z={},t=!!k.win.PointerEvent;return function(q){function r(){return null!==q&&q.apply(this,arguments)||this}G(r,q);r.prototype.batchMSEvents=function(h){h(this.chart.container,t?\"pointerdown\":\"MSPointerDown\",this.onContainerPointerDown);h(this.chart.container,t?\"pointermove\":\"MSPointerMove\",this.onContainerPointerMove);h(E,t?\"pointerup\":\"MSPointerUp\",this.onDocumentPointerUp)};r.prototype.destroy=function(){this.batchMSEvents(I);q.prototype.destroy.call(this)};r.prototype.init=\nfunction(h,f){q.prototype.init.call(this,h,f);this.hasZoom&&M(h.container,{\"-ms-touch-action\":\"none\",\"touch-action\":\"none\"})};r.prototype.onContainerPointerDown=function(h){K(h,\"onContainerTouchStart\",\"touchstart\",function(f){z[f.pointerId]={pageX:f.pageX,pageY:f.pageY,target:f.currentTarget}})};r.prototype.onContainerPointerMove=function(h){K(h,\"onContainerTouchMove\",\"touchmove\",function(f){z[f.pointerId]={pageX:f.pageX,pageY:f.pageY};z[f.pointerId].target||(z[f.pointerId].target=f.currentTarget)})};\nr.prototype.onDocumentPointerUp=function(h){K(h,\"onDocumentTouchEnd\",\"touchend\",function(f){delete z[f.pointerId]})};r.prototype.setDOMEvents=function(){q.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(N)};return r}(g)});P(A,\"parts/Legend.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.animObject,K=g.css,G=g.defined,N=g.discardElement,M=g.find,y=g.fireEvent,I=g.format,J=g.isNumber,E=g.merge,D=g.pick,z=g.relativeLength,\nt=g.setAnimation,q=g.stableSort,r=g.syncTimeout;g=g.wrap;var h=k.isFirefox,f=k.marginNames,a=k.win,l=function(){function a(a,f){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=\nvoid 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=a;this.init(a,f)}a.prototype.init=function(a,f){this.chart=a;this.setOptions(f);f.enabled&&(this.render(),H(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=H(this.chart,\"render\",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};a.prototype.setOptions=function(a){var c=D(a.padding,\n8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=E(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.itemMarginBottom=a.itemMarginBottom||0;this.padding=c;this.initialItemY=c-5;this.symbolWidth=D(a.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===a.layout&&!this.chart.inverted;this.baseline=void 0};a.prototype.update=function(a,f){var c=this.chart;this.setOptions(E(!0,this.options,a));this.destroy();c.isDirtyLegend=c.isDirtyBox=\n!0;D(f,!0)&&c.redraw();y(this,\"afterUpdate\")};a.prototype.colorizeItem=function(a,f){a.legendGroup[f?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){var c=this.options,e=a.legendItem,h=a.legendLine,m=a.legendSymbol,p=this.itemHiddenStyle.color;c=f?c.itemStyle.color:p;var l=f?a.color||p:p,r=a.options&&a.options.marker,q={fill:l};e&&e.css({fill:c,color:c});h&&h.attr({stroke:l});m&&(r&&m.isMarker&&(q=a.pointAttribs(),f||(q.stroke=q.fill=p)),m.attr(q))}y(this,\"afterColorizeItem\",\n{item:a,visible:f})};a.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};a.prototype.positionItem=function(a){var c=this.options,f=c.symbolPadding;c=!c.rtl;var e=a._legendItemPos,h=e[0];e=e[1];var w=a.checkbox;if((a=a.legendGroup)&&a.element)a[G(a.translateY)?\"animate\":\"attr\"]({translateX:c?h:this.legendWidth-h-2*f-4,translateY:e});w&&(w.x=h,w.y=e)};a.prototype.destroyItem=function(a){var c=a.checkbox;[\"legendItem\",\"legendLine\",\n\"legendSymbol\",\"legendGroup\"].forEach(function(c){a[c]&&(a[c]=a[c].destroy())});c&&N(a.checkbox)};a.prototype.destroy=function(){function a(a){this[a]&&(this[a]=this[a].destroy())}this.getAllItems().forEach(function(c){[\"legendItem\",\"legendGroup\"].forEach(a,c)});\"clipRect up down pager nav box title group\".split(\" \").forEach(a,this);this.display=null};a.prototype.positionCheckboxes=function(){var a=this.group&&this.group.alignAttr,f=this.clipHeight||this.legendHeight,e=this.titleHeight;if(a){var h=\na.translateY;this.allItems.forEach(function(c){var m=c.checkbox;if(m){var p=h+e+m.y+(this.scrollOffset||0)+3;K(m,{left:a.translateX+c.checkboxOffset+m.x-20+\"px\",top:p+\"px\",display:this.proximate||p>h-6&&p<h+f-6?\"\":\"none\"})}},this)}};a.prototype.renderTitle=function(){var a=this.options,f=this.padding,e=a.title,h=0;e.text&&(this.title||(this.title=this.chart.renderer.label(e.text,f-3,f-4,null,null,null,a.useHTML,null,\"legend-title\").attr({zIndex:1}),this.chart.styledMode||this.title.css(e.style),this.title.add(this.group)),\ne.width||this.title.css({width:this.maxLegendWidth+\"px\"}),a=this.title.getBBox(),h=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:h}));this.titleHeight=h};a.prototype.setText=function(a){var c=this.options;a.legendItem.attr({text:c.labelFormat?I(c.labelFormat,a,this.chart):c.labelFormatter.call(a)})};a.prototype.renderItem=function(a){var c=this.chart,f=c.renderer,e=this.options,h=this.symbolWidth,w=e.symbolPadding,p=this.itemStyle,l=this.itemHiddenStyle,r=\"horizontal\"===e.layout?\nD(e.itemDistance,20):0,q=!e.rtl,d=a.legendItem,b=!a.series,n=!b&&a.series.drawLegendSymbol?a.series:a,x=n.options;x=this.createCheckboxForItem&&x&&x.showCheckbox;r=h+w+r+(x?20:0);var t=e.useHTML,g=a.options.className;d||(a.legendGroup=f.g(\"legend-item\").addClass(\"highcharts-\"+n.type+\"-series highcharts-color-\"+a.colorIndex+(g?\" \"+g:\"\")+(b?\" highcharts-series-\"+a.index:\"\")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=d=f.text(\"\",q?h+w:-w,this.baseline||0,t),c.styledMode||d.css(E(a.visible?\np:l)),d.attr({align:q?\"left\":\"right\",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=f.fontMetrics(c.styledMode?12:p.fontSize,d),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,d.attr(\"y\",this.baseline)),this.symbolHeight=e.symbolHeight||this.fontMetrics.f,n.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,d,t));x&&!a.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(a);this.colorizeItem(a,a.visible);!c.styledMode&&p.width||d.css({width:(e.itemWidth||\nthis.widthOption||c.spacingBox.width)-r+\"px\"});this.setText(a);c=d.getBBox();a.itemWidth=a.checkboxOffset=e.itemWidth||a.legendItemWidth||c.width+r;this.maxItemWidth=Math.max(this.maxItemWidth,a.itemWidth);this.totalItemWidth+=a.itemWidth;this.itemHeight=a.itemHeight=Math.round(a.legendItemHeight||c.height||this.symbolHeight)};a.prototype.layoutItem=function(a){var c=this.options,f=this.padding,e=\"horizontal\"===c.layout,h=a.itemHeight,w=this.itemMarginBottom,p=this.itemMarginTop,l=e?D(c.itemDistance,\n20):0,r=this.maxLegendWidth;c=c.alignColumns&&this.totalItemWidth>r?this.maxItemWidth:a.itemWidth;e&&this.itemX-f+c>r&&(this.itemX=f,this.lastLineHeight&&(this.itemY+=p+this.lastLineHeight+w),this.lastLineHeight=0);this.lastItemY=p+this.itemY+w;this.lastLineHeight=Math.max(h,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];e?this.itemX+=c:(this.itemY+=p+h+w,this.lastLineHeight=h);this.offsetWidth=this.widthOption||Math.max((e?this.itemX-f-(a.checkbox?0:l):c)+f,this.offsetWidth)};a.prototype.getAllItems=\nfunction(){var a=[];this.chart.series.forEach(function(c){var f=c&&c.options;c&&D(f.showInLegend,G(f.linkedTo)?!1:void 0,!0)&&(a=a.concat(c.legendItems||(\"point\"===f.legendType?c.data:c)))});y(this,\"afterGetAllItems\",{allItems:a});return a};a.prototype.getAlignment=function(){var a=this.options;return this.proximate?a.align.charAt(0)+\"tv\":a.floating?\"\":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)};a.prototype.adjustMargins=function(a,e){var c=this.chart,h=this.options,m=this.getAlignment();\nm&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(u,p){u.test(m)&&!G(a[p])&&(c[f[p]]=Math.max(c[f[p]],c.legend[(p+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][p]*h[p%2?\"x\":\"y\"]+D(h.margin,12)+e[p]+(c.titleOffset[p]||0)))})};a.prototype.proximatePositions=function(){var a=this.chart,f=[],e=\"left\"===this.options.align;this.allItems.forEach(function(c){var h=e;if(c.yAxis&&c.points){c.xAxis.options.reversed&&(h=!h);var m=M(h?c.points:c.points.slice(0).reverse(),function(a){return J(a.plotY)});\nh=this.itemMarginTop+c.legendItem.getBBox().height+this.itemMarginBottom;var p=c.yAxis.top-a.plotTop;c.visible?(m=m?m.plotY:c.yAxis.height,m+=p-.3*h):m=p+c.yAxis.height;f.push({target:m,size:h,item:c})}},this);k.distribute(f,a.plotHeight);f.forEach(function(c){c.item._legendItemPos[1]=a.plotTop-a.spacing[0]+c.pos})};a.prototype.render=function(){var a=this.chart,f=a.renderer,e=this.group,h=this.box,l=this.options,w=this.padding;this.itemX=w;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=\n0;this.widthOption=z(l.width,a.spacingBox.width-w);var p=a.spacingBox.width-2*w-l.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(p/=2);this.maxLegendWidth=this.widthOption||p;e||(this.group=e=f.g(\"legend\").attr({zIndex:7}).add(),this.contentGroup=f.g().attr({zIndex:1}).add(e),this.scrollGroup=f.g().add(this.contentGroup));this.renderTitle();var C=this.getAllItems();q(C,function(a,d){return(a.options&&a.options.legendIndex||0)-(d.options&&d.options.legendIndex||0)});l.reversed&&C.reverse();\nthis.allItems=C;this.display=p=!!C.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;C.forEach(this.renderItem,this);C.forEach(this.layoutItem,this);C=(this.widthOption||this.offsetWidth)+w;var r=this.lastItemY+this.lastLineHeight+this.titleHeight;r=this.handleOverflow(r);r+=w;h||(this.box=h=f.rect().addClass(\"highcharts-legend-box\").attr({r:l.borderRadius}).add(e),h.isNew=!0);a.styledMode||h.attr({stroke:l.borderColor,\"stroke-width\":l.borderWidth||0,fill:l.backgroundColor||\n\"none\"}).shadow(l.shadow);0<C&&0<r&&(h[h.isNew?\"attr\":\"animate\"](h.crisp.call({},{x:0,y:0,width:C,height:r},h.strokeWidth())),h.isNew=!1);h[p?\"show\":\"hide\"]();a.styledMode&&\"none\"===e.getStyle(\"display\")&&(C=r=0);this.legendWidth=C;this.legendHeight=r;p&&this.align();this.proximate||this.positionItems();y(this,\"afterRender\")};a.prototype.align=function(a){void 0===a&&(a=this.chart.spacingBox);var c=this.chart,f=this.options,e=a.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<c.titleOffset[0]?e+=c.titleOffset[0]:\n/(lbh|cb|rbh)/.test(this.getAlignment())&&0<c.titleOffset[2]&&(e-=c.titleOffset[2]);e!==a.y&&(a=E(a,{y:e}));this.group.align(E(f,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":f.verticalAlign}),!0,a)};a.prototype.handleOverflow=function(a){var c=this,f=this.chart,e=f.renderer,h=this.options,l=h.y,p=this.padding;l=f.spacingBox.height+(\"top\"===h.verticalAlign?-l:l)-p;var C=h.maxHeight,r,q=this.clipRect,d=h.navigation,b=D(d.animation,!0),n=d.arrowSize||12,x=this.nav,\nt=this.pages,g,k=this.allItems,z=function(b){\"number\"===typeof b?q.attr({height:b}):q&&(c.clipRect=q.destroy(),c.contentGroup.clip());c.contentGroup.div&&(c.contentGroup.div.style.clip=b?\"rect(\"+p+\"px,9999px,\"+(p+b)+\"px,0)\":\"auto\")},y=function(b){c[b]=e.circle(0,0,1.3*n).translate(n/2,n/2).add(x);f.styledMode||c[b].attr(\"fill\",\"rgba(0,0,0,0.0001)\");return c[b]};\"horizontal\"!==h.layout||\"middle\"===h.verticalAlign||h.floating||(l/=2);C&&(l=Math.min(l,C));t.length=0;a>l&&!1!==d.enabled?(this.clipHeight=\nr=Math.max(l-20-this.titleHeight-p,0),this.currentPage=D(this.currentPage,1),this.fullHeight=a,k.forEach(function(b,a){var d=b._legendItemPos[1],c=Math.round(b.legendItem.getBBox().height),f=t.length;if(!f||d-t[f-1]>r&&(g||d)!==t[f-1])t.push(g||d),f++;b.pageIx=f-1;g&&(k[a-1].pageIx=f-1);a===k.length-1&&d+c-t[f-1]>r&&d!==g&&(t.push(d),b.pageIx=f);d!==g&&(g=d)}),q||(q=c.clipRect=e.clipRect(0,p,9999,0),c.contentGroup.clip(q)),z(r),x||(this.nav=x=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol(\"triangle\",\n0,0,n,n).add(x),y(\"upTracker\").on(\"click\",function(){c.scroll(-1,b)}),this.pager=e.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),f.styledMode||this.pager.css(d.style),this.pager.add(x),this.down=e.symbol(\"triangle-down\",0,0,n,n).add(x),y(\"downTracker\").on(\"click\",function(){c.scroll(1,b)})),c.scroll(0),a=l):x&&(z(),this.nav=x.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a};a.prototype.scroll=function(a,f){var c=this,e=this.chart,h=this.pages,m=h.length,p=this.currentPage+\na;a=this.clipHeight;var l=this.options.navigation,q=this.pager,g=this.padding;p>m&&(p=m);0<p&&(\"undefined\"!==typeof f&&t(f,e),this.nav.attr({translateX:g,translateY:a+this.padding+7+this.titleHeight,visibility:\"visible\"}),[this.up,this.upTracker].forEach(function(a){a.attr({\"class\":1===p?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),q.attr({text:p+\"/\"+m}),[this.down,this.downTracker].forEach(function(a){a.attr({x:18+this.pager.getBBox().width,\"class\":p===m?\"highcharts-legend-nav-inactive\":\n\"highcharts-legend-nav-active\"})},this),e.styledMode||(this.up.attr({fill:1===p?l.inactiveColor:l.activeColor}),this.upTracker.css({cursor:1===p?\"default\":\"pointer\"}),this.down.attr({fill:p===m?l.inactiveColor:l.activeColor}),this.downTracker.css({cursor:p===m?\"default\":\"pointer\"})),this.scrollOffset=-h[p-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=p,this.positionCheckboxes(),f=v(D(f,e.renderer.globalAnimation,!0)),r(function(){y(c,\"afterScroll\",\n{currentPage:p})},f.duration||0))};return a}();(/Trident\\/7\\.0/.test(a.navigator&&a.navigator.userAgent)||h)&&g(l.prototype,\"positionItem\",function(a,c){var f=this,e=function(){c._legendItemPos&&a.call(f,c)};e();f.bubbleLegend||setTimeout(e)});k.Legend=l;return k.Legend});P(A,\"parts/Chart.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/MSPointer.js\"],A[\"parts/Pointer.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v,K,G){var N=G.addEvent,M=G.animate,y=G.animObject,I=G.attr,\nJ=G.createElement,E=G.css,D=G.defined,z=G.discardElement,t=G.erase,q=G.error,r=G.extend,h=G.find,f=G.fireEvent,a=G.getStyle,l=G.isArray,e=G.isFunction,c=G.isNumber,m=G.isObject,u=G.isString,L=G.merge,F=G.numberFormat,w=G.objectEach,p=G.pick,C=G.pInt,O=G.relativeLength,B=G.removeEvent,d=G.setAnimation,b=G.splat,n=G.syncTimeout,x=G.uniqueKey,Q=k.doc,R=k.Axis,X=k.defaultOptions,U=k.charts,V=k.marginNames,W=k.seriesTypes,A=k.win,Y=k.Chart=function(){this.getArgs.apply(this,arguments)};k.chart=function(b,\na,d){return new Y(b,a,d)};r(Y.prototype,{callbacks:[],getArgs:function(){var b=[].slice.call(arguments);if(u(b[0])||b[0].nodeName)this.renderTo=b.shift();this.init(b[0],b[1])},init:function(b,a){var d,c=b.series,n=b.plotOptions||{};f(this,\"init\",{args:arguments},function(){b.series=null;d=L(X,b);var h=d.chart||{};w(d.plotOptions,function(b,a){m(b)&&(b.tooltip=n[a]&&L(n[a].tooltip)||void 0)});d.tooltip.userOptions=b.chart&&b.chart.forExport&&b.tooltip.userOptions||b.tooltip;d.series=b.series=c;this.userOptions=\nb;var p=h.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=a;this.isResizing=0;this.options=d;this.axes=[];this.series=[];this.time=b.time&&Object.keys(b.time).length?new K(b.time):k.time;this.numberFormatter=h.numberFormatter||F;this.styledMode=h.styledMode;this.hasCartesianSeries=h.showAxes;var l=this;l.index=U.length;U.push(l);k.chartCount++;p&&w(p,function(b,a){e(b)&&N(l,a,b)});l.xAxis=[];l.yAxis=[];l.pointCount=l.colorCounter=l.symbolCounter=\n0;f(l,\"afterInit\");l.firstRender()})},initSeries:function(b){var a=this.options.chart;a=b.type||a.type||a.defaultSeriesType;var d=W[a];d||q(17,!0,this,{missingModuleFor:a});a=new d;a.init(this,b);return a},setSeriesData:function(){this.getSeriesOrderByLinks().forEach(function(b){b.points||b.data||!b.enabledDataSorting||b.setData(b.options.data,!1)})},getSeriesOrderByLinks:function(){return this.series.concat().sort(function(b,a){return b.linkedSeries.length||a.linkedSeries.length?a.linkedSeries.length-\nb.linkedSeries.length:0})},orderSeries:function(b){var a=this.series;for(b=b||0;b<a.length;b++)a[b]&&(a[b].index=b,a[b].name=a[b].getName())},isInsidePlot:function(b,a,d){var c=d?a:b;b=d?b:a;c={x:c,y:b,isInsidePlot:0<=c&&c<=this.plotWidth&&0<=b&&b<=this.plotHeight};f(this,\"afterIsInsidePlot\",c);return c.isInsidePlot},redraw:function(b){f(this,\"beforeRedraw\");var a=this.axes,c=this.series,e=this.pointer,n=this.legend,h=this.userOptions.legend,p=this.isDirtyLegend,l=this.hasCartesianSeries,m=this.isDirtyBox,\nx=this.renderer,u=x.isHidden(),w=[];this.setResponsive&&this.setResponsive(!1);d(this.hasRendered?b:!1,this);u&&this.temporaryDisplay();this.layOutTitles();for(b=c.length;b--;){var C=c[b];if(C.options.stacking){var F=!0;if(C.isDirty){var q=!0;break}}}if(q)for(b=c.length;b--;)C=c[b],C.options.stacking&&(C.isDirty=!0);c.forEach(function(b){b.isDirty&&(\"point\"===b.options.legendType?(b.updateTotals&&b.updateTotals(),p=!0):h&&(h.labelFormatter||h.labelFormat)&&(p=!0));b.isDirtyData&&f(b,\"updatedData\")});\np&&n&&n.options.enabled&&(n.render(),this.isDirtyLegend=!1);F&&this.getStacks();l&&a.forEach(function(b){b.updateNames();b.setScale()});this.getMargins();l&&(a.forEach(function(b){b.isDirty&&(m=!0)}),a.forEach(function(b){var a=b.min+\",\"+b.max;b.extKey!==a&&(b.extKey=a,w.push(function(){f(b,\"afterSetExtremes\",r(b.eventArgs,b.getExtremes()));delete b.eventArgs}));(m||F)&&b.redraw()}));m&&this.drawChartBox();f(this,\"predraw\");c.forEach(function(b){(m||b.isDirty)&&b.visible&&b.redraw();b.isDirtyData=\n!1});e&&e.reset(!0);x.draw();f(this,\"redraw\");f(this,\"render\");u&&this.temporaryDisplay(!0);w.forEach(function(b){b.call()})},get:function(b){function a(a){return a.id===b||a.options&&a.options.id===b}var d=this.series,c;var f=h(this.axes,a)||h(this.series,a);for(c=0;!f&&c<d.length;c++)f=h(d[c].points||[],a);return f},getAxes:function(){var a=this,d=this.options,c=d.xAxis=b(d.xAxis||{});d=d.yAxis=b(d.yAxis||{});f(this,\"getAxes\");c.forEach(function(b,a){b.index=a;b.isX=!0});d.forEach(function(b,a){b.index=\na});c.concat(d).forEach(function(b){new R(a,b)});f(this,\"afterGetAxes\")},getSelectedPoints:function(){var b=[];this.series.forEach(function(a){b=b.concat(a.getPointsCollection().filter(function(b){return p(b.selectedStaging,b.selected)}))});return b},getSelectedSeries:function(){return this.series.filter(function(b){return b.selected})},setTitle:function(b,a,d){this.applyDescription(\"title\",b);this.applyDescription(\"subtitle\",a);this.applyDescription(\"caption\",void 0);this.layOutTitles(d)},applyDescription:function(b,\na){var d=this,c=\"title\"===b?{color:\"#333333\",fontSize:this.options.isStock?\"16px\":\"18px\"}:{color:\"#666666\"};c=this.options[b]=L(!this.styledMode&&{style:c},this.options[b],a);var f=this[b];f&&a&&(this[b]=f=f.destroy());c&&!f&&(f=this.renderer.text(c.text,0,0,c.useHTML).attr({align:c.align,\"class\":\"highcharts-\"+b,zIndex:c.zIndex||4}).add(),f.update=function(a){d[{title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"}[b]](a)},this.styledMode||f.css(c.style),this[b]=f)},layOutTitles:function(b){var a=\n[0,0,0],d=this.renderer,c=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(b){var f=this[b],e=this.options[b],n=e.verticalAlign||\"top\";b=\"title\"===b?-3:\"top\"===n?a[0]+2:0;if(f){if(!this.styledMode)var h=e.style.fontSize;h=d.fontMetrics(h,f).b;f.css({width:(e.width||c.width+(e.widthAdjust||0))+\"px\"});var p=Math.round(f.getBBox(e.useHTML).height);f.align(r({y:\"bottom\"===n?h:b+h,height:p},e),!1,\"spacingBox\");e.floating||(\"top\"===n?a[0]=Math.ceil(a[0]+p):\"bottom\"===n&&(a[2]=Math.ceil(a[2]+\np)))}},this);a[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(a[0]+=this.options.title.margin);a[2]&&\"bottom\"===this.options.caption.verticalAlign&&(a[2]+=this.options.caption.margin);var e=!this.titleOffset||this.titleOffset.join(\",\")!==a.join(\",\");this.titleOffset=a;f(this,\"afterLayOutTitles\");!this.isDirtyBox&&e&&(this.isDirtyBox=this.isDirtyLegend=e,this.hasRendered&&p(b,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var b=this.options.chart,d=b.width;b=b.height;var c=\nthis.renderTo;D(d)||(this.containerWidth=a(c,\"width\"));D(b)||(this.containerHeight=a(c,\"height\"));this.chartWidth=Math.max(0,d||this.containerWidth||600);this.chartHeight=Math.max(0,O(b,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(b){var d=this.renderTo;if(b)for(;d&&d.style;)d.hcOrigStyle&&(E(d,d.hcOrigStyle),delete d.hcOrigStyle),d.hcOrigDetached&&(Q.body.removeChild(d),d.hcOrigDetached=!1),d=d.parentNode;else for(;d&&d.style;){Q.body.contains(d)||\nd.parentNode||(d.hcOrigDetached=!0,Q.body.appendChild(d));if(\"none\"===a(d,\"display\",!1)||d.hcOricDetached)d.hcOrigStyle={display:d.style.display,height:d.style.height,overflow:d.style.overflow},b={display:\"block\",overflow:\"hidden\"},d!==this.renderTo&&(b.height=0),E(d,b),d.offsetWidth||d.style.setProperty(\"display\",\"block\",\"important\");d=d.parentNode;if(d===Q.body)break}},setClassName:function(b){this.container.className=\"highcharts-container \"+(b||\"\")},getContainer:function(){var b=this.options,a=\nb.chart;var e=this.renderTo;var n=x(),h,p;e||(this.renderTo=e=a.renderTo);u(e)&&(this.renderTo=e=Q.getElementById(e));e||q(13,!0,this);var m=C(I(e,\"data-highcharts-chart\"));c(m)&&U[m]&&U[m].hasRendered&&U[m].destroy();I(e,\"data-highcharts-chart\",this.index);e.innerHTML=\"\";a.skipClone||e.offsetWidth||this.temporaryDisplay();this.getChartSize();m=this.chartWidth;var l=this.chartHeight;E(e,{overflow:\"hidden\"});this.styledMode||(h=r({position:\"relative\",overflow:\"hidden\",width:m+\"px\",height:l+\"px\",textAlign:\"left\",\nlineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\"},a.style));this.container=e=J(\"div\",{id:n},h,e);this._cursor=e.style.cursor;this.renderer=new (k[a.renderer]||k.Renderer)(e,m,l,null,a.forExport,b.exporting&&b.exporting.allowHTML,this.styledMode);d(void 0,this);this.setClassName(a.className);if(this.styledMode)for(p in b.defs)this.renderer.definition(b.defs[p]);else this.renderer.setStyle(a.style);this.renderer.chartIndex=this.index;f(this,\"afterGetContainer\")},getMargins:function(b){var a=\nthis.spacing,d=this.margin,c=this.titleOffset;this.resetMargins();c[0]&&!D(d[0])&&(this.plotTop=Math.max(this.plotTop,c[0]+a[0]));c[2]&&!D(d[2])&&(this.marginBottom=Math.max(this.marginBottom,c[2]+a[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(d,a);f(this,\"getMargins\");b||this.getAxisMargins()},getAxisMargins:function(){var b=this,a=b.axisOffset=[0,0,0,0],d=b.colorAxis,c=b.margin,f=function(b){b.forEach(function(b){b.visible&&b.getOffset()})};b.hasCartesianSeries?f(b.axes):d&&\nd.length&&f(d);V.forEach(function(d,f){D(c[f])||(b[d]+=a[f])});b.setChartSize()},reflow:function(b){var d=this,c=d.options.chart,f=d.renderTo,e=D(c.width)&&D(c.height),h=c.width||a(f,\"width\");c=c.height||a(f,\"height\");f=b?b.target:A;if(!e&&!d.isPrinting&&h&&c&&(f===A||f===Q)){if(h!==d.containerWidth||c!==d.containerHeight)G.clearTimeout(d.reflowTimeout),d.reflowTimeout=n(function(){d.container&&d.setSize(void 0,void 0,!1)},b?100:0);d.containerWidth=h;d.containerHeight=c}},setReflow:function(b){var a=\nthis;!1===b||this.unbindReflow?!1===b&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=N(A,\"resize\",function(b){a.options&&a.reflow(b)}),N(this,\"destroy\",this.unbindReflow))},setSize:function(b,a,c){var e=this,h=e.renderer;e.isResizing+=1;d(c,e);c=h.globalAnimation;e.oldChartHeight=e.chartHeight;e.oldChartWidth=e.chartWidth;\"undefined\"!==typeof b&&(e.options.chart.width=b);\"undefined\"!==typeof a&&(e.options.chart.height=a);e.getChartSize();e.styledMode||(c?M:E)(e.container,\n{width:e.chartWidth+\"px\",height:e.chartHeight+\"px\"},c);e.setChartSize(!0);h.setSize(e.chartWidth,e.chartHeight,c);e.axes.forEach(function(b){b.isDirty=!0;b.setScale()});e.isDirtyLegend=!0;e.isDirtyBox=!0;e.layOutTitles();e.getMargins();e.redraw(c);e.oldChartHeight=null;f(e,\"resize\");n(function(){e&&f(e,\"endResize\",null,function(){--e.isResizing})},y(c).duration||0)},setChartSize:function(b){var a=this.inverted,d=this.renderer,c=this.chartWidth,e=this.chartHeight,n=this.options.chart,h=this.spacing,\np=this.clipOffset,m,l,x,u;this.plotLeft=m=Math.round(this.plotLeft);this.plotTop=l=Math.round(this.plotTop);this.plotWidth=x=Math.max(0,Math.round(c-m-this.marginRight));this.plotHeight=u=Math.max(0,Math.round(e-l-this.marginBottom));this.plotSizeX=a?u:x;this.plotSizeY=a?x:u;this.plotBorderWidth=n.plotBorderWidth||0;this.spacingBox=d.spacingBox={x:h[3],y:h[0],width:c-h[3]-h[1],height:e-h[0]-h[2]};this.plotBox=d.plotBox={x:m,y:l,width:x,height:u};c=2*Math.floor(this.plotBorderWidth/2);a=Math.ceil(Math.max(c,\np[3])/2);d=Math.ceil(Math.max(c,p[0])/2);this.clipBox={x:a,y:d,width:Math.floor(this.plotSizeX-Math.max(c,p[1])/2-a),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(c,p[2])/2-d))};b||this.axes.forEach(function(b){b.setAxisSize();b.setAxisTranslation()});f(this,\"afterSetChartSize\",{skipAxes:b})},resetMargins:function(){f(this,\"resetMargins\");var b=this,a=b.options.chart;[\"margin\",\"spacing\"].forEach(function(d){var c=a[d],e=m(c)?c:[c,c,c,c];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(c,f){b[d][f]=\np(a[d+c],e[f])})});V.forEach(function(a,d){b[a]=p(b.margin[d],b.spacing[d])});b.axisOffset=[0,0,0,0];b.clipOffset=[0,0,0,0]},drawChartBox:function(){var b=this.options.chart,a=this.renderer,d=this.chartWidth,c=this.chartHeight,e=this.chartBackground,h=this.plotBackground,n=this.plotBorder,p=this.styledMode,m=this.plotBGImage,l=b.backgroundColor,x=b.plotBackgroundColor,u=b.plotBackgroundImage,w,C=this.plotLeft,r=this.plotTop,F=this.plotWidth,q=this.plotHeight,t=this.plotBox,g=this.clipRect,B=this.clipBox,\nO=\"animate\";e||(this.chartBackground=e=a.rect().addClass(\"highcharts-background\").add(),O=\"attr\");if(p)var k=w=e.strokeWidth();else{k=b.borderWidth||0;w=k+(b.shadow?8:0);l={fill:l||\"none\"};if(k||e[\"stroke-width\"])l.stroke=b.borderColor,l[\"stroke-width\"]=k;e.attr(l).shadow(b.shadow)}e[O]({x:w/2,y:w/2,width:d-w-k%2,height:c-w-k%2,r:b.borderRadius});O=\"animate\";h||(O=\"attr\",this.plotBackground=h=a.rect().addClass(\"highcharts-plot-background\").add());h[O](t);p||(h.attr({fill:x||\"none\"}).shadow(b.plotShadow),\nu&&(m?(u!==m.attr(\"href\")&&m.attr(\"href\",u),m.animate(t)):this.plotBGImage=a.image(u,C,r,F,q).add()));g?g.animate({width:B.width,height:B.height}):this.clipRect=a.clipRect(B);O=\"animate\";n||(O=\"attr\",this.plotBorder=n=a.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add());p||n.attr({stroke:b.plotBorderColor,\"stroke-width\":b.plotBorderWidth||0,fill:\"none\"});n[O](n.crisp({x:C,y:r,width:F,height:q},-n.strokeWidth()));this.isDirtyBox=!1;f(this,\"afterDrawChartBox\")},propFromSeries:function(){var b=\nthis,a=b.options.chart,d,c=b.options.series,e,f;[\"inverted\",\"angular\",\"polar\"].forEach(function(h){d=W[a.type||a.defaultSeriesType];f=a[h]||d&&d.prototype[h];for(e=c&&c.length;!f&&e--;)(d=W[c[e].type])&&d.prototype[h]&&(f=!0);b[h]=f})},linkSeries:function(){var b=this,a=b.series;a.forEach(function(b){b.linkedSeries.length=0});a.forEach(function(a){var d=a.options.linkedTo;u(d)&&(d=\":previous\"===d?b.series[a.index-1]:b.get(d))&&d.linkedParent!==a&&(d.linkedSeries.push(a),a.linkedParent=d,d.enabledDataSorting&&\na.setDataSortingOptions(),a.visible=p(a.options.visible,d.options.visible,a.visible))});f(this,\"afterLinkSeries\")},renderSeries:function(){this.series.forEach(function(b){b.translate();b.render()})},renderLabels:function(){var b=this,a=b.options.labels;a.items&&a.items.forEach(function(d){var c=r(a.style,d.style),e=C(c.left)+b.plotLeft,f=C(c.top)+b.plotTop+12;delete c.left;delete c.top;b.renderer.text(d.html,e,f).attr({zIndex:2}).css(c).add()})},render:function(){var b=this.axes,a=this.colorAxis,\nd=this.renderer,c=this.options,e=0,f=function(b){b.forEach(function(b){b.visible&&b.render()})};this.setTitle();this.legend=new g(this,c.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();c=this.plotWidth;b.some(function(b){if(b.horiz&&b.visible&&b.options.labels.enabled&&b.series.length)return e=21,!0});var h=this.plotHeight=Math.max(this.plotHeight-e,0);b.forEach(function(b){b.setScale()});this.getAxisMargins();var n=1.1<c/this.plotWidth;var p=1.05<h/this.plotHeight;\nif(n||p)b.forEach(function(b){(b.horiz&&n||!b.horiz&&p)&&b.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?f(b):a&&a.length&&f(a);this.seriesGroup||(this.seriesGroup=d.g(\"series-group\").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.updateContainerScaling();this.hasRendered=!0},addCredits:function(b){var a=this;b=L(!0,this.options.credits,b);b.enabled&&!this.credits&&(this.credits=\nthis.renderer.text(b.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){b.href&&(A.location.href=b.href)}).attr({align:b.position.align,zIndex:8}),a.styledMode||this.credits.css(b.style),this.credits.add().align(b.position),this.credits.update=function(b){a.credits=a.credits.destroy();a.addCredits(b)})},updateContainerScaling:function(){var b=this.container;if(b.offsetWidth&&b.offsetHeight&&b.getBoundingClientRect){var a=b.getBoundingClientRect(),d=a.width/b.offsetWidth;\nb=a.height/b.offsetHeight;1!==d||1!==b?this.containerScaling={scaleX:d,scaleY:b}:delete this.containerScaling}},destroy:function(){var b=this,a=b.axes,d=b.series,c=b.container,e,h=c&&c.parentNode;f(b,\"destroy\");b.renderer.forExport?t(U,b):U[b.index]=void 0;k.chartCount--;b.renderTo.removeAttribute(\"data-highcharts-chart\");B(b);for(e=a.length;e--;)a[e]=a[e].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(e=d.length;e--;)d[e]=d[e].destroy();\"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function(a){var d=\nb[a];d&&d.destroy&&(b[a]=d.destroy())});c&&(c.innerHTML=\"\",B(c),h&&z(c));w(b,function(a,d){delete b[d]})},firstRender:function(){var b=this,a=b.options;if(!b.isReadyToRender||b.isReadyToRender()){b.getContainer();b.resetMargins();b.setChartSize();b.propFromSeries();b.getAxes();(l(a.series)?a.series:[]).forEach(function(a){b.initSeries(a)});b.linkSeries();b.setSeriesData();f(b,\"beforeRender\");v&&(b.pointer=k.hasTouch||!A.PointerEvent&&!A.MSPointerEvent?new v(b,a):new H(b,a));b.render();if(!b.renderer.imgCount&&\n!b.hasLoaded)b.onload();b.temporaryDisplay(!0)}},onload:function(){this.callbacks.concat([this.callback]).forEach(function(b){b&&\"undefined\"!==typeof this.index&&b.apply(this,[this])},this);f(this,\"load\");f(this,\"render\");D(this.index)&&this.setReflow(this.options.chart.reflow);this.hasLoaded=!0}})});P(A,\"parts/ScrollablePlotArea.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.createElement,K=g.pick,G=g.stop;g=k.Chart;\"\";H(g,\"afterSetChartSize\",function(g){var v=\nthis.options.chart.scrollablePlotArea,y=v&&v.minWidth;v=v&&v.minHeight;if(!this.renderer.forExport){if(y){if(this.scrollablePixelsX=y=Math.max(0,y-this.chartWidth)){this.plotWidth+=y;this.inverted?(this.clipBox.height+=y,this.plotBox.height+=y):(this.clipBox.width+=y,this.plotBox.width+=y);var I={1:{name:\"right\",value:y}}}}else v&&(this.scrollablePixelsY=y=Math.max(0,v-this.chartHeight))&&(this.plotHeight+=y,this.inverted?(this.clipBox.width+=y,this.plotBox.width+=y):(this.clipBox.height+=y,this.plotBox.height+=\ny),I={2:{name:\"bottom\",value:y}});I&&!g.skipAxes&&this.axes.forEach(function(g){I[g.side]?g.getPlotLinePath=function(){var y=I[g.side].name,D=this[y];this[y]=D-I[g.side].value;var z=k.Axis.prototype.getPlotLinePath.apply(this,arguments);this[y]=D;return z}:(g.setAxisSize(),g.setAxisTranslation())})}});H(g,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});g.prototype.setUpScrolling=function(){var g=\nthis,k={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(k.overflowX=\"auto\");this.scrollablePixelsY&&(k.overflowY=\"auto\");this.scrollingContainer=v(\"div\",{className:\"highcharts-scrolling\"},k,this.renderTo);H(this.scrollingContainer,\"scroll\",function(){g.pointer&&delete g.pointer.chartPosition});this.innerContainer=v(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=\nnull};g.prototype.moveFixedElements=function(){var g=this.container,k=this.fixedRenderer,y=\".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),v;this.scrollablePixelsX&&!this.inverted?v=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?v=\".highcharts-xaxis\":\nthis.scrollablePixelsY&&!this.inverted?v=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(v=\".highcharts-yaxis\");y.push(v,v+\"-labels\");y.forEach(function(y){[].forEach.call(g.querySelectorAll(y),function(g){(g.namespaceURI===k.SVG_NS?k.box:k.box.parentNode).appendChild(g);g.style.pointerEvents=\"auto\"})})};g.prototype.applyFixed=function(){var g,M,y=!this.fixedDiv,I=this.options.chart.scrollablePlotArea;y?(this.fixedDiv=v(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",\npointerEvents:\"none\",zIndex:2},null,!0),this.renderTo.insertBefore(this.fixedDiv,this.renderTo.firstChild),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=M=new k.Renderer(this.fixedDiv,this.chartWidth,this.chartHeight,null===(g=this.options.chart)||void 0===g?void 0:g.style),this.scrollableMask=M.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":K(I.opacity,.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),this.moveFixedElements(),H(this,\"afterShowResetZoom\",\nthis.moveFixedElements),H(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);g=this.chartWidth+(this.scrollablePixelsX||0);M=this.chartHeight+(this.scrollablePixelsY||0);G(this.container);this.container.style.width=g+\"px\";this.container.style.height=M+\"px\";this.renderer.boxWrapper.attr({width:g,height:M,viewBox:[0,0,g,M].join(\" \")});this.chartBackground.attr({width:g,height:M});this.scrollingContainer.style.height=this.chartHeight+\"px\";y&&\n(I.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*I.scrollPositionX),I.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*I.scrollPositionY));M=this.axisOffset;y=this.plotTop-M[0]-1;I=this.plotLeft-M[3]-1;g=this.plotTop+this.plotHeight+M[2]+1;M=this.plotLeft+this.plotWidth+M[1]+1;var J=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),E=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);y=this.scrollablePixelsX?[[\"M\",0,y],[\"L\",this.plotLeft-\n1,y],[\"L\",this.plotLeft-1,g],[\"L\",0,g],[\"Z\"],[\"M\",J,y],[\"L\",this.chartWidth,y],[\"L\",this.chartWidth,g],[\"L\",J,g],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",I,0],[\"L\",I,this.plotTop-1],[\"L\",M,this.plotTop-1],[\"L\",M,0],[\"Z\"],[\"M\",I,E],[\"L\",I,this.chartHeight],[\"L\",M,this.chartHeight],[\"L\",M,E],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:y})}});P(A,\"parts/StackingAxis.js\",[A[\"parts/Utilities.js\"]],function(k){var g=k.addEvent,H=k.destroyObjectProperties,v=k.fireEvent,\nK=k.objectEach,G=k.pick,N=function(){function g(g){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=g}g.prototype.buildStacks=function(){var g=this.axis,k=g.series,J=G(g.options.reversedStacks,!0),E=k.length,D;if(!g.isXAxis){this.usePercentage=!1;for(D=E;D--;){var z=k[J?D:E-D-1];z.setStackedPoints()}for(D=0;D<E;D++)k[D].modifyStacks();v(g,\"afterBuildStacks\")}};g.prototype.cleanStacks=function(){if(!this.axis.isXAxis){if(this.oldStacks)var g=this.stacks=this.oldStacks;K(g,function(g){K(g,\nfunction(g){g.cumulative=g.total})})}};g.prototype.resetStacks=function(){var g=this,k=g.stacks;g.axis.isXAxis||K(k,function(k){K(k,function(y,D){y.touched<g.stacksTouched?(y.destroy(),delete k[D]):(y.total=null,y.cumulative=null)})})};g.prototype.renderStackTotals=function(){var g=this.axis.chart,k=g.renderer,v=this.stacks,E=this.stackTotalGroup=this.stackTotalGroup||k.g(\"stack-labels\").attr({visibility:\"visible\",zIndex:6}).add();E.translate(g.plotLeft,g.plotTop);K(v,function(g){K(g,function(g){g.render(E)})})};\nreturn g}();return function(){function k(){}k.compose=function(y){g(y,\"init\",k.onInit);g(y,\"destroy\",k.onDestroy)};k.onDestroy=function(){var g=this.stacking;if(g){var k=g.stacks;K(k,function(g,y){H(g);k[y]=null});g&&g.stackTotalGroup&&g.stackTotalGroup.destroy()}};k.onInit=function(){this.stacking||(this.stacking=new N(this))};return k}()});P(A,\"mixins/legend-symbol.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.merge,v=g.pick;k.LegendSymbolMixin={drawRectangle:function(g,\nk){var G=g.symbolHeight,M=g.options.squareSymbol;k.legendSymbol=this.chart.renderer.rect(M?(g.symbolWidth-G)/2:0,g.baseline-G+1,M?G:g.symbolWidth,G,v(g.options.symbolRadius,G/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(k.legendGroup)},drawLineMarker:function(g){var k=this.options,N=k.marker,M=g.symbolWidth,y=g.symbolHeight,I=y/2,J=this.chart.renderer,E=this.legendGroup;g=g.baseline-Math.round(.3*g.fontMetrics.b);var D={};this.chart.styledMode||(D={\"stroke-width\":k.lineWidth||0},k.dashStyle&&\n(D.dashstyle=k.dashStyle));this.legendLine=J.path([\"M\",0,g,\"L\",M,g]).addClass(\"highcharts-graph\").attr(D).add(E);N&&!1!==N.enabled&&M&&(k=Math.min(v(N.radius,I),I),0===this.symbol.indexOf(\"url\")&&(N=H(N,{width:y,height:y}),k=0),this.legendSymbol=N=J.symbol(this.symbol,M/2-k,g-k,2*k,2*k,N).addClass(\"highcharts-point\").add(E),N.isMarker=!0)}};return k.LegendSymbolMixin});P(A,\"parts/Point.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){\"\";var H=g.animObject,v=g.defined,K=g.erase,G=\ng.extend,N=g.fireEvent,M=g.format,y=g.getNestedProperty,I=g.isArray,J=g.isNumber,E=g.isObject,D=g.syncTimeout,z=g.pick,t=g.removeEvent,q=g.uniqueKey;g=function(){function g(){this.colorIndex=this.category=void 0;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.series=void 0;this.visible=!0;this.x=void 0}g.prototype.animateBeforeDestroy=function(){var h=this,f={x:h.startXPos,opacity:0},a,l=h.getGraphicalProps();l.singular.forEach(function(e){a=\n\"dataLabel\"===e;h[e]=h[e].animate(a?{x:h[e].startXPos,y:h[e].startYPos,opacity:0}:f)});l.plural.forEach(function(a){h[a].forEach(function(a){a.element&&a.animate(G({x:h.startXPos},a.startYPos?{x:a.startXPos,y:a.startYPos}:{}))})})};g.prototype.applyOptions=function(h,f){var a=this.series,l=a.options.pointValKey||a.pointValKey;h=g.prototype.optionsToObject.call(this,h);G(this,h);this.options=this.options?G(this.options,h):h;h.group&&delete this.group;h.dataLabels&&delete this.dataLabels;l&&(this.y=\ng.prototype.getNestedProperty.call(this,l));this.formatPrefix=(this.isNull=z(this.isValid&&!this.isValid(),null===this.x||!J(this.y)))?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof f&&a.xAxis&&a.xAxis.hasNames&&(this.x=a.xAxis.nameToX(this));\"undefined\"===typeof this.x&&a&&(this.x=\"undefined\"===typeof f?a.autoIncrement(this):f);return this};g.prototype.destroy=function(){function h(){if(f.graphic||f.dataLabel||f.dataLabels)t(f),f.destroyElements();for(m in f)f[m]=\nnull}var f=this,a=f.series,l=a.chart;a=a.options.dataSorting;var e=l.hoverPoints,c=H(f.series.chart.renderer.globalAnimation),m;f.legendItem&&l.legend.destroyItem(f);e&&(f.setState(),K(e,f),e.length||(l.hoverPoints=null));if(f===l.hoverPoint)f.onMouseOut();a&&a.enabled?(this.animateBeforeDestroy(),D(h,c.duration)):h();l.pointCount--};g.prototype.destroyElements=function(h){var f=this;h=f.getGraphicalProps(h);h.singular.forEach(function(a){f[a]=f[a].destroy()});h.plural.forEach(function(a){f[a].forEach(function(a){a.element&&\na.destroy()});delete f[a]})};g.prototype.firePointEvent=function(h,f,a){var l=this,e=this.series.options;(e.point.events[h]||l.options&&l.options.events&&l.options.events[h])&&l.importEvents();\"click\"===h&&e.allowPointSelect&&(a=function(a){l.select&&l.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});N(l,h,f,a)};g.prototype.getClassName=function(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+\n(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")};g.prototype.getGraphicalProps=function(h){var f=this,a=[],l,e={singular:[],plural:[]};h=h||{graphic:1,dataLabel:1};h.graphic&&a.push(\"graphic\",\"shadowGroup\");h.dataLabel&&a.push(\"dataLabel\",\"dataLabelUpper\",\"connector\");for(l=a.length;l--;){var c=a[l];f[c]&&e.singular.push(c)}[\"dataLabel\",\n\"connector\"].forEach(function(a){var c=a+\"s\";h[a]&&f[c]&&e.plural.push(c)});return e};g.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}};g.prototype.getNestedProperty=function(h){if(h)return 0===h.indexOf(\"custom.\")?y(h,this.options):this[h]};g.prototype.getZone=function(){var h=this.series,f=h.zones;h=h.zoneAxis||\n\"y\";var a=0,l;for(l=f[a];this[h]>=l.value;)l=f[++a];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=l&&l.color&&!this.options.color?l.color:this.nonZonedColor;return l};g.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};g.prototype.init=function(h,f,a){this.series=h;this.applyOptions(f,a);this.id=v(this.id)?this.id:q();this.resolveColor();h.chart.pointCount++;N(this,\"afterInit\");return this};g.prototype.optionsToObject=\nfunction(h){var f={},a=this.series,l=a.options.keys,e=l||a.pointArrayMap||[\"y\"],c=e.length,m=0,u=0;if(J(h)||null===h)f[e[0]]=h;else if(I(h))for(!l&&h.length>c&&(a=typeof h[0],\"string\"===a?f.name=h[0]:\"number\"===a&&(f.x=h[0]),m++);u<c;)l&&\"undefined\"===typeof h[m]||(0<e[u].indexOf(\".\")?g.prototype.setNestedProperty(f,h[m],e[u]):f[e[u]]=h[m]),m++,u++;else\"object\"===typeof h&&(f=h,h.dataLabels&&(a._hasPointLabels=!0),h.marker&&(a._hasPointMarkers=!0));return f};g.prototype.resolveColor=function(){var h=\nthis.series;var f=h.chart.options.chart.colorCount;var a=h.chart.styledMode;delete this.nonZonedColor;a||this.options.color||(this.color=h.color);h.options.colorByPoint?(a||(f=h.options.colors||h.chart.options.colors,this.color=this.color||f[h.colorCounter],f=f.length),a=h.colorCounter,h.colorCounter++,h.colorCounter===f&&(h.colorCounter=0)):a=h.colorIndex;this.colorIndex=z(this.colorIndex,a)};g.prototype.setNestedProperty=function(h,f,a){a.split(\".\").reduce(function(a,e,c,h){a[e]=h.length-1===c?\nf:E(a[e],!0)?a[e]:{};return a[e]},h);return h};g.prototype.tooltipFormatter=function(h){var f=this.series,a=f.tooltipOptions,l=z(a.valueDecimals,\"\"),e=a.valuePrefix||\"\",c=a.valueSuffix||\"\";f.chart.styledMode&&(h=f.chart.tooltip.styledModeFormat(h));(f.pointArrayMap||[\"y\"]).forEach(function(a){a=\"{point.\"+a;if(e||c)h=h.replace(RegExp(a+\"}\",\"g\"),e+a+\"}\"+c);h=h.replace(RegExp(a+\"}\",\"g\"),a+\":,.\"+l+\"f}\")});return M(h,{point:this,series:this.series},f.chart)};return g}();k.Point=g;return k.Point});P(A,\n\"parts/Series.js\",[A[\"mixins/legend-symbol.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){\"\";var K=v.addEvent,G=v.animObject,N=v.arrayMax,M=v.arrayMin,y=v.clamp,I=v.correctFloat,J=v.defined,E=v.erase,D=v.error,z=v.extend,t=v.find,q=v.fireEvent,r=v.getNestedProperty,h=v.isArray,f=v.isFunction,a=v.isNumber,l=v.isString,e=v.merge,c=v.objectEach,m=v.pick,u=v.removeEvent,L=v.seriesType,F=v.splat,w=v.syncTimeout,p=g.defaultOptions,C=g.defaultPlotOptions,O=g.seriesTypes,\nB=g.SVGElement,d=g.win;g.Series=L(\"line\",null,{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\"center\",formatter:function(){var b=this.series.chart.numberFormatter;return\"number\"!==typeof this.y?\n\"\":b(this.y,-1)},padding:5,style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"},{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",\ncolorCounter:0,cropShoulder:1,directTouch:!1,eventsToUnbind:[],isCartesian:!0,parallelArrays:[\"x\",\"y\"],pointClass:H,requireSorting:!0,sorted:!0,init:function(b,a){q(this,\"init\",{options:a});var d=this,e=b.series,h;this.eventOptions=this.eventOptions||{};d.chart=b;d.options=a=d.setOptions(a);d.linkedSeries=[];d.bindAxes();z(d,{name:a.name,state:\"\",visible:!1!==a.visible,selected:!0===a.selected});var n=a.events;c(n,function(b,a){f(b)&&d.eventOptions[a]!==b&&(f(d.eventOptions[a])&&u(d,a,d.eventOptions[a]),\nd.eventOptions[a]=b,K(d,a,b))});if(n&&n.click||a.point&&a.point.events&&a.point.events.click||a.allowPointSelect)b.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(b){d[b+\"Data\"]||(d[b+\"Data\"]=[])});d.isCartesian&&(b.hasCartesianSeries=!0);e.length&&(h=e[e.length-1]);d._i=m(h&&h._i,-1)+1;b.orderSeries(this.insert(e));a.dataSorting&&a.dataSorting.enabled?d.setDataSortingOptions():d.points||d.data||d.setData(a.data,!1);q(this,\"afterInit\")},is:function(b){return O[b]&&\nthis instanceof O[b]},insert:function(b){var d=this.options.index,c;if(a(d)){for(c=b.length;c--;)if(d>=m(b[c].options.index,b[c]._i)){b.splice(c+1,0,this);break}-1===c&&b.unshift(this);c+=1}else b.push(this);return m(c,b.length-1)},bindAxes:function(){var b=this,a=b.options,d=b.chart,c;q(this,\"bindAxes\",null,function(){(b.axisTypes||[]).forEach(function(e){d[e].forEach(function(d){c=d.options;if(a[e]===c.index||\"undefined\"!==typeof a[e]&&a[e]===c.id||\"undefined\"===typeof a[e]&&0===c.index)b.insert(d.series),\nb[e]=d,d.isDirty=!0});b[e]||b.optionalAxis===e||D(18,!0,d)})});q(this,\"afterBindAxes\")},updateParallelArrays:function(b,d){var c=b.series,e=arguments,f=a(d)?function(a){var e=\"y\"===a&&c.toYData?c.toYData(b):b[a];c[a+\"Data\"][d]=e}:function(b){Array.prototype[d].apply(c[b+\"Data\"],Array.prototype.slice.call(e,2))};c.parallelArrays.forEach(f)},hasData:function(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length},autoIncrement:function(){var b=\nthis.options,a=this.xIncrement,d,c=b.pointIntervalUnit,e=this.chart.time;a=m(a,b.pointStart,0);this.pointInterval=d=m(this.pointInterval,b.pointInterval,1);c&&(b=new e.Date(a),\"day\"===c?e.set(\"Date\",b,e.get(\"Date\",b)+d):\"month\"===c?e.set(\"Month\",b,e.get(\"Month\",b)+d):\"year\"===c&&e.set(\"FullYear\",b,e.get(\"FullYear\",b)+d),d=b.getTime()-a);this.xIncrement=a+d;return a},setDataSortingOptions:function(){var b=this.options;z(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});J(b.pointRange)||\n(b.pointRange=1)},setOptions:function(b){var a=this.chart,d=a.options,c=d.plotOptions,f=a.userOptions||{};b=e(b);a=a.styledMode;var h={plotOptions:c,userOptions:b};q(this,\"setOptions\",h);var l=h.plotOptions[this.type],u=f.plotOptions||{};this.userOptions=h.userOptions;f=e(l,c.series,f.plotOptions&&f.plotOptions[this.type],b);this.tooltipOptions=e(p.tooltip,p.plotOptions.series&&p.plotOptions.series.tooltip,p.plotOptions[this.type].tooltip,d.tooltip.userOptions,c.series&&c.series.tooltip,c[this.type].tooltip,\nb.tooltip);this.stickyTracking=m(b.stickyTracking,u[this.type]&&u[this.type].stickyTracking,u.series&&u.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:f.stickyTracking);null===l.marker&&delete f.marker;this.zoneAxis=f.zoneAxis;d=this.zones=(f.zones||[]).slice();!f.negativeColor&&!f.negativeFillColor||f.zones||(c={value:f[this.zoneAxis+\"Threshold\"]||f.threshold||0,className:\"highcharts-negative\"},a||(c.color=f.negativeColor,c.fillColor=f.negativeFillColor),d.push(c));d.length&&\nJ(d[d.length-1].value)&&d.push(a?{}:{color:this.color,fillColor:this.fillColor});q(this,\"afterSetOptions\",{options:f});return f},getName:function(){return m(this.options.name,\"Series \"+(this.index+1))},getCyclic:function(b,a,d){var c=this.chart,e=this.userOptions,f=b+\"Index\",h=b+\"Counter\",n=d?d.length:m(c.options.chart[b+\"Count\"],c[b+\"Count\"]);if(!a){var p=m(e[f],e[\"_\"+f]);J(p)||(c.series.length||(c[h]=0),e[\"_\"+f]=p=c[h]%n,c[h]+=1);d&&(a=d[p])}\"undefined\"!==typeof p&&(this[f]=p);this[b]=a},getColor:function(){this.chart.styledMode?\nthis.getCyclic(\"color\"):this.options.colorByPoint?this.options.color=null:this.getCyclic(\"color\",this.options.color||C[this.type].color,this.chart.options.colors)},getPointsCollection:function(){return(this.hasGroupedData?this.points:this.data)||[]},getSymbol:function(){this.getCyclic(\"symbol\",this.options.marker.symbol,this.chart.options.symbols)},findPointIndex:function(b,d){var c=b.id,e=b.x,f=this.points,h,n=this.options.dataSorting;if(c)var p=this.chart.get(c);else if(this.linkedParent||this.enabledDataSorting){var l=\nn&&n.matchByName?\"name\":\"index\";p=t(f,function(a){return!a.touched&&a[l]===b[l]});if(!p)return}if(p){var m=p&&p.index;\"undefined\"!==typeof m&&(h=!0)}\"undefined\"===typeof m&&a(e)&&(m=this.xData.indexOf(e,d));-1!==m&&\"undefined\"!==typeof m&&this.cropped&&(m=m>=this.cropStart?m-this.cropStart:m);!h&&f[m]&&f[m].touched&&(m=void 0);return m},drawLegendSymbol:k.drawLineMarker,updateData:function(b,d){var c=this.options,e=c.dataSorting,f=this.points,h=[],n,p,m,l=this.requireSorting,u=b.length===f.length,\nw=!0;this.xIncrement=null;b.forEach(function(b,d){var p=J(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};var w=p.x;if(p.id||a(w)){if(w=this.findPointIndex(p,m),-1===w||\"undefined\"===typeof w?h.push(b):f[w]&&b!==c.data[w]?(f[w].update(b,!1,null,!1),f[w].touched=!0,l&&(m=w+1)):f[w]&&(f[w].touched=!0),!u||d!==w||e&&e.enabled||this.hasDerivedData)n=!0}else h.push(b)},this);if(n)for(b=f.length;b--;)(p=f[b])&&!p.touched&&p.remove&&p.remove(!1,d);else!u||e&&e.enabled?w=!1:(b.forEach(function(b,\na){f[a].update&&b!==f[a].y&&f[a].update(b,!1,null,!1)}),h.length=0);f.forEach(function(b){b&&(b.touched=!1)});if(!w)return!1;h.forEach(function(b){this.addPoint(b,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=N(this.xData),this.autoIncrement());return!0},setData:function(b,d,c,e){var f=this,n=f.points,p=n&&n.length||0,u,w=f.options,x=f.chart,C=w.dataSorting,g=null,r=f.xAxis;g=w.turboThreshold;var F=this.xData,q=this.yData,t=(u=f.pointArrayMap)&&u.length,\nB=w.keys,k=0,O=1,z;b=b||[];u=b.length;d=m(d,!0);C&&C.enabled&&(b=this.sortData(b));!1!==e&&u&&p&&!f.cropped&&!f.hasGroupedData&&f.visible&&!f.isSeriesBoosting&&(z=this.updateData(b,c));if(!z){f.xIncrement=null;f.colorCounter=0;this.parallelArrays.forEach(function(b){f[b+\"Data\"].length=0});if(g&&u>g)if(g=f.getFirstValidPoint(b),a(g))for(c=0;c<u;c++)F[c]=this.autoIncrement(),q[c]=b[c];else if(h(g))if(t)for(c=0;c<u;c++)e=b[c],F[c]=e[0],q[c]=e.slice(1,t+1);else for(B&&(k=B.indexOf(\"x\"),O=B.indexOf(\"y\"),\nk=0<=k?k:0,O=0<=O?O:1),c=0;c<u;c++)e=b[c],F[c]=e[k],q[c]=e[O];else D(12,!1,x);else for(c=0;c<u;c++)\"undefined\"!==typeof b[c]&&(e={series:f},f.pointClass.prototype.applyOptions.apply(e,[b[c]]),f.updateParallelArrays(e,c));q&&l(q[0])&&D(14,!0,x);f.data=[];f.options.data=f.userOptions.data=b;for(c=p;c--;)n[c]&&n[c].destroy&&n[c].destroy();r&&(r.minRange=r.userMinRange);f.isDirty=x.isDirtyBox=!0;f.isDirtyData=!!n;c=!1}\"point\"===w.legendType&&(this.processData(),this.generatePoints());d&&x.redraw(c)},\nsortData:function(b){var a=this,d=a.options.dataSorting.sortKey||\"y\",c=function(b,a){return J(a)&&b.pointClass.prototype.optionsToObject.call({series:b},a)||{}};b.forEach(function(d,e){b[e]=c(a,d);b[e].index=e},this);b.concat().sort(function(b,a){b=r(d,b);a=r(d,a);return a<b?-1:a>b?1:0}).forEach(function(b,a){b.x=a},this);a.linkedSeries&&a.linkedSeries.forEach(function(a){var d=a.options,e=d.data;d.dataSorting&&d.dataSorting.enabled||!e||(e.forEach(function(d,f){e[f]=c(a,d);b[f]&&(e[f].x=b[f].x,e[f].index=\nf)}),a.setData(e,!1))});return b},getProcessedData:function(b){var a=this.xData,d=this.yData,c=a.length;var e=0;var f=this.xAxis,h=this.options;var p=h.cropThreshold;var m=b||this.getExtremesFromAll||h.getExtremesFromAll,l=this.isCartesian;b=f&&f.val2lin;h=!(!f||!f.logarithmic);var u=this.requireSorting;if(f){f=f.getExtremes();var w=f.min;var C=f.max}if(l&&this.sorted&&!m&&(!p||c>p||this.forceCrop))if(a[c-1]<w||a[0]>C)a=[],d=[];else if(this.yData&&(a[0]<w||a[c-1]>C)){e=this.cropData(this.xData,this.yData,\nw,C);a=e.xData;d=e.yData;e=e.start;var g=!0}for(p=a.length||1;--p;)if(c=h?b(a[p])-b(a[p-1]):a[p]-a[p-1],0<c&&(\"undefined\"===typeof r||c<r))var r=c;else 0>c&&u&&(D(15,!1,this.chart),u=!1);return{xData:a,yData:d,cropped:g,cropStart:e,closestPointRange:r}},processData:function(b){var a=this.xAxis;if(this.isCartesian&&!this.isDirty&&!a.isDirty&&!this.yAxis.isDirty&&!b)return!1;b=this.getProcessedData();this.cropped=b.cropped;this.cropStart=b.cropStart;this.processedXData=b.xData;this.processedYData=b.yData;\nthis.closestPointRange=this.basePointRange=b.closestPointRange},cropData:function(b,a,d,c,e){var f=b.length,h=0,n=f,p;e=m(e,this.cropShoulder);for(p=0;p<f;p++)if(b[p]>=d){h=Math.max(0,p-e);break}for(d=p;d<f;d++)if(b[d]>c){n=d+e;break}return{xData:b.slice(h,n),yData:a.slice(h,n),start:h,end:n}},generatePoints:function(){var b=this.options,a=b.data,d=this.data,c,e=this.processedXData,f=this.processedYData,h=this.pointClass,p=e.length,m=this.cropStart||0,l=this.hasGroupedData;b=b.keys;var u=[],w;d||\nl||(d=[],d.length=a.length,d=this.data=d);b&&l&&(this.options.keys=!1);for(w=0;w<p;w++){var C=m+w;if(l){var g=(new h).init(this,[e[w]].concat(F(f[w])));g.dataGroup=this.groupMap[w];g.dataGroup.options&&(g.options=g.dataGroup.options,z(g,g.dataGroup.options),delete g.dataLabels)}else(g=d[C])||\"undefined\"===typeof a[C]||(d[C]=g=(new h).init(this,a[C],e[w]));g&&(g.index=C,u[w]=g)}this.options.keys=b;if(d&&(p!==(c=d.length)||l))for(w=0;w<c;w++)w!==m||l||(w+=p),d[w]&&(d[w].destroyElements(),d[w].plotX=\nvoid 0);this.data=d;this.points=u;q(this,\"afterGeneratePoints\")},getXExtremes:function(b){return{min:M(b),max:N(b)}},getExtremes:function(b,d){var c=this.xAxis,e=this.yAxis,f=this.processedXData||this.xData,n=[],p=0,m=0;var l=0;var u=this.requireSorting?this.cropShoulder:0,w=e?e.positiveValuesOnly:!1,C;b=b||this.stackedYData||this.processedYData||[];e=b.length;c&&(l=c.getExtremes(),m=l.min,l=l.max);for(C=0;C<e;C++){var g=f[C];var r=b[C];var F=(a(r)||h(r))&&(r.length||0<r||!w);g=d||this.getExtremesFromAll||\nthis.options.getExtremesFromAll||this.cropped||!c||(f[C+u]||g)>=m&&(f[C-u]||g)<=l;if(F&&g)if(F=r.length)for(;F--;)a(r[F])&&(n[p++]=r[F]);else n[p++]=r}b={dataMin:M(n),dataMax:N(n)};q(this,\"afterGetExtremes\",{dataExtremes:b});return b},applyExtremes:function(){var b=this.getExtremes();this.dataMin=b.dataMin;this.dataMax=b.dataMax;return b},getFirstValidPoint:function(b){for(var a=null,d=b.length,c=0;null===a&&c<d;)a=b[c],c++;return a},translate:function(){this.processedXData||this.processData();this.generatePoints();\nvar b=this.options,d=b.stacking,c=this.xAxis,e=c.categories,f=this.enabledDataSorting,p=this.yAxis,l=this.points,u=l.length,w=!!this.modifyValue,C,g=this.pointPlacementToXValue(),r=!!g,F=b.threshold,t=b.startFromThreshold?F:0,B,k=this.zoneAxis||\"y\",O=Number.MAX_VALUE;for(C=0;C<u;C++){var z=l[C],L=z.x,D=z.y,v=z.low,E=d&&p.stacking&&p.stacking.stacks[(this.negStacks&&D<(t?0:F)?\"-\":\"\")+this.stackKey];p.positiveValuesOnly&&null!==D&&0>=D&&(z.isNull=!0);z.plotX=B=I(y(c.translate(L,0,0,0,1,g,\"flags\"===\nthis.type),-1E5,1E5));if(d&&this.visible&&E&&E[L]){var G=this.getStackIndicator(G,L,this.index);if(!z.isNull){var M=E[L];var H=M.points[G.key]}}h(H)&&(v=H[0],D=H[1],v===t&&G.key===E[L].base&&(v=m(a(F)&&F,p.min)),p.positiveValuesOnly&&0>=v&&(v=null),z.total=z.stackTotal=M.total,z.percentage=M.total&&z.y/M.total*100,z.stackY=D,this.irregularWidths||M.setOffset(this.pointXOffset||0,this.barW||0));z.yBottom=J(v)?y(p.translate(v,0,1,0,1),-1E5,1E5):null;w&&(D=this.modifyValue(D,z));z.plotY=\"number\"===typeof D&&\nInfinity!==D?y(p.translate(D,0,1,0,1),-1E5,1E5):void 0;z.isInside=this.isPointInside(z);z.clientX=r?I(c.translate(L,0,0,0,1,g)):B;z.negative=z[k]<(b[k+\"Threshold\"]||F||0);z.category=e&&\"undefined\"!==typeof e[z.x]?e[z.x]:z.x;if(!z.isNull&&!1!==z.visible){\"undefined\"!==typeof N&&(O=Math.min(O,Math.abs(B-N)));var N=B}z.zone=this.zones.length&&z.getZone();!z.graphic&&this.group&&f&&(z.isNew=!0)}this.closestPointRangePx=O;q(this,\"afterTranslate\")},getValidPoints:function(b,a,d){var c=this.chart;return(b||\nthis.points||[]).filter(function(b){return a&&!c.isInsidePlot(b.plotX,b.plotY,c.inverted)?!1:!1!==b.visible&&(d||!b.isNull)})},getClipBox:function(b,a){var d=this.options,c=this.chart,e=c.inverted,f=this.xAxis,h=f&&this.yAxis;b&&!1===d.clip&&h?b=e?{y:-c.chartWidth+h.len+h.pos,height:c.chartWidth,width:c.chartHeight,x:-c.chartHeight+f.len+f.pos}:{y:-h.pos,height:c.chartHeight,width:c.chartWidth,x:-f.pos}:(b=this.clipBox||c.clipBox,a&&(b.width=c.plotSizeX,b.x=0));return a?{width:b.width,x:b.x}:b},setClip:function(b){var a=\nthis.chart,d=this.options,c=a.renderer,e=a.inverted,f=this.clipBox,h=this.getClipBox(b),p=this.sharedClipKey||[\"_sharedClip\",b&&b.duration,b&&b.easing,h.height,d.xAxis,d.yAxis].join(),m=a[p],l=a[p+\"m\"];b&&(h.width=0,e&&(h.x=a.plotHeight+(!1!==d.clip?0:a.plotTop)));m?a.hasLoaded||m.attr(h):(b&&(a[p+\"m\"]=l=c.clipRect(e?a.plotSizeX+99:-99,e?-a.plotLeft:-a.plotTop,99,e?a.chartWidth:a.chartHeight)),a[p]=m=c.clipRect(h),m.count={length:0});b&&!m.count[this.index]&&(m.count[this.index]=!0,m.count.length+=\n1);if(!1!==d.clip||b)this.group.clip(b||f?m:a.clipRect),this.markerGroup.clip(l),this.sharedClipKey=p;b||(m.count[this.index]&&(delete m.count[this.index],--m.count.length),0===m.count.length&&p&&a[p]&&(f||(a[p]=a[p].destroy()),a[p+\"m\"]&&(a[p+\"m\"]=a[p+\"m\"].destroy())))},animate:function(b){var a=this.chart,d=G(this.options.animation);if(!a.hasRendered)if(b)this.setClip(d);else{var c=this.sharedClipKey;b=a[c];var e=this.getClipBox(d,!0);b&&b.animate(e,d);a[c+\"m\"]&&a[c+\"m\"].animate({width:e.width+99,\nx:e.x-(a.inverted?0:99)},d)}},afterAnimate:function(){this.setClip();q(this,\"afterAnimate\");this.finishedAnimating=!0},drawPoints:function(){var b=this.points,a=this.chart,d,c,e=this.options.marker,f=this[this.specialGroup]||this.markerGroup,h=this.xAxis,p=m(e.enabled,!h||h.isRadial?!0:null,this.closestPointRangePx>=e.enabledThreshold*e.radius);if(!1!==e.enabled||this._hasPointMarkers)for(d=0;d<b.length;d++){var l=b[d];var u=(c=l.graphic)?\"animate\":\"attr\";var w=l.marker||{};var C=!!l.marker;if((p&&\n\"undefined\"===typeof w.enabled||w.enabled)&&!l.isNull&&!1!==l.visible){var g=m(w.symbol,this.symbol);var r=this.markerAttribs(l,l.selected&&\"select\");this.enabledDataSorting&&(l.startXPos=h.reversed?-r.width:h.width);var F=!1!==l.isInside;c?c[F?\"show\":\"hide\"](F).animate(r):F&&(0<r.width||l.hasImage)&&(l.graphic=c=a.renderer.symbol(g,r.x,r.y,r.width,r.height,C?w:e).add(f),this.enabledDataSorting&&a.hasRendered&&(c.attr({x:l.startXPos}),u=\"animate\"));c&&\"animate\"===u&&c[F?\"show\":\"hide\"](F).animate(r);\nif(c&&!a.styledMode)c[u](this.pointAttribs(l,l.selected&&\"select\"));c&&c.addClass(l.getClassName(),!0)}else c&&(l.graphic=c.destroy())}},markerAttribs:function(b,a){var d=this.options,c=d.marker,e=b.marker||{},f=e.symbol||c.symbol,h=m(e.radius,c.radius);a&&(c=c.states[a],a=e.states&&e.states[a],h=m(a&&a.radius,c&&c.radius,h+(c&&c.radiusPlus||0)));b.hasImage=f&&0===f.indexOf(\"url\");b.hasImage&&(h=0);b={x:d.crisp?Math.floor(b.plotX)-h:b.plotX-h,y:b.plotY-h};h&&(b.width=b.height=2*h);return b},pointAttribs:function(b,\na){var d=this.options.marker,c=b&&b.options,e=c&&c.marker||{},f=this.color,h=c&&c.color,p=b&&b.color;c=m(e.lineWidth,d.lineWidth);var n=b&&b.zone&&b.zone.color;b=1;f=h||n||p||f;h=e.fillColor||d.fillColor||f;f=e.lineColor||d.lineColor||f;a=a||\"normal\";d=d.states[a];a=e.states&&e.states[a]||{};c=m(a.lineWidth,d.lineWidth,c+m(a.lineWidthPlus,d.lineWidthPlus,0));h=a.fillColor||d.fillColor||h;f=a.lineColor||d.lineColor||f;b=m(a.opacity,d.opacity,b);return{stroke:f,\"stroke-width\":c,fill:h,opacity:b}},destroy:function(b){var a=\nthis,e=a.chart,f=/AppleWebKit\\/533/.test(d.navigator.userAgent),h,p,l=a.data||[],m,u;q(a,\"destroy\");this.removeEvents(b);(a.axisTypes||[]).forEach(function(b){(u=a[b])&&u.series&&(E(u.series,a),u.isDirty=u.forceRedraw=!0)});a.legendItem&&a.chart.legend.destroyItem(a);for(p=l.length;p--;)(m=l[p])&&m.destroy&&m.destroy();a.points=null;v.clearTimeout(a.animationTimeout);c(a,function(b,a){b instanceof B&&!b.survive&&(h=f&&\"group\"===a?\"hide\":\"destroy\",b[h]())});e.hoverSeries===a&&(e.hoverSeries=null);\nE(e.series,a);e.orderSeries();c(a,function(d,c){b&&\"hcEvents\"===c||delete a[c]})},getGraphPath:function(b,a,d){var c=this,e=c.options,f=e.step,h,p=[],n=[],l;b=b||c.points;(h=b.reversed)&&b.reverse();(f={right:1,center:2}[f]||f&&3)&&h&&(f=4-f);b=this.getValidPoints(b,!1,!(e.connectNulls&&!a&&!d));b.forEach(function(h,m){var u=h.plotX,w=h.plotY,C=b[m-1];(h.leftCliff||C&&C.rightCliff)&&!d&&(l=!0);h.isNull&&!J(a)&&0<m?l=!e.connectNulls:h.isNull&&!a?l=!0:(0===m||l?m=[[\"M\",h.plotX,h.plotY]]:c.getPointSpline?\nm=[c.getPointSpline(b,h,m)]:f?(m=1===f?[[\"L\",C.plotX,w]]:2===f?[[\"L\",(C.plotX+u)/2,C.plotY],[\"L\",(C.plotX+u)/2,w]]:[[\"L\",u,C.plotY]],m.push([\"L\",u,w])):m=[[\"L\",u,w]],n.push(h.x),f&&(n.push(h.x),2===f&&n.push(h.x)),p.push.apply(p,m),l=!1)});p.xMap=n;return c.graphPath=p},drawGraph:function(){var b=this,a=this.options,d=(this.gappedPath||this.getGraphPath).call(this),c=this.chart.styledMode,e=[[\"graph\",\"highcharts-graph\"]];c||e[0].push(a.lineColor||this.color||\"#cccccc\",a.dashStyle);e=b.getZonesGraphs(e);\ne.forEach(function(e,f){var h=e[0],p=b[h],n=p?\"animate\":\"attr\";p?(p.endX=b.preventGraphAnimation?null:d.xMap,p.animate({d:d})):d.length&&(b[h]=p=b.chart.renderer.path(d).addClass(e[1]).attr({zIndex:1}).add(b.group));p&&!c&&(h={stroke:e[2],\"stroke-width\":a.lineWidth,fill:b.fillGraph&&b.color||\"none\"},e[3]?h.dashstyle=e[3]:\"square\"!==a.linecap&&(h[\"stroke-linecap\"]=h[\"stroke-linejoin\"]=\"round\"),p[n](h).shadow(2>f&&a.shadow));p&&(p.startX=d.xMap,p.isArea=d.isArea)})},getZonesGraphs:function(b){this.zones.forEach(function(a,\nd){d=[\"zone-graph-\"+d,\"highcharts-graph highcharts-zone-graph-\"+d+\" \"+(a.className||\"\")];this.chart.styledMode||d.push(a.color||this.color,a.dashStyle||this.options.dashStyle);b.push(d)},this);return b},applyZones:function(){var b=this,a=this.chart,d=a.renderer,c=this.zones,e,f,h=this.clips||[],p,l=this.graph,u=this.area,w=Math.max(a.chartWidth,a.chartHeight),C=this[(this.zoneAxis||\"y\")+\"Axis\"],g=a.inverted,r,F,q,t=!1,B,k;if(c.length&&(l||u)&&C&&\"undefined\"!==typeof C.min){var z=C.reversed;var O=\nC.horiz;l&&!this.showLine&&l.hide();u&&u.hide();var L=C.getExtremes();c.forEach(function(c,n){e=z?O?a.plotWidth:0:O?0:C.toPixels(L.min)||0;e=y(m(f,e),0,w);f=y(Math.round(C.toPixels(m(c.value,L.max),!0)||0),0,w);t&&(e=f=C.toPixels(L.max));r=Math.abs(e-f);F=Math.min(e,f);q=Math.max(e,f);C.isXAxis?(p={x:g?q:F,y:0,width:r,height:w},O||(p.x=a.plotHeight-p.x)):(p={x:0,y:g?q:F,width:w,height:r},O&&(p.y=a.plotWidth-p.y));g&&d.isVML&&(p=C.isXAxis?{x:0,y:z?F:q,height:p.width,width:a.chartWidth}:{x:p.y-a.plotLeft-\na.spacingBox.x,y:0,width:p.height,height:a.chartHeight});h[n]?h[n].animate(p):h[n]=d.clipRect(p);B=b[\"zone-area-\"+n];k=b[\"zone-graph-\"+n];l&&k&&k.clip(h[n]);u&&B&&B.clip(h[n]);t=c.value>L.max;b.resetZones&&0===f&&(f=void 0)});this.clips=h}else b.visible&&(l&&l.show(!0),u&&u.show(!0))},invertGroups:function(b){function a(){[\"group\",\"markerGroup\"].forEach(function(a){d[a]&&(c.renderer.isVML&&d[a].attr({width:d.yAxis.len,height:d.xAxis.len}),d[a].width=d.yAxis.len,d[a].height=d.xAxis.len,d[a].invert(d.isRadialSeries?\n!1:b))})}var d=this,c=d.chart;d.xAxis&&(d.eventsToUnbind.push(K(c,\"resize\",a)),a(),d.invertGroups=a)},plotGroup:function(b,a,d,c,e){var f=this[b],h=!f;h&&(this[b]=f=this.chart.renderer.g().attr({zIndex:c||.1}).add(e));f.addClass(\"highcharts-\"+a+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(J(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(f.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);f.attr({visibility:d})[h?\"attr\":\n\"animate\"](this.getPlotBox());return f},getPlotBox:function(){var b=this.chart,a=this.xAxis,d=this.yAxis;b.inverted&&(a=d,d=this.xAxis);return{translateX:a?a.left:b.plotLeft,translateY:d?d.top:b.plotTop,scaleX:1,scaleY:1}},removeEvents:function(b){b?this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(b){b()}),this.eventsToUnbind.length=0):u(this)},render:function(){var b=this,a=b.chart,d=b.options,c=!b.finishedAnimating&&a.renderer.isSVG&&G(d.animation).duration,e=b.visible?\"inherit\":\n\"hidden\",f=d.zIndex,h=b.hasRendered,p=a.seriesGroup,l=a.inverted;q(this,\"render\");var m=b.plotGroup(\"group\",\"series\",e,f,p);b.markerGroup=b.plotGroup(\"markerGroup\",\"markers\",e,f,p);c&&b.animate&&b.animate(!0);m.inverted=b.isCartesian||b.invertable?l:!1;b.drawGraph&&(b.drawGraph(),b.applyZones());b.visible&&b.drawPoints();b.drawDataLabels&&b.drawDataLabels();b.redrawPoints&&b.redrawPoints();b.drawTracker&&!1!==b.options.enableMouseTracking&&b.drawTracker();b.invertGroups(l);!1===d.clip||b.sharedClipKey||\nh||m.clip(a.clipRect);c&&b.animate&&b.animate();h||(b.animationTimeout=w(function(){b.afterAnimate()},c||0));b.isDirty=!1;b.hasRendered=!0;q(b,\"afterRender\")},redraw:function(){var b=this.chart,a=this.isDirty||this.isDirtyData,d=this.group,c=this.xAxis,e=this.yAxis;d&&(b.inverted&&d.attr({width:b.plotWidth,height:b.plotHeight}),d.animate({translateX:m(c&&c.left,b.plotLeft),translateY:m(e&&e.top,b.plotTop)}));this.translate();this.render();a&&delete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(b,\na){var d=this.xAxis,c=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?d.len-b.chartY+d.pos:b.chartX-d.pos,plotY:e?c.len-b.chartX+c.pos:b.chartY-c.pos},a,b)},buildKDTree:function(b){function a(b,c,e){var f;if(f=b&&b.length){var h=d.kdAxisArray[c%e];b.sort(function(b,a){return b[h]-a[h]});f=Math.floor(f/2);return{point:b[f],left:a(b.slice(0,f),c+1,e),right:a(b.slice(f+1),c+1,e)}}}this.buildingKdTree=!0;var d=this,c=-1<d.options.findNearestPointBy.indexOf(\"y\")?2:1;delete d.kdTree;\nw(function(){d.kdTree=a(d.getValidPoints(null,!d.directTouch),c,c);d.buildingKdTree=!1},d.options.kdNow||b&&\"touchstart\"===b.type?0:1)},searchKDTree:function(b,a,d){function c(b,a,d,n){var l=a.point,m=e.kdAxisArray[d%n],u=l;var w=J(b[f])&&J(l[f])?Math.pow(b[f]-l[f],2):null;var C=J(b[h])&&J(l[h])?Math.pow(b[h]-l[h],2):null;C=(w||0)+(C||0);l.dist=J(C)?Math.sqrt(C):Number.MAX_VALUE;l.distX=J(w)?Math.sqrt(w):Number.MAX_VALUE;m=b[m]-l[m];C=0>m?\"left\":\"right\";w=0>m?\"right\":\"left\";a[C]&&(C=c(b,a[C],d+1,\nn),u=C[p]<u[p]?C:l);a[w]&&Math.sqrt(m*m)<u[p]&&(b=c(b,a[w],d+1,n),u=b[p]<u[p]?b:u);return u}var e=this,f=this.kdAxisArray[0],h=this.kdAxisArray[1],p=a?\"distX\":\"dist\";a=-1<e.options.findNearestPointBy.indexOf(\"y\")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(d);if(this.kdTree)return c(b,this.kdTree,a,a)},pointPlacementToXValue:function(){var b=this.options,d=b.pointRange,c=this.xAxis;b=b.pointPlacement;\"between\"===b&&(b=c.reversed?-.5:.5);return a(b)?b*m(d,c.pointRange):0},isPointInside:function(b){return\"undefined\"!==\ntypeof b.plotY&&\"undefined\"!==typeof b.plotX&&0<=b.plotY&&b.plotY<=this.yAxis.len&&0<=b.plotX&&b.plotX<=this.xAxis.len}});\"\"});P(A,\"parts/Stacking.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/StackingAxis.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=v.correctFloat,G=v.defined,N=v.destroyObjectProperties,M=v.format,y=v.pick;\"\";v=g.Chart;var I=g.Series,J=function(){function g(g,k,t,q,r){var h=g.chart.inverted;this.axis=g;this.isNegative=t;this.options=k=k||{};this.x=q;this.total=\nnull;this.points={};this.stack=r;this.rightCliff=this.leftCliff=0;this.alignOptions={align:k.align||(h?t?\"left\":\"right\":\"center\"),verticalAlign:k.verticalAlign||(h?\"middle\":t?\"bottom\":\"top\"),y:k.y,x:k.x};this.textAlign=k.textAlign||(h?t?\"right\":\"left\":\"center\")}g.prototype.destroy=function(){N(this,this.axis)};g.prototype.render=function(g){var k=this.axis.chart,t=this.options,q=t.format;q=q?M(q,this,k):t.formatter.call(this);this.label?this.label.attr({text:q,visibility:\"hidden\"}):(this.label=k.renderer.label(q,\nnull,null,t.shape,null,null,t.useHTML,!1,\"stack-labels\"),q={r:t.borderRadius||0,text:q,rotation:t.rotation,padding:y(t.padding,5),visibility:\"hidden\"},k.styledMode||(q.fill=t.backgroundColor,q.stroke=t.borderColor,q[\"stroke-width\"]=t.borderWidth,this.label.css(t.style)),this.label.attr(q),this.label.added||this.label.add(g));this.label.labelrank=k.plotHeight};g.prototype.setOffset=function(g,k,t,q,r){var h=this.axis,f=h.chart;q=h.translate(h.stacking.usePercentage?100:q?q:this.total,0,0,0,1);t=h.translate(t?\nt:0);t=G(q)&&Math.abs(q-t);g=y(r,f.xAxis[0].translate(this.x))+g;h=G(q)&&this.getStackBox(f,this,g,q,k,t,h);k=this.label;t=this.isNegative;g=\"justify\"===y(this.options.overflow,\"justify\");var a=this.textAlign;k&&h&&(r=k.getBBox(),q=k.padding,a=\"left\"===a?f.inverted?-q:q:\"right\"===a?r.width:f.inverted&&\"center\"===a?r.width/2:f.inverted?t?r.width+q:-q:r.width/2,t=f.inverted?r.height/2:t?-q:r.height,this.alignOptions.x=y(this.options.x,0),this.alignOptions.y=y(this.options.y,0),h.x-=a,h.y-=t,k.align(this.alignOptions,\nnull,h),f.isInsidePlot(k.alignAttr.x+a-this.alignOptions.x,k.alignAttr.y+t-this.alignOptions.y)?k.show():(k.alignAttr.y=-9999,g=!1),g&&I.prototype.justifyDataLabel.call(this.axis,k,this.alignOptions,k.alignAttr,r,h),k.attr({x:k.alignAttr.x,y:k.alignAttr.y}),y(!g&&this.options.crop,!0)&&((f=f.isInsidePlot(k.x-q+k.width,k.y)&&f.isInsidePlot(k.x+q,k.y))||k.hide()))};g.prototype.getStackBox=function(g,k,t,q,r,h,f){var a=k.axis.reversed,l=g.inverted,e=f.height+f.pos-(l?g.plotLeft:g.plotTop);k=k.isNegative&&\n!a||!k.isNegative&&a;return{x:l?k?q-f.right:q-h+f.pos-g.plotLeft:t+g.xAxis[0].transB-g.plotLeft,y:l?f.height-t-r:k?e-q-h:e-q,width:l?h:r,height:l?r:h}};return g}();v.prototype.getStacks=function(){var g=this,k=g.inverted;g.yAxis.forEach(function(g){g.stacking&&g.stacking.stacks&&g.hasVisibleSeries&&(g.stacking.oldStacks=g.stacking.stacks)});g.series.forEach(function(z){var t=z.xAxis&&z.xAxis.options||{};!z.options.stacking||!0!==z.visible&&!1!==g.options.chart.ignoreHiddenSeries||(z.stackKey=[z.type,\ny(z.options.stack,\"\"),k?t.top:t.left,k?t.height:t.width].join())})};H.compose(k);I.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var g=this.processedXData,k=this.processedYData,z=[],t=k.length,q=this.options,r=q.threshold,h=y(q.startFromThreshold&&r,0),f=q.stack;q=q.stacking;var a=this.stackKey,l=\"-\"+a,e=this.negStacks,c=this.yAxis,m=c.stacking.stacks,u=c.stacking.oldStacks,L,F;c.stacking.stacksTouched+=1;for(F=\n0;F<t;F++){var w=g[F];var p=k[F];var C=this.getStackIndicator(C,w,this.index);var O=C.key;var B=(L=e&&p<(h?0:r))?l:a;m[B]||(m[B]={});m[B][w]||(u[B]&&u[B][w]?(m[B][w]=u[B][w],m[B][w].total=null):m[B][w]=new J(c,c.options.stackLabels,L,w,f));B=m[B][w];null!==p?(B.points[O]=B.points[this.index]=[y(B.cumulative,h)],G(B.cumulative)||(B.base=O),B.touched=c.stacking.stacksTouched,0<C.index&&!1===this.singleStacks&&(B.points[O][0]=B.points[this.index+\",\"+w+\",0\"][0])):B.points[O]=B.points[this.index]=null;\n\"percent\"===q?(L=L?a:l,e&&m[L]&&m[L][w]?(L=m[L][w],B.total=L.total=Math.max(L.total,B.total)+Math.abs(p)||0):B.total=K(B.total+(Math.abs(p)||0))):B.total=K(B.total+(p||0));B.cumulative=y(B.cumulative,h)+(p||0);null!==p&&(B.points[O].push(B.cumulative),z[F]=B.cumulative)}\"percent\"===q&&(c.stacking.usePercentage=!0);this.stackedYData=z;c.stacking.oldStacks={}}};I.prototype.modifyStacks=function(){var g=this,k=g.stackKey,z=g.yAxis.stacking.stacks,t=g.processedXData,q,r=g.options.stacking;g[r+\"Stacker\"]&&\n[k,\"-\"+k].forEach(function(h){for(var f=t.length,a,l;f--;)if(a=t[f],q=g.getStackIndicator(q,a,g.index,h),l=(a=z[h]&&z[h][a])&&a.points[q.key])g[r+\"Stacker\"](l,a,f)})};I.prototype.percentStacker=function(g,k,z){k=k.total?100/k.total:0;g[0]=K(g[0]*k);g[1]=K(g[1]*k);this.stackedYData[z]=g[1]};I.prototype.getStackIndicator=function(g,k,z,t){!G(g)||g.x!==k||t&&g.key!==t?g={x:k,index:0,key:t}:g.index++;g.key=[z,k,g.index].join();return g};g.StackItem=J;return g.StackItem});P(A,\"parts/Dynamics.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Point.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=v.addEvent,G=v.animate,N=v.createElement,M=v.css,y=v.defined,I=v.erase,J=v.error,E=v.extend,D=v.fireEvent,z=v.isArray,t=v.isNumber,q=v.isObject,r=v.isString,h=v.merge,f=v.objectEach,a=v.pick,l=v.relativeLength,e=v.setAnimation,c=v.splat,m=k.Axis;v=k.Chart;var u=k.Series,L=k.seriesTypes;k.cleanRecursively=function(a,c){var e={};f(a,function(f,h){if(q(a[h],!0)&&!a.nodeType&&c[h])f=k.cleanRecursively(a[h],c[h]),Object.keys(f).length&&\n(e[h]=f);else if(q(a[h])||a[h]!==c[h])e[h]=a[h]});return e};E(v.prototype,{addSeries:function(c,e,f){var h,p=this;c&&(e=a(e,!0),D(p,\"addSeries\",{options:c},function(){h=p.initSeries(c);p.isDirtyLegend=!0;p.linkSeries();h.enabledDataSorting&&h.setData(c.data,!1);D(p,\"afterAddSeries\",{series:h});e&&p.redraw(f)}));return h},addAxis:function(a,c,e,f){return this.createAxis(c?\"xAxis\":\"yAxis\",{axis:a,redraw:e,animation:f})},addColorAxis:function(a,c,e){return this.createAxis(\"colorAxis\",{axis:a,redraw:c,\nanimation:e})},createAxis:function(e,f){var p=this.options,l=\"colorAxis\"===e,u=f.redraw,w=f.animation;f=h(f.axis,{index:this[e].length,isX:\"xAxis\"===e});var d=l?new k.ColorAxis(this,f):new m(this,f);p[e]=c(p[e]||{});p[e].push(f);l&&(this.isDirtyLegend=!0,this.axes.forEach(function(b){b.series=[]}),this.series.forEach(function(b){b.bindAxes();b.isDirtyData=!0}));a(u,!0)&&this.redraw(w);return d},showLoading:function(c){var e=this,f=e.options,h=e.loadingDiv,l=f.loading,m=function(){h&&M(h,{left:e.plotLeft+\n\"px\",top:e.plotTop+\"px\",width:e.plotWidth+\"px\",height:e.plotHeight+\"px\"})};h||(e.loadingDiv=h=N(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,e.container),e.loadingSpan=N(\"span\",{className:\"highcharts-loading-inner\"},null,h),K(e,\"redraw\",m));h.className=\"highcharts-loading\";e.loadingSpan.innerHTML=a(c,f.lang.loading,\"\");e.styledMode||(M(h,E(l.style,{zIndex:10})),M(e.loadingSpan,l.labelStyle),e.loadingShown||(M(h,{opacity:0,display:\"\"}),G(h,{opacity:l.style.opacity||.5},{duration:l.showDuration||\n0})));e.loadingShown=!0;m()},hideLoading:function(){var a=this.options,c=this.loadingDiv;c&&(c.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||G(c,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){M(c,{display:\"none\"})}}));this.loadingShown=!1},propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),propsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\npropsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \"),collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"zAxis\",\"series\"],update:function(e,m,p,u){var w=this,g={credits:\"addCredits\",title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"},d,b,n,C=e.isResponsiveOptions,q=[];D(w,\"update\",{options:e});C||w.setResponsive(!1,!0);e=k.cleanRecursively(e,w.options);h(!0,w.userOptions,e);if(d=e.chart){h(!0,w.options.chart,d);\"className\"in\nd&&w.setClassName(d.className);\"reflow\"in d&&w.setReflow(d.reflow);if(\"inverted\"in d||\"polar\"in d||\"type\"in d){w.propFromSeries();var F=!0}\"alignTicks\"in d&&(F=!0);f(d,function(a,d){-1!==w.propsRequireUpdateSeries.indexOf(\"chart.\"+d)&&(b=!0);-1!==w.propsRequireDirtyBox.indexOf(d)&&(w.isDirtyBox=!0);C||-1===w.propsRequireReflow.indexOf(d)||(n=!0)});!w.styledMode&&\"style\"in d&&w.renderer.setStyle(d.style)}!w.styledMode&&e.colors&&(this.options.colors=e.colors);e.plotOptions&&h(!0,this.options.plotOptions,\ne.plotOptions);e.time&&this.time===k.time&&(this.time=new H(e.time));f(e,function(a,d){if(w[d]&&\"function\"===typeof w[d].update)w[d].update(a,!1);else if(\"function\"===typeof w[g[d]])w[g[d]](a);\"chart\"!==d&&-1!==w.propsRequireUpdateSeries.indexOf(d)&&(b=!0)});this.collectionsWithUpdate.forEach(function(b){if(e[b]){if(\"series\"===b){var d=[];w[b].forEach(function(b,c){b.options.isInternal||d.push(a(b.options.index,c))})}c(e[b]).forEach(function(a,c){(c=y(a.id)&&w.get(a.id)||w[b][d?d[c]:c])&&c.coll===\nb&&(c.update(a,!1),p&&(c.touched=!0));!c&&p&&w.collectionsWithInit[b]&&(w.collectionsWithInit[b][0].apply(w,[a].concat(w.collectionsWithInit[b][1]||[]).concat([!1])).touched=!0)});p&&w[b].forEach(function(b){b.touched||b.options.isInternal?delete b.touched:q.push(b)})}});q.forEach(function(b){b.remove&&b.remove(!1)});F&&w.axes.forEach(function(b){b.update({},!1)});b&&w.getSeriesOrderByLinks().forEach(function(b){b.chart&&b.update({},!1)},this);e.loading&&h(!0,w.options.loading,e.loading);F=d&&d.width;\nd=d&&d.height;r(d)&&(d=l(d,F||w.chartWidth));n||t(F)&&F!==w.chartWidth||t(d)&&d!==w.chartHeight?w.setSize(F,d,u):a(m,!0)&&w.redraw(u);D(w,\"afterUpdate\",{options:e,redraw:m,animation:u})},setSubtitle:function(a,c){this.applyDescription(\"subtitle\",a);this.layOutTitles(c)},setCaption:function(a,c){this.applyDescription(\"caption\",a);this.layOutTitles(c)}});v.prototype.collectionsWithInit={xAxis:[v.prototype.addAxis,[!0]],yAxis:[v.prototype.addAxis,[!1]],series:[v.prototype.addSeries]};E(g.prototype,{update:function(c,\ne,f,h){function p(){l.applyOptions(c);var h=b&&l.hasDummyGraphic;h=null===l.y?!h:h;b&&h&&(l.graphic=b.destroy(),delete l.hasDummyGraphic);q(c,!0)&&(b&&b.element&&c&&c.marker&&\"undefined\"!==typeof c.marker.symbol&&(l.graphic=b.destroy()),c&&c.dataLabels&&l.dataLabel&&(l.dataLabel=l.dataLabel.destroy()),l.connector&&(l.connector=l.connector.destroy()));n=l.index;d.updateParallelArrays(l,n);u.data[n]=q(u.data[n],!0)||q(c,!0)?l.options:a(c,u.data[n]);d.isDirty=d.isDirtyData=!0;!d.fixedBox&&d.hasCartesianSeries&&\n(m.isDirtyBox=!0);\"point\"===u.legendType&&(m.isDirtyLegend=!0);e&&m.redraw(f)}var l=this,d=l.series,b=l.graphic,n,m=d.chart,u=d.options;e=a(e,!0);!1===h?p():l.firePointEvent(\"update\",{options:c},p)},remove:function(a,c){this.series.removePoint(this.series.data.indexOf(this),a,c)}});E(u.prototype,{addPoint:function(c,e,f,h,l){var p=this.options,d=this.data,b=this.chart,n=this.xAxis;n=n&&n.hasNames&&n.names;var m=p.data,u=this.xData,w;e=a(e,!0);var g={series:this};this.pointClass.prototype.applyOptions.apply(g,\n[c]);var C=g.x;var r=u.length;if(this.requireSorting&&C<u[r-1])for(w=!0;r&&u[r-1]>C;)r--;this.updateParallelArrays(g,\"splice\",r,0,0);this.updateParallelArrays(g,r);n&&g.name&&(n[C]=g.name);m.splice(r,0,c);w&&(this.data.splice(r,0,null),this.processData());\"point\"===p.legendType&&this.generatePoints();f&&(d[0]&&d[0].remove?d[0].remove(!1):(d.shift(),this.updateParallelArrays(g,\"shift\"),m.shift()));!1!==l&&D(this,\"addPoint\",{point:g});this.isDirtyData=this.isDirty=!0;e&&b.redraw(h)},removePoint:function(c,\nf,h){var p=this,l=p.data,m=l[c],d=p.points,b=p.chart,n=function(){d&&d.length===l.length&&d.splice(c,1);l.splice(c,1);p.options.data.splice(c,1);p.updateParallelArrays(m||{series:p},\"splice\",c,1);m&&m.destroy();p.isDirty=!0;p.isDirtyData=!0;f&&b.redraw()};e(h,b);f=a(f,!0);m?m.firePointEvent(\"remove\",null,n):n()},remove:function(c,e,f,h){function p(){l.destroy(h);l.remove=null;d.isDirtyLegend=d.isDirtyBox=!0;d.linkSeries();a(c,!0)&&d.redraw(e)}var l=this,d=l.chart;!1!==f?D(l,\"remove\",null,p):p()},\nupdate:function(c,e){c=k.cleanRecursively(c,this.userOptions);D(this,\"update\",{options:c});var f=this,l=f.chart,m=f.userOptions,u=f.initialType||f.type,d=c.type||m.type||l.options.chart.type,b=!(this.hasDerivedData||c.dataGrouping||d&&d!==this.type||\"undefined\"!==typeof c.pointStart||c.pointInterval||c.pointIntervalUnit||c.keys),n=L[u].prototype,w,g=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"],r=[\"eventOptions\",\"navigatorSeries\",\"baseSeries\"],q=f.finishedAnimating&&{animation:!1},t=\n{};b&&(r.push(\"data\",\"isDirtyData\",\"points\",\"processedXData\",\"processedYData\",\"xIncrement\",\"_hasPointMarkers\",\"_hasPointLabels\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==c.visible&&r.push(\"area\",\"graph\"),f.parallelArrays.forEach(function(b){r.push(b+\"Data\")}),c.data&&(c.dataSorting&&E(f.options.dataSorting,c.dataSorting),this.setData(c.data,!1)));c=h(m,q,{index:\"undefined\"===typeof m.index?f.index:m.index,pointStart:a(m.pointStart,f.xData[0])},!b&&{data:f.options.data},c);b&&c.data&&(c.data=\nf.options.data);r=g.concat(r);r.forEach(function(b){r[b]=f[b];delete f[b]});f.remove(!1,null,!1,!0);for(w in n)f[w]=void 0;L[d||u]?E(f,L[d||u].prototype):J(17,!0,l,{missingModuleFor:d||u});r.forEach(function(b){f[b]=r[b]});f.init(l,c);if(b&&this.points){var F=f.options;!1===F.visible?(t.graphic=1,t.dataLabel=1):f._hasPointLabels||(d=F.marker,n=F.dataLabels,d&&(!1===d.enabled||\"symbol\"in d)&&(t.graphic=1),n&&!1===n.enabled&&(t.dataLabel=1));this.points.forEach(function(b){b&&b.series&&(b.resolveColor(),\nObject.keys(t).length&&b.destroyElements(t),!1===F.showInLegend&&b.legendItem&&l.legend.destroyItem(b))},this)}c.zIndex!==m.zIndex&&g.forEach(function(b){f[b]&&f[b].attr({zIndex:c.zIndex})});f.initialType=u;l.linkSeries();D(this,\"afterUpdate\");a(e,!0)&&l.redraw(b?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0}});E(m.prototype,{update:function(c,e){var p=this.chart,l=c&&c.events||{};c=h(this.userOptions,c);p.options[this.coll].indexOf&&\n(p.options[this.coll][p.options[this.coll].indexOf(this.userOptions)]=c);f(p.options[this.coll].events,function(a,c){\"undefined\"===typeof l[c]&&(l[c]=void 0)});this.destroy(!0);this.init(p,E(c,{events:l}));p.isDirtyBox=!0;a(e,!0)&&p.redraw()},remove:function(c){for(var e=this.chart,f=this.coll,h=this.series,l=h.length;l--;)h[l]&&h[l].remove(!1);I(e.axes,this);I(e[f],this);z(e.options[f])?e.options[f].splice(this.options.index,1):delete e.options[f];e[f].forEach(function(a,d){a.options.index=a.userOptions.index=\nd});this.destroy();e.isDirtyBox=!0;a(c,!0)&&e.redraw()},setTitle:function(a,c){this.update({title:a},c)},setCategories:function(a,c){this.update({categories:a},c)}})});P(A,\"parts/AreaSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=g.parse,G=v.objectEach,N=v.pick;g=v.seriesType;var M=k.Series;g(\"area\",\"line\",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(g){var k=[],y=[],v=this.xAxis,D=this.yAxis,\nz=D.stacking.stacks[this.stackKey],t={},q=this.index,r=D.series,h=r.length,f=N(D.options.reversedStacks,!0)?1:-1,a;g=g||this.points;if(this.options.stacking){for(a=0;a<g.length;a++)g[a].leftNull=g[a].rightNull=void 0,t[g[a].x]=g[a];G(z,function(a,c){null!==a.total&&y.push(c)});y.sort(function(a,c){return a-c});var l=r.map(function(a){return a.visible});y.forEach(function(e,c){var m=0,u,g;if(t[e]&&!t[e].isNull)k.push(t[e]),[-1,1].forEach(function(m){var w=1===m?\"rightNull\":\"leftNull\",p=0,C=z[y[c+m]];\nif(C)for(a=q;0<=a&&a<h;)u=C.points[a],u||(a===q?t[e][w]=!0:l[a]&&(g=z[e].points[a])&&(p-=g[1]-g[0])),a+=f;t[e][1===m?\"rightCliff\":\"leftCliff\"]=p});else{for(a=q;0<=a&&a<h;){if(u=z[e].points[a]){m=u[1];break}a+=f}m=D.translate(m,0,1,0,1);k.push({isNull:!0,plotX:v.translate(e,0,0,0,1),x:e,plotY:m,yBottom:m})}})}return k},getGraphPath:function(g){var k=M.prototype.getGraphPath,y=this.options,v=y.stacking,D=this.yAxis,z,t=[],q=[],r=this.index,h=D.stacking.stacks[this.stackKey],f=y.threshold,a=Math.round(D.getThreshold(y.threshold));\ny=N(y.connectNulls,\"percent\"===v);var l=function(e,l,m){var u=g[e];e=v&&h[u.x].points[r];var p=u[m+\"Null\"]||0;m=u[m+\"Cliff\"]||0;u=!0;if(m||p){var C=(p?e[0]:e[1])+m;var k=e[0]+m;u=!!p}else!v&&g[l]&&g[l].isNull&&(C=k=f);\"undefined\"!==typeof C&&(q.push({plotX:c,plotY:null===C?a:D.getThreshold(C),isNull:u,isCliff:!0}),t.push({plotX:c,plotY:null===k?a:D.getThreshold(k),doCurve:!1}))};g=g||this.points;v&&(g=this.getStackPoints(g));for(z=0;z<g.length;z++){v||(g[z].leftCliff=g[z].rightCliff=g[z].leftNull=\ng[z].rightNull=void 0);var e=g[z].isNull;var c=N(g[z].rectPlotX,g[z].plotX);var m=N(g[z].yBottom,a);if(!e||y)y||l(z,z-1,\"left\"),e&&!v&&y||(q.push(g[z]),t.push({x:z,plotX:c,plotY:m})),y||l(z,z+1,\"right\")}z=k.call(this,q,!0,!0);t.reversed=!0;e=k.call(this,t,!0,!0);(m=e[0])&&\"M\"===m[0]&&(e[0]=[\"L\",m[1],m[2]]);e=z.concat(e);k=k.call(this,q,!1,y);e.xMap=z.xMap;this.areaPath=e;return k},drawGraph:function(){this.areaPath=[];M.prototype.drawGraph.apply(this);var g=this,k=this.areaPath,v=this.options,E=[[\"area\",\n\"highcharts-area\",this.color,v.fillColor]];this.zones.forEach(function(k,z){E.push([\"zone-area-\"+z,\"highcharts-area highcharts-zone-area-\"+z+\" \"+k.className,k.color||g.color,k.fillColor||v.fillColor])});E.forEach(function(y){var z=y[0],t=g[z],q=t?\"animate\":\"attr\",r={};t?(t.endX=g.preventGraphAnimation?null:k.xMap,t.animate({d:k})):(r.zIndex=0,t=g[z]=g.chart.renderer.path(k).addClass(y[1]).add(g.group),t.isArea=!0);g.chart.styledMode||(r.fill=N(y[3],K(y[2]).setOpacity(N(v.fillOpacity,.75)).get()));\nt[q](r);t.startX=k.xMap;t.shiftUnit=v.step?2:1})},drawLegendSymbol:H.drawRectangle});\"\"});P(A,\"parts/SplineSeries.js\",[A[\"parts/Utilities.js\"]],function(k){var g=k.pick;k=k.seriesType;k(\"spline\",\"line\",{},{getPointSpline:function(k,v,K){var G=v.plotX||0,N=v.plotY||0,M=k[K-1];K=k[K+1];if(M&&!M.isNull&&!1!==M.doCurve&&!v.isCliff&&K&&!K.isNull&&!1!==K.doCurve&&!v.isCliff){k=M.plotY||0;var y=K.plotX||0;K=K.plotY||0;var I=0;var J=(1.5*G+(M.plotX||0))/2.5;var E=(1.5*N+k)/2.5;y=(1.5*G+y)/2.5;var D=(1.5*\nN+K)/2.5;y!==J&&(I=(D-E)*(y-G)/(y-J)+N-D);E+=I;D+=I;E>k&&E>N?(E=Math.max(k,N),D=2*N-E):E<k&&E<N&&(E=Math.min(k,N),D=2*N-E);D>K&&D>N?(D=Math.max(K,N),E=2*N-D):D<K&&D<N&&(D=Math.min(K,N),E=2*N-D);v.rightContX=y;v.rightContY=D}v=[\"C\",g(M.rightContX,M.plotX,0),g(M.rightContY,M.plotY,0),g(J,G,0),g(E,N,0),G,N];M.rightContX=M.rightContY=void 0;return v}});\"\"});P(A,\"parts/AreaSplineSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){H=H.seriesType;var v=\nk.seriesTypes.area.prototype;H(\"areaspline\",\"spline\",k.defaultPlotOptions.area,{getStackPoints:v.getStackPoints,getGraphPath:v.getGraphPath,drawGraph:v.drawGraph,drawLegendSymbol:g.drawRectangle});\"\"});P(A,\"parts/ColumnSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){\"\";var K=g.parse,G=v.animObject,N=v.clamp,M=v.defined,y=v.extend,I=v.isNumber,J=v.merge,E=v.pick;g=v.seriesType;var D=k.Series;g(\"column\",\"line\",{borderRadius:0,\ngroupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:\"#cccccc\",borderColor:\"#000000\"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"#ffffff\"},{cropShoulder:0,directTouch:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],negStacks:!0,init:function(){D.prototype.init.apply(this,arguments);var g=this,k=g.chart;\nk.hasRendered&&k.series.forEach(function(k){k.type===g.type&&(k.isDirty=!0)})},getColumnMetrics:function(){var g=this,k=g.options,q=g.xAxis,r=g.yAxis,h=q.options.reversedStacks;h=q.reversed&&!h||!q.reversed&&h;var f,a={},l=0;!1===k.grouping?l=1:g.chart.series.forEach(function(c){var e=c.yAxis,h=c.options;if(c.type===g.type&&(c.visible||!g.chart.options.chart.ignoreHiddenSeries)&&r.len===e.len&&r.pos===e.pos){if(h.stacking){f=c.stackKey;\"undefined\"===typeof a[f]&&(a[f]=l++);var m=a[f]}else!1!==h.grouping&&\n(m=l++);c.columnIndex=m}});var e=Math.min(Math.abs(q.transA)*(q.ordinal&&q.ordinal.slope||k.pointRange||q.closestPointRange||q.tickInterval||1),q.len),c=e*k.groupPadding,m=(e-2*c)/(l||1);k=Math.min(k.maxPointWidth||q.len,E(k.pointWidth,m*(1-2*k.pointPadding)));g.columnMetrics={width:k,offset:(m-k)/2+(c+((g.columnIndex||0)+(h?1:0))*m-e/2)*(h?-1:1)};return g.columnMetrics},crispCol:function(g,k,q,r){var h=this.chart,f=this.borderWidth,a=-(f%2?.5:0);f=f%2?.5:1;h.inverted&&h.renderer.isVML&&(f+=1);this.options.crisp&&\n(q=Math.round(g+q)+a,g=Math.round(g)+a,q-=g);r=Math.round(k+r)+f;a=.5>=Math.abs(k)&&.5<r;k=Math.round(k)+f;r-=k;a&&r&&(--k,r+=1);return{x:g,y:k,width:q,height:r}},translate:function(){var g=this,k=g.chart,q=g.options,r=g.dense=2>g.closestPointRange*g.xAxis.transA;r=g.borderWidth=E(q.borderWidth,r?0:1);var h=g.xAxis,f=g.yAxis,a=q.threshold,l=g.translatedThreshold=f.getThreshold(a),e=E(q.minPointLength,5),c=g.getColumnMetrics(),m=c.width,u=g.barW=Math.max(m,1+2*r),L=g.pointXOffset=c.offset,F=g.dataMin,\nw=g.dataMax;k.inverted&&(l-=.5);q.pointPadding&&(u=Math.ceil(u));D.prototype.translate.apply(g);g.points.forEach(function(c){var p=E(c.yBottom,l),r=999+Math.abs(p),q=m,d=c.plotX;r=N(c.plotY,-r,f.len+r);var b=c.plotX+L,n=u,x=Math.min(r,p),t=Math.max(r,p)-x;if(e&&Math.abs(t)<e){t=e;var z=!f.reversed&&!c.negative||f.reversed&&c.negative;I(a)&&I(w)&&c.y===a&&w<=a&&(f.min||0)<a&&F!==w&&(z=!z);x=Math.abs(x-l)>e?p-e:l-(z?e:0)}M(c.options.pointWidth)&&(q=n=Math.ceil(c.options.pointWidth),b-=Math.round((q-\nm)/2));c.barX=b;c.pointWidth=q;c.tooltipPos=k.inverted?[f.len+f.pos-k.plotLeft-r,h.len+h.pos-k.plotTop-(d||0)-L-n/2,t]:[b+n/2,r+f.pos-k.plotTop,t];c.shapeType=g.pointClass.prototype.shapeType||\"rect\";c.shapeArgs=g.crispCol.apply(g,c.isNull?[b,l,n,0]:[b,x,n,t])})},getSymbol:k.noop,drawLegendSymbol:H.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(g,k){var q=this.options,r=this.pointAttrToOptions||{};var h=r.stroke||\n\"borderColor\";var f=r[\"stroke-width\"]||\"borderWidth\",a=g&&g.color||this.color,l=g&&g[h]||q[h]||this.color||a,e=g&&g[f]||q[f]||this[f]||0;r=g&&g.options.dashStyle||q.dashStyle;var c=E(g&&g.opacity,q.opacity,1);if(g&&this.zones.length){var m=g.getZone();a=g.options.color||m&&(m.color||g.nonZonedColor)||this.color;m&&(l=m.borderColor||l,r=m.dashStyle||r,e=m.borderWidth||e)}k&&g&&(g=J(q.states[k],g.options.states&&g.options.states[k]||{}),k=g.brightness,a=g.color||\"undefined\"!==typeof k&&K(a).brighten(g.brightness).get()||\na,l=g[h]||l,e=g[f]||e,r=g.dashStyle||r,c=E(g.opacity,c));h={fill:a,stroke:l,\"stroke-width\":e,opacity:c};r&&(h.dashstyle=r);return h},drawPoints:function(){var g=this,k=this.chart,q=g.options,r=k.renderer,h=q.animationLimit||250,f;g.points.forEach(function(a){var l=a.graphic,e=!!l,c=l&&k.pointCount<h?\"animate\":\"attr\";if(I(a.plotY)&&null!==a.y){f=a.shapeArgs;l&&a.hasNewShapeType()&&(l=l.destroy());g.enabledDataSorting&&(a.startXPos=g.xAxis.reversed?-(f?f.width:0):g.xAxis.width);l||(a.graphic=l=r[a.shapeType](f).add(a.group||\ng.group))&&g.enabledDataSorting&&k.hasRendered&&k.pointCount<h&&(l.attr({x:a.startXPos}),e=!0,c=\"animate\");if(l&&e)l[c](J(f));if(q.borderRadius)l[c]({r:q.borderRadius});k.styledMode||l[c](g.pointAttribs(a,a.selected&&\"select\")).shadow(!1!==a.allowShadow&&q.shadow,null,q.stacking&&!q.borderRadius);l.addClass(a.getClassName(),!0)}else l&&(a.graphic=l.destroy())})},animate:function(g){var k=this,q=this.yAxis,r=k.options,h=this.chart.inverted,f={},a=h?\"translateX\":\"translateY\";if(g)f.scaleY=.001,g=N(q.toPixels(r.threshold),\nq.pos,q.pos+q.len),h?f.translateX=g-q.len:f.translateY=g,k.clipBox&&k.setClip(),k.group.attr(f);else{var l=k.group.attr(a);k.group.animate({scaleY:1},y(G(k.options.animation),{step:function(e,c){k.group&&(f[a]=l+c.pos*(q.pos-l),k.group.attr(f))}}))}},remove:function(){var g=this,k=g.chart;k.hasRendered&&k.series.forEach(function(k){k.type===g.type&&(k.isDirty=!0)});D.prototype.remove.apply(g,arguments)}});\"\"});P(A,\"parts/BarSeries.js\",[A[\"parts/Utilities.js\"]],function(k){k=k.seriesType;k(\"bar\",\"column\",\nnull,{inverted:!0});\"\"});P(A,\"parts/ScatterSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent;g=g.seriesType;var v=k.Series;g(\"scatter\",\"line\",{lineWidth:0,findNearestPointBy:\"xy\",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <span style=\"font-size: 10px\"> {series.name}</span><br/>',pointFormat:\"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>\"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\n\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&v.prototype.drawGraph.call(this)},applyJitter:function(){var g=this,k=this.options.jitter,v=this.points.length;k&&this.points.forEach(function(G,y){[\"x\",\"y\"].forEach(function(I,J){var E=\"plot\"+I.toUpperCase();if(k[I]&&!G.isNull){var D=g[I+\"Axis\"];var z=k[I]*D.transA;if(D&&!D.isLog){var t=Math.max(0,G[E]-z);D=Math.min(D.len,G[E]+z);J=1E4*Math.sin(y+J*v);G[E]=t+(D-t)*(J-Math.floor(J));\"x\"===I&&(G.clientX=\nG.plotX)}}})})}});H(v,\"afterTranslate\",function(){this.applyJitter&&this.applyJitter()});\"\"});P(A,\"mixins/centered-series.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.isNumber,v=g.pick,K=g.relativeLength,G=k.deg2rad;k.CenteredSeriesMixin={getCenter:function(){var g=this.options,k=this.chart,y=2*(g.slicedOffset||0),G=k.plotWidth-2*y,J=k.plotHeight-2*y,E=g.center,D=Math.min(G,J),z=g.size,t=g.innerSize||0;\"string\"===typeof z&&(z=parseFloat(z));\"string\"===typeof t&&(t=parseFloat(t));\ng=[v(E[0],\"50%\"),v(E[1],\"50%\"),v(z&&0>z?void 0:g.size,\"100%\"),v(t&&0>t?void 0:g.innerSize||0,\"0%\")];k.angular&&(g[3]=0);for(E=0;4>E;++E)z=g[E],k=2>E||2===E&&/%$/.test(z),g[E]=K(z,[G,J,D,g[2]][E])+(k?y:0);g[3]>g[2]&&(g[3]=g[2]);return g},getStartAndEndRadians:function(g,k){g=H(g)?g:0;k=H(k)&&k>g&&360>k-g?k:g+360;return{start:G*(g+-90),end:G*(k+-90)}}}});P(A,\"parts/PieSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=\nv.addEvent,G=v.clamp,A=v.defined,M=v.fireEvent,y=v.isNumber,I=v.merge,J=v.pick,E=v.relativeLength,D=v.seriesType,z=v.setAnimation;v=k.CenteredSeriesMixin;var t=v.getStartAndEndRadians,q=k.noop,r=k.Series;D(\"pie\",\"line\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:\"fixedOffset\",crookDistance:\"70%\",distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,\ninactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],axisTypes:[],pointAttribs:k.seriesTypes.column.prototype.pointAttribs,animate:function(h){var f=this,a=f.points,l=f.startAngleRad;h||a.forEach(function(a){var c=a.graphic,\ne=a.shapeArgs;c&&e&&(c.attr({r:J(a.startR,f.center&&f.center[3]/2),start:l,end:l}),c.animate({r:e.r,start:e.start,end:e.end},f.options.animation))})},hasData:function(){return!!this.processedXData.length},updateTotals:function(){var h,f=0,a=this.points,l=a.length,e=this.options.ignoreHiddenPoint;for(h=0;h<l;h++){var c=a[h];f+=e&&!c.visible?0:c.isNull?0:c.y}this.total=f;for(h=0;h<l;h++)c=a[h],c.percentage=0<f&&(c.visible||!e)?c.y/f*100:0,c.total=f},generatePoints:function(){r.prototype.generatePoints.call(this);\nthis.updateTotals()},getX:function(h,f,a){var l=this.center,e=this.radii?this.radii[a.index]:l[2]/2;h=Math.asin(G((h-l[1])/(e+a.labelDistance),-1,1));return l[0]+(f?-1:1)*Math.cos(h)*(e+a.labelDistance)+(0<a.labelDistance?(f?-1:1)*this.options.dataLabels.padding:0)},translate:function(h){this.generatePoints();var f=0,a=this.options,l=a.slicedOffset,e=l+(a.borderWidth||0),c=t(a.startAngle,a.endAngle),g=this.startAngleRad=c.start;c=(this.endAngleRad=c.end)-g;var u=this.points,k=a.dataLabels.distance;\na=a.ignoreHiddenPoint;var r,w=u.length;h||(this.center=h=this.getCenter());for(r=0;r<w;r++){var p=u[r];var C=g+f*c;if(!a||p.visible)f+=p.percentage/100;var q=g+f*c;p.shapeType=\"arc\";p.shapeArgs={x:h[0],y:h[1],r:h[2]/2,innerR:h[3]/2,start:Math.round(1E3*C)/1E3,end:Math.round(1E3*q)/1E3};p.labelDistance=J(p.options.dataLabels&&p.options.dataLabels.distance,k);p.labelDistance=E(p.labelDistance,p.shapeArgs.r);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,p.labelDistance);q=(q+C)/2;q>1.5*Math.PI?\nq-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);p.slicedTranslation={translateX:Math.round(Math.cos(q)*l),translateY:Math.round(Math.sin(q)*l)};var B=Math.cos(q)*h[2]/2;var d=Math.sin(q)*h[2]/2;p.tooltipPos=[h[0]+.7*B,h[1]+.7*d];p.half=q<-Math.PI/2||q>Math.PI/2?1:0;p.angle=q;C=Math.min(e,p.labelDistance/5);p.labelPosition={natural:{x:h[0]+B+Math.cos(q)*p.labelDistance,y:h[1]+d+Math.sin(q)*p.labelDistance},\"final\":{},alignment:0>p.labelDistance?\"center\":p.half?\"right\":\"left\",connectorPosition:{breakAt:{x:h[0]+\nB+Math.cos(q)*C,y:h[1]+d+Math.sin(q)*C},touchingSliceAt:{x:h[0]+B,y:h[1]+d}}}}M(this,\"afterTranslate\")},drawEmpty:function(){var h=this.options;if(0===this.total){var f=this.center[0];var a=this.center[1];this.graph||(this.graph=this.chart.renderer.circle(f,a,0).addClass(\"highcharts-graph\").add(this.group));this.graph.animate({\"stroke-width\":h.borderWidth,cx:f,cy:a,r:this.center[2]/2,fill:h.fillColor||\"none\",stroke:h.color||\"#cccccc\"},this.options.animation)}else this.graph&&(this.graph=this.graph.destroy())},\nredrawPoints:function(){var h=this,f=h.chart,a=f.renderer,l,e,c,g,u=h.options.shadow;this.drawEmpty();!u||h.shadowGroup||f.styledMode||(h.shadowGroup=a.g(\"shadow\").attr({zIndex:-1}).add(h.group));h.points.forEach(function(m){var k={};e=m.graphic;if(!m.isNull&&e){g=m.shapeArgs;l=m.getTranslate();if(!f.styledMode){var w=m.shadowGroup;u&&!w&&(w=m.shadowGroup=a.g(\"shadow\").add(h.shadowGroup));w&&w.attr(l);c=h.pointAttribs(m,m.selected&&\"select\")}m.delayedRendering?(e.setRadialReference(h.center).attr(g).attr(l),\nf.styledMode||e.attr(c).attr({\"stroke-linejoin\":\"round\"}).shadow(u,w),m.delayedRendering=!1):(e.setRadialReference(h.center),f.styledMode||I(!0,k,c),I(!0,k,g,l),e.animate(k));e.attr({visibility:m.visible?\"inherit\":\"hidden\"});e.addClass(m.getClassName())}else e&&(m.graphic=e.destroy())})},drawPoints:function(){var h=this.chart.renderer;this.points.forEach(function(f){f.graphic&&f.hasNewShapeType()&&(f.graphic=f.graphic.destroy());f.graphic||(f.graphic=h[f.shapeType](f.shapeArgs).add(f.series.group),\nf.delayedRendering=!0)})},searchPoint:q,sortByAngle:function(h,f){h.sort(function(a,h){return\"undefined\"!==typeof a.angle&&(h.angle-a.angle)*f})},drawLegendSymbol:g.drawRectangle,getCenter:v.getCenter,getSymbol:q,drawGraph:null},{init:function(){H.prototype.init.apply(this,arguments);var h=this;h.name=J(h.name,\"Slice\");var f=function(a){h.slice(\"select\"===a.type)};K(h,\"select\",f);K(h,\"unselect\",f);return h},isValid:function(){return y(this.y)&&0<=this.y},setVisible:function(h,f){var a=this,l=a.series,\ne=l.chart,c=l.options.ignoreHiddenPoint;f=J(f,c);h!==a.visible&&(a.visible=a.options.visible=h=\"undefined\"===typeof h?!a.visible:h,l.options.data[l.data.indexOf(a)]=a.options,[\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"].forEach(function(c){if(a[c])a[c][h?\"show\":\"hide\"](!0)}),a.legendItem&&e.legend.colorizeItem(a,h),h||\"hover\"!==a.state||a.setState(\"\"),c&&(l.isDirty=!0),f&&e.redraw())},slice:function(h,f,a){var l=this.series;z(a,l.chart);J(f,!0);this.sliced=this.options.sliced=A(h)?h:!this.sliced;\nl.options.data[l.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(h){var f=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(f.x,f.y,f.r+h,f.r+h,{innerR:f.r-1,start:f.start,end:f.end})},connectorShapes:{fixedOffset:function(h,f,a){var l=f.breakAt;\nf=f.touchingSliceAt;return[[\"M\",h.x,h.y],a.softConnector?[\"C\",h.x+(\"left\"===h.alignment?-5:5),h.y,2*l.x-f.x,2*l.y-f.y,l.x,l.y]:[\"L\",l.x,l.y],[\"L\",f.x,f.y]]},straight:function(h,f){f=f.touchingSliceAt;return[[\"M\",h.x,h.y],[\"L\",f.x,f.y]]},crookedLine:function(h,f,a){f=f.touchingSliceAt;var l=this.series,e=l.center[0],c=l.chart.plotWidth,g=l.chart.plotLeft;l=h.alignment;var u=this.shapeArgs.r;a=E(a.crookDistance,1);c=\"left\"===l?e+u+(c+g-e-u)*(1-a):g+(e-u)*a;a=[\"L\",c,h.y];e=!0;if(\"left\"===l?c>h.x||c<\nf.x:c<h.x||c>f.x)e=!1;h=[[\"M\",h.x,h.y]];e&&h.push(a);h.push([\"L\",f.x,f.y]);return h}},getConnectorPath:function(){var h=this.labelPosition,f=this.series.options.dataLabels,a=f.connectorShape,l=this.connectorShapes;l[a]&&(a=l[a]);return a.call(this,{x:h.final.x,y:h.final.y,alignment:h.alignment},h.connectorPosition,f)}});\"\"});P(A,\"parts/DataLabels.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.animObject,v=g.arrayMax,A=g.clamp,G=g.defined,N=g.extend,M=g.fireEvent,y=g.format,\nI=g.isArray,J=g.merge,E=g.objectEach,D=g.pick,z=g.relativeLength,t=g.splat,q=g.stableSort;g=k.noop;var r=k.Series,h=k.seriesTypes;k.distribute=function(f,a,h){function e(a,c){return a.target-c.target}var c,l=!0,g=f,r=[];var t=0;var w=g.reducedLen||a;for(c=f.length;c--;)t+=f[c].size;if(t>w){q(f,function(a,c){return(c.rank||0)-(a.rank||0)});for(t=c=0;t<=w;)t+=f[c].size,c++;r=f.splice(c-1,f.length)}q(f,e);for(f=f.map(function(a){return{size:a.size,targets:[a.target],align:D(a.align,.5)}});l;){for(c=\nf.length;c--;)l=f[c],t=(Math.min.apply(0,l.targets)+Math.max.apply(0,l.targets))/2,l.pos=A(t-l.size*l.align,0,a-l.size);c=f.length;for(l=!1;c--;)0<c&&f[c-1].pos+f[c-1].size>f[c].pos&&(f[c-1].size+=f[c].size,f[c-1].targets=f[c-1].targets.concat(f[c].targets),f[c-1].align=.5,f[c-1].pos+f[c-1].size>a&&(f[c-1].pos=a-f[c-1].size),f.splice(c,1),l=!0)}g.push.apply(g,r);c=0;f.some(function(e){var f=0;if(e.targets.some(function(){g[c].pos=e.pos+f;if(\"undefined\"!==typeof h&&Math.abs(g[c].pos-g[c].target)>h)return g.slice(0,\nc+1).forEach(function(a){delete a.pos}),g.reducedLen=(g.reducedLen||a)-.1*a,g.reducedLen>.1*a&&k.distribute(g,a,h),!0;f+=g[c].size;c++}))return!0});q(g,e)};r.prototype.drawDataLabels=function(){function f(a,b){var d=b.filter;return d?(b=d.operator,a=a[d.property],d=d.value,\">\"===b&&a>d||\"<\"===b&&a<d||\">=\"===b&&a>=d||\"<=\"===b&&a<=d||\"==\"===b&&a==d||\"===\"===b&&a===d?!0:!1):!0}function a(a,b){var d=[],c;if(I(a)&&!I(b))d=a.map(function(a){return J(a,b)});else if(I(b)&&!I(a))d=b.map(function(b){return J(a,\nb)});else if(I(a)||I(b))for(c=Math.max(a.length,b.length);c--;)d[c]=J(a[c],b[c]);else d=J(a,b);return d}var h=this,e=h.chart,c=h.options,g=c.dataLabels,u=h.points,k,r=h.hasRendered||0,w=H(c.animation).duration,p=Math.min(w,200),C=!e.renderer.forExport&&D(g.defer,0<p),q=e.renderer;g=a(a(e.options.plotOptions&&e.options.plotOptions.series&&e.options.plotOptions.series.dataLabels,e.options.plotOptions&&e.options.plotOptions[h.type]&&e.options.plotOptions[h.type].dataLabels),g);M(this,\"drawDataLabels\");\nif(I(g)||g.enabled||h._hasPointLabels){var B=h.plotGroup(\"dataLabelsGroup\",\"data-labels\",C&&!r?\"hidden\":\"inherit\",g.zIndex||6);C&&(B.attr({opacity:+r}),r||setTimeout(function(){var a=h.dataLabelsGroup;a&&(h.visible&&B.show(!0),a[c.animation?\"animate\":\"attr\"]({opacity:1},{duration:p}))},w-p));u.forEach(function(d){k=t(a(g,d.dlOptions||d.options&&d.options.dataLabels));k.forEach(function(b,a){var p=b.enabled&&(!d.isNull||d.dataLabelOnNull)&&f(d,b),g=d.dataLabels?d.dataLabels[a]:d.dataLabel,l=d.connectors?\nd.connectors[a]:d.connector,m=D(b.distance,d.labelDistance),n=!g;if(p){var u=d.getLabelConfig();var w=D(b[d.formatPrefix+\"Format\"],b.format);u=G(w)?y(w,u,e):(b[d.formatPrefix+\"Formatter\"]||b.formatter).call(u,b);w=b.style;var k=b.rotation;e.styledMode||(w.color=D(b.color,w.color,h.color,\"#000000\"),\"contrast\"===w.color?(d.contrastColor=q.getContrast(d.color||h.color),w.color=!G(m)&&b.inside||0>m||c.stacking?d.contrastColor:\"#000000\"):delete d.contrastColor,c.cursor&&(w.cursor=c.cursor));var r={r:b.borderRadius||\n0,rotation:k,padding:b.padding,zIndex:1};e.styledMode||(r.fill=b.backgroundColor,r.stroke=b.borderColor,r[\"stroke-width\"]=b.borderWidth);E(r,function(b,a){\"undefined\"===typeof b&&delete r[a]})}!g||p&&G(u)?p&&G(u)&&(g?r.text=u:(d.dataLabels=d.dataLabels||[],g=d.dataLabels[a]=k?q.text(u,0,-9999,b.useHTML).addClass(\"highcharts-data-label\"):q.label(u,0,-9999,b.shape,null,null,b.useHTML,null,\"data-label\"),a||(d.dataLabel=g),g.addClass(\" highcharts-data-label-color-\"+d.colorIndex+\" \"+(b.className||\"\")+\n(b.useHTML?\" highcharts-tracker\":\"\"))),g.options=b,g.attr(r),e.styledMode||g.css(w).shadow(b.shadow),g.added||g.add(B),b.textPath&&!b.useHTML&&(g.setTextPath(d.getDataLabelPath&&d.getDataLabelPath(g)||d.graphic,b.textPath),d.dataLabelPath&&!b.textPath.enabled&&(d.dataLabelPath=d.dataLabelPath.destroy())),h.alignDataLabel(d,g,b,null,n)):(d.dataLabel=d.dataLabel&&d.dataLabel.destroy(),d.dataLabels&&(1===d.dataLabels.length?delete d.dataLabels:delete d.dataLabels[a]),a||delete d.dataLabel,l&&(d.connector=\nd.connector.destroy(),d.connectors&&(1===d.connectors.length?delete d.connectors:delete d.connectors[a])))})})}M(this,\"afterDrawDataLabels\")};r.prototype.alignDataLabel=function(f,a,h,e,c){var g=this,l=this.chart,k=this.isCartesian&&l.inverted,r=this.enabledDataSorting,w=D(f.dlBox&&f.dlBox.centerX,f.plotX,-9999),p=D(f.plotY,-9999),C=a.getBBox(),q=h.rotation,t=h.align,d=l.isInsidePlot(w,Math.round(p),k),b=\"justify\"===D(h.overflow,r?\"none\":\"justify\"),n=this.visible&&!1!==f.visible&&(f.series.forceDL||\nr&&!b||d||h.inside&&e&&l.isInsidePlot(w,k?e.x+1:e.y+e.height-1,k));var x=function(e){r&&g.xAxis&&!b&&g.setDataLabelStartPos(f,a,c,d,e)};if(n){var v=l.renderer.fontMetrics(l.styledMode?void 0:h.style.fontSize,a).b;e=N({x:k?this.yAxis.len-p:w,y:Math.round(k?this.xAxis.len-w:p),width:0,height:0},e);N(h,{width:C.width,height:C.height});q?(b=!1,w=l.renderer.rotCorr(v,q),w={x:e.x+h.x+e.width/2+w.x,y:e.y+h.y+{top:0,middle:.5,bottom:1}[h.verticalAlign]*e.height},x(w),a[c?\"attr\":\"animate\"](w).attr({align:t}),\nx=(q+720)%360,x=180<x&&360>x,\"left\"===t?w.y-=x?C.height:0:\"center\"===t?(w.x-=C.width/2,w.y-=C.height/2):\"right\"===t&&(w.x-=C.width,w.y-=x?0:C.height),a.placed=!0,a.alignAttr=w):(x(e),a.align(h,null,e),w=a.alignAttr);b&&0<=e.height?this.justifyDataLabel(a,h,w,C,e,c):D(h.crop,!0)&&(n=l.isInsidePlot(w.x,w.y)&&l.isInsidePlot(w.x+C.width,w.y+C.height));if(h.shape&&!q)a[c?\"attr\":\"animate\"]({anchorX:k?l.plotWidth-f.plotY:f.plotX,anchorY:k?l.plotHeight-f.plotX:f.plotY})}c&&r&&(a.placed=!1);n||r&&!b||(a.hide(!0),\na.placed=!1)};r.prototype.setDataLabelStartPos=function(f,a,h,e,c){var g=this.chart,l=g.inverted,k=this.xAxis,r=k.reversed,w=l?a.height/2:a.width/2;f=(f=f.pointWidth)?f/2:0;k=l?c.x:r?-w-f:k.width-w+f;c=l?r?this.yAxis.height-w+f:-w-f:c.y;a.startXPos=k;a.startYPos=c;e?\"hidden\"===a.visibility&&(a.show(),a.attr({opacity:0}).animate({opacity:1})):a.attr({opacity:1}).animate({opacity:0},void 0,a.hide);g.hasRendered&&(h&&a.attr({x:a.startXPos,y:a.startYPos}),a.placed=!0)};r.prototype.justifyDataLabel=function(f,\na,h,e,c,g){var l=this.chart,m=a.align,k=a.verticalAlign,w=f.box?0:f.padding||0;var p=h.x+w;if(0>p){\"right\"===m?(a.align=\"left\",a.inside=!0):a.x=-p;var r=!0}p=h.x+e.width-w;p>l.plotWidth&&(\"left\"===m?(a.align=\"right\",a.inside=!0):a.x=l.plotWidth-p,r=!0);p=h.y+w;0>p&&(\"bottom\"===k?(a.verticalAlign=\"top\",a.inside=!0):a.y=-p,r=!0);p=h.y+e.height-w;p>l.plotHeight&&(\"top\"===k?(a.verticalAlign=\"bottom\",a.inside=!0):a.y=l.plotHeight-p,r=!0);r&&(f.placed=!g,f.align(a,null,c));return r};h.pie&&(h.pie.prototype.dataLabelPositioners=\n{radialDistributionY:function(f){return f.top+f.distributeBox.pos},radialDistributionX:function(f,a,h,e){return f.getX(h<a.top+2||h>a.bottom-2?e:h,a.half,a)},justify:function(f,a,h){return h[0]+(f.half?-1:1)*(a+f.labelDistance)},alignToPlotEdges:function(f,a,h,e){f=f.getBBox().width;return a?f+e:h-f-e},alignToConnectors:function(f,a,h,e){var c=0,g;f.forEach(function(a){g=a.dataLabel.getBBox().width;g>c&&(c=g)});return a?c+e:h-c-e}},h.pie.prototype.drawDataLabels=function(){var f=this,a=f.data,h,e=\nf.chart,c=f.options.dataLabels||{},g=c.connectorPadding,u,q=e.plotWidth,t=e.plotHeight,w=e.plotLeft,p=Math.round(e.chartWidth/3),C,y=f.center,B=y[2]/2,d=y[1],b,n,x,z,E=[[],[]],I,H,A,M,K=[0,0,0,0],N=f.dataLabelPositioners,P;f.visible&&(c.enabled||f._hasPointLabels)&&(a.forEach(function(b){b.dataLabel&&b.visible&&b.dataLabel.shortened&&(b.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),b.dataLabel.shortened=!1)}),r.prototype.drawDataLabels.apply(f),a.forEach(function(b){b.dataLabel&&\n(b.visible?(E[b.half].push(b),b.dataLabel._pos=null,!G(c.style.width)&&!G(b.options.dataLabels&&b.options.dataLabels.style&&b.options.dataLabels.style.width)&&b.dataLabel.getBBox().width>p&&(b.dataLabel.css({width:Math.round(.7*p)+\"px\"}),b.dataLabel.shortened=!0)):(b.dataLabel=b.dataLabel.destroy(),b.dataLabels&&1===b.dataLabels.length&&delete b.dataLabels))}),E.forEach(function(a,p){var l=a.length,m=[],u;if(l){f.sortByAngle(a,p-.5);if(0<f.maxLabelDistance){var r=Math.max(0,d-B-f.maxLabelDistance);\nvar C=Math.min(d+B+f.maxLabelDistance,e.plotHeight);a.forEach(function(b){0<b.labelDistance&&b.dataLabel&&(b.top=Math.max(0,d-B-b.labelDistance),b.bottom=Math.min(d+B+b.labelDistance,e.plotHeight),u=b.dataLabel.getBBox().height||21,b.distributeBox={target:b.labelPosition.natural.y-b.top+u/2,size:u,rank:b.y},m.push(b.distributeBox))});r=C+u-r;k.distribute(m,r,r/5)}for(M=0;M<l;M++){h=a[M];x=h.labelPosition;b=h.dataLabel;A=!1===h.visible?\"hidden\":\"inherit\";H=r=x.natural.y;m&&G(h.distributeBox)&&(\"undefined\"===\ntypeof h.distributeBox.pos?A=\"hidden\":(z=h.distributeBox.size,H=N.radialDistributionY(h)));delete h.positionIndex;if(c.justify)I=N.justify(h,B,y);else switch(c.alignTo){case \"connectors\":I=N.alignToConnectors(a,p,q,w);break;case \"plotEdges\":I=N.alignToPlotEdges(b,p,q,w);break;default:I=N.radialDistributionX(f,h,H,r)}b._attr={visibility:A,align:x.alignment};P=h.options.dataLabels||{};b._pos={x:I+D(P.x,c.x)+({left:g,right:-g}[x.alignment]||0),y:H+D(P.y,c.y)-10};x.final.x=I;x.final.y=H;D(c.crop,!0)&&\n(n=b.getBBox().width,r=null,I-n<g&&1===p?(r=Math.round(n-I+g),K[3]=Math.max(r,K[3])):I+n>q-g&&0===p&&(r=Math.round(I+n-q+g),K[1]=Math.max(r,K[1])),0>H-z/2?K[0]=Math.max(Math.round(-H+z/2),K[0]):H+z/2>t&&(K[2]=Math.max(Math.round(H+z/2-t),K[2])),b.sideOverflow=r)}}}),0===v(K)||this.verifyDataLabelOverflow(K))&&(this.placeDataLabels(),this.points.forEach(function(a){P=J(c,a.options.dataLabels);if(u=D(P.connectorWidth,1)){var d;C=a.connector;if((b=a.dataLabel)&&b._pos&&a.visible&&0<a.labelDistance){A=\nb._attr.visibility;if(d=!C)a.connector=C=e.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\"+a.colorIndex+(a.className?\" \"+a.className:\"\")).add(f.dataLabelsGroup),e.styledMode||C.attr({\"stroke-width\":u,stroke:P.connectorColor||a.color||\"#666666\"});C[d?\"attr\":\"animate\"]({d:a.getConnectorPath()});C.attr(\"visibility\",A)}else C&&(a.connector=C.destroy())}}))},h.pie.prototype.placeDataLabels=function(){this.points.forEach(function(f){var a=f.dataLabel,h;a&&f.visible&&((h=a._pos)?\n(a.sideOverflow&&(a._attr.width=Math.max(a.getBBox().width-a.sideOverflow,0),a.css({width:a._attr.width+\"px\",textOverflow:(this.options.dataLabels.style||{}).textOverflow||\"ellipsis\"}),a.shortened=!0),a.attr(a._attr),a[a.moved?\"animate\":\"attr\"](h),a.moved=!0):a&&a.attr({y:-9999}));delete f.distributeBox},this)},h.pie.prototype.alignDataLabel=g,h.pie.prototype.verifyDataLabelOverflow=function(f){var a=this.center,h=this.options,e=h.center,c=h.minSize||80,g=null!==h.size;if(!g){if(null!==e[0])var u=\nMath.max(a[2]-Math.max(f[1],f[3]),c);else u=Math.max(a[2]-f[1]-f[3],c),a[0]+=(f[3]-f[1])/2;null!==e[1]?u=A(u,c,a[2]-Math.max(f[0],f[2])):(u=A(u,c,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2);u<a[2]?(a[2]=u,a[3]=Math.min(z(h.innerSize||0,u),u),this.translate(a),this.drawDataLabels&&this.drawDataLabels()):g=!0}return g});h.column&&(h.column.prototype.alignDataLabel=function(f,a,h,e,c){var g=this.chart.inverted,l=f.series,k=f.dlBox||f.shapeArgs,q=D(f.below,f.plotY>D(this.translatedThreshold,l.yAxis.len)),w=\nD(h.inside,!!this.options.stacking);k&&(e=J(k),0>e.y&&(e.height+=e.y,e.y=0),k=e.y+e.height-l.yAxis.len,0<k&&k<e.height&&(e.height-=k),g&&(e={x:l.yAxis.len-e.y-e.height,y:l.xAxis.len-e.x-e.width,width:e.height,height:e.width}),w||(g?(e.x+=q?0:e.width,e.width=0):(e.y+=q?e.height:0,e.height=0)));h.align=D(h.align,!g||w?\"center\":q?\"right\":\"left\");h.verticalAlign=D(h.verticalAlign,g||w?\"middle\":q?\"top\":\"bottom\");r.prototype.alignDataLabel.call(this,f,a,h,e,c);h.inside&&f.contrastColor&&a.css({color:f.contrastColor})})});\nP(A,\"modules/overlapping-datalabels.src.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.fireEvent,A=g.isArray,G=g.objectEach,N=g.pick;k=k.Chart;H(k,\"render\",function(){var g=[];(this.labelCollectors||[]).forEach(function(k){g=g.concat(k())});(this.yAxis||[]).forEach(function(k){k.stacking&&k.options.stackLabels&&!k.options.stackLabels.allowOverlap&&G(k.stacking.stacks,function(k){G(k,function(k){g.push(k.label)})})});(this.series||[]).forEach(function(k){var v=\nk.options.dataLabels;k.visible&&(!1!==v.enabled||k._hasPointLabels)&&(k.nodes||k.points).forEach(function(k){k.visible&&(A(k.dataLabels)?k.dataLabels:k.dataLabel?[k.dataLabel]:[]).forEach(function(v){var y=v.options;v.labelrank=N(y.labelrank,k.labelrank,k.shapeArgs&&k.shapeArgs.height);y.allowOverlap||g.push(v)})})});this.hideOverlappingLabels(g)});k.prototype.hideOverlappingLabels=function(g){var k=this,G=g.length,J=k.renderer,E,D,z,t=!1;var q=function(f){var a,h=f.box?0:f.padding||0,e=a=0,c;if(f&&\n(!f.alignAttr||f.placed)){var g=f.alignAttr||{x:f.attr(\"x\"),y:f.attr(\"y\")};var u=f.parentGroup;f.width||(a=f.getBBox(),f.width=a.width,f.height=a.height,a=J.fontMetrics(null,f.element).h);var k=f.width-2*h;(c={left:\"0\",center:\"0.5\",right:\"1\"}[f.alignValue])?e=+c*k:Math.round(f.x)!==f.translateX&&(e=f.x-f.translateX);return{x:g.x+(u.translateX||0)+h-e,y:g.y+(u.translateY||0)+h-a,width:f.width-2*h,height:f.height-2*h}}};for(D=0;D<G;D++)if(E=g[D])E.oldOpacity=E.opacity,E.newOpacity=1,E.absoluteBox=q(E);\ng.sort(function(f,a){return(a.labelrank||0)-(f.labelrank||0)});for(D=0;D<G;D++){var r=(q=g[D])&&q.absoluteBox;for(E=D+1;E<G;++E){var h=(z=g[E])&&z.absoluteBox;!r||!h||q===z||0===q.newOpacity||0===z.newOpacity||h.x>r.x+r.width||h.x+h.width<r.x||h.y>r.y+r.height||h.y+h.height<r.y||((q.labelrank<z.labelrank?q:z).newOpacity=0)}}g.forEach(function(f){if(f){var a=f.newOpacity;f.oldOpacity!==a&&(f.alignAttr&&f.placed?(f[a?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),t=!0,f.alignAttr.opacity=\na,f[f.isOld?\"animate\":\"attr\"](f.alignAttr,null,function(){k.styledMode||f.css({pointerEvents:a?\"auto\":\"none\"});f.visibility=a?\"inherit\":\"hidden\";f.placed=!!a}),v(k,\"afterHideOverlappingLabel\")):f.attr({opacity:a}));f.isOld=!0}});t&&v(k,\"afterHideAllOverlappingLabels\")}});P(A,\"parts/Interaction.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var A=v.addEvent,G=v.createElement,N=v.css,M=v.defined,y=v.extend,I=v.fireEvent,J=v.isArray,E=v.isFunction,\nD=v.isNumber,z=v.isObject,t=v.merge,q=v.objectEach,r=v.pick;v=k.Chart;var h=k.defaultOptions,f=k.defaultPlotOptions,a=k.hasTouch,l=k.Series,e=k.seriesTypes,c=k.svg;var m=k.TrackerMixin={drawTrackerPoint:function(){var c=this,e=c.chart,f=e.pointer,h=function(a){var c=f.getPointFromEvent(a);\"undefined\"!==typeof c&&(f.isDirectTouch=!0,c.onMouseOver(a))},g;c.points.forEach(function(a){g=J(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[];a.graphic&&(a.graphic.element.point=a);g.forEach(function(c){c.div?\nc.div.point=a:c.element.point=a})});c._hasTracking||(c.trackerGroups.forEach(function(g){if(c[g]){c[g].addClass(\"highcharts-tracker\").on(\"mouseover\",h).on(\"mouseout\",function(a){f.onTrackerMouseOut(a)});if(a)c[g].on(\"touchstart\",h);!e.styledMode&&c.options.cursor&&c[g].css(N).css({cursor:c.options.cursor})}}),c._hasTracking=!0);I(this,\"afterDrawTracker\")},drawTrackerGraph:function(){var e=this,f=e.options,h=f.trackByArea,g=[].concat(h?e.areaPath:e.graphPath),p=e.chart,l=p.pointer,m=p.renderer,k=p.options.tooltip.snap,\nd=e.tracker,b=function(b){if(p.hoverSeries!==e)e.onMouseOver()},n=\"rgba(192,192,192,\"+(c?.0001:.002)+\")\";d?d.attr({d:g}):e.graph&&(e.tracker=m.path(g).attr({visibility:e.visible?\"visible\":\"hidden\",zIndex:2}).addClass(h?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(e.group),p.styledMode||e.tracker.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:n,fill:h?n:\"none\",\"stroke-width\":e.graph.strokeWidth()+(h?0:2*k)}),[e.tracker,e.markerGroup].forEach(function(d){d.addClass(\"highcharts-tracker\").on(\"mouseover\",\nb).on(\"mouseout\",function(b){l.onTrackerMouseOut(b)});f.cursor&&!p.styledMode&&d.css({cursor:f.cursor});if(a)d.on(\"touchstart\",b)}));I(this,\"afterDrawTracker\")}};e.column&&(e.column.prototype.drawTracker=m.drawTrackerPoint);e.pie&&(e.pie.prototype.drawTracker=m.drawTrackerPoint);e.scatter&&(e.scatter.prototype.drawTracker=m.drawTrackerPoint);y(g.prototype,{setItemEvents:function(a,c,e){var f=this,h=f.chart.renderer.boxWrapper,g=a instanceof H,l=\"highcharts-legend-\"+(g?\"point\":\"series\")+\"-active\",\nm=f.chart.styledMode;(e?[c,a.legendSymbol]:[a.legendGroup]).forEach(function(d){if(d)d.on(\"mouseover\",function(){a.visible&&f.allItems.forEach(function(b){a!==b&&b.setState(\"inactive\",!g)});a.setState(\"hover\");a.visible&&h.addClass(l);m||c.css(f.options.itemHoverStyle)}).on(\"mouseout\",function(){f.chart.styledMode||c.css(t(a.visible?f.itemStyle:f.itemHiddenStyle));f.allItems.forEach(function(b){a!==b&&b.setState(\"\",!g)});h.removeClass(l);a.setState()}).on(\"click\",function(b){var d=function(){a.setVisible&&\na.setVisible();f.allItems.forEach(function(b){a!==b&&b.setState(a.visible?\"inactive\":\"\",!g)})};h.removeClass(l);b={browserEvent:b};a.firePointEvent?a.firePointEvent(\"legendItemClick\",b,d):I(a,\"legendItemClick\",b,d)})})},createCheckboxForItem:function(a){a.checkbox=G(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);A(a.checkbox,\"click\",function(c){I(a.series||a,\"checkboxClick\",{checked:c.target.checked,\nitem:a},function(){a.select()})})}});y(v.prototype,{showResetZoom:function(){function a(){c.zoomOut()}var c=this,e=h.lang,f=c.options.chart.resetZoomButton,g=f.theme,l=g.states,m=\"chart\"===f.relativeTo||\"spaceBox\"===f.relativeTo?null:\"plotBox\";I(this,\"beforeShowResetZoom\",null,function(){c.resetZoomButton=c.renderer.button(e.resetZoom,null,null,a,g,l&&l.hover).attr({align:f.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(f.position,!1,m)});I(this,\"afterShowResetZoom\")},\nzoomOut:function(){I(this,\"selection\",{resetSelection:!0},this.zoom)},zoom:function(a){var c=this,e,f=c.pointer,h=!1,g=c.inverted?f.mouseDownX:f.mouseDownY;!a||a.resetSelection?(c.axes.forEach(function(a){e=a.zoom()}),f.initiated=!1):a.xAxis.concat(a.yAxis).forEach(function(a){var d=a.axis,b=c.inverted?d.left:d.top,p=c.inverted?b+d.width:b+d.height,l=d.isXAxis,m=!1;if(!l&&g>=b&&g<=p||l||!M(g))m=!0;f[l?\"zoomX\":\"zoomY\"]&&m&&(e=d.zoom(a.min,a.max),d.displayBtn&&(h=!0))});var l=c.resetZoomButton;h&&!l?\nc.showResetZoom():!h&&z(l)&&(c.resetZoomButton=l.destroy());e&&c.redraw(r(c.options.chart.animation,a&&a.animation,100>c.pointCount))},pan:function(a,c){var e=this,f=e.hoverPoints,h=e.options.chart,g=e.options.mapNavigation&&e.options.mapNavigation.enabled,l;c=\"object\"===typeof c?c:{enabled:c,type:\"x\"};h&&h.panning&&(h.panning=c);var m=c.type;I(this,\"pan\",{originalEvent:a},function(){f&&f.forEach(function(b){b.setState()});var d=[1];\"xy\"===m?d=[1,0]:\"y\"===m&&(d=[0]);d.forEach(function(b){var d=e[b?\n\"xAxis\":\"yAxis\"][0],c=d.options,f=d.horiz,h=a[f?\"chartX\":\"chartY\"];f=f?\"mouseDownX\":\"mouseDownY\";var p=e[f],u=(d.pointRange||0)/2,w=d.reversed&&!e.inverted||!d.reversed&&e.inverted?-1:1,r=d.getExtremes(),C=d.toValue(p-h,!0)+u*w;w=d.toValue(p+d.len-h,!0)-u*w;var q=w<C;p=q?w:C;C=q?C:w;var t=d.hasVerticalPanning(),B=d.panningState;d.series.forEach(function(a){if(t&&!b&&(!B||B.isDirty)){var d=a.getProcessedData(!0);a=a.getExtremes(d.yData,!0);B||(B={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE});\nD(a.dataMin)&&D(a.dataMax)&&(B.startMin=Math.min(a.dataMin,B.startMin),B.startMax=Math.max(a.dataMax,B.startMax))}});w=Math.min(k.pick(null===B||void 0===B?void 0:B.startMin,r.dataMin),u?r.min:d.toValue(d.toPixels(r.min)-d.minPixelPadding));u=Math.max(k.pick(null===B||void 0===B?void 0:B.startMax,r.dataMax),u?r.max:d.toValue(d.toPixels(r.max)+d.minPixelPadding));d.panningState=B;if(!c.ordinal){c=w-p;0<c&&(C+=c,p=w);c=C-u;0<c&&(C=u,p-=c);if(d.series.length&&p!==r.min&&C!==r.max&&b||B&&p>=w&&C<=u)d.setExtremes(p,\nC,!1,!1,{trigger:\"pan\"}),e.resetZoomButton||g||!m.match(\"y\")||(e.showResetZoom(),d.displayBtn=!1),l=!0;e[f]=h}});l&&e.redraw(!1);N(e.container,{cursor:\"move\"})})}});y(H.prototype,{select:function(a,c){var e=this,f=e.series,h=f.chart;this.selectedStaging=a=r(a,!e.selected);e.firePointEvent(a?\"select\":\"unselect\",{accumulate:c},function(){e.selected=e.options.selected=a;f.options.data[f.data.indexOf(e)]=e.options;e.setState(a&&\"select\");c||h.getSelectedPoints().forEach(function(a){var c=a.series;a.selected&&\na!==e&&(a.selected=a.options.selected=!1,c.options.data[c.data.indexOf(a)]=a.options,a.setState(h.hoverPoints&&c.options.inactiveOtherPoints?\"inactive\":\"\"),a.firePointEvent(\"unselect\"))})});delete this.selectedStaging},onMouseOver:function(a){var c=this.series.chart,e=c.pointer;a=a?e.normalize(a):e.getChartCoordinatesFromPoint(this,c.inverted);e.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent(\"mouseOut\");this.series.options.inactiveOtherPoints||(a.hoverPoints||\n[]).forEach(function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var a=this,c=t(a.series.options.point,a.options).events;a.events=c;q(c,function(c,e){E(c)&&A(a,e,c)});this.hasImportedEvents=!0}},setState:function(a,c){var e=this.series,h=this.state,g=e.options.states[a||\"normal\"]||{},l=f[e.type].marker&&e.options.marker,m=l&&!1===l.enabled,k=l&&l.states&&l.states[a||\"normal\"]||{},d=!1===k.enabled,b=e.stateMarkerGraphic,n=this.marker||{},u=\ne.chart,q=e.halo,t,v=l&&e.markerAttribs;a=a||\"\";if(!(a===this.state&&!c||this.selected&&\"select\"!==a||!1===g.enabled||a&&(d||m&&!1===k.enabled)||a&&n.states&&n.states[a]&&!1===n.states[a].enabled)){this.state=a;v&&(t=e.markerAttribs(this,a));if(this.graphic){h&&this.graphic.removeClass(\"highcharts-point-\"+h);a&&this.graphic.addClass(\"highcharts-point-\"+a);if(!u.styledMode){var z=e.pointAttribs(this,a);var D=r(u.options.chart.animation,g.animation);e.options.inactiveOtherPoints&&z.opacity&&((this.dataLabels||\n[]).forEach(function(a){a&&a.animate({opacity:z.opacity},D)}),this.connector&&this.connector.animate({opacity:z.opacity},D));this.graphic.animate(z,D)}t&&this.graphic.animate(t,r(u.options.chart.animation,k.animation,l.animation));b&&b.hide()}else{if(a&&k){h=n.symbol||e.symbol;b&&b.currentSymbol!==h&&(b=b.destroy());if(t)if(b)b[c?\"animate\":\"attr\"]({x:t.x,y:t.y});else h&&(e.stateMarkerGraphic=b=u.renderer.symbol(h,t.x,t.y,t.width,t.height).add(e.markerGroup),b.currentSymbol=h);!u.styledMode&&b&&b.attr(e.pointAttribs(this,\na))}b&&(b[a&&this.isInside?\"show\":\"hide\"](),b.element.point=this)}a=g.halo;g=(b=this.graphic||b)&&b.visibility||\"inherit\";a&&a.size&&b&&\"hidden\"!==g&&!this.isCluster?(q||(e.halo=q=u.renderer.path().add(b.parentGroup)),q.show()[c?\"animate\":\"attr\"]({d:this.haloPath(a.size)}),q.attr({\"class\":\"highcharts-halo highcharts-color-\"+r(this.colorIndex,e.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:g,zIndex:-1}),q.point=this,u.styledMode||q.attr(y({fill:this.color||e.color,\"fill-opacity\":a.opacity},\na.attributes))):q&&q.point&&q.point.haloPath&&q.animate({d:q.point.haloPath(0)},null,q.hide);I(this,\"afterSetState\")}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});y(l.prototype,{onMouseOver:function(){var a=this.chart,c=a.hoverSeries;a.pointer.setHoverChartIndex();if(c&&c!==this)c.onMouseOut();this.options.events.mouseOver&&I(this,\"mouseOver\");this.setState(\"hover\");a.hoverSeries=this},onMouseOut:function(){var a=this.options,\nc=this.chart,e=c.tooltip,f=c.hoverPoint;c.hoverSeries=null;if(f)f.onMouseOut();this&&a.events.mouseOut&&I(this,\"mouseOut\");!e||this.stickyTracking||e.shared&&!this.noSharedTooltip||e.hide();c.series.forEach(function(a){a.setState(\"\",!0)})},setState:function(a,c){var e=this,f=e.options,h=e.graph,g=f.inactiveOtherPoints,l=f.states,m=f.lineWidth,d=f.opacity,b=r(l[a||\"normal\"]&&l[a||\"normal\"].animation,e.chart.options.chart.animation);f=0;a=a||\"\";if(e.state!==a&&([e.group,e.markerGroup,e.dataLabelsGroup].forEach(function(b){b&&\n(e.state&&b.removeClass(\"highcharts-series-\"+e.state),a&&b.addClass(\"highcharts-series-\"+a))}),e.state=a,!e.chart.styledMode)){if(l[a]&&!1===l[a].enabled)return;a&&(m=l[a].lineWidth||m+(l[a].lineWidthPlus||0),d=r(l[a].opacity,d));if(h&&!h.dashstyle)for(l={\"stroke-width\":m},h.animate(l,b);e[\"zone-graph-\"+f];)e[\"zone-graph-\"+f].attr(l),f+=1;g||[e.group,e.markerGroup,e.dataLabelsGroup,e.labelBySeries].forEach(function(a){a&&a.animate({opacity:d},b)})}c&&g&&e.points&&e.setAllPointsToState(a)},setAllPointsToState:function(a){this.points.forEach(function(c){c.setState&&\nc.setState(a)})},setVisible:function(a,c){var e=this,f=e.chart,h=e.legendItem,g=f.options.chart.ignoreHiddenSeries,l=e.visible;var m=(e.visible=a=e.options.visible=e.userOptions.visible=\"undefined\"===typeof a?!l:a)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(a){if(e[a])e[a][m]()});if(f.hoverSeries===e||(f.hoverPoint&&f.hoverPoint.series)===e)e.onMouseOut();h&&f.legend.colorizeItem(e,a);e.isDirty=!0;e.options.stacking&&f.series.forEach(function(a){a.options.stacking&&\na.visible&&(a.isDirty=!0)});e.linkedSeries.forEach(function(d){d.setVisible(a,!1)});g&&(f.isDirtyBox=!0);I(e,m);!1!==c&&f.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=this.options.selected=\"undefined\"===typeof a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);I(this,a?\"select\":\"unselect\")},drawTracker:m.drawTrackerGraph})});P(A,\"parts/Responsive.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=\ng.find,v=g.isArray,K=g.isObject,G=g.merge,N=g.objectEach,M=g.pick,y=g.splat,I=g.uniqueKey;k=k.Chart;k.prototype.setResponsive=function(g,k){var v=this.options.responsive,z=[],t=this.currentResponsive;!k&&v&&v.rules&&v.rules.forEach(function(g){\"undefined\"===typeof g._id&&(g._id=I());this.matchResponsiveRule(g,z)},this);k=G.apply(0,z.map(function(g){return A(v.rules,function(k){return k._id===g}).chartOptions}));k.isResponsiveOptions=!0;z=z.toString()||void 0;z!==(t&&t.ruleIds)&&(t&&this.update(t.undoOptions,\ng,!0),z?(t=this.currentOptions(k),t.isResponsiveOptions=!0,this.currentResponsive={ruleIds:z,mergedOptions:k,undoOptions:t},this.update(k,g,!0)):this.currentResponsive=void 0)};k.prototype.matchResponsiveRule=function(g,k){var v=g.condition;(v.callback||function(){return this.chartWidth<=M(v.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=M(v.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=M(v.minWidth,0)&&this.chartHeight>=M(v.minHeight,0)}).call(this)&&k.push(g._id)};k.prototype.currentOptions=function(g){function k(g,\nq,r,h){var f;N(g,function(a,g){if(!h&&-1<D.collectionsWithUpdate.indexOf(g))for(a=y(a),r[g]=[],f=0;f<a.length;f++)q[g][f]&&(r[g][f]={},k(a[f],q[g][f],r[g][f],h+1));else K(a)?(r[g]=v(a)?[]:{},k(a,q[g]||{},r[g],h+1)):r[g]=\"undefined\"===typeof q[g]?null:q[g]})}var D=this,z={};k(g,this.options,z,0);return z}});P(A,\"masters/highcharts.src.js\",[A[\"parts/Globals.js\"]],function(k){return k});P(A,\"parts/NavigatorAxis.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=k.isTouchDevice,v=\ng.addEvent,K=g.correctFloat,G=g.defined,N=g.isNumber,M=g.pick,y=function(){function g(g){this.axis=g}g.prototype.destroy=function(){this.axis=void 0};g.prototype.toFixedRange=function(g,k,v,z){var t=this.axis,q=t.chart;q=q&&q.fixedRange;var r=(t.pointRange||0)/2;g=M(v,t.translate(g,!0,!t.horiz));k=M(z,t.translate(k,!0,!t.horiz));t=q&&(k-g)/q;G(v)||(g=K(g+r));G(z)||(k=K(k-r));.7<t&&1.3>t&&(z?g=k-q:k=g+q);N(g)&&N(k)||(g=k=void 0);return{min:g,max:k}};return g}();return function(){function g(){}g.compose=\nfunction(g){g.keepProps.push(\"navigatorAxis\");v(g,\"init\",function(){this.navigatorAxis||(this.navigatorAxis=new y(this))});v(g,\"zoom\",function(g){var k=this.chart.options,v=k.navigator,t=this.navigatorAxis,q=k.chart.pinchType,r=k.rangeSelector;k=k.chart.zoomType;this.isXAxis&&(v&&v.enabled||r&&r.enabled)&&(\"y\"===k?g.zoomed=!1:(!A&&\"xy\"===k||A&&\"xy\"===q)&&this.options.range&&(v=t.previousZoom,G(g.newMin)?t.previousZoom=[this.min,this.max]:v&&(g.newMin=v[0],g.newMax=v[1],t.previousZoom=void 0)));\"undefined\"!==\ntypeof g.zoomed&&g.preventDefault()})};g.AdditionsClass=y;return g}()});P(A,\"parts/ScrollbarAxis.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=g.addEvent,v=g.defined,K=g.pick;return function(){function g(){}g.compose=function(g,G){A(g,\"afterInit\",function(){var g=this;g.options&&g.options.scrollbar&&g.options.scrollbar.enabled&&(g.options.scrollbar.vertical=!g.horiz,g.options.startOnTick=g.options.endOnTick=!1,g.scrollbar=new G(g.chart.renderer,g.options.scrollbar,g.chart),\nA(g.scrollbar,\"changed\",function(y){var G=K(g.options&&g.options.min,g.min),E=K(g.options&&g.options.max,g.max),D=v(g.dataMin)?Math.min(G,g.min,g.dataMin):G,z=(v(g.dataMax)?Math.max(E,g.max,g.dataMax):E)-D;v(G)&&v(E)&&(g.horiz&&!g.reversed||!g.horiz&&g.reversed?(G=D+z*this.to,D+=z*this.from):(G=D+z*(1-this.from),D+=z*(1-this.to)),K(this.options.liveRedraw,k.svg&&!k.isTouchDevice&&!this.chart.isBoosting)||\"mouseup\"===y.DOMType||!v(y.DOMType)?g.setExtremes(D,G,!0,\"mousemove\"!==y.DOMType,y):this.setRange(this.from,\nthis.to))}))});A(g,\"afterRender\",function(){var g=Math.min(K(this.options.min,this.min),this.min,K(this.dataMin,this.min)),k=Math.max(K(this.options.max,this.max),this.max,K(this.dataMax,this.max)),G=this.scrollbar,E=this.axisTitleMargin+(this.titleOffset||0),D=this.chart.scrollbarsOffsets,z=this.options.margin||0;G&&(this.horiz?(this.opposite||(D[1]+=E),G.position(this.left,this.top+this.height+2+D[1]-(this.opposite?z:0),this.width,this.height),this.opposite||(D[1]+=z),E=1):(this.opposite&&(D[0]+=\nE),G.position(this.left+this.width+2+D[0]-(this.opposite?0:z),this.top,this.width,this.height),this.opposite&&(D[0]+=z),E=0),D[E]+=G.size+G.options.margin,isNaN(g)||isNaN(k)||!v(this.min)||!v(this.max)||this.min===this.max?G.setRange(0,1):(D=(this.min-g)/(k-g),g=(this.max-g)/(k-g),this.horiz&&!this.reversed||!this.horiz&&this.reversed?G.setRange(D,g):G.setRange(1-g,1-D)))});A(g,\"afterGetOffset\",function(){var g=this.horiz?2:1,k=this.scrollbar;k&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[g]+=\nk.size+k.options.margin)})};return g}()});P(A,\"parts/Scrollbar.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/ScrollbarAxis.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v){var H=v.addEvent,G=v.correctFloat,N=v.defined,M=v.destroyObjectProperties,y=v.fireEvent,I=v.merge,J=v.pick,E=v.removeEvent;v=g.defaultOptions;var D=g.hasTouch,z=g.isTouchDevice,t=g.swapXY=function(g,h){h&&g.forEach(function(f){for(var a=f.length,h,e=0;e<a;e+=2)h=f[e+1],\"number\"===typeof h&&(f[e+1]=f[e+2],f[e+2]=h)});return g},\nq=function(){function g(h,f,a){this._events=[];this.from=this.chartY=this.chartX=0;this.scrollbar=this.group=void 0;this.scrollbarButtons=[];this.scrollbarGroup=void 0;this.scrollbarLeft=0;this.scrollbarRifles=void 0;this.scrollbarStrokeWidth=1;this.to=this.size=this.scrollbarTop=0;this.track=void 0;this.trackBorderWidth=1;this.userOptions={};this.y=this.x=0;this.chart=a;this.options=f;this.renderer=a.renderer;this.init(h,f,a)}g.prototype.addEvents=function(){var h=this.options.inverted?[1,0]:[0,\n1],f=this.scrollbarButtons,a=this.scrollbarGroup.element,g=this.track.element,e=this.mouseDownHandler.bind(this),c=this.mouseMoveHandler.bind(this),m=this.mouseUpHandler.bind(this);h=[[f[h[0]].element,\"click\",this.buttonToMinClick.bind(this)],[f[h[1]].element,\"click\",this.buttonToMaxClick.bind(this)],[g,\"click\",this.trackClick.bind(this)],[a,\"mousedown\",e],[a.ownerDocument,\"mousemove\",c],[a.ownerDocument,\"mouseup\",m]];D&&h.push([a,\"touchstart\",e],[a.ownerDocument,\"touchmove\",c],[a.ownerDocument,\"touchend\",\nm]);h.forEach(function(a){H.apply(null,a)});this._events=h};g.prototype.buttonToMaxClick=function(h){var f=(this.to-this.from)*J(this.options.step,.2);this.updatePosition(this.from+f,this.to+f);y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMEvent:h})};g.prototype.buttonToMinClick=function(h){var f=G(this.to-this.from)*J(this.options.step,.2);this.updatePosition(G(this.from-f),G(this.to-f));y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMEvent:h})};g.prototype.cursorToScrollbarPosition=\nfunction(h){var f=this.options;f=f.minWidth>this.calculatedWidth?f.minWidth:0;return{chartX:(h.chartX-this.x-this.xOffset)/(this.barWidth-f),chartY:(h.chartY-this.y-this.yOffset)/(this.barWidth-f)}};g.prototype.destroy=function(){var h=this.chart.scroller;this.removeEvents();[\"track\",\"scrollbarRifles\",\"scrollbar\",\"scrollbarGroup\",\"group\"].forEach(function(f){this[f]&&this[f].destroy&&(this[f]=this[f].destroy())},this);h&&this===h.scrollbar&&(h.scrollbar=null,M(h.scrollbarButtons))};g.prototype.drawScrollbarButton=\nfunction(h){var f=this.renderer,a=this.scrollbarButtons,g=this.options,e=this.size;var c=f.g().add(this.group);a.push(c);c=f.rect().addClass(\"highcharts-scrollbar-button\").add(c);this.chart.styledMode||c.attr({stroke:g.buttonBorderColor,\"stroke-width\":g.buttonBorderWidth,fill:g.buttonBackgroundColor});c.attr(c.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:g.buttonBorderRadius},c.strokeWidth()));c=f.path(t([[\"M\",e/2+(h?-1:1),e/2-3],[\"L\",e/2+(h?-1:1),e/2+3],[\"L\",e/2+(h?2:-2),e/2]],g.vertical)).addClass(\"highcharts-scrollbar-arrow\").add(a[h]);\nthis.chart.styledMode||c.attr({fill:g.buttonArrowColor})};g.prototype.init=function(h,f,a){this.scrollbarButtons=[];this.renderer=h;this.userOptions=f;this.options=I(g.defaultOptions,f);this.chart=a;this.size=J(this.options.size,this.options.height);f.enabled&&(this.render(),this.addEvents())};g.prototype.mouseDownHandler=function(h){h=this.chart.pointer.normalize(h);h=this.cursorToScrollbarPosition(h);this.chartX=h.chartX;this.chartY=h.chartY;this.initPositions=[this.from,this.to];this.grabbedCenter=\n!0};g.prototype.mouseMoveHandler=function(h){var f=this.chart.pointer.normalize(h),a=this.options.vertical?\"chartY\":\"chartX\",g=this.initPositions||[];!this.grabbedCenter||h.touches&&0===h.touches[0][a]||(f=this.cursorToScrollbarPosition(f)[a],a=this[a],a=f-a,this.hasDragged=!0,this.updatePosition(g[0]+a,g[1]+a),this.hasDragged&&y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMType:h.type,DOMEvent:h}))};g.prototype.mouseUpHandler=function(h){this.hasDragged&&y(this,\"changed\",{from:this.from,\nto:this.to,trigger:\"scrollbar\",DOMType:h.type,DOMEvent:h});this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null};g.prototype.position=function(h,f,a,g){var e=this.options.vertical,c=0,l=this.rendered?\"animate\":\"attr\";this.x=h;this.y=f+this.trackBorderWidth;this.width=a;this.xOffset=this.height=g;this.yOffset=c;e?(this.width=this.yOffset=a=c=this.size,this.xOffset=f=0,this.barWidth=g-2*a,this.x=h+=this.options.margin):(this.height=this.xOffset=g=f=this.size,this.barWidth=a-2*g,this.y+=this.options.margin);\nthis.group[l]({translateX:h,translateY:this.y});this.track[l]({width:a,height:g});this.scrollbarButtons[1][l]({translateX:e?0:a-f,translateY:e?g-c:0})};g.prototype.removeEvents=function(){this._events.forEach(function(h){E.apply(null,h)});this._events.length=0};g.prototype.render=function(){var h=this.renderer,f=this.options,a=this.size,g=this.chart.styledMode,e;this.group=e=h.g(\"scrollbar\").attr({zIndex:f.zIndex,translateY:-99999}).add();this.track=h.rect().addClass(\"highcharts-scrollbar-track\").attr({x:0,\nr:f.trackBorderRadius||0,height:a,width:a}).add(e);g||this.track.attr({fill:f.trackBackgroundColor,stroke:f.trackBorderColor,\"stroke-width\":f.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=h.g().add(e);this.scrollbar=h.rect().addClass(\"highcharts-scrollbar-thumb\").attr({height:a,width:a,r:f.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=h.path(t([[\"M\",-3,a/4],[\"L\",-3,2*a/3],[\"M\",0,a/4],[\"L\",\n0,2*a/3],[\"M\",3,a/4],[\"L\",3,2*a/3]],f.vertical)).addClass(\"highcharts-scrollbar-rifles\").add(this.scrollbarGroup);g||(this.scrollbar.attr({fill:f.barBackgroundColor,stroke:f.barBorderColor,\"stroke-width\":f.barBorderWidth}),this.scrollbarRifles.attr({stroke:f.rifleColor,\"stroke-width\":1}));this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)};g.prototype.setRange=\nfunction(h,f){var a=this.options,g=a.vertical,e=a.minWidth,c=this.barWidth,m,k=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?\"attr\":\"animate\";if(N(c)){h=Math.max(h,0);var r=Math.ceil(c*h);this.calculatedWidth=m=G(c*Math.min(f,1)-r);m<e&&(r=(c-e+m)*h,m=e);e=Math.floor(r+this.xOffset+this.yOffset);c=m/2-.5;this.from=h;this.to=f;g?(this.scrollbarGroup[k]({translateY:e}),this.scrollbar[k]({height:m}),this.scrollbarRifles[k]({translateY:c}),this.scrollbarTop=e,\nthis.scrollbarLeft=0):(this.scrollbarGroup[k]({translateX:e}),this.scrollbar[k]({width:m}),this.scrollbarRifles[k]({translateX:c}),this.scrollbarLeft=e,this.scrollbarTop=0);12>=m?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0);!1===a.showFull&&(0>=h&&1<=f?this.group.hide():this.group.show());this.rendered=!0}};g.prototype.trackClick=function(h){var f=this.chart.pointer.normalize(h),a=this.to-this.from,g=this.y+this.scrollbarTop,e=this.x+this.scrollbarLeft;this.options.vertical&&f.chartY>\ng||!this.options.vertical&&f.chartX>e?this.updatePosition(this.from+a,this.to+a):this.updatePosition(this.from-a,this.to-a);y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMEvent:h})};g.prototype.update=function(h){this.destroy();this.init(this.chart.renderer,I(!0,this.options,h),this.chart)};g.prototype.updatePosition=function(h,f){1<f&&(h=G(1-G(f-h)),f=1);0>h&&(f=G(f-h),h=0);this.from=h;this.to=f};g.defaultOptions={height:z?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:void 0,\nmargin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:\"#cccccc\",barBorderWidth:1,barBorderColor:\"#cccccc\",buttonArrowColor:\"#333333\",buttonBackgroundColor:\"#e6e6e6\",buttonBorderColor:\"#cccccc\",buttonBorderWidth:1,rifleColor:\"#333333\",trackBackgroundColor:\"#f2f2f2\",trackBorderColor:\"#f2f2f2\",trackBorderWidth:1};return g}();g.Scrollbar||(v.scrollbar=I(!0,q.defaultOptions,v.scrollbar),g.Scrollbar=q,A.compose(k,q));return g.Scrollbar});P(A,\"parts/Navigator.js\",[A[\"parts/Axis.js\"],A[\"parts/Color.js\"],\nA[\"parts/Globals.js\"],A[\"parts/NavigatorAxis.js\"],A[\"parts/Scrollbar.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v,K,G){g=g.parse;var H=G.addEvent,M=G.clamp,y=G.correctFloat,I=G.defined,J=G.destroyObjectProperties,E=G.erase,D=G.extend,z=G.find,t=G.isArray,q=G.isNumber,r=G.merge,h=G.pick,f=G.removeEvent,a=G.splat;G=A.Chart;var l=A.defaultOptions,e=A.hasTouch,c=A.isTouchDevice,m=A.Series,u=function(a){for(var c=[],e=1;e<arguments.length;e++)c[e-1]=arguments[e];c=[].filter.call(c,q);if(c.length)return Math[a].apply(0,\nc)};var L=\"undefined\"===typeof A.seriesTypes.areaspline?\"line\":\"areaspline\";D(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:[\"navigator-handle\",\"navigator-handle\"],enabled:!0,lineWidth:1,backgroundColor:\"#f2f2f2\",borderColor:\"#999999\"},maskFill:g(\"#6685c2\").setOpacity(.3).get(),outlineColor:\"#cccccc\",outlineWidth:1,series:{type:L,fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:\"average\",enabled:!0,groupPixelWidth:2,smoothed:!0,units:[[\"millisecond\",\n[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2,3,4]],[\"week\",[1,2,3]],[\"month\",[1,3,6]],[\"year\",null]]},dataLabels:{enabled:!1,zIndex:2},id:\"highcharts-navigator-series\",className:\"highcharts-navigator-series\",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{overscroll:0,className:\"highcharts-navigator-xaxis\",tickLength:0,lineWidth:0,gridLineColor:\"#e6e6e6\",gridLineWidth:1,tickPixelInterval:200,labels:{align:\"left\",\nstyle:{color:\"#999999\"},x:3,y:-4},crosshair:!1},yAxis:{className:\"highcharts-navigator-yaxis\",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}});A.Renderer.prototype.symbols[\"navigator-handle\"]=function(a,c,e,f,h){a=h.width/2;c=Math.round(a/3)+.5;h=h.height||0;return[[\"M\",-a-1,.5],[\"L\",a,.5],[\"L\",a,h+.5],[\"L\",-a-1,h+.5],[\"L\",-a-1,.5],[\"M\",-c,4],[\"L\",-c,h-3],[\"M\",c-1,4],[\"L\",c-1,h-3]]};var F=function(){function g(a){this.zoomedMin=\nthis.zoomedMax=this.yAxis=this.xAxis=this.top=this.size=this.shades=this.rendered=this.range=this.outlineHeight=this.outline=this.opposite=this.navigatorSize=this.navigatorSeries=this.navigatorOptions=this.navigatorGroup=this.navigatorEnabled=this.left=this.height=this.handles=this.chart=this.baseSeries=void 0;this.init(a)}g.prototype.drawHandle=function(a,c,e,f){var d=this.navigatorOptions.handles.height;this.handles[c][f](e?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+\nparseInt(a,10)+.5-d)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-d/2-1)})};g.prototype.drawOutline=function(a,c,e,f){var d=this.navigatorOptions.maskInside,b=this.outline.strokeWidth(),h=b/2,g=b%2/2;b=this.outlineHeight;var p=this.scrollbarHeight||0,l=this.size,m=this.left-p,k=this.top;e?(m-=h,e=k+c+g,c=k+a+g,g=[[\"M\",m+b,k-p-g],[\"L\",m+b,e],[\"L\",m,e],[\"L\",m,c],[\"L\",m+b,c],[\"L\",m+b,k+l+p]],d&&g.push([\"M\",m+b,e-h],[\"L\",m+b,c+h])):(a+=m+p-g,c+=m+p-g,\nk+=h,g=[[\"M\",m,k],[\"L\",a,k],[\"L\",a,k+b],[\"L\",c,k+b],[\"L\",c,k],[\"L\",m+l+2*p,k]],d&&g.push([\"M\",a-h,k],[\"L\",c+h,k]));this.outline[f]({d:g})};g.prototype.drawMasks=function(a,c,e,f){var d=this.left,b=this.top,h=this.height;if(e){var g=[d,d,d];var p=[b,b+a,b+c];var m=[h,h,h];var l=[a,c-a,this.size-c]}else g=[d,d+a,d+c],p=[b,b,b],m=[a,c-a,this.size-c],l=[h,h,h];this.shades.forEach(function(a,b){a[f]({x:g[b],y:p[b],width:m[b],height:l[b]})})};g.prototype.renderElements=function(){var a=this,c=a.navigatorOptions,\ne=c.maskInside,f=a.chart,d=f.renderer,b,h={cursor:f.inverted?\"ns-resize\":\"ew-resize\"};a.navigatorGroup=b=d.g(\"navigator\").attr({zIndex:8,visibility:\"hidden\"}).add();[!e,e,!e].forEach(function(e,g){a.shades[g]=d.rect().addClass(\"highcharts-navigator-mask\"+(1===g?\"-inside\":\"-outside\")).add(b);f.styledMode||a.shades[g].attr({fill:e?c.maskFill:\"rgba(0,0,0,0)\"}).css(1===g&&h)});a.outline=d.path().addClass(\"highcharts-navigator-outline\").add(b);f.styledMode||a.outline.attr({\"stroke-width\":c.outlineWidth,\nstroke:c.outlineColor});c.handles.enabled&&[0,1].forEach(function(e){c.handles.inverted=f.inverted;a.handles[e]=d.symbol(c.handles.symbols[e],-c.handles.width/2-1,0,c.handles.width,c.handles.height,c.handles);a.handles[e].attr({zIndex:7-e}).addClass(\"highcharts-navigator-handle highcharts-navigator-handle-\"+[\"left\",\"right\"][e]).add(b);if(!f.styledMode){var g=c.handles;a.handles[e].attr({fill:g.backgroundColor,stroke:g.borderColor,\"stroke-width\":g.lineWidth}).css(h)}})};g.prototype.update=function(a){(this.series||\n[]).forEach(function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries});this.destroy();r(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)};g.prototype.render=function(a,c,e,f){var d=this.chart,b=this.scrollbarHeight,g,p=this.xAxis,m=p.pointRange||0;var l=p.navigatorAxis.fake?d.xAxis[0]:p;var k=this.navigatorEnabled,r,w=this.rendered;var u=d.inverted;var C=d.xAxis[0].minRange,t=d.xAxis[0].options.maxRange;if(!this.hasDragged||I(e)){a=y(a-m/2);c=y(c+m/2);if(!q(a)||!q(c))if(w)e=\n0,f=h(p.width,l.width);else return;this.left=h(p.left,d.plotLeft+b+(u?d.plotWidth:0));this.size=r=g=h(p.len,(u?d.plotHeight:d.plotWidth)-2*b);d=u?b:g+2*b;e=h(e,p.toPixels(a,!0));f=h(f,p.toPixels(c,!0));q(e)&&Infinity!==Math.abs(e)||(e=0,f=d);a=p.toValue(e,!0);c=p.toValue(f,!0);var B=Math.abs(y(c-a));B<C?this.grabbedLeft?e=p.toPixels(c-C-m,!0):this.grabbedRight&&(f=p.toPixels(a+C+m,!0)):I(t)&&y(B-m)>t&&(this.grabbedLeft?e=p.toPixels(c-t-m,!0):this.grabbedRight&&(f=p.toPixels(a+t+m,!0)));this.zoomedMax=\nM(Math.max(e,f),0,r);this.zoomedMin=M(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(e,f),0,r);this.range=this.zoomedMax-this.zoomedMin;r=Math.round(this.zoomedMax);e=Math.round(this.zoomedMin);k&&(this.navigatorGroup.attr({visibility:\"visible\"}),w=w&&!this.hasDragged?\"animate\":\"attr\",this.drawMasks(e,r,u,w),this.drawOutline(e,r,u,w),this.navigatorOptions.handles.enabled&&(this.drawHandle(e,0,u,w),this.drawHandle(r,1,u,w)));this.scrollbar&&(u?(u=this.top-b,l=this.left-b+(k||!l.opposite?0:\n(l.titleOffset||0)+l.axisTitleMargin),b=g+2*b):(u=this.top+(k?this.height:-b),l=this.left-b),this.scrollbar.position(l,u,d,b),this.scrollbar.setRange(this.zoomedMin/(g||1),this.zoomedMax/(g||1)));this.rendered=!0}};g.prototype.addMouseEvents=function(){var a=this,c=a.chart,f=c.container,h=[],d,b;a.mouseMoveHandler=d=function(b){a.onMouseMove(b)};a.mouseUpHandler=b=function(b){a.onMouseUp(b)};h=a.getPartsEvents(\"mousedown\");h.push(H(c.renderTo,\"mousemove\",d),H(f.ownerDocument,\"mouseup\",b));e&&(h.push(H(c.renderTo,\n\"touchmove\",d),H(f.ownerDocument,\"touchend\",b)),h.concat(a.getPartsEvents(\"touchstart\")));a.eventsToUnbind=h;a.series&&a.series[0]&&h.push(H(a.series[0].xAxis,\"foundExtremes\",function(){c.navigator.modifyNavigatorAxisExtremes()}))};g.prototype.getPartsEvents=function(a){var c=this,e=[];[\"shades\",\"handles\"].forEach(function(f){c[f].forEach(function(d,b){e.push(H(d.element,a,function(a){c[f+\"Mousedown\"](a,b)}))})});return e};g.prototype.shadesMousedown=function(a,c){a=this.chart.pointer.normalize(a);\nvar e=this.chart,f=this.xAxis,d=this.zoomedMin,b=this.left,h=this.size,g=this.range,m=a.chartX;e.inverted&&(m=a.chartY,b=this.top);if(1===c)this.grabbedCenter=m,this.fixedWidth=g,this.dragOffset=m-d;else{a=m-b-g/2;if(0===c)a=Math.max(0,a);else if(2===c&&a+g>=h)if(a=h-g,this.reversedExtremes){a-=g;var p=this.getUnionExtremes().dataMin}else var l=this.getUnionExtremes().dataMax;a!==d&&(this.fixedWidth=g,c=f.navigatorAxis.toFixedRange(a,a+g,p,l),I(c.min)&&e.xAxis[0].setExtremes(Math.min(c.min,c.max),\nMath.max(c.min,c.max),!0,null,{trigger:\"navigator\"}))}};g.prototype.handlesMousedown=function(a,c){this.chart.pointer.normalize(a);a=this.chart;var e=a.xAxis[0],f=this.reversedExtremes;0===c?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=f?e.min:e.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=f?e.max:e.min);a.fixedRange=null};g.prototype.onMouseMove=function(a){var e=this,f=e.chart,g=e.left,d=e.navigatorSize,b=e.range,m=e.dragOffset,l=f.inverted;\na.touches&&0===a.touches[0].pageX||(a=f.pointer.normalize(a),f=a.chartX,l&&(g=e.top,f=a.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,f-g,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,f-g)):e.grabbedCenter&&(e.hasDragged=!0,f<m?f=m:f>d+m-b&&(f=d+m-b),e.render(0,0,f-m,f-m+b)),e.hasDragged&&e.scrollbar&&h(e.scrollbar.options.liveRedraw,A.svg&&!c&&!this.chart.isBoosting)&&(a.DOMType=a.type,setTimeout(function(){e.onMouseUp(a)},0)))};g.prototype.onMouseUp=function(a){var c=\nthis.chart,e=this.xAxis,f=this.scrollbar,d=a.DOMEvent||a,b=c.inverted,h=this.rendered&&!this.hasDragged?\"animate\":\"attr\",g=Math.round(this.zoomedMax),m=Math.round(this.zoomedMin);if(this.hasDragged&&(!f||!f.hasDragged)||\"scrollbar\"===a.trigger){f=this.getUnionExtremes();if(this.zoomedMin===this.otherHandlePos)var l=this.fixedExtreme;else if(this.zoomedMax===this.otherHandlePos)var p=this.fixedExtreme;this.zoomedMax===this.size&&(p=this.reversedExtremes?f.dataMin:f.dataMax);0===this.zoomedMin&&(l=\nthis.reversedExtremes?f.dataMax:f.dataMin);e=e.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,l,p);I(e.min)&&c.xAxis[0].setExtremes(Math.min(e.min,e.max),Math.max(e.min,e.max),!0,this.hasDragged?!1:null,{trigger:\"navigator\",triggerOp:\"navigator-drag\",DOMEvent:d})}\"mousemove\"!==a.DOMType&&\"touchmove\"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null);this.navigatorEnabled&&(this.shades&&\nthis.drawMasks(m,g,b,h),this.outline&&this.drawOutline(m,g,b,h),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(m,0,b,h),this.drawHandle(g,1,b,h)))};g.prototype.removeEvents=function(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()};g.prototype.removeBaseSeriesEvents=function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&\na.forEach(function(a){f(a,\"updatedData\",this.updatedDataHandler)},this),a[0].xAxis&&f(a[0].xAxis,\"foundExtremes\",this.modifyBaseAxisExtremes))};g.prototype.init=function(a){var c=a.options,e=c.navigator,f=e.enabled,d=c.scrollbar,b=d.enabled;c=f?e.height:0;var g=b?d.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=c;this.scrollbarHeight=g;this.scrollbarEnabled=b;this.navigatorEnabled=f;this.navigatorOptions=e;this.scrollbarOptions=d;this.outlineHeight=c+g;this.opposite=\nh(e.opposite,!(f||!a.inverted));var m=this;f=m.baseSeries;d=a.xAxis.length;b=a.yAxis.length;var l=f&&f[0]&&f[0].xAxis||a.xAxis[0]||{options:{}};a.isDirtyBox=!0;m.navigatorEnabled?(m.xAxis=new k(a,r({breaks:l.options.breaks,ordinal:l.options.ordinal},e.xAxis,{id:\"navigator-x-axis\",yAxis:\"navigator-y-axis\",isX:!0,type:\"datetime\",index:d,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[g,0,-g,0],width:c}:{offsets:[0,\n-g,0,g],height:c})),m.yAxis=new k(a,r(e.yAxis,{id:\"navigator-y-axis\",alignTicks:!1,offset:0,index:b,isInternal:!0,zoomEnabled:!1},a.inverted?{width:c}:{height:c})),f||e.series.data?m.updateNavigatorSeries(!1):0===a.series.length&&(m.unbindRedraw=H(a,\"beforeRedraw\",function(){0<a.series.length&&!m.series&&(m.setBaseSeries(),m.unbindRedraw())})),m.reversedExtremes=a.inverted&&!m.xAxis.reversed||!a.inverted&&m.xAxis.reversed,m.renderElements(),m.addMouseEvents()):(m.xAxis={chart:a,navigatorAxis:{fake:!0},\ntranslate:function(b,d){var c=a.xAxis[0],e=c.getExtremes(),f=c.len-2*g,h=u(\"min\",c.options.min,e.dataMin);c=u(\"max\",c.options.max,e.dataMax)-h;return d?b*c/f+h:f*(b-h)/c},toPixels:function(a){return this.translate(a)},toValue:function(a){return this.translate(a,!0)}},m.xAxis.navigatorAxis.axis=m.xAxis,m.xAxis.navigatorAxis.toFixedRange=v.AdditionsClass.prototype.toFixedRange.bind(m.xAxis.navigatorAxis));a.options.scrollbar.enabled&&(a.scrollbar=m.scrollbar=new K(a.renderer,r(a.options.scrollbar,{margin:m.navigatorEnabled?\n0:10,vertical:a.inverted}),a),H(m.scrollbar,\"changed\",function(b){var d=m.size,c=d*this.to;d*=this.from;m.hasDragged=m.scrollbar.hasDragged;m.render(0,0,d,c);(a.options.scrollbar.liveRedraw||\"mousemove\"!==b.DOMType&&\"touchmove\"!==b.DOMType)&&setTimeout(function(){m.onMouseUp(b)})}));m.addBaseSeriesEvents();m.addChartEvents()};g.prototype.getUnionExtremes=function(a){var c=this.chart.xAxis[0],e=this.xAxis,f=e.options,d=c.options,b;a&&null===c.dataMin||(b={dataMin:h(f&&f.min,u(\"min\",d.min,c.dataMin,\ne.dataMin,e.min)),dataMax:h(f&&f.max,u(\"max\",d.max,c.dataMax,e.dataMax,e.max))});return b};g.prototype.setBaseSeries=function(a,c){var e=this.chart,f=this.baseSeries=[];a=a||e.options&&e.options.navigator.baseSeries||(e.series.length?z(e.series,function(a){return!a.options.isInternal}).index:0);(e.series||[]).forEach(function(d,b){d.options.isInternal||!d.options.showInNavigator&&(b!==a&&d.options.id!==a||!1===d.options.showInNavigator)||f.push(d)});this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,\nc)};g.prototype.updateNavigatorSeries=function(c,e){var g=this,m=g.chart,d=g.baseSeries,b,p,k=g.navigatorOptions.series,u,w={enableMouseTracking:!1,index:null,linkedTo:null,group:\"nav\",padXAxis:!1,xAxis:\"navigator-x-axis\",yAxis:\"navigator-y-axis\",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},q=g.series=(g.series||[]).filter(function(a){var b=a.baseSeries;return 0>d.indexOf(b)?(b&&(f(b,\"updatedData\",g.updatedDataHandler),delete b.navigatorSeries),a.chart&&a.destroy(),\n!1):!0});d&&d.length&&d.forEach(function(a){var c=a.navigatorSeries,f=D({color:a.color,visible:a.visible},t(k)?l.navigator.series:k);c&&!1===g.navigatorOptions.adaptToUpdatedData||(w.name=\"Navigator \"+d.length,b=a.options||{},u=b.navigatorOptions||{},p=r(b,w,f,u),p.pointRange=h(f.pointRange,u.pointRange,l.plotOptions[p.type||\"line\"].pointRange),f=u.data||f.data,g.hasNavigatorData=g.hasNavigatorData||!!f,p.data=f||b.data&&b.data.slice(0),c&&c.options?c.update(p,e):(a.navigatorSeries=m.initSeries(p),\na.navigatorSeries.baseSeries=a,q.push(a.navigatorSeries)))});if(k.data&&(!d||!d.length)||t(k))g.hasNavigatorData=!1,k=a(k),k.forEach(function(a,b){w.name=\"Navigator \"+(q.length+1);p=r(l.navigator.series,{color:m.series[b]&&!m.series[b].options.isInternal&&m.series[b].color||m.options.colors[b]||m.options.colors[0]},w,a);p.data=a.data;p.data&&(g.hasNavigatorData=!0,q.push(m.initSeries(p)))});c&&this.addBaseSeriesEvents()};g.prototype.addBaseSeriesEvents=function(){var a=this,c=a.baseSeries||[];c[0]&&\nc[0].xAxis&&H(c[0].xAxis,\"foundExtremes\",this.modifyBaseAxisExtremes);c.forEach(function(c){H(c,\"show\",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)});H(c,\"hide\",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!==this.navigatorOptions.adaptToUpdatedData&&c.xAxis&&H(c,\"updatedData\",this.updatedDataHandler);H(c,\"remove\",function(){this.navigatorSeries&&(E(a.series,this.navigatorSeries),I(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),\ndelete this.navigatorSeries)})},this)};g.prototype.getBaseSeriesMin=function(a){return this.baseSeries.reduce(function(a,c){return Math.min(a,c.xData?c.xData[0]:a)},a)};g.prototype.modifyNavigatorAxisExtremes=function(){var a=this.xAxis,c;\"undefined\"!==typeof a.getExtremes&&(!(c=this.getUnionExtremes(!0))||c.dataMin===a.min&&c.dataMax===a.max||(a.min=c.dataMin,a.max=c.dataMax))};g.prototype.modifyBaseAxisExtremes=function(){var a=this.chart.navigator,c=this.getExtremes(),e=c.dataMin,f=c.dataMax;c=\nc.max-c.min;var d=a.stickToMin,b=a.stickToMax,g=h(this.options.overscroll,0),m=a.series&&a.series[0],l=!!this.setExtremes;if(!this.eventArgs||\"rangeSelectorButton\"!==this.eventArgs.trigger){if(d){var k=e;var u=k+c}b&&(u=f+g,d||(k=Math.max(e,u-c,a.getBaseSeriesMin(m&&m.xData?m.xData[0]:-Number.MAX_VALUE))));l&&(d||b)&&q(k)&&(this.min=this.userMin=k,this.max=this.userMax=u)}a.stickToMin=a.stickToMax=null};g.prototype.updatedDataHandler=function(){var a=this.chart.navigator,c=this.navigatorSeries,e=\na.getBaseSeriesMin(this.xData[0]);a.stickToMax=a.reversedExtremes?0===Math.round(a.zoomedMin):Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=q(this.xAxis.min)&&this.xAxis.min<=e&&(!this.chart.fixedRange||!a.stickToMax);c&&!a.hasNavigatorData&&(c.options.pointStart=this.xData[0],c.setData(this.options.data,!1,null,!1))};g.prototype.addChartEvents=function(){this.eventsToUnbind||(this.eventsToUnbind=[]);this.eventsToUnbind.push(H(this.chart,\"redraw\",function(){var a=this.navigator,c=a&&(a.baseSeries&&\na.baseSeries[0]&&a.baseSeries[0].xAxis||this.xAxis[0]);c&&a.render(c.min,c.max)}),H(this.chart,\"getMargins\",function(){var a=this.navigator,c=a.opposite?\"plotTop\":\"marginBottom\";this.inverted&&(c=a.opposite?\"marginRight\":\"plotLeft\");this[c]=(this[c]||0)+(a.navigatorEnabled||!this.inverted?a.outlineHeight:0)+a.navigatorOptions.margin}))};g.prototype.destroy=function(){this.removeEvents();this.xAxis&&(E(this.chart.xAxis,this.xAxis),E(this.chart.axes,this.xAxis));this.yAxis&&(E(this.chart.yAxis,this.yAxis),\nE(this.chart.axes,this.yAxis));(this.series||[]).forEach(function(a){a.destroy&&a.destroy()});\"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered\".split(\" \").forEach(function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);[this.handles].forEach(function(a){J(a)},this)};return g}();A.Navigator||(A.Navigator=F,v.compose(k),H(G,\"beforeShowResetZoom\",function(){var a=this.options,e=a.navigator,f=a.rangeSelector;if((e&&\ne.enabled||f&&f.enabled)&&(!c&&\"x\"===a.chart.zoomType||c&&\"x\"===a.chart.pinchType))return!1}),H(G,\"beforeRender\",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new F(this)}),H(G,\"afterSetChartSize\",function(){var a=this.legend,c=this.navigator;if(c){var e=a&&a.options;var f=c.xAxis;var g=c.yAxis;var d=c.scrollbarHeight;this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,\nc.top=c.navigatorOptions.top||this.chartHeight-c.height-d-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&\"bottom\"===e.verticalAlign&&e.enabled&&!e.floating?a.legendHeight+h(e.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0));f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top=g.options.top=c.top,f.setAxisSize(),g.setAxisSize())}}),H(G,\"update\",function(a){var c=a.options.navigator||{},e=a.options.scrollbar||{};this.navigator||\nthis.scroller||!c.enabled&&!e.enabled||(r(!0,this.options.navigator,c),r(!0,this.options.scrollbar,e),delete a.options.navigator,delete a.options.scrollbar)}),H(G,\"afterUpdate\",function(a){this.navigator||this.scroller||!this.options.navigator.enabled&&!this.options.scrollbar.enabled||(this.scroller=this.navigator=new F(this),h(a.redraw,!0)&&this.redraw(a.animation))}),H(G,\"afterAddSeries\",function(){this.navigator&&this.navigator.setBaseSeries(null,!1)}),H(m,\"afterUpdate\",function(){this.chart.navigator&&\n!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}),G.prototype.callbacks.push(function(a){var c=a.navigator;c&&a.xAxis[0]&&(a=a.xAxis[0].getExtremes(),c.render(a.min,a.max))}));A.Navigator=F;return A.Navigator});P(A,\"parts/OrdinalAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g,A){var v=A.addEvent,H=A.css,G=A.defined,N=A.pick,M=A.timeUnits;A=g.Chart;var y=g.Series,I=function(){function k(g){this.index={};this.axis=g}k.prototype.getExtendedPositions=\nfunction(){var k=this,v=k.axis,t=v.constructor.prototype,q=v.chart,r=v.series[0].currentDataGrouping,h=k.index,f=r?r.count+r.unitName:\"raw\",a=v.options.overscroll,l=v.getExtremes(),e;h||(h=k.index={});if(!h[f]){var c={series:[],chart:q,getExtremes:function(){return{min:l.dataMin,max:l.dataMax+a}},options:{ordinal:!0},ordinal:{},ordinal2lin:t.ordinal2lin,val2lin:t.val2lin};c.ordinal.axis=c;v.series.forEach(function(a){e={xAxis:c,xData:a.xData.slice(),chart:q,destroyGroupedData:g.noop,getProcessedData:g.Series.prototype.getProcessedData};\ne.xData=e.xData.concat(k.getOverscrollPositions());e.options={dataGrouping:r?{enabled:!0,forced:!0,approximation:\"open\",units:[[r.unitName,[r.count]]]}:{enabled:!1}};a.processData.apply(e);c.series.push(e)});v.beforeSetTickPositions.apply(c);h[f]=c.ordinal.positions}return h[f]};k.prototype.getGroupIntervalFactor=function(g,k,t){t=t.processedXData;var q=t.length,r=[];var h=this.groupIntervalFactor;if(!h){for(h=0;h<q-1;h++)r[h]=t[h+1]-t[h];r.sort(function(f,a){return f-a});r=r[Math.floor(q/2)];g=Math.max(g,\nt[0]);k=Math.min(k,t[q-1]);this.groupIntervalFactor=h=q*r/(k-g)}return h};k.prototype.getOverscrollPositions=function(){var g=this.axis,k=g.options.overscroll,t=this.overscrollPointsRange,q=[],r=g.dataMax;if(G(t))for(q.push(r);r<=g.dataMax+k;)r+=t,q.push(r);return q};k.prototype.postProcessTickInterval=function(g){var k=this.axis,t=this.slope;return t?k.options.breaks?k.closestPointRange||g:g/(t/k.closestPointRange):g};return k}(),J=function(){function g(){}g.compose=function(g,k,t){g.keepProps.push(\"ordinal\");\nvar q=g.prototype;q.beforeSetTickPositions=function(){var g=this.ordinal,h=[],f,a=!1,l=this.getExtremes(),e=l.min,c=l.max,m,k=this.isXAxis&&!!this.options.breaks;l=this.options.ordinal;var q=Number.MAX_VALUE,t=this.chart.options.chart.ignoreHiddenSeries,w;if(l||k){this.series.forEach(function(a,c){f=[];if(!(t&&!1===a.visible||!1===a.takeOrdinalPosition&&!k)&&(h=h.concat(a.processedXData),p=h.length,h.sort(function(a,b){return a-b}),q=Math.min(q,N(a.closestPointRange,q)),p)){for(c=0;c<p-1;)h[c]!==\nh[c+1]&&f.push(h[c+1]),c++;f[0]!==h[0]&&f.unshift(h[0]);h=f}a.isSeriesBoosting&&(w=!0)});w&&(h.length=0);var p=h.length;if(2<p){var C=h[1]-h[0];for(m=p-1;m--&&!a;)h[m+1]-h[m]!==C&&(a=!0);!this.options.keepOrdinalPadding&&(h[0]-e>C||c-h[h.length-1]>C)&&(a=!0)}else this.options.overscroll&&(2===p?q=h[1]-h[0]:1===p?(q=this.options.overscroll,h=[h[0],h[0]+q]):q=g.overscrollPointsRange);a?(this.options.overscroll&&(g.overscrollPointsRange=q,h=h.concat(g.getOverscrollPositions())),g.positions=h,C=this.ordinal2lin(Math.max(e,\nh[0]),!0),m=Math.max(this.ordinal2lin(Math.min(c,h[h.length-1]),!0),1),g.slope=c=(c-e)/(m-C),g.offset=e-C*c):(g.overscrollPointsRange=N(this.closestPointRange,g.overscrollPointsRange),g.positions=this.ordinal.slope=g.offset=void 0)}this.isOrdinal=l&&a;g.groupIntervalFactor=null};g.prototype.getTimeTicks=function(g,h,f,a,l,e,c){void 0===l&&(l=[]);void 0===e&&(e=0);var m=0,k,r,q={},w=[],p=-Number.MAX_VALUE,t=this.options.tickPixelInterval,v=this.chart.time,B=[];if(!this.options.ordinal&&!this.options.breaks||\n!l||3>l.length||\"undefined\"===typeof h)return v.getTimeTicks.apply(v,arguments);var d=l.length;for(k=0;k<d;k++){var b=k&&l[k-1]>f;l[k]<h&&(m=k);if(k===d-1||l[k+1]-l[k]>5*e||b){if(l[k]>p){for(r=v.getTimeTicks(g,l[m],l[k],a);r.length&&r[0]<=p;)r.shift();r.length&&(p=r[r.length-1]);B.push(w.length);w=w.concat(r)}m=k+1}if(b)break}r=r.info;if(c&&r.unitRange<=M.hour){k=w.length-1;for(m=1;m<k;m++)if(v.dateFormat(\"%d\",w[m])!==v.dateFormat(\"%d\",w[m-1])){q[w[m]]=\"day\";var n=!0}n&&(q[w[0]]=\"day\");r.higherRanks=\nq}r.segmentStarts=B;w.info=r;if(c&&G(t)){m=B=w.length;n=[];var x;for(v=[];m--;)k=this.translate(w[m]),x&&(v[m]=x-k),n[m]=x=k;v.sort();v=v[Math.floor(v.length/2)];v<.6*t&&(v=null);m=w[B-1]>f?B-1:B;for(x=void 0;m--;)k=n[m],B=Math.abs(x-k),x&&B<.8*t&&(null===v||B<.8*v)?(q[w[m]]&&!q[w[m+1]]?(B=m+1,x=k):B=m,w.splice(B,1)):x=k}return w};q.lin2val=function(g,h){var f=this.ordinal,a=f.positions;if(a){var l=f.slope,e=f.offset;f=a.length-1;if(h)if(0>g)g=a[0];else if(g>f)g=a[f];else{f=Math.floor(g);var c=g-\nf}else for(;f--;)if(h=l*f+e,g>=h){l=l*(f+1)+e;c=(g-h)/(l-h);break}return\"undefined\"!==typeof c&&\"undefined\"!==typeof a[f]?a[f]+(c?c*(a[f+1]-a[f]):0):g}return g};q.val2lin=function(g,h){var f=this.ordinal,a=f.positions;if(a){var l=a.length,e;for(e=l;e--;)if(a[e]===g){var c=e;break}for(e=l-1;e--;)if(g>a[e]||0===e){g=(g-a[e])/(a[e+1]-a[e]);c=e+g;break}h=h?c:f.slope*(c||0)+f.offset}else h=g;return h};q.ordinal2lin=q.val2lin;v(g,\"afterInit\",function(){this.ordinal||(this.ordinal=new I(this))});v(g,\"foundExtremes\",\nfunction(){this.isXAxis&&G(this.options.overscroll)&&this.max===this.dataMax&&(!this.chart.mouseIsDown||this.isInternal)&&(!this.eventArgs||this.eventArgs&&\"navigator\"!==this.eventArgs.trigger)&&(this.max+=this.options.overscroll,!this.isInternal&&G(this.userMin)&&(this.min+=this.options.overscroll))});v(g,\"afterSetScale\",function(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)});v(k,\"pan\",function(g){var h=this.xAxis[0],f=\nh.options.overscroll,a=g.originalEvent.chartX,l=this.options.chart&&this.options.chart.panning,e=!1;if(l&&\"y\"!==l.type&&h.options.ordinal&&h.series.length){var c=this.mouseDownX,m=h.getExtremes(),k=m.dataMax,r=m.min,q=m.max,w=this.hoverPoints,p=h.closestPointRange||h.ordinal&&h.ordinal.overscrollPointsRange;c=(c-a)/(h.translationSlope*(h.ordinal.slope||p));var t={ordinal:{positions:h.ordinal.getExtendedPositions()}};p=h.lin2val;var v=h.val2lin;if(!t.ordinal.positions)e=!0;else if(1<Math.abs(c)){w&&\nw.forEach(function(a){a.setState()});if(0>c){w=t;var B=h.ordinal.positions?h:t}else w=h.ordinal.positions?h:t,B=t;t=B.ordinal.positions;k>t[t.length-1]&&t.push(k);this.fixedRange=q-r;c=h.navigatorAxis.toFixedRange(null,null,p.apply(w,[v.apply(w,[r,!0])+c,!0]),p.apply(B,[v.apply(B,[q,!0])+c,!0]));c.min>=Math.min(m.dataMin,r)&&c.max<=Math.max(k,q)+f&&h.setExtremes(c.min,c.max,!0,!1,{trigger:\"pan\"});this.mouseDownX=a;H(this.container,{cursor:\"move\"})}}else e=!0;e||l&&/y/.test(l.type)?f&&(h.max=h.dataMax+\nf):g.preventDefault()});v(t,\"updatedData\",function(){var g=this.xAxis;g&&g.options.ordinal&&delete g.ordinal.index})};return g}();J.compose(k,A,y);return J});P(A,\"modules/broken-axis.src.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"parts/Stacking.js\"]],function(k,g,A,v){var H=A.addEvent,G=A.find,N=A.fireEvent,M=A.isArray,y=A.isNumber,I=A.pick,J=g.Series,E=function(){function g(g){this.hasBreaks=!1;this.axis=g}g.isInBreak=function(g,k){var q=g.repeat||Infinity,r=g.from,\nh=g.to-g.from;k=k>=r?(k-r)%q:q-(r-k)%q;return g.inclusive?k<=h:k<h&&0!==k};g.lin2Val=function(k){var t=this.brokenAxis;t=t&&t.breakArray;if(!t)return k;var q;for(q=0;q<t.length;q++){var r=t[q];if(r.from>=k)break;else r.to<k?k+=r.len:g.isInBreak(r,k)&&(k+=r.len)}return k};g.val2Lin=function(k){var t=this.brokenAxis;t=t&&t.breakArray;if(!t)return k;var q=k,r;for(r=0;r<t.length;r++){var h=t[r];if(h.to<=k)q-=h.len;else if(h.from>=k)break;else if(g.isInBreak(h,k)){q-=k-h.from;break}}return q};g.prototype.findBreakAt=\nfunction(g,k){return G(k,function(k){return k.from<g&&g<k.to})};g.prototype.isInAnyBreak=function(k,t){var q=this.axis,r=q.options.breaks,h=r&&r.length,f;if(h){for(;h--;)if(g.isInBreak(r[h],k)){var a=!0;f||(f=I(r[h].showPoints,!q.isXAxis))}var l=a&&t?a&&!f:a}return l};g.prototype.setBreaks=function(v,t){var q=this,r=q.axis,h=M(v)&&!!v.length;r.isDirty=q.hasBreaks!==h;q.hasBreaks=h;r.options.breaks=r.userOptions.breaks=v;r.forceRedraw=!0;r.series.forEach(function(f){f.isDirty=!0});h||r.val2lin!==g.val2Lin||\n(delete r.val2lin,delete r.lin2val);h&&(r.userOptions.ordinal=!1,r.lin2val=g.lin2Val,r.val2lin=g.val2Lin,r.setExtremes=function(f,a,h,e,c){if(q.hasBreaks){for(var g,l=this.options.breaks;g=q.findBreakAt(f,l);)f=g.to;for(;g=q.findBreakAt(a,l);)a=g.from;a<f&&(a=f)}k.prototype.setExtremes.call(this,f,a,h,e,c)},r.setAxisTranslation=function(f){k.prototype.setAxisTranslation.call(this,f);q.unitLength=null;if(q.hasBreaks){f=r.options.breaks||[];var a=[],h=[],e=0,c,m=r.userMin||r.min,u=r.userMax||r.max,\nt=I(r.pointRangePadding,0),v;f.forEach(function(a){c=a.repeat||Infinity;g.isInBreak(a,m)&&(m+=a.to%c-m%c);g.isInBreak(a,u)&&(u-=u%c-a.from%c)});f.forEach(function(e){p=e.from;for(c=e.repeat||Infinity;p-c>m;)p-=c;for(;p<m;)p+=c;for(v=p;v<u;v+=c)a.push({value:v,move:\"in\"}),a.push({value:v+(e.to-e.from),move:\"out\",size:e.breakSize})});a.sort(function(a,c){return a.value===c.value?(\"in\"===a.move?0:1)-(\"in\"===c.move?0:1):a.value-c.value});var w=0;var p=m;a.forEach(function(a){w+=\"in\"===a.move?1:-1;1===\nw&&\"in\"===a.move&&(p=a.value);0===w&&(h.push({from:p,to:a.value,len:a.value-p-(a.size||0)}),e+=a.value-p-(a.size||0))});r.breakArray=q.breakArray=h;q.unitLength=u-m-e+t;N(r,\"afterBreaks\");r.staticScale?r.transA=r.staticScale:q.unitLength&&(r.transA*=(u-r.min+t)/q.unitLength);t&&(r.minPixelPadding=r.transA*r.minPointOffset);r.min=m;r.max=u}});I(t,!0)&&r.chart.redraw()};return g}();g=function(){function g(){}g.compose=function(g,k){g.keepProps.push(\"brokenAxis\");var q=J.prototype;q.drawBreaks=function(g,\nh){var f=this,a=f.points,k,e,c,m;if(g&&g.brokenAxis&&g.brokenAxis.hasBreaks){var u=g.brokenAxis;h.forEach(function(h){k=u&&u.breakArray||[];e=g.isXAxis?g.min:I(f.options.threshold,g.min);a.forEach(function(a){m=I(a[\"stack\"+h.toUpperCase()],a[h]);k.forEach(function(f){if(y(e)&&y(m)){c=!1;if(e<f.from&&m>f.to||e>f.from&&m<f.from)c=\"pointBreak\";else if(e<f.from&&m>f.from&&m<f.to||e>f.from&&m>f.to&&m<f.from)c=\"pointInBreak\";c&&N(g,c,{point:a,brk:f})}})})})}};q.gappedPath=function(){var g=this.currentDataGrouping,\nh=g&&g.gapSize;g=this.options.gapSize;var f=this.points.slice(),a=f.length-1,k=this.yAxis,e;if(g&&0<a)for(\"value\"!==this.options.gapUnit&&(g*=this.basePointRange),h&&h>g&&h>=this.basePointRange&&(g=h),e=void 0;a--;)e&&!1!==e.visible||(e=f[a+1]),h=f[a],!1!==e.visible&&!1!==h.visible&&(e.x-h.x>g&&(e=(h.x+e.x)/2,f.splice(a+1,0,{isNull:!0,x:e}),k.stacking&&this.options.stacking&&(e=k.stacking.stacks[this.stackKey][e]=new v(k,k.options.stackLabels,!1,e,this.stack),e.total=0)),e=h);return this.getGraphPath(f)};\nH(g,\"init\",function(){this.brokenAxis||(this.brokenAxis=new E(this))});H(g,\"afterInit\",function(){\"undefined\"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)});H(g,\"afterSetTickPositions\",function(){var g=this.brokenAxis;if(g&&g.hasBreaks){var h=this.tickPositions,f=this.tickPositions.info,a=[],k;for(k=0;k<h.length;k++)g.isInAnyBreak(h[k])||a.push(h[k]);this.tickPositions=a;this.tickPositions.info=f}});H(g,\"afterSetOptions\",function(){this.brokenAxis&&this.brokenAxis.hasBreaks&&\n(this.options.ordinal=!1)});H(k,\"afterGeneratePoints\",function(){var g=this.options.connectNulls,h=this.points,f=this.xAxis,a=this.yAxis;if(this.isDirty)for(var k=h.length;k--;){var e=h[k],c=!(null===e.y&&!1===g)&&(f&&f.brokenAxis&&f.brokenAxis.isInAnyBreak(e.x,!0)||a&&a.brokenAxis&&a.brokenAxis.isInAnyBreak(e.y,!0));e.visible=c?!1:!1!==e.options.visible}});H(k,\"afterRender\",function(){this.drawBreaks(this.xAxis,[\"x\"]);this.drawBreaks(this.yAxis,I(this.pointArrayMap,[\"y\"]))})};return g}();g.compose(k,\nJ);return g});P(A,\"masters/modules/broken-axis.src.js\",[],function(){});P(A,\"parts/DataGrouping.js\",[A[\"parts/DateTimeAxis.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Tooltip.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v,K){\"\";var G=K.addEvent,H=K.arrayMax,M=K.arrayMin,y=K.correctFloat,I=K.defined,J=K.error,E=K.extend,D=K.format,z=K.isNumber,t=K.merge,q=K.pick,r=g.Axis,h=g.defaultPlotOptions;K=g.Series;var f=g.approximations={sum:function(a){var c=a.length;if(!c&&a.hasNulls)var e=null;\nelse if(c)for(e=0;c--;)e+=a[c];return e},average:function(a){var c=a.length;a=f.sum(a);z(a)&&c&&(a=y(a/c));return a},averages:function(){var a=[];[].forEach.call(arguments,function(c){a.push(f.average(c))});return\"undefined\"===typeof a[0]?void 0:a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?H(a):a.hasNulls?null:void 0},low:function(a){return a.length?M(a):a.hasNulls?null:void 0},close:function(a){return a.length?a[a.length-1]:a.hasNulls?null:void 0},\nohlc:function(a,c,e,g){a=f.open(a);c=f.high(c);e=f.low(e);g=f.close(g);if(z(a)||z(c)||z(e)||z(g))return[a,c,e,g]},range:function(a,c){a=f.low(a);c=f.high(c);if(z(a)||z(c))return[a,c];if(null===a&&null===c)return null}},a=function(a,c,e,g){var h=this,d=h.data,b=h.options&&h.options.data,m=[],k=[],l=[],p=a.length,u=!!c,r=[],q=h.pointArrayMap,w=q&&q.length,v=[\"x\"].concat(q||[\"y\"]),C=0,F=0,y;g=\"function\"===typeof g?g:f[g]?f[g]:f[h.getDGApproximation&&h.getDGApproximation()||\"average\"];w?q.forEach(function(){r.push([])}):\nr.push([]);var A=w||1;for(y=0;y<=p&&!(a[y]>=e[0]);y++);for(y;y<=p;y++){for(;\"undefined\"!==typeof e[C+1]&&a[y]>=e[C+1]||y===p;){var D=e[C];h.dataGroupInfo={start:h.cropStart+F,length:r[0].length};var G=g.apply(h,r);h.pointClass&&!I(h.dataGroupInfo.options)&&(h.dataGroupInfo.options=t(h.pointClass.prototype.optionsToObject.call({series:h},h.options.data[h.cropStart+F])),v.forEach(function(a){delete h.dataGroupInfo.options[a]}));\"undefined\"!==typeof G&&(m.push(D),k.push(G),l.push(h.dataGroupInfo));F=\ny;for(D=0;D<A;D++)r[D].length=0,r[D].hasNulls=!1;C+=1;if(y===p)break}if(y===p)break;if(q)for(D=h.cropStart+y,G=d&&d[D]||h.pointClass.prototype.applyOptions.apply({series:h},[b[D]]),D=0;D<w;D++){var L=G[q[D]];z(L)?r[D].push(L):null===L&&(r[D].hasNulls=!0)}else D=u?c[y]:null,z(D)?r[0].push(D):null===D&&(r[0].hasNulls=!0)}return{groupedXData:m,groupedYData:k,groupMap:l}},l={approximations:f,groupData:a},e=K.prototype,c=e.processData,m=e.generatePoints,u={groupPixelWidth:2,dateTimeLabelFormats:{millisecond:[\"%A, %b %e, %H:%M:%S.%L\",\n\"%A, %b %e, %H:%M:%S.%L\",\"-%H:%M:%S.%L\"],second:[\"%A, %b %e, %H:%M:%S\",\"%A, %b %e, %H:%M:%S\",\"-%H:%M:%S\"],minute:[\"%A, %b %e, %H:%M\",\"%A, %b %e, %H:%M\",\"-%H:%M\"],hour:[\"%A, %b %e, %H:%M\",\"%A, %b %e, %H:%M\",\"-%H:%M\"],day:[\"%A, %b %e, %Y\",\"%A, %b %e\",\"-%A, %b %e, %Y\"],week:[\"Week from %A, %b %e, %Y\",\"%A, %b %e\",\"-%A, %b %e, %Y\"],month:[\"%B %Y\",\"%B\",\"-%B %Y\"],year:[\"%Y\",\"%Y\",\"-%Y\"]}},L={line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},\ncandlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5}},F=g.defaultDataGroupingUnits=[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1]],[\"week\",[1]],[\"month\",[1,3,6]],[\"year\",null]];e.getDGApproximation=function(){return this.is(\"arearange\")?\"range\":this.is(\"ohlc\")?\"ohlc\":this.is(\"column\")?\"sum\":\"average\"};e.groupData=a;e.processData=function(){var a=this.chart,f=this.options.dataGrouping,h=!1!==this.allowDG&&\nf&&q(f.enabled,a.options.isStock),g=this.visible||!a.options.chart.ignoreHiddenSeries,m,d=this.currentDataGrouping,b=!1;this.forceCrop=h;this.groupPixelWidth=null;this.hasProcessed=!0;h&&!this.requireSorting&&(this.requireSorting=b=!0);h=!1===c.apply(this,arguments)||!h;b&&(this.requireSorting=!1);if(!h){this.destroyGroupedData();h=f.groupAll?this.xData:this.processedXData;var l=f.groupAll?this.yData:this.processedYData,u=a.plotSizeX;a=this.xAxis;var r=a.options.ordinal,t=this.groupPixelWidth=a.getGroupPixelWidth&&\na.getGroupPixelWidth();if(t){this.isDirty=m=!0;this.points=null;b=a.getExtremes();var v=b.min;b=b.max;r=r&&a.ordinal&&a.ordinal.getGroupIntervalFactor(v,b,this)||1;t=t*(b-v)/u*r;u=a.getTimeTicks(k.AdditionsClass.prototype.normalizeTimeTickInterval(t,f.units||F),Math.min(v,h[0]),Math.max(b,h[h.length-1]),a.options.startOfWeek,h,this.closestPointRange);l=e.groupData.apply(this,[h,l,u,f.approximation]);h=l.groupedXData;r=l.groupedYData;var y=0;if(f.smoothed&&h.length){var z=h.length-1;for(h[z]=Math.min(h[z],\nb);z--&&0<z;)h[z]+=t/2;h[0]=Math.max(h[0],v)}for(z=1;z<u.length;z++)u.info.segmentStarts&&-1!==u.info.segmentStarts.indexOf(z)||(y=Math.max(u[z]-u[z-1],y));v=u.info;v.gapSize=y;this.closestPointRange=u.info.totalRange;this.groupMap=l.groupMap;if(I(h[0])&&h[0]<a.min&&g){if(!I(a.options.min)&&a.min<=a.dataMin||a.min===a.dataMin)a.min=Math.min(h[0],a.min);a.dataMin=Math.min(h[0],a.dataMin)}f.groupAll&&(f=this.cropData(h,r,a.min,a.max,1),h=f.xData,r=f.yData);this.processedXData=h;this.processedYData=\nr}else this.groupMap=null;this.hasGroupedData=m;this.currentDataGrouping=v;this.preventGraphAnimation=(d&&d.totalRange)!==(v&&v.totalRange)}};e.destroyGroupedData=function(){this.groupedData&&(this.groupedData.forEach(function(a,c){a&&(this.groupedData[c]=a.destroy?a.destroy():null)},this),this.groupedData.length=0)};e.generatePoints=function(){m.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};G(A,\"update\",function(){if(this.dataGroup)return J(24,!1,this.series.chart),\n!1});G(v,\"headerFormatter\",function(a){var c=this.chart,e=c.time,f=a.labelConfig,h=f.series,d=h.tooltipOptions,b=h.options.dataGrouping,g=d.xDateFormat,m=h.xAxis,k=d[(a.isFooter?\"footer\":\"header\")+\"Format\"];if(m&&\"datetime\"===m.options.type&&b&&z(f.key)){var l=h.currentDataGrouping;b=b.dateTimeLabelFormats||u.dateTimeLabelFormats;if(l)if(d=b[l.unitName],1===l.count)g=d[0];else{g=d[1];var r=d[2]}else!g&&b&&(g=this.getXDateFormat(f,d,m));g=e.dateFormat(g,f.key);r&&(g+=e.dateFormat(r,f.key+l.totalRange-\n1));h.chart.styledMode&&(k=this.styledModeFormat(k));a.text=D(k,{point:E(f.point,{key:g}),series:h},c);a.preventDefault()}});G(K,\"destroy\",e.destroyGroupedData);G(K,\"afterSetOptions\",function(a){a=a.options;var c=this.type,e=this.chart.options.plotOptions,f=h[c].dataGrouping,g=this.useCommonDataGrouping&&u;if(L[c]||g)f||(f=t(u,L[c])),a.dataGrouping=t(g,f,e.series&&e.series.dataGrouping,e[c].dataGrouping,this.userOptions.dataGrouping)});G(r,\"afterSetScale\",function(){this.series.forEach(function(a){a.hasProcessed=\n!1})});r.prototype.getGroupPixelWidth=function(){var a=this.series,c=a.length,e,f=0,h=!1,d;for(e=c;e--;)(d=a[e].options.dataGrouping)&&(f=Math.max(f,q(d.groupPixelWidth,u.groupPixelWidth)));for(e=c;e--;)(d=a[e].options.dataGrouping)&&a[e].hasProcessed&&(c=(a[e].processedXData||a[e].data).length,a[e].groupPixelWidth||c>this.chart.plotSizeX/f||c&&d.forced)&&(h=!0);return h?f:0};r.prototype.setDataGrouping=function(a,c){var e;c=q(c,!0);a||(a={forced:!1,units:null});if(this instanceof r)for(e=this.series.length;e--;)this.series[e].update({dataGrouping:a},\n!1);else this.chart.options.series.forEach(function(c){c.dataGrouping=a},!1);this.ordinal&&(this.ordinal.slope=void 0);c&&this.chart.redraw()};g.dataGrouping=l;\"\";return l});P(A,\"parts/OHLCSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,A){A=A.seriesType;var v=k.seriesTypes;A(\"ohlc\",\"column\",{lineWidth:1,tooltip:{pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <b> {series.name}</b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},\nthreshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:[\"open\",\"high\",\"low\",\"close\"],toYData:function(g){return[g.open,g.high,g.low,g.close]},pointValKey:\"close\",pointAttrToOptions:{stroke:\"color\",\"stroke-width\":\"lineWidth\"},init:function(){v.column.prototype.init.apply(this,arguments);this.options.stacking=void 0},pointAttribs:function(g,k){k=v.column.prototype.pointAttribs.call(this,g,k);var A=this.options;delete k.fill;!g.options.color&&A.upColor&&g.open<g.close&&\n(k.stroke=A.upColor);return k},translate:function(){var g=this,k=g.yAxis,A=!!g.modifyValue,H=[\"plotOpen\",\"plotHigh\",\"plotLow\",\"plotClose\",\"yBottom\"];v.column.prototype.translate.apply(g);g.points.forEach(function(v){[v.open,v.high,v.low,v.close,v.low].forEach(function(y,G){null!==y&&(A&&(y=g.modifyValue(y)),v[H[G]]=k.toPixels(y,!0))});v.tooltipPos[1]=v.plotHigh+k.pos-g.chart.plotTop})},drawPoints:function(){var g=this,k=g.chart,v=function(g,k,v){var y=g[0];g=g[1];\"number\"===typeof y[2]&&(y[2]=Math.max(v+\nk,y[2]));\"number\"===typeof g[2]&&(g[2]=Math.min(v-k,g[2]))};g.points.forEach(function(A){var y=A.graphic,G=!y;if(\"undefined\"!==typeof A.plotY){y||(A.graphic=y=k.renderer.path().add(g.group));k.styledMode||y.attr(g.pointAttribs(A,A.selected&&\"select\"));var H=y.strokeWidth();var E=H%2/2;var D=Math.round(A.plotX)-E;var z=Math.round(A.shapeArgs.width/2);var t=[[\"M\",D,Math.round(A.yBottom)],[\"L\",D,Math.round(A.plotHigh)]];if(null!==A.open){var q=Math.round(A.plotOpen)+E;t.push([\"M\",D,q],[\"L\",D-z,q]);v(t,\nH/2,q)}null!==A.close&&(q=Math.round(A.plotClose)+E,t.push([\"M\",D,q],[\"L\",D+z,q]),v(t,H/2,q));y[G?\"attr\":\"animate\"]({d:t}).addClass(A.getClassName(),!0)}})},animate:null},{getClassName:function(){return g.prototype.getClassName.call(this)+(this.open<this.close?\" highcharts-point-up\":\" highcharts-point-down\")}});\"\"});P(A,\"parts/CandlestickSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=g.merge;g=g.seriesType;var v=k.defaultPlotOptions,K=k.seriesTypes;g(\"candlestick\",\n\"ohlc\",A(v.column,{states:{hover:{lineWidth:2}},tooltip:v.ohlc.tooltip,threshold:null,lineColor:\"#000000\",lineWidth:1,upColor:\"#ffffff\",stickyTracking:!0}),{pointAttribs:function(g,k){var v=K.column.prototype.pointAttribs.call(this,g,k),y=this.options,A=g.open<g.close,G=y.lineColor||this.color;v[\"stroke-width\"]=y.lineWidth;v.fill=g.options.color||(A?y.upColor||this.color:this.color);v.stroke=g.options.lineColor||(A?y.upLineColor||G:G);k&&(g=y.states[k],v.fill=g.color||v.fill,v.stroke=g.lineColor||\nv.stroke,v[\"stroke-width\"]=g.lineWidth||v[\"stroke-width\"]);return v},drawPoints:function(){var g=this,k=g.chart,v=g.yAxis.reversed;g.points.forEach(function(y){var A=y.graphic,G=!A;if(\"undefined\"!==typeof y.plotY){A||(y.graphic=A=k.renderer.path().add(g.group));g.chart.styledMode||A.attr(g.pointAttribs(y,y.selected&&\"select\")).shadow(g.options.shadow);var E=A.strokeWidth()%2/2;var D=Math.round(y.plotX)-E;var z=y.plotOpen;var t=y.plotClose;var q=Math.min(z,t);z=Math.max(z,t);var r=Math.round(y.shapeArgs.width/\n2);t=v?z!==y.yBottom:Math.round(q)!==Math.round(y.plotHigh);var h=v?Math.round(q)!==Math.round(y.plotHigh):z!==y.yBottom;q=Math.round(q)+E;z=Math.round(z)+E;E=[];E.push([\"M\",D-r,z],[\"L\",D-r,q],[\"L\",D+r,q],[\"L\",D+r,z],[\"Z\"],[\"M\",D,q],[\"L\",D,t?Math.round(v?y.yBottom:y.plotHigh):q],[\"M\",D,z],[\"L\",D,h?Math.round(v?y.plotHigh:y.yBottom):z]);A[G?\"attr\":\"animate\"]({d:E}).addClass(y.getClassName(),!0)}})}});\"\"});P(A,\"mixins/on-series.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=\ng.defined,v=g.stableSort,K=k.seriesTypes;return{getPlotBox:function(){return k.Series.prototype.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this)},translate:function(){K.column.prototype.translate.apply(this);var g=this,k=g.options,H=g.chart,y=g.points,I=y.length-1,J,E=k.onSeries;E=E&&H.get(E);k=k.onKey||\"y\";var D=E&&E.options.step,z=E&&E.points,t=z&&z.length,q=H.inverted,r=g.xAxis,h=g.yAxis,f=0,a;if(E&&E.visible&&t){f=(E.pointXOffset||0)+(E.barW||0)/2;H=E.currentDataGrouping;\nvar l=z[t-1].x+(H?H.totalRange:0);v(y,function(a,c){return a.x-c.x});for(k=\"plot\"+k[0].toUpperCase()+k.substr(1);t--&&y[I];){var e=z[t];H=y[I];H.y=e.y;if(e.x<=H.x&&\"undefined\"!==typeof e[k]){if(H.x<=l&&(H.plotY=e[k],e.x<H.x&&!D&&(a=z[t+1])&&\"undefined\"!==typeof a[k])){var c=(H.x-e.x)/(a.x-e.x);H.plotY+=c*(a[k]-e[k]);H.y+=c*(a.y-e.y)}I--;t++;if(0>I)break}}}y.forEach(function(a,c){a.plotX+=f;if(\"undefined\"===typeof a.plotY||q)0<=a.plotX&&a.plotX<=r.len?q?(a.plotY=r.translate(a.x,0,1,0,1),a.plotX=A(a.y)?\nh.translate(a.y,0,0,0,1):0):a.plotY=(r.opposite?0:g.yAxis.len)+r.offset:a.shapeArgs={};if((J=y[c-1])&&J.plotX===a.plotX){\"undefined\"===typeof J.stackIndex&&(J.stackIndex=0);var e=J.stackIndex+1}a.stackIndex=e});this.onSeries=E}}});P(A,\"parts/FlagsSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"mixins/on-series.js\"]],function(k,g,A){function v(g){q[g+\"pin\"]=function(h,f,a,k,e){var c=e&&e.anchorX;e=e&&e.anchorY;\"circle\"===g&&k>a&&(h-=Math.round((k-a)/2),a=k);var m=q[g](h,f,a,k);if(c&&e){var l=\nc;\"circle\"===g?l=h+a/2:(h=m[0],a=m[1],\"M\"===h[0]&&\"L\"===a[0]&&(l=(h[1]+a[1])/2));m.push([\"M\",l,f>e?f:f+k],[\"L\",c,e]);m=m.concat(q.circle(c-1,e-1,2,2))}return m}}var H=g.addEvent,G=g.defined,N=g.isNumber,M=g.merge,y=g.objectEach,I=g.seriesType,J=g.wrap;g=k.noop;var E=k.Renderer,D=k.Series,z=k.TrackerMixin,t=k.VMLRenderer,q=k.SVGRenderer.prototype.symbols;I(\"flags\",\"column\",{pointRange:0,allowOverlapX:!1,shape:\"flag\",stackDistance:12,textAlign:\"center\",tooltip:{pointFormat:\"{point.text}<br/>\"},threshold:null,\ny:-30,fillColor:\"#ffffff\",lineWidth:1,states:{hover:{lineColor:\"#000000\",fillColor:\"#ccd6eb\"}},style:{fontSize:\"11px\",fontWeight:\"bold\"}},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:[\"markerGroup\"],forceCrop:!0,init:D.prototype.init,pointAttribs:function(g,h){var f=this.options,a=g&&g.color||this.color,k=f.lineColor,e=g&&g.lineWidth;g=g&&g.fillColor||f.fillColor;h&&(g=f.states[h].fillColor,k=f.states[h].lineColor,e=f.states[h].lineWidth);return{fill:g||a,stroke:k||\na,\"stroke-width\":e||f.lineWidth||0}},translate:A.translate,getPlotBox:A.getPlotBox,drawPoints:function(){var g=this.points,h=this.chart,f=h.renderer,a=h.inverted,l=this.options,e=l.y,c,m=this.yAxis,u={},q=[];for(c=g.length;c--;){var t=g[c];var w=(a?t.plotY:t.plotX)>this.xAxis.len;var p=t.plotX;var v=t.stackIndex;var z=t.options.shape||l.shape;var B=t.plotY;\"undefined\"!==typeof B&&(B=t.plotY+e-(\"undefined\"!==typeof v&&v*l.stackDistance));t.anchorX=v?void 0:t.plotX;var d=v?void 0:t.plotY;var b=\"flag\"!==\nz;v=t.graphic;\"undefined\"!==typeof B&&0<=p&&!w?(v||(v=t.graphic=f.label(\"\",null,null,z,null,null,l.useHTML),h.styledMode||v.attr(this.pointAttribs(t)).css(M(l.style,t.style)),v.attr({align:b?\"center\":\"left\",width:l.width,height:l.height,\"text-align\":l.textAlign}).addClass(\"highcharts-point\").add(this.markerGroup),t.graphic.div&&(t.graphic.div.point=t),h.styledMode||v.shadow(l.shadow),v.isNew=!0),0<p&&(p-=v.strokeWidth()%2),z={y:B,anchorY:d},l.allowOverlapX&&(z.x=p,z.anchorX=t.anchorX),v.attr({text:t.options.title||\nl.title||\"A\"})[v.isNew?\"attr\":\"animate\"](z),l.allowOverlapX||(u[t.plotX]?u[t.plotX].size=Math.max(u[t.plotX].size,v.width):u[t.plotX]={align:b?.5:0,size:v.width,target:p,anchorX:p}),t.tooltipPos=[p,B+m.pos-h.plotTop]):v&&(t.graphic=v.destroy())}l.allowOverlapX||(y(u,function(a){a.plotX=a.anchorX;q.push(a)}),k.distribute(q,a?m.len:this.xAxis.len,100),g.forEach(function(a){var b=a.graphic&&u[a.plotX];b&&(a.graphic[a.graphic.isNew?\"attr\":\"animate\"]({x:b.pos+b.align*b.size,anchorX:a.anchorX}),G(b.pos)?\na.graphic.isNew=!1:(a.graphic.attr({x:-9999,anchorX:-9999}),a.graphic.isNew=!0))}));l.useHTML&&J(this.markerGroup,\"on\",function(a){return k.SVGElement.prototype.on.apply(a.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})},drawTracker:function(){var g=this.points;z.drawTrackerPoint.apply(this);g.forEach(function(h){var f=h.graphic;f&&H(f.element,\"mouseover\",function(){0<h.stackIndex&&!h.raised&&(h._y=f.y,f.attr({y:h._y-8}),h.raised=!0);g.forEach(function(a){a!==h&&a.raised&&a.graphic&&\n(a.graphic.attr({y:a._y}),a.raised=!1)})})})},animate:function(g){g&&this.setClip()},setClip:function(){D.prototype.setClip.apply(this,arguments);!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup.clip(this.chart[this.sharedClipKey])},buildKDTree:g,invertGroups:g},{isValid:function(){return N(this.y)||\"undefined\"===typeof this.y}});q.flag=function(g,h,f,a,k){var e=k&&k.anchorX||g;k=k&&k.anchorY||h;var c=q.circle(e-1,k-1,2,2);c.push([\"M\",e,k],[\"L\",g,h+a],[\"L\",g,h],[\"L\",g+f,h],[\"L\",g+f,h+\na],[\"L\",g,h+a],[\"Z\"]);return c};v(\"circle\");v(\"square\");E===t&&[\"circlepin\",\"flag\",\"squarepin\"].forEach(function(g){t.prototype.symbols[g]=q[g]});\"\"});P(A,\"parts/RangeSelector.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){function A(a){this.init(a)}var v=g.addEvent,K=g.createElement,G=g.css,N=g.defined,M=g.destroyObjectProperties,y=g.discardElement,I=g.extend,J=g.fireEvent,E=g.isNumber,D=g.merge,z=g.objectEach,t=g.pick,q=g.pInt,r=g.splat,h=k.Axis;g=k.Chart;var f=k.defaultOptions;\nI(f,{rangeSelector:{verticalAlign:\"top\",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputPosition:{align:\"right\",x:0,y:0},buttonPosition:{align:\"left\",x:0,y:0},labelStyle:{color:\"#666666\"}}});f.lang=D(f.lang,{rangeSelectorZoom:\"Zoom\",rangeSelectorFrom:\"From\",rangeSelectorTo:\"To\"});A.prototype={clickButton:function(a,f){var e=this.chart,c=this.buttonOptions[a],g=e.xAxis[0],k=e.scroller&&e.scroller.getUnionExtremes()||g||{},l=k.dataMin,q=k.dataMax,w=g&&Math.round(Math.min(g.max,\nt(q,g.max))),p=c.type;k=c._range;var C,y=c.dataGrouping;if(null!==l&&null!==q){e.fixedRange=k;y&&(this.forcedDataGrouping=!0,h.prototype.setDataGrouping.call(g||{chart:this.chart},y,!1),this.frozenStates=c.preserveDataGrouping);if(\"month\"===p||\"year\"===p)if(g){p={range:c,max:w,chart:e,dataMin:l,dataMax:q};var B=g.minFromRange.call(p);E(p.newMax)&&(w=p.newMax)}else k=c;else if(k)B=Math.max(w-k,l),w=Math.min(B+k,q);else if(\"ytd\"===p)if(g)\"undefined\"===typeof q&&(l=Number.MAX_VALUE,q=Number.MIN_VALUE,\ne.series.forEach(function(a){a=a.xData;l=Math.min(a[0],l);q=Math.max(a[a.length-1],q)}),f=!1),w=this.getYTDExtremes(q,l,e.time.useUTC),B=C=w.min,w=w.max;else{this.deferredYTDClick=a;return}else\"all\"===p&&g&&(B=l,w=q);B+=c._offsetMin;w+=c._offsetMax;this.setSelected(a);if(g)g.setExtremes(B,w,t(f,1),null,{trigger:\"rangeSelectorButton\",rangeSelectorButton:c});else{var d=r(e.options.xAxis)[0];var b=d.range;d.range=k;var n=d.min;d.min=C;v(e,\"load\",function(){d.range=b;d.min=n})}}},setSelected:function(a){this.selected=\nthis.options.selected=a},defaultButtons:[{type:\"month\",count:1,text:\"1m\"},{type:\"month\",count:3,text:\"3m\"},{type:\"month\",count:6,text:\"6m\"},{type:\"ytd\",text:\"YTD\"},{type:\"year\",count:1,text:\"1y\"},{type:\"all\",text:\"All\"}],init:function(a){var f=this,e=a.options.rangeSelector,c=e.buttons||[].concat(f.defaultButtons),g=e.selected,h=function(){var a=f.minInput,c=f.maxInput;a&&a.blur&&J(a,\"blur\");c&&c.blur&&J(c,\"blur\")};f.chart=a;f.options=e;f.buttons=[];f.buttonOptions=c;this.unMouseDown=v(a.container,\n\"mousedown\",h);this.unResize=v(a,\"resize\",h);c.forEach(f.computeButtonRange);\"undefined\"!==typeof g&&c[g]&&this.clickButton(g,!1);v(a,\"load\",function(){a.xAxis&&a.xAxis[0]&&v(a.xAxis[0],\"setExtremes\",function(c){this.max-this.min!==a.fixedRange&&\"rangeSelectorButton\"!==c.trigger&&\"updatedData\"!==c.trigger&&f.forcedDataGrouping&&!f.frozenStates&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this,f=this.chart,e=f.xAxis[0],c=Math.round(e.max-e.min),g=!e.hasVisibleSeries,h=f.scroller&&\nf.scroller.getUnionExtremes()||e,k=h.dataMin,q=h.dataMax;f=a.getYTDExtremes(q,k,f.time.useUTC);var r=f.min,p=f.max,t=a.selected,v=E(t),B=a.options.allButtonsEnabled,d=a.buttons;a.buttonOptions.forEach(function(b,f){var h=b._range,m=b.type,l=b.count||1,n=d[f],u=0,w=b._offsetMax-b._offsetMin;b=f===t;var C=h>q-k,y=h<e.minRange,z=!1,A=!1;h=h===c;(\"month\"===m||\"year\"===m)&&c+36E5>=864E5*{month:28,year:365}[m]*l-w&&c-36E5<=864E5*{month:31,year:366}[m]*l+w?h=!0:\"ytd\"===m?(h=p-r+w===c,z=!b):\"all\"===m&&(h=\ne.max-e.min>=q-k,A=!b&&v&&h);m=!B&&(C||y||A||g);l=b&&h||h&&!v&&!z||b&&a.frozenStates;m?u=3:l&&(v=!0,u=2);n.state!==u&&(n.setState(u),0===u&&t===f&&a.setSelected(null))})},computeButtonRange:function(a){var f=a.type,e=a.count||1,c={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(c[f])a._range=c[f]*e;else if(\"month\"===f||\"year\"===f)a._range=864E5*{month:30,year:365}[f]*e;a._offsetMin=t(a.offsetMin,0);a._offsetMax=t(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,\nf){var e=this.chart.options.rangeSelector,c=this.chart.time,g=this[a+\"Input\"];N(f)&&(g.previousValue=g.HCTime,g.HCTime=f);g.value=c.dateFormat(e.inputEditDateFormat||\"%Y-%m-%d\",g.HCTime);this[a+\"DateBox\"].attr({text:c.dateFormat(e.inputDateFormat||\"%b %e, %Y\",g.HCTime)})},showInput:function(a){var f=this.inputGroup,e=this[a+\"DateBox\"];G(this[a+\"Input\"],{left:f.translateX+e.x+\"px\",top:f.translateY+\"px\",width:e.width-2+\"px\",height:e.height-2+\"px\",border:\"2px solid silver\"})},hideInput:function(a){G(this[a+\n\"Input\"],{border:0,width:\"1px\",height:\"1px\"});this.setInputValue(a)},drawInput:function(a){function g(){var a=p.value,d=(r.inputDateParser||Date.parse)(a),b=c.xAxis[0],f=c.scroller&&c.scroller.xAxis?c.scroller.xAxis:b,g=f.dataMin;f=f.dataMax;d!==p.previousValue&&(p.previousValue=d,E(d)||(d=a.split(\"-\"),d=Date.UTC(q(d[0]),q(d[1])-1,q(d[2]))),E(d)&&(c.time.useUTC||(d+=6E4*(new Date).getTimezoneOffset()),w?d>e.maxInput.HCTime?d=void 0:d<g&&(d=g):d<e.minInput.HCTime?d=void 0:d>f&&(d=f),\"undefined\"!==\ntypeof d&&b.setExtremes(w?d:b.min,w?b.max:d,void 0,void 0,{trigger:\"rangeSelectorInput\"})))}var e=this,c=e.chart,h=c.renderer.style||{},u=c.renderer,r=c.options.rangeSelector,t=e.div,w=\"min\"===a,p,v,y=this.inputGroup;this[a+\"Label\"]=v=u.label(f.lang[w?\"rangeSelectorFrom\":\"rangeSelectorTo\"],this.inputGroup.offset).addClass(\"highcharts-range-label\").attr({padding:2}).add(y);y.offset+=v.width+5;this[a+\"DateBox\"]=u=u.label(\"\",y.offset).addClass(\"highcharts-range-input\").attr({padding:2,width:r.inputBoxWidth||\n90,height:r.inputBoxHeight||17,\"text-align\":\"center\"}).on(\"click\",function(){e.showInput(a);e[a+\"Input\"].focus()});c.styledMode||u.attr({stroke:r.inputBoxBorderColor||\"#cccccc\",\"stroke-width\":1});u.add(y);y.offset+=u.width+(w?10:0);this[a+\"Input\"]=p=K(\"input\",{name:a,className:\"highcharts-range-selector\",type:\"text\"},{top:c.plotTop+\"px\"},t);c.styledMode||(v.css(D(h,r.labelStyle)),u.css(D({color:\"#333333\"},h,r.inputStyle)),G(p,I({position:\"absolute\",border:0,width:\"1px\",height:\"1px\",padding:0,textAlign:\"center\",\nfontSize:h.fontSize,fontFamily:h.fontFamily,top:\"-9999em\"},r.inputStyle)));p.onfocus=function(){e.showInput(a)};p.onblur=function(){p===k.doc.activeElement&&g();e.hideInput(a);p.blur()};p.onchange=g;p.onkeypress=function(a){13===a.keyCode&&g()}},getPosition:function(){var a=this.chart,f=a.options.rangeSelector;a=\"top\"===f.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+f.buttonPosition.y,inputTop:a+f.inputPosition.y-10}},getYTDExtremes:function(a,f,e){var c=this.chart.time,g=new c.Date(a),\nh=c.get(\"FullYear\",g);e=e?c.Date.UTC(h,0,1):+new c.Date(h,0,1);f=Math.max(f||0,e);g=g.getTime();return{max:Math.min(a||g,g),min:f}},render:function(a,g){var e=this,c=e.chart,h=c.renderer,k=c.container,l=c.options,q=l.exporting&&!1!==l.exporting.enabled&&l.navigation&&l.navigation.buttonOptions,r=f.lang,p=e.div,v=l.rangeSelector,y=t(l.chart.style&&l.chart.style.zIndex,0)+1;l=v.floating;var B=e.buttons;p=e.inputGroup;var d=v.buttonTheme,b=v.buttonPosition,n=v.inputPosition,x=v.inputEnabled,z=d&&d.states,\nA=c.plotLeft,D=e.buttonGroup,E,G=e.options.verticalAlign,H=c.legend,I=H&&H.options,J=b.y,M=n.y,N=c.hasLoaded,P=N?\"animate\":\"attr\",T=0,S=0;if(!1!==v.enabled){e.rendered||(e.group=E=h.g(\"range-selector-group\").attr({zIndex:7}).add(),e.buttonGroup=D=h.g(\"range-selector-buttons\").add(E),e.zoomText=h.text(r.rangeSelectorZoom,0,15).add(D),c.styledMode||(e.zoomText.css(v.labelStyle),d[\"stroke-width\"]=t(d[\"stroke-width\"],0)),e.buttonOptions.forEach(function(a,b){B[b]=h.button(a.text,0,0,function(c){var d=\na.events&&a.events.click,f;d&&(f=d.call(a,c));!1!==f&&e.clickButton(b);e.isActive=!0},d,z&&z.hover,z&&z.select,z&&z.disabled).attr({\"text-align\":\"center\"}).add(D)}),!1!==x&&(e.div=p=K(\"div\",null,{position:\"relative\",height:0,zIndex:y}),k.parentNode.insertBefore(p,k),e.inputGroup=p=h.g(\"input-group\").add(E),p.offset=0,e.drawInput(\"min\"),e.drawInput(\"max\")));e.zoomText[P]({x:t(A+b.x,A)});var da=t(A+b.x,A)+e.zoomText.getBBox().width+5;e.buttonOptions.forEach(function(a,b){B[b][P]({x:da});da+=B[b].width+\nt(v.buttonSpacing,5)});A=c.plotLeft-c.spacing[3];e.updateButtonStates();q&&this.titleCollision(c)&&\"top\"===G&&\"right\"===b.align&&b.y+D.getBBox().height-12<(q.y||0)+q.height&&(T=-40);k=b.x-c.spacing[3];\"right\"===b.align?k+=T-A:\"center\"===b.align&&(k-=A/2);D.align({y:b.y,width:D.getBBox().width,align:b.align,x:k},!0,c.spacingBox);e.group.placed=N;e.buttonGroup.placed=N;!1!==x&&(T=q&&this.titleCollision(c)&&\"top\"===G&&\"right\"===n.align&&n.y-p.getBBox().height-12<(q.y||0)+q.height+c.spacing[0]?-40:0,\n\"left\"===n.align?k=A:\"right\"===n.align&&(k=-Math.max(c.axisOffset[1],-T)),p.align({y:n.y,width:p.getBBox().width,align:n.align,x:n.x+k-2},!0,c.spacingBox),q=p.alignAttr.translateX+p.alignOptions.x-T+p.getBBox().x+2,k=p.alignOptions.width,r=D.alignAttr.translateX+D.getBBox().x,A=D.getBBox().width+20,(n.align===b.align||r+A>q&&q+k>r&&J<M+p.getBBox().height)&&p.attr({translateX:p.alignAttr.translateX+(c.axisOffset[1]>=-T?0:-T),translateY:p.alignAttr.translateY+D.getBBox().height+10}),e.setInputValue(\"min\",\na),e.setInputValue(\"max\",g),e.inputGroup.placed=N);e.group.align({verticalAlign:G},!0,c.spacingBox);a=e.group.getBBox().height+20;g=e.group.alignAttr.translateY;\"bottom\"===G&&(H=I&&\"bottom\"===I.verticalAlign&&I.enabled&&!I.floating?H.legendHeight+t(I.margin,10):0,a=a+H-20,S=g-a-(l?0:v.y)-(c.titleOffset?c.titleOffset[2]:0)-10);if(\"top\"===G)l&&(S=0),c.titleOffset&&c.titleOffset[0]&&(S=c.titleOffset[0]),S+=c.margin[0]-c.spacing[0]||0;else if(\"middle\"===G)if(M===J)S=0>M?g+void 0:g;else if(M||J)S=0>M||\n0>J?S-Math.min(M,J):g-a+NaN;e.group.translate(v.x,v.y+Math.floor(S));!1!==x&&(e.minInput.style.marginTop=e.group.translateY+\"px\",e.maxInput.style.marginTop=e.group.translateY+\"px\");e.rendered=!0}},getHeight:function(){var a=this.options,f=this.group,e=a.y,c=a.buttonPosition.y,g=a.inputPosition.y;if(a.height)return a.height;a=f?f.getBBox(!0).height+13+e:0;f=Math.min(g,c);if(0>g&&0>c||0<g&&0<c)a+=Math.abs(f);return a},titleCollision:function(a){return!(a.options.title.text||a.options.subtitle.text)},\nupdate:function(a){var f=this.chart;D(!0,f.options.rangeSelector,a);this.destroy();this.init(f);f.rangeSelector.render()},destroy:function(){var a=this,f=a.minInput,e=a.maxInput;a.unMouseDown();a.unResize();M(a.buttons);f&&(f.onfocus=f.onblur=f.onchange=null);e&&(e.onfocus=e.onblur=e.onchange=null);z(a,function(c,e){c&&\"chart\"!==e&&(c.destroy?c.destroy():c.nodeType&&y(this[e]));c!==A.prototype[e]&&(a[e]=null)},this)}};h.prototype.minFromRange=function(){var a=this.range,f=a.type,e=this.max,c=this.chart.time,\ng=function(a,e){var g=\"year\"===f?\"FullYear\":\"Month\",h=new c.Date(a),k=c.get(g,h);c.set(g,h,k+e);k===c.get(g,h)&&c.set(\"Date\",h,0);return h.getTime()-a};if(E(a)){var h=e-a;var k=a}else h=e+g(e,-a.count),this.chart&&(this.chart.fixedRange=e-h);var q=t(this.dataMin,Number.MIN_VALUE);E(h)||(h=q);h<=q&&(h=q,\"undefined\"===typeof k&&(k=g(h,a.count)),this.newMax=Math.min(h+k,this.dataMax));E(e)||(h=void 0);return h};k.RangeSelector||(v(g,\"afterGetContainer\",function(){this.options.rangeSelector.enabled&&\n(this.rangeSelector=new A(this))}),v(g,\"beforeRender\",function(){var a=this.axes,f=this.rangeSelector;f&&(E(f.deferredYTDClick)&&(f.clickButton(f.deferredYTDClick),delete f.deferredYTDClick),a.forEach(function(a){a.updateNames();a.setScale()}),this.getAxisMargins(),f.render(),a=f.options.verticalAlign,f.options.floating||(\"bottom\"===a?this.extraBottomMargin=!0:\"middle\"!==a&&(this.extraTopMargin=!0)))}),v(g,\"update\",function(a){var f=a.options.rangeSelector;a=this.rangeSelector;var e=this.extraBottomMargin,\nc=this.extraTopMargin;f&&f.enabled&&!N(a)&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=new A(this));this.extraTopMargin=this.extraBottomMargin=!1;a&&(a.render(),f=f&&f.verticalAlign||a.options&&a.options.verticalAlign,a.options.floating||(\"bottom\"===f?this.extraBottomMargin=!0:\"middle\"!==f&&(this.extraTopMargin=!0)),this.extraBottomMargin!==e||this.extraTopMargin!==c)&&(this.isDirtyBox=!0)}),v(g,\"render\",function(){var a=this.rangeSelector;a&&!a.options.floating&&(a.render(),a=a.options.verticalAlign,\n\"bottom\"===a?this.extraBottomMargin=!0:\"middle\"!==a&&(this.extraTopMargin=!0))}),v(g,\"getMargins\",function(){var a=this.rangeSelector;a&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+=a),this.extraBottomMargin&&(this.marginBottom+=a))}),g.prototype.callbacks.push(function(a){function f(){e=a.xAxis[0].getExtremes();g=a.legend;k=null===c||void 0===c?void 0:c.options.verticalAlign;E(e.min)&&c.render(e.min,e.max);c&&g.display&&\"top\"===k&&k===g.options.verticalAlign&&(h=D(a.spacingBox),h.y=\"vertical\"===\ng.options.layout?a.plotTop:h.y+c.getHeight(),g.group.placed=!1,g.align(h))}var e,c=a.rangeSelector,g,h,k;if(c){var q=v(a.xAxis[0],\"afterSetExtremes\",function(a){c.render(a.min,a.max)});var r=v(a,\"redraw\",f);f()}v(a,\"destroy\",function(){c&&(r(),q())})}),k.RangeSelector=A)});P(A,\"parts/StockChart.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v){var H=v.addEvent,G=v.arrayMax,N=v.arrayMin,M=v.clamp,y=v.defined,I=v.extend,J=v.find,E=v.format,\nD=v.isNumber,z=v.isString,t=v.merge,q=v.pick,r=v.splat,h=g.Chart;v=g.Series;var f=g.SVGRenderer,a=v.prototype,l=a.init,e=a.processData,c=A.prototype.tooltipFormatter;g.StockChart=g.stockChart=function(a,c,e){var f=z(a)||a.nodeName,k=arguments[f?1:0],m=k,l=k.series,u=g.getOptions(),v,d=q(k.navigator&&k.navigator.enabled,u.navigator.enabled,!0);k.xAxis=r(k.xAxis||{}).map(function(a,c){return t({minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:\"justify\"},showLastLabel:!0},\nu.xAxis,u.xAxis&&u.xAxis[c],a,{type:\"datetime\",categories:null},d?{startOnTick:!1,endOnTick:!1}:null)});k.yAxis=r(k.yAxis||{}).map(function(a,c){v=q(a.opposite,!0);return t({labels:{y:-2},opposite:v,showLastLabel:!(!a.categories&&\"category\"!==a.type),title:{text:null}},u.yAxis,u.yAxis&&u.yAxis[c],a)});k.series=null;k=t({chart:{panning:{enabled:!0,type:\"x\"},pinchType:\"x\"},navigator:{enabled:d},scrollbar:{enabled:q(u.scrollbar.enabled,!0)},rangeSelector:{enabled:q(u.rangeSelector.enabled,!0)},title:{text:null},\ntooltip:{split:q(u.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},k,{isStock:!0});k.series=m.series=l;return f?new h(a,k,e):new h(k,c)};H(v,\"setOptions\",function(a){var c;this.chart.options.isStock&&(this.is(\"column\")||this.is(\"columnrange\")?c={borderWidth:0,shadow:!1}:this.is(\"scatter\")||this.is(\"sma\")||(c={marker:{enabled:!1,radius:2}}),c&&(a.plotOptions[this.type]=t(a.plotOptions[this.type],c)))});H(k,\"autoLabelAlign\",function(a){var c=this.chart,e=this.options;c=c._labelPanes=c._labelPanes||\n{};var f=this.options.labels;this.chart.options.isStock&&\"yAxis\"===this.coll&&(e=e.top+\",\"+e.height,!c[e]&&f.enabled&&(15===f.x&&(f.x=0),\"undefined\"===typeof f.align&&(f.align=\"right\"),c[e]=this,a.align=\"right\",a.preventDefault()))});H(k,\"destroy\",function(){var a=this.chart,c=this.options&&this.options.top+\",\"+this.options.height;c&&a._labelPanes&&a._labelPanes[c]===this&&delete a._labelPanes[c]});H(k,\"getPlotLinePath\",function(a){function c(a){var b=\"xAxis\"===a?\"yAxis\":\"xAxis\";a=e.options[b];return D(a)?\n[g[b][a]]:z(a)?[g.get(a)]:f.map(function(a){return a[b]})}var e=this,f=this.isLinked&&!this.series?this.linkedParent.series:this.series,g=e.chart,h=g.renderer,k=e.left,m=e.top,l,d,b,n,r=[],t=[],v=a.translatedValue,A=a.value,E=a.force;if(g.options.isStock&&!1!==a.acrossPanes&&\"xAxis\"===e.coll||\"yAxis\"===e.coll){a.preventDefault();t=c(e.coll);var G=e.isXAxis?g.yAxis:g.xAxis;G.forEach(function(a){if(y(a.options.id)?-1===a.options.id.indexOf(\"navigator\"):1){var b=a.isXAxis?\"yAxis\":\"xAxis\";b=y(a.options[b])?\ng[b][a.options[b]]:g[b][0];e===b&&t.push(a)}});var H=t.length?[]:[e.isXAxis?g.yAxis[0]:g.xAxis[0]];t.forEach(function(a){-1!==H.indexOf(a)||J(H,function(b){return b.pos===a.pos&&b.len===a.len})||H.push(a)});var I=q(v,e.translate(A,null,null,a.old));D(I)&&(e.horiz?H.forEach(function(a){var c;d=a.pos;n=d+a.len;l=b=Math.round(I+e.transB);\"pass\"!==E&&(l<k||l>k+e.width)&&(E?l=b=M(l,k,k+e.width):c=!0);c||r.push([\"M\",l,d],[\"L\",b,n])}):H.forEach(function(a){var c;l=a.pos;b=l+a.len;d=n=Math.round(m+e.height-\nI);\"pass\"!==E&&(d<m||d>m+e.height)&&(E?d=n=M(d,m,m+e.height):c=!0);c||r.push([\"M\",l,d],[\"L\",b,n])}));a.path=0<r.length?h.crispPolyLine(r,a.lineWidth||1):null}});f.prototype.crispPolyLine=function(a,c){for(var e=0;e<a.length;e+=2){var f=a[e],g=a[e+1];f[1]===g[1]&&(f[1]=g[1]=Math.round(f[1])-c%2/2);f[2]===g[2]&&(f[2]=g[2]=Math.round(f[2])+c%2/2)}return a};H(k,\"afterHideCrosshair\",function(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())});H(k,\"afterDrawCrosshair\",function(a){var c,e;if(y(this.crosshair.label)&&\nthis.crosshair.label.enabled&&this.cross){var f=this.chart,g=this.logarithmic,h=this.options.crosshair.label,k=this.horiz,m=this.opposite,l=this.left,d=this.top,b=this.crossLabel,n=h.format,r=\"\",t=\"inside\"===this.options.tickPosition,v=!1!==this.crosshair.snap,z=0,A=a.e||this.cross&&this.cross.e,D=a.point;a=this.min;var G=this.max;g&&(a=g.lin2log(a),G=g.lin2log(G));g=k?\"center\":m?\"right\"===this.labelAlign?\"right\":\"left\":\"left\"===this.labelAlign?\"left\":\"center\";b||(b=this.crossLabel=f.renderer.label(null,\nnull,null,h.shape||\"callout\").addClass(\"highcharts-crosshair-label\"+(this.series[0]&&\" highcharts-color-\"+this.series[0].colorIndex)).attr({align:h.align||g,padding:q(h.padding,8),r:q(h.borderRadius,3),zIndex:2}).add(this.labelGroup),f.styledMode||b.attr({fill:h.backgroundColor||this.series[0]&&this.series[0].color||\"#666666\",stroke:h.borderColor||\"\",\"stroke-width\":h.borderWidth||0}).css(I({color:\"#ffffff\",fontWeight:\"normal\",fontSize:\"11px\",textAlign:\"center\"},h.style)));k?(g=v?D.plotX+l:A.chartX,\nd+=m?0:this.height):(g=m?this.width+l:0,d=v?D.plotY+d:A.chartY);n||h.formatter||(this.dateTime&&(r=\"%b %d, %Y\"),n=\"{value\"+(r?\":\"+r:\"\")+\"}\");r=v?D[this.isXAxis?\"x\":\"y\"]:this.toValue(k?A.chartX:A.chartY);b.attr({text:n?E(n,{value:r},f):h.formatter.call(this,r),x:g,y:d,visibility:r<a||r>G?\"hidden\":\"visible\"});h=b.getBBox();if(k){if(t&&!m||!t&&m)d=b.y-h.height}else d=b.y-h.height/2;k?(c=l-h.x,e=l+this.width-h.x):(c=\"left\"===this.labelAlign?l:0,e=\"right\"===this.labelAlign?l+this.width:f.chartWidth);b.translateX<\nc&&(z=c-b.translateX);b.translateX+h.width>=e&&(z=-(b.translateX+h.width-e));b.attr({x:g+z,y:d,anchorX:k?g:this.opposite?0:f.chartWidth,anchorY:k?this.opposite?f.chartHeight:0:d+h.height/2})}});a.init=function(){l.apply(this,arguments);this.setCompare(this.options.compare)};a.setCompare=function(a){this.modifyValue=\"value\"===a||\"percent\"===a?function(c,e){var f=this.compareValue;return\"undefined\"!==typeof c&&\"undefined\"!==typeof f?(c=\"value\"===a?c-f:c/f*100-(100===this.options.compareBase?0:100),\ne&&(e.change=c),c):0}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};a.processData=function(a){var c,f=-1,g=!0===this.options.compareStart?0:1;e.apply(this,arguments);if(this.xAxis&&this.processedYData){var h=this.processedXData;var k=this.processedYData;var m=k.length;this.pointArrayMap&&(f=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||\"y\"));for(c=0;c<m-g;c++){var l=k[c]&&-1<f?k[c][f]:k[c];if(D(l)&&h[c+g]>=this.xAxis.min&&0!==l){this.compareValue=\nl;break}}}};H(v,\"afterGetExtremes\",function(a){a=a.dataExtremes;if(this.modifyValue&&a){var c=[this.modifyValue(a.dataMin),this.modifyValue(a.dataMax)];a.dataMin=N(c);a.dataMax=G(c)}});k.prototype.setCompare=function(a,c){this.isXAxis||(this.series.forEach(function(c){c.setCompare(a)}),q(c,!0)&&this.chart.redraw())};A.prototype.tooltipFormatter=function(a){var e=this.series.chart.numberFormatter;a=a.replace(\"{point.change}\",(0<this.change?\"+\":\"\")+e(this.change,q(this.series.tooltipOptions.changeDecimals,\n2)));return c.apply(this,[a])};H(v,\"render\",function(){var a=this.chart;if(!(a.is3d&&a.is3d()||a.polar)&&this.xAxis&&!this.xAxis.isRadial){var c=this.yAxis.len;if(this.xAxis.axisLine){var e=a.plotTop+a.plotHeight-this.yAxis.pos-this.yAxis.len,f=Math.floor(this.xAxis.axisLine.strokeWidth()/2);0<=e&&(c-=Math.max(f-e,0))}!this.clipBox&&this.animate?(this.clipBox=t(a.clipBox),this.clipBox.width=this.xAxis.len,this.clipBox.height=c):a[this.sharedClipKey]&&(a[this.sharedClipKey].animate({width:this.xAxis.len,\nheight:c}),a[this.sharedClipKey+\"m\"]&&a[this.sharedClipKey+\"m\"].animate({width:this.xAxis.len}))}});H(h,\"update\",function(a){a=a.options;\"scrollbar\"in a&&this.navigator&&(t(!0,this.options.scrollbar,a.scrollbar),this.navigator.update({},!1),delete a.scrollbar)})});P(A,\"masters/modules/stock.src.js\",[],function(){});P(A,\"masters/highstock.src.js\",[A[\"masters/highcharts.src.js\"]],function(k){k.product=\"Highstock\";return k});A[\"masters/highstock.src.js\"]._modules=A;return A[\"masters/highstock.src.js\"]});\n//# sourceMappingURL=highstock.js.map\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// custom-data-chart-wsj-0.8.56.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 218);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 60c224eb61a7a8ee6921","//! moment.js\n//! version : 2.26.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.26.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/moment.js\n// module id = 0\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 1\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks.js\n// module id = 2\n// module chunks = 0","\nexport const MAX_4U_WIDTH = 359;\nexport const MAX_NARROW_WIDTH_PRINT = 114;\n\nexport const LONG = 'long';\nexport const SHORT = 'short';\n\n\nexport const REGEXP_QUARTER = /^([1-4]Q|[1-2]H)?\\s*(FY)?['|\\u2019]?(\\d{2,4})/i;\nexport const REGEXP_Q_ONLY = /^([1-4]Q|[1-2]H)/i;\n\nexport const REGEXP_MDY = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{2,4})\\b/;\nexport const REGEXP_MDY_FRED = /^(\\d{4})-(\\d{2})-(\\d{2})\\b/;\nexport const REGEXP_MD = /^(\\d{1,2})\\/(\\d{1,2})\\b/;\nexport const REGEXP_MY = /^(\\d{1,2})\\/(\\d{3,4})\\b/;\nexport const REGEXP_Y = /^(\\d{4})\\b/;\nexport const REGEXP_TIME = /\\b(\\d{1,2}):(\\d{1,2})(:\\d{1,2})?(\\s?[a|p]\\.+m\\.+?)?(\\s[a-z]{2,3})?$/i;\n\nexport const MONTHS = ['Jan.', 'Feb.', 'March', 'April', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.'];\nexport const MONTHS_SHORT = 'JFMAMJJASOND';\n\nexport const CATEGORY = /\\{category\\}/g;\nexport const SERIES = /\\{series\\}/g;\nexport const VALUE = /\\{value\\}/g;\nexport const POINT = /\\{point\\}/g;\nexport const SYMBOL = /\\{symbol\\}/g;\n\n// Because does not work inside SVG.\nexport const NBSP = '<span style=\"color: rgba(255,255,255,0);\" class=\"space\">.</span>';\n\nexport const APOSTROPHE = '’';\n\nexport const TRANSPARENT = 'rgba(0, 0, 0, 0)';\n\nexport const ANNOTATIONS_SPACE = 4;\nexport const ANNOTATIONS_SPACE_PRINT = 2;\nexport const ANNOTATIONS_LINEHEIGHT = 24;\nexport const ANNOTATIONS_LINEHEIGHT_VIDEO = 42;\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/constants.js","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/slicedToArray.js\n// module id = 4\n// module chunks = 0","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 5\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 6\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 7\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 8\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 9\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 10\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 11\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 12\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_has.js\n// module id = 13\n// module chunks = 0","export function decimals(value, props, skipZero = true) {\n const fd = getMaxDecimalValue(props.forceDecimals);\n const md = getMaxDecimalValue(props.maxDecimals);\n // value = +value;\n value = value.toString();\n if (fd > -1) {\n value = round(value, fd)//value.toFixed(fd);\n if (md > -1 && md < fd) {\n value = round(value, md)//(+value).toFixed(md);\n }\n return value;\n } else if (md > -1) {\n value = round(value, md)//(+value).toFixed(md);\n while (value.substring(value.length - 1) === '0') {\n value = value.substr(0, value.length - 1);\n if (value.substring(value.length - 1) === '.') {\n value = value.substr(0, value.length - 1);\n break;\n }\n }\n }\n return value;\n}\n\nfunction addZeros(num) {\n return new Array(num + 1).join('0')\n}\n\nfunction useFixed(value, places) {\n const rounded = (+value).toFixed(places - 1);\n const decPt = places === 1 ? '.' : '';\n return rounded + decPt + '0';\n}\n\nfunction round(value, places) {\n if (places === 0) return (+value).toFixed(0);\n const decimalIdx = value.indexOf('.');\n if (decimalIdx > -1) {\n const dec = value.slice(decimalIdx + 1);\n const diff = places - dec.length;\n if (diff > 0) {\n return value + addZeros(diff);\n }\n const fixedPlaces = dec.slice(0, places - 1);\n let lastDigit = +dec[places - 1];\n const nextDigit = +dec[places];\n if (nextDigit && nextDigit >= 5) {\n if (lastDigit === 9) {\n return useFixed(value, places);\n } else {\n lastDigit += 1;\n }\n }\n const rounded = fixedPlaces + lastDigit.toString();\n return value.slice(0, decimalIdx + 1) + rounded;\n }\n const zeros = addZeros(places);\n return value + '.' + zeros;\n}\n\nfunction getMaxDecimalValue(value) {\n if (typeof value === 'string' && value) {\n return +value;\n } else if (typeof value === 'number' && !isNaN(value)) {\n return value;\n }\n return -1;\n}\n\nfunction applyMaxDecimals(value, md) {\n const dotIndex = value.indexOf('.');\n if (dotIndex !== -1) {\n const decs = value.length - dotIndex - 1;\n value = (+value).toFixed(md);\n }\n return value;\n}\n\nexport function commas(value, commas = true) {\n value += '';\n if (commas) {\n let dotIndex = value.indexOf('.');\n if (dotIndex === -1) {\n dotIndex = value.length;\n }\n value = [\n value.substr(0, dotIndex).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ','),\n value.substr(dotIndex)\n ].join('');\n }\n return value;\n}\n\n// Returns a useful number that corresponds to a divisor string.\nexport function getDivisor(unit) {\n switch (unit) {\n case 'hundreds':\n return 100;\n case 'thousands':\n return 1000;\n case 'millions':\n return 1000000;\n case 'billions':\n return 1000000000;\n case 'trillions':\n return 1000000000000;\n }\n return 1;\n}\n\nexport function applyFull(value, props, isPie = false, skipZero = true, tooltipOrAnnotation = false, isSpecialHorizontal = false, isStackedPercent = false) {\n if (value === undefined || value === null) return 'n/a';\n const newProps = Object.assign({}, props);\n if (tooltipOrAnnotation) {\n let splitDecimals = value.toString().split('.');\n splitDecimals = splitDecimals.length > 1 ? splitDecimals[1].length : 0;\n if (Number(splitDecimals) >= 3 && newProps.prefix === '') {\n newProps.forceDecimals = '3';\n }\n if (newProps.prefix !== '') {\n if (newProps.prefix !== undefined) newProps.forceDecimals = splitDecimals > 0 ? '2' : '0';\n } else {\n newProps.forceDecimals = splitDecimals;\n }\n newProps.maxDecimals = '3';\n }\n value = decimals(value, newProps);\n value = commas(value, newProps.commas);\n if (isPie) {\n value += '%';\n }\n if (isSpecialHorizontal) {\n return value;\n }\n \n if (value.charAt(0) === '-') {\n value = newProps.prefix !== undefined ? `-${newProps.prefix}${value.substr(1)}` : `${value.substr(1)}` ;\n } else {\n value = newProps.prefix !== undefined ? `${newProps.prefix}${value}` : `${value}`;\n }\n if (!isStackedPercent) value += newProps.suffix;\n return value;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/format.js","export function removeChild(el, parentEl) {\n parentEl = parentEl || el.parentElement;\n if (parentEl) {\n parentEl.removeChild(el);\n }\n}\n\nexport function boldText() {\n let bold = false;\n return function(str, openTag, closeTag) {\n let startIdx = 0;\n let asteriskIdx;\n let newStr = bold ? openTag : '';\n while ((asteriskIdx = str.indexOf('**', startIdx)) !== -1) {\n newStr += str.substring(startIdx, asteriskIdx) + (bold ? closeTag : openTag);\n bold = !bold;\n startIdx = asteriskIdx + 2;\n }\n return newStr + str.substring(startIdx) + (bold ? closeTag : '');\n }\n}\n\nexport function replaceLineBreaks(text) {\n return text.replace(/[\\n|\\r|↵]/g, '<br>');\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/util/element.js","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iterators.js\n// module id = 16\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 17\n// module chunks = 0","const regExpD = /(M|L|(\\-?\\d+\\.?\\d*))/gi\nconst regExpTranslate = /(.*)(translate\\()(\\-?\\d+\\.?\\d*),(\\-?\\d+\\.?\\d*)(.*)/;\nconst regExpScale = /(.*)(scale\\()(\\-?\\d+\\.?\\d*),(\\-?\\d+\\.?\\d*)(.*)/;\n\n\nexport function read(el, prop, value) {\n let match = null;\n switch (prop) {\n case 'd':\n match = (value || getD(el)).match(regExpD);\n return match ? formatDMatch(match) : null;\n case 'translate':\n match = (value || getTransform(el)).match(regExpTranslate);\n return match ? [+match[3], +match[4]] : null;\n case 'scale':\n match = (value || getTransform(el)).match(regExpScale);\n return match ? [+match[3], +match[4]] : null;\n default:\n return el;\n }\n}\n\nexport function write(el, prop) {\n switch (prop) {\n case 'd':\n writeD.apply(this, arguments);\n break;\n case 'translate':\n writeTranslate.apply(this, arguments);\n break;\n case 'scale':\n writeScale.apply(this, arguments);\n break;\n }\n return el;\n}\n\n\nfunction writeD(el) {\n var d = [];\n for (let i = 2; i < arguments.length; i++) {\n d.push((i === 2) ? 'M' : 'L');\n d.push(arguments[i][0]);\n d.push(arguments[i][1]);\n }\n el.setAttribute('d', d.join(' '));\n}\n\nfunction writeTranslate(el) {\n const oldTransform = el.getAttribute('transform');\n let newTransform = null;\n let match = oldTransform ? oldTransform.match(regExpTranslate) : null;\n if (match) {\n newTransform = [\n match[1],\n match[2],\n Math.round(typeof arguments[2] === 'number' ? arguments[2] : +match[3]),\n ',',\n Math.round(typeof arguments[3] === 'number' ? arguments[3] : +match[4]),\n match[5]\n ].join('');\n } else {\n newTransform = [\n oldTransform ? (oldTransform + ' ') : '',\n 'translate(',\n Math.round(typeof arguments[2] === 'number' ? arguments[2] : 0),\n ',',\n Math.round(typeof arguments[3] === 'number' ? arguments[3] : 0),\n ')'\n ].join('');\n }\n setTimeout(function () {\n // Firefox bug(?). This was not setting without this timeout.\n el.setAttribute('transform', newTransform);\n }, 1)\n el.setAttribute('transform', newTransform);\n}\n\nfunction writeScale(el) {\n const oldTransform = el.getAttribute('transform');\n let newTransform = null;\n let match = oldTransform ? oldTransform.match(regExpScale) : null;\n if (match) {\n newTransform = [\n match[1],\n match[2],\n typeof arguments[2] === 'number' ? arguments[2] : match[3],\n ',',\n typeof arguments[3] === 'number' ? arguments[3] : match[4],\n match[5]\n ].join('');\n } else {\n newTransform = [\n oldTransform ? (oldTransform + ' ') : '',\n 'scale(',\n typeof arguments[2] === 'number' ? arguments[2] : 0,\n ',',\n typeof arguments[3] === 'number' ? arguments[3] : 0,\n ')'\n ].join('');\n }\n el.setAttribute('transform', newTransform);\n}\n\nfunction formatDMatch(match) {\n let points = [];\n let pt = [];\n match.forEach(m => {\n if (m !== 'M' && m !== 'L') {\n pt.push(+m);\n if (pt.length >= 2) {\n points.push([pt[0], pt[1]]);\n pt = [];\n }\n }\n });\n return points;\n}\n\nfunction getD(el) {\n return el.getAttribute('d') || '';\n}\n\nfunction getTransform(el) {\n return el.getAttribute('transform') || '';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/transform.js","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 19\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_library.js\n// module id = 20\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 21\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 22\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.string.iterator.js\n// module id = 23\n// module chunks = 0","// Returns true if the chart type has axes in the style of a column chart.\nexport function isVerticalType(type) {\n return type === 'line' ||\n type === 'column' ||\n type === 'area' || \n type === 'scatter';\n}\n\n\n// Convenience utility function for looping through the ticks on an axis,\n// which is necessary a million times in this module.\nexport function forAxisTicks(axis, callback) {\n for (let i = 0; i < axis.tickPositions.length; i++) {\n let tick = axis.ticks[axis.tickPositions[i]];\n if (callback(tick, axis.tickPositions[i], i) === false) {\n break;\n }\n }\n}\n\n\n\n// Like forAxisTicks() but runs in reverse (index high to low).\nexport function forAxisTicksReverse(axis, callback) {\n for (let i = axis.tickPositions.length - 1; i >= 0; i--) {\n let tick = axis.ticks[axis.tickPositions[i]];\n if (callback(tick, axis.tickPositions[i], i) === false) {\n break;\n }\n }\n}\n\nexport function dashStylesHelper(path, size){\n const dashArray = path.getAttribute('stroke-dasharray');\n if (dashArray !== 'none') {\n const [width, gap] = size === 'print-wsj' ? [1.5, 3] : [2.5, 5];\n path.setAttribute('stroke-width', width);\n path.setAttribute('stroke-dasharray', `0.1,${gap}`);\n path.setAttribute('stroke-linecap', 'round');\n }\n}\n\nexport function roundLineJoinsHelper(path, isVideoGroup){\n const linejoin = isVideoGroup ? 'round' : 'bevel';\n path.setAttribute('stroke-linejoin', linejoin);\n if (isVideoGroup) {\n path.setAttribute('stroke-linecap', 'round');\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/util.js","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 25\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 26\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 27\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 28\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-to-string-tag.js\n// module id = 29\n// module chunks = 0","/**\n * Datetime is a module with methods that parse date strings into discrete\n * components (years, months, hours, etc).\n * TODO: Write unit tests.\n */\nimport { stripZeroes, addZeroes } from './zero';\nimport {\n REGEXP_QUARTER,\n REGEXP_Q_ONLY,\n REGEXP_MDY,\n REGEXP_MDY_FRED,\n REGEXP_MD,\n REGEXP_MY,\n REGEXP_Y,\n REGEXP_TIME\n} from './constants';\nimport {\n fullYear,\n abbrYear,\n isSameCentury,\n getQuarter,\n getHalf,\n quarterToMonth,\n quarterToDate,\n genericTimeValue\n} from './dateutils.js';\nimport * as quarterly from './quarterly';\nimport assign from 'lodash.assign';\n\n\n\n// let DEBUG = false;\n\n/**\n * Converts/parses an array of category strings into objects with date and\n * time properties.\n * TODO: explains @params\n * @returns {datetimeTemplate[]}\n */\nfunction parse(categories, options) {\n let dates = [];\n let timezone = null;\n const category0 = categories[0].toString();\n const isQuarterlyString = !!category0.match(REGEXP_Q_ONLY);\n categories.forEach((category, index) => {\n dates[index] = components(category, timezone, options, isQuarterlyString);\n timezone = dates[index].z;\n });\n\n if (options) {\n dates = options.fiscalYears ? quarterly.makeFiscalYears(dates) :\n quarterly.removeFiscalYears(dates)\n dates = options.quarterlyResults ? quarterly.makeQuarterly(dates) :\n quarterly.removeQuarterly(dates);\n }\n\n dates = quarterly.normalize(dates);\n dates = generateValues(dates);\n dates = removeExtraneousComponents(dates);\n return dates;\n}\n\n\n/**\n * Breaks a single category value into an object with date/time components.\n */\nfunction components(value, timezone, options, isQuarterlyString) {\n value += '';\n const result = datetimeTemplate();\n componentsDate(value, result, options, isQuarterlyString);\n componentsTime(value, result, timezone);\n if (!result.hour) {\n const newDate = new Date(result.year, result.month, result.date, 0, 0, 0, 0).getTime();\n result.value = newDate;\n }\n return result;\n}\n\n\n/**\n * @private\n * For use with components().\n */\nfunction componentsDate(value, result, options, isQuarterlyString = false) {\n let match = null;\n if (isQuarterlyString) {\n match = value.match(REGEXP_QUARTER);\n match = match || value.match(REGEXP_Q_ONLY) || [];\n result.quarter = getQuarter(match[1]);\n result.half = getHalf(match[1]);\n result.month = quarterToMonth(match[1]);\n result.date = quarterToDate(result.month);\n result.fiscalYear = !!match[2];\n result.year = match[3] ? +match[3] : undefined;\n\n } else if (match = value.match(REGEXP_MDY)) {\n writeDateMonth(result, match, options.reverseDateMonth);\n result.year = +fullYear(match[3]);\n\n } else if (match = value.match(REGEXP_MDY_FRED)) {\n result.year = +match[1];\n result.month = Math.max(0, +match[2] - 1);\n result.date = +match[3];\n\n } else if (match = value.match(REGEXP_MD)) {\n writeDateMonth(result, match, options.reverseDateMonth);\n\n } else if (match = value.match(REGEXP_MY)) {\n result.month = +match[1] - 1;\n result.year = +fullYear(match[2]);\n\n } else if (match = value.match(REGEXP_Y)) {\n result.year = +fullYear(match[1]);\n }\n}\n\nfunction writeDateMonth(result, match, reverseDateMonth) {\n if (reverseDateMonth) {\n result.month = +match[2] - 1;\n result.date = +match[1];\n } else {\n result.month = +match[1] - 1;\n result.date = +match[2];\n }\n}\n\n\n/**\n * @private\n * For use with components().\n */\nfunction componentsTime(value, result, timezone = undefined) {\n const [date, time, ampm] = value.split(' ');\n if (!time) return result;\n const [hours, minutes, seconds] = time.split(':');\n if (!minutes) return result;\n result.hour = +hours;\n result.minute = +minutes;\n result.second = +seconds;\n result.a = ampm;\n result.hour %= 12;\n if (result.a === 'p') {\n result.hour += 12;\n }\n // const match = value.match(REGEXP_TIME);\n // if (match) {\n // // Capture time values.\n // result.hour = +match[1];\n // result.minute = +match[2];\n // result.second = match[3] ? +match[3].substr(1) : undefined;\n // result.a = match[4] ?\n // match[4].replace(/^\\s+/, '').substr(0, 1).toLowerCase() : undefined;\n // result.z = match[5] ? match[5].substr(1) : timezone;\n // // Convert to 24-hour clock.\n // if (!result.a) {\n // result.a = (result.hour < 12) ? 'a' : 'p';\n // }\n // result.hour %= 12;\n // if (result.a === 'p') {\n // result.hour += 12;\n // }\n // }\n // return result;\n}\n\n\n/**\n * @param {datetimeTemplate[]} dates\n * @param {string} prop\n * @return {boolean} true if all dates have a value for prop.\n */\nfunction allHave(dates, prop) {\n return dates.length !== 0 && !dates.some(date => {\n return (prop === 'fiscalYear' && !date.fiscalYear) ||\n date[prop] === undefined;\n });\n}\n\n\n/**\n * @param {datetimeTemplate[]} dates\n * @returns {boolea} true if all date objects represent valid dates.\n */\nfunction allValidDates(dates) {\n return !dates.some(d => {\n return d.second === undefined &&\n d.minute === undefined &&\n d.hour === undefined &&\n d.date === undefined &&\n d.month === undefined &&\n d.year === undefined;\n });\n}\n\n\n/**\n * @param {datetimeTemplate[]} dates\n * @returns {object} with true/false for each date/time property depending\n * on whether all dates have a value for each property.\n */\nfunction all(dates) {\n let obj = datetimeTemplate();\n Object.keys(obj).forEach(key => {\n obj[key] = allHave(dates, key);\n });\n return obj;\n}\n\n\n/**\n * @param {datetimeTemplate[]} dates\n * @returns {boolean} true if all dates have a value for `quarter` or `half`.\n */\nfunction allQuarterly(dates) {\n return dates.every(item => {\n return item.quarter || item.half;\n });\n}\n\n\n/**\n * @returns {object} with keys for all the properties useful in the charts\n * tool, each set to undefined or false.\n */\nfunction datetimeTemplate() {\n return {\n z: undefined,\n a: undefined,\n second: undefined,\n minute: undefined,\n hour: undefined,\n date: undefined,\n month: undefined,\n year: undefined,\n value: undefined,\n fiscalYear: false,\n quarter: undefined,\n half: undefined\n };\n}\n\n\n/**\n * Remove values that repeat for all dates and therefore are superfluous.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} Copy of dates if altered; original dates if\n * unaltered.\n */\nfunction removeExtraneousComponents(dates) {\n var common = all(dates);\n if (common.month && common.date) {// && !common.year) {\n dates = removeExtraneous(dates, 'date');\n }\n if (common.month && common.year) {\n dates = removeExtraneousMD(dates);\n }\n if (common.hour && common.minute) {\n dates = removeExtraneous(dates, 'minute');\n }\n if (common.minute && common.second) {\n dates = removeExtraneous(dates, 'seconds');\n }\n return dates;\n}\n\n/**\n * Often dates are in the format Jan 1 YYYY, where Jan 1 repeats for *all*\n * rows but the years increment. In this special case, the month and date\n * should be disregarded. Also works if months but no dates are specificed;\n * e.g. 1/2000, 1/2001, etc.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} Copy of dates if altered; original dates if\n * unaltered.\n */\nfunction removeExtraneousMD(dates) {\n let datesCopy = [];\n let month = undefined;\n let date = undefined;\n let year = undefined;\n for (var i = 0; i < dates.length; i++) {\n var d = assign({}, dates[i]);\n if (i === 0) {\n month = d.month;\n date = d.date;\n year = d.year;\n } else if (d.month !== month || d.date !== date) {\n return dates;\n } else if (d.year <= year) {\n return dates;\n }\n year = d.year;\n d.month = d.date = undefined;\n datesCopy[i] = d;\n }\n return datesCopy;\n}\n\n\n/**\n * Removes values (such as seconds, minutes, or dates) when the values are the\n * same for each and every date.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} Copy of dates if altered; original dates if\n * unaltered.\n */\nfunction removeExtraneous(dates, prop) {\n let datesCopy = [];\n let propVal = undefined;\n let value = undefined;\n const genericVal = genericTimeValue(prop);\n for (let i = 0; i < dates.length; i++) {\n var d = assign({}, dates[i]);\n if (i === 0) {\n // Set initial values to compare to.\n propVal = d[prop];\n value = d.value;\n } else if (Math.abs(d.value - value) < genericVal) {\n // Values do not increment.\n return dates;\n } else if (d[prop] !== propVal) {\n // Values are not all the same and therefor not extraneous.\n return dates;\n }\n value = d.value;\n d[prop] = undefined;\n datesCopy[i] = d;\n }\n return datesCopy;\n}\n\n/**\n * Sets a value in milliseconds for each datetime object.\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]}\n */\nfunction generateValues(dates) {\n dates.forEach(date => {\n date.value = getValue(date);\n });\n return dates;\n}\n\n/**\n * @private\n * @param {datetimeTemplate}\n * @returns {number} value in milliseconds\n */\nfunction getValue(date) {\n const d = new Date(new Date().getUTCFullYear(), 0, 1, 0, 0, 0, 0);\n \n if (isDef(date.year) && isDef(date.month) && isDef(date.date)) {\n d.setUTCFullYear(date.year, date.month, date.date);\n } else if (isDef(date.year) && isDef(date.month)) {\n d.setUTCFullYear(date.year, date.month);\n } else if (isDef(date.year)) {\n d.setUTCFullYear(date.year, 0);\n } else if (isDef(date.month) && isDef(date.date)) {\n d.setUTCMonth(date.month, date.date);\n } else if (isDef(date.month)) {\n d.setUTCMonth(date.month);\n } else if (isDef(date.date)) {\n d.setUTCDate(date.date);\n }\n\n if (isDef(date.hour) && isDef(date.minute) && isDef(date.second)) {\n d.setUTCHours(date.hour, date.minute, date.second);\n } else if (isDef(date.hour) && isDef(date.minute)) {\n d.setUTCHours(date.hour, date.minute);\n } else if (isDef(date.hour)) {\n d.setUTCHours(date.hour);\n } else if (isDef(date.minute) && isDef(date.second)) {\n d.setUTCMinutes(date.minute, date.second);\n } else if (isDef(date.minute)) {\n d.setUTCMinutes(date.minute);\n } else if (isDef(date.second)) {\n d.setUTCSeconds(date.second);\n } else {\n d.setUTCHours(0, 0, 0);\n }\n\n return d.valueOf();\n}\n\nfunction isDef(value) {\n return value !== undefined;\n}\n\n/**\n * @private\n * @param {datetimeTemplate[]} dates\n * @returns {datetimeTemplate[]} dates sorted by value\n */\n// function sortDates(dates) {\n// return dates.sort((a, b) => {\n// if (a.value === undefined || b.value === undefined) {\n// return 0;\n// }\n// return a.value - b.value;\n// });\n// }\n\n\n// Not used in this module but is used by the app/client.\n// @returns {boolean} true is @param str is a quartlery date value.\nfunction isQuarterlyString(str) {\n return REGEXP_Q_ONLY.test(str);\n}\n\n\nexport default {\n parse,\n components,\n allHave,\n all,\n allQuarterly,\n stripZeroes,\n addZeroes,\n allValidDates,\n datetimeTemplate,\n isQuarterlyString\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/datetime.js","// Utility to transform '002' to '2'.\nexport function stripZeroes(value) {\n value += '';\n while (value[0] === '0') {\n value = value.substr(1);\n }\n return value;\n}\n\n// Utility to transform '2' to '002'.\nexport function addZeroes(value, len) {\n value += '';\n while (value.length > len) {\n if (value.charAt(0) === '0') {\n value = value.substr(1);\n } else {\n break;\n }\n }\n while (value.length < len) {\n value = `0${value}`;\n }\n return value;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/zero.js","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash.assign/index.js\n// module id = 32\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 33\n// module chunks = 0","// TODO: Check if this can be re-enabled with newer version of Highcharts.\nexport function renderInvalidatedColors(rendered, invalidated) {\n // This is no longer applied because of issues with hover states not being\n // updated. Instead, on color change, entire chart is re-rendered.\n if (__ALL__) {\n // const colors = (function (invalidated) {\n // return invalidated.filter(item => {\n // return item.indexOf('chart/colors') === 0;\n // });\n // })(invalidated);\n //\n // const updatePointColor = function (dataPoint, color) {\n // const el = (dataPoint && dataPoint.graphic) ? dataPoint.graphic.element : null;\n // if (el) {\n // el.setAttribute('fill', color);\n // }\n // };\n //\n // const updateLegendColor = function (render, index, color) {\n // const items = render.container.querySelectorAll('.highcharts-legend-item');\n // if (items && items.length) {\n // const text = items[index].querySelector('text');\n // text.style.color = text.style.fill = color;\n // }\n // }\n //\n // if (colors.length) {\n // colors.forEach(item => {\n // const bits = item.split('/');\n // const series = +bits[2];\n // const point = bits[3];\n // const color = bits[4];\n // const chartSeries = rendered.inner.series[series];\n // let dataPoint = null;\n // let el = null;\n //\n // if (chartSeries) {\n // // if (point.indexOf('#') === 0) {\n // // updateLegendColor(rendered.inner, series, point);\n // // Color for entire series.\n // // chartSeries.color = point;\n // // Setting render to true re-renders *everything* while false makes\n // // the lines and legend vanish (if it supposedly does not re-render,\n // // then like wtf?).\n // // chartSeries.update({ color: point }, true);\n //\n // if (chartSeries.graph) {\n // // Line charts.\n // chartSeries.graph.element.setAttribute('stroke', color);\n // } else {\n // // Bar, column, pie charts.\n // if (point === '*') {\n // chartSeries.data.forEach(dataPoint => {\n // updatePointColor(dataPoint, color);\n // });\n // } else {\n // //originalIndex\n // let ptIndex = +point;\n // if (rendered.inner.options.chart.type === 'pie') {\n // // Find the correct index if the data has been optimized.\n // for (let i = 0; i < chartSeries.data.length; i++) {\n // if (!chartSeries.data[i].hasOwnProperty('originalIndex')) {\n // break;\n // }\n // if (chartSeries.data[i].originalIndex === ptIndex) {\n // ptIndex = i;\n // break;\n // }\n // }\n // }\n // dataPoint = chartSeries ? chartSeries.data[ptIndex] : null;\n // updatePointColor(dataPoint, color);\n // }\n // }\n // }\n // });\n // }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart-util.js","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 35\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 36\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 37\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys.js\n// module id = 38\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-length.js\n// module id = 39\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 40\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared-key.js\n// module id = 41\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 42\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 43\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-object.js\n// module id = 44\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_classof.js\n// module id = 45\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/core.get-iterator-method.js\n// module id = 46\n// module chunks = 0","import moment from 'moment';\n\nexport const MORE_TICKERS = {\n 'Oil Futures': [\n { name: 'Crude Oil', symbol: 'Crude%20Oil%20-%20Electronic' },\n { name: 'Brent Crude', symbol: 'BRENT%20CRUDE' }\n ],\n Currencies: [\n { name: 'USD/EUR', symbol: 'USDEUR' },\n { name: 'USDJPY', symbol: 'USDJPY' },\n { name: 'WSJ DollarIdx', symbol: 'XX:BUXX' }\n ],\n Bonds: [\n { name: '10 Year Yield', symbol: 'BX:TMUBMUSD10Y' }\n ],\n 'Foreign Indexes': [\n { name: 'Stoxx Europe 600', symbol: 'XX:SXXP' },\n { name: 'Nikkei IDX', symbol: 'JP:NIK' },\n { name: 'HANG SENG INDEX', symbol: 'HK:HSI' },\n { name: 'Shanghai Comp', symbol: 'CN:SHCOMP' },\n { name: 'Shenzhen', symbol: 'CN:399106' }\n ]\n};\n\nexport const RANGE = {\n '1D': { value: 'D1', start: 'PT1M', end: 'PT1H', default: 'PT5M' },\n '2D': { value: 'D2', start: 'PT1M', end: 'PT1H', default: 'PT5M' },\n '3D': { value: 'D3', start: 'PT1M', end: 'PT1H', default: 'PT5M' },\n '4D': { value: 'D4', start: 'PT1M', end: 'PT1H', default: 'PT10M' },\n '5D': { value: 'D5', start: 'PT1M', end: 'P1D', default: 'PT10M' },\n '10D': { value: 'D10', start: 'PT1M', end: 'P1D', default: 'PT15M' },\n '1M': { value: 'P29D', start: 'P1D', end: 'P7D', default: 'P1D' },\n '3M': { value: 'P3M', start: 'P1D', end: 'P1M', default: 'P1D' },\n '6M': { value: 'P6M', start: 'P1D', end: 'P3M', default: 'P1D' },\n 'YTD': { value: 'YTD', start: 'P1D', end: 'P1M', default: 'P1D' },\n '1Y': { value: 'P1Y', start: 'P1D', end: 'P3M', default: 'P1D' },\n '2Y': { value: 'P2Y', start: 'P1D', end: 'P1Y', default: 'P7D' },\n '3Y': { value: 'P3Y', start: 'P1D', end: 'P1Y', default: 'P7D' },\n '5Y': { value: 'P5Y', start: 'P1D', end: 'P1Y', default: 'P1M' },\n '10Y': { value: 'P10Y', start: 'P1D', end: 'P1Y', default: 'P3M' },\n 'All': { value: 'all', start: 'P1D', end: 'P1Y', default: 'P3M' },\n 'Custom': { value: 'custom' }\n};\n\nexport const FREQUENCY = [\n { value: 'PT1M', text: '1 min' },\n { value: 'PT5M', text: '5 min' },\n { value: 'PT10M', text: '10 min' },\n { value: 'PT15M', text: '15 min' },\n { value: 'PT1H', text: 'Hourly' },\n { value: 'P1D', text: 'Daily' },\n { value: 'P7D', text: 'Weekly' },\n { value: 'P1M', text: 'Monthly' },\n { value: 'P3M', text: 'Quarterly' },\n { value: 'P1Y', text: 'Yearly' }\n];\n\nconst D = 1000 * 60 * 60 * 24;\nconst M = D * 30;\nconst Y = D * 365;\n\nexport const TIMETYPES = { D, M, Y };\n\nexport const dataDefaults = {\n markdown: '{series}',\n showInLegend: true,\n line: 'solid'\n}\n\nexport const seriesDefaults = {\n firstRowAsNames: false,\n firstColumnAsCategories: false,\n categoriesAreDates: true\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/constants/marketdata.js","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 48\n// module chunks = 0","/**\n * Functions and vars shared between axes-prerender and axes-postrender.\n */\nexport const YEAR_MILLISECONDS = 1000 * 60 * 60 * 24 * 365;\n\nexport function checkArticle(id, product) {\n switch(product) {\n \tcase 'wsj':\n \t return id.slice(-1) === 'u' || id === 'preview' ||\n \t id.toLowerCase().includes('video');\n \tcase 'barrons':\n \t return id.slice(-1) === 'u' || id.includes('inset');\n \tcase 'financialnews':\n \t return id.slice(-1) === 'u' || id.includes('inset') || id === 'preview';\n \tcase 'marketwatch':\n \tcase 'mansionglobal': \t\n \t return id.includes('inset');\n \tdefault:\n \t return true;\n }\n \n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/axes-common.js","import { MAX_4U_WIDTH, MAX_NARROW_WIDTH_PRINT } from './constants';\n/**\n * Processes and build the chart series data.\n */\n\nexport default function processSeries(options) {\n // Prepare series for Highcharts.\n options.originalSeries = options.series.map(currentSeries => currentSeries.data.map(data => Object.assign({}, data)));\n const { liveMarketData } = options;\n let data = options.series.map(item => {\n const { name, symbol, decimals, prefix, suffix, markdown, showInLegend, tickerType } = item;\n let series = {\n zoneAxis: options.type === 'line' ? 'x' : 'y',\n zones: getZones(options, item.data, item.color),\n zIndex: getZIndex(liveMarketData, tickerType),\n data: item.data,\n name,\n symbol,\n decimals,\n prefix,\n suffix,\n step: options.step ? 'left' : null,\n markdown,\n showInLegend,\n animation: false,\n color: item.color || options.defaults.colors[0],\n fillColor: options.type === 'area' && item.color === 'rgba(0, 0, 0, 0)' ? 'rgba(0,0,0,0)' : null,\n dashStyle: options.step || item.dashStyle !== 'dotted' ? 'solid' : 'dot',\n negativeColor: options.colorMode === 'THRESHOLD' && (options.type === 'column' || options.type === 'bar') ?\n item.negativeColor || options.defaults.colors[1]\n :\n null,\n events: {\n legendItemClick: function () { return false; }\n },\n turboThreshold: 0,\n states: {\n hover: {\n enabled: options.type === 'line'\n },\n inactive: {\n enabled: false\n }\n }\n };\n return series;\n });\n if (options.categoriesAreMonthly && options.type === 'column') {\n startOfMonth(data);\n }\n // Customize the data for the particular chart type.\n switch (options.type) {\n case 'pie':\n data = data.slice(0, 1);\n break;\n case 'bar':\n // Save data to do this later, when options.styles.lineHeight is known.\n // return truncateData(options, data);\n options.series = data;//sortData(data, options);\n return options;\n case 'column':\n const forceLegendTop = checkForceLegendTop(options);\n const rightLegend = options.legend.layout === 'right' ||\n options.legend.layout === 'default' && !forceLegendTop;\n const reverseLegend = needsReverseLegend(rightLegend, data);\n data = options.stacking ? reverseDataOrder(data, reverseLegend) : data;\n break;\n case 'line':\n data=handleLineData(data, options);\n break;\n }\n \n options.series = data;//sortData(data, options);\n for (let i = 0; i < options.series.length; i++) {\n let seriesData = options.series[i].data;\n for (let z = 0; z < seriesData.length; z++) {\n seriesData[z].index = z;\n }\n }\n return options;\n}\n\nexport function checkForceLegendTop(options) {\n return options.id === 'video' || options.id ==='twitterVideo' ||\n (options.legend.layout === 'default' &&\n (options.print && options.width <= MAX_NARROW_WIDTH_PRINT ||\n !options.print && options.width <= MAX_4U_WIDTH));\n}\n\nexport function convertToRGBA(color, opacity = 100) {\n let rgb = '';\n for (let i = 1; i <= 5; i += 2) {\n rgb += parseInt(color.slice(i, i + 2), 16) + ',';\n }\n const percent = opacity / 100;\n return `rgba(${rgb}${percent})`;\n}\n\nfunction needsReverseLegend(rightLegend, data) {\n const lastSeriesFirstValue = data[data.length - 1].data[0].y;\n const isNegative = lastSeriesFirstValue < 0;\n return rightLegend && !isNegative;\n}\n\nfunction getZIndex(liveMarketData, tickerType) {\n if (liveMarketData) {\n return tickerType === 'Index' ? 1 : 2;\n }\n}\n\nfunction getZones(options, data, seriesColor) {\n if (options.type === 'line' && options.connectEmptyDataPoints === 'dotted') {\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n let hasData = data[0].y !== null;\n return data.map((point, index) => {\n if (hasData && point.y === null || !hasData && point.y !== null) {\n const [offset, dashStyle, color] = hasData ?\n [1, 'solid', seriesColor]\n :\n noDataOptions(isVideoGroup, seriesColor);\n const value = data[index - offset].x;\n hasData = !hasData;\n return { value, dashStyle, color };\n }\n }).filter(zone => zone);\n }\n}\n\nfunction noDataOptions(isVideoGroup, seriesColor) {\n const attrs = isVideoGroup ?\n ['solid', convertToRGBA(seriesColor, 50)]\n :\n ['dot', seriesColor];\n return [0, ...attrs];\n}\n\n// For line charts, first column should be top layer. This also reverses the\n// legend items, so that must be fixed separately.\nfunction reverseDataOrder(data, reverseLegend = false) {\n const dataLen = data.length;\n data.forEach((item, index) => {\n item.index = dataLen - index - 1;\n item.legendIndex = reverseLegend ? dataLen - index - 1 : index;\n });\n return data;\n}\n\nfunction handleLineData(data, options){\n reverseDataOrder(data);\n if(options.legend.itemsInOrder === undefined){\n //sets default for 'market' charts\n //keeps old econ charts as they were\n if(options.tickers.length) options.legend.itemsInOrder = true;\n //everything else\n else options.legend.itemsInOrder = false;\n}\n//if legend is right aligned, always order items by final value, if itemsInOrder toggled on, switch order for 'top' aligned items\nif(options.legend.layout === 'default' && !checkForceLegendTop(options) || options.legend.layout === 'right'){\n setLengendItemsOrder(data);\n } else if(options.legend.itemsInOrder && (checkForceLegendTop(options) || options.legend.layout === 'top')) {\n setLengendItemsOrder(data);\n }\n return data;\n}\n\nfunction setLengendItemsOrder(series){\n //array sorted by lastValue of each series in descending order [{seriesIdx, lastValue}]\n const sortedArr = series.reduce((accum, s, idx) => {\n //noticed that sometimes last value comes as null\n for(let i = 1; i<s.data.length; i++){\n if(s.data[s.data.length-i].y !== null && s.data[s.data.length-i].y) {\n accum.push({seriesIdx: idx, lastValue:s.data[s.data.length-i].y});\n break;\n }\n }\n return accum;\n }, []).sort((a, b) => b.lastValue - a.lastValue);\n //updates order of legend items\n sortedArr.forEach((s, i) => {\n series[s.seriesIdx].legendIndex = i;\n })\n}\n\nfunction startOfMonth(data) {\n // for column charts with one date per month, shift x value to first of month\n data.forEach(series => {\n series.data.forEach(position => {\n const date = new Date(position.x);\n date.setUTCDate(1);\n position.x = date.valueOf();\n })\n })\n}\n\n\n// For horizontal bar charts, removes data to improve visual appearance.\nexport function truncateData(options, data) {\n // Guestimate the maximum data rows that will fit.\n const maxRows = Math.floor(options.height /\n (parseFloat(options.styles.lineHeight.large) * 1.5));\n // Remove data so rows does not exceed maxRows.\n const overflow = Math.ceil(data[0].data.length / maxRows);\n const originalCategories = options.categories ?\n options.categories.slice() : null;\n let categories = [];\n if (overflow > 1) {\n data.forEach((item, index) => {\n let items = [];\n let n = 0;\n while (n < item.data.length) {\n if (index === 0 && options.categories) {\n categories.push(originalCategories[n]);\n options.categories = categories;\n }\n items.push(item.data[n]);\n n += overflow;\n }\n item.data = items;\n });\n }\n options.series = data;\n return options;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/processSeries.js","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks-ext.js\n// module id = 51\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks-define.js\n// module id = 52\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-pie.js\n// module id = 53\n// module chunks = 0","export function preRender(data, options) {\n const refX = findOffset(options);\n const width = arrowWidth(options.print);\n const midpoint = width / 2;\n const height = getHeight(width, midpoint);\n data.defs.marker0 = {\n tagName: 'marker',\n id: 'custom-arrow',\n refY: midpoint,\n refX,\n children: [{\n tagName: 'path',\n d: `M 0 0 L ${height} ${midpoint} L 0 ${width} Z`\n }]\n };\n}\n\nexport function arrowWidth(print) {\n return print ? 3.5 : 6.5;\n}\n\nexport function findOffset(options) {\n const { print, product } = options;\n const printOffset = print ? 4.25 : 8.5;\n const productOffset = product === 'wsj' ? 4 : 0;\n return printOffset + productOffset;\n}\n\nexport function getHeight(width, midpoint) {\n return Math.sqrt(width * width - midpoint * midpoint);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/defs.js","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_new-promise-capability.js\n// module id = 55\n// module chunks = 0","/*\n Highcharts JS v8.1.0 (2020-05-05)\n\n (c) 2009-2018 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(X,Q){\"object\"===typeof module&&module.exports?(Q[\"default\"]=Q,module.exports=X.document?Q(X):Q):\"function\"===typeof define&&define.amd?define(\"highcharts/highcharts\",function(){return Q(X)}):(X.Highcharts&&X.Highcharts.error(16,!0),X.Highcharts=Q(X))})(\"undefined\"!==typeof window?window:this,function(X){function Q(d,f,E,q){d.hasOwnProperty(f)||(d[f]=q.apply(null,E))}var A={};Q(A,\"parts/Globals.js\",[],function(){var d=\"undefined\"!==typeof X?X:\"undefined\"!==typeof window?window:{},f=d.document,\nE=d.navigator&&d.navigator.userAgent||\"\",q=f&&f.createElementNS&&!!f.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect,M=/(edge|msie|trident)/i.test(E)&&!d.opera,K=-1!==E.indexOf(\"Firefox\"),J=-1!==E.indexOf(\"Chrome\"),L=K&&4>parseInt(E.split(\"Firefox/\")[1],10);return{product:\"Highcharts\",version:\"8.1.0\",deg2rad:2*Math.PI/360,doc:f,hasBidiBug:L,hasTouch:!!d.TouchEvent,isMS:M,isWebKit:-1!==E.indexOf(\"AppleWebKit\"),isFirefox:K,isChrome:J,isSafari:!J&&-1!==E.indexOf(\"Safari\"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(E),\nSVG_NS:\"http://www.w3.org/2000/svg\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:q,win:d,marginNames:[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],noop:function(){},charts:[],dateFormats:{}}});Q(A,\"parts/Utilities.js\",[A[\"parts/Globals.js\"]],function(d){function f(){var a,c=arguments,k={},r=function(a,c){\"object\"!==typeof a&&(a={});Z(c,function(k,e){!E(k,!0)||t(k)||n(k)?a[e]=c[e]:a[e]=r(a[e]||{},k)});return a};!0===c[0]&&(k=c[1],c=Array.prototype.slice.call(c,2));var e=c.length;for(a=0;a<\ne;a++)k=r(k,c[a]);return k}function E(a,c){return!!a&&\"object\"===typeof a&&(!c||!w(a))}function q(a,c,k){var r;D(c)?b(k)?a.setAttribute(c,k):a&&a.getAttribute&&((r=a.getAttribute(c))||\"class\"!==c||(r=a.getAttribute(c+\"Name\"))):Z(c,function(c,k){a.setAttribute(k,c)});return r}function M(){for(var a=arguments,c=a.length,k=0;k<c;k++){var r=a[k];if(\"undefined\"!==typeof r&&null!==r)return r}}function K(a,c){if(!a)return c;var k=a.split(\".\").reverse();if(1===k.length)return c[a];for(a=k.pop();\"undefined\"!==\ntypeof a&&\"undefined\"!==typeof c&&null!==c;)c=c[a],a=k.pop();return c}d.timers=[];var J=d.charts,L=d.doc,x=d.win,F=d.error=function(a,c,k,r){var e=N(a),z=e?\"Highcharts error #\"+a+\": www.highcharts.com/errors/\"+a+\"/\":a.toString(),b=function(){if(c)throw Error(z);x.console&&console.log(z)};if(\"undefined\"!==typeof r){var g=\"\";e&&(z+=\"?\");Z(r,function(a,c){g+=\"\\n\"+c+\": \"+a;e&&(z+=encodeURI(c)+\"=\"+encodeURI(a))});z+=g}k?ba(k,\"displayError\",{code:a,message:z,params:r},b):b()},H=function(){function a(a,\nc,k){this.options=c;this.elem=a;this.prop=k}a.prototype.dSetter=function(){var a=this.paths,c=a&&a[0];a=a&&a[1];var k=[],r=this.now||0;if(1!==r&&c&&a)if(c.length===a.length&&1>r)for(var e=0;e<a.length;e++){for(var z=c[e],b=a[e],g=[],l=0;l<b.length;l++){var h=z[l],P=b[l];g[l]=\"number\"===typeof h&&\"number\"===typeof P&&(\"A\"!==b[0]||4!==l&&5!==l)?h+r*(P-h):P}k.push(g)}else k=a;else k=this.toD||[];this.elem.attr(\"d\",k,void 0,!0)};a.prototype.update=function(){var a=this.elem,c=this.prop,k=this.now,r=this.options.step;\nif(this[c+\"Setter\"])this[c+\"Setter\"]();else a.attr?a.element&&a.attr(c,k,null,!0):a.style[c]=k+this.unit;r&&r.call(a,k,this)};a.prototype.run=function(a,c,k){var r=this,e=r.options,z=function(a){return z.stopped?!1:r.step(a)},b=x.requestAnimationFrame||function(a){setTimeout(a,13)},l=function(){for(var a=0;a<d.timers.length;a++)d.timers[a]()||d.timers.splice(a--,1);d.timers.length&&b(l)};a!==c||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=a,this.end=c,this.unit=k,this.now=\nthis.start,this.pos=0,z.elem=this.elem,z.prop=this.prop,z()&&1===d.timers.push(z)&&b(l)):(delete e.curAnim[this.prop],e.complete&&0===Object.keys(e.curAnim).length&&e.complete.call(this.elem))};a.prototype.step=function(a){var c=+new Date,k=this.options,r=this.elem,e=k.complete,z=k.duration,b=k.curAnim;if(r.attr&&!r.element)a=!1;else if(a||c>=z+this.startTime){this.now=this.end;this.pos=1;this.update();var l=b[this.prop]=!0;Z(b,function(a){!0!==a&&(l=!1)});l&&e&&e.call(r);a=!1}else this.pos=k.easing((c-\nthis.startTime)/z),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0;return a};a.prototype.initPath=function(a,c,k){function r(a,c){for(;a.length<p;){var k=a[0],r=c[p-a.length];r&&\"M\"===k[0]&&(a[0]=\"C\"===r[0]?[\"C\",k[1],k[2],k[1],k[2],k[1],k[2]]:[\"L\",k[1],k[2]]);a.unshift(k);l&&a.push(a[a.length-1])}}function e(a,c){for(;a.length<p;)if(c=a[a.length/g-1].slice(),\"C\"===c[0]&&(c[1]=c[5],c[2]=c[6]),l){var k=a[a.length/g].slice();a.splice(a.length/2,0,c,k)}else a.push(c)}var z=a.startX,\nb=a.endX;c=c&&c.slice();k=k.slice();var l=a.isArea,g=l?2:1;if(!c)return[k,k];if(z&&b){for(a=0;a<z.length;a++)if(z[a]===b[0]){var h=a;break}else if(z[0]===b[b.length-z.length+a]){h=a;var P=!0;break}else if(z[z.length-1]===b[b.length-z.length+a]){h=z.length-a;break}\"undefined\"===typeof h&&(c=[])}if(c.length&&N(h)){var p=k.length+h*g;P?(r(c,k),e(k,c)):(r(k,c),e(c,k))}return[c,k]};a.prototype.fillSetter=function(){a.prototype.strokeSetter.apply(this,arguments)};a.prototype.strokeSetter=function(){this.elem.attr(this.prop,\nd.color(this.start).tweenTo(d.color(this.end),this.pos),null,!0)};return a}();d.Fx=H;d.merge=f;var C=d.pInt=function(a,c){return parseInt(a,c||10)},D=d.isString=function(a){return\"string\"===typeof a},w=d.isArray=function(a){a=Object.prototype.toString.call(a);return\"[object Array]\"===a||\"[object Array Iterator]\"===a};d.isObject=E;var n=d.isDOMElement=function(a){return E(a)&&\"number\"===typeof a.nodeType},t=d.isClass=function(a){var c=a&&a.constructor;return!(!E(a,!0)||n(a)||!c||!c.name||\"Object\"===\nc.name)},N=d.isNumber=function(a){return\"number\"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a},m=d.erase=function(a,c){for(var k=a.length;k--;)if(a[k]===c){a.splice(k,1);break}},b=d.defined=function(a){return\"undefined\"!==typeof a&&null!==a};d.attr=q;var g=d.splat=function(a){return w(a)?a:[a]},v=d.syncTimeout=function(a,c,k){if(0<c)return setTimeout(a,c,k);a.call(0,k);return-1},h=d.clearTimeout=function(a){b(a)&&clearTimeout(a)},e=d.extend=function(a,c){var k;a||(a={});for(k in c)a[k]=c[k];return a};\nd.pick=M;var p=d.css=function(a,c){d.isMS&&!d.svg&&c&&\"undefined\"!==typeof c.opacity&&(c.filter=\"alpha(opacity=\"+100*c.opacity+\")\");e(a.style,c)},l=d.createElement=function(a,c,k,r,z){a=L.createElement(a);c&&e(a,c);z&&p(a,{padding:\"0\",border:\"none\",margin:\"0\"});k&&p(a,k);r&&r.appendChild(a);return a},I=d.extendClass=function(a,c){var k=function(){};k.prototype=new a;e(k.prototype,c);return k},u=d.pad=function(a,c,k){return Array((c||2)+1-String(a).replace(\"-\",\"\").length).join(k||\"0\")+a},y=d.relativeLength=\nfunction(a,c,k){return/%$/.test(a)?c*parseFloat(a)/100+(k||0):parseFloat(a)},G=d.wrap=function(a,c,k){var r=a[c];a[c]=function(){var a=Array.prototype.slice.call(arguments),c=arguments,e=this;e.proceed=function(){r.apply(e,arguments.length?arguments:c)};a.unshift(r);a=k.apply(this,a);e.proceed=null;return a}},S=d.format=function(a,c,k){var r=\"{\",e=!1,z=[],b=/f$/,l=/\\.([0-9])/,g=d.defaultOptions.lang,h=k&&k.time||d.time;for(k=k&&k.numberFormatter||T;a;){var P=a.indexOf(r);if(-1===P)break;var p=a.slice(0,\nP);if(e){p=p.split(\":\");r=K(p.shift()||\"\",c);if(p.length&&\"number\"===typeof r)if(p=p.join(\":\"),b.test(p)){var u=parseInt((p.match(l)||[\"\",\"-1\"])[1],10);null!==r&&(r=k(r,u,g.decimalPoint,-1<p.indexOf(\",\")?g.thousandsSep:\"\"))}else r=h.dateFormat(p,r);z.push(r)}else z.push(p);a=a.slice(P+1);r=(e=!e)?\"}\":\"{\"}z.push(a);return z.join(\"\")},R=d.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))},B=d.normalizeTickInterval=function(a,c,k,r,e){var z=a;k=M(k,1);var b=a/k;c||(c=e?[1,\n1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===r&&(1===k?c=c.filter(function(a){return 0===a%1}):.1>=k&&(c=[1/k])));for(r=0;r<c.length&&!(z=c[r],e&&z*k>=a||!e&&b<=(c[r]+(c[r+1]||c[r]))/2);r++);return z=P(z*k,-Math.round(Math.log(.001)/Math.LN10))},c=d.stableSort=function(a,c){var k=a.length,r,e;for(e=0;e<k;e++)a[e].safeI=e;a.sort(function(a,k){r=c(a,k);return 0===r?a.safeI-k.safeI:r});for(e=0;e<k;e++)delete a[e].safeI},a=d.arrayMin=function(a){for(var c=a.length,k=a[0];c--;)a[c]<k&&(k=a[c]);return k},\nk=d.arrayMax=function(a){for(var c=a.length,k=a[0];c--;)a[c]>k&&(k=a[c]);return k},r=d.destroyObjectProperties=function(a,c){Z(a,function(k,r){k&&k!==c&&k.destroy&&k.destroy();delete a[r]})},z=d.discardElement=function(a){var c=d.garbageBin;c||(c=l(\"div\"));a&&c.appendChild(a);c.innerHTML=\"\"},P=d.correctFloat=function(a,c){return parseFloat(a.toPrecision(c||14))},U=d.setAnimation=function(a,c){c.renderer.globalAnimation=M(a,c.options.chart.animation,!0)},W=d.animObject=function(a){return E(a)?f(a):\n{duration:a?500:0}},Y=d.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},T=d.numberFormat=function(a,c,k,r){a=+a||0;c=+c;var e=d.defaultOptions.lang,z=(a.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,b=a.toString().split(\"e\");if(-1===c)c=Math.min(z,20);else if(!N(c))c=2;else if(c&&b[1]&&0>b[1]){var l=c+ +b[1];0<=l?(b[0]=(+b[0]).toExponential(l).split(\"e\")[0],c=l):(b[0]=b[0].split(\".\")[0]||0,a=20>c?(b[0]*Math.pow(10,b[1])).toFixed(c):\n0,b[1]=0)}var g=(Math.abs(b[1]?b[0]:a)+Math.pow(10,-Math.max(c,z)-1)).toFixed(c);z=String(C(g));l=3<z.length?z.length%3:0;k=M(k,e.decimalPoint);r=M(r,e.thousandsSep);a=(0>a?\"-\":\"\")+(l?z.substr(0,l)+r:\"\");a+=z.substr(l).replace(/(\\d{3})(?=\\d)/g,\"$1\"+r);c&&(a+=k+g.slice(-c));b[1]&&0!==+a&&(a+=\"e\"+b[1]);return a};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};var ca=d.getStyle=function(a,c,k){if(\"width\"===c)return c=Math.min(a.offsetWidth,a.scrollWidth),k=a.getBoundingClientRect&&\na.getBoundingClientRect().width,k<c&&k>=c-1&&(c=Math.floor(k)),Math.max(0,c-d.getStyle(a,\"padding-left\")-d.getStyle(a,\"padding-right\"));if(\"height\"===c)return Math.max(0,Math.min(a.offsetHeight,a.scrollHeight)-d.getStyle(a,\"padding-top\")-d.getStyle(a,\"padding-bottom\"));x.getComputedStyle||F(27,!0);if(a=x.getComputedStyle(a,void 0))a=a.getPropertyValue(c),M(k,\"opacity\"!==c)&&(a=C(a));return a},aa=d.inArray=function(a,c,k){return c.indexOf(a,k)},O=d.find=Array.prototype.find?function(a,c){return a.find(c)}:\nfunction(a,c){var k,r=a.length;for(k=0;k<r;k++)if(c(a[k],k))return a[k]};d.keys=Object.keys;var V=d.offset=function(a){var c=L.documentElement;a=a.parentElement||a.parentNode?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(x.pageYOffset||c.scrollTop)-(c.clientTop||0),left:a.left+(x.pageXOffset||c.scrollLeft)-(c.clientLeft||0)}},da=d.stop=function(a,c){for(var k=d.timers.length;k--;)d.timers[k].elem!==a||c&&c!==d.timers[k].prop||(d.timers[k].stopped=!0)},Z=d.objectEach=function(a,c,k){for(var r in a)Object.hasOwnProperty.call(a,\nr)&&c.call(k||a[r],a[r],r,a)};Z({map:\"map\",each:\"forEach\",grep:\"filter\",reduce:\"reduce\",some:\"some\"},function(a,c){d[c]=function(c){return Array.prototype[a].apply(c,[].slice.call(arguments,1))}});var ha=d.addEvent=function(a,c,k,r){void 0===r&&(r={});var e=a.addEventListener||d.addEventListenerPolyfill;var z=\"function\"===typeof a&&a.prototype?a.prototype.protoEvents=a.prototype.protoEvents||{}:a.hcEvents=a.hcEvents||{};d.Point&&a instanceof d.Point&&a.series&&a.series.chart&&(a.series.chart.runTrackerClick=\n!0);e&&e.call(a,c,k,!1);z[c]||(z[c]=[]);z[c].push({fn:k,order:\"number\"===typeof r.order?r.order:Infinity});z[c].sort(function(a,c){return a.order-c.order});return function(){ea(a,c,k)}},ea=d.removeEvent=function(a,c,k){function r(c,k){var r=a.removeEventListener||d.removeEventListenerPolyfill;r&&r.call(a,c,k,!1)}function e(k){var e;if(a.nodeName){if(c){var z={};z[c]=!0}else z=k;Z(z,function(a,c){if(k[c])for(e=k[c].length;e--;)r(c,k[c][e].fn)})}}var z;[\"protoEvents\",\"hcEvents\"].forEach(function(b,\nl){var g=(l=l?a:a.prototype)&&l[b];g&&(c?(z=g[c]||[],k?(g[c]=z.filter(function(a){return k!==a.fn}),r(c,k)):(e(g),g[c]=[])):(e(g),l[b]={}))})},ba=d.fireEvent=function(a,c,k,r){var z;k=k||{};if(L.createEvent&&(a.dispatchEvent||a.fireEvent)){var b=L.createEvent(\"Events\");b.initEvent(c,!0,!0);e(b,k);a.dispatchEvent?a.dispatchEvent(b):a.fireEvent(c,b)}else k.target||e(k,{preventDefault:function(){k.defaultPrevented=!0},target:a,type:c}),function(c,r){void 0===c&&(c=[]);void 0===r&&(r=[]);var e=0,b=0,\nl=c.length+r.length;for(z=0;z<l;z++)!1===(c[e]?r[b]?c[e].order<=r[b].order?c[e++]:r[b++]:c[e++]:r[b++]).fn.call(a,k)&&k.preventDefault()}(a.protoEvents&&a.protoEvents[c],a.hcEvents&&a.hcEvents[c]);r&&!k.defaultPrevented&&r.call(a,k)},A=d.animate=function(a,c,k){var r,e=\"\",z,b;if(!E(k)){var l=arguments;k={duration:l[2],easing:l[3],complete:l[4]}}N(k.duration)||(k.duration=400);k.easing=\"function\"===typeof k.easing?k.easing:Math[k.easing]||Math.easeInOutSine;k.curAnim=f(c);Z(c,function(l,g){da(a,g);\nb=new H(a,k,g);z=null;\"d\"===g&&w(c.d)?(b.paths=b.initPath(a,a.pathArray,c.d),b.toD=c.d,r=0,z=1):a.attr?r=a.attr(g):(r=parseFloat(ca(a,g))||0,\"opacity\"!==g&&(e=\"px\"));z||(z=l);z&&z.match&&z.match(\"px\")&&(z=z.replace(/px/g,\"\"));b.run(r,z,e)})},ia=d.seriesType=function(a,c,k,r,e){var z=d.getOptions(),b=d.seriesTypes;z.plotOptions[a]=f(z.plotOptions[c],k);b[a]=I(b[c]||function(){},r);b[a].prototype.type=a;e&&(b[a].prototype.pointClass=I(d.Point,e));return b[a]},fa=d.uniqueKey=function(){var a=Math.random().toString(36).substring(2,\n9),c=0;return function(){return\"highcharts-\"+a+\"-\"+c++}}(),ja=d.isFunction=function(a){return\"function\"===typeof a};x.jQuery&&(x.jQuery.fn.highcharts=function(){var a=[].slice.call(arguments);if(this[0])return a[0]?(new (d[D(a[0])?a.shift():\"Chart\"])(this[0],a[0],a[1]),this):J[q(this[0],\"data-highcharts-chart\")]});return{Fx:d.Fx,addEvent:ha,animate:A,animObject:W,arrayMax:k,arrayMin:a,attr:q,clamp:function(a,c,k){return a>c?a<k?a:k:c},clearTimeout:h,correctFloat:P,createElement:l,css:p,defined:b,\ndestroyObjectProperties:r,discardElement:z,erase:m,error:F,extend:e,extendClass:I,find:O,fireEvent:ba,format:S,getMagnitude:R,getNestedProperty:K,getStyle:ca,inArray:aa,isArray:w,isClass:t,isDOMElement:n,isFunction:ja,isNumber:N,isObject:E,isString:D,merge:f,normalizeTickInterval:B,numberFormat:T,objectEach:Z,offset:V,pad:u,pick:M,pInt:C,relativeLength:y,removeEvent:ea,seriesType:ia,setAnimation:U,splat:g,stableSort:c,stop:da,syncTimeout:v,timeUnits:Y,uniqueKey:fa,wrap:G}});Q(A,\"parts/Color.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Utilities.js\"]],function(d,f){var E=f.isNumber,q=f.merge,M=f.pInt;f=function(){function d(f){this.parsers=[{regex:/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,parse:function(d){return[M(d[1]),M(d[2]),M(d[3]),parseFloat(d[4],10)]}},{regex:/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,parse:function(d){return[M(d[1]),M(d[2]),M(d[3]),1]}}];this.rgba=[];if(!(this instanceof d))return new d(f);this.init(f)}d.parse=function(f){return new d(f)};\nd.prototype.init=function(f){var q,x;if((this.input=f=d.names[f&&f.toLowerCase?f.toLowerCase():\"\"]||f)&&f.stops)this.stops=f.stops.map(function(f){return new d(f[1])});else{if(f&&f.charAt&&\"#\"===f.charAt()){var F=f.length;f=parseInt(f.substr(1),16);7===F?q=[(f&16711680)>>16,(f&65280)>>8,f&255,1]:4===F&&(q=[(f&3840)>>4|(f&3840)>>8,(f&240)>>4|f&240,(f&15)<<4|f&15,1])}if(!q)for(x=this.parsers.length;x--&&!q;){var H=this.parsers[x];(F=H.regex.exec(f))&&(q=H.parse(F))}}this.rgba=q||[]};d.prototype.get=\nfunction(d){var f=this.input,x=this.rgba;if(\"undefined\"!==typeof this.stops){var F=q(f);F.stops=[].concat(F.stops);this.stops.forEach(function(f,x){F.stops[x]=[F.stops[x][0],f.get(d)]})}else F=x&&E(x[0])?\"rgb\"===d||!d&&1===x[3]?\"rgb(\"+x[0]+\",\"+x[1]+\",\"+x[2]+\")\":\"a\"===d?x[3]:\"rgba(\"+x.join(\",\")+\")\":f;return F};d.prototype.brighten=function(d){var f,x=this.rgba;if(this.stops)this.stops.forEach(function(f){f.brighten(d)});else if(E(d)&&0!==d)for(f=0;3>f;f++)x[f]+=M(255*d),0>x[f]&&(x[f]=0),255<x[f]&&\n(x[f]=255);return this};d.prototype.setOpacity=function(d){this.rgba[3]=d;return this};d.prototype.tweenTo=function(d,f){var x=this.rgba,q=d.rgba;q.length&&x&&x.length?(d=1!==q[3]||1!==x[3],f=(d?\"rgba(\":\"rgb(\")+Math.round(q[0]+(x[0]-q[0])*(1-f))+\",\"+Math.round(q[1]+(x[1]-q[1])*(1-f))+\",\"+Math.round(q[2]+(x[2]-q[2])*(1-f))+(d?\",\"+(q[3]+(x[3]-q[3])*(1-f)):\"\")+\")\"):f=d.input||\"none\";return f};d.names={white:\"#ffffff\",black:\"#000000\"};return d}();d.Color=f;d.color=f.parse;return d.Color});Q(A,\"parts/SVGElement.js\",\n[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f,E){var q=f.deg2rad,M=f.doc,K=f.hasTouch,J=f.isFirefox,L=f.noop,x=f.svg,F=f.SVG_NS,H=f.win,C=E.animate,D=E.animObject,w=E.attr,n=E.createElement,t=E.css,N=E.defined,m=E.erase,b=E.extend,g=E.fireEvent,v=E.inArray,h=E.isArray,e=E.isFunction,p=E.isNumber,l=E.isString,I=E.merge,u=E.objectEach,y=E.pick,G=E.pInt,S=E.stop,R=E.uniqueKey;E=function(){function B(){this.height=this.element=void 0;this.opacity=1;this.renderer=void 0;\nthis.SVG_NS=F;this.symbolCustomAttribs=\"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");this.textProps=\"color cursor direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");this.width=void 0}B.prototype._defaultGetter=function(c){c=y(this[c+\"Value\"],this[c],this.element?this.element.getAttribute(c):null,0);/^[\\-0-9\\.]+$/.test(c)&&(c=parseFloat(c));return c};B.prototype._defaultSetter=function(c,a,k){k.setAttribute(a,\nc)};B.prototype.add=function(c){var a=this.renderer,k=this.element;c&&(this.parentGroup=c);this.parentInverted=c&&c.inverted;\"undefined\"!==typeof this.textStr&&a.buildText(this);this.added=!0;if(!c||c.handleZ||this.zIndex)var r=this.zIndexSetter();r||(c?c.element:a.box).appendChild(k);if(this.onAdd)this.onAdd();return this};B.prototype.addClass=function(c,a){var k=a?\"\":this.attr(\"class\")||\"\";c=(c||\"\").split(/ /g).reduce(function(a,c){-1===k.indexOf(c)&&a.push(c);return a},k?[k]:[]).join(\" \");c!==\nk&&this.attr(\"class\",c);return this};B.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};B.prototype.align=function(c,a,k){var r,e={};var b=this.renderer;var g=b.alignedObjects;var h,p;if(c){if(this.alignOptions=c,this.alignByTranslate=a,!k||l(k))this.alignTo=r=k||\"renderer\",m(g,this),g.push(this),k=void 0}else c=this.alignOptions,a=this.alignByTranslate,r=this.alignTo;k=y(k,b[r],b);r=c.align;b=c.verticalAlign;g=(k.x||0)+(c.x||0);var u=(k.y||0)+(c.y||\n0);\"right\"===r?h=1:\"center\"===r&&(h=2);h&&(g+=(k.width-(c.width||0))/h);e[a?\"translateX\":\"x\"]=Math.round(g);\"bottom\"===b?p=1:\"middle\"===b&&(p=2);p&&(u+=(k.height-(c.height||0))/p);e[a?\"translateY\":\"y\"]=Math.round(u);this[this.placed?\"animate\":\"attr\"](e);this.placed=!0;this.alignAttr=e;return this};B.prototype.alignSetter=function(c){var a={left:\"start\",center:\"middle\",right:\"end\"};a[c]&&(this.alignValue=c,this.element.setAttribute(\"text-anchor\",a[c]))};B.prototype.animate=function(c,a,k){var r=D(y(a,\nthis.renderer.globalAnimation,!0));y(M.hidden,M.msHidden,M.webkitHidden,!1)&&(r.duration=0);0!==r.duration?(k&&(r.complete=k),C(this,c,r)):(this.attr(c,void 0,k),u(c,function(a,c){r.step&&r.step.call(this,a,{prop:c,pos:1})},this));return this};B.prototype.applyTextOutline=function(c){var a=this.element,k;-1!==c.indexOf(\"contrast\")&&(c=c.replace(/contrast/g,this.renderer.getContrast(a.style.fill)));c=c.split(\" \");var r=c[c.length-1];if((k=c[0])&&\"none\"!==k&&f.svg){this.fakeTS=!0;c=[].slice.call(a.getElementsByTagName(\"tspan\"));\nthis.ySetter=this.xSetter;k=k.replace(/(^[\\d\\.]+)(.*?)$/g,function(a,c,k){return 2*c+k});this.removeTextOutline(c);var e=a.textContent?/^[\\u0591-\\u065F\\u066A-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]/.test(a.textContent):!1;var b=a.firstChild;c.forEach(function(c,z){0===z&&(c.setAttribute(\"x\",a.getAttribute(\"x\")),z=a.getAttribute(\"y\"),c.setAttribute(\"y\",z||0),null===z&&a.setAttribute(\"y\",0));z=c.cloneNode(!0);w(e&&!J?c:z,{\"class\":\"highcharts-text-outline\",fill:r,stroke:r,\"stroke-width\":k,\"stroke-linejoin\":\"round\"});\na.insertBefore(z,b)});e&&J&&c[0]&&(c=c[0].cloneNode(!0),c.textContent=\" \",a.insertBefore(c,b))}};B.prototype.attr=function(c,a,k,r){var e=this.element,b,l=this,g,h,p=this.symbolCustomAttribs;if(\"string\"===typeof c&&\"undefined\"!==typeof a){var m=c;c={};c[m]=a}\"string\"===typeof c?l=(this[c+\"Getter\"]||this._defaultGetter).call(this,c,e):(u(c,function(a,k){g=!1;r||S(this,k);this.symbolName&&-1!==v(k,p)&&(b||(this.symbolAttr(c),b=!0),g=!0);!this.rotation||\"x\"!==k&&\"y\"!==k||(this.doTransform=!0);g||(h=\nthis[k+\"Setter\"]||this._defaultSetter,h.call(this,a,k,e),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(k)&&this.updateShadows(k,a,h))},this),this.afterSetters());k&&k.call(this);return l};B.prototype.clip=function(c){return this.attr(\"clip-path\",c?\"url(\"+this.renderer.url+\"#\"+c.id+\")\":\"none\")};B.prototype.crisp=function(c,a){a=a||c.strokeWidth||0;var k=Math.round(a)%2/2;c.x=Math.floor(c.x||this.x||0)+k;c.y=Math.floor(c.y||this.y||0)+k;c.width=Math.floor((c.width||\nthis.width||0)-2*k);c.height=Math.floor((c.height||this.height||0)-2*k);N(c.strokeWidth)&&(c.strokeWidth=a);return c};B.prototype.complexColor=function(c,a,k){var r=this.renderer,e,b,l,p,m,v,y,n,O,V,t=[],G;g(this.renderer,\"complexColor\",{args:arguments},function(){c.radialGradient?b=\"radialGradient\":c.linearGradient&&(b=\"linearGradient\");if(b){l=c[b];m=r.gradients;v=c.stops;O=k.radialReference;h(l)&&(c[b]=l={x1:l[0],y1:l[1],x2:l[2],y2:l[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===b&&O&&\n!N(l.gradientUnits)&&(p=l,l=I(l,r.getRadialAttr(O,p),{gradientUnits:\"userSpaceOnUse\"}));u(l,function(a,c){\"id\"!==c&&t.push(c,a)});u(v,function(a){t.push(a)});t=t.join(\",\");if(m[t])V=m[t].attr(\"id\");else{l.id=V=R();var z=m[t]=r.createElement(b).attr(l).add(r.defs);z.radAttr=p;z.stops=[];v.forEach(function(a){0===a[1].indexOf(\"rgba\")?(e=d.parse(a[1]),y=e.get(\"rgb\"),n=e.get(\"a\")):(y=a[1],n=1);a=r.createElement(\"stop\").attr({offset:a[0],\"stop-color\":y,\"stop-opacity\":n}).add(z);z.stops.push(a)})}G=\"url(\"+\nr.url+\"#\"+V+\")\";k.setAttribute(a,G);k.gradient=t;c.toString=function(){return G}}})};B.prototype.css=function(c){var a=this.styles,k={},r=this.element,e=\"\",l=!a,g=[\"textOutline\",\"textOverflow\",\"width\"];c&&c.color&&(c.fill=c.color);a&&u(c,function(c,r){a&&a[r]!==c&&(k[r]=c,l=!0)});if(l){a&&(c=b(a,k));if(c)if(null===c.width||\"auto\"===c.width)delete this.textWidth;else if(\"text\"===r.nodeName.toLowerCase()&&c.width)var h=this.textWidth=G(c.width);this.styles=c;h&&!x&&this.renderer.forExport&&delete c.width;\nif(r.namespaceURI===this.SVG_NS){var p=function(a,c){return\"-\"+c.toLowerCase()};u(c,function(a,c){-1===g.indexOf(c)&&(e+=c.replace(/([A-Z])/g,p)+\":\"+a+\";\")});e&&w(r,\"style\",e)}else t(r,c);this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),c&&c.textOutline&&this.applyTextOutline(c.textOutline))}return this};B.prototype.dashstyleSetter=function(c){var a=this[\"stroke-width\"];\"inherit\"===a&&(a=1);if(c=c&&c.toLowerCase()){var k=c.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\n\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(c=k.length;c--;)k[c]=\"\"+G(k[c])*y(a,NaN);c=k.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",c)}};B.prototype.destroy=function(){var c=this,a=c.element||{},k=c.renderer,r=k.isSVG&&\"SPAN\"===a.nodeName&&c.parentGroup||void 0,e=a.ownerSVGElement;a.onclick=a.onmouseout=a.onmouseover=a.onmousemove=a.point=\nnull;S(c);if(c.clipPath&&e){var b=c.clipPath;[].forEach.call(e.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(a){-1<a.getAttribute(\"clip-path\").indexOf(b.element.id)&&a.removeAttribute(\"clip-path\")});c.clipPath=b.destroy()}if(c.stops){for(e=0;e<c.stops.length;e++)c.stops[e].destroy();c.stops.length=0;c.stops=void 0}c.safeRemoveChild(a);for(k.styledMode||c.destroyShadows();r&&r.div&&0===r.div.childNodes.length;)a=r.parentGroup,c.safeRemoveChild(r.div),delete r.div,r=a;c.alignTo&&m(k.alignedObjects,\nc);u(c,function(a,k){c[k]&&c[k].parentGroup===c&&c[k].destroy&&c[k].destroy();delete c[k]})};B.prototype.destroyShadows=function(){(this.shadows||[]).forEach(function(c){this.safeRemoveChild(c)},this);this.shadows=void 0};B.prototype.destroyTextPath=function(c,a){var k=c.getElementsByTagName(\"text\")[0];if(k){if(k.removeAttribute(\"dx\"),k.removeAttribute(\"dy\"),a.element.setAttribute(\"id\",\"\"),this.textPathWrapper&&k.getElementsByTagName(\"textPath\").length){for(c=this.textPathWrapper.element.childNodes;c.length;)k.appendChild(c[0]);\nk.removeChild(this.textPathWrapper.element)}}else if(c.getAttribute(\"dx\")||c.getAttribute(\"dy\"))c.removeAttribute(\"dx\"),c.removeAttribute(\"dy\");this.textPathWrapper&&(this.textPathWrapper=this.textPathWrapper.destroy())};B.prototype.dSetter=function(c,a,k){h(c)&&(\"string\"===typeof c[0]&&(c=this.renderer.pathToSegments(c)),this.pathArray=c,c=c.reduce(function(a,c,k){return c&&c.join?(k?a+\" \":\"\")+c.join(\" \"):(c||\"\").toString()},\"\"));/(NaN| {2}|^$)/.test(c)&&(c=\"M 0 0\");this[a]!==c&&(k.setAttribute(a,\nc),this[a]=c)};B.prototype.fadeOut=function(c){var a=this;a.animate({opacity:0},{duration:y(c,150),complete:function(){a.attr({y:-9999}).hide()}})};B.prototype.fillSetter=function(c,a,k){\"string\"===typeof c?k.setAttribute(a,c):c&&this.complexColor(c,a,k)};B.prototype.getBBox=function(c,a){var k,r=this.renderer,z=this.element,l=this.styles,g=this.textStr,h=r.cache,p=r.cacheKeys,u=z.namespaceURI===this.SVG_NS;a=y(a,this.rotation,0);var m=r.styledMode?z&&B.prototype.getStyle.call(z,\"font-size\"):l&&l.fontSize;\nif(N(g)){var v=g.toString();-1===v.indexOf(\"<\")&&(v=v.replace(/[0-9]/g,\"0\"));v+=[\"\",a,m,this.textWidth,l&&l.textOverflow,l&&l.fontWeight].join()}v&&!c&&(k=h[v]);if(!k){if(u||r.forExport){try{var O=this.fakeTS&&function(a){[].forEach.call(z.querySelectorAll(\".highcharts-text-outline\"),function(c){c.style.display=a})};e(O)&&O(\"none\");k=z.getBBox?b({},z.getBBox()):{width:z.offsetWidth,height:z.offsetHeight};e(O)&&O(\"\")}catch(V){\"\"}if(!k||0>k.width)k={width:0,height:0}}else k=this.htmlGetBBox();r.isSVG&&\n(c=k.width,r=k.height,u&&(k.height=r={\"11px,17\":14,\"13px,20\":16}[l&&l.fontSize+\",\"+Math.round(r)]||r),a&&(l=a*q,k.width=Math.abs(r*Math.sin(l))+Math.abs(c*Math.cos(l)),k.height=Math.abs(r*Math.cos(l))+Math.abs(c*Math.sin(l))));if(v&&0<k.height){for(;250<p.length;)delete h[p.shift()];h[v]||p.push(v);h[v]=k}}return k};B.prototype.getStyle=function(c){return H.getComputedStyle(this.element||this,\"\").getPropertyValue(c)};B.prototype.hasClass=function(c){return-1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(c)};\nB.prototype.hide=function(c){c?this.attr({y:-9999}):this.attr({visibility:\"hidden\"});return this};B.prototype.htmlGetBBox=function(){return{height:0,width:0,x:0,y:0}};B.prototype.init=function(c,a){this.element=\"span\"===a?n(a):M.createElementNS(this.SVG_NS,a);this.renderer=c;g(this,\"afterInit\")};B.prototype.invert=function(c){this.inverted=c;this.updateTransform();return this};B.prototype.on=function(c,a){var k,r,e=this.element,b;K&&\"click\"===c?(e.ontouchstart=function(a){k=a.touches[0].clientX;r=\na.touches[0].clientY},e.ontouchend=function(c){k&&4<=Math.sqrt(Math.pow(k-c.changedTouches[0].clientX,2)+Math.pow(r-c.changedTouches[0].clientY,2))||a.call(e,c);b=!0;c.preventDefault()},e.onclick=function(c){b||a.call(e,c)}):e[\"on\"+c]=a;return this};B.prototype.opacitySetter=function(c,a,k){this[a]=c;k.setAttribute(a,c)};B.prototype.removeClass=function(c){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(l(c)?new RegExp(\" ?\"+c+\" ?\"):c,\"\"))};B.prototype.removeTextOutline=function(c){for(var a=\nc.length,k;a--;)k=c[a],\"highcharts-text-outline\"===k.getAttribute(\"class\")&&m(c,this.element.removeChild(k))};B.prototype.safeRemoveChild=function(c){var a=c.parentNode;a&&a.removeChild(c)};B.prototype.setRadialReference=function(c){var a=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=c;a&&a.radAttr&&a.animate(this.renderer.getRadialAttr(c,a.radAttr));return this};B.prototype.setTextPath=function(c,a){var k=this.element,r={textAnchor:\"text-anchor\"},\ne=!1,b=this.textPathWrapper,l=!b;a=I(!0,{enabled:!0,attributes:{dy:-5,startOffset:\"50%\",textAnchor:\"middle\"}},a);var g=a.attributes;if(c&&a&&a.enabled){b&&null===b.element.parentNode?(l=!0,b=b.destroy()):b&&this.removeTextOutline.call(b.parentGroup,[].slice.call(k.getElementsByTagName(\"tspan\")));this.options&&this.options.padding&&(g.dx=-this.options.padding);b||(this.textPathWrapper=b=this.renderer.createElement(\"textPath\"),e=!0);var h=b.element;(a=c.element.getAttribute(\"id\"))||c.element.setAttribute(\"id\",\na=R());if(l)for(c=k.getElementsByTagName(\"tspan\");c.length;)c[0].setAttribute(\"y\",0),p(g.dx)&&c[0].setAttribute(\"x\",-g.dx),h.appendChild(c[0]);e&&b&&b.add({element:this.text?this.text.element:k});h.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",this.renderer.url+\"#\"+a);N(g.dy)&&(h.parentNode.setAttribute(\"dy\",g.dy),delete g.dy);N(g.dx)&&(h.parentNode.setAttribute(\"dx\",g.dx),delete g.dx);u(g,function(a,c){h.setAttribute(r[c]||c,a)});k.removeAttribute(\"transform\");this.removeTextOutline.call(b,\n[].slice.call(k.getElementsByTagName(\"tspan\")));this.text&&!this.renderer.styledMode&&this.attr({fill:\"none\",\"stroke-width\":0});this.applyTextOutline=this.updateTransform=L}else b&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(k,c),this.updateTransform(),this.options&&this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this};B.prototype.shadow=function(c,a,k){var r=[],e=this.element,l=!1,g=this.oldShadowOptions;var h={color:\"#000000\",\noffsetX:1,offsetY:1,opacity:.15,width:3};var p;!0===c?p=h:\"object\"===typeof c&&(p=b(h,c));p&&(p&&g&&u(p,function(a,c){a!==g[c]&&(l=!0)}),l&&this.destroyShadows(),this.oldShadowOptions=p);if(!p)this.destroyShadows();else if(!this.shadows){var m=p.opacity/p.width;var v=this.parentInverted?\"translate(-1,-1)\":\"translate(\"+p.offsetX+\", \"+p.offsetY+\")\";for(h=1;h<=p.width;h++){var y=e.cloneNode(!1);var O=2*p.width+1-2*h;w(y,{stroke:c.color||\"#000000\",\"stroke-opacity\":m*h,\"stroke-width\":O,transform:v,fill:\"none\"});\ny.setAttribute(\"class\",(y.getAttribute(\"class\")||\"\")+\" highcharts-shadow\");k&&(w(y,\"height\",Math.max(w(y,\"height\")-O,0)),y.cutHeight=O);a?a.element.appendChild(y):e.parentNode&&e.parentNode.insertBefore(y,e);r.push(y)}this.shadows=r}return this};B.prototype.show=function(c){return this.attr({visibility:c?\"inherit\":\"visible\"})};B.prototype.strokeSetter=function(c,a,k){this[a]=c;this.stroke&&this[\"stroke-width\"]?(B.prototype.fillSetter.call(this,this.stroke,\"stroke\",k),k.setAttribute(\"stroke-width\",\nthis[\"stroke-width\"]),this.hasStroke=!0):\"stroke-width\"===a&&0===c&&this.hasStroke?(k.removeAttribute(\"stroke\"),this.hasStroke=!1):this.renderer.styledMode&&this[\"stroke-width\"]&&(k.setAttribute(\"stroke-width\",this[\"stroke-width\"]),this.hasStroke=!0)};B.prototype.strokeWidth=function(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;var c=this.getStyle(\"stroke-width\"),a=0;if(c.indexOf(\"px\")===c.length-2)a=G(c);else if(\"\"!==c){var k=M.createElementNS(F,\"rect\");w(k,{width:c,\"stroke-width\":0});\nthis.element.parentNode.appendChild(k);a=k.getBBox().width;k.parentNode.removeChild(k)}return a};B.prototype.symbolAttr=function(c){var a=this;\"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function(k){a[k]=y(c[k],a[k])});a.attr({d:a.renderer.symbols[a.symbolName](a.x,a.y,a.width,a.height,a)})};B.prototype.textSetter=function(c){c!==this.textStr&&(delete this.textPxLength,this.textStr=c,this.added&&this.renderer.buildText(this))};B.prototype.titleSetter=function(c){var a=\nthis.element.getElementsByTagName(\"title\")[0];a||(a=M.createElementNS(this.SVG_NS,\"title\"),this.element.appendChild(a));a.firstChild&&a.removeChild(a.firstChild);a.appendChild(M.createTextNode(String(y(c,\"\")).replace(/<[^>]*>/g,\"\").replace(/</g,\"<\").replace(/>/g,\">\")))};B.prototype.toFront=function(){var c=this.element;c.parentNode.appendChild(c);return this};B.prototype.translate=function(c,a){return this.attr({translateX:c,translateY:a})};B.prototype.updateShadows=function(c,a,k){var r=this.shadows;\nif(r)for(var e=r.length;e--;)k.call(r[e],\"height\"===c?Math.max(a-(r[e].cutHeight||0),0):\"d\"===c?this.d:a,c,r[e])};B.prototype.updateTransform=function(){var c=this.translateX||0,a=this.translateY||0,k=this.scaleX,r=this.scaleY,e=this.inverted,b=this.rotation,l=this.matrix,g=this.element;e&&(c+=this.width,a+=this.height);c=[\"translate(\"+c+\",\"+a+\")\"];N(l)&&c.push(\"matrix(\"+l.join(\",\")+\")\");e?c.push(\"rotate(90) scale(-1,1)\"):b&&c.push(\"rotate(\"+b+\" \"+y(this.rotationOriginX,g.getAttribute(\"x\"),0)+\" \"+\ny(this.rotationOriginY,g.getAttribute(\"y\")||0)+\")\");(N(k)||N(r))&&c.push(\"scale(\"+y(k,1)+\" \"+y(r,1)+\")\");c.length&&g.setAttribute(\"transform\",c.join(\" \"))};B.prototype.visibilitySetter=function(c,a,k){\"inherit\"===c?k.removeAttribute(a):this[a]!==c&&k.setAttribute(a,c);this[a]=c};B.prototype.xGetter=function(c){\"circle\"===this.element.nodeName&&(\"x\"===c?c=\"cx\":\"y\"===c&&(c=\"cy\"));return this._defaultGetter(c)};B.prototype.zIndexSetter=function(c,a){var k=this.renderer,r=this.parentGroup,e=(r||k).element||\nk.box,b=this.element,l=!1;k=e===k.box;var g=this.added;var h;N(c)?(b.setAttribute(\"data-z-index\",c),c=+c,this[a]===c&&(g=!1)):N(this[a])&&b.removeAttribute(\"data-z-index\");this[a]=c;if(g){(c=this.zIndex)&&r&&(r.handleZ=!0);a=e.childNodes;for(h=a.length-1;0<=h&&!l;h--){r=a[h];g=r.getAttribute(\"data-z-index\");var p=!N(g);if(r!==b)if(0>c&&p&&!k&&!h)e.insertBefore(b,a[h]),l=!0;else if(G(g)<=c||p&&(!N(c)||0<=c))e.insertBefore(b,a[h+1]||null),l=!0}l||(e.insertBefore(b,a[k?3:0]||null),l=!0)}return l};return B}();\nE.prototype[\"stroke-widthSetter\"]=E.prototype.strokeSetter;E.prototype.yGetter=E.prototype.xGetter;E.prototype.matrixSetter=E.prototype.rotationOriginXSetter=E.prototype.rotationOriginYSetter=E.prototype.rotationSetter=E.prototype.scaleXSetter=E.prototype.scaleYSetter=E.prototype.translateXSetter=E.prototype.translateYSetter=E.prototype.verticalAlignSetter=function(e,c){this[c]=e;this.doTransform=!0};f.SVGElement=E;return f.SVGElement});Q(A,\"parts/SvgRenderer.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],\nA[\"parts/SVGElement.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q){var M=d.parse,K=q.addEvent,J=q.attr,L=q.createElement,x=q.css,F=q.defined,H=q.destroyObjectProperties,C=q.extend,D=q.isArray,w=q.isNumber,n=q.isObject,t=q.isString,N=q.merge,m=q.objectEach,b=q.pick,g=q.pInt,v=q.removeEvent,h=q.splat,e=q.uniqueKey,p=f.charts,l=f.deg2rad,I=f.doc,u=f.isFirefox,y=f.isMS,G=f.isWebKit;q=f.noop;var S=f.svg,R=f.SVG_NS,B=f.symbolSizes,c=f.win;d=f.SVGRenderer=function(){this.init.apply(this,arguments)};C(d.prototype,\n{Element:E,SVG_NS:R,init:function(a,k,r,e,b,l,g){var z=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"});g||z.css(this.getStyle(e));e=z.element;a.appendChild(e);J(a,\"dir\",\"ltr\");-1===a.innerHTML.indexOf(\"xmlns\")&&J(e,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=e;this.boxWrapper=z;this.alignedObjects=[];this.url=(u||G)&&I.getElementsByTagName(\"base\").length?c.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\"):\"\";this.createElement(\"desc\").add().element.appendChild(I.createTextNode(\"Created with Highcharts 8.1.0\"));\nthis.defs=this.createElement(\"defs\").add();this.allowHTML=l;this.forExport=b;this.styledMode=g;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(k,r,!1);var h;u&&a.getBoundingClientRect&&(k=function(){x(a,{left:0,top:0});h=a.getBoundingClientRect();x(a,{left:Math.ceil(h.left)-h.left+\"px\",top:Math.ceil(h.top)-h.top+\"px\"})},k(),this.unSubPixelFix=K(c,\"resize\",k))},definition:function(a){function c(a,k){var e;h(a).forEach(function(a){var b=r.createElement(a.tagName),l={};\nm(a,function(a,c){\"tagName\"!==c&&\"children\"!==c&&\"textContent\"!==c&&(l[c]=a)});b.attr(l);b.add(k||r.defs);a.textContent&&b.element.appendChild(I.createTextNode(a.textContent));c(a.children||[],b);e=b});return e}var r=this;return c(a)},getStyle:function(a){return this.style=C({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=\nthis.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();H(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:q,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},truncate:function(a,c,r,e,b,l,g){var k=this,z=a.rotation,h,p=e?1:0,u=(r||e).length,P=u,m=[],v=function(a){c.firstChild&&\nc.removeChild(c.firstChild);a&&c.appendChild(I.createTextNode(a))},y=function(l,z){z=z||l;if(\"undefined\"===typeof m[z])if(c.getSubStringLength)try{m[z]=b+c.getSubStringLength(0,e?z+1:z)}catch(fa){\"\"}else k.getSpanWidth&&(v(g(r||e,l)),m[z]=b+k.getSpanWidth(a,c));return m[z]},n;a.rotation=0;var U=y(c.textContent.length);if(n=b+U>l){for(;p<=u;)P=Math.ceil((p+u)/2),e&&(h=g(e,P)),U=y(P,h&&h.length-1),p===u?p=u+1:U>l?u=P-1:p=P;0===u?v(\"\"):r&&u===r.length-1||v(h||g(r||e,P))}e&&e.splice(0,P);a.actualWidth=\nU;a.rotation=z;return n},escapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},buildText:function(a){var c=a.element,r=this,e=r.forExport,l=b(a.textStr,\"\").toString(),h=-1!==l.indexOf(\"<\"),p=c.childNodes,u,v=J(c,\"x\"),y=a.styles,n=a.textWidth,O=y&&y.lineHeight,V=y&&y.textOutline,t=y&&\"ellipsis\"===y.textOverflow,G=y&&\"nowrap\"===y.whiteSpace,d=y&&y.fontSize,w,B=p.length;y=n&&!a.added&&this.box;var f=function(a){var k;r.styledMode||(k=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:\nd||r.style.fontSize||12);return O?g(O):r.fontMetrics(k,a.getAttribute(\"style\")?a:c).h},N=function(a,c){m(r.escapes,function(k,r){c&&-1!==c.indexOf(k)||(a=a.toString().replace(new RegExp(k,\"g\"),r))});return a},C=function(a,c){var k=a.indexOf(\"<\");a=a.substring(k,a.indexOf(\">\")-k);k=a.indexOf(c+\"=\");if(-1!==k&&(k=k+c.length+1,c=a.charAt(k),'\"'===c||\"'\"===c))return a=a.substring(k+1),a.substring(0,a.indexOf(c))},D=/<br.*?>/g;var q=[l,t,G,O,V,d,n].join();if(q!==a.textCache){for(a.textCache=q;B--;)c.removeChild(p[B]);\nh||V||t||n||-1!==l.indexOf(\" \")&&(!G||D.test(l))?(y&&y.appendChild(c),h?(l=r.styledMode?l.replace(/<(b|strong)>/g,'<span class=\"highcharts-strong\">').replace(/<(i|em)>/g,'<span class=\"highcharts-emphasized\">'):l.replace(/<(b|strong)>/g,'<span style=\"font-weight:bold\">').replace(/<(i|em)>/g,'<span style=\"font-style:italic\">'),l=l.replace(/<a/g,\"<span\").replace(/<\\/(b|strong|i|em|a)>/g,\"</span>\").split(D)):l=[l],l=l.filter(function(a){return\"\"!==a}),l.forEach(function(k,b){var l=0,g=0;k=k.replace(/^\\s+|\\s+$/g,\n\"\").replace(/<span/g,\"|||<span\").replace(/<\\/span>/g,\"</span>|||\");var z=k.split(\"|||\");z.forEach(function(k){if(\"\"!==k||1===z.length){var h={},p=I.createElementNS(r.SVG_NS,\"tspan\"),m,P;(m=C(k,\"class\"))&&J(p,\"class\",m);if(m=C(k,\"style\"))m=m.replace(/(;| |^)color([ :])/,\"$1fill$2\"),J(p,\"style\",m);(P=C(k,\"href\"))&&!e&&(J(p,\"onclick\",'location.href=\"'+P+'\"'),J(p,\"class\",\"highcharts-anchor\"),r.styledMode||x(p,{cursor:\"pointer\"}));k=N(k.replace(/<[a-zA-Z\\/](.|\\n)*?>/g,\"\")||\" \");if(\" \"!==k){p.appendChild(I.createTextNode(k));\nl?h.dx=0:b&&null!==v&&(h.x=v);J(p,h);c.appendChild(p);!l&&w&&(!S&&e&&x(p,{display:\"block\"}),J(p,\"dy\",f(p)));if(n){var O=k.replace(/([^\\^])-/g,\"$1- \").split(\" \");h=!G&&(1<z.length||b||1<O.length);P=0;var y=f(p);if(t)u=r.truncate(a,p,k,void 0,0,Math.max(0,n-parseInt(d||12,10)),function(a,c){return a.substring(0,c)+\"\\u2026\"});else if(h)for(;O.length;)O.length&&!G&&0<P&&(p=I.createElementNS(R,\"tspan\"),J(p,{dy:y,x:v}),m&&J(p,\"style\",m),p.appendChild(I.createTextNode(O.join(\" \").replace(/- /g,\"-\"))),c.appendChild(p)),\nr.truncate(a,p,null,O,0===P?g:0,n,function(a,c){return O.slice(0,c).join(\" \").replace(/- /g,\"-\")}),g=a.actualWidth,P++}l++}}});w=w||c.childNodes.length}),t&&u&&a.attr(\"title\",N(a.textStr,[\"<\",\">\"])),y&&y.removeChild(c),V&&a.applyTextOutline&&a.applyTextOutline(V)):c.appendChild(I.createTextNode(N(l)))}},getContrast:function(a){a=M(a).rgba;a[0]*=1;a[1]*=1.2;a[2]*=.5;return 459<a[0]+a[1]+a[2]?\"#000000\":\"#FFFFFF\"},button:function(a,c,r,e,b,l,g,h,p,u){var k=this.label(a,c,r,p,void 0,void 0,u,void 0,\n\"button\"),z=0,m=this.styledMode;k.attr(N({padding:8,r:2},b));if(!m){b=N({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontWeight:\"normal\"}},b);var P=b.style;delete b.style;l=N(b,{fill:\"#e6e6e6\"},l);var v=l.style;delete l.style;g=N(b,{fill:\"#e6ebf5\",style:{color:\"#000000\",fontWeight:\"bold\"}},g);var n=g.style;delete g.style;h=N(b,{style:{color:\"#cccccc\"}},h);var U=h.style;delete h.style}K(k.element,y?\"mouseover\":\"mouseenter\",function(){3!==z&&k.setState(1)});\nK(k.element,y?\"mouseout\":\"mouseleave\",function(){3!==z&&k.setState(z)});k.setState=function(a){1!==a&&(k.state=z=a);k.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][a||0]);m||k.attr([b,l,g,h][a||0]).css([P,v,n,U][a||0])};m||k.attr(b).css(C({cursor:\"default\"},P));return k.on(\"click\",function(a){3!==z&&e.call(k,a)})},crispLine:function(a,c,r){void 0===r&&(r=\"round\");var k=a[0],e=a[1];k[1]===e[1]&&(k[1]=e[1]=Math[r](k[1])-\nc%2/2);k[2]===e[2]&&(k[2]=e[2]=Math[r](k[2])+c%2/2);return a},path:function(a){var c=this.styledMode?{}:{fill:\"none\"};D(a)?c.d=a:n(a)&&C(c,a);return this.createElement(\"path\").attr(c)},circle:function(a,c,r){a=n(a)?a:\"undefined\"===typeof a?{}:{x:a,y:c,r:r};c=this.createElement(\"circle\");c.xSetter=c.ySetter=function(a,c,k){k.setAttribute(\"c\"+c,a)};return c.attr(a)},arc:function(a,c,r,e,b,l){n(a)?(e=a,c=e.y,r=e.r,a=e.x):e={innerR:e,start:b,end:l};a=this.symbol(\"arc\",a,c,r,r,e);a.r=r;return a},rect:function(a,\nc,r,e,b,l){b=n(a)?a.r:b;var k=this.createElement(\"rect\");a=n(a)?a:\"undefined\"===typeof a?{}:{x:a,y:c,width:Math.max(r,0),height:Math.max(e,0)};this.styledMode||(\"undefined\"!==typeof l&&(a.strokeWidth=l,a=k.crisp(a)),a.fill=\"none\");b&&(a.r=b);k.rSetter=function(a,c,r){k.r=a;J(r,{rx:a,ry:a})};k.rGetter=function(){return k.r};return k.attr(a)},setSize:function(a,c,r){var k=this.alignedObjects,e=k.length;this.width=a;this.height=c;for(this.boxWrapper.animate({width:a,height:c},{step:function(){this.attr({viewBox:\"0 0 \"+\nthis.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:b(r,!0)?void 0:0});e--;)k[e].align()},g:function(a){var c=this.createElement(\"g\");return a?c.attr({\"class\":\"highcharts-\"+a}):c},image:function(a,k,r,e,b,l){var g={preserveAspectRatio:\"none\"},h=function(a,c){a.setAttributeNS?a.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",c):a.setAttribute(\"hc-svg-href\",c)},z=function(c){h(p.element,a);l.call(p,c)};1<arguments.length&&C(g,{x:k,y:r,width:e,height:b});var p=this.createElement(\"image\").attr(g);\nl?(h(p.element,\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"),g=new c.Image,K(g,\"load\",z),g.src=a,g.complete&&z({})):h(p.element,a);return p},symbol:function(a,c,r,e,l,g){var k=this,h=/^url\\((.*?)\\)$/,z=h.test(a),u=!z&&(this.symbols[a]?a:\"circle\"),m=u&&this.symbols[u],v;if(m){\"number\"===typeof c&&(v=m.call(this.symbols,Math.round(c||0),Math.round(r||0),e,l,g));var P=this.path(v);k.styledMode||P.attr(\"fill\",\"none\");C(P,{symbolName:u,x:c,y:r,width:e,height:l});g&&C(P,\ng)}else if(z){var y=a.match(h)[1];P=this.image(y);P.imgwidth=b(B[y]&&B[y].width,g&&g.width);P.imgheight=b(B[y]&&B[y].height,g&&g.height);var n=function(){P.attr({width:P.width,height:P.height})};[\"width\",\"height\"].forEach(function(a){P[a+\"Setter\"]=function(a,c){var k={},r=this[\"img\"+c],e=\"width\"===c?\"translateX\":\"translateY\";this[c]=a;F(r)&&(g&&\"within\"===g.backgroundSize&&this.width&&this.height&&(r=Math.round(r*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(c,\nr),this.alignByTranslate||(k[e]=((this[c]||0)-r)/2,this.attr(k)))}});F(c)&&P.attr({x:c,y:r});P.isImg=!0;F(P.imgwidth)&&F(P.imgheight)?n():(P.attr({width:0,height:0}),L(\"img\",{onload:function(){var a=p[k.chartIndex];0===this.width&&(x(this,{position:\"absolute\",top:\"-999em\"}),I.body.appendChild(this));B[y]={width:this.width,height:this.height};P.imgwidth=this.width;P.imgheight=this.height;P.element&&n();this.parentNode&&this.parentNode.removeChild(this);k.imgCount--;if(!k.imgCount&&a&&!a.hasLoaded)a.onload()},\nsrc:y}),this.imgCount++)}return P},symbols:{circle:function(a,c,r,e){return this.arc(a+r/2,c+e/2,r/2,e/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(a,c,r,e){return[[\"M\",a,c],[\"L\",a+r,c],[\"L\",a+r,c+e],[\"L\",a,c+e],[\"Z\"]]},triangle:function(a,c,r,e){return[[\"M\",a+r/2,c],[\"L\",a+r,c+e],[\"L\",a,c+e],[\"Z\"]]},\"triangle-down\":function(a,c,r,e){return[[\"M\",a,c],[\"L\",a+r,c],[\"L\",a+r/2,c+e],[\"Z\"]]},diamond:function(a,c,r,e){return[[\"M\",a+r/2,c],[\"L\",a+r,c+e/2],[\"L\",a+r/2,c+e],[\"L\",a,c+e/2],[\"Z\"]]},\narc:function(a,c,r,e,l){var k=l.start,g=l.r||r,h=l.r||e||r,p=l.end-.001;r=l.innerR;e=b(l.open,.001>Math.abs(l.end-l.start-2*Math.PI));var z=Math.cos(k),u=Math.sin(k),m=Math.cos(p);p=Math.sin(p);k=b(l.longArc,.001>l.end-k-Math.PI?0:1);g=[[\"M\",a+g*z,c+h*u],[\"A\",g,h,0,k,b(l.clockwise,1),a+g*m,c+h*p]];F(r)&&g.push(e?[\"M\",a+r*m,c+r*p]:[\"L\",a+r*m,c+r*p],[\"A\",r,r,0,k,F(l.clockwise)?1-l.clockwise:0,a+r*z,c+r*u]);e||g.push([\"Z\"]);return g},callout:function(a,c,r,e,b){var k=Math.min(b&&b.r||0,r,e),l=k+6,g=\nb&&b.anchorX;b=b&&b.anchorY;var h=[[\"M\",a+k,c],[\"L\",a+r-k,c],[\"C\",a+r,c,a+r,c,a+r,c+k],[\"L\",a+r,c+e-k],[\"C\",a+r,c+e,a+r,c+e,a+r-k,c+e],[\"L\",a+k,c+e],[\"C\",a,c+e,a,c+e,a,c+e-k],[\"L\",a,c+k],[\"C\",a,c,a,c,a+k,c]];g&&g>r?b>c+l&&b<c+e-l?h.splice(3,1,[\"L\",a+r,b-6],[\"L\",a+r+6,b],[\"L\",a+r,b+6],[\"L\",a+r,c+e-k]):h.splice(3,1,[\"L\",a+r,e/2],[\"L\",g,b],[\"L\",a+r,e/2],[\"L\",a+r,c+e-k]):g&&0>g?b>c+l&&b<c+e-l?h.splice(7,1,[\"L\",a,b+6],[\"L\",a-6,b],[\"L\",a,b-6],[\"L\",a,c+k]):h.splice(7,1,[\"L\",a,e/2],[\"L\",g,b],[\"L\",a,e/2],\n[\"L\",a,c+k]):b&&b>e&&g>a+l&&g<a+r-l?h.splice(5,1,[\"L\",g+6,c+e],[\"L\",g,c+e+6],[\"L\",g-6,c+e],[\"L\",a+k,c+e]):b&&0>b&&g>a+l&&g<a+r-l&&h.splice(1,1,[\"L\",g-6,c],[\"L\",g,c-6],[\"L\",g+6,c],[\"L\",r-k,c]);return h}},clipRect:function(a,c,r,b){var k=e()+\"-\",l=this.createElement(\"clipPath\").attr({id:k}).add(this.defs);a=this.rect(a,c,r,b,0).add(l);a.id=k;a.clipPath=l;a.count=0;return a},text:function(a,c,e,b){var k={};if(b&&(this.allowHTML||!this.forExport))return this.html(a,c,e);k.x=Math.round(c||0);e&&(k.y=Math.round(e));\nF(a)&&(k.text=a);a=this.createElement(\"text\").attr(k);b||(a.xSetter=function(a,c,k){var e=k.getElementsByTagName(\"tspan\"),r=k.getAttribute(c),b;for(b=0;b<e.length;b++){var l=e[b];l.getAttribute(c)===r&&l.setAttribute(c,a)}k.setAttribute(c,a)});return a},fontMetrics:function(a,k){a=!this.styledMode&&/px/.test(a)||!c.getComputedStyle?a||k&&k.style&&k.style.fontSize||this.style&&this.style.fontSize:k&&E.prototype.getStyle.call(k,\"font-size\");a=/px/.test(a)?g(a):12;k=24>a?a+3:Math.round(1.2*a);return{h:k,\nb:Math.round(.8*k),f:a}},rotCorr:function(a,c,e){var k=a;c&&e&&(k=Math.max(k*Math.cos(c*l),4));return{x:-a/3*Math.sin(c*l),y:k}},pathToSegments:function(a){for(var c=[],e=[],b={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},l=0;l<a.length;l++)t(e[0])&&w(a[l])&&e.length===b[e[0].toUpperCase()]&&a.splice(l,0,e[0].replace(\"M\",\"L\").replace(\"m\",\"l\")),\"string\"===typeof a[l]&&(e.length&&c.push(e.slice(0)),e.length=0),e.push(a[l]);c.push(e.slice(0));return c},label:function(a,c,e,b,l,g,h,p,u){var k=this,r=k.styledMode,\nz=k.g(\"button\"!==u&&\"label\"),m=z.text=k.text(\"\",0,0,h).attr({zIndex:1}),y,P={width:0,height:0,x:0,y:0},n=P,t=0,I=3,G=0,U,d,B,f,S,R={},x,W,T=/^url\\((.*?)\\)$/.test(b),D=r||T,q=function(){return r?y.strokeWidth()%2/2:(x?parseInt(x,10):0)%2/2};u&&z.addClass(\"highcharts-\"+u);var Y=function(){var a=m.element.style,c={};n=w(U)&&w(d)&&!S||!F(m.textStr)?P:m.getBBox();z.width=(U||n.width||0)+2*I+G;z.height=(d||n.height||0)+2*I;W=I+Math.min(k.fontMetrics(a&&a.fontSize,m).b,n.height||Infinity);D&&(y||(z.box=\ny=k.symbols[b]||T?k.symbol(b):k.rect(),y.addClass((\"button\"===u?\"\":\"highcharts-label-box\")+(u?\" highcharts-\"+u+\"-box\":\"\")),y.add(z),a=q(),c.x=a,c.y=(p?-W:0)+a),c.width=Math.round(z.width),c.height=Math.round(z.height),y.attr(C(c,R)),R={})};var H=function(){var a=G+I;var c=p?0:W;F(U)&&n&&(\"center\"===S||\"right\"===S)&&(a+={center:.5,right:1}[S]*(U-n.width));if(a!==m.x||c!==m.y)m.attr(\"x\",a),m.hasBoxWidthChanged&&(n=m.getBBox(!0),Y()),\"undefined\"!==typeof c&&m.attr(\"y\",c);m.x=a;m.y=c};var L=function(a,\nc){y?y.attr(a,c):R[a]=c};z.onAdd=function(){m.add(z);z.attr({text:a||0===a?a:\"\",x:c,y:e});y&&F(l)&&z.attr({anchorX:l,anchorY:g})};z.widthSetter=function(a){U=w(a)?a:null};z.heightSetter=function(a){d=a};z[\"text-alignSetter\"]=function(a){S=a};z.paddingSetter=function(a){F(a)&&a!==I&&(I=z.padding=a,H())};z.paddingLeftSetter=function(a){F(a)&&a!==G&&(G=a,H())};z.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==t&&(t=a,n&&z.attr({x:B}))};z.textSetter=function(a){\"undefined\"!==typeof a&&m.attr({text:a});\nY();H()};z[\"stroke-widthSetter\"]=function(a,c){a&&(D=!0);x=this[\"stroke-width\"]=a;L(c,a)};r?z.rSetter=function(a,c){L(c,a)}:z.strokeSetter=z.fillSetter=z.rSetter=function(a,c){\"r\"!==c&&(\"fill\"===c&&a&&(D=!0),z[c]=a);L(c,a)};z.anchorXSetter=function(a,c){l=z.anchorX=a;L(c,Math.round(a)-q()-B)};z.anchorYSetter=function(a,c){g=z.anchorY=a;L(c,a-f)};z.xSetter=function(a){z.x=a;t&&(a-=t*((U||n.width)+2*I),z[\"forceAnimate:x\"]=!0);B=Math.round(a);z.attr(\"translateX\",B)};z.ySetter=function(a){f=z.y=Math.round(a);\nz.attr(\"translateY\",f)};z.isLabel=!0;var J=z.css;h={css:function(a){if(a){var c={};a=N(a);z.textProps.forEach(function(k){\"undefined\"!==typeof a[k]&&(c[k]=a[k],delete a[k])});m.css(c);var k=\"fontSize\"in c||\"fontWeight\"in c;if(\"width\"in c||k)Y(),k&&H()}return J.call(z,a)},getBBox:function(){return{width:n.width+2*I,height:n.height+2*I,x:n.x-I,y:n.y-I}},destroy:function(){v(z.element,\"mouseenter\");v(z.element,\"mouseleave\");m&&m.destroy();y&&(y=y.destroy());E.prototype.destroy.call(z);z=k=m=Y=H=L=null}};\nz.on=function(a,c){var k=m&&\"SPAN\"===m.element.tagName?m:void 0;if(k){var e=function(e){(\"mouseenter\"===a||\"mouseleave\"===a)&&e.relatedTarget instanceof Element&&(z.element.contains(e.relatedTarget)||k.element.contains(e.relatedTarget))||c.call(z.element,e)};k.on(a,e)}E.prototype.on.call(z,a,e||c);return z};r||(h.shadow=function(a){a&&(Y(),y&&y.shadow(a));return z});return C(z,h)}});f.Renderer=d});Q(A,\"parts/Html.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.attr,q=f.createElement,\nM=f.css,K=f.defined,J=f.extend,L=f.pick,x=f.pInt,F=d.isFirefox,H=d.isMS,C=d.isWebKit,D=d.SVGElement;f=d.SVGRenderer;var w=d.win;J(D.prototype,{htmlCss:function(n){var t=\"SPAN\"===this.element.tagName&&n&&\"width\"in n,d=L(t&&n.width,void 0);if(t){delete n.width;this.textWidth=d;var m=!0}n&&\"ellipsis\"===n.textOverflow&&(n.whiteSpace=\"nowrap\",n.overflow=\"hidden\");this.styles=J(this.styles,n);M(this.element,n);m&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var n=this.element;return{x:n.offsetLeft,\ny:n.offsetTop,width:n.offsetWidth,height:n.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var n=this.renderer,t=this.element,d=this.translateX||0,m=this.translateY||0,b=this.x||0,g=this.y||0,v=this.textAlign||\"left\",h={left:0,center:.5,right:1}[v],e=this.styles,p=e&&e.whiteSpace;M(t,{marginLeft:d,marginTop:m});!n.styledMode&&this.shadows&&this.shadows.forEach(function(e){M(e,{marginLeft:d+1,marginTop:m+1})});this.inverted&&[].forEach.call(t.childNodes,function(e){n.invertChild(e,t)});\nif(\"SPAN\"===t.tagName){e=this.rotation;var l=this.textWidth&&x(this.textWidth),I=[e,v,t.innerHTML,this.textWidth,this.textAlign].join(),u;(u=l!==this.oldTextWidth)&&!(u=l>this.oldTextWidth)&&((u=this.textPxLength)||(M(t,{width:\"\",whiteSpace:p||\"nowrap\"}),u=t.offsetWidth),u=u>l);u&&(/[ \\-]/.test(t.textContent||t.innerText)||\"ellipsis\"===t.style.textOverflow)?(M(t,{width:l+\"px\",display:\"block\",whiteSpace:p||\"normal\"}),this.oldTextWidth=l,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;I!==this.cTT&&\n(p=n.fontMetrics(t.style.fontSize,t).b,!K(e)||e===(this.oldRotation||0)&&v===this.oldAlign||this.setSpanRotation(e,h,p),this.getSpanCorrection(!K(e)&&this.textPxLength||t.offsetWidth,p,h,e,v));M(t,{left:b+(this.xCorr||0)+\"px\",top:g+(this.yCorr||0)+\"px\"});this.cTT=I;this.oldRotation=e;this.oldAlign=v}}else this.alignOnAdd=!0},setSpanRotation:function(n,t,d){var m={},b=this.renderer.getTransformKey();m[b]=m.transform=\"rotate(\"+n+\"deg)\";m[b+(F?\"Origin\":\"-origin\")]=m.transformOrigin=100*t+\"% \"+d+\"px\";\nM(this.element,m)},getSpanCorrection:function(n,t,d){this.xCorr=-n*d;this.yCorr=-t}});J(f.prototype,{getTransformKey:function(){return H&&!/Edge/.test(w.navigator.userAgent)?\"-ms-transform\":C?\"-webkit-transform\":F?\"MozTransform\":w.opera?\"-o-transform\":\"\"},html:function(n,t,d){var m=this.createElement(\"span\"),b=m.element,g=m.renderer,v=g.isSVG,h=function(e,b){[\"opacity\",\"visibility\"].forEach(function(l){e[l+\"Setter\"]=function(g,h,p){var u=e.div?e.div.style:b;D.prototype[l+\"Setter\"].call(this,g,h,p);\nu&&(u[h]=g)}});e.addedSetters=!0};m.textSetter=function(e){e!==b.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=e;b.innerHTML=L(e,\"\");m.doTransform=!0};v&&h(m,m.element.style);m.xSetter=m.ySetter=m.alignSetter=m.rotationSetter=function(e,b){\"align\"===b&&(b=\"textAlign\");m[b]=e;m.doTransform=!0};m.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};m.attr({text:n,x:Math.round(t),y:Math.round(d)}).css({position:\"absolute\"});g.styledMode||m.css({fontFamily:this.style.fontFamily,\nfontSize:this.style.fontSize});b.style.whiteSpace=\"nowrap\";m.css=m.htmlCss;v&&(m.add=function(e){var p=g.box.parentNode,l=[];if(this.parentGroup=e){var v=e.div;if(!v){for(;e;)l.push(e),e=e.parentGroup;l.reverse().forEach(function(e){function b(b,l){e[l]=b;\"translateX\"===l?u.left=b+\"px\":u.top=b+\"px\";e.doTransform=!0}var g=E(e.element,\"class\");v=e.div=e.div||q(\"div\",g?{className:g}:void 0,{position:\"absolute\",left:(e.translateX||0)+\"px\",top:(e.translateY||0)+\"px\",display:e.display,opacity:e.opacity,\npointerEvents:e.styles&&e.styles.pointerEvents},v||p);var u=v.style;J(e,{classSetter:function(e){return function(b){this.element.setAttribute(\"class\",b);e.className=b}}(v),on:function(){l[0].div&&m.on.apply({element:l[0].div},arguments);return e},translateXSetter:b,translateYSetter:b});e.addedSetters||h(e)})}}else v=p;v.appendChild(b);m.added=!0;m.alignOnAdd&&m.htmlUpdateTransform();return m});return m}})});Q(A,\"parts/Tick.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.clamp,\nq=f.correctFloat,M=f.defined,K=f.destroyObjectProperties,J=f.extend,L=f.fireEvent,x=f.isNumber,F=f.merge,H=f.objectEach,C=f.pick,D=d.deg2rad;f=function(){function d(n,t,d,m,b){this.isNewLabel=this.isNew=!0;this.axis=n;this.pos=t;this.type=d||\"\";this.parameters=b||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;L(this,\"init\");d||m||this.addLabel()}d.prototype.addLabel=function(){var n=this,t=n.axis,d=t.options,m=t.chart,b=t.categories,g=t.logarithmic,v=t.names,\nh=n.pos,e=C(n.options&&n.options.labels,d.labels),p=t.tickPositions,l=h===p[0],I=h===p[p.length-1];v=this.parameters.category||(b?C(b[h],v[h],h):h);var u=n.label;b=(!e.step||1===e.step)&&1===t.tickInterval;p=p.info;var y,G;if(t.dateTime&&p){var f=m.time.resolveDTLFormat(d.dateTimeLabelFormats[!d.grid&&p.higherRanks[h]||p.unitName]);var w=f.main}n.isFirst=l;n.isLast=I;n.formatCtx={axis:t,chart:m,isFirst:l,isLast:I,dateTimeLabelFormat:w,tickPositionInfo:p,value:g?q(g.lin2log(v)):v,pos:h};d=t.labelFormatter.call(n.formatCtx,\nthis.formatCtx);if(G=f&&f.list)n.shortenLabel=function(){for(y=0;y<G.length;y++)if(u.attr({text:t.labelFormatter.call(J(n.formatCtx,{dateTimeLabelFormat:G[y]}))}),u.getBBox().width<t.getSlotWidth(n)-2*C(e.padding,5))return;u.attr({text:\"\"})};b&&t._addedPlotLB&&t.isXAxis&&n.moveLabel(d,e);M(u)||n.movedLabel?u&&u.textStr!==d&&!b&&(!u.textWidth||e.style&&e.style.width||u.styles.width||u.css({width:null}),u.attr({text:d}),u.textPxLength=u.getBBox().width):(n.label=u=n.createLabel({x:0,y:0},d,e),n.rotation=\n0)};d.prototype.createLabel=function(n,t,d){var m=this.axis,b=m.chart;if(n=M(t)&&d.enabled?b.renderer.text(t,n.x,n.y,d.useHTML).add(m.labelGroup):null)b.styledMode||n.css(F(d.style)),n.textPxLength=n.getBBox().width;return n};d.prototype.destroy=function(){K(this,this.axis)};d.prototype.getPosition=function(n,t,d,m){var b=this.axis,g=b.chart,v=m&&g.oldChartHeight||g.chartHeight;n={x:n?q(b.translate(t+d,null,null,m)+b.transB):b.left+b.offset+(b.opposite?(m&&g.oldChartWidth||g.chartWidth)-b.right-b.left:\n0),y:n?v-b.bottom+b.offset-(b.opposite?b.height:0):q(v-b.translate(t+d,null,null,m)-b.transB)};n.y=E(n.y,-1E5,1E5);L(this,\"afterGetPosition\",{pos:n});return n};d.prototype.getLabelPosition=function(n,t,d,m,b,g,v,h){var e=this.axis,p=e.transA,l=e.isLinked&&e.linkedParent?e.linkedParent.reversed:e.reversed,I=e.staggerLines,u=e.tickRotCorr||{x:0,y:0},y=b.y,G=m||e.reserveSpaceDefault?0:-e.labelOffset*(\"center\"===e.labelAlign?.5:1),f={};M(y)||(y=0===e.side?d.rotation?-8:-d.getBBox().height:2===e.side?\nu.y+8:Math.cos(d.rotation*D)*(u.y-d.getBBox(!1,0).height/2));n=n+b.x+G+u.x-(g&&m?g*p*(l?-1:1):0);t=t+y-(g&&!m?g*p*(l?1:-1):0);I&&(d=v/(h||1)%I,e.opposite&&(d=I-d-1),t+=e.labelOffset/I*d);f.x=n;f.y=Math.round(t);L(this,\"afterGetLabelPosition\",{pos:f,tickmarkOffset:g,index:v});return f};d.prototype.getLabelSize=function(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0};d.prototype.getMarkPath=function(n,d,f,m,b,g){return g.crispLine([[\"M\",n,d],[\"L\",n+(b?0:-f),d+(b?f:0)]],\nm)};d.prototype.handleOverflow=function(n){var d=this.axis,f=d.options.labels,m=n.x,b=d.chart.chartWidth,g=d.chart.spacing,v=C(d.labelLeft,Math.min(d.pos,g[3]));g=C(d.labelRight,Math.max(d.isRadial?0:d.pos+d.len,b-g[1]));var h=this.label,e=this.rotation,p={left:0,center:.5,right:1}[d.labelAlign||h.attr(\"align\")],l=h.getBBox().width,I=d.getSlotWidth(this),u=I,y=1,G,w={};if(e||\"justify\"!==C(f.overflow,\"justify\"))0>e&&m-p*l<v?G=Math.round(m/Math.cos(e*D)-v):0<e&&m+p*l>g&&(G=Math.round((b-m)/Math.cos(e*\nD)));else if(b=m+(1-p)*l,m-p*l<v?u=n.x+u*(1-p)-v:b>g&&(u=g-n.x+u*p,y=-1),u=Math.min(I,u),u<I&&\"center\"===d.labelAlign&&(n.x+=y*(I-u-p*(I-Math.min(l,u)))),l>u||d.autoRotation&&(h.styles||{}).width)G=u;G&&(this.shortenLabel?this.shortenLabel():(w.width=Math.floor(G)+\"px\",(f.style||{}).textOverflow||(w.textOverflow=\"ellipsis\"),h.css(w)))};d.prototype.moveLabel=function(n,d){var t=this,m=t.label,b=!1,g=t.axis,v=g.reversed,h=g.chart.inverted;m&&m.textStr===n?(t.movedLabel=m,b=!0,delete t.label):H(g.ticks,\nfunction(e){b||e.isNew||e===t||!e.label||e.label.textStr!==n||(t.movedLabel=e.label,b=!0,e.labelPos=t.movedLabel.xy,delete e.label)});if(!b&&(t.labelPos||m)){var e=t.labelPos||m.xy;m=h?e.x:v?0:g.width+g.left;g=h?v?g.width+g.left:0:e.y;t.movedLabel=t.createLabel({x:m,y:g},n,d);t.movedLabel&&t.movedLabel.attr({opacity:0})}};d.prototype.render=function(n,d,f){var m=this.axis,b=m.horiz,g=this.pos,v=C(this.tickmarkOffset,m.tickmarkOffset);g=this.getPosition(b,g,v,d);v=g.x;var h=g.y;m=b&&v===m.pos+m.len||\n!b&&h===m.pos?-1:1;f=C(f,1);this.isActive=!0;this.renderGridLine(d,f,m);this.renderMark(g,f,m);this.renderLabel(g,d,f,n);this.isNew=!1;L(this,\"afterRender\")};d.prototype.renderGridLine=function(n,d,f){var m=this.axis,b=m.options,g=this.gridLine,v={},h=this.pos,e=this.type,p=C(this.tickmarkOffset,m.tickmarkOffset),l=m.chart.renderer,I=e?e+\"Grid\":\"grid\",u=b[I+\"LineWidth\"],y=b[I+\"LineColor\"];b=b[I+\"LineDashStyle\"];g||(m.chart.styledMode||(v.stroke=y,v[\"stroke-width\"]=u,b&&(v.dashstyle=b)),e||(v.zIndex=\n1),n&&(d=0),this.gridLine=g=l.path().attr(v).addClass(\"highcharts-\"+(e?e+\"-\":\"\")+\"grid-line\").add(m.gridGroup));if(g&&(f=m.getPlotLinePath({value:h+p,lineWidth:g.strokeWidth()*f,force:\"pass\",old:n})))g[n||this.isNew?\"attr\":\"animate\"]({d:f,opacity:d})};d.prototype.renderMark=function(n,d,f){var m=this.axis,b=m.options,g=m.chart.renderer,v=this.type,h=v?v+\"Tick\":\"tick\",e=m.tickSize(h),p=this.mark,l=!p,I=n.x;n=n.y;var u=C(b[h+\"Width\"],!v&&m.isXAxis?1:0);b=b[h+\"Color\"];e&&(m.opposite&&(e[0]=-e[0]),l&&\n(this.mark=p=g.path().addClass(\"highcharts-\"+(v?v+\"-\":\"\")+\"tick\").add(m.axisGroup),m.chart.styledMode||p.attr({stroke:b,\"stroke-width\":u})),p[l?\"attr\":\"animate\"]({d:this.getMarkPath(I,n,e[0],p.strokeWidth()*f,m.horiz,g),opacity:d}))};d.prototype.renderLabel=function(n,d,f,m){var b=this.axis,g=b.horiz,v=b.options,h=this.label,e=v.labels,p=e.step;b=C(this.tickmarkOffset,b.tickmarkOffset);var l=!0,I=n.x;n=n.y;h&&x(I)&&(h.xy=n=this.getLabelPosition(I,n,h,g,e,b,m,p),this.isFirst&&!this.isLast&&!C(v.showFirstLabel,\n1)||this.isLast&&!this.isFirst&&!C(v.showLastLabel,1)?l=!1:!g||e.step||e.rotation||d||0===f||this.handleOverflow(n),p&&m%p&&(l=!1),l&&x(n.y)?(n.opacity=f,h[this.isNewLabel?\"attr\":\"animate\"](n),this.isNewLabel=!1):(h.attr(\"y\",-9999),this.isNewLabel=!0))};d.prototype.replaceMovedLabel=function(){var n=this.label,d=this.axis,f=d.reversed,m=this.axis.chart.inverted;if(n&&!this.isNew){var b=m?n.xy.x:f?d.left:d.width+d.left;f=m?f?d.width+d.top:d.top:n.xy.y;n.animate({x:b,y:f,opacity:0},void 0,n.destroy);\ndelete this.label}d.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return d}();d.Tick=f;return d.Tick});Q(A,\"parts/Time.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.defined,q=f.error,M=f.extend,K=f.isObject,J=f.merge,L=f.objectEach,x=f.pad,F=f.pick,H=f.splat,C=f.timeUnits,D=d.win;f=function(){function f(d){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=D.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(d)}f.prototype.get=\nfunction(d,t){if(this.variableTimezone||this.timezoneOffset){var n=t.getTime(),m=n-this.getTimezoneOffset(t);t.setTime(m);d=t[\"getUTC\"+d]();t.setTime(n);return d}return this.useUTC?t[\"getUTC\"+d]():t[\"get\"+d]()};f.prototype.set=function(d,t,f){if(this.variableTimezone||this.timezoneOffset){if(\"Milliseconds\"===d||\"Seconds\"===d||\"Minutes\"===d)return t[\"setUTC\"+d](f);var m=this.getTimezoneOffset(t);m=t.getTime()-m;t.setTime(m);t[\"setUTC\"+d](f);d=this.getTimezoneOffset(t);m=t.getTime()+d;return t.setTime(m)}return this.useUTC?\nt[\"setUTC\"+d](f):t[\"set\"+d](f)};f.prototype.update=function(d){var n=F(d&&d.useUTC,!0);this.options=d=J(!0,this.options||{},d);this.Date=d.Date||D.Date||Date;this.timezoneOffset=(this.useUTC=n)&&d.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=!(n&&!d.getTimezoneOffset&&!d.timezone)};f.prototype.makeTime=function(n,f,w,m,b,g){if(this.useUTC){var v=this.Date.UTC.apply(0,arguments);var h=this.getTimezoneOffset(v);v+=h;var e=this.getTimezoneOffset(v);h!==e?\nv+=e-h:h-36E5!==this.getTimezoneOffset(v-36E5)||d.isSafari||(v-=36E5)}else v=(new this.Date(n,f,F(w,1),F(m,0),F(b,0),F(g,0))).getTime();return v};f.prototype.timezoneOffsetFunction=function(){var d=this,f=this.options,w=D.moment;if(!this.useUTC)return function(m){return 6E4*(new Date(m.toString())).getTimezoneOffset()};if(f.timezone){if(w)return function(m){return 6E4*-w.tz(m,f.timezone).utcOffset()};q(25)}return this.useUTC&&f.getTimezoneOffset?function(m){return 6E4*f.getTimezoneOffset(m.valueOf())}:\nfunction(){return 6E4*(d.timezoneOffset||0)}};f.prototype.dateFormat=function(n,f,w){var m;if(!E(f)||isNaN(f))return(null===(m=d.defaultOptions.lang)||void 0===m?void 0:m.invalidDate)||\"\";n=F(n,\"%Y-%m-%d %H:%M:%S\");var b=this;m=new this.Date(f);var g=this.get(\"Hours\",m),v=this.get(\"Day\",m),h=this.get(\"Date\",m),e=this.get(\"Month\",m),p=this.get(\"FullYear\",m),l=d.defaultOptions.lang,I=null===l||void 0===l?void 0:l.weekdays,u=null===l||void 0===l?void 0:l.shortWeekdays;m=M({a:u?u[v]:I[v].substr(0,3),\nA:I[v],d:x(h),e:x(h,2,\" \"),w:v,b:l.shortMonths[e],B:l.months[e],m:x(e+1),o:e+1,y:p.toString().substr(2,2),Y:p,H:x(g),k:g,I:x(g%12||12),l:g%12||12,M:x(this.get(\"Minutes\",m)),p:12>g?\"AM\":\"PM\",P:12>g?\"am\":\"pm\",S:x(m.getSeconds()),L:x(Math.floor(f%1E3),3)},d.dateFormats);L(m,function(e,l){for(;-1!==n.indexOf(\"%\"+l);)n=n.replace(\"%\"+l,\"function\"===typeof e?e.call(b,f):e)});return w?n.substr(0,1).toUpperCase()+n.substr(1):n};f.prototype.resolveDTLFormat=function(d){return K(d,!0)?d:(d=H(d),{main:d[0],from:d[1],\nto:d[2]})};f.prototype.getTimeTicks=function(d,f,w,m){var b=this,g=[],v={};var h=new b.Date(f);var e=d.unitRange,p=d.count||1,l;m=F(m,1);if(E(f)){b.set(\"Milliseconds\",h,e>=C.second?0:p*Math.floor(b.get(\"Milliseconds\",h)/p));e>=C.second&&b.set(\"Seconds\",h,e>=C.minute?0:p*Math.floor(b.get(\"Seconds\",h)/p));e>=C.minute&&b.set(\"Minutes\",h,e>=C.hour?0:p*Math.floor(b.get(\"Minutes\",h)/p));e>=C.hour&&b.set(\"Hours\",h,e>=C.day?0:p*Math.floor(b.get(\"Hours\",h)/p));e>=C.day&&b.set(\"Date\",h,e>=C.month?1:Math.max(1,\np*Math.floor(b.get(\"Date\",h)/p)));if(e>=C.month){b.set(\"Month\",h,e>=C.year?0:p*Math.floor(b.get(\"Month\",h)/p));var n=b.get(\"FullYear\",h)}e>=C.year&&b.set(\"FullYear\",h,n-n%p);e===C.week&&(n=b.get(\"Day\",h),b.set(\"Date\",h,b.get(\"Date\",h)-n+m+(n<m?-7:0)));n=b.get(\"FullYear\",h);m=b.get(\"Month\",h);var u=b.get(\"Date\",h),y=b.get(\"Hours\",h);f=h.getTime();b.variableTimezone&&(l=w-f>4*C.month||b.getTimezoneOffset(f)!==b.getTimezoneOffset(w));f=h.getTime();for(h=1;f<w;)g.push(f),f=e===C.year?b.makeTime(n+h*p,\n0):e===C.month?b.makeTime(n,m+h*p):!l||e!==C.day&&e!==C.week?l&&e===C.hour&&1<p?b.makeTime(n,m,u,y+h*p):f+e*p:b.makeTime(n,m,u+h*p*(e===C.day?1:7)),h++;g.push(f);e<=C.hour&&1E4>g.length&&g.forEach(function(e){0===e%18E5&&\"000000000\"===b.dateFormat(\"%H%M%S%L\",e)&&(v[e]=\"day\")})}g.info=M(d,{higherRanks:v,totalRange:e*p});return g};f.defaultOptions={Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0};return f}();d.Time=f;return d.Time});Q(A,\"parts/Options.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Time.js\"],A[\"parts/Color.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q){E=E.parse;var M=q.merge;d.defaultOptions={colors:\"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \"),symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\ndecimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:f.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:\"line\",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}},width:null,height:null,borderColor:\"#335cad\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{text:\"Chart title\",align:\"center\",margin:15,\nwidthAdjust:-44},subtitle:{text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},labels:{style:{position:\"absolute\",color:\"#333333\"}},legend:{enabled:!0,align:\"center\",alignColumns:!0,layout:\"horizontal\",labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{activeColor:\"#003399\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"12px\",fontWeight:\"bold\",textOverflow:\"ellipsis\"},\nitemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#cccccc\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:d.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %b %e, %H:%M:%S.%L\",\nsecond:\"%A, %b %e, %H:%M:%S\",minute:\"%A, %b %e, %H:%M\",hour:\"%A, %b %e, %H:%M\",day:\"%A, %b %e, %Y\",week:\"Week from %A, %b %e, %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",padding:8,snap:d.isTouchDevice?25:10,headerFormat:'<span style=\"font-size: 10px\">{point.key}</span><br/>',pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:E(\"#f7f7f7\").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:\"#333333\",cursor:\"default\",fontSize:\"12px\",\nwhiteSpace:\"nowrap\"}},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"9px\"},text:\"Highcharts.com\"}};d.setOptions=function(f){d.defaultOptions=M(!0,d.defaultOptions,f);(f.time||f.global)&&d.time.update(M(d.defaultOptions.global,d.defaultOptions.time,f.global,f.time));return d.defaultOptions};d.getOptions=function(){return d.defaultOptions};d.defaultPlotOptions=d.defaultOptions.plotOptions;\nd.time=new f(M(d.defaultOptions.global,d.defaultOptions.time));d.dateFormat=function(f,q,L){return d.time.dateFormat(f,q,L)};\"\"});Q(A,\"parts/Axis.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Tick.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q){var M=q.addEvent,K=q.animObject,J=q.arrayMax,L=q.arrayMin,x=q.clamp,F=q.correctFloat,H=q.defined,C=q.destroyObjectProperties,D=q.error,w=q.extend,n=q.fireEvent,t=q.format,N=q.getMagnitude,m=q.isArray,b=q.isFunction,g=q.isNumber,v=q.isString,h=q.merge,\ne=q.normalizeTickInterval,p=q.objectEach,l=q.pick,I=q.relativeLength,u=q.removeEvent,y=q.splat,G=q.syncTimeout,S=f.defaultOptions,R=f.deg2rad;q=function(){function B(c,a){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=\nthis.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.oldMin=this.oldMax=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0;this.init(c,a)}B.prototype.init=function(c,a){var k=a.isX,e=this;e.chart=c;\ne.horiz=c.inverted&&!e.isZAxis?!k:k;e.isXAxis=k;e.coll=e.coll||(k?\"xAxis\":\"yAxis\");n(this,\"init\",{userOptions:a});e.opposite=a.opposite;e.side=a.side||(e.horiz?e.opposite?0:2:e.opposite?1:3);e.setOptions(a);var g=this.options,h=g.type;e.labelFormatter=g.labels.formatter||e.defaultLabelFormatter;e.userOptions=a;e.minPixelPadding=0;e.reversed=g.reversed;e.visible=!1!==g.visible;e.zoomEnabled=!1!==g.zoomEnabled;e.hasNames=\"category\"===h||!0===g.categories;e.categories=g.categories||e.hasNames;e.names||\n(e.names=[],e.names.keys={});e.plotLinesAndBandsGroups={};e.positiveValuesOnly=!(!e.logarithmic||g.allowNegativeLog);e.isLinked=H(g.linkedTo);e.ticks={};e.labelEdge=[];e.minorTicks={};e.plotLinesAndBands=[];e.alternateBands={};e.len=0;e.minRange=e.userMinRange=g.minRange||g.maxZoom;e.range=g.range;e.offset=g.offset||0;e.max=null;e.min=null;e.crosshair=l(g.crosshair,y(c.options.tooltip.crosshairs)[k?0:1],!1);a=e.options.events;-1===c.axes.indexOf(e)&&(k?c.axes.splice(c.xAxis.length,0,e):c.axes.push(e),\nc[e.coll].push(e));e.series=e.series||[];c.inverted&&!e.isZAxis&&k&&\"undefined\"===typeof e.reversed&&(e.reversed=!0);e.labelRotation=e.options.labels.rotation;p(a,function(a,c){b(a)&&M(e,c,a)});n(this,\"afterInit\")};B.prototype.setOptions=function(c){this.options=h(B.defaultOptions,\"yAxis\"===this.coll&&B.defaultYAxisOptions,[B.defaultTopAxisOptions,B.defaultRightAxisOptions,B.defaultBottomAxisOptions,B.defaultLeftAxisOptions][this.side],h(S[this.coll],c));n(this,\"afterSetOptions\",{userOptions:c})};\nB.prototype.defaultLabelFormatter=function(){var c=this.axis,a=this.value,k=c.chart.time,e=c.categories,b=this.dateTimeLabelFormat,l=S.lang,g=l.numericSymbols;l=l.numericSymbolMagnitude||1E3;var h=g&&g.length,p=c.options.labels.format;c=c.logarithmic?Math.abs(a):c.tickInterval;var m=this.chart,u=m.numberFormatter;if(p)var v=t(p,this,m);else if(e)v=a;else if(b)v=k.dateFormat(b,a);else if(h&&1E3<=c)for(;h--&&\"undefined\"===typeof v;)k=Math.pow(l,h+1),c>=k&&0===10*a%k&&null!==g[h]&&0!==a&&(v=u(a/k,-1)+\ng[h]);\"undefined\"===typeof v&&(v=1E4<=Math.abs(a)?u(a,-1):u(a,-1,void 0,\"\"));return v};B.prototype.getSeriesExtremes=function(){var c=this,a=c.chart,k;n(this,\"getSeriesExtremes\",null,function(){c.hasVisibleSeries=!1;c.dataMin=c.dataMax=c.threshold=null;c.softThreshold=!c.isXAxis;c.stacking&&c.stacking.buildStacks();c.series.forEach(function(e){if(e.visible||!a.options.chart.ignoreHiddenSeries){var b=e.options,r=b.threshold;c.hasVisibleSeries=!0;c.positiveValuesOnly&&0>=r&&(r=null);if(c.isXAxis){if(b=\ne.xData,b.length){k=e.getXExtremes(b);var h=k.min;var p=k.max;g(h)||h instanceof Date||(b=b.filter(g),k=e.getXExtremes(b),h=k.min,p=k.max);b.length&&(c.dataMin=Math.min(l(c.dataMin,h),h),c.dataMax=Math.max(l(c.dataMax,p),p))}}else if(e=e.applyExtremes(),g(e.dataMin)&&(h=e.dataMin,c.dataMin=Math.min(l(c.dataMin,h),h)),g(e.dataMax)&&(p=e.dataMax,c.dataMax=Math.max(l(c.dataMax,p),p)),H(r)&&(c.threshold=r),!b.softThreshold||c.positiveValuesOnly)c.softThreshold=!1}})});n(this,\"afterGetSeriesExtremes\")};\nB.prototype.translate=function(c,a,k,e,b,l){var r=this.linkedParent||this,h=1,p=0,z=e?r.oldTransA:r.transA;e=e?r.oldMin:r.min;var m=r.minPixelPadding;b=(r.isOrdinal||r.brokenAxis&&r.brokenAxis.hasBreaks||r.logarithmic&&b)&&r.lin2val;z||(z=r.transA);k&&(h*=-1,p=r.len);r.reversed&&(h*=-1,p-=h*(r.sector||r.len));a?(c=(c*h+p-m)/z+e,b&&(c=r.lin2val(c))):(b&&(c=r.val2lin(c)),c=g(e)?h*(c-e)*z+p+h*m+(g(l)?z*l:0):void 0);return c};B.prototype.toPixels=function(c,a){return this.translate(c,!1,!this.horiz,null,\n!0)+(a?0:this.pos)};B.prototype.toValue=function(c,a){return this.translate(c-(a?0:this.pos),!0,!this.horiz,null,!0)};B.prototype.getPlotLinePath=function(c){function a(a,c,k){if(\"pass\"!==d&&a<c||a>k)d?a=x(a,c,k):B=!0;return a}var k=this,e=k.chart,b=k.left,h=k.top,p=c.old,m=c.value,u=c.translatedValue,v=c.lineWidth,d=c.force,y,O,f,I,G=p&&e.oldChartHeight||e.chartHeight,t=p&&e.oldChartWidth||e.chartWidth,B,w=k.transB;c={value:m,lineWidth:v,old:p,force:d,acrossPanes:c.acrossPanes,translatedValue:u};\nn(this,\"getPlotLinePath\",c,function(c){u=l(u,k.translate(m,null,null,p));u=x(u,-1E5,1E5);y=f=Math.round(u+w);O=I=Math.round(G-u-w);g(u)?k.horiz?(O=h,I=G-k.bottom,y=f=a(y,b,b+k.width)):(y=b,f=t-k.right,O=I=a(O,h,h+k.height)):(B=!0,d=!1);c.path=B&&!d?null:e.renderer.crispLine([[\"M\",y,O],[\"L\",f,I]],v||1)});return c.path};B.prototype.getLinearTickPositions=function(c,a,k){var e=F(Math.floor(a/c)*c);k=F(Math.ceil(k/c)*c);var b=[],l;F(e+c)===e&&(l=20);if(this.single)return[a];for(a=e;a<=k;){b.push(a);a=\nF(a+c,l);if(a===g)break;var g=a}return b};B.prototype.getMinorTickInterval=function(){var c=this.options;return!0===c.minorTicks?l(c.minorTickInterval,\"auto\"):!1===c.minorTicks?null:c.minorTickInterval};B.prototype.getMinorTickPositions=function(){var c=this.options,a=this.tickPositions,k=this.minorTickInterval,e=[],b=this.pointRangePadding||0,l=this.min-b;b=this.max+b;var g=b-l;if(g&&g/k<this.len/3){var h=this.logarithmic;if(h)this.paddedTicks.forEach(function(a,c,b){c&&e.push.apply(e,h.getLogTickPositions(k,\nb[c-1],b[c],!0))});else if(this.dateTime&&\"auto\"===this.getMinorTickInterval())e=e.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(k),l,b,c.startOfWeek));else for(c=l+(a[0]-l)%k;c<=b&&c!==e[0];c+=k)e.push(c)}0!==e.length&&this.trimTicks(e);return e};B.prototype.adjustForMinRange=function(){var c=this.options,a=this.min,k=this.max,e=this.logarithmic,b,g,h,p,u;this.isXAxis&&\"undefined\"===typeof this.minRange&&!e&&(H(c.min)||H(c.max)?this.minRange=null:(this.series.forEach(function(a){p=\na.xData;for(g=u=a.xIncrement?1:p.length-1;0<g;g--)if(h=p[g]-p[g-1],\"undefined\"===typeof b||h<b)b=h}),this.minRange=Math.min(5*b,this.dataMax-this.dataMin)));if(k-a<this.minRange){var m=this.dataMax-this.dataMin>=this.minRange;var v=this.minRange;var d=(v-k+a)/2;d=[a-d,l(c.min,a-d)];m&&(d[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin);a=J(d);k=[a+v,l(c.max,a+v)];m&&(k[2]=e?e.log2lin(this.dataMax):this.dataMax);k=L(k);k-a<v&&(d[0]=k-v,d[1]=l(c.min,k-v),a=J(d))}this.min=a;this.max=\nk};B.prototype.getClosest=function(){var c;this.categories?c=1:this.series.forEach(function(a){var k=a.closestPointRange,e=a.visible||!a.chart.options.chart.ignoreHiddenSeries;!a.noSharedTooltip&&H(k)&&e&&(c=H(c)?Math.min(c,k):k)});return c};B.prototype.nameToX=function(c){var a=m(this.categories),k=a?this.categories:this.names,e=c.options.x;c.series.requireSorting=!1;H(e)||(e=!1===this.options.uniqueNames?c.series.autoIncrement():a?k.indexOf(c.name):l(k.keys[c.name],-1));if(-1===e){if(!a)var b=k.length}else b=\ne;\"undefined\"!==typeof b&&(this.names[b]=c.name,this.names.keys[c.name]=b);return b};B.prototype.updateNames=function(){var c=this,a=this.names;0<a.length&&(Object.keys(a.keys).forEach(function(c){delete a.keys[c]}),a.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(a){a.xIncrement=null;if(!a.points||a.isDirtyData)c.max=Math.max(c.max,a.xData.length-1),a.processData(),a.generatePoints();a.data.forEach(function(e,k){if(e&&e.options&&\"undefined\"!==typeof e.name){var b=c.nameToX(e);\n\"undefined\"!==typeof b&&b!==e.x&&(e.x=b,a.xData[k]=b)}})}))};B.prototype.setAxisTranslation=function(c){var a=this,e=a.max-a.min,b=a.axisPointRange||0,g=0,h=0,p=a.linkedParent,m=!!a.categories,u=a.transA,d=a.isXAxis;if(d||m||b){var y=a.getClosest();p?(g=p.minPointOffset,h=p.pointRangePadding):a.series.forEach(function(c){var e=m?1:d?l(c.options.pointRange,y,0):a.axisPointRange||0,k=c.options.pointPlacement;b=Math.max(b,e);if(!a.single||m)c=c.is(\"xrange\")?!d:d,g=Math.max(g,c&&v(k)?0:e/2),h=Math.max(h,\nc&&\"on\"===k?0:e)});p=a.ordinal&&a.ordinal.slope&&y?a.ordinal.slope/y:1;a.minPointOffset=g*=p;a.pointRangePadding=h*=p;a.pointRange=Math.min(b,a.single&&m?1:e);d&&(a.closestPointRange=y)}c&&(a.oldTransA=u);a.translationSlope=a.transA=u=a.staticScale||a.len/(e+h||1);a.transB=a.horiz?a.left:a.bottom;a.minPixelPadding=u*g;n(this,\"afterSetAxisTranslation\")};B.prototype.minFromRange=function(){return this.max-this.range};B.prototype.setTickInterval=function(c){var a=this,k=a.chart,b=a.logarithmic,h=a.options,\np=a.isXAxis,m=a.isLinked,u=h.maxPadding,v=h.minPadding,d=h.tickInterval,y=h.tickPixelInterval,f=a.categories,O=g(a.threshold)?a.threshold:null,I=a.softThreshold;a.dateTime||f||m||this.getTickAmount();var G=l(a.userMin,h.min);var t=l(a.userMax,h.max);if(m){a.linkedParent=k[a.coll][h.linkedTo];var B=a.linkedParent.getExtremes();a.min=l(B.min,B.dataMin);a.max=l(B.max,B.dataMax);h.type!==a.linkedParent.options.type&&D(11,1,k)}else{if(!I&&H(O))if(a.dataMin>=O)B=O,v=0;else if(a.dataMax<=O){var w=O;u=0}a.min=\nl(G,B,a.dataMin);a.max=l(t,w,a.dataMax)}b&&(a.positiveValuesOnly&&!c&&0>=Math.min(a.min,l(a.dataMin,a.min))&&D(10,1,k),a.min=F(b.log2lin(a.min),16),a.max=F(b.log2lin(a.max),16));a.range&&H(a.max)&&(a.userMin=a.min=G=Math.max(a.dataMin,a.minFromRange()),a.userMax=t=a.max,a.range=null);n(a,\"foundExtremes\");a.beforePadding&&a.beforePadding();a.adjustForMinRange();!(f||a.axisPointRange||a.stacking&&a.stacking.usePercentage||m)&&H(a.min)&&H(a.max)&&(k=a.max-a.min)&&(!H(G)&&v&&(a.min-=k*v),!H(t)&&u&&(a.max+=\nk*u));g(a.userMin)||(g(h.softMin)&&h.softMin<a.min&&(a.min=G=h.softMin),g(h.floor)&&(a.min=Math.max(a.min,h.floor)));g(a.userMax)||(g(h.softMax)&&h.softMax>a.max&&(a.max=t=h.softMax),g(h.ceiling)&&(a.max=Math.min(a.max,h.ceiling)));I&&H(a.dataMin)&&(O=O||0,!H(G)&&a.min<O&&a.dataMin>=O?a.min=a.options.minRange?Math.min(O,a.max-a.minRange):O:!H(t)&&a.max>O&&a.dataMax<=O&&(a.max=a.options.minRange?Math.max(O,a.min+a.minRange):O));a.tickInterval=a.min===a.max||\"undefined\"===typeof a.min||\"undefined\"===\ntypeof a.max?1:m&&!d&&y===a.linkedParent.options.tickPixelInterval?d=a.linkedParent.tickInterval:l(d,this.tickAmount?(a.max-a.min)/Math.max(this.tickAmount-1,1):void 0,f?1:(a.max-a.min)*y/Math.max(a.len,y));p&&!c&&a.series.forEach(function(c){c.processData(a.min!==a.oldMin||a.max!==a.oldMax)});a.setAxisTranslation(!0);a.beforeSetTickPositions&&a.beforeSetTickPositions();a.ordinal&&(a.tickInterval=a.ordinal.postProcessTickInterval(a.tickInterval));a.pointRange&&!d&&(a.tickInterval=Math.max(a.pointRange,\na.tickInterval));c=l(h.minTickInterval,a.dateTime&&a.closestPointRange);!d&&a.tickInterval<c&&(a.tickInterval=c);a.dateTime||a.logarithmic||d||(a.tickInterval=e(a.tickInterval,void 0,N(a.tickInterval),l(h.allowDecimals,.5>a.tickInterval||void 0!==this.tickAmount),!!this.tickAmount));this.tickAmount||(a.tickInterval=a.unsquish());this.setTickPositions()};B.prototype.setTickPositions=function(){var c=this.options,a=c.tickPositions;var e=this.getMinorTickInterval();var b=c.tickPositioner,l=this.hasVerticalPanning(),\ng=\"colorAxis\"===this.coll,h=(g||!l)&&c.startOnTick;l=(g||!l)&&c.endOnTick;this.tickmarkOffset=this.categories&&\"between\"===c.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\"auto\"===e&&this.tickInterval?this.tickInterval/5:e;this.single=this.min===this.max&&H(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==c.allowDecimals);this.tickPositions=e=a&&a.slice();!e&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,\n200))?e=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,c.units),this.min,this.max,c.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(e=[this.min,this.max],D(19,!1,this.chart)),e.length>this.len&&(e=[e[0],e.pop()],e[0]===e[1]&&(e.length=1)),this.tickPositions=e,b&&(b=b.apply(this,\n[this.min,this.max])))&&(this.tickPositions=e=b);this.paddedTicks=e.slice(0);this.trimTicks(e,h,l);this.isLinked||(this.single&&2>e.length&&!this.categories&&!this.series.some(function(a){return a.is(\"heatmap\")&&\"between\"===a.options.pointPlacement})&&(this.min-=.5,this.max+=.5),a||b||this.adjustTickAmount());n(this,\"afterSetTickPositions\")};B.prototype.trimTicks=function(c,a,e){var k=c[0],b=c[c.length-1],l=!this.isOrdinal&&this.minPointOffset||0;n(this,\"trimTicks\");if(!this.isLinked){if(a&&-Infinity!==\nk)this.min=k;else for(;this.min-l>c[0];)c.shift();if(e)this.max=b;else for(;this.max+l<c[c.length-1];)c.pop();0===c.length&&H(k)&&!this.options.tickPositions&&c.push((b+k)/2)}};B.prototype.alignToOthers=function(){var c={},a,e=this.options;!1===this.chart.options.chart.alignTicks||!1===e.alignTicks||!1===e.startOnTick||!1===e.endOnTick||this.logarithmic||this.chart[this.coll].forEach(function(e){var k=e.options;k=[e.horiz?k.left:k.top,k.width,k.height,k.pane].join();e.series.length&&(c[k]?a=!0:c[k]=\n1)});return a};B.prototype.getTickAmount=function(){var c=this.options,a=c.tickAmount,e=c.tickPixelInterval;!H(c.tickInterval)&&!a&&this.len<e&&!this.isRadial&&!this.logarithmic&&c.startOnTick&&c.endOnTick&&(a=2);!a&&this.alignToOthers()&&(a=Math.ceil(this.len/e)+1);4>a&&(this.finalTickAmt=a,a=5);this.tickAmount=a};B.prototype.adjustTickAmount=function(){var c=this.options,a=this.tickInterval,e=this.tickPositions,b=this.tickAmount,g=this.finalTickAmt,h=e&&e.length,p=l(this.threshold,this.softThreshold?\n0:null),m;if(this.hasData()){if(h<b){for(m=this.min;e.length<b;)e.length%2||m===p?e.push(F(e[e.length-1]+a)):e.unshift(F(e[0]-a));this.transA*=(h-1)/(b-1);this.min=c.startOnTick?e[0]:Math.min(this.min,e[0]);this.max=c.endOnTick?e[e.length-1]:Math.max(this.max,e[e.length-1])}else h>b&&(this.tickInterval*=2,this.setTickPositions());if(H(g)){for(a=c=e.length;a--;)(3===g&&1===a%2||2>=g&&0<a&&a<c-1)&&e.splice(a,1);this.finalTickAmt=void 0}}};B.prototype.setScale=function(){var c,a=!1,e=!1;this.series.forEach(function(c){var k;\na=a||c.isDirtyData||c.isDirty;e=e||(null===(k=c.xAxis)||void 0===k?void 0:k.isDirty)||!1});this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();(c=this.len!==this.oldAxisLength)||a||e||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.stacking&&this.stacking.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,\nthis.isDirty||(this.isDirty=c||this.min!==this.oldMin||this.max!==this.oldMax)):this.stacking&&this.stacking.cleanStacks();a&&this.panningState&&(this.panningState.isDirty=!0);n(this,\"afterSetScale\")};B.prototype.setExtremes=function(c,a,e,b,g){var k=this,h=k.chart;e=l(e,!0);k.series.forEach(function(a){delete a.kdTree});g=w(g,{min:c,max:a});n(k,\"setExtremes\",g,function(){k.userMin=c;k.userMax=a;k.eventArgs=g;e&&h.redraw(b)})};B.prototype.zoom=function(c,a){var e=this,b=this.dataMin,g=this.dataMax,\nh=this.options,p=Math.min(b,l(h.min,b)),m=Math.max(g,l(h.max,g));c={newMin:c,newMax:a};n(this,\"zoom\",c,function(a){var c=a.newMin,k=a.newMax;if(c!==e.min||k!==e.max)e.allowZoomOutside||(H(b)&&(c<p&&(c=p),c>m&&(c=m)),H(g)&&(k<p&&(k=p),k>m&&(k=m))),e.displayBtn=\"undefined\"!==typeof c||\"undefined\"!==typeof k,e.setExtremes(c,k,!1,void 0,{trigger:\"zoom\"});a.zoomed=!0});return c.zoomed};B.prototype.setAxisSize=function(){var c=this.chart,a=this.options,e=a.offsets||[0,0,0,0],b=this.horiz,g=this.width=Math.round(I(l(a.width,\nc.plotWidth-e[3]+e[1]),c.plotWidth)),h=this.height=Math.round(I(l(a.height,c.plotHeight-e[0]+e[2]),c.plotHeight)),p=this.top=Math.round(I(l(a.top,c.plotTop+e[0]),c.plotHeight,c.plotTop));a=this.left=Math.round(I(l(a.left,c.plotLeft+e[3]),c.plotWidth,c.plotLeft));this.bottom=c.chartHeight-h-p;this.right=c.chartWidth-g-a;this.len=Math.max(b?g:h,0);this.pos=b?a:p};B.prototype.getExtremes=function(){var c=this.logarithmic;return{min:c?F(c.lin2log(this.min)):this.min,max:c?F(c.lin2log(this.max)):this.max,\ndataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}};B.prototype.getThreshold=function(c){var a=this.logarithmic,e=a?a.lin2log(this.min):this.min;a=a?a.lin2log(this.max):this.max;null===c||-Infinity===c?c=e:Infinity===c?c=a:e>c?c=e:a<c&&(c=a);return this.translate(c,0,1,0,1)};B.prototype.autoLabelAlign=function(c){var a=(l(c,0)-90*this.side+720)%360;c={align:\"center\"};n(this,\"autoLabelAlign\",c,function(c){15<a&&165>a?c.align=\"right\":195<a&&345>a&&(c.align=\"left\")});\nreturn c.align};B.prototype.tickSize=function(c){var a=this.options,e=a[\"tick\"===c?\"tickLength\":\"minorTickLength\"],b=l(a[\"tick\"===c?\"tickWidth\":\"minorTickWidth\"],\"tick\"===c&&this.isXAxis&&!this.categories?1:0);if(b&&e){\"inside\"===a[c+\"Position\"]&&(e=-e);var g=[e,b]}c={tickSize:g};n(this,\"afterTickSize\",c);return c.tickSize};B.prototype.labelMetrics=function(){var c=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,\nthis.ticks[c]&&this.ticks[c].label)};B.prototype.unsquish=function(){var c=this.options.labels,a=this.horiz,e=this.tickInterval,b=e,g=this.len/(((this.categories?1:0)+this.max-this.min)/e),h,p=c.rotation,m=this.labelMetrics(),u,v=Number.MAX_VALUE,d,y=this.max-this.min,f=function(a){var c=a/(g||1);c=1<c?Math.ceil(c):1;c*e>y&&Infinity!==a&&Infinity!==g&&y&&(c=Math.ceil(y/e));return F(c*e)};a?(d=!c.staggerLines&&!c.step&&(H(p)?[p]:g<l(c.autoRotationLimit,80)&&c.autoRotation))&&d.forEach(function(a){if(a===\np||a&&-90<=a&&90>=a){u=f(Math.abs(m.h/Math.sin(R*a)));var c=u+Math.abs(a/360);c<v&&(v=c,h=a,b=u)}}):c.step||(b=f(m.h));this.autoRotation=d;this.labelRotation=l(h,p);return b};B.prototype.getSlotWidth=function(c){var a,e=this.chart,b=this.horiz,l=this.options.labels,h=Math.max(this.tickPositions.length-(this.categories?0:1),1),p=e.margin[3];if(c&&g(c.slotWidth))return c.slotWidth;if(b&&l&&2>(l.step||0))return l.rotation?0:(this.staggerLines||1)*this.len/h;if(!b){c=null===(a=null===l||void 0===l?void 0:\nl.style)||void 0===a?void 0:a.width;if(void 0!==c)return parseInt(c,10);if(p)return p-e.spacing[3]}return.33*e.chartWidth};B.prototype.renderUnsquish=function(){var c=this.chart,a=c.renderer,e=this.tickPositions,b=this.ticks,l=this.options.labels,g=l&&l.style||{},h=this.horiz,p=this.getSlotWidth(),m=Math.max(1,Math.round(p-2*(l.padding||5))),u={},d=this.labelMetrics(),y=l.style&&l.style.textOverflow,f=0;v(l.rotation)||(u.rotation=l.rotation||0);e.forEach(function(a){a=b[a];a.movedLabel&&a.replaceMovedLabel();\na&&a.label&&a.label.textPxLength>f&&(f=a.label.textPxLength)});this.maxLabelLength=f;if(this.autoRotation)f>m&&f>d.h?u.rotation=this.labelRotation:this.labelRotation=0;else if(p){var n=m;if(!y){var I=\"clip\";for(m=e.length;!h&&m--;){var G=e[m];if(G=b[G].label)G.styles&&\"ellipsis\"===G.styles.textOverflow?G.css({textOverflow:\"clip\"}):G.textPxLength>p&&G.css({width:p+\"px\"}),G.getBBox().height>this.len/e.length-(d.h-d.f)&&(G.specificTextOverflow=\"ellipsis\")}}}u.rotation&&(n=f>.5*c.chartHeight?.33*c.chartHeight:\nf,y||(I=\"ellipsis\"));if(this.labelAlign=l.align||this.autoLabelAlign(this.labelRotation))u.align=this.labelAlign;e.forEach(function(a){var c=(a=b[a])&&a.label,e=g.width,k={};c&&(c.attr(u),a.shortenLabel?a.shortenLabel():n&&!e&&\"nowrap\"!==g.whiteSpace&&(n<c.textPxLength||\"SPAN\"===c.element.tagName)?(k.width=n+\"px\",y||(k.textOverflow=c.specificTextOverflow||I),c.css(k)):c.styles&&c.styles.width&&!k.width&&!e&&c.css({width:null}),delete c.specificTextOverflow,a.rotation=u.rotation)},this);this.tickRotCorr=\na.rotCorr(d.b,this.labelRotation||0,0!==this.side)};B.prototype.hasData=function(){return this.series.some(function(c){return c.hasData()})||this.options.showEmpty&&H(this.min)&&H(this.max)};B.prototype.addTitle=function(c){var a=this.chart.renderer,e=this.horiz,b=this.opposite,l=this.options.title,g,p=this.chart.styledMode;this.axisTitle||((g=l.textAlign)||(g=(e?{low:\"left\",middle:\"center\",high:\"right\"}:{low:b?\"right\":\"left\",middle:\"center\",high:b?\"left\":\"right\"})[l.align]),this.axisTitle=a.text(l.text,\n0,0,l.useHTML).attr({zIndex:7,rotation:l.rotation||0,align:g}).addClass(\"highcharts-axis-title\"),p||this.axisTitle.css(h(l.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0);p||l.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"});this.axisTitle[c?\"show\":\"hide\"](c)};B.prototype.generateTick=function(c){var a=this.ticks;a[c]?a[c].addLabel():a[c]=new E(this,c)};B.prototype.getOffset=function(){var c=this,a=c.chart,e=a.renderer,b=c.options,g=c.tickPositions,h=c.ticks,\nm=c.horiz,u=c.side,v=a.inverted&&!c.isZAxis?[1,0,3,2][u]:u,d,y=0,f=0,O=b.title,I=b.labels,G=0,t=a.axisOffset;a=a.clipOffset;var B=[-1,1,1,-1][u],w=b.className,S=c.axisParent;var R=c.hasData();c.showAxis=d=R||l(b.showEmpty,!0);c.staggerLines=c.horiz&&I.staggerLines;c.axisGroup||(c.gridGroup=e.g(\"grid\").attr({zIndex:b.gridZIndex||1}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\"-grid \"+(w||\"\")).add(S),c.axisGroup=e.g(\"axis\").attr({zIndex:b.zIndex||2}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\n\" \"+(w||\"\")).add(S),c.labelGroup=e.g(\"axis-labels\").attr({zIndex:I.zIndex||7}).addClass(\"highcharts-\"+c.coll.toLowerCase()+\"-labels \"+(w||\"\")).add(S));R||c.isLinked?(g.forEach(function(a,e){c.generateTick(a,e)}),c.renderUnsquish(),c.reserveSpaceDefault=0===u||2===u||{1:\"left\",3:\"right\"}[u]===c.labelAlign,l(I.reserveSpace,\"center\"===c.labelAlign?!0:null,c.reserveSpaceDefault)&&g.forEach(function(a){G=Math.max(h[a].getLabelSize(),G)}),c.staggerLines&&(G*=c.staggerLines),c.labelOffset=G*(c.opposite?\n-1:1)):p(h,function(a,c){a.destroy();delete h[c]});if(O&&O.text&&!1!==O.enabled&&(c.addTitle(d),d&&!1!==O.reserveSpace)){c.titleOffset=y=c.axisTitle.getBBox()[m?\"height\":\"width\"];var x=O.offset;f=H(x)?0:l(O.margin,m?5:10)}c.renderLine();c.offset=B*l(b.offset,t[u]?t[u]+(b.margin||0):0);c.tickRotCorr=c.tickRotCorr||{x:0,y:0};e=0===u?-c.labelMetrics().h:2===u?c.tickRotCorr.y:0;f=Math.abs(G)+f;G&&(f=f-e+B*(m?l(I.y,c.tickRotCorr.y+8*B):I.x));c.axisTitleMargin=l(x,f);c.getMaxLabelDimensions&&(c.maxLabelDimensions=\nc.getMaxLabelDimensions(h,g));m=this.tickSize(\"tick\");t[u]=Math.max(t[u],c.axisTitleMargin+y+B*c.offset,f,g&&g.length&&m?m[0]+B*c.offset:0);b=b.offset?0:2*Math.floor(c.axisLine.strokeWidth()/2);a[v]=Math.max(a[v],b);n(this,\"afterGetOffset\")};B.prototype.getLinePath=function(c){var a=this.chart,e=this.opposite,b=this.offset,l=this.horiz,g=this.left+(e?this.width:0)+b;b=a.chartHeight-this.bottom-(e?this.height:0)+b;e&&(c*=-1);return a.renderer.crispLine([[\"M\",l?this.left:g,l?b:this.top],[\"L\",l?a.chartWidth-\nthis.right:g,l?b:a.chartHeight-this.bottom]],c)};B.prototype.renderLine=function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))};B.prototype.getTitlePosition=function(){var c=this.horiz,a=this.left,e=this.top,b=this.len,l=this.options.title,g=c?a:e,h=this.opposite,p=this.offset,m=l.x||0,u=l.y||0,d=this.axisTitle,\nv=this.chart.renderer.fontMetrics(l.style&&l.style.fontSize,d);d=Math.max(d.getBBox(null,0).height-v.h-1,0);b={low:g+(c?0:b),middle:g+b/2,high:g+(c?b:0)}[l.align];a=(c?e+this.height:a)+(c?1:-1)*(h?-1:1)*this.axisTitleMargin+[-d,d,v.f,-d][this.side];c={x:c?b+m:a+(h?this.width:0)+p+m,y:c?a+u-(h?this.height:0)+p:b+u};n(this,\"afterGetTitlePosition\",{titlePosition:c});return c};B.prototype.renderMinorTick=function(c){var a=this.chart.hasRendered&&g(this.oldMin),e=this.minorTicks;e[c]||(e[c]=new E(this,\nc,\"minor\"));a&&e[c].isNew&&e[c].render(null,!0);e[c].render(null,!1,1)};B.prototype.renderTick=function(c,a){var e=this.isLinked,b=this.ticks,l=this.chart.hasRendered&&g(this.oldMin);if(!e||c>=this.min&&c<=this.max)b[c]||(b[c]=new E(this,c)),l&&b[c].isNew&&b[c].render(a,!0,-1),b[c].render(a)};B.prototype.render=function(){var c=this,a=c.chart,e=c.logarithmic,b=c.options,l=c.isLinked,h=c.tickPositions,m=c.axisTitle,u=c.ticks,d=c.minorTicks,v=c.alternateBands,y=b.stackLabels,I=b.alternateGridColor,\nO=c.tickmarkOffset,t=c.axisLine,B=c.showAxis,w=K(a.renderer.globalAnimation),S,R;c.labelEdge.length=0;c.overlap=!1;[u,d,v].forEach(function(a){p(a,function(a){a.isActive=!1})});if(c.hasData()||l)c.minorTickInterval&&!c.categories&&c.getMinorTickPositions().forEach(function(a){c.renderMinorTick(a)}),h.length&&(h.forEach(function(a,e){c.renderTick(a,e)}),O&&(0===c.min||c.single)&&(u[-1]||(u[-1]=new E(c,-1,null,!0)),u[-1].render(-1))),I&&h.forEach(function(k,b){R=\"undefined\"!==typeof h[b+1]?h[b+1]+O:\nc.max-O;0===b%2&&k<c.max&&R<=c.max+(a.polar?-O:O)&&(v[k]||(v[k]=new f.PlotLineOrBand(c)),S=k+O,v[k].options={from:e?e.lin2log(S):S,to:e?e.lin2log(R):R,color:I},v[k].render(),v[k].isActive=!0)}),c._addedPlotLB||((b.plotLines||[]).concat(b.plotBands||[]).forEach(function(a){c.addPlotBandOrLine(a)}),c._addedPlotLB=!0);[u,d,v].forEach(function(c){var e,k=[],b=w.duration;p(c,function(a,c){a.isActive||(a.render(c,!1,0),a.isActive=!1,k.push(c))});G(function(){for(e=k.length;e--;)c[k[e]]&&!c[k[e]].isActive&&\n(c[k[e]].destroy(),delete c[k[e]])},c!==v&&a.hasRendered&&b?b:0)});t&&(t[t.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(t.strokeWidth())}),t.isPlaced=!0,t[B?\"show\":\"hide\"](B));m&&B&&(b=c.getTitlePosition(),g(b.y)?(m[m.isNew?\"attr\":\"animate\"](b),m.isNew=!1):(m.attr(\"y\",-9999),m.isNew=!0));y&&y.enabled&&c.stacking&&c.stacking.renderStackTotals();c.isDirty=!1;n(this,\"afterRender\")};B.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(c){c.render()}));this.series.forEach(function(c){c.isDirty=\n!0})};B.prototype.getKeepProps=function(){return this.keepProps||B.keepProps};B.prototype.destroy=function(c){var a=this,e=a.plotLinesAndBands,b;n(this,\"destroy\",{keepEvents:c});c||u(a);[a.ticks,a.minorTicks,a.alternateBands].forEach(function(a){C(a)});if(e)for(c=e.length;c--;)e[c].destroy();\"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function(c){a[c]&&(a[c]=a[c].destroy())});for(b in a.plotLinesAndBandsGroups)a.plotLinesAndBandsGroups[b]=a.plotLinesAndBandsGroups[b].destroy();\np(a,function(c,e){-1===a.getKeepProps().indexOf(e)&&delete a[e]})};B.prototype.drawCrosshair=function(c,a){var e=this.crosshair,b=l(e.snap,!0),g,h=this.cross,p=this.chart;n(this,\"drawCrosshair\",{e:c,point:a});c||(c=this.cross&&this.cross.e);if(this.crosshair&&!1!==(H(a)||!b)){b?H(a)&&(g=l(\"colorAxis\"!==this.coll?a.crosshairPos:null,this.isXAxis?a.plotX:this.len-a.plotY)):g=c&&(this.horiz?c.chartX-this.pos:this.len-c.chartY+this.pos);if(H(g)){var m={value:a&&(this.isXAxis?a.x:l(a.stackY,a.y)),translatedValue:g};\np.polar&&w(m,{isCrosshair:!0,chartX:c&&c.chartX,chartY:c&&c.chartY,point:a});m=this.getPlotLinePath(m)||null}if(!H(m)){this.hideCrosshair();return}b=this.categories&&!this.isRadial;h||(this.cross=h=p.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(b?\"category \":\"thin \")+e.className).attr({zIndex:l(e.zIndex,2)}).add(),p.styledMode||(h.attr({stroke:e.color||(b?d.parse(\"#ccd6eb\").setOpacity(.25).get():\"#cccccc\"),\"stroke-width\":l(e.width,1)}).css({\"pointer-events\":\"none\"}),e.dashStyle&&\nh.attr({dashstyle:e.dashStyle})));h.show().attr({d:m});b&&!e.width&&h.attr({\"stroke-width\":this.transA});this.cross.e=c}else this.hideCrosshair();n(this,\"afterDrawCrosshair\",{e:c,point:a})};B.prototype.hideCrosshair=function(){this.cross&&this.cross.hide();n(this,\"afterHideCrosshair\")};B.prototype.hasVerticalPanning=function(){var c,a;return/y/.test((null===(a=null===(c=this.chart.options.chart)||void 0===c?void 0:c.panning)||void 0===a?void 0:a.type)||\"\")};B.defaultOptions={dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",\nrange:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e. %b\"},week:{main:\"%e. %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"}},maxPadding:.01,minorTickLength:2,minorTickPosition:\"outside\",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",\nstyle:{color:\"#666666\"}},type:\"linear\",minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",tickColor:\"#ccd6eb\"};B.defaultYAxisOptions={endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){var c=this.axis.chart.numberFormatter;return c(this.total,\n-1)},style:{color:\"#000000\",fontSize:\"11px\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};B.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};B.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};B.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.keepProps=\"extKey hcEvents names series userMax userMin\".split(\" \");return B}();\nf.Axis=q;return f.Axis});Q(A,\"parts/DateTimeAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.getMagnitude,M=f.normalizeTickInterval,K=f.timeUnits,J=function(){function d(d){this.axis=d}d.prototype.normalizeTimeTickInterval=function(d,f){var x=f||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]];f=x[x.length-1];var C=\nK[f[0]],D=f[1],w;for(w=0;w<x.length&&!(f=x[w],C=K[f[0]],D=f[1],x[w+1]&&d<=(C*D[D.length-1]+K[x[w+1][0]])/2);w++);C===K.year&&d<5*C&&(D=[1,2,5]);d=M(d/C,D,\"year\"===f[0]?Math.max(q(d/C),1):1);return{unitRange:C,count:d,unitName:f[0]}};return d}();f=function(){function d(){}d.compose=function(d){d.keepProps.push(\"dateTime\");d.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};E(d,\"init\",function(d){\"datetime\"!==d.userOptions.type?this.dateTime=void 0:\nthis.dateTime||(this.dateTime=new J(this))})};d.AdditionsClass=J;return d}();f.compose(d);return f});Q(A,\"parts/LogarithmicAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.getMagnitude,M=f.normalizeTickInterval,K=f.pick,J=function(){function d(d){this.axis=d}d.prototype.getLogTickPositions=function(d,f,H,C){var x=this.axis,w=x.len,n=x.options,t=[];C||(this.minorAutoInterval=void 0);if(.5<=d)d=Math.round(d),t=x.getLinearTickPositions(d,f,H);else if(.08<=d){n=\nMath.floor(f);var N,m;for(w=.3<d?[1,2,4]:.15<d?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];n<H+1&&!m;n++){var b=w.length;for(N=0;N<b&&!m;N++){var g=this.log2lin(this.lin2log(n)*w[N]);g>f&&(!C||v<=H)&&\"undefined\"!==typeof v&&t.push(v);v>H&&(m=!0);var v=g}}}else f=this.lin2log(f),H=this.lin2log(H),d=C?x.getMinorTickInterval():n.tickInterval,d=K(\"auto\"===d?null:d,this.minorAutoInterval,n.tickPixelInterval/(C?5:1)*(H-f)/((C?w/x.tickPositions.length:w)||1)),d=M(d,void 0,q(d)),t=x.getLinearTickPositions(d,f,H).map(this.log2lin),\nC||(this.minorAutoInterval=d/5);C||(x.tickInterval=d);return t};d.prototype.lin2log=function(d){return Math.pow(10,d)};d.prototype.log2lin=function(d){return Math.log(d)/Math.LN10};return d}();f=function(){function d(){}d.compose=function(d){d.keepProps.push(\"logarithmic\");var f=d.prototype,x=J.prototype;f.log2lin=x.log2lin;f.lin2log=x.lin2log;E(d,\"init\",function(d){var f=this.logarithmic;\"logarithmic\"!==d.userOptions.type?this.logarithmic=void 0:(f||(f=this.logarithmic=new J(this)),this.log2lin!==\nf.log2lin&&(f.log2lin=this.log2lin.bind(this)),this.lin2log!==f.lin2log&&(f.lin2log=this.lin2log.bind(this)))});E(d,\"afterInit\",function(){var d=this.logarithmic;d&&(this.lin2val=function(f){return d.lin2log(f)},this.val2lin=function(f){return d.log2lin(f)})})};return d}();f.compose(d);return f});Q(A,\"parts/PlotLineOrBand.js\",[A[\"parts/Globals.js\"],A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(d,f,E){var q=E.arrayMax,M=E.arrayMin,K=E.defined,J=E.destroyObjectProperties,L=E.erase,x=E.extend,\nF=E.merge,H=E.objectEach,C=E.pick,D=function(){function f(d,f){this.axis=d;f&&(this.options=f,this.id=f.id)}f.prototype.render=function(){d.fireEvent(this,\"render\");var f=this,t=f.axis,w=t.horiz,m=t.logarithmic,b=f.options,g=b.label,v=f.label,h=b.to,e=b.from,p=b.value,l=K(e)&&K(h),I=K(p),u=f.svgElem,y=!u,G=[],S=b.color,R=C(b.zIndex,0),B=b.events;G={\"class\":\"highcharts-plot-\"+(l?\"band \":\"line \")+(b.className||\"\")};var c={},a=t.chart.renderer,k=l?\"bands\":\"lines\";m&&(e=m.log2lin(e),h=m.log2lin(h),p=\nm.log2lin(p));t.chart.styledMode||(I?(G.stroke=S||\"#999999\",G[\"stroke-width\"]=C(b.width,1),b.dashStyle&&(G.dashstyle=b.dashStyle)):l&&(G.fill=S||\"#e6ebf5\",b.borderWidth&&(G.stroke=b.borderColor,G[\"stroke-width\"]=b.borderWidth)));c.zIndex=R;k+=\"-\"+R;(m=t.plotLinesAndBandsGroups[k])||(t.plotLinesAndBandsGroups[k]=m=a.g(\"plot-\"+k).attr(c).add());y&&(f.svgElem=u=a.path().attr(G).add(m));if(I)G=t.getPlotLinePath({value:p,lineWidth:u.strokeWidth(),acrossPanes:b.acrossPanes});else if(l)G=t.getPlotBandPath(e,\nh,b);else return;(y||!u.d)&&G&&G.length?(u.attr({d:G}),B&&H(B,function(a,c){u.on(c,function(a){B[c].apply(f,[a])})})):u&&(G?(u.show(!0),u.animate({d:G})):u.d&&(u.hide(),v&&(f.label=v=v.destroy())));g&&(K(g.text)||K(g.formatter))&&G&&G.length&&0<t.width&&0<t.height&&!G.isFlat?(g=F({align:w&&l&&\"center\",x:w?!l&&4:10,verticalAlign:!w&&l&&\"middle\",y:w?l?16:10:l?6:-4,rotation:w&&!l&&90},g),this.renderLabel(g,G,l,R)):v&&v.hide();return f};f.prototype.renderLabel=function(d,f,w,m){var b=this.label,g=this.axis.chart.renderer;\nb||(b={align:d.textAlign||d.align,rotation:d.rotation,\"class\":\"highcharts-plot-\"+(w?\"band\":\"line\")+\"-label \"+(d.className||\"\")},b.zIndex=m,m=this.getLabelText(d),this.label=b=g.text(m,0,0,d.useHTML).attr(b).add(),this.axis.chart.styledMode||b.css(d.style));g=f.xBounds||[f[0][1],f[1][1],w?f[2][1]:f[0][1]];f=f.yBounds||[f[0][2],f[1][2],w?f[2][2]:f[0][2]];w=M(g);m=M(f);b.align(d,!1,{x:w,y:m,width:q(g)-w,height:q(f)-m});b.show(!0)};f.prototype.getLabelText=function(d){return K(d.formatter)?d.formatter.call(this):\nd.text};f.prototype.destroy=function(){L(this.axis.plotLinesAndBands,this);delete this.axis;J(this)};return f}();x(f.prototype,{getPlotBandPath:function(d,f){var n=this.getPlotLinePath({value:f,force:!0,acrossPanes:this.options.acrossPanes}),w=this.getPlotLinePath({value:d,force:!0,acrossPanes:this.options.acrossPanes}),m=[],b=this.horiz,g=1;d=d<this.min&&f<this.min||d>this.max&&f>this.max;if(w&&n){if(d){var v=w.toString()===n.toString();g=0}for(d=0;d<w.length;d+=2){f=w[d];var h=w[d+1],e=n[d],p=n[d+\n1];\"M\"!==f[0]&&\"L\"!==f[0]||\"M\"!==h[0]&&\"L\"!==h[0]||\"M\"!==e[0]&&\"L\"!==e[0]||\"M\"!==p[0]&&\"L\"!==p[0]||(b&&e[1]===f[1]?(e[1]+=g,p[1]+=g):b||e[2]!==f[2]||(e[2]+=g,p[2]+=g),m.push([\"M\",f[1],f[2]],[\"L\",h[1],h[2]],[\"L\",p[1],p[2]],[\"L\",e[1],e[2]],[\"Z\"]));m.isFlat=v}}return m},addPlotBand:function(d){return this.addPlotBandOrLine(d,\"plotBands\")},addPlotLine:function(d){return this.addPlotBandOrLine(d,\"plotLines\")},addPlotBandOrLine:function(d,f){var n=(new D(this,d)).render(),w=this.userOptions;if(n){if(f){var m=\nw[f]||[];m.push(d);w[f]=m}this.plotLinesAndBands.push(n)}return n},removePlotBandOrLine:function(d){for(var f=this.plotLinesAndBands,t=this.options,w=this.userOptions,m=f.length;m--;)f[m].id===d&&f[m].destroy();[t.plotLines||[],w.plotLines||[],t.plotBands||[],w.plotBands||[]].forEach(function(b){for(m=b.length;m--;)(b[m]||{}).id===d&&L(b,b[m])})},removePlotBand:function(d){this.removePlotBandOrLine(d)},removePlotLine:function(d){this.removePlotBandOrLine(d)}});d.PlotLineOrBand=D;return d.PlotLineOrBand});\nQ(A,\"parts/Tooltip.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.clamp,q=f.css,M=f.defined,K=f.discardElement,J=f.extend,L=f.fireEvent,x=f.format,F=f.isNumber,H=f.isString,C=f.merge,D=f.pick,w=f.splat,n=f.syncTimeout,t=f.timeUnits;\"\";var N=d.doc,m=function(){function b(b,d){this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=b;this.init(b,d)}b.prototype.applyFilter=function(){var b=this.chart;b.renderer.definition({tagName:\"filter\",\nid:\"drop-shadow-\"+b.index,opacity:.5,children:[{tagName:\"feGaussianBlur\",\"in\":\"SourceAlpha\",stdDeviation:1},{tagName:\"feOffset\",dx:1,dy:1},{tagName:\"feComponentTransfer\",children:[{tagName:\"feFuncA\",type:\"linear\",slope:.3}]},{tagName:\"feMerge\",children:[{tagName:\"feMergeNode\"},{tagName:\"feMergeNode\",\"in\":\"SourceGraphic\"}]}]});b.renderer.definition({tagName:\"style\",textContent:\".highcharts-tooltip-\"+b.index+\"{filter:url(#drop-shadow-\"+b.index+\")}\"})};b.prototype.bodyFormatter=function(b){return b.map(function(b){var g=\nb.series.tooltipOptions;return(g[(b.point.formatPrefix||\"point\")+\"Formatter\"]||b.point.tooltipFormatter).call(b.point,g[(b.point.formatPrefix||\"point\")+\"Format\"]||\"\")})};b.prototype.cleanSplit=function(b){this.chart.series.forEach(function(g){var h=g&&g.tt;h&&(!h.isActive||b?g.tt=h.destroy():h.isActive=!1)})};b.prototype.defaultFormatter=function(b){var g=this.points||w(this);var h=[b.tooltipFooterHeaderFormatter(g[0])];h=h.concat(b.bodyFormatter(g));h.push(b.tooltipFooterHeaderFormatter(g[0],!0));\nreturn h};b.prototype.destroy=function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());this.renderer&&(this.renderer=this.renderer.destroy(),K(this.container));f.clearTimeout(this.hideTimer);f.clearTimeout(this.tooltipTimeout)};b.prototype.getAnchor=function(b,d){var g=this.chart,e=g.pointer,p=g.inverted,l=g.plotTop,m=g.plotLeft,u=0,f=0,v,n;b=w(b);this.followPointer&&d?(\"undefined\"===typeof d.chartX&&(d=e.normalize(d)),\nb=[d.chartX-m,d.chartY-l]):b[0].tooltipPos?b=b[0].tooltipPos:(b.forEach(function(e){v=e.series.yAxis;n=e.series.xAxis;u+=e.plotX+(!p&&n?n.left-m:0);f+=(e.plotLow?(e.plotLow+e.plotHigh)/2:e.plotY)+(!p&&v?v.top-l:0)}),u/=b.length,f/=b.length,b=[p?g.plotWidth-f:u,this.shared&&!p&&1<b.length&&d?d.chartY-l:p?g.plotHeight-u:f]);return b.map(Math.round)};b.prototype.getDateFormat=function(b,d,h,e){var g=this.chart.time,l=g.dateFormat(\"%m-%d %H:%M:%S.%L\",d),m={millisecond:15,second:12,minute:9,hour:6,day:3},\nu=\"millisecond\";for(f in t){if(b===t.week&&+g.dateFormat(\"%w\",d)===h&&\"00:00:00.000\"===l.substr(6)){var f=\"week\";break}if(t[f]>b){f=u;break}if(m[f]&&l.substr(m[f])!==\"01-01 00:00:00.000\".substr(m[f]))break;\"week\"!==f&&(u=f)}if(f)var v=g.resolveDTLFormat(e[f]).main;return v};b.prototype.getLabel=function(){var b,m,h=this,e=this.chart.renderer,p=this.chart.styledMode,l=this.options,f=\"tooltip\"+(M(l.className)?\" \"+l.className:\"\"),u=(null===(b=l.style)||void 0===b?void 0:b.pointerEvents)||(!this.followPointer&&\nl.stickOnContact?\"auto\":\"none\"),y;b=function(){h.inContact=!0};var G=function(){var e=h.chart.hoverSeries;h.inContact=!1;if(e&&e.onMouseOut)e.onMouseOut()};if(!this.label){this.outside&&(this.container=y=d.doc.createElement(\"div\"),y.className=\"highcharts-tooltip-container\",q(y,{position:\"absolute\",top:\"1px\",pointerEvents:u,zIndex:3}),d.doc.body.appendChild(y),this.renderer=e=new d.Renderer(y,0,0,null===(m=this.chart.options.chart)||void 0===m?void 0:m.style,void 0,void 0,e.styledMode));this.split?\nthis.label=e.g(f):(this.label=e.label(\"\",0,0,l.shape||\"callout\",null,null,l.useHTML,null,f).attr({padding:l.padding,r:l.borderRadius}),p||this.label.attr({fill:l.backgroundColor,\"stroke-width\":l.borderWidth}).css(l.style).css({pointerEvents:u}).shadow(l.shadow));p&&(this.applyFilter(),this.label.addClass(\"highcharts-tooltip-\"+this.chart.index));if(h.outside&&!h.split){var n={x:this.label.xSetter,y:this.label.ySetter};this.label.xSetter=function(e,b){n[b].call(this.label,h.distance);y.style.left=e+\n\"px\"};this.label.ySetter=function(e,b){n[b].call(this.label,h.distance);y.style.top=e+\"px\"}}this.label.on(\"mouseenter\",b).on(\"mouseleave\",G).attr({zIndex:8}).add()}return this.label};b.prototype.getPosition=function(b,d,h){var e=this.chart,g=this.distance,l={},m=e.inverted&&h.h||0,u,f=this.outside,v=f?N.documentElement.clientWidth-2*g:e.chartWidth,n=f?Math.max(N.body.scrollHeight,N.documentElement.scrollHeight,N.body.offsetHeight,N.documentElement.offsetHeight,N.documentElement.clientHeight):e.chartHeight,\nt=e.pointer.getChartPosition(),B=e.containerScaling,c=function(a){return B?a*B.scaleX:a},a=function(a){return B?a*B.scaleY:a},k=function(k){var l=\"x\"===k;return[k,l?v:n,l?b:d].concat(f?[l?c(b):a(d),l?t.left-g+c(h.plotX+e.plotLeft):t.top-g+a(h.plotY+e.plotTop),0,l?v:n]:[l?b:d,l?h.plotX+e.plotLeft:h.plotY+e.plotTop,l?e.plotLeft:e.plotTop,l?e.plotLeft+e.plotWidth:e.plotTop+e.plotHeight])},r=k(\"y\"),z=k(\"x\"),w=!this.followPointer&&D(h.ttBelow,!e.inverted===!!h.negative),x=function(e,b,k,h,p,r,d){var u=\n\"y\"===e?a(g):c(g),f=(k-h)/2,v=h<p-g,y=p+g+h<b,z=p-u-k+f;p=p+u-f;if(w&&y)l[e]=p;else if(!w&&v)l[e]=z;else if(v)l[e]=Math.min(d-h,0>z-m?z:z-m);else if(y)l[e]=Math.max(r,p+m+k>b?p:p+m);else return!1},C=function(a,c,e,b,k){var h;k<g||k>c-g?h=!1:l[a]=k<e/2?1:k>c-b/2?c-b-2:k-e/2;return h},q=function(a){var c=r;r=z;z=c;u=a},T=function(){!1!==x.apply(0,r)?!1!==C.apply(0,z)||u||(q(!0),T()):u?l.x=l.y=0:(q(!0),T())};(e.inverted||1<this.len)&&q();T();return l};b.prototype.getXDateFormat=function(b,d,h){d=d.dateTimeLabelFormats;\nvar e=h&&h.closestPointRange;return(e?this.getDateFormat(e,b.x,h.options.startOfWeek,d):d.day)||d.year};b.prototype.hide=function(b){var g=this;f.clearTimeout(this.hideTimer);b=D(b,this.options.hideDelay,500);this.isHidden||(this.hideTimer=n(function(){g.getLabel().fadeOut(b?void 0:b);g.isHidden=!0},b))};b.prototype.init=function(b,d){this.chart=b;this.options=d;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=d.split&&!b.inverted&&!b.polar;this.shared=d.shared||this.split;this.outside=\nD(d.outside,!(!b.scrollablePixelsX&&!b.scrollablePixelsY))};b.prototype.isStickyOnContact=function(){return!(this.followPointer||!this.options.stickOnContact||!this.inContact)};b.prototype.move=function(b,d,h,e){var g=this,l=g.now,m=!1!==g.options.animation&&!g.isHidden&&(1<Math.abs(b-l.x)||1<Math.abs(d-l.y)),u=g.followPointer||1<g.len;J(l,{x:m?(2*l.x+b)/3:b,y:m?(l.y+d)/2:d,anchorX:u?void 0:m?(2*l.anchorX+h)/3:h,anchorY:u?void 0:m?(l.anchorY+e)/2:e});g.getLabel().attr(l);g.drawTracker();m&&(f.clearTimeout(this.tooltipTimeout),\nthis.tooltipTimeout=setTimeout(function(){g&&g.move(b,d,h,e)},32))};b.prototype.refresh=function(b,d){var h=this.chart,e=this.options,g=b,l={},m=[],u=e.formatter||this.defaultFormatter;l=this.shared;var v=h.styledMode;if(e.enabled){f.clearTimeout(this.hideTimer);this.followPointer=w(g)[0].series.tooltipOptions.followPointer;var n=this.getAnchor(g,d);d=n[0];var t=n[1];!l||g.series&&g.series.noSharedTooltip?l=g.getLabelConfig():(h.pointer.applyInactiveState(g),g.forEach(function(e){e.setState(\"hover\");\nm.push(e.getLabelConfig())}),l={x:g[0].category,y:g[0].y},l.points=m,g=g[0]);this.len=m.length;h=u.call(l,this);u=g.series;this.distance=D(u.tooltipOptions.distance,16);!1===h?this.hide():(this.split?this.renderSplit(h,w(b)):(b=this.getLabel(),e.style.width&&!v||b.css({width:this.chart.spacingBox.width+\"px\"}),b.attr({text:h&&h.join?h.join(\"\"):h}),b.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\"+D(g.colorIndex,u.colorIndex)),v||b.attr({stroke:e.borderColor||g.color||u.color||\"#666666\"}),\nthis.updatePosition({plotX:d,plotY:t,negative:g.negative,ttBelow:g.ttBelow,h:n[2]||0})),this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1);L(this,\"refresh\")}};b.prototype.renderSplit=function(b,m){function g(a,c,e,b,k){void 0===k&&(k=!0);e?(c=C?0:F,a=E(a-b/2,x.left,x.right-b)):(c-=T,a=k?a-b-r:a+r,a=E(a,k?a:x.left,x.right));return{x:a,y:c}}var e=this,p=e.chart,l=e.chart,f=l.plotHeight,u=l.plotLeft,v=l.plotTop,n=l.pointer,t=l.renderer,w=l.scrollablePixelsY,B=void 0===w?\n0:w;w=l.scrollingContainer;w=void 0===w?{scrollLeft:0,scrollTop:0}:w;var c=w.scrollLeft,a=w.scrollTop,k=l.styledMode,r=e.distance,z=e.options,P=e.options.positioner,x={left:c,right:c+l.chartWidth,top:a,bottom:a+l.chartHeight},q=e.getLabel(),C=!(!p.xAxis[0]||!p.xAxis[0].opposite),T=v+a,N=0,F=f-B;H(b)&&(b=[!1,b]);b=b.slice(0,m.length+1).reduce(function(c,b,l){if(!1!==b&&\"\"!==b){l=m[l-1]||{isHeader:!0,plotX:m[0].plotX,plotY:f,series:{}};var h=l.isHeader,d=h?e:l.series,p=d.tt,y=l.isHeader;var n=l.series;\nvar G=\"highcharts-color-\"+D(l.colorIndex,n.colorIndex,\"none\");p||(p={padding:z.padding,r:z.borderRadius},k||(p.fill=z.backgroundColor,p[\"stroke-width\"]=z.borderWidth),p=t.label(\"\",0,0,z[y?\"headerShape\":\"shape\"]||\"callout\",void 0,void 0,z.useHTML).addClass((y?\"highcharts-tooltip-header \":\"\")+\"highcharts-tooltip-box \"+G).attr(p).add(q));p.isActive=!0;p.attr({text:b});k||p.css(z.style).shadow(z.shadow).attr({stroke:z.borderColor||l.color||n.color||\"#333333\"});b=d.tt=p;y=b.getBBox();d=y.width+b.strokeWidth();\nh&&(N=y.height,F+=N,C&&(T-=N));n=l.plotX;n=void 0===n?0:n;G=l.plotY;G=void 0===G?0:G;var O=l.series;if(l.isHeader){n=u+n;var I=v+f/2}else p=O.xAxis,O=O.yAxis,n=p.pos+E(n,-r,p.len+r),O.pos+G>=a+v&&O.pos+G<=a+v+f-B&&(I=O.pos+G);n=E(n,x.left-r,x.right+r);\"number\"===typeof I?(y=y.height+1,G=P?P.call(e,d,y,l):g(n,I,h,d),c.push({align:P?0:void 0,anchorX:n,anchorY:I,boxWidth:d,point:l,rank:D(G.rank,h?1:0),size:y,target:G.y,tt:b,x:G.x})):b.isActive=!1}return c},[]);!P&&b.some(function(a){return a.x<x.left})&&\n(b=b.map(function(a){var c=g(a.anchorX,a.anchorY,a.point.isHeader,a.boxWidth,!1);return J(a,{target:c.y,x:c.x})}));e.cleanSplit();d.distribute(b,F);b.forEach(function(a){var c=a.pos;a.tt.attr({visibility:\"undefined\"===typeof c?\"hidden\":\"inherit\",x:a.x,y:c+T,anchorX:a.anchorX,anchorY:a.anchorY})});b=e.container;p=e.renderer;e.outside&&b&&p&&(l=q.getBBox(),p.setSize(l.width+l.x,l.height+l.y,!1),n=n.getChartPosition(),b.style.left=n.left+\"px\",b.style.top=n.top+\"px\")};b.prototype.drawTracker=function(){if(this.followPointer||\n!this.options.stickOnContact)this.tracker&&this.tracker.destroy();else{var b=this.chart,d=this.label,h=b.hoverPoint;if(d&&h){var e={x:0,y:0,width:0,height:0};h=this.getAnchor(h);var p=d.getBBox();h[0]+=b.plotLeft-d.translateX;h[1]+=b.plotTop-d.translateY;e.x=Math.min(0,h[0]);e.y=Math.min(0,h[1]);e.width=0>h[0]?Math.max(Math.abs(h[0]),p.width-h[0]):Math.max(Math.abs(h[0]),p.width);e.height=0>h[1]?Math.max(Math.abs(h[1]),p.height-Math.abs(h[1])):Math.max(Math.abs(h[1]),p.height);this.tracker?this.tracker.attr(e):\n(this.tracker=d.renderer.rect(e).addClass(\"highcharts-tracker\").add(d),b.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}};b.prototype.styledModeFormat=function(b){return b.replace('style=\"font-size: 10px\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex}\"')};b.prototype.tooltipFooterHeaderFormatter=function(b,d){var h=d?\"footer\":\"header\",e=b.series,g=e.tooltipOptions,l=g.xDateFormat,m=e.xAxis,u=m&&\"datetime\"===m.options.type&&\nF(b.key),f=g[h+\"Format\"];d={isFooter:d,labelConfig:b};L(this,\"headerFormatter\",d,function(h){u&&!l&&(l=this.getXDateFormat(b,g,m));u&&l&&(b.point&&b.point.tooltipDateKeys||[\"key\"]).forEach(function(e){f=f.replace(\"{point.\"+e+\"}\",\"{point.\"+e+\":\"+l+\"}\")});e.chart.styledMode&&(f=this.styledModeFormat(f));h.text=x(f,{point:b,series:e},this.chart)});return d.text};b.prototype.update=function(b){this.destroy();C(!0,this.chart.options.tooltip.userOptions,b);this.init(this.chart,C(!0,this.options,b))};b.prototype.updatePosition=\nfunction(b){var g=this.chart,h=g.pointer,e=this.getLabel(),d=b.plotX+g.plotLeft,l=b.plotY+g.plotTop;h=h.getChartPosition();b=(this.options.positioner||this.getPosition).call(this,e.width,e.height,b);if(this.outside){var m=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(e.width+m,e.height+m,!1);if(g=g.containerScaling)q(this.container,{transform:\"scale(\"+g.scaleX+\", \"+g.scaleY+\")\"}),d*=g.scaleX,l*=g.scaleY;d+=h.left-b.x;l+=h.top-b.y}this.move(Math.round(b.x),Math.round(b.y||0),\nd,l)};return b}();d.Tooltip=m;return d.Tooltip});Q(A,\"parts/Pointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"parts/Tooltip.js\"],A[\"parts/Color.js\"]],function(d,f,E,q){var M=f.addEvent,K=f.attr,J=f.css,L=f.defined,x=f.extend,F=f.find,H=f.fireEvent,C=f.isNumber,D=f.isObject,w=f.objectEach,n=f.offset,t=f.pick,N=f.splat,m=q.parse,b=d.charts,g=d.noop;f=function(){function f(b,e){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.chart=b;this.hasDragged=!1;this.options=e;this.unbindContainerMouseLeave=\nfunction(){};this.init(b,e)}f.prototype.applyInactiveState=function(b){var e=[],h;(b||[]).forEach(function(b){h=b.series;e.push(h);h.linkedParent&&e.push(h.linkedParent);h.linkedSeries&&(e=e.concat(h.linkedSeries));h.navigatorSeries&&e.push(h.navigatorSeries)});this.chart.series.forEach(function(b){-1===e.indexOf(b)?b.setState(\"inactive\",!0):b.options.inactiveOtherPoints&&b.setAllPointsToState(\"inactive\")})};f.prototype.destroy=function(){var b=this;\"undefined\"!==typeof b.unDocMouseMove&&b.unDocMouseMove();\nthis.unbindContainerMouseLeave();d.chartCount||(d.unbindDocumentMouseUp&&(d.unbindDocumentMouseUp=d.unbindDocumentMouseUp()),d.unbindDocumentTouchEnd&&(d.unbindDocumentTouchEnd=d.unbindDocumentTouchEnd()));clearInterval(b.tooltipTimeout);w(b,function(e,h){b[h]=null})};f.prototype.drag=function(b){var e=this.chart,h=e.options.chart,l=b.chartX,g=b.chartY,d=this.zoomHor,f=this.zoomVert,v=e.plotLeft,n=e.plotTop,t=e.plotWidth,B=e.plotHeight,c=this.selectionMarker,a=this.mouseDownX||0,k=this.mouseDownY||\n0,r=D(h.panning)?h.panning&&h.panning.enabled:h.panning,z=h.panKey&&b[h.panKey+\"Key\"];if(!c||!c.touch)if(l<v?l=v:l>v+t&&(l=v+t),g<n?g=n:g>n+B&&(g=n+B),this.hasDragged=Math.sqrt(Math.pow(a-l,2)+Math.pow(k-g,2)),10<this.hasDragged){var w=e.isInsidePlot(a-v,k-n);e.hasCartesianSeries&&(this.zoomX||this.zoomY)&&w&&!z&&!c&&(this.selectionMarker=c=e.renderer.rect(v,n,d?1:t,f?1:B,0).attr({\"class\":\"highcharts-selection-marker\",zIndex:7}).add(),e.styledMode||c.attr({fill:h.selectionMarkerFill||m(\"#335cad\").setOpacity(.25).get()}));\nc&&d&&(l-=a,c.attr({width:Math.abs(l),x:(0<l?0:l)+a}));c&&f&&(l=g-k,c.attr({height:Math.abs(l),y:(0<l?0:l)+k}));w&&!c&&r&&e.pan(b,h.panning)}};f.prototype.dragStart=function(b){var e=this.chart;e.mouseIsDown=b.type;e.cancelClick=!1;e.mouseDownX=this.mouseDownX=b.chartX;e.mouseDownY=this.mouseDownY=b.chartY};f.prototype.drop=function(b){var e=this,h=this.chart,l=this.hasPinched;if(this.selectionMarker){var g={originalEvent:b,xAxis:[],yAxis:[]},d=this.selectionMarker,m=d.attr?d.attr(\"x\"):d.x,f=d.attr?\nd.attr(\"y\"):d.y,v=d.attr?d.attr(\"width\"):d.width,n=d.attr?d.attr(\"height\"):d.height,B;if(this.hasDragged||l)h.axes.forEach(function(c){if(c.zoomEnabled&&L(c.min)&&(l||e[{xAxis:\"zoomX\",yAxis:\"zoomY\"}[c.coll]])){var a=c.horiz,k=\"touchend\"===b.type?c.minPixelPadding:0,h=c.toValue((a?m:f)+k);a=c.toValue((a?m+v:f+n)-k);g[c.coll].push({axis:c,min:Math.min(h,a),max:Math.max(h,a)});B=!0}}),B&&H(h,\"selection\",g,function(c){h.zoom(x(c,l?{animation:!1}:null))});C(h.index)&&(this.selectionMarker=this.selectionMarker.destroy());\nl&&this.scaleGroups()}h&&C(h.index)&&(J(h.container,{cursor:h._cursor}),h.cancelClick=10<this.hasDragged,h.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])};f.prototype.findNearestKDPoint=function(b,e,g){var l=this.chart,h=l.hoverPoint;l=l.tooltip;if(h&&l&&l.isStickyOnContact())return h;var d;b.forEach(function(b){var l=!(b.noSharedTooltip&&e)&&0>b.options.findNearestPointBy.indexOf(\"y\");b=b.searchPoint(g,l);if((l=D(b,!0))&&!(l=!D(d,!0))){l=d.distX-b.distX;var h=d.dist-b.dist,p=(b.series.group&&\nb.series.group.zIndex)-(d.series.group&&d.series.group.zIndex);l=0<(0!==l&&e?l:0!==h?h:0!==p?p:d.series.index>b.series.index?-1:1)}l&&(d=b)});return d};f.prototype.getChartCoordinatesFromPoint=function(b,e){var h=b.series,l=h.xAxis;h=h.yAxis;var g=t(b.clientX,b.plotX),d=b.shapeArgs;if(l&&h)return e?{chartX:l.len+l.pos-g,chartY:h.len+h.pos-b.plotY}:{chartX:g+l.pos,chartY:b.plotY+h.pos};if(d&&d.x&&d.y)return{chartX:d.x,chartY:d.y}};f.prototype.getChartPosition=function(){return this.chartPosition||\n(this.chartPosition=n(this.chart.container))};f.prototype.getCoordinates=function(b){var e={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(h){e[h.isXAxis?\"xAxis\":\"yAxis\"].push({axis:h,value:h.toValue(b[h.horiz?\"chartX\":\"chartY\"])})});return e};f.prototype.getHoverData=function(b,e,g,l,d,m){var h,p=[];l=!(!l||!b);var f=e&&!e.stickyTracking,u={chartX:m?m.chartX:void 0,chartY:m?m.chartY:void 0,shared:d};H(this,\"beforeGetHoverData\",u);f=f?[e]:g.filter(function(e){return u.filter?u.filter(e):e.visible&&\n!(!d&&e.directTouch)&&t(e.options.enableMouseTracking,!0)&&e.stickyTracking});e=(h=l||!m?b:this.findNearestKDPoint(f,d,m))&&h.series;h&&(d&&!e.noSharedTooltip?(f=g.filter(function(e){return u.filter?u.filter(e):e.visible&&!(!d&&e.directTouch)&&t(e.options.enableMouseTracking,!0)&&!e.noSharedTooltip}),f.forEach(function(e){var c=F(e.points,function(a){return a.x===h.x&&!a.isNull});D(c)&&(e.chart.isBoosting&&(c=e.getPoint(c)),p.push(c))})):p.push(h));u={hoverPoint:h};H(this,\"afterGetHoverData\",u);return{hoverPoint:u.hoverPoint,\nhoverSeries:e,hoverPoints:p}};f.prototype.getPointFromEvent=function(b){b=b.target;for(var e;b&&!e;)e=b.point,b=b.parentNode;return e};f.prototype.onTrackerMouseOut=function(b){b=b.relatedTarget||b.toElement;var e=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!e||!b||e.stickyTracking||this.inClass(b,\"highcharts-tooltip\")||this.inClass(b,\"highcharts-series-\"+e.index)&&this.inClass(b,\"highcharts-tracker\")))e.onMouseOut()};f.prototype.inClass=function(b,e){for(var g;b;){if(g=K(b,\"class\")){if(-1!==\ng.indexOf(e))return!0;if(-1!==g.indexOf(\"highcharts-container\"))return!1}b=b.parentNode}};f.prototype.init=function(b,e){this.options=e;this.chart=b;this.runChartClick=e.chart.events&&!!e.chart.events.click;this.pinchDown=[];this.lastValidTouch={};E&&(b.tooltip=new E(b,e.tooltip),this.followTouchMove=t(e.tooltip.followTouchMove,!0));this.setDOMEvents()};f.prototype.normalize=function(b,e){var g=b.touches,l=g?g.length?g.item(0):g.changedTouches[0]:b;e||(e=this.getChartPosition());g=l.pageX-e.left;\ne=l.pageY-e.top;if(l=this.chart.containerScaling)g/=l.scaleX,e/=l.scaleY;return x(b,{chartX:Math.round(g),chartY:Math.round(e)})};f.prototype.onContainerClick=function(b){var e=this.chart,g=e.hoverPoint;b=this.normalize(b);var l=e.plotLeft,h=e.plotTop;e.cancelClick||(g&&this.inClass(b.target,\"highcharts-tracker\")?(H(g.series,\"click\",x(b,{point:g})),e.hoverPoint&&g.firePointEvent(\"click\",b)):(x(b,this.getCoordinates(b)),e.isInsidePlot(b.chartX-l,b.chartY-h)&&H(e,\"click\",b)))};f.prototype.onContainerMouseDown=\nfunction(b){b=this.normalize(b);if(d.isFirefox&&0!==b.button)this.onContainerMouseMove(b);if(\"undefined\"===typeof b.button||1===((b.buttons||b.button)&1))this.zoomOption(b),this.dragStart(b)};f.prototype.onContainerMouseLeave=function(g){var e=b[t(d.hoverChartIndex,-1)],h=this.chart.tooltip;g=this.normalize(g);e&&(g.relatedTarget||g.toElement)&&(e.pointer.reset(),e.pointer.chartPosition=void 0);h&&!h.isHidden&&this.reset()};f.prototype.onContainerMouseMove=function(b){var e=this.chart;b=this.normalize(b);\nthis.setHoverChartIndex();b.preventDefault||(b.returnValue=!1);\"mousedown\"===e.mouseIsDown&&this.drag(b);e.openMenu||!this.inClass(b.target,\"highcharts-tracker\")&&!e.isInsidePlot(b.chartX-e.plotLeft,b.chartY-e.plotTop)||this.runPointActions(b)};f.prototype.onDocumentTouchEnd=function(g){b[d.hoverChartIndex]&&b[d.hoverChartIndex].pointer.drop(g)};f.prototype.onContainerTouchMove=function(b){this.touch(b)};f.prototype.onContainerTouchStart=function(b){this.zoomOption(b);this.touch(b,!0)};f.prototype.onDocumentMouseMove=\nfunction(b){var e=this.chart,g=this.chartPosition;b=this.normalize(b,g);var l=e.tooltip;!g||l&&l.isStickyOnContact()||e.isInsidePlot(b.chartX-e.plotLeft,b.chartY-e.plotTop)||this.inClass(b.target,\"highcharts-tracker\")||this.reset()};f.prototype.onDocumentMouseUp=function(g){var e=b[t(d.hoverChartIndex,-1)];e&&e.pointer.drop(g)};f.prototype.pinch=function(b){var e=this,h=e.chart,l=e.pinchDown,d=b.touches||[],m=d.length,f=e.lastValidTouch,v=e.hasZoom,n=e.selectionMarker,w={},B=1===m&&(e.inClass(b.target,\n\"highcharts-tracker\")&&h.runTrackerClick||e.runChartClick),c={};1<m&&(e.initiated=!0);v&&e.initiated&&!B&&b.preventDefault();[].map.call(d,function(a){return e.normalize(a)});\"touchstart\"===b.type?([].forEach.call(d,function(a,c){l[c]={chartX:a.chartX,chartY:a.chartY}}),f.x=[l[0].chartX,l[1]&&l[1].chartX],f.y=[l[0].chartY,l[1]&&l[1].chartY],h.axes.forEach(function(a){if(a.zoomEnabled){var c=h.bounds[a.horiz?\"h\":\"v\"],e=a.minPixelPadding,b=a.toPixels(Math.min(t(a.options.min,a.dataMin),a.dataMin)),\nl=a.toPixels(Math.max(t(a.options.max,a.dataMax),a.dataMax)),g=Math.max(b,l);c.min=Math.min(a.pos,Math.min(b,l)-e);c.max=Math.max(a.pos+a.len,g+e)}}),e.res=!0):e.followTouchMove&&1===m?this.runPointActions(e.normalize(b)):l.length&&(n||(e.selectionMarker=n=x({destroy:g,touch:!0},h.plotBox)),e.pinchTranslate(l,d,w,n,c,f),e.hasPinched=v,e.scaleGroups(w,c),e.res&&(e.res=!1,this.reset(!1,0)))};f.prototype.pinchTranslate=function(b,e,g,l,d,m){this.zoomHor&&this.pinchTranslateDirection(!0,b,e,g,l,d,m);\nthis.zoomVert&&this.pinchTranslateDirection(!1,b,e,g,l,d,m)};f.prototype.pinchTranslateDirection=function(b,e,g,l,d,m,f,v){var h=this.chart,p=b?\"x\":\"y\",u=b?\"X\":\"Y\",c=\"chart\"+u,a=b?\"width\":\"height\",k=h[\"plot\"+(b?\"Left\":\"Top\")],r,z,y=v||1,n=h.inverted,G=h.bounds[b?\"h\":\"v\"],t=1===e.length,w=e[0][c],I=g[0][c],x=!t&&e[1][c],O=!t&&g[1][c];g=function(){\"number\"===typeof O&&20<Math.abs(w-x)&&(y=v||Math.abs(I-O)/Math.abs(w-x));z=(k-I)/y+w;r=h[\"plot\"+(b?\"Width\":\"Height\")]/y};g();e=z;if(e<G.min){e=G.min;var V=\n!0}else e+r>G.max&&(e=G.max-r,V=!0);V?(I-=.8*(I-f[p][0]),\"number\"===typeof O&&(O-=.8*(O-f[p][1])),g()):f[p]=[I,O];n||(m[p]=z-k,m[a]=r);m=n?1/y:y;d[a]=r;d[p]=e;l[n?b?\"scaleY\":\"scaleX\":\"scale\"+u]=y;l[\"translate\"+u]=m*k+(I-m*w)};f.prototype.reset=function(b,e){var g=this.chart,l=g.hoverSeries,d=g.hoverPoint,h=g.hoverPoints,m=g.tooltip,f=m&&m.shared?h:d;b&&f&&N(f).forEach(function(e){e.series.isCartesian&&\"undefined\"===typeof e.plotX&&(b=!1)});if(b)m&&f&&N(f).length&&(m.refresh(f),m.shared&&h?h.forEach(function(e){e.setState(e.state,\n!0);e.series.isCartesian&&(e.series.xAxis.crosshair&&e.series.xAxis.drawCrosshair(null,e),e.series.yAxis.crosshair&&e.series.yAxis.drawCrosshair(null,e))}):d&&(d.setState(d.state,!0),g.axes.forEach(function(e){e.crosshair&&d.series[e.coll]===e&&e.drawCrosshair(null,d)})));else{if(d)d.onMouseOut();h&&h.forEach(function(e){e.setState()});if(l)l.onMouseOut();m&&m.hide(e);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());g.axes.forEach(function(e){e.hideCrosshair()});this.hoverX=g.hoverPoints=\ng.hoverPoint=null}};f.prototype.runPointActions=function(g,e){var h=this.chart,l=h.tooltip&&h.tooltip.options.enabled?h.tooltip:void 0,m=l?l.shared:!1,f=e||h.hoverPoint,y=f&&f.series||h.hoverSeries;y=this.getHoverData(f,y,h.series,(!g||\"touchmove\"!==g.type)&&(!!e||y&&y.directTouch&&this.isDirectTouch),m,g);f=y.hoverPoint;var v=y.hoverPoints;e=(y=y.hoverSeries)&&y.tooltipOptions.followPointer;m=m&&y&&!y.noSharedTooltip;if(f&&(f!==h.hoverPoint||l&&l.isHidden)){(h.hoverPoints||[]).forEach(function(e){-1===\nv.indexOf(e)&&e.setState()});if(h.hoverSeries!==y)y.onMouseOver();this.applyInactiveState(v);(v||[]).forEach(function(e){e.setState(\"hover\")});h.hoverPoint&&h.hoverPoint.firePointEvent(\"mouseOut\");if(!f.series)return;f.firePointEvent(\"mouseOver\");h.hoverPoints=v;h.hoverPoint=f;l&&l.refresh(m?v:f,g)}else e&&l&&!l.isHidden&&(f=l.getAnchor([{}],g),l.updatePosition({plotX:f[0],plotY:f[1]}));this.unDocMouseMove||(this.unDocMouseMove=M(h.container.ownerDocument,\"mousemove\",function(e){var l=b[d.hoverChartIndex];\nif(l)l.pointer.onDocumentMouseMove(e)}));h.axes.forEach(function(e){var b=t((e.crosshair||{}).snap,!0),l;b&&((l=h.hoverPoint)&&l.series[e.coll]===e||(l=F(v,function(c){return c.series[e.coll]===e})));l||!b?e.drawCrosshair(g,l):e.hideCrosshair()})};f.prototype.scaleGroups=function(b,e){var g=this.chart,l;g.series.forEach(function(d){l=b||d.getPlotBox();d.xAxis&&d.xAxis.zoomEnabled&&d.group&&(d.group.attr(l),d.markerGroup&&(d.markerGroup.attr(l),d.markerGroup.clip(e?g.clipRect:null)),d.dataLabelsGroup&&\nd.dataLabelsGroup.attr(l))});g.clipRect.attr(e||g.clipBox)};f.prototype.setDOMEvents=function(){var b=this.chart.container,e=b.ownerDocument;b.onmousedown=this.onContainerMouseDown.bind(this);b.onmousemove=this.onContainerMouseMove.bind(this);b.onclick=this.onContainerClick.bind(this);this.unbindContainerMouseLeave=M(b,\"mouseleave\",this.onContainerMouseLeave.bind(this));d.unbindDocumentMouseUp||(d.unbindDocumentMouseUp=M(e,\"mouseup\",this.onDocumentMouseUp.bind(this)));d.hasTouch&&(M(b,\"touchstart\",\nthis.onContainerTouchStart.bind(this)),M(b,\"touchmove\",this.onContainerTouchMove.bind(this)),d.unbindDocumentTouchEnd||(d.unbindDocumentTouchEnd=M(e,\"touchend\",this.onDocumentTouchEnd.bind(this))))};f.prototype.setHoverChartIndex=function(){var b=this.chart,e=d.charts[t(d.hoverChartIndex,-1)];if(e&&e!==b)e.pointer.onContainerMouseLeave({relatedTarget:!0});e&&e.mouseIsDown||(d.hoverChartIndex=b.index)};f.prototype.touch=function(b,e){var g=this.chart,l;this.setHoverChartIndex();if(1===b.touches.length)if(b=\nthis.normalize(b),(l=g.isInsidePlot(b.chartX-g.plotLeft,b.chartY-g.plotTop))&&!g.openMenu){e&&this.runPointActions(b);if(\"touchmove\"===b.type){e=this.pinchDown;var d=e[0]?4<=Math.sqrt(Math.pow(e[0].chartX-b.chartX,2)+Math.pow(e[0].chartY-b.chartY,2)):!1}t(d,!0)&&this.pinch(b)}else e&&this.reset();else 2===b.touches.length&&this.pinch(b)};f.prototype.zoomOption=function(b){var e=this.chart,g=e.options.chart,l=g.zoomType||\"\";e=e.inverted;/touch/.test(b.type)&&(l=t(g.pinchType,l));this.zoomX=b=/x/.test(l);\nthis.zoomY=l=/y/.test(l);this.zoomHor=b&&!e||l&&e;this.zoomVert=l&&!e||b&&e;this.hasZoom=b||l};return f}();d.Pointer=f;return d.Pointer});Q(A,\"parts/MSPointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Pointer.js\"],A[\"parts/Utilities.js\"]],function(d,f,E){function q(){var d=[];d.item=function(d){return this[d]};x(w,function(f){d.push({pageX:f.pageX,pageY:f.pageY,target:f.target})});return d}function M(f,n,m,b){\"touch\"!==f.pointerType&&f.pointerType!==f.MSPOINTER_TYPE_TOUCH||!H[d.hoverChartIndex]||(b(f),\nb=H[d.hoverChartIndex].pointer,b[n]({type:m,target:f.currentTarget,preventDefault:D,touches:q()}))}var K=this&&this.__extends||function(){var d=function(f,m){d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,g){b.__proto__=g}||function(b,g){for(var d in g)g.hasOwnProperty(d)&&(b[d]=g[d])};return d(f,m)};return function(f,m){function b(){this.constructor=f}d(f,m);f.prototype=null===m?Object.create(m):(b.prototype=m.prototype,new b)}}(),J=E.addEvent,L=E.css,x=E.objectEach,F=E.removeEvent,\nH=d.charts,C=d.doc,D=d.noop,w={},n=!!d.win.PointerEvent;return function(d){function f(){return null!==d&&d.apply(this,arguments)||this}K(f,d);f.prototype.batchMSEvents=function(d){d(this.chart.container,n?\"pointerdown\":\"MSPointerDown\",this.onContainerPointerDown);d(this.chart.container,n?\"pointermove\":\"MSPointerMove\",this.onContainerPointerMove);d(C,n?\"pointerup\":\"MSPointerUp\",this.onDocumentPointerUp)};f.prototype.destroy=function(){this.batchMSEvents(F);d.prototype.destroy.call(this)};f.prototype.init=\nfunction(m,b){d.prototype.init.call(this,m,b);this.hasZoom&&L(m.container,{\"-ms-touch-action\":\"none\",\"touch-action\":\"none\"})};f.prototype.onContainerPointerDown=function(d){M(d,\"onContainerTouchStart\",\"touchstart\",function(b){w[b.pointerId]={pageX:b.pageX,pageY:b.pageY,target:b.currentTarget}})};f.prototype.onContainerPointerMove=function(d){M(d,\"onContainerTouchMove\",\"touchmove\",function(b){w[b.pointerId]={pageX:b.pageX,pageY:b.pageY};w[b.pointerId].target||(w[b.pointerId].target=b.currentTarget)})};\nf.prototype.onDocumentPointerUp=function(d){M(d,\"onDocumentTouchEnd\",\"touchend\",function(b){delete w[b.pointerId]})};f.prototype.setDOMEvents=function(){d.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(J)};return f}(f)});Q(A,\"parts/Legend.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.animObject,M=f.css,K=f.defined,J=f.discardElement,L=f.find,x=f.fireEvent,F=f.format,H=f.isNumber,C=f.merge,D=f.pick,w=f.relativeLength,\nn=f.setAnimation,t=f.stableSort,N=f.syncTimeout;f=f.wrap;var m=d.isFirefox,b=d.marginNames,g=d.win,v=function(){function g(e,b){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=\nvoid 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=e;this.init(e,b)}g.prototype.init=function(e,b){this.chart=e;this.setOptions(b);b.enabled&&(this.render(),E(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=E(this.chart,\"render\",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};g.prototype.setOptions=function(e){var b=D(e.padding,\n8);this.options=e;this.chart.styledMode||(this.itemStyle=e.itemStyle,this.itemHiddenStyle=C(this.itemStyle,e.itemHiddenStyle));this.itemMarginTop=e.itemMarginTop||0;this.itemMarginBottom=e.itemMarginBottom||0;this.padding=b;this.initialItemY=b-5;this.symbolWidth=D(e.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===e.layout&&!this.chart.inverted;this.baseline=void 0};g.prototype.update=function(e,b){var g=this.chart;this.setOptions(C(!0,this.options,e));this.destroy();g.isDirtyLegend=g.isDirtyBox=\n!0;D(b,!0)&&g.redraw();x(this,\"afterUpdate\")};g.prototype.colorizeItem=function(e,b){e.legendGroup[b?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){var g=this.options,d=e.legendItem,h=e.legendLine,m=e.legendSymbol,f=this.itemHiddenStyle.color;g=b?g.itemStyle.color:f;var p=b?e.color||f:f,v=e.options&&e.options.marker,n={fill:p};d&&d.css({fill:g,color:g});h&&h.attr({stroke:p});m&&(v&&m.isMarker&&(n=e.pointAttribs(),b||(n.stroke=n.fill=f)),m.attr(n))}x(this,\"afterColorizeItem\",\n{item:e,visible:b})};g.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};g.prototype.positionItem=function(e){var b=this.options,g=b.symbolPadding;b=!b.rtl;var d=e._legendItemPos,h=d[0];d=d[1];var m=e.checkbox;if((e=e.legendGroup)&&e.element)e[K(e.translateY)?\"animate\":\"attr\"]({translateX:b?h:this.legendWidth-h-2*g-4,translateY:d});m&&(m.x=h,m.y=d)};g.prototype.destroyItem=function(e){var b=e.checkbox;[\"legendItem\",\"legendLine\",\n\"legendSymbol\",\"legendGroup\"].forEach(function(b){e[b]&&(e[b]=e[b].destroy())});b&&J(e.checkbox)};g.prototype.destroy=function(){function b(b){this[b]&&(this[b]=this[b].destroy())}this.getAllItems().forEach(function(e){[\"legendItem\",\"legendGroup\"].forEach(b,e)});\"clipRect up down pager nav box title group\".split(\" \").forEach(b,this);this.display=null};g.prototype.positionCheckboxes=function(){var b=this.group&&this.group.alignAttr,g=this.clipHeight||this.legendHeight,l=this.titleHeight;if(b){var d=\nb.translateY;this.allItems.forEach(function(e){var h=e.checkbox;if(h){var m=d+l+h.y+(this.scrollOffset||0)+3;M(h,{left:b.translateX+e.checkboxOffset+h.x-20+\"px\",top:m+\"px\",display:this.proximate||m>d-6&&m<d+g-6?\"\":\"none\"})}},this)}};g.prototype.renderTitle=function(){var b=this.options,g=this.padding,l=b.title,d=0;l.text&&(this.title||(this.title=this.chart.renderer.label(l.text,g-3,g-4,null,null,null,b.useHTML,null,\"legend-title\").attr({zIndex:1}),this.chart.styledMode||this.title.css(l.style),this.title.add(this.group)),\nl.width||this.title.css({width:this.maxLegendWidth+\"px\"}),b=this.title.getBBox(),d=b.height,this.offsetWidth=b.width,this.contentGroup.attr({translateY:d}));this.titleHeight=d};g.prototype.setText=function(b){var e=this.options;b.legendItem.attr({text:e.labelFormat?F(e.labelFormat,b,this.chart):e.labelFormatter.call(b)})};g.prototype.renderItem=function(b){var e=this.chart,g=e.renderer,d=this.options,h=this.symbolWidth,m=d.symbolPadding,f=this.itemStyle,v=this.itemHiddenStyle,n=\"horizontal\"===d.layout?\nD(d.itemDistance,20):0,w=!d.rtl,c=b.legendItem,a=!b.series,k=!a&&b.series.drawLegendSymbol?b.series:b,r=k.options;r=this.createCheckboxForItem&&r&&r.showCheckbox;n=h+m+n+(r?20:0);var z=d.useHTML,t=b.options.className;c||(b.legendGroup=g.g(\"legend-item\").addClass(\"highcharts-\"+k.type+\"-series highcharts-color-\"+b.colorIndex+(t?\" \"+t:\"\")+(a?\" highcharts-series-\"+b.index:\"\")).attr({zIndex:1}).add(this.scrollGroup),b.legendItem=c=g.text(\"\",w?h+m:-m,this.baseline||0,z),e.styledMode||c.css(C(b.visible?\nf:v)),c.attr({align:w?\"left\":\"right\",zIndex:2}).add(b.legendGroup),this.baseline||(this.fontMetrics=g.fontMetrics(e.styledMode?12:f.fontSize,c),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,c.attr(\"y\",this.baseline)),this.symbolHeight=d.symbolHeight||this.fontMetrics.f,k.drawLegendSymbol(this,b),this.setItemEvents&&this.setItemEvents(b,c,z));r&&!b.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(b);this.colorizeItem(b,b.visible);!e.styledMode&&f.width||c.css({width:(d.itemWidth||\nthis.widthOption||e.spacingBox.width)-n+\"px\"});this.setText(b);e=c.getBBox();b.itemWidth=b.checkboxOffset=d.itemWidth||b.legendItemWidth||e.width+n;this.maxItemWidth=Math.max(this.maxItemWidth,b.itemWidth);this.totalItemWidth+=b.itemWidth;this.itemHeight=b.itemHeight=Math.round(b.legendItemHeight||e.height||this.symbolHeight)};g.prototype.layoutItem=function(b){var e=this.options,g=this.padding,d=\"horizontal\"===e.layout,h=b.itemHeight,m=this.itemMarginBottom,f=this.itemMarginTop,v=d?D(e.itemDistance,\n20):0,n=this.maxLegendWidth;e=e.alignColumns&&this.totalItemWidth>n?this.maxItemWidth:b.itemWidth;d&&this.itemX-g+e>n&&(this.itemX=g,this.lastLineHeight&&(this.itemY+=f+this.lastLineHeight+m),this.lastLineHeight=0);this.lastItemY=f+this.itemY+m;this.lastLineHeight=Math.max(h,this.lastLineHeight);b._legendItemPos=[this.itemX,this.itemY];d?this.itemX+=e:(this.itemY+=f+h+m,this.lastLineHeight=h);this.offsetWidth=this.widthOption||Math.max((d?this.itemX-g-(b.checkbox?0:v):e)+g,this.offsetWidth)};g.prototype.getAllItems=\nfunction(){var b=[];this.chart.series.forEach(function(e){var g=e&&e.options;e&&D(g.showInLegend,K(g.linkedTo)?!1:void 0,!0)&&(b=b.concat(e.legendItems||(\"point\"===g.legendType?e.data:e)))});x(this,\"afterGetAllItems\",{allItems:b});return b};g.prototype.getAlignment=function(){var b=this.options;return this.proximate?b.align.charAt(0)+\"tv\":b.floating?\"\":b.align.charAt(0)+b.verticalAlign.charAt(0)+b.layout.charAt(0)};g.prototype.adjustMargins=function(e,g){var l=this.chart,d=this.options,h=this.getAlignment();\nh&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(m,f){m.test(h)&&!K(e[f])&&(l[b[f]]=Math.max(l[b[f]],l.legend[(f+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][f]*d[f%2?\"x\":\"y\"]+D(d.margin,12)+g[f]+(l.titleOffset[f]||0)))})};g.prototype.proximatePositions=function(){var b=this.chart,g=[],l=\"left\"===this.options.align;this.allItems.forEach(function(e){var d=l;if(e.yAxis&&e.points){e.xAxis.options.reversed&&(d=!d);var h=L(d?e.points:e.points.slice(0).reverse(),function(b){return H(b.plotY)});\nd=this.itemMarginTop+e.legendItem.getBBox().height+this.itemMarginBottom;var m=e.yAxis.top-b.plotTop;e.visible?(h=h?h.plotY:e.yAxis.height,h+=m-.3*d):h=m+e.yAxis.height;g.push({target:h,size:d,item:e})}},this);d.distribute(g,b.plotHeight);g.forEach(function(e){e.item._legendItemPos[1]=b.plotTop-b.spacing[0]+e.pos})};g.prototype.render=function(){var b=this.chart,g=b.renderer,l=this.group,d=this.box,h=this.options,m=this.padding;this.itemX=m;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=\n0;this.widthOption=w(h.width,b.spacingBox.width-m);var f=b.spacingBox.width-2*m-h.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(f/=2);this.maxLegendWidth=this.widthOption||f;l||(this.group=l=g.g(\"legend\").attr({zIndex:7}).add(),this.contentGroup=g.g().attr({zIndex:1}).add(l),this.scrollGroup=g.g().add(this.contentGroup));this.renderTitle();var v=this.getAllItems();t(v,function(b,c){return(b.options&&b.options.legendIndex||0)-(c.options&&c.options.legendIndex||0)});h.reversed&&v.reverse();\nthis.allItems=v;this.display=f=!!v.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;v.forEach(this.renderItem,this);v.forEach(this.layoutItem,this);v=(this.widthOption||this.offsetWidth)+m;var n=this.lastItemY+this.lastLineHeight+this.titleHeight;n=this.handleOverflow(n);n+=m;d||(this.box=d=g.rect().addClass(\"highcharts-legend-box\").attr({r:h.borderRadius}).add(l),d.isNew=!0);b.styledMode||d.attr({stroke:h.borderColor,\"stroke-width\":h.borderWidth||0,fill:h.backgroundColor||\n\"none\"}).shadow(h.shadow);0<v&&0<n&&(d[d.isNew?\"attr\":\"animate\"](d.crisp.call({},{x:0,y:0,width:v,height:n},d.strokeWidth())),d.isNew=!1);d[f?\"show\":\"hide\"]();b.styledMode&&\"none\"===l.getStyle(\"display\")&&(v=n=0);this.legendWidth=v;this.legendHeight=n;f&&this.align();this.proximate||this.positionItems();x(this,\"afterRender\")};g.prototype.align=function(b){void 0===b&&(b=this.chart.spacingBox);var e=this.chart,g=this.options,d=b.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<e.titleOffset[0]?d+=e.titleOffset[0]:\n/(lbh|cb|rbh)/.test(this.getAlignment())&&0<e.titleOffset[2]&&(d-=e.titleOffset[2]);d!==b.y&&(b=C(b,{y:d}));this.group.align(C(g,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":g.verticalAlign}),!0,b)};g.prototype.handleOverflow=function(b){var e=this,g=this.chart,d=g.renderer,h=this.options,m=h.y,f=this.padding;m=g.spacingBox.height+(\"top\"===h.verticalAlign?-m:m)-f;var v=h.maxHeight,n,w=this.clipRect,c=h.navigation,a=D(c.animation,!0),k=c.arrowSize||12,r=this.nav,\nz=this.pages,t,x=this.allItems,q=function(a){\"number\"===typeof a?w.attr({height:a}):w&&(e.clipRect=w.destroy(),e.contentGroup.clip());e.contentGroup.div&&(e.contentGroup.div.style.clip=a?\"rect(\"+f+\"px,9999px,\"+(f+a)+\"px,0)\":\"auto\")},C=function(a){e[a]=d.circle(0,0,1.3*k).translate(k/2,k/2).add(r);g.styledMode||e[a].attr(\"fill\",\"rgba(0,0,0,0.0001)\");return e[a]};\"horizontal\"!==h.layout||\"middle\"===h.verticalAlign||h.floating||(m/=2);v&&(m=Math.min(m,v));z.length=0;b>m&&!1!==c.enabled?(this.clipHeight=\nn=Math.max(m-20-this.titleHeight-f,0),this.currentPage=D(this.currentPage,1),this.fullHeight=b,x.forEach(function(a,c){var b=a._legendItemPos[1],e=Math.round(a.legendItem.getBBox().height),k=z.length;if(!k||b-z[k-1]>n&&(t||b)!==z[k-1])z.push(t||b),k++;a.pageIx=k-1;t&&(x[c-1].pageIx=k-1);c===x.length-1&&b+e-z[k-1]>n&&b!==t&&(z.push(b),a.pageIx=k);b!==t&&(t=b)}),w||(w=e.clipRect=d.clipRect(0,f,9999,0),e.contentGroup.clip(w)),q(n),r||(this.nav=r=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol(\"triangle\",\n0,0,k,k).add(r),C(\"upTracker\").on(\"click\",function(){e.scroll(-1,a)}),this.pager=d.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),g.styledMode||this.pager.css(c.style),this.pager.add(r),this.down=d.symbol(\"triangle-down\",0,0,k,k).add(r),C(\"downTracker\").on(\"click\",function(){e.scroll(1,a)})),e.scroll(0),b=m):r&&(q(),this.nav=r.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return b};g.prototype.scroll=function(b,g){var e=this,d=this.chart,h=this.pages,m=h.length,f=this.currentPage+\nb;b=this.clipHeight;var p=this.options.navigation,v=this.pager,w=this.padding;f>m&&(f=m);0<f&&(\"undefined\"!==typeof g&&n(g,d),this.nav.attr({translateX:w,translateY:b+this.padding+7+this.titleHeight,visibility:\"visible\"}),[this.up,this.upTracker].forEach(function(c){c.attr({\"class\":1===f?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),v.attr({text:f+\"/\"+m}),[this.down,this.downTracker].forEach(function(c){c.attr({x:18+this.pager.getBBox().width,\"class\":f===m?\"highcharts-legend-nav-inactive\":\n\"highcharts-legend-nav-active\"})},this),d.styledMode||(this.up.attr({fill:1===f?p.inactiveColor:p.activeColor}),this.upTracker.css({cursor:1===f?\"default\":\"pointer\"}),this.down.attr({fill:f===m?p.inactiveColor:p.activeColor}),this.downTracker.css({cursor:f===m?\"default\":\"pointer\"})),this.scrollOffset=-h[f-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=f,this.positionCheckboxes(),g=q(D(g,d.renderer.globalAnimation,!0)),N(function(){x(e,\"afterScroll\",\n{currentPage:f})},g.duration||0))};return g}();(/Trident\\/7\\.0/.test(g.navigator&&g.navigator.userAgent)||m)&&f(v.prototype,\"positionItem\",function(b,e){var g=this,d=function(){e._legendItemPos&&b.call(g,e)};d();g.bubbleLegend||setTimeout(d)});d.Legend=v;return d.Legend});Q(A,\"parts/Chart.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/MSPointer.js\"],A[\"parts/Pointer.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(d,f,E,q,M,K){var J=K.addEvent,L=K.animate,x=K.animObject,F=K.attr,\nH=K.createElement,C=K.css,D=K.defined,w=K.discardElement,n=K.erase,t=K.error,N=K.extend,m=K.find,b=K.fireEvent,g=K.getStyle,v=K.isArray,h=K.isFunction,e=K.isNumber,p=K.isObject,l=K.isString,I=K.merge,u=K.numberFormat,y=K.objectEach,G=K.pick,S=K.pInt,R=K.relativeLength,B=K.removeEvent,c=K.setAnimation,a=K.splat,k=K.syncTimeout,r=K.uniqueKey,z=d.doc,P=d.Axis,U=d.defaultOptions,W=d.charts,Y=d.marginNames,T=d.seriesTypes,A=d.win,aa=d.Chart=function(){this.getArgs.apply(this,arguments)};d.chart=function(a,\nc,b){return new aa(a,c,b)};N(aa.prototype,{callbacks:[],getArgs:function(){var a=[].slice.call(arguments);if(l(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(a,c){var e,k=a.series,g=a.plotOptions||{};b(this,\"init\",{args:arguments},function(){a.series=null;e=I(U,a);var l=e.chart||{};y(e.plotOptions,function(a,c){p(a)&&(a.tooltip=g[c]&&I(g[c].tooltip)||void 0)});e.tooltip.userOptions=a.chart&&a.chart.forExport&&a.tooltip.userOptions||a.tooltip;e.series=a.series=k;this.userOptions=\na;var m=l.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=c;this.isResizing=0;this.options=e;this.axes=[];this.series=[];this.time=a.time&&Object.keys(a.time).length?new M(a.time):d.time;this.numberFormatter=l.numberFormatter||u;this.styledMode=l.styledMode;this.hasCartesianSeries=l.showAxes;var f=this;f.index=W.length;W.push(f);d.chartCount++;m&&y(m,function(a,c){h(a)&&J(f,c,a)});f.xAxis=[];f.yAxis=[];f.pointCount=f.colorCounter=f.symbolCounter=\n0;b(f,\"afterInit\");f.firstRender()})},initSeries:function(a){var c=this.options.chart;c=a.type||c.type||c.defaultSeriesType;var b=T[c];b||t(17,!0,this,{missingModuleFor:c});c=new b;c.init(this,a);return c},setSeriesData:function(){this.getSeriesOrderByLinks().forEach(function(a){a.points||a.data||!a.enabledDataSorting||a.setData(a.options.data,!1)})},getSeriesOrderByLinks:function(){return this.series.concat().sort(function(a,c){return a.linkedSeries.length||c.linkedSeries.length?c.linkedSeries.length-\na.linkedSeries.length:0})},orderSeries:function(a){var c=this.series;for(a=a||0;a<c.length;a++)c[a]&&(c[a].index=a,c[a].name=c[a].getName())},isInsidePlot:function(a,c,e){var k=e?c:a;a=e?a:c;k={x:k,y:a,isInsidePlot:0<=k&&k<=this.plotWidth&&0<=a&&a<=this.plotHeight};b(this,\"afterIsInsidePlot\",k);return k.isInsidePlot},redraw:function(a){b(this,\"beforeRedraw\");var e=this.axes,k=this.series,g=this.pointer,d=this.legend,l=this.userOptions.legend,h=this.isDirtyLegend,f=this.hasCartesianSeries,m=this.isDirtyBox,\nr=this.renderer,u=r.isHidden(),p=[];this.setResponsive&&this.setResponsive(!1);c(this.hasRendered?a:!1,this);u&&this.temporaryDisplay();this.layOutTitles();for(a=k.length;a--;){var v=k[a];if(v.options.stacking){var z=!0;if(v.isDirty){var n=!0;break}}}if(n)for(a=k.length;a--;)v=k[a],v.options.stacking&&(v.isDirty=!0);k.forEach(function(a){a.isDirty&&(\"point\"===a.options.legendType?(a.updateTotals&&a.updateTotals(),h=!0):l&&(l.labelFormatter||l.labelFormat)&&(h=!0));a.isDirtyData&&b(a,\"updatedData\")});\nh&&d&&d.options.enabled&&(d.render(),this.isDirtyLegend=!1);z&&this.getStacks();f&&e.forEach(function(a){a.updateNames();a.setScale()});this.getMargins();f&&(e.forEach(function(a){a.isDirty&&(m=!0)}),e.forEach(function(a){var c=a.min+\",\"+a.max;a.extKey!==c&&(a.extKey=c,p.push(function(){b(a,\"afterSetExtremes\",N(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(m||z)&&a.redraw()}));m&&this.drawChartBox();b(this,\"predraw\");k.forEach(function(a){(m||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=\n!1});g&&g.reset(!0);r.draw();b(this,\"redraw\");b(this,\"render\");u&&this.temporaryDisplay(!0);p.forEach(function(a){a.call()})},get:function(a){function c(c){return c.id===a||c.options&&c.options.id===a}var b=this.series,e;var k=m(this.axes,c)||m(this.series,c);for(e=0;!k&&e<b.length;e++)k=m(b[e].points||[],c);return k},getAxes:function(){var c=this,e=this.options,k=e.xAxis=a(e.xAxis||{});e=e.yAxis=a(e.yAxis||{});b(this,\"getAxes\");k.forEach(function(a,c){a.index=c;a.isX=!0});e.forEach(function(a,c){a.index=\nc});k.concat(e).forEach(function(a){new P(c,a)});b(this,\"afterGetAxes\")},getSelectedPoints:function(){var a=[];this.series.forEach(function(c){a=a.concat(c.getPointsCollection().filter(function(a){return G(a.selectedStaging,a.selected)}))});return a},getSelectedSeries:function(){return this.series.filter(function(a){return a.selected})},setTitle:function(a,c,b){this.applyDescription(\"title\",a);this.applyDescription(\"subtitle\",c);this.applyDescription(\"caption\",void 0);this.layOutTitles(b)},applyDescription:function(a,\nc){var b=this,e=\"title\"===a?{color:\"#333333\",fontSize:this.options.isStock?\"16px\":\"18px\"}:{color:\"#666666\"};e=this.options[a]=I(!this.styledMode&&{style:e},this.options[a],c);var k=this[a];k&&c&&(this[a]=k=k.destroy());e&&!k&&(k=this.renderer.text(e.text,0,0,e.useHTML).attr({align:e.align,\"class\":\"highcharts-\"+a,zIndex:e.zIndex||4}).add(),k.update=function(c){b[{title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"}[a]](c)},this.styledMode||k.css(e.style),this[a]=k)},layOutTitles:function(a){var c=\n[0,0,0],e=this.renderer,k=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(a){var b=this[a],g=this.options[a],d=g.verticalAlign||\"top\";a=\"title\"===a?-3:\"top\"===d?c[0]+2:0;if(b){if(!this.styledMode)var l=g.style.fontSize;l=e.fontMetrics(l,b).b;b.css({width:(g.width||k.width+(g.widthAdjust||0))+\"px\"});var h=Math.round(b.getBBox(g.useHTML).height);b.align(N({y:\"bottom\"===d?l:a+l,height:h},g),!1,\"spacingBox\");g.floating||(\"top\"===d?c[0]=Math.ceil(c[0]+h):\"bottom\"===d&&(c[2]=Math.ceil(c[2]+\nh)))}},this);c[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(c[0]+=this.options.title.margin);c[2]&&\"bottom\"===this.options.caption.verticalAlign&&(c[2]+=this.options.caption.margin);var g=!this.titleOffset||this.titleOffset.join(\",\")!==c.join(\",\");this.titleOffset=c;b(this,\"afterLayOutTitles\");!this.isDirtyBox&&g&&(this.isDirtyBox=this.isDirtyLegend=g,this.hasRendered&&G(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var a=this.options.chart,c=a.width;a=a.height;var b=\nthis.renderTo;D(c)||(this.containerWidth=g(b,\"width\"));D(a)||(this.containerHeight=g(b,\"height\"));this.chartWidth=Math.max(0,c||this.containerWidth||600);this.chartHeight=Math.max(0,R(a,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(a){var c=this.renderTo;if(a)for(;c&&c.style;)c.hcOrigStyle&&(C(c,c.hcOrigStyle),delete c.hcOrigStyle),c.hcOrigDetached&&(z.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style;){z.body.contains(c)||\nc.parentNode||(c.hcOrigDetached=!0,z.body.appendChild(c));if(\"none\"===g(c,\"display\",!1)||c.hcOricDetached)c.hcOrigStyle={display:c.style.display,height:c.style.height,overflow:c.style.overflow},a={display:\"block\",overflow:\"hidden\"},c!==this.renderTo&&(a.height=0),C(c,a),c.offsetWidth||c.style.setProperty(\"display\",\"block\",\"important\");c=c.parentNode;if(c===z.body)break}},setClassName:function(a){this.container.className=\"highcharts-container \"+(a||\"\")},getContainer:function(){var a=this.options,k=\na.chart;var g=this.renderTo;var h=r(),m,f;g||(this.renderTo=g=k.renderTo);l(g)&&(this.renderTo=g=z.getElementById(g));g||t(13,!0,this);var u=S(F(g,\"data-highcharts-chart\"));e(u)&&W[u]&&W[u].hasRendered&&W[u].destroy();F(g,\"data-highcharts-chart\",this.index);g.innerHTML=\"\";k.skipClone||g.offsetWidth||this.temporaryDisplay();this.getChartSize();u=this.chartWidth;var p=this.chartHeight;C(g,{overflow:\"hidden\"});this.styledMode||(m=N({position:\"relative\",overflow:\"hidden\",width:u+\"px\",height:p+\"px\",textAlign:\"left\",\nlineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\"},k.style));this.container=g=H(\"div\",{id:h},m,g);this._cursor=g.style.cursor;this.renderer=new (d[k.renderer]||d.Renderer)(g,u,p,null,k.forExport,a.exporting&&a.exporting.allowHTML,this.styledMode);c(void 0,this);this.setClassName(k.className);if(this.styledMode)for(f in a.defs)this.renderer.definition(a.defs[f]);else this.renderer.setStyle(k.style);this.renderer.chartIndex=this.index;b(this,\"afterGetContainer\")},getMargins:function(a){var c=\nthis.spacing,e=this.margin,k=this.titleOffset;this.resetMargins();k[0]&&!D(e[0])&&(this.plotTop=Math.max(this.plotTop,k[0]+c[0]));k[2]&&!D(e[2])&&(this.marginBottom=Math.max(this.marginBottom,k[2]+c[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(e,c);b(this,\"getMargins\");a||this.getAxisMargins()},getAxisMargins:function(){var a=this,c=a.axisOffset=[0,0,0,0],b=a.colorAxis,e=a.margin,k=function(a){a.forEach(function(a){a.visible&&a.getOffset()})};a.hasCartesianSeries?k(a.axes):b&&\nb.length&&k(b);Y.forEach(function(b,k){D(e[k])||(a[b]+=c[k])});a.setChartSize()},reflow:function(a){var c=this,b=c.options.chart,e=c.renderTo,d=D(b.width)&&D(b.height),l=b.width||g(e,\"width\");b=b.height||g(e,\"height\");e=a?a.target:A;if(!d&&!c.isPrinting&&l&&b&&(e===A||e===z)){if(l!==c.containerWidth||b!==c.containerHeight)K.clearTimeout(c.reflowTimeout),c.reflowTimeout=k(function(){c.container&&c.setSize(void 0,void 0,!1)},a?100:0);c.containerWidth=l;c.containerHeight=b}},setReflow:function(a){var c=\nthis;!1===a||this.unbindReflow?!1===a&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=J(A,\"resize\",function(a){c.options&&c.reflow(a)}),J(this,\"destroy\",this.unbindReflow))},setSize:function(a,e,g){var d=this,l=d.renderer;d.isResizing+=1;c(g,d);g=l.globalAnimation;d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;\"undefined\"!==typeof a&&(d.options.chart.width=a);\"undefined\"!==typeof e&&(d.options.chart.height=e);d.getChartSize();d.styledMode||(g?L:C)(d.container,\n{width:d.chartWidth+\"px\",height:d.chartHeight+\"px\"},g);d.setChartSize(!0);l.setSize(d.chartWidth,d.chartHeight,g);d.axes.forEach(function(a){a.isDirty=!0;a.setScale()});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.layOutTitles();d.getMargins();d.redraw(g);d.oldChartHeight=null;b(d,\"resize\");k(function(){d&&b(d,\"endResize\",null,function(){--d.isResizing})},x(g).duration||0)},setChartSize:function(a){var c=this.inverted,e=this.renderer,k=this.chartWidth,g=this.chartHeight,d=this.options.chart,l=this.spacing,\nh=this.clipOffset,m,f,r,u;this.plotLeft=m=Math.round(this.plotLeft);this.plotTop=f=Math.round(this.plotTop);this.plotWidth=r=Math.max(0,Math.round(k-m-this.marginRight));this.plotHeight=u=Math.max(0,Math.round(g-f-this.marginBottom));this.plotSizeX=c?u:r;this.plotSizeY=c?r:u;this.plotBorderWidth=d.plotBorderWidth||0;this.spacingBox=e.spacingBox={x:l[3],y:l[0],width:k-l[3]-l[1],height:g-l[0]-l[2]};this.plotBox=e.plotBox={x:m,y:f,width:r,height:u};k=2*Math.floor(this.plotBorderWidth/2);c=Math.ceil(Math.max(k,\nh[3])/2);e=Math.ceil(Math.max(k,h[0])/2);this.clipBox={x:c,y:e,width:Math.floor(this.plotSizeX-Math.max(k,h[1])/2-c),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(k,h[2])/2-e))};a||this.axes.forEach(function(a){a.setAxisSize();a.setAxisTranslation()});b(this,\"afterSetChartSize\",{skipAxes:a})},resetMargins:function(){b(this,\"resetMargins\");var a=this,c=a.options.chart;[\"margin\",\"spacing\"].forEach(function(b){var e=c[b],k=p(e)?e:[e,e,e,e];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(e,g){a[b][g]=\nG(c[b+e],k[g])})});Y.forEach(function(c,b){a[c]=G(a.margin[b],a.spacing[b])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,c=this.renderer,e=this.chartWidth,k=this.chartHeight,g=this.chartBackground,d=this.plotBackground,l=this.plotBorder,h=this.styledMode,m=this.plotBGImage,f=a.backgroundColor,r=a.plotBackgroundColor,u=a.plotBackgroundImage,p,v=this.plotLeft,z=this.plotTop,n=this.plotWidth,y=this.plotHeight,w=this.plotBox,t=this.clipRect,B=this.clipBox,\nP=\"animate\";g||(this.chartBackground=g=c.rect().addClass(\"highcharts-background\").add(),P=\"attr\");if(h)var G=p=g.strokeWidth();else{G=a.borderWidth||0;p=G+(a.shadow?8:0);f={fill:f||\"none\"};if(G||g[\"stroke-width\"])f.stroke=a.borderColor,f[\"stroke-width\"]=G;g.attr(f).shadow(a.shadow)}g[P]({x:p/2,y:p/2,width:e-p-G%2,height:k-p-G%2,r:a.borderRadius});P=\"animate\";d||(P=\"attr\",this.plotBackground=d=c.rect().addClass(\"highcharts-plot-background\").add());d[P](w);h||(d.attr({fill:r||\"none\"}).shadow(a.plotShadow),\nu&&(m?(u!==m.attr(\"href\")&&m.attr(\"href\",u),m.animate(w)):this.plotBGImage=c.image(u,v,z,n,y).add()));t?t.animate({width:B.width,height:B.height}):this.clipRect=c.clipRect(B);P=\"animate\";l||(P=\"attr\",this.plotBorder=l=c.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add());h||l.attr({stroke:a.plotBorderColor,\"stroke-width\":a.plotBorderWidth||0,fill:\"none\"});l[P](l.crisp({x:v,y:z,width:n,height:y},-l.strokeWidth()));this.isDirtyBox=!1;b(this,\"afterDrawChartBox\")},propFromSeries:function(){var a=\nthis,c=a.options.chart,b,e=a.options.series,k,g;[\"inverted\",\"angular\",\"polar\"].forEach(function(d){b=T[c.type||c.defaultSeriesType];g=c[d]||b&&b.prototype[d];for(k=e&&e.length;!g&&k--;)(b=T[e[k].type])&&b.prototype[d]&&(g=!0);a[d]=g})},linkSeries:function(){var a=this,c=a.series;c.forEach(function(a){a.linkedSeries.length=0});c.forEach(function(c){var b=c.options.linkedTo;l(b)&&(b=\":previous\"===b?a.series[c.index-1]:a.get(b))&&b.linkedParent!==c&&(b.linkedSeries.push(c),c.linkedParent=b,b.enabledDataSorting&&\nc.setDataSortingOptions(),c.visible=G(c.options.visible,b.options.visible,c.visible))});b(this,\"afterLinkSeries\")},renderSeries:function(){this.series.forEach(function(a){a.translate();a.render()})},renderLabels:function(){var a=this,c=a.options.labels;c.items&&c.items.forEach(function(b){var e=N(c.style,b.style),k=S(e.left)+a.plotLeft,g=S(e.top)+a.plotTop+12;delete e.left;delete e.top;a.renderer.text(b.html,k,g).attr({zIndex:2}).css(e).add()})},render:function(){var a=this.axes,c=this.colorAxis,\nb=this.renderer,e=this.options,k=0,g=function(a){a.forEach(function(a){a.visible&&a.render()})};this.setTitle();this.legend=new f(this,e.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();e=this.plotWidth;a.some(function(a){if(a.horiz&&a.visible&&a.options.labels.enabled&&a.series.length)return k=21,!0});var d=this.plotHeight=Math.max(this.plotHeight-k,0);a.forEach(function(a){a.setScale()});this.getAxisMargins();var l=1.1<e/this.plotWidth;var h=1.05<d/this.plotHeight;\nif(l||h)a.forEach(function(a){(a.horiz&&l||!a.horiz&&h)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?g(a):c&&c.length&&g(c);this.seriesGroup||(this.seriesGroup=b.g(\"series-group\").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.updateContainerScaling();this.hasRendered=!0},addCredits:function(a){var c=this;a=I(!0,this.options.credits,a);a.enabled&&!this.credits&&(this.credits=\nthis.renderer.text(a.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){a.href&&(A.location.href=a.href)}).attr({align:a.position.align,zIndex:8}),c.styledMode||this.credits.css(a.style),this.credits.add().align(a.position),this.credits.update=function(a){c.credits=c.credits.destroy();c.addCredits(a)})},updateContainerScaling:function(){var a=this.container;if(a.offsetWidth&&a.offsetHeight&&a.getBoundingClientRect){var c=a.getBoundingClientRect(),b=c.width/a.offsetWidth;\na=c.height/a.offsetHeight;1!==b||1!==a?this.containerScaling={scaleX:b,scaleY:a}:delete this.containerScaling}},destroy:function(){var a=this,c=a.axes,e=a.series,k=a.container,g,l=k&&k.parentNode;b(a,\"destroy\");a.renderer.forExport?n(W,a):W[a.index]=void 0;d.chartCount--;a.renderTo.removeAttribute(\"data-highcharts-chart\");B(a);for(g=c.length;g--;)c[g]=c[g].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(g=e.length;g--;)e[g]=e[g].destroy();\"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function(c){var b=\na[c];b&&b.destroy&&(a[c]=b.destroy())});k&&(k.innerHTML=\"\",B(k),l&&w(k));y(a,function(c,b){delete a[b]})},firstRender:function(){var a=this,c=a.options;if(!a.isReadyToRender||a.isReadyToRender()){a.getContainer();a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();(v(c.series)?c.series:[]).forEach(function(c){a.initSeries(c)});a.linkSeries();a.setSeriesData();b(a,\"beforeRender\");q&&(a.pointer=d.hasTouch||!A.PointerEvent&&!A.MSPointerEvent?new q(a,c):new E(a,c));a.render();if(!a.renderer.imgCount&&\n!a.hasLoaded)a.onload();a.temporaryDisplay(!0)}},onload:function(){this.callbacks.concat([this.callback]).forEach(function(a){a&&\"undefined\"!==typeof this.index&&a.apply(this,[this])},this);b(this,\"load\");b(this,\"render\");D(this.index)&&this.setReflow(this.options.chart.reflow);this.hasLoaded=!0}})});Q(A,\"parts/ScrollablePlotArea.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.addEvent,q=f.createElement,A=f.pick,K=f.stop;f=d.Chart;\"\";E(f,\"afterSetChartSize\",function(f){var q=\nthis.options.chart.scrollablePlotArea,x=q&&q.minWidth;q=q&&q.minHeight;if(!this.renderer.forExport){if(x){if(this.scrollablePixelsX=x=Math.max(0,x-this.chartWidth)){this.plotWidth+=x;this.inverted?(this.clipBox.height+=x,this.plotBox.height+=x):(this.clipBox.width+=x,this.plotBox.width+=x);var F={1:{name:\"right\",value:x}}}}else q&&(this.scrollablePixelsY=x=Math.max(0,q-this.chartHeight))&&(this.plotHeight+=x,this.inverted?(this.clipBox.width+=x,this.plotBox.width+=x):(this.clipBox.height+=x,this.plotBox.height+=\nx),F={2:{name:\"bottom\",value:x}});F&&!f.skipAxes&&this.axes.forEach(function(f){F[f.side]?f.getPlotLinePath=function(){var x=F[f.side].name,q=this[x];this[x]=q-F[f.side].value;var w=d.Axis.prototype.getPlotLinePath.apply(this,arguments);this[x]=q;return w}:(f.setAxisSize(),f.setAxisTranslation())})}});E(f,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});f.prototype.setUpScrolling=function(){var d=\nthis,f={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(f.overflowX=\"auto\");this.scrollablePixelsY&&(f.overflowY=\"auto\");this.scrollingContainer=q(\"div\",{className:\"highcharts-scrolling\"},f,this.renderTo);E(this.scrollingContainer,\"scroll\",function(){d.pointer&&delete d.pointer.chartPosition});this.innerContainer=q(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=\nnull};f.prototype.moveFixedElements=function(){var d=this.container,f=this.fixedRenderer,x=\".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),q;this.scrollablePixelsX&&!this.inverted?q=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?q=\".highcharts-xaxis\":\nthis.scrollablePixelsY&&!this.inverted?q=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(q=\".highcharts-yaxis\");x.push(q,q+\"-labels\");x.forEach(function(x){[].forEach.call(d.querySelectorAll(x),function(d){(d.namespaceURI===f.SVG_NS?f.box:f.box.parentNode).appendChild(d);d.style.pointerEvents=\"auto\"})})};f.prototype.applyFixed=function(){var f,L,x=!this.fixedDiv,F=this.options.chart.scrollablePlotArea;x?(this.fixedDiv=q(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",\npointerEvents:\"none\",zIndex:2},null,!0),this.renderTo.insertBefore(this.fixedDiv,this.renderTo.firstChild),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=L=new d.Renderer(this.fixedDiv,this.chartWidth,this.chartHeight,null===(f=this.options.chart)||void 0===f?void 0:f.style),this.scrollableMask=L.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":A(F.opacity,.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),this.moveFixedElements(),E(this,\"afterShowResetZoom\",\nthis.moveFixedElements),E(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);f=this.chartWidth+(this.scrollablePixelsX||0);L=this.chartHeight+(this.scrollablePixelsY||0);K(this.container);this.container.style.width=f+\"px\";this.container.style.height=L+\"px\";this.renderer.boxWrapper.attr({width:f,height:L,viewBox:[0,0,f,L].join(\" \")});this.chartBackground.attr({width:f,height:L});this.scrollingContainer.style.height=this.chartHeight+\"px\";x&&\n(F.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*F.scrollPositionX),F.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*F.scrollPositionY));L=this.axisOffset;x=this.plotTop-L[0]-1;F=this.plotLeft-L[3]-1;f=this.plotTop+this.plotHeight+L[2]+1;L=this.plotLeft+this.plotWidth+L[1]+1;var H=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),C=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);x=this.scrollablePixelsX?[[\"M\",0,x],[\"L\",this.plotLeft-\n1,x],[\"L\",this.plotLeft-1,f],[\"L\",0,f],[\"Z\"],[\"M\",H,x],[\"L\",this.chartWidth,x],[\"L\",this.chartWidth,f],[\"L\",H,f],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",F,0],[\"L\",F,this.plotTop-1],[\"L\",L,this.plotTop-1],[\"L\",L,0],[\"Z\"],[\"M\",F,C],[\"L\",F,this.chartHeight],[\"L\",L,this.chartHeight],[\"L\",L,C],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:x})}});Q(A,\"parts/StackingAxis.js\",[A[\"parts/Utilities.js\"]],function(d){var f=d.addEvent,E=d.destroyObjectProperties,q=d.fireEvent,\nA=d.objectEach,K=d.pick,J=function(){function d(d){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=d}d.prototype.buildStacks=function(){var d=this.axis,f=d.series,H=K(d.options.reversedStacks,!0),C=f.length,D;if(!d.isXAxis){this.usePercentage=!1;for(D=C;D--;){var w=f[H?D:C-D-1];w.setStackedPoints()}for(D=0;D<C;D++)f[D].modifyStacks();q(d,\"afterBuildStacks\")}};d.prototype.cleanStacks=function(){if(!this.axis.isXAxis){if(this.oldStacks)var d=this.stacks=this.oldStacks;A(d,function(d){A(d,\nfunction(d){d.cumulative=d.total})})}};d.prototype.resetStacks=function(){var d=this,f=d.stacks;d.axis.isXAxis||A(f,function(f){A(f,function(q,x){q.touched<d.stacksTouched?(q.destroy(),delete f[x]):(q.total=null,q.cumulative=null)})})};d.prototype.renderStackTotals=function(){var d=this.axis.chart,f=d.renderer,q=this.stacks,C=this.stackTotalGroup=this.stackTotalGroup||f.g(\"stack-labels\").attr({visibility:\"visible\",zIndex:6}).add();C.translate(d.plotLeft,d.plotTop);A(q,function(d){A(d,function(d){d.render(C)})})};\nreturn d}();return function(){function d(){}d.compose=function(q){f(q,\"init\",d.onInit);f(q,\"destroy\",d.onDestroy)};d.onDestroy=function(){var d=this.stacking;if(d){var f=d.stacks;A(f,function(d,q){E(d);f[q]=null});d&&d.stackTotalGroup&&d.stackTotalGroup.destroy()}};d.onInit=function(){this.stacking||(this.stacking=new J(this))};return d}()});Q(A,\"mixins/legend-symbol.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var E=f.merge,q=f.pick;d.LegendSymbolMixin={drawRectangle:function(d,\nf){var E=d.symbolHeight,A=d.options.squareSymbol;f.legendSymbol=this.chart.renderer.rect(A?(d.symbolWidth-E)/2:0,d.baseline-E+1,A?E:d.symbolWidth,E,q(d.options.symbolRadius,E/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(f.legendGroup)},drawLineMarker:function(d){var f=this.options,A=f.marker,L=d.symbolWidth,x=d.symbolHeight,F=x/2,H=this.chart.renderer,C=this.legendGroup;d=d.baseline-Math.round(.3*d.fontMetrics.b);var D={};this.chart.styledMode||(D={\"stroke-width\":f.lineWidth||0},f.dashStyle&&\n(D.dashstyle=f.dashStyle));this.legendLine=H.path([\"M\",0,d,\"L\",L,d]).addClass(\"highcharts-graph\").attr(D).add(C);A&&!1!==A.enabled&&L&&(f=Math.min(q(A.radius,F),F),0===this.symbol.indexOf(\"url\")&&(A=E(A,{width:x,height:x}),f=0),this.legendSymbol=A=H.symbol(this.symbol,L/2-f,d-f,2*f,2*f,A).addClass(\"highcharts-point\").add(C),A.isMarker=!0)}};return d.LegendSymbolMixin});Q(A,\"parts/Point.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){\"\";var A=f.animObject,q=f.defined,M=f.erase,K=\nf.extend,J=f.fireEvent,L=f.format,x=f.getNestedProperty,F=f.isArray,H=f.isNumber,C=f.isObject,D=f.syncTimeout,w=f.pick,n=f.removeEvent,t=f.uniqueKey;f=function(){function d(){this.colorIndex=this.category=void 0;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.series=void 0;this.visible=!0;this.x=void 0}d.prototype.animateBeforeDestroy=function(){var d=this,b={x:d.startXPos,opacity:0},g,f=d.getGraphicalProps();f.singular.forEach(function(f){g=\n\"dataLabel\"===f;d[f]=d[f].animate(g?{x:d[f].startXPos,y:d[f].startYPos,opacity:0}:b)});f.plural.forEach(function(b){d[b].forEach(function(b){b.element&&b.animate(K({x:d.startXPos},b.startYPos?{x:b.startXPos,y:b.startYPos}:{}))})})};d.prototype.applyOptions=function(f,b){var g=this.series,m=g.options.pointValKey||g.pointValKey;f=d.prototype.optionsToObject.call(this,f);K(this,f);this.options=this.options?K(this.options,f):f;f.group&&delete this.group;f.dataLabels&&delete this.dataLabels;m&&(this.y=\nd.prototype.getNestedProperty.call(this,m));this.formatPrefix=(this.isNull=w(this.isValid&&!this.isValid(),null===this.x||!H(this.y)))?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof b&&g.xAxis&&g.xAxis.hasNames&&(this.x=g.xAxis.nameToX(this));\"undefined\"===typeof this.x&&g&&(this.x=\"undefined\"===typeof b?g.autoIncrement(this):b);return this};d.prototype.destroy=function(){function d(){if(b.graphic||b.dataLabel||b.dataLabels)n(b),b.destroyElements();for(p in b)b[p]=\nnull}var b=this,g=b.series,f=g.chart;g=g.options.dataSorting;var h=f.hoverPoints,e=A(b.series.chart.renderer.globalAnimation),p;b.legendItem&&f.legend.destroyItem(b);h&&(b.setState(),M(h,b),h.length||(f.hoverPoints=null));if(b===f.hoverPoint)b.onMouseOut();g&&g.enabled?(this.animateBeforeDestroy(),D(d,e.duration)):d();f.pointCount--};d.prototype.destroyElements=function(d){var b=this;d=b.getGraphicalProps(d);d.singular.forEach(function(d){b[d]=b[d].destroy()});d.plural.forEach(function(d){b[d].forEach(function(b){b.element&&\nb.destroy()});delete b[d]})};d.prototype.firePointEvent=function(d,b,g){var f=this,h=this.series.options;(h.point.events[d]||f.options&&f.options.events&&f.options.events[d])&&f.importEvents();\"click\"===d&&h.allowPointSelect&&(g=function(b){f.select&&f.select(null,b.ctrlKey||b.metaKey||b.shiftKey)});J(f,d,b,g)};d.prototype.getClassName=function(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+\n(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")};d.prototype.getGraphicalProps=function(d){var b=this,g=[],f,h={singular:[],plural:[]};d=d||{graphic:1,dataLabel:1};d.graphic&&g.push(\"graphic\",\"shadowGroup\");d.dataLabel&&g.push(\"dataLabel\",\"dataLabelUpper\",\"connector\");for(f=g.length;f--;){var e=g[f];b[e]&&h.singular.push(e)}[\"dataLabel\",\n\"connector\"].forEach(function(e){var g=e+\"s\";d[e]&&b[g]&&h.plural.push(g)});return h};d.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}};d.prototype.getNestedProperty=function(d){if(d)return 0===d.indexOf(\"custom.\")?x(d,this.options):this[d]};d.prototype.getZone=function(){var d=this.series,b=d.zones;d=d.zoneAxis||\n\"y\";var g=0,f;for(f=b[g];this[d]>=f.value;)f=b[++g];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=f&&f.color&&!this.options.color?f.color:this.nonZonedColor;return f};d.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};d.prototype.init=function(d,b,g){this.series=d;this.applyOptions(b,g);this.id=q(this.id)?this.id:t();this.resolveColor();d.chart.pointCount++;J(this,\"afterInit\");return this};d.prototype.optionsToObject=\nfunction(f){var b={},g=this.series,m=g.options.keys,h=m||g.pointArrayMap||[\"y\"],e=h.length,p=0,l=0;if(H(f)||null===f)b[h[0]]=f;else if(F(f))for(!m&&f.length>e&&(g=typeof f[0],\"string\"===g?b.name=f[0]:\"number\"===g&&(b.x=f[0]),p++);l<e;)m&&\"undefined\"===typeof f[p]||(0<h[l].indexOf(\".\")?d.prototype.setNestedProperty(b,f[p],h[l]):b[h[l]]=f[p]),p++,l++;else\"object\"===typeof f&&(b=f,f.dataLabels&&(g._hasPointLabels=!0),f.marker&&(g._hasPointMarkers=!0));return b};d.prototype.resolveColor=function(){var d=\nthis.series;var b=d.chart.options.chart.colorCount;var g=d.chart.styledMode;delete this.nonZonedColor;g||this.options.color||(this.color=d.color);d.options.colorByPoint?(g||(b=d.options.colors||d.chart.options.colors,this.color=this.color||b[d.colorCounter],b=b.length),g=d.colorCounter,d.colorCounter++,d.colorCounter===b&&(d.colorCounter=0)):g=d.colorIndex;this.colorIndex=w(this.colorIndex,g)};d.prototype.setNestedProperty=function(d,b,g){g.split(\".\").reduce(function(d,g,e,f){d[g]=f.length-1===e?\nb:C(d[g],!0)?d[g]:{};return d[g]},d);return d};d.prototype.tooltipFormatter=function(d){var b=this.series,g=b.tooltipOptions,f=w(g.valueDecimals,\"\"),h=g.valuePrefix||\"\",e=g.valueSuffix||\"\";b.chart.styledMode&&(d=b.chart.tooltip.styledModeFormat(d));(b.pointArrayMap||[\"y\"]).forEach(function(b){b=\"{point.\"+b;if(h||e)d=d.replace(RegExp(b+\"}\",\"g\"),h+b+\"}\"+e);d=d.replace(RegExp(b+\"}\",\"g\"),b+\":,.\"+f+\"f}\")});return L(d,{point:this,series:this.series},b.chart)};return d}();d.Point=f;return d.Point});Q(A,\n\"parts/Series.js\",[A[\"mixins/legend-symbol.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){\"\";var E=q.addEvent,K=q.animObject,J=q.arrayMax,L=q.arrayMin,x=q.clamp,F=q.correctFloat,H=q.defined,C=q.erase,D=q.error,w=q.extend,n=q.find,t=q.fireEvent,N=q.getNestedProperty,m=q.isArray,b=q.isFunction,g=q.isNumber,v=q.isString,h=q.merge,e=q.objectEach,p=q.pick,l=q.removeEvent,I=q.seriesType,u=q.splat,y=q.syncTimeout,G=f.defaultOptions,S=f.defaultPlotOptions,R=f.seriesTypes,\nB=f.SVGElement,c=f.win;f.Series=I(\"line\",null,{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\"center\",formatter:function(){var a=this.series.chart.numberFormatter;return\"number\"!==typeof this.y?\n\"\":a(this.y,-1)},padding:5,style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"},{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",\ncolorCounter:0,cropShoulder:1,directTouch:!1,eventsToUnbind:[],isCartesian:!0,parallelArrays:[\"x\",\"y\"],pointClass:A,requireSorting:!0,sorted:!0,init:function(a,c){t(this,\"init\",{options:c});var d=this,k=a.series,g;this.eventOptions=this.eventOptions||{};d.chart=a;d.options=c=d.setOptions(c);d.linkedSeries=[];d.bindAxes();w(d,{name:c.name,state:\"\",visible:!1!==c.visible,selected:!0===c.selected});var f=c.events;e(f,function(a,c){b(a)&&d.eventOptions[c]!==a&&(b(d.eventOptions[c])&&l(d,c,d.eventOptions[c]),\nd.eventOptions[c]=a,E(d,c,a))});if(f&&f.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)a.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(a){d[a+\"Data\"]||(d[a+\"Data\"]=[])});d.isCartesian&&(a.hasCartesianSeries=!0);k.length&&(g=k[k.length-1]);d._i=p(g&&g._i,-1)+1;a.orderSeries(this.insert(k));c.dataSorting&&c.dataSorting.enabled?d.setDataSortingOptions():d.points||d.data||d.setData(c.data,!1);t(this,\"afterInit\")},is:function(a){return R[a]&&\nthis instanceof R[a]},insert:function(a){var c=this.options.index,b;if(g(c)){for(b=a.length;b--;)if(c>=p(a[b].options.index,a[b]._i)){a.splice(b+1,0,this);break}-1===b&&a.unshift(this);b+=1}else a.push(this);return p(b,a.length-1)},bindAxes:function(){var a=this,c=a.options,b=a.chart,e;t(this,\"bindAxes\",null,function(){(a.axisTypes||[]).forEach(function(d){b[d].forEach(function(b){e=b.options;if(c[d]===e.index||\"undefined\"!==typeof c[d]&&c[d]===e.id||\"undefined\"===typeof c[d]&&0===e.index)a.insert(b.series),\na[d]=b,b.isDirty=!0});a[d]||a.optionalAxis===d||D(18,!0,b)})});t(this,\"afterBindAxes\")},updateParallelArrays:function(a,c){var b=a.series,e=arguments,d=g(c)?function(e){var d=\"y\"===e&&b.toYData?b.toYData(a):a[e];b[e+\"Data\"][c]=d}:function(a){Array.prototype[c].apply(b[a+\"Data\"],Array.prototype.slice.call(e,2))};b.parallelArrays.forEach(d)},hasData:function(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length},autoIncrement:function(){var a=\nthis.options,c=this.xIncrement,b,e=a.pointIntervalUnit,d=this.chart.time;c=p(c,a.pointStart,0);this.pointInterval=b=p(this.pointInterval,a.pointInterval,1);e&&(a=new d.Date(c),\"day\"===e?d.set(\"Date\",a,d.get(\"Date\",a)+b):\"month\"===e?d.set(\"Month\",a,d.get(\"Month\",a)+b):\"year\"===e&&d.set(\"FullYear\",a,d.get(\"FullYear\",a)+b),b=a.getTime()-c);this.xIncrement=c+b;return c},setDataSortingOptions:function(){var a=this.options;w(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});H(a.pointRange)||\n(a.pointRange=1)},setOptions:function(a){var c=this.chart,b=c.options,e=b.plotOptions,d=c.userOptions||{};a=h(a);c=c.styledMode;var g={plotOptions:e,userOptions:a};t(this,\"setOptions\",g);var l=g.plotOptions[this.type],f=d.plotOptions||{};this.userOptions=g.userOptions;d=h(l,e.series,d.plotOptions&&d.plotOptions[this.type],a);this.tooltipOptions=h(G.tooltip,G.plotOptions.series&&G.plotOptions.series.tooltip,G.plotOptions[this.type].tooltip,b.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,\na.tooltip);this.stickyTracking=p(a.stickyTracking,f[this.type]&&f[this.type].stickyTracking,f.series&&f.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:d.stickyTracking);null===l.marker&&delete d.marker;this.zoneAxis=d.zoneAxis;b=this.zones=(d.zones||[]).slice();!d.negativeColor&&!d.negativeFillColor||d.zones||(e={value:d[this.zoneAxis+\"Threshold\"]||d.threshold||0,className:\"highcharts-negative\"},c||(e.color=d.negativeColor,e.fillColor=d.negativeFillColor),b.push(e));b.length&&\nH(b[b.length-1].value)&&b.push(c?{}:{color:this.color,fillColor:this.fillColor});t(this,\"afterSetOptions\",{options:d});return d},getName:function(){return p(this.options.name,\"Series \"+(this.index+1))},getCyclic:function(a,c,b){var e=this.chart,d=this.userOptions,k=a+\"Index\",g=a+\"Counter\",l=b?b.length:p(e.options.chart[a+\"Count\"],e[a+\"Count\"]);if(!c){var f=p(d[k],d[\"_\"+k]);H(f)||(e.series.length||(e[g]=0),d[\"_\"+k]=f=e[g]%l,e[g]+=1);b&&(c=b[f])}\"undefined\"!==typeof f&&(this[k]=f);this[a]=c},getColor:function(){this.chart.styledMode?\nthis.getCyclic(\"color\"):this.options.colorByPoint?this.options.color=null:this.getCyclic(\"color\",this.options.color||S[this.type].color,this.chart.options.colors)},getPointsCollection:function(){return(this.hasGroupedData?this.points:this.data)||[]},getSymbol:function(){this.getCyclic(\"symbol\",this.options.marker.symbol,this.chart.options.symbols)},findPointIndex:function(a,c){var b=a.id,e=a.x,d=this.points,k,l=this.options.dataSorting;if(b)var f=this.chart.get(b);else if(this.linkedParent||this.enabledDataSorting){var h=\nl&&l.matchByName?\"name\":\"index\";f=n(d,function(c){return!c.touched&&c[h]===a[h]});if(!f)return}if(f){var m=f&&f.index;\"undefined\"!==typeof m&&(k=!0)}\"undefined\"===typeof m&&g(e)&&(m=this.xData.indexOf(e,c));-1!==m&&\"undefined\"!==typeof m&&this.cropped&&(m=m>=this.cropStart?m-this.cropStart:m);!k&&d[m]&&d[m].touched&&(m=void 0);return m},drawLegendSymbol:d.drawLineMarker,updateData:function(a,c){var b=this.options,e=b.dataSorting,d=this.points,k=[],l,f,h,m=this.requireSorting,u=a.length===d.length,\np=!0;this.xIncrement=null;a.forEach(function(a,c){var f=H(a)&&this.pointClass.prototype.optionsToObject.call({series:this},a)||{};var r=f.x;if(f.id||g(r)){if(r=this.findPointIndex(f,h),-1===r||\"undefined\"===typeof r?k.push(a):d[r]&&a!==b.data[r]?(d[r].update(a,!1,null,!1),d[r].touched=!0,m&&(h=r+1)):d[r]&&(d[r].touched=!0),!u||c!==r||e&&e.enabled||this.hasDerivedData)l=!0}else k.push(a)},this);if(l)for(a=d.length;a--;)(f=d[a])&&!f.touched&&f.remove&&f.remove(!1,c);else!u||e&&e.enabled?p=!1:(a.forEach(function(a,\nc){d[c].update&&a!==d[c].y&&d[c].update(a,!1,null,!1)}),k.length=0);d.forEach(function(a){a&&(a.touched=!1)});if(!p)return!1;k.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=J(this.xData),this.autoIncrement());return!0},setData:function(a,c,b,e){var d=this,k=d.points,l=k&&k.length||0,f,h=d.options,r=d.chart,u=h.dataSorting,n=null,z=d.xAxis;n=h.turboThreshold;var y=this.xData,w=this.yData,t=(f=d.pointArrayMap)&&f.length,\nB=h.keys,G=0,q=1,x;a=a||[];f=a.length;c=p(c,!0);u&&u.enabled&&(a=this.sortData(a));!1!==e&&f&&l&&!d.cropped&&!d.hasGroupedData&&d.visible&&!d.isSeriesBoosting&&(x=this.updateData(a,b));if(!x){d.xIncrement=null;d.colorCounter=0;this.parallelArrays.forEach(function(a){d[a+\"Data\"].length=0});if(n&&f>n)if(n=d.getFirstValidPoint(a),g(n))for(b=0;b<f;b++)y[b]=this.autoIncrement(),w[b]=a[b];else if(m(n))if(t)for(b=0;b<f;b++)e=a[b],y[b]=e[0],w[b]=e.slice(1,t+1);else for(B&&(G=B.indexOf(\"x\"),q=B.indexOf(\"y\"),\nG=0<=G?G:0,q=0<=q?q:1),b=0;b<f;b++)e=a[b],y[b]=e[G],w[b]=e[q];else D(12,!1,r);else for(b=0;b<f;b++)\"undefined\"!==typeof a[b]&&(e={series:d},d.pointClass.prototype.applyOptions.apply(e,[a[b]]),d.updateParallelArrays(e,b));w&&v(w[0])&&D(14,!0,r);d.data=[];d.options.data=d.userOptions.data=a;for(b=l;b--;)k[b]&&k[b].destroy&&k[b].destroy();z&&(z.minRange=z.userMinRange);d.isDirty=r.isDirtyBox=!0;d.isDirtyData=!!k;b=!1}\"point\"===h.legendType&&(this.processData(),this.generatePoints());c&&r.redraw(b)},\nsortData:function(a){var c=this,b=c.options.dataSorting.sortKey||\"y\",e=function(a,c){return H(c)&&a.pointClass.prototype.optionsToObject.call({series:a},c)||{}};a.forEach(function(b,d){a[d]=e(c,b);a[d].index=d},this);a.concat().sort(function(a,c){a=N(b,a);c=N(b,c);return c<a?-1:c>a?1:0}).forEach(function(a,c){a.x=c},this);c.linkedSeries&&c.linkedSeries.forEach(function(c){var b=c.options,d=b.data;b.dataSorting&&b.dataSorting.enabled||!d||(d.forEach(function(b,k){d[k]=e(c,b);a[k]&&(d[k].x=a[k].x,d[k].index=\nk)}),c.setData(d,!1))});return a},getProcessedData:function(a){var c=this.xData,b=this.yData,e=c.length;var d=0;var g=this.xAxis,f=this.options;var l=f.cropThreshold;var h=a||this.getExtremesFromAll||f.getExtremesFromAll,m=this.isCartesian;a=g&&g.val2lin;f=!(!g||!g.logarithmic);var u=this.requireSorting;if(g){g=g.getExtremes();var p=g.min;var n=g.max}if(m&&this.sorted&&!h&&(!l||e>l||this.forceCrop))if(c[e-1]<p||c[0]>n)c=[],b=[];else if(this.yData&&(c[0]<p||c[e-1]>n)){d=this.cropData(this.xData,this.yData,\np,n);c=d.xData;b=d.yData;d=d.start;var v=!0}for(l=c.length||1;--l;)if(e=f?a(c[l])-a(c[l-1]):c[l]-c[l-1],0<e&&(\"undefined\"===typeof y||e<y))var y=e;else 0>e&&u&&(D(15,!1,this.chart),u=!1);return{xData:c,yData:b,cropped:v,cropStart:d,closestPointRange:y}},processData:function(a){var c=this.xAxis;if(this.isCartesian&&!this.isDirty&&!c.isDirty&&!this.yAxis.isDirty&&!a)return!1;a=this.getProcessedData();this.cropped=a.cropped;this.cropStart=a.cropStart;this.processedXData=a.xData;this.processedYData=a.yData;\nthis.closestPointRange=this.basePointRange=a.closestPointRange},cropData:function(a,c,b,e,d){var g=a.length,k=0,l=g,f;d=p(d,this.cropShoulder);for(f=0;f<g;f++)if(a[f]>=b){k=Math.max(0,f-d);break}for(b=f;b<g;b++)if(a[b]>e){l=b+d;break}return{xData:a.slice(k,l),yData:c.slice(k,l),start:k,end:l}},generatePoints:function(){var a=this.options,c=a.data,b=this.data,e,d=this.processedXData,g=this.processedYData,f=this.pointClass,l=d.length,h=this.cropStart||0,m=this.hasGroupedData;a=a.keys;var p=[],n;b||\nm||(b=[],b.length=c.length,b=this.data=b);a&&m&&(this.options.keys=!1);for(n=0;n<l;n++){var v=h+n;if(m){var y=(new f).init(this,[d[n]].concat(u(g[n])));y.dataGroup=this.groupMap[n];y.dataGroup.options&&(y.options=y.dataGroup.options,w(y,y.dataGroup.options),delete y.dataLabels)}else(y=b[v])||\"undefined\"===typeof c[v]||(b[v]=y=(new f).init(this,c[v],d[n]));y&&(y.index=v,p[n]=y)}this.options.keys=a;if(b&&(l!==(e=b.length)||m))for(n=0;n<e;n++)n!==h||m||(n+=l),b[n]&&(b[n].destroyElements(),b[n].plotX=\nvoid 0);this.data=b;this.points=p;t(this,\"afterGeneratePoints\")},getXExtremes:function(a){return{min:L(a),max:J(a)}},getExtremes:function(a,c){var b=this.xAxis,e=this.yAxis,d=this.processedXData||this.xData,k=[],l=0,f=0;var h=0;var u=this.requireSorting?this.cropShoulder:0,n=e?e.positiveValuesOnly:!1,p;a=a||this.stackedYData||this.processedYData||[];e=a.length;b&&(h=b.getExtremes(),f=h.min,h=h.max);for(p=0;p<e;p++){var v=d[p];var y=a[p];var w=(g(y)||m(y))&&(y.length||0<y||!n);v=c||this.getExtremesFromAll||\nthis.options.getExtremesFromAll||this.cropped||!b||(d[p+u]||v)>=f&&(d[p-u]||v)<=h;if(w&&v)if(w=y.length)for(;w--;)g(y[w])&&(k[l++]=y[w]);else k[l++]=y}a={dataMin:L(k),dataMax:J(k)};t(this,\"afterGetExtremes\",{dataExtremes:a});return a},applyExtremes:function(){var a=this.getExtremes();this.dataMin=a.dataMin;this.dataMax=a.dataMax;return a},getFirstValidPoint:function(a){for(var c=null,b=a.length,e=0;null===c&&e<b;)c=a[e],e++;return c},translate:function(){this.processedXData||this.processData();this.generatePoints();\nvar a=this.options,c=a.stacking,b=this.xAxis,e=b.categories,d=this.enabledDataSorting,l=this.yAxis,f=this.points,h=f.length,u=!!this.modifyValue,n,v=this.pointPlacementToXValue(),y=!!v,w=a.threshold,B=a.startFromThreshold?w:0,G,q=this.zoneAxis||\"y\",I=Number.MAX_VALUE;for(n=0;n<h;n++){var C=f[n],D=C.x,R=C.y,S=C.low,A=c&&l.stacking&&l.stacking.stacks[(this.negStacks&&R<(B?0:w)?\"-\":\"\")+this.stackKey];l.positiveValuesOnly&&null!==R&&0>=R&&(C.isNull=!0);C.plotX=G=F(x(b.translate(D,0,0,0,1,v,\"flags\"===\nthis.type),-1E5,1E5));if(c&&this.visible&&A&&A[D]){var E=this.getStackIndicator(E,D,this.index);if(!C.isNull){var N=A[D];var L=N.points[E.key]}}m(L)&&(S=L[0],R=L[1],S===B&&E.key===A[D].base&&(S=p(g(w)&&w,l.min)),l.positiveValuesOnly&&0>=S&&(S=null),C.total=C.stackTotal=N.total,C.percentage=N.total&&C.y/N.total*100,C.stackY=R,this.irregularWidths||N.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=H(S)?x(l.translate(S,0,1,0,1),-1E5,1E5):null;u&&(R=this.modifyValue(R,C));C.plotY=\"number\"===typeof R&&\nInfinity!==R?x(l.translate(R,0,1,0,1),-1E5,1E5):void 0;C.isInside=this.isPointInside(C);C.clientX=y?F(b.translate(D,0,0,0,1,v)):G;C.negative=C[q]<(a[q+\"Threshold\"]||w||0);C.category=e&&\"undefined\"!==typeof e[C.x]?e[C.x]:C.x;if(!C.isNull&&!1!==C.visible){\"undefined\"!==typeof J&&(I=Math.min(I,Math.abs(G-J)));var J=G}C.zone=this.zones.length&&C.getZone();!C.graphic&&this.group&&d&&(C.isNew=!0)}this.closestPointRangePx=I;t(this,\"afterTranslate\")},getValidPoints:function(a,c,b){var e=this.chart;return(a||\nthis.points||[]).filter(function(a){return c&&!e.isInsidePlot(a.plotX,a.plotY,e.inverted)?!1:!1!==a.visible&&(b||!a.isNull)})},getClipBox:function(a,c){var b=this.options,e=this.chart,d=e.inverted,g=this.xAxis,k=g&&this.yAxis;a&&!1===b.clip&&k?a=d?{y:-e.chartWidth+k.len+k.pos,height:e.chartWidth,width:e.chartHeight,x:-e.chartHeight+g.len+g.pos}:{y:-k.pos,height:e.chartHeight,width:e.chartWidth,x:-g.pos}:(a=this.clipBox||e.clipBox,c&&(a.width=e.plotSizeX,a.x=0));return c?{width:a.width,x:a.x}:a},setClip:function(a){var c=\nthis.chart,b=this.options,e=c.renderer,d=c.inverted,g=this.clipBox,l=this.getClipBox(a),f=this.sharedClipKey||[\"_sharedClip\",a&&a.duration,a&&a.easing,l.height,b.xAxis,b.yAxis].join(),h=c[f],m=c[f+\"m\"];a&&(l.width=0,d&&(l.x=c.plotHeight+(!1!==b.clip?0:c.plotTop)));h?c.hasLoaded||h.attr(l):(a&&(c[f+\"m\"]=m=e.clipRect(d?c.plotSizeX+99:-99,d?-c.plotLeft:-c.plotTop,99,d?c.chartWidth:c.chartHeight)),c[f]=h=e.clipRect(l),h.count={length:0});a&&!h.count[this.index]&&(h.count[this.index]=!0,h.count.length+=\n1);if(!1!==b.clip||a)this.group.clip(a||g?h:c.clipRect),this.markerGroup.clip(m),this.sharedClipKey=f;a||(h.count[this.index]&&(delete h.count[this.index],--h.count.length),0===h.count.length&&f&&c[f]&&(g||(c[f]=c[f].destroy()),c[f+\"m\"]&&(c[f+\"m\"]=c[f+\"m\"].destroy())))},animate:function(a){var c=this.chart,b=K(this.options.animation);if(!c.hasRendered)if(a)this.setClip(b);else{var e=this.sharedClipKey;a=c[e];var d=this.getClipBox(b,!0);a&&a.animate(d,b);c[e+\"m\"]&&c[e+\"m\"].animate({width:d.width+99,\nx:d.x-(c.inverted?0:99)},b)}},afterAnimate:function(){this.setClip();t(this,\"afterAnimate\");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,c=this.chart,b,e,d=this.options.marker,g=this[this.specialGroup]||this.markerGroup,f=this.xAxis,l=p(d.enabled,!f||f.isRadial?!0:null,this.closestPointRangePx>=d.enabledThreshold*d.radius);if(!1!==d.enabled||this._hasPointMarkers)for(b=0;b<a.length;b++){var h=a[b];var m=(e=h.graphic)?\"animate\":\"attr\";var u=h.marker||{};var n=!!h.marker;if((l&&\n\"undefined\"===typeof u.enabled||u.enabled)&&!h.isNull&&!1!==h.visible){var v=p(u.symbol,this.symbol);var y=this.markerAttribs(h,h.selected&&\"select\");this.enabledDataSorting&&(h.startXPos=f.reversed?-y.width:f.width);var w=!1!==h.isInside;e?e[w?\"show\":\"hide\"](w).animate(y):w&&(0<y.width||h.hasImage)&&(h.graphic=e=c.renderer.symbol(v,y.x,y.y,y.width,y.height,n?u:d).add(g),this.enabledDataSorting&&c.hasRendered&&(e.attr({x:h.startXPos}),m=\"animate\"));e&&\"animate\"===m&&e[w?\"show\":\"hide\"](w).animate(y);\nif(e&&!c.styledMode)e[m](this.pointAttribs(h,h.selected&&\"select\"));e&&e.addClass(h.getClassName(),!0)}else e&&(h.graphic=e.destroy())}},markerAttribs:function(a,c){var b=this.options,e=b.marker,d=a.marker||{},g=d.symbol||e.symbol,k=p(d.radius,e.radius);c&&(e=e.states[c],c=d.states&&d.states[c],k=p(c&&c.radius,e&&e.radius,k+(e&&e.radiusPlus||0)));a.hasImage=g&&0===g.indexOf(\"url\");a.hasImage&&(k=0);a={x:b.crisp?Math.floor(a.plotX)-k:a.plotX-k,y:a.plotY-k};k&&(a.width=a.height=2*k);return a},pointAttribs:function(a,\nc){var b=this.options.marker,e=a&&a.options,d=e&&e.marker||{},g=this.color,k=e&&e.color,f=a&&a.color;e=p(d.lineWidth,b.lineWidth);var l=a&&a.zone&&a.zone.color;a=1;g=k||l||f||g;k=d.fillColor||b.fillColor||g;g=d.lineColor||b.lineColor||g;c=c||\"normal\";b=b.states[c];c=d.states&&d.states[c]||{};e=p(c.lineWidth,b.lineWidth,e+p(c.lineWidthPlus,b.lineWidthPlus,0));k=c.fillColor||b.fillColor||k;g=c.lineColor||b.lineColor||g;a=p(c.opacity,b.opacity,a);return{stroke:g,\"stroke-width\":e,fill:k,opacity:a}},destroy:function(a){var b=\nthis,d=b.chart,g=/AppleWebKit\\/533/.test(c.navigator.userAgent),f,l,h=b.data||[],m,u;t(b,\"destroy\");this.removeEvents(a);(b.axisTypes||[]).forEach(function(a){(u=b[a])&&u.series&&(C(u.series,b),u.isDirty=u.forceRedraw=!0)});b.legendItem&&b.chart.legend.destroyItem(b);for(l=h.length;l--;)(m=h[l])&&m.destroy&&m.destroy();b.points=null;q.clearTimeout(b.animationTimeout);e(b,function(a,c){a instanceof B&&!a.survive&&(f=g&&\"group\"===c?\"hide\":\"destroy\",a[f]())});d.hoverSeries===b&&(d.hoverSeries=null);\nC(d.series,b);d.orderSeries();e(b,function(c,e){a&&\"hcEvents\"===e||delete b[e]})},getGraphPath:function(a,c,b){var e=this,d=e.options,g=d.step,k,f=[],l=[],h;a=a||e.points;(k=a.reversed)&&a.reverse();(g={right:1,center:2}[g]||g&&3)&&k&&(g=4-g);a=this.getValidPoints(a,!1,!(d.connectNulls&&!c&&!b));a.forEach(function(k,m){var u=k.plotX,r=k.plotY,n=a[m-1];(k.leftCliff||n&&n.rightCliff)&&!b&&(h=!0);k.isNull&&!H(c)&&0<m?h=!d.connectNulls:k.isNull&&!c?h=!0:(0===m||h?m=[[\"M\",k.plotX,k.plotY]]:e.getPointSpline?\nm=[e.getPointSpline(a,k,m)]:g?(m=1===g?[[\"L\",n.plotX,r]]:2===g?[[\"L\",(n.plotX+u)/2,n.plotY],[\"L\",(n.plotX+u)/2,r]]:[[\"L\",u,n.plotY]],m.push([\"L\",u,r])):m=[[\"L\",u,r]],l.push(k.x),g&&(l.push(k.x),2===g&&l.push(k.x)),f.push.apply(f,m),h=!1)});f.xMap=l;return e.graphPath=f},drawGraph:function(){var a=this,c=this.options,b=(this.gappedPath||this.getGraphPath).call(this),e=this.chart.styledMode,d=[[\"graph\",\"highcharts-graph\"]];e||d[0].push(c.lineColor||this.color||\"#cccccc\",c.dashStyle);d=a.getZonesGraphs(d);\nd.forEach(function(d,g){var k=d[0],f=a[k],l=f?\"animate\":\"attr\";f?(f.endX=a.preventGraphAnimation?null:b.xMap,f.animate({d:b})):b.length&&(a[k]=f=a.chart.renderer.path(b).addClass(d[1]).attr({zIndex:1}).add(a.group));f&&!e&&(k={stroke:d[2],\"stroke-width\":c.lineWidth,fill:a.fillGraph&&a.color||\"none\"},d[3]?k.dashstyle=d[3]:\"square\"!==c.linecap&&(k[\"stroke-linecap\"]=k[\"stroke-linejoin\"]=\"round\"),f[l](k).shadow(2>g&&c.shadow));f&&(f.startX=b.xMap,f.isArea=b.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(c,\nb){b=[\"zone-graph-\"+b,\"highcharts-graph highcharts-zone-graph-\"+b+\" \"+(c.className||\"\")];this.chart.styledMode||b.push(c.color||this.color,c.dashStyle||this.options.dashStyle);a.push(b)},this);return a},applyZones:function(){var a=this,c=this.chart,b=c.renderer,e=this.zones,d,g,f=this.clips||[],l,h=this.graph,m=this.area,u=Math.max(c.chartWidth,c.chartHeight),n=this[(this.zoneAxis||\"y\")+\"Axis\"],v=c.inverted,y,w,t,B=!1,G,q;if(e.length&&(h||m)&&n&&\"undefined\"!==typeof n.min){var C=n.reversed;var I=\nn.horiz;h&&!this.showLine&&h.hide();m&&m.hide();var D=n.getExtremes();e.forEach(function(e,k){d=C?I?c.plotWidth:0:I?0:n.toPixels(D.min)||0;d=x(p(g,d),0,u);g=x(Math.round(n.toPixels(p(e.value,D.max),!0)||0),0,u);B&&(d=g=n.toPixels(D.max));y=Math.abs(d-g);w=Math.min(d,g);t=Math.max(d,g);n.isXAxis?(l={x:v?t:w,y:0,width:y,height:u},I||(l.x=c.plotHeight-l.x)):(l={x:0,y:v?t:w,width:u,height:y},I&&(l.y=c.plotWidth-l.y));v&&b.isVML&&(l=n.isXAxis?{x:0,y:C?w:t,height:l.width,width:c.chartWidth}:{x:l.y-c.plotLeft-\nc.spacingBox.x,y:0,width:l.height,height:c.chartHeight});f[k]?f[k].animate(l):f[k]=b.clipRect(l);G=a[\"zone-area-\"+k];q=a[\"zone-graph-\"+k];h&&q&&q.clip(f[k]);m&&G&&G.clip(f[k]);B=e.value>D.max;a.resetZones&&0===g&&(g=void 0)});this.clips=f}else a.visible&&(h&&h.show(!0),m&&m.show(!0))},invertGroups:function(a){function c(){[\"group\",\"markerGroup\"].forEach(function(c){b[c]&&(e.renderer.isVML&&b[c].attr({width:b.yAxis.len,height:b.xAxis.len}),b[c].width=b.yAxis.len,b[c].height=b.xAxis.len,b[c].invert(b.isRadialSeries?\n!1:a))})}var b=this,e=b.chart;b.xAxis&&(b.eventsToUnbind.push(E(e,\"resize\",c)),c(),b.invertGroups=c)},plotGroup:function(a,c,b,e,d){var g=this[a],k=!g;k&&(this[a]=g=this.chart.renderer.g().attr({zIndex:e||.1}).add(d));g.addClass(\"highcharts-\"+c+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(H(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(g.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);g.attr({visibility:b})[k?\"attr\":\n\"animate\"](this.getPlotBox());return g},getPlotBox:function(){var a=this.chart,c=this.xAxis,b=this.yAxis;a.inverted&&(c=b,b=this.xAxis);return{translateX:c?c.left:a.plotLeft,translateY:b?b.top:a.plotTop,scaleX:1,scaleY:1}},removeEvents:function(a){a?this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind.length=0):l(this)},render:function(){var a=this,c=a.chart,b=a.options,e=!a.finishedAnimating&&c.renderer.isSVG&&K(b.animation).duration,d=a.visible?\"inherit\":\n\"hidden\",g=b.zIndex,f=a.hasRendered,l=c.seriesGroup,h=c.inverted;t(this,\"render\");var m=a.plotGroup(\"group\",\"series\",d,g,l);a.markerGroup=a.plotGroup(\"markerGroup\",\"markers\",d,g,l);e&&a.animate&&a.animate(!0);m.inverted=a.isCartesian||a.invertable?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===b.clip||a.sharedClipKey||\nf||m.clip(c.clipRect);e&&a.animate&&a.animate();f||(a.animationTimeout=y(function(){a.afterAnimate()},e||0));a.isDirty=!1;a.hasRendered=!0;t(a,\"afterRender\")},redraw:function(){var a=this.chart,c=this.isDirty||this.isDirtyData,b=this.group,e=this.xAxis,d=this.yAxis;b&&(a.inverted&&b.attr({width:a.plotWidth,height:a.plotHeight}),b.animate({translateX:p(e&&e.left,a.plotLeft),translateY:p(d&&d.top,a.plotTop)}));this.translate();this.render();c&&delete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(a,\nc){var b=this.xAxis,e=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?b.len-a.chartY+b.pos:a.chartX-b.pos,plotY:d?e.len-a.chartX+e.pos:a.chartY-e.pos},c,a)},buildKDTree:function(a){function c(a,e,d){var g;if(g=a&&a.length){var k=b.kdAxisArray[e%d];a.sort(function(a,c){return a[k]-c[k]});g=Math.floor(g/2);return{point:a[g],left:c(a.slice(0,g),e+1,d),right:c(a.slice(g+1),e+1,d)}}}this.buildingKdTree=!0;var b=this,e=-1<b.options.findNearestPointBy.indexOf(\"y\")?2:1;delete b.kdTree;\ny(function(){b.kdTree=c(b.getValidPoints(null,!b.directTouch),e,e);b.buildingKdTree=!1},b.options.kdNow||a&&\"touchstart\"===a.type?0:1)},searchKDTree:function(a,c,b){function e(a,c,b,l){var h=c.point,m=d.kdAxisArray[b%l],u=h;var n=H(a[g])&&H(h[g])?Math.pow(a[g]-h[g],2):null;var p=H(a[k])&&H(h[k])?Math.pow(a[k]-h[k],2):null;p=(n||0)+(p||0);h.dist=H(p)?Math.sqrt(p):Number.MAX_VALUE;h.distX=H(n)?Math.sqrt(n):Number.MAX_VALUE;m=a[m]-h[m];p=0>m?\"left\":\"right\";n=0>m?\"right\":\"left\";c[p]&&(p=e(a,c[p],b+1,\nl),u=p[f]<u[f]?p:h);c[n]&&Math.sqrt(m*m)<u[f]&&(a=e(a,c[n],b+1,l),u=a[f]<u[f]?a:u);return u}var d=this,g=this.kdAxisArray[0],k=this.kdAxisArray[1],f=c?\"distX\":\"dist\";c=-1<d.options.findNearestPointBy.indexOf(\"y\")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(b);if(this.kdTree)return e(a,this.kdTree,c,c)},pointPlacementToXValue:function(){var a=this.options,c=a.pointRange,b=this.xAxis;a=a.pointPlacement;\"between\"===a&&(a=b.reversed?-.5:.5);return g(a)?a*p(c,b.pointRange):0},isPointInside:function(a){return\"undefined\"!==\ntypeof a.plotY&&\"undefined\"!==typeof a.plotX&&0<=a.plotY&&a.plotY<=this.yAxis.len&&0<=a.plotX&&a.plotX<=this.xAxis.len}});\"\"});Q(A,\"parts/Stacking.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/StackingAxis.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=q.correctFloat,K=q.defined,J=q.destroyObjectProperties,L=q.format,x=q.pick;\"\";q=f.Chart;var F=f.Series,H=function(){function d(d,f,n,t,q){var m=d.chart.inverted;this.axis=d;this.isNegative=n;this.options=f=f||{};this.x=t;this.total=\nnull;this.points={};this.stack=q;this.rightCliff=this.leftCliff=0;this.alignOptions={align:f.align||(m?n?\"left\":\"right\":\"center\"),verticalAlign:f.verticalAlign||(m?\"middle\":n?\"bottom\":\"top\"),y:f.y,x:f.x};this.textAlign=f.textAlign||(m?n?\"right\":\"left\":\"center\")}d.prototype.destroy=function(){J(this,this.axis)};d.prototype.render=function(d){var f=this.axis.chart,n=this.options,t=n.format;t=t?L(t,this,f):n.formatter.call(this);this.label?this.label.attr({text:t,visibility:\"hidden\"}):(this.label=f.renderer.label(t,\nnull,null,n.shape,null,null,n.useHTML,!1,\"stack-labels\"),t={r:n.borderRadius||0,text:t,rotation:n.rotation,padding:x(n.padding,5),visibility:\"hidden\"},f.styledMode||(t.fill=n.backgroundColor,t.stroke=n.borderColor,t[\"stroke-width\"]=n.borderWidth,this.label.css(n.style)),this.label.attr(t),this.label.added||this.label.add(d));this.label.labelrank=f.plotHeight};d.prototype.setOffset=function(d,f,n,t,q){var m=this.axis,b=m.chart;t=m.translate(m.stacking.usePercentage?100:t?t:this.total,0,0,0,1);n=m.translate(n?\nn:0);n=K(t)&&Math.abs(t-n);d=x(q,b.xAxis[0].translate(this.x))+d;m=K(t)&&this.getStackBox(b,this,d,t,f,n,m);f=this.label;n=this.isNegative;d=\"justify\"===x(this.options.overflow,\"justify\");var g=this.textAlign;f&&m&&(q=f.getBBox(),t=f.padding,g=\"left\"===g?b.inverted?-t:t:\"right\"===g?q.width:b.inverted&&\"center\"===g?q.width/2:b.inverted?n?q.width+t:-t:q.width/2,n=b.inverted?q.height/2:n?-t:q.height,this.alignOptions.x=x(this.options.x,0),this.alignOptions.y=x(this.options.y,0),m.x-=g,m.y-=n,f.align(this.alignOptions,\nnull,m),b.isInsidePlot(f.alignAttr.x+g-this.alignOptions.x,f.alignAttr.y+n-this.alignOptions.y)?f.show():(f.alignAttr.y=-9999,d=!1),d&&F.prototype.justifyDataLabel.call(this.axis,f,this.alignOptions,f.alignAttr,q,m),f.attr({x:f.alignAttr.x,y:f.alignAttr.y}),x(!d&&this.options.crop,!0)&&((b=b.isInsidePlot(f.x-t+f.width,f.y)&&b.isInsidePlot(f.x+t,f.y))||f.hide()))};d.prototype.getStackBox=function(d,f,n,t,q,m,b){var g=f.axis.reversed,v=d.inverted,h=b.height+b.pos-(v?d.plotLeft:d.plotTop);f=f.isNegative&&\n!g||!f.isNegative&&g;return{x:v?f?t-b.right:t-m+b.pos-d.plotLeft:n+d.xAxis[0].transB-d.plotLeft,y:v?b.height-n-q:f?h-t-m:h-t,width:v?m:q,height:v?q:m}};return d}();q.prototype.getStacks=function(){var d=this,f=d.inverted;d.yAxis.forEach(function(d){d.stacking&&d.stacking.stacks&&d.hasVisibleSeries&&(d.stacking.oldStacks=d.stacking.stacks)});d.series.forEach(function(w){var n=w.xAxis&&w.xAxis.options||{};!w.options.stacking||!0!==w.visible&&!1!==d.options.chart.ignoreHiddenSeries||(w.stackKey=[w.type,\nx(w.options.stack,\"\"),f?n.top:n.left,f?n.height:n.width].join())})};A.compose(d);F.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var d=this.processedXData,f=this.processedYData,w=[],n=f.length,t=this.options,q=t.threshold,m=x(t.startFromThreshold&&q,0),b=t.stack;t=t.stacking;var g=this.stackKey,v=\"-\"+g,h=this.negStacks,e=this.yAxis,p=e.stacking.stacks,l=e.stacking.oldStacks,I,u;e.stacking.stacksTouched+=1;for(u=\n0;u<n;u++){var y=d[u];var G=f[u];var S=this.getStackIndicator(S,y,this.index);var R=S.key;var B=(I=h&&G<(m?0:q))?v:g;p[B]||(p[B]={});p[B][y]||(l[B]&&l[B][y]?(p[B][y]=l[B][y],p[B][y].total=null):p[B][y]=new H(e,e.options.stackLabels,I,y,b));B=p[B][y];null!==G?(B.points[R]=B.points[this.index]=[x(B.cumulative,m)],K(B.cumulative)||(B.base=R),B.touched=e.stacking.stacksTouched,0<S.index&&!1===this.singleStacks&&(B.points[R][0]=B.points[this.index+\",\"+y+\",0\"][0])):B.points[R]=B.points[this.index]=null;\n\"percent\"===t?(I=I?g:v,h&&p[I]&&p[I][y]?(I=p[I][y],B.total=I.total=Math.max(I.total,B.total)+Math.abs(G)||0):B.total=E(B.total+(Math.abs(G)||0))):B.total=E(B.total+(G||0));B.cumulative=x(B.cumulative,m)+(G||0);null!==G&&(B.points[R].push(B.cumulative),w[u]=B.cumulative)}\"percent\"===t&&(e.stacking.usePercentage=!0);this.stackedYData=w;e.stacking.oldStacks={}}};F.prototype.modifyStacks=function(){var d=this,f=d.stackKey,w=d.yAxis.stacking.stacks,n=d.processedXData,t,q=d.options.stacking;d[q+\"Stacker\"]&&\n[f,\"-\"+f].forEach(function(f){for(var b=n.length,g,m;b--;)if(g=n[b],t=d.getStackIndicator(t,g,d.index,f),m=(g=w[f]&&w[f][g])&&g.points[t.key])d[q+\"Stacker\"](m,g,b)})};F.prototype.percentStacker=function(d,f,w){f=f.total?100/f.total:0;d[0]=E(d[0]*f);d[1]=E(d[1]*f);this.stackedYData[w]=d[1]};F.prototype.getStackIndicator=function(d,f,w,n){!K(d)||d.x!==f||n&&d.key!==n?d={x:f,index:0,key:n}:d.index++;d.key=[w,f,d.index].join();return d};f.StackItem=H;return f.StackItem});Q(A,\"parts/Dynamics.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Point.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=q.addEvent,K=q.animate,J=q.createElement,L=q.css,x=q.defined,F=q.erase,H=q.error,C=q.extend,D=q.fireEvent,w=q.isArray,n=q.isNumber,t=q.isObject,N=q.isString,m=q.merge,b=q.objectEach,g=q.pick,v=q.relativeLength,h=q.setAnimation,e=q.splat,p=d.Axis;q=d.Chart;var l=d.Series,I=d.seriesTypes;d.cleanRecursively=function(e,g){var f={};b(e,function(b,l){if(t(e[l],!0)&&!e.nodeType&&g[l])b=d.cleanRecursively(e[l],g[l]),Object.keys(b).length&&\n(f[l]=b);else if(t(e[l])||e[l]!==g[l])f[l]=e[l]});return f};C(q.prototype,{addSeries:function(b,e,d){var f,l=this;b&&(e=g(e,!0),D(l,\"addSeries\",{options:b},function(){f=l.initSeries(b);l.isDirtyLegend=!0;l.linkSeries();f.enabledDataSorting&&f.setData(b.data,!1);D(l,\"afterAddSeries\",{series:f});e&&l.redraw(d)}));return f},addAxis:function(b,e,d,g){return this.createAxis(e?\"xAxis\":\"yAxis\",{axis:b,redraw:d,animation:g})},addColorAxis:function(b,e,d){return this.createAxis(\"colorAxis\",{axis:b,redraw:e,\nanimation:d})},createAxis:function(b,f){var l=this.options,h=\"colorAxis\"===b,u=f.redraw,n=f.animation;f=m(f.axis,{index:this[b].length,isX:\"xAxis\"===b});var c=h?new d.ColorAxis(this,f):new p(this,f);l[b]=e(l[b]||{});l[b].push(f);h&&(this.isDirtyLegend=!0,this.axes.forEach(function(a){a.series=[]}),this.series.forEach(function(a){a.bindAxes();a.isDirtyData=!0}));g(u,!0)&&this.redraw(n);return c},showLoading:function(b){var e=this,d=e.options,f=e.loadingDiv,l=d.loading,h=function(){f&&L(f,{left:e.plotLeft+\n\"px\",top:e.plotTop+\"px\",width:e.plotWidth+\"px\",height:e.plotHeight+\"px\"})};f||(e.loadingDiv=f=J(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,e.container),e.loadingSpan=J(\"span\",{className:\"highcharts-loading-inner\"},null,f),E(e,\"redraw\",h));f.className=\"highcharts-loading\";e.loadingSpan.innerHTML=g(b,d.lang.loading,\"\");e.styledMode||(L(f,C(l.style,{zIndex:10})),L(e.loadingSpan,l.labelStyle),e.loadingShown||(L(f,{opacity:0,display:\"\"}),K(f,{opacity:l.style.opacity||.5},{duration:l.showDuration||\n0})));e.loadingShown=!0;h()},hideLoading:function(){var b=this.options,e=this.loadingDiv;e&&(e.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||K(e,{opacity:0},{duration:b.loading.hideDuration||100,complete:function(){L(e,{display:\"none\"})}}));this.loadingShown=!1},propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),propsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\npropsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \"),collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"zAxis\",\"series\"],update:function(f,l,h,p){var u=this,y={credits:\"addCredits\",title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"},c,a,k,r=f.isResponsiveOptions,t=[];D(u,\"update\",{options:f});r||u.setResponsive(!1,!0);f=d.cleanRecursively(f,u.options);m(!0,u.userOptions,f);if(c=f.chart){m(!0,u.options.chart,c);\"className\"in\nc&&u.setClassName(c.className);\"reflow\"in c&&u.setReflow(c.reflow);if(\"inverted\"in c||\"polar\"in c||\"type\"in c){u.propFromSeries();var w=!0}\"alignTicks\"in c&&(w=!0);b(c,function(c,b){-1!==u.propsRequireUpdateSeries.indexOf(\"chart.\"+b)&&(a=!0);-1!==u.propsRequireDirtyBox.indexOf(b)&&(u.isDirtyBox=!0);r||-1===u.propsRequireReflow.indexOf(b)||(k=!0)});!u.styledMode&&\"style\"in c&&u.renderer.setStyle(c.style)}!u.styledMode&&f.colors&&(this.options.colors=f.colors);f.plotOptions&&m(!0,this.options.plotOptions,\nf.plotOptions);f.time&&this.time===d.time&&(this.time=new A(f.time));b(f,function(c,b){if(u[b]&&\"function\"===typeof u[b].update)u[b].update(c,!1);else if(\"function\"===typeof u[y[b]])u[y[b]](c);\"chart\"!==b&&-1!==u.propsRequireUpdateSeries.indexOf(b)&&(a=!0)});this.collectionsWithUpdate.forEach(function(a){if(f[a]){if(\"series\"===a){var c=[];u[a].forEach(function(a,b){a.options.isInternal||c.push(g(a.options.index,b))})}e(f[a]).forEach(function(b,e){(e=x(b.id)&&u.get(b.id)||u[a][c?c[e]:e])&&e.coll===\na&&(e.update(b,!1),h&&(e.touched=!0));!e&&h&&u.collectionsWithInit[a]&&(u.collectionsWithInit[a][0].apply(u,[b].concat(u.collectionsWithInit[a][1]||[]).concat([!1])).touched=!0)});h&&u[a].forEach(function(a){a.touched||a.options.isInternal?delete a.touched:t.push(a)})}});t.forEach(function(a){a.remove&&a.remove(!1)});w&&u.axes.forEach(function(a){a.update({},!1)});a&&u.getSeriesOrderByLinks().forEach(function(a){a.chart&&a.update({},!1)},this);f.loading&&m(!0,u.options.loading,f.loading);w=c&&c.width;\nc=c&&c.height;N(c)&&(c=v(c,w||u.chartWidth));k||n(w)&&w!==u.chartWidth||n(c)&&c!==u.chartHeight?u.setSize(w,c,p):g(l,!0)&&u.redraw(p);D(u,\"afterUpdate\",{options:f,redraw:l,animation:p})},setSubtitle:function(b,e){this.applyDescription(\"subtitle\",b);this.layOutTitles(e)},setCaption:function(b,e){this.applyDescription(\"caption\",b);this.layOutTitles(e)}});q.prototype.collectionsWithInit={xAxis:[q.prototype.addAxis,[!0]],yAxis:[q.prototype.addAxis,[!1]],series:[q.prototype.addSeries]};C(f.prototype,{update:function(b,\ne,d,f){function l(){h.applyOptions(b);var f=a&&h.hasDummyGraphic;f=null===h.y?!f:f;a&&f&&(h.graphic=a.destroy(),delete h.hasDummyGraphic);t(b,!0)&&(a&&a.element&&b&&b.marker&&\"undefined\"!==typeof b.marker.symbol&&(h.graphic=a.destroy()),b&&b.dataLabels&&h.dataLabel&&(h.dataLabel=h.dataLabel.destroy()),h.connector&&(h.connector=h.connector.destroy()));k=h.index;c.updateParallelArrays(h,k);u.data[k]=t(u.data[k],!0)||t(b,!0)?h.options:g(b,u.data[k]);c.isDirty=c.isDirtyData=!0;!c.fixedBox&&c.hasCartesianSeries&&\n(m.isDirtyBox=!0);\"point\"===u.legendType&&(m.isDirtyLegend=!0);e&&m.redraw(d)}var h=this,c=h.series,a=h.graphic,k,m=c.chart,u=c.options;e=g(e,!0);!1===f?l():h.firePointEvent(\"update\",{options:b},l)},remove:function(b,e){this.series.removePoint(this.series.data.indexOf(this),b,e)}});C(l.prototype,{addPoint:function(b,e,d,f,l){var h=this.options,c=this.data,a=this.chart,k=this.xAxis;k=k&&k.hasNames&&k.names;var m=h.data,u=this.xData,n;e=g(e,!0);var p={series:this};this.pointClass.prototype.applyOptions.apply(p,\n[b]);var v=p.x;var y=u.length;if(this.requireSorting&&v<u[y-1])for(n=!0;y&&u[y-1]>v;)y--;this.updateParallelArrays(p,\"splice\",y,0,0);this.updateParallelArrays(p,y);k&&p.name&&(k[v]=p.name);m.splice(y,0,b);n&&(this.data.splice(y,0,null),this.processData());\"point\"===h.legendType&&this.generatePoints();d&&(c[0]&&c[0].remove?c[0].remove(!1):(c.shift(),this.updateParallelArrays(p,\"shift\"),m.shift()));!1!==l&&D(this,\"addPoint\",{point:p});this.isDirtyData=this.isDirty=!0;e&&a.redraw(f)},removePoint:function(b,\ne,d){var f=this,l=f.data,m=l[b],c=f.points,a=f.chart,k=function(){c&&c.length===l.length&&c.splice(b,1);l.splice(b,1);f.options.data.splice(b,1);f.updateParallelArrays(m||{series:f},\"splice\",b,1);m&&m.destroy();f.isDirty=!0;f.isDirtyData=!0;e&&a.redraw()};h(d,a);e=g(e,!0);m?m.firePointEvent(\"remove\",null,k):k()},remove:function(b,e,d,f){function l(){h.destroy(f);h.remove=null;c.isDirtyLegend=c.isDirtyBox=!0;c.linkSeries();g(b,!0)&&c.redraw(e)}var h=this,c=h.chart;!1!==d?D(h,\"remove\",null,l):l()},\nupdate:function(b,e){b=d.cleanRecursively(b,this.userOptions);D(this,\"update\",{options:b});var f=this,l=f.chart,h=f.userOptions,n=f.initialType||f.type,c=b.type||h.type||l.options.chart.type,a=!(this.hasDerivedData||b.dataGrouping||c&&c!==this.type||\"undefined\"!==typeof b.pointStart||b.pointInterval||b.pointIntervalUnit||b.keys),k=I[n].prototype,p,u=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"],v=[\"eventOptions\",\"navigatorSeries\",\"baseSeries\"],y=f.finishedAnimating&&{animation:!1},t=\n{};a&&(v.push(\"data\",\"isDirtyData\",\"points\",\"processedXData\",\"processedYData\",\"xIncrement\",\"_hasPointMarkers\",\"_hasPointLabels\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==b.visible&&v.push(\"area\",\"graph\"),f.parallelArrays.forEach(function(a){v.push(a+\"Data\")}),b.data&&(b.dataSorting&&C(f.options.dataSorting,b.dataSorting),this.setData(b.data,!1)));b=m(h,y,{index:\"undefined\"===typeof h.index?f.index:h.index,pointStart:g(h.pointStart,f.xData[0])},!a&&{data:f.options.data},b);a&&b.data&&(b.data=\nf.options.data);v=u.concat(v);v.forEach(function(a){v[a]=f[a];delete f[a]});f.remove(!1,null,!1,!0);for(p in k)f[p]=void 0;I[c||n]?C(f,I[c||n].prototype):H(17,!0,l,{missingModuleFor:c||n});v.forEach(function(a){f[a]=v[a]});f.init(l,b);if(a&&this.points){var w=f.options;!1===w.visible?(t.graphic=1,t.dataLabel=1):f._hasPointLabels||(c=w.marker,k=w.dataLabels,c&&(!1===c.enabled||\"symbol\"in c)&&(t.graphic=1),k&&!1===k.enabled&&(t.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),\nObject.keys(t).length&&a.destroyElements(t),!1===w.showInLegend&&a.legendItem&&l.legend.destroyItem(a))},this)}b.zIndex!==h.zIndex&&u.forEach(function(a){f[a]&&f[a].attr({zIndex:b.zIndex})});f.initialType=n;l.linkSeries();D(this,\"afterUpdate\");g(e,!0)&&l.redraw(a?void 0:!1)},setName:function(b){this.name=this.options.name=this.userOptions.name=b;this.chart.isDirtyLegend=!0}});C(p.prototype,{update:function(e,d){var f=this.chart,l=e&&e.events||{};e=m(this.userOptions,e);f.options[this.coll].indexOf&&\n(f.options[this.coll][f.options[this.coll].indexOf(this.userOptions)]=e);b(f.options[this.coll].events,function(b,e){\"undefined\"===typeof l[e]&&(l[e]=void 0)});this.destroy(!0);this.init(f,C(e,{events:l}));f.isDirtyBox=!0;g(d,!0)&&f.redraw()},remove:function(b){for(var e=this.chart,d=this.coll,f=this.series,l=f.length;l--;)f[l]&&f[l].remove(!1);F(e.axes,this);F(e[d],this);w(e.options[d])?e.options[d].splice(this.options.index,1):delete e.options[d];e[d].forEach(function(b,c){b.options.index=b.userOptions.index=\nc});this.destroy();e.isDirtyBox=!0;g(b,!0)&&e.redraw()},setTitle:function(b,e){this.update({title:b},e)},setCategories:function(b,e){this.update({categories:b},e)}})});Q(A,\"parts/AreaSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=f.parse,K=q.objectEach,J=q.pick;f=q.seriesType;var L=d.Series;f(\"area\",\"line\",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(d){var f=[],q=[],x=this.xAxis,D=this.yAxis,\nw=D.stacking.stacks[this.stackKey],n={},t=this.index,A=D.series,m=A.length,b=J(D.options.reversedStacks,!0)?1:-1,g;d=d||this.points;if(this.options.stacking){for(g=0;g<d.length;g++)d[g].leftNull=d[g].rightNull=void 0,n[d[g].x]=d[g];K(w,function(b,e){null!==b.total&&q.push(e)});q.sort(function(b,e){return b-e});var v=A.map(function(b){return b.visible});q.forEach(function(d,e){var h=0,l,I;if(n[d]&&!n[d].isNull)f.push(n[d]),[-1,1].forEach(function(f){var h=1===f?\"rightNull\":\"leftNull\",p=0,u=w[q[e+f]];\nif(u)for(g=t;0<=g&&g<m;)l=u.points[g],l||(g===t?n[d][h]=!0:v[g]&&(I=w[d].points[g])&&(p-=I[1]-I[0])),g+=b;n[d][1===f?\"rightCliff\":\"leftCliff\"]=p});else{for(g=t;0<=g&&g<m;){if(l=w[d].points[g]){h=l[1];break}g+=b}h=D.translate(h,0,1,0,1);f.push({isNull:!0,plotX:x.translate(d,0,0,0,1),x:d,plotY:h,yBottom:h})}})}return f},getGraphPath:function(d){var f=L.prototype.getGraphPath,q=this.options,x=q.stacking,D=this.yAxis,w,n=[],t=[],A=this.index,m=D.stacking.stacks[this.stackKey],b=q.threshold,g=Math.round(D.getThreshold(q.threshold));\nq=J(q.connectNulls,\"percent\"===x);var v=function(f,h,p){var l=d[f];f=x&&m[l.x].points[A];var u=l[p+\"Null\"]||0;p=l[p+\"Cliff\"]||0;l=!0;if(p||u){var v=(u?f[0]:f[1])+p;var w=f[0]+p;l=!!u}else!x&&d[h]&&d[h].isNull&&(v=w=b);\"undefined\"!==typeof v&&(t.push({plotX:e,plotY:null===v?g:D.getThreshold(v),isNull:l,isCliff:!0}),n.push({plotX:e,plotY:null===w?g:D.getThreshold(w),doCurve:!1}))};d=d||this.points;x&&(d=this.getStackPoints(d));for(w=0;w<d.length;w++){x||(d[w].leftCliff=d[w].rightCliff=d[w].leftNull=\nd[w].rightNull=void 0);var h=d[w].isNull;var e=J(d[w].rectPlotX,d[w].plotX);var p=J(d[w].yBottom,g);if(!h||q)q||v(w,w-1,\"left\"),h&&!x&&q||(t.push(d[w]),n.push({x:w,plotX:e,plotY:p})),q||v(w,w+1,\"right\")}w=f.call(this,t,!0,!0);n.reversed=!0;h=f.call(this,n,!0,!0);(p=h[0])&&\"M\"===p[0]&&(h[0]=[\"L\",p[1],p[2]]);h=w.concat(h);f=f.call(this,t,!1,q);h.xMap=w.xMap;this.areaPath=h;return f},drawGraph:function(){this.areaPath=[];L.prototype.drawGraph.apply(this);var d=this,f=this.areaPath,q=this.options,C=[[\"area\",\n\"highcharts-area\",this.color,q.fillColor]];this.zones.forEach(function(f,w){C.push([\"zone-area-\"+w,\"highcharts-area highcharts-zone-area-\"+w+\" \"+f.className,f.color||d.color,f.fillColor||q.fillColor])});C.forEach(function(x){var w=x[0],n=d[w],t=n?\"animate\":\"attr\",C={};n?(n.endX=d.preventGraphAnimation?null:f.xMap,n.animate({d:f})):(C.zIndex=0,n=d[w]=d.chart.renderer.path(f).addClass(x[1]).add(d.group),n.isArea=!0);d.chart.styledMode||(C.fill=J(x[3],E(x[2]).setOpacity(J(q.fillOpacity,.75)).get()));\nn[t](C);n.startX=f.xMap;n.shiftUnit=q.step?2:1})},drawLegendSymbol:A.drawRectangle});\"\"});Q(A,\"parts/SplineSeries.js\",[A[\"parts/Utilities.js\"]],function(d){var f=d.pick;d=d.seriesType;d(\"spline\",\"line\",{},{getPointSpline:function(d,q,A){var E=q.plotX||0,J=q.plotY||0,L=d[A-1];A=d[A+1];if(L&&!L.isNull&&!1!==L.doCurve&&!q.isCliff&&A&&!A.isNull&&!1!==A.doCurve&&!q.isCliff){d=L.plotY||0;var x=A.plotX||0;A=A.plotY||0;var F=0;var H=(1.5*E+(L.plotX||0))/2.5;var C=(1.5*J+d)/2.5;x=(1.5*E+x)/2.5;var D=(1.5*\nJ+A)/2.5;x!==H&&(F=(D-C)*(x-E)/(x-H)+J-D);C+=F;D+=F;C>d&&C>J?(C=Math.max(d,J),D=2*J-C):C<d&&C<J&&(C=Math.min(d,J),D=2*J-C);D>A&&D>J?(D=Math.max(A,J),C=2*J-D):D<A&&D<J&&(D=Math.min(A,J),C=2*J-D);q.rightContX=x;q.rightContY=D}q=[\"C\",f(L.rightContX,L.plotX,0),f(L.rightContY,L.plotY,0),f(H,E,0),f(C,J,0),E,J];L.rightContX=L.rightContY=void 0;return q}});\"\"});Q(A,\"parts/AreaSplineSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(d,f,A){A=A.seriesType;var q=\nd.seriesTypes.area.prototype;A(\"areaspline\",\"spline\",d.defaultPlotOptions.area,{getStackPoints:q.getStackPoints,getGraphPath:q.getGraphPath,drawGraph:q.drawGraph,drawLegendSymbol:f.drawRectangle});\"\"});Q(A,\"parts/ColumnSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){\"\";var E=f.parse,K=q.animObject,J=q.clamp,L=q.defined,x=q.extend,F=q.isNumber,H=q.merge,C=q.pick;f=q.seriesType;var D=d.Series;f(\"column\",\"line\",{borderRadius:0,\ngroupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:\"#cccccc\",borderColor:\"#000000\"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"#ffffff\"},{cropShoulder:0,directTouch:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],negStacks:!0,init:function(){D.prototype.init.apply(this,arguments);var d=this,f=d.chart;\nf.hasRendered&&f.series.forEach(function(f){f.type===d.type&&(f.isDirty=!0)})},getColumnMetrics:function(){var d=this,f=d.options,t=d.xAxis,q=d.yAxis,m=t.options.reversedStacks;m=t.reversed&&!m||!t.reversed&&m;var b,g={},v=0;!1===f.grouping?v=1:d.chart.series.forEach(function(e){var f=e.yAxis,l=e.options;if(e.type===d.type&&(e.visible||!d.chart.options.chart.ignoreHiddenSeries)&&q.len===f.len&&q.pos===f.pos){if(l.stacking){b=e.stackKey;\"undefined\"===typeof g[b]&&(g[b]=v++);var h=g[b]}else!1!==l.grouping&&\n(h=v++);e.columnIndex=h}});var h=Math.min(Math.abs(t.transA)*(t.ordinal&&t.ordinal.slope||f.pointRange||t.closestPointRange||t.tickInterval||1),t.len),e=h*f.groupPadding,p=(h-2*e)/(v||1);f=Math.min(f.maxPointWidth||t.len,C(f.pointWidth,p*(1-2*f.pointPadding)));d.columnMetrics={width:f,offset:(p-f)/2+(e+((d.columnIndex||0)+(m?1:0))*p-h/2)*(m?-1:1)};return d.columnMetrics},crispCol:function(d,f,t,q){var m=this.chart,b=this.borderWidth,g=-(b%2?.5:0);b=b%2?.5:1;m.inverted&&m.renderer.isVML&&(b+=1);this.options.crisp&&\n(t=Math.round(d+t)+g,d=Math.round(d)+g,t-=d);q=Math.round(f+q)+b;g=.5>=Math.abs(f)&&.5<q;f=Math.round(f)+b;q-=f;g&&q&&(--f,q+=1);return{x:d,y:f,width:t,height:q}},translate:function(){var d=this,f=d.chart,t=d.options,q=d.dense=2>d.closestPointRange*d.xAxis.transA;q=d.borderWidth=C(t.borderWidth,q?0:1);var m=d.xAxis,b=d.yAxis,g=t.threshold,v=d.translatedThreshold=b.getThreshold(g),h=C(t.minPointLength,5),e=d.getColumnMetrics(),p=e.width,l=d.barW=Math.max(p,1+2*q),I=d.pointXOffset=e.offset,u=d.dataMin,\ny=d.dataMax;f.inverted&&(v-=.5);t.pointPadding&&(l=Math.ceil(l));D.prototype.translate.apply(d);d.points.forEach(function(e){var n=C(e.yBottom,v),t=999+Math.abs(n),q=p,c=e.plotX;t=J(e.plotY,-t,b.len+t);var a=e.plotX+I,k=l,r=Math.min(t,n),w=Math.max(t,n)-r;if(h&&Math.abs(w)<h){w=h;var x=!b.reversed&&!e.negative||b.reversed&&e.negative;F(g)&&F(y)&&e.y===g&&y<=g&&(b.min||0)<g&&u!==y&&(x=!x);r=Math.abs(r-v)>h?n-h:v-(x?h:0)}L(e.options.pointWidth)&&(q=k=Math.ceil(e.options.pointWidth),a-=Math.round((q-\np)/2));e.barX=a;e.pointWidth=q;e.tooltipPos=f.inverted?[b.len+b.pos-f.plotLeft-t,m.len+m.pos-f.plotTop-(c||0)-I-k/2,w]:[a+k/2,t+b.pos-f.plotTop,w];e.shapeType=d.pointClass.prototype.shapeType||\"rect\";e.shapeArgs=d.crispCol.apply(d,e.isNull?[a,v,k,0]:[a,r,k,w])})},getSymbol:d.noop,drawLegendSymbol:A.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(d,f){var n=this.options,q=this.pointAttrToOptions||{};var m=q.stroke||\n\"borderColor\";var b=q[\"stroke-width\"]||\"borderWidth\",g=d&&d.color||this.color,v=d&&d[m]||n[m]||this.color||g,h=d&&d[b]||n[b]||this[b]||0;q=d&&d.options.dashStyle||n.dashStyle;var e=C(d&&d.opacity,n.opacity,1);if(d&&this.zones.length){var p=d.getZone();g=d.options.color||p&&(p.color||d.nonZonedColor)||this.color;p&&(v=p.borderColor||v,q=p.dashStyle||q,h=p.borderWidth||h)}f&&d&&(d=H(n.states[f],d.options.states&&d.options.states[f]||{}),f=d.brightness,g=d.color||\"undefined\"!==typeof f&&E(g).brighten(d.brightness).get()||\ng,v=d[m]||v,h=d[b]||h,q=d.dashStyle||q,e=C(d.opacity,e));m={fill:g,stroke:v,\"stroke-width\":h,opacity:e};q&&(m.dashstyle=q);return m},drawPoints:function(){var d=this,f=this.chart,q=d.options,x=f.renderer,m=q.animationLimit||250,b;d.points.forEach(function(g){var n=g.graphic,h=!!n,e=n&&f.pointCount<m?\"animate\":\"attr\";if(F(g.plotY)&&null!==g.y){b=g.shapeArgs;n&&g.hasNewShapeType()&&(n=n.destroy());d.enabledDataSorting&&(g.startXPos=d.xAxis.reversed?-(b?b.width:0):d.xAxis.width);n||(g.graphic=n=x[g.shapeType](b).add(g.group||\nd.group))&&d.enabledDataSorting&&f.hasRendered&&f.pointCount<m&&(n.attr({x:g.startXPos}),h=!0,e=\"animate\");if(n&&h)n[e](H(b));if(q.borderRadius)n[e]({r:q.borderRadius});f.styledMode||n[e](d.pointAttribs(g,g.selected&&\"select\")).shadow(!1!==g.allowShadow&&q.shadow,null,q.stacking&&!q.borderRadius);n.addClass(g.getClassName(),!0)}else n&&(g.graphic=n.destroy())})},animate:function(d){var f=this,q=this.yAxis,w=f.options,m=this.chart.inverted,b={},g=m?\"translateX\":\"translateY\";if(d)b.scaleY=.001,d=J(q.toPixels(w.threshold),\nq.pos,q.pos+q.len),m?b.translateX=d-q.len:b.translateY=d,f.clipBox&&f.setClip(),f.group.attr(b);else{var v=f.group.attr(g);f.group.animate({scaleY:1},x(K(f.options.animation),{step:function(d,e){f.group&&(b[g]=v+e.pos*(q.pos-v),f.group.attr(b))}}))}},remove:function(){var d=this,f=d.chart;f.hasRendered&&f.series.forEach(function(f){f.type===d.type&&(f.isDirty=!0)});D.prototype.remove.apply(d,arguments)}});\"\"});Q(A,\"parts/BarSeries.js\",[A[\"parts/Utilities.js\"]],function(d){d=d.seriesType;d(\"bar\",\"column\",\nnull,{inverted:!0});\"\"});Q(A,\"parts/ScatterSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.addEvent;f=f.seriesType;var q=d.Series;f(\"scatter\",\"line\",{lineWidth:0,findNearestPointBy:\"xy\",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <span style=\"font-size: 10px\"> {series.name}</span><br/>',pointFormat:\"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>\"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\n\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&q.prototype.drawGraph.call(this)},applyJitter:function(){var d=this,f=this.options.jitter,q=this.points.length;f&&this.points.forEach(function(A,x){[\"x\",\"y\"].forEach(function(E,H){var C=\"plot\"+E.toUpperCase();if(f[E]&&!A.isNull){var D=d[E+\"Axis\"];var w=f[E]*D.transA;if(D&&!D.isLog){var n=Math.max(0,A[C]-w);D=Math.min(D.len,A[C]+w);H=1E4*Math.sin(x+H*q);A[C]=n+(D-n)*(H-Math.floor(H));\"x\"===E&&(A.clientX=\nA.plotX)}}})})}});A(q,\"afterTranslate\",function(){this.applyJitter&&this.applyJitter()});\"\"});Q(A,\"mixins/centered-series.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.isNumber,q=f.pick,M=f.relativeLength,K=d.deg2rad;d.CenteredSeriesMixin={getCenter:function(){var d=this.options,f=this.chart,x=2*(d.slicedOffset||0),A=f.plotWidth-2*x,E=f.plotHeight-2*x,C=d.center,D=Math.min(A,E),w=d.size,n=d.innerSize||0;\"string\"===typeof w&&(w=parseFloat(w));\"string\"===typeof n&&(n=parseFloat(n));\nd=[q(C[0],\"50%\"),q(C[1],\"50%\"),q(w&&0>w?void 0:d.size,\"100%\"),q(n&&0>n?void 0:d.innerSize||0,\"0%\")];f.angular&&(d[3]=0);for(C=0;4>C;++C)w=d[C],f=2>C||2===C&&/%$/.test(w),d[C]=M(w,[A,E,D,d[2]][C])+(f?x:0);d[3]>d[2]&&(d[3]=d[2]);return d},getStartAndEndRadians:function(d,f){d=A(d)?d:0;f=A(f)&&f>d&&360>f-d?f:d+360;return{start:K*(d+-90),end:K*(f+-90)}}}});Q(A,\"parts/PieSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=\nq.addEvent,K=q.clamp,J=q.defined,L=q.fireEvent,x=q.isNumber,F=q.merge,H=q.pick,C=q.relativeLength,D=q.seriesType,w=q.setAnimation;q=d.CenteredSeriesMixin;var n=q.getStartAndEndRadians,t=d.noop,N=d.Series;D(\"pie\",\"line\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:\"fixedOffset\",crookDistance:\"70%\",distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,\ninactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],axisTypes:[],pointAttribs:d.seriesTypes.column.prototype.pointAttribs,animate:function(d){var b=this,f=b.points,m=b.startAngleRad;d||f.forEach(function(d){var e=d.graphic,\nf=d.shapeArgs;e&&f&&(e.attr({r:H(d.startR,b.center&&b.center[3]/2),start:m,end:m}),e.animate({r:f.r,start:f.start,end:f.end},b.options.animation))})},hasData:function(){return!!this.processedXData.length},updateTotals:function(){var d,b=0,f=this.points,n=f.length,h=this.options.ignoreHiddenPoint;for(d=0;d<n;d++){var e=f[d];b+=h&&!e.visible?0:e.isNull?0:e.y}this.total=b;for(d=0;d<n;d++)e=f[d],e.percentage=0<b&&(e.visible||!h)?e.y/b*100:0,e.total=b},generatePoints:function(){N.prototype.generatePoints.call(this);\nthis.updateTotals()},getX:function(d,b,f){var g=this.center,h=this.radii?this.radii[f.index]:g[2]/2;d=Math.asin(K((d-g[1])/(h+f.labelDistance),-1,1));return g[0]+(b?-1:1)*Math.cos(d)*(h+f.labelDistance)+(0<f.labelDistance?(b?-1:1)*this.options.dataLabels.padding:0)},translate:function(d){this.generatePoints();var b=0,f=this.options,m=f.slicedOffset,h=m+(f.borderWidth||0),e=n(f.startAngle,f.endAngle),p=this.startAngleRad=e.start;e=(this.endAngleRad=e.end)-p;var l=this.points,q=f.dataLabels.distance;\nf=f.ignoreHiddenPoint;var u,y=l.length;d||(this.center=d=this.getCenter());for(u=0;u<y;u++){var t=l[u];var w=p+b*e;if(!f||t.visible)b+=t.percentage/100;var x=p+b*e;t.shapeType=\"arc\";t.shapeArgs={x:d[0],y:d[1],r:d[2]/2,innerR:d[3]/2,start:Math.round(1E3*w)/1E3,end:Math.round(1E3*x)/1E3};t.labelDistance=H(t.options.dataLabels&&t.options.dataLabels.distance,q);t.labelDistance=C(t.labelDistance,t.shapeArgs.r);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,t.labelDistance);x=(x+w)/2;x>1.5*Math.PI?\nx-=2*Math.PI:x<-Math.PI/2&&(x+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(x)*m),translateY:Math.round(Math.sin(x)*m)};var B=Math.cos(x)*d[2]/2;var c=Math.sin(x)*d[2]/2;t.tooltipPos=[d[0]+.7*B,d[1]+.7*c];t.half=x<-Math.PI/2||x>Math.PI/2?1:0;t.angle=x;w=Math.min(h,t.labelDistance/5);t.labelPosition={natural:{x:d[0]+B+Math.cos(x)*t.labelDistance,y:d[1]+c+Math.sin(x)*t.labelDistance},\"final\":{},alignment:0>t.labelDistance?\"center\":t.half?\"right\":\"left\",connectorPosition:{breakAt:{x:d[0]+\nB+Math.cos(x)*w,y:d[1]+c+Math.sin(x)*w},touchingSliceAt:{x:d[0]+B,y:d[1]+c}}}}L(this,\"afterTranslate\")},drawEmpty:function(){var d=this.options;if(0===this.total){var b=this.center[0];var f=this.center[1];this.graph||(this.graph=this.chart.renderer.circle(b,f,0).addClass(\"highcharts-graph\").add(this.group));this.graph.animate({\"stroke-width\":d.borderWidth,cx:b,cy:f,r:this.center[2]/2,fill:d.fillColor||\"none\",stroke:d.color||\"#cccccc\"},this.options.animation)}else this.graph&&(this.graph=this.graph.destroy())},\nredrawPoints:function(){var d=this,b=d.chart,f=b.renderer,n,h,e,p,l=d.options.shadow;this.drawEmpty();!l||d.shadowGroup||b.styledMode||(d.shadowGroup=f.g(\"shadow\").attr({zIndex:-1}).add(d.group));d.points.forEach(function(g){var m={};h=g.graphic;if(!g.isNull&&h){p=g.shapeArgs;n=g.getTranslate();if(!b.styledMode){var v=g.shadowGroup;l&&!v&&(v=g.shadowGroup=f.g(\"shadow\").add(d.shadowGroup));v&&v.attr(n);e=d.pointAttribs(g,g.selected&&\"select\")}g.delayedRendering?(h.setRadialReference(d.center).attr(p).attr(n),\nb.styledMode||h.attr(e).attr({\"stroke-linejoin\":\"round\"}).shadow(l,v),g.delayedRendering=!1):(h.setRadialReference(d.center),b.styledMode||F(!0,m,e),F(!0,m,p,n),h.animate(m));h.attr({visibility:g.visible?\"inherit\":\"hidden\"});h.addClass(g.getClassName())}else h&&(g.graphic=h.destroy())})},drawPoints:function(){var d=this.chart.renderer;this.points.forEach(function(b){b.graphic&&b.hasNewShapeType()&&(b.graphic=b.graphic.destroy());b.graphic||(b.graphic=d[b.shapeType](b.shapeArgs).add(b.series.group),\nb.delayedRendering=!0)})},searchPoint:t,sortByAngle:function(d,b){d.sort(function(d,f){return\"undefined\"!==typeof d.angle&&(f.angle-d.angle)*b})},drawLegendSymbol:f.drawRectangle,getCenter:q.getCenter,getSymbol:t,drawGraph:null},{init:function(){A.prototype.init.apply(this,arguments);var d=this;d.name=H(d.name,\"Slice\");var b=function(b){d.slice(\"select\"===b.type)};E(d,\"select\",b);E(d,\"unselect\",b);return d},isValid:function(){return x(this.y)&&0<=this.y},setVisible:function(d,b){var f=this,m=f.series,\nh=m.chart,e=m.options.ignoreHiddenPoint;b=H(b,e);d!==f.visible&&(f.visible=f.options.visible=d=\"undefined\"===typeof d?!f.visible:d,m.options.data[m.data.indexOf(f)]=f.options,[\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"].forEach(function(b){if(f[b])f[b][d?\"show\":\"hide\"](!0)}),f.legendItem&&h.legend.colorizeItem(f,d),d||\"hover\"!==f.state||f.setState(\"\"),e&&(m.isDirty=!0),b&&h.redraw())},slice:function(d,b,f){var g=this.series;w(f,g.chart);H(b,!0);this.sliced=this.options.sliced=J(d)?d:!this.sliced;\ng.options.data[g.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(d){var b=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(b.x,b.y,b.r+d,b.r+d,{innerR:b.r-1,start:b.start,end:b.end})},connectorShapes:{fixedOffset:function(d,b,f){var g=b.breakAt;\nb=b.touchingSliceAt;return[[\"M\",d.x,d.y],f.softConnector?[\"C\",d.x+(\"left\"===d.alignment?-5:5),d.y,2*g.x-b.x,2*g.y-b.y,g.x,g.y]:[\"L\",g.x,g.y],[\"L\",b.x,b.y]]},straight:function(d,b){b=b.touchingSliceAt;return[[\"M\",d.x,d.y],[\"L\",b.x,b.y]]},crookedLine:function(d,b,f){b=b.touchingSliceAt;var g=this.series,h=g.center[0],e=g.chart.plotWidth,m=g.chart.plotLeft;g=d.alignment;var l=this.shapeArgs.r;f=C(f.crookDistance,1);e=\"left\"===g?h+l+(e+m-h-l)*(1-f):m+(h-l)*f;f=[\"L\",e,d.y];h=!0;if(\"left\"===g?e>d.x||e<\nb.x:e<d.x||e>b.x)h=!1;d=[[\"M\",d.x,d.y]];h&&d.push(f);d.push([\"L\",b.x,b.y]);return d}},getConnectorPath:function(){var d=this.labelPosition,b=this.series.options.dataLabels,f=b.connectorShape,n=this.connectorShapes;n[f]&&(f=n[f]);return f.call(this,{x:d.final.x,y:d.final.y,alignment:d.alignment},d.connectorPosition,b)}});\"\"});Q(A,\"parts/DataLabels.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.animObject,q=f.arrayMax,M=f.clamp,K=f.defined,J=f.extend,L=f.fireEvent,x=f.format,\nF=f.isArray,H=f.merge,C=f.objectEach,D=f.pick,w=f.relativeLength,n=f.splat,t=f.stableSort;f=d.noop;var N=d.Series,m=d.seriesTypes;d.distribute=function(b,f,m){function g(b,e){return b.target-e.target}var e,n=!0,l=b,v=[];var u=0;var q=l.reducedLen||f;for(e=b.length;e--;)u+=b[e].size;if(u>q){t(b,function(b,e){return(e.rank||0)-(b.rank||0)});for(u=e=0;u<=q;)u+=b[e].size,e++;v=b.splice(e-1,b.length)}t(b,g);for(b=b.map(function(b){return{size:b.size,targets:[b.target],align:D(b.align,.5)}});n;){for(e=\nb.length;e--;)n=b[e],u=(Math.min.apply(0,n.targets)+Math.max.apply(0,n.targets))/2,n.pos=M(u-n.size*n.align,0,f-n.size);e=b.length;for(n=!1;e--;)0<e&&b[e-1].pos+b[e-1].size>b[e].pos&&(b[e-1].size+=b[e].size,b[e-1].targets=b[e-1].targets.concat(b[e].targets),b[e-1].align=.5,b[e-1].pos+b[e-1].size>f&&(b[e-1].pos=f-b[e-1].size),b.splice(e,1),n=!0)}l.push.apply(l,v);e=0;b.some(function(b){var g=0;if(b.targets.some(function(){l[e].pos=b.pos+g;if(\"undefined\"!==typeof m&&Math.abs(l[e].pos-l[e].target)>m)return l.slice(0,\ne+1).forEach(function(b){delete b.pos}),l.reducedLen=(l.reducedLen||f)-.1*f,l.reducedLen>.1*f&&d.distribute(l,f,m),!0;g+=l[e].size;e++}))return!0});t(l,g)};N.prototype.drawDataLabels=function(){function b(c,a){var b=a.filter;return b?(a=b.operator,c=c[b.property],b=b.value,\">\"===a&&c>b||\"<\"===a&&c<b||\">=\"===a&&c>=b||\"<=\"===a&&c<=b||\"==\"===a&&c==b||\"===\"===a&&c===b?!0:!1):!0}function d(c,a){var b=[],e;if(F(c)&&!F(a))b=c.map(function(c){return H(c,a)});else if(F(a)&&!F(c))b=a.map(function(a){return H(c,\na)});else if(F(c)||F(a))for(e=Math.max(c.length,a.length);e--;)b[e]=H(c[e],a[e]);else b=H(c,a);return b}var f=this,h=f.chart,e=f.options,m=e.dataLabels,l=f.points,q,u=f.hasRendered||0,t=A(e.animation).duration,w=Math.min(t,200),E=!h.renderer.forExport&&D(m.defer,0<w),J=h.renderer;m=d(d(h.options.plotOptions&&h.options.plotOptions.series&&h.options.plotOptions.series.dataLabels,h.options.plotOptions&&h.options.plotOptions[f.type]&&h.options.plotOptions[f.type].dataLabels),m);L(this,\"drawDataLabels\");\nif(F(m)||m.enabled||f._hasPointLabels){var B=f.plotGroup(\"dataLabelsGroup\",\"data-labels\",E&&!u?\"hidden\":\"inherit\",m.zIndex||6);E&&(B.attr({opacity:+u}),u||setTimeout(function(){var c=f.dataLabelsGroup;c&&(f.visible&&B.show(!0),c[e.animation?\"animate\":\"attr\"]({opacity:1},{duration:w}))},t-w));l.forEach(function(c){q=n(d(m,c.dlOptions||c.options&&c.options.dataLabels));q.forEach(function(a,d){var g=a.enabled&&(!c.isNull||c.dataLabelOnNull)&&b(c,a),l=c.dataLabels?c.dataLabels[d]:c.dataLabel,k=c.connectors?\nc.connectors[d]:c.connector,m=D(a.distance,c.labelDistance),n=!l;if(g){var p=c.getLabelConfig();var u=D(a[c.formatPrefix+\"Format\"],a.format);p=K(u)?x(u,p,h):(a[c.formatPrefix+\"Formatter\"]||a.formatter).call(p,a);u=a.style;var v=a.rotation;h.styledMode||(u.color=D(a.color,u.color,f.color,\"#000000\"),\"contrast\"===u.color?(c.contrastColor=J.getContrast(c.color||f.color),u.color=!K(m)&&a.inside||0>m||e.stacking?c.contrastColor:\"#000000\"):delete c.contrastColor,e.cursor&&(u.cursor=e.cursor));var q={r:a.borderRadius||\n0,rotation:v,padding:a.padding,zIndex:1};h.styledMode||(q.fill=a.backgroundColor,q.stroke=a.borderColor,q[\"stroke-width\"]=a.borderWidth);C(q,function(a,c){\"undefined\"===typeof a&&delete q[c]})}!l||g&&K(p)?g&&K(p)&&(l?q.text=p:(c.dataLabels=c.dataLabels||[],l=c.dataLabels[d]=v?J.text(p,0,-9999,a.useHTML).addClass(\"highcharts-data-label\"):J.label(p,0,-9999,a.shape,null,null,a.useHTML,null,\"data-label\"),d||(c.dataLabel=l),l.addClass(\" highcharts-data-label-color-\"+c.colorIndex+\" \"+(a.className||\"\")+\n(a.useHTML?\" highcharts-tracker\":\"\"))),l.options=a,l.attr(q),h.styledMode||l.css(u).shadow(a.shadow),l.added||l.add(B),a.textPath&&!a.useHTML&&(l.setTextPath(c.getDataLabelPath&&c.getDataLabelPath(l)||c.graphic,a.textPath),c.dataLabelPath&&!a.textPath.enabled&&(c.dataLabelPath=c.dataLabelPath.destroy())),f.alignDataLabel(c,l,a,null,n)):(c.dataLabel=c.dataLabel&&c.dataLabel.destroy(),c.dataLabels&&(1===c.dataLabels.length?delete c.dataLabels:delete c.dataLabels[d]),d||delete c.dataLabel,k&&(c.connector=\nc.connector.destroy(),c.connectors&&(1===c.connectors.length?delete c.connectors:delete c.connectors[d])))})})}L(this,\"afterDrawDataLabels\")};N.prototype.alignDataLabel=function(b,d,f,h,e){var g=this,l=this.chart,m=this.isCartesian&&l.inverted,n=this.enabledDataSorting,q=D(b.dlBox&&b.dlBox.centerX,b.plotX,-9999),v=D(b.plotY,-9999),t=d.getBBox(),w=f.rotation,x=f.align,c=l.isInsidePlot(q,Math.round(v),m),a=\"justify\"===D(f.overflow,n?\"none\":\"justify\"),k=this.visible&&!1!==b.visible&&(b.series.forceDL||\nn&&!a||c||f.inside&&h&&l.isInsidePlot(q,m?h.x+1:h.y+h.height-1,m));var r=function(f){n&&g.xAxis&&!a&&g.setDataLabelStartPos(b,d,e,c,f)};if(k){var z=l.renderer.fontMetrics(l.styledMode?void 0:f.style.fontSize,d).b;h=J({x:m?this.yAxis.len-v:q,y:Math.round(m?this.xAxis.len-q:v),width:0,height:0},h);J(f,{width:t.width,height:t.height});w?(a=!1,q=l.renderer.rotCorr(z,w),q={x:h.x+f.x+h.width/2+q.x,y:h.y+f.y+{top:0,middle:.5,bottom:1}[f.verticalAlign]*h.height},r(q),d[e?\"attr\":\"animate\"](q).attr({align:x}),\nr=(w+720)%360,r=180<r&&360>r,\"left\"===x?q.y-=r?t.height:0:\"center\"===x?(q.x-=t.width/2,q.y-=t.height/2):\"right\"===x&&(q.x-=t.width,q.y-=r?0:t.height),d.placed=!0,d.alignAttr=q):(r(h),d.align(f,null,h),q=d.alignAttr);a&&0<=h.height?this.justifyDataLabel(d,f,q,t,h,e):D(f.crop,!0)&&(k=l.isInsidePlot(q.x,q.y)&&l.isInsidePlot(q.x+t.width,q.y+t.height));if(f.shape&&!w)d[e?\"attr\":\"animate\"]({anchorX:m?l.plotWidth-b.plotY:b.plotX,anchorY:m?l.plotHeight-b.plotX:b.plotY})}e&&n&&(d.placed=!1);k||n&&!a||(d.hide(!0),\nd.placed=!1)};N.prototype.setDataLabelStartPos=function(b,d,f,h,e){var g=this.chart,l=g.inverted,m=this.xAxis,n=m.reversed,q=l?d.height/2:d.width/2;b=(b=b.pointWidth)?b/2:0;m=l?e.x:n?-q-b:m.width-q+b;e=l?n?this.yAxis.height-q+b:-q-b:e.y;d.startXPos=m;d.startYPos=e;h?\"hidden\"===d.visibility&&(d.show(),d.attr({opacity:0}).animate({opacity:1})):d.attr({opacity:1}).animate({opacity:0},void 0,d.hide);g.hasRendered&&(f&&d.attr({x:d.startXPos,y:d.startYPos}),d.placed=!0)};N.prototype.justifyDataLabel=function(b,\nd,f,h,e,m){var g=this.chart,n=d.align,p=d.verticalAlign,q=b.box?0:b.padding||0;var v=f.x+q;if(0>v){\"right\"===n?(d.align=\"left\",d.inside=!0):d.x=-v;var t=!0}v=f.x+h.width-q;v>g.plotWidth&&(\"left\"===n?(d.align=\"right\",d.inside=!0):d.x=g.plotWidth-v,t=!0);v=f.y+q;0>v&&(\"bottom\"===p?(d.verticalAlign=\"top\",d.inside=!0):d.y=-v,t=!0);v=f.y+h.height-q;v>g.plotHeight&&(\"top\"===p?(d.verticalAlign=\"bottom\",d.inside=!0):d.y=g.plotHeight-v,t=!0);t&&(b.placed=!m,b.align(d,null,e));return t};m.pie&&(m.pie.prototype.dataLabelPositioners=\n{radialDistributionY:function(b){return b.top+b.distributeBox.pos},radialDistributionX:function(b,d,f,h){return b.getX(f<d.top+2||f>d.bottom-2?h:f,d.half,d)},justify:function(b,d,f){return f[0]+(b.half?-1:1)*(d+b.labelDistance)},alignToPlotEdges:function(b,d,f,h){b=b.getBBox().width;return d?b+h:f-b-h},alignToConnectors:function(b,d,f,h){var e=0,g;b.forEach(function(b){g=b.dataLabel.getBBox().width;g>e&&(e=g)});return d?e+h:f-e-h}},m.pie.prototype.drawDataLabels=function(){var b=this,f=b.data,m,h=\nb.chart,e=b.options.dataLabels||{},n=e.connectorPadding,l,t=h.plotWidth,u=h.plotHeight,y=h.plotLeft,w=Math.round(h.chartWidth/3),x,C=b.center,B=C[2]/2,c=C[1],a,k,r,z,A=[[],[]],E,F,L,J,M=[0,0,0,0],Q=b.dataLabelPositioners,O;b.visible&&(e.enabled||b._hasPointLabels)&&(f.forEach(function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),a.dataLabel.shortened=!1)}),N.prototype.drawDataLabels.apply(b),f.forEach(function(a){a.dataLabel&&\n(a.visible?(A[a.half].push(a),a.dataLabel._pos=null,!K(e.style.width)&&!K(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>w&&(a.dataLabel.css({width:Math.round(.7*w)+\"px\"}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),A.forEach(function(f,g){var l=f.length,p=[],q;if(l){b.sortByAngle(f,g-.5);if(0<b.maxLabelDistance){var v=Math.max(0,c-B-b.maxLabelDistance);\nvar w=Math.min(c+B+b.maxLabelDistance,h.plotHeight);f.forEach(function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,c-B-a.labelDistance),a.bottom=Math.min(c+B+a.labelDistance,h.plotHeight),q=a.dataLabel.getBBox().height||21,a.distributeBox={target:a.labelPosition.natural.y-a.top+q/2,size:q,rank:a.y},p.push(a.distributeBox))});v=w+q-v;d.distribute(p,v,v/5)}for(J=0;J<l;J++){m=f[J];r=m.labelPosition;a=m.dataLabel;L=!1===m.visible?\"hidden\":\"inherit\";F=v=r.natural.y;p&&K(m.distributeBox)&&(\"undefined\"===\ntypeof m.distributeBox.pos?L=\"hidden\":(z=m.distributeBox.size,F=Q.radialDistributionY(m)));delete m.positionIndex;if(e.justify)E=Q.justify(m,B,C);else switch(e.alignTo){case \"connectors\":E=Q.alignToConnectors(f,g,t,y);break;case \"plotEdges\":E=Q.alignToPlotEdges(a,g,t,y);break;default:E=Q.radialDistributionX(b,m,F,v)}a._attr={visibility:L,align:r.alignment};O=m.options.dataLabels||{};a._pos={x:E+D(O.x,e.x)+({left:n,right:-n}[r.alignment]||0),y:F+D(O.y,e.y)-10};r.final.x=E;r.final.y=F;D(e.crop,!0)&&\n(k=a.getBBox().width,v=null,E-k<n&&1===g?(v=Math.round(k-E+n),M[3]=Math.max(v,M[3])):E+k>t-n&&0===g&&(v=Math.round(E+k-t+n),M[1]=Math.max(v,M[1])),0>F-z/2?M[0]=Math.max(Math.round(-F+z/2),M[0]):F+z/2>u&&(M[2]=Math.max(Math.round(F+z/2-u),M[2])),a.sideOverflow=v)}}}),0===q(M)||this.verifyDataLabelOverflow(M))&&(this.placeDataLabels(),this.points.forEach(function(c){O=H(e,c.options.dataLabels);if(l=D(O.connectorWidth,1)){var d;x=c.connector;if((a=c.dataLabel)&&a._pos&&c.visible&&0<c.labelDistance){L=\na._attr.visibility;if(d=!x)c.connector=x=h.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\"+c.colorIndex+(c.className?\" \"+c.className:\"\")).add(b.dataLabelsGroup),h.styledMode||x.attr({\"stroke-width\":l,stroke:O.connectorColor||c.color||\"#666666\"});x[d?\"attr\":\"animate\"]({d:c.getConnectorPath()});x.attr(\"visibility\",L)}else x&&(c.connector=x.destroy())}}))},m.pie.prototype.placeDataLabels=function(){this.points.forEach(function(b){var d=b.dataLabel,f;d&&b.visible&&((f=d._pos)?\n(d.sideOverflow&&(d._attr.width=Math.max(d.getBBox().width-d.sideOverflow,0),d.css({width:d._attr.width+\"px\",textOverflow:(this.options.dataLabels.style||{}).textOverflow||\"ellipsis\"}),d.shortened=!0),d.attr(d._attr),d[d.moved?\"animate\":\"attr\"](f),d.moved=!0):d&&d.attr({y:-9999}));delete b.distributeBox},this)},m.pie.prototype.alignDataLabel=f,m.pie.prototype.verifyDataLabelOverflow=function(b){var d=this.center,f=this.options,h=f.center,e=f.minSize||80,m=null!==f.size;if(!m){if(null!==h[0])var l=\nMath.max(d[2]-Math.max(b[1],b[3]),e);else l=Math.max(d[2]-b[1]-b[3],e),d[0]+=(b[3]-b[1])/2;null!==h[1]?l=M(l,e,d[2]-Math.max(b[0],b[2])):(l=M(l,e,d[2]-b[0]-b[2]),d[1]+=(b[0]-b[2])/2);l<d[2]?(d[2]=l,d[3]=Math.min(w(f.innerSize||0,l),l),this.translate(d),this.drawDataLabels&&this.drawDataLabels()):m=!0}return m});m.column&&(m.column.prototype.alignDataLabel=function(b,d,f,h,e){var g=this.chart.inverted,l=b.series,m=b.dlBox||b.shapeArgs,n=D(b.below,b.plotY>D(this.translatedThreshold,l.yAxis.len)),q=\nD(f.inside,!!this.options.stacking);m&&(h=H(m),0>h.y&&(h.height+=h.y,h.y=0),m=h.y+h.height-l.yAxis.len,0<m&&m<h.height&&(h.height-=m),g&&(h={x:l.yAxis.len-h.y-h.height,y:l.xAxis.len-h.x-h.width,width:h.height,height:h.width}),q||(g?(h.x+=n?0:h.width,h.width=0):(h.y+=n?h.height:0,h.height=0)));f.align=D(f.align,!g||q?\"center\":n?\"right\":\"left\");f.verticalAlign=D(f.verticalAlign,g||q?\"middle\":n?\"top\":\"bottom\");N.prototype.alignDataLabel.call(this,b,d,f,h,e);f.inside&&b.contrastColor&&d.css({color:b.contrastColor})})});\nQ(A,\"modules/overlapping-datalabels.src.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=f.addEvent,q=f.fireEvent,M=f.isArray,K=f.objectEach,J=f.pick;d=d.Chart;A(d,\"render\",function(){var d=[];(this.labelCollectors||[]).forEach(function(f){d=d.concat(f())});(this.yAxis||[]).forEach(function(f){f.stacking&&f.options.stackLabels&&!f.options.stackLabels.allowOverlap&&K(f.stacking.stacks,function(f){K(f,function(f){d.push(f.label)})})});(this.series||[]).forEach(function(f){var q=\nf.options.dataLabels;f.visible&&(!1!==q.enabled||f._hasPointLabels)&&(f.nodes||f.points).forEach(function(f){f.visible&&(M(f.dataLabels)?f.dataLabels:f.dataLabel?[f.dataLabel]:[]).forEach(function(q){var x=q.options;q.labelrank=J(x.labelrank,f.labelrank,f.shapeArgs&&f.shapeArgs.height);x.allowOverlap||d.push(q)})})});this.hideOverlappingLabels(d)});d.prototype.hideOverlappingLabels=function(d){var f=this,A=d.length,E=f.renderer,C,D,w,n=!1;var t=function(b){var d,f=b.box?0:b.padding||0,h=d=0,e;if(b&&\n(!b.alignAttr||b.placed)){var m=b.alignAttr||{x:b.attr(\"x\"),y:b.attr(\"y\")};var l=b.parentGroup;b.width||(d=b.getBBox(),b.width=d.width,b.height=d.height,d=E.fontMetrics(null,b.element).h);var n=b.width-2*f;(e={left:\"0\",center:\"0.5\",right:\"1\"}[b.alignValue])?h=+e*n:Math.round(b.x)!==b.translateX&&(h=b.x-b.translateX);return{x:m.x+(l.translateX||0)+f-h,y:m.y+(l.translateY||0)+f-d,width:b.width-2*f,height:b.height-2*f}}};for(D=0;D<A;D++)if(C=d[D])C.oldOpacity=C.opacity,C.newOpacity=1,C.absoluteBox=t(C);\nd.sort(function(b,d){return(d.labelrank||0)-(b.labelrank||0)});for(D=0;D<A;D++){var J=(t=d[D])&&t.absoluteBox;for(C=D+1;C<A;++C){var m=(w=d[C])&&w.absoluteBox;!J||!m||t===w||0===t.newOpacity||0===w.newOpacity||m.x>J.x+J.width||m.x+m.width<J.x||m.y>J.y+J.height||m.y+m.height<J.y||((t.labelrank<w.labelrank?t:w).newOpacity=0)}}d.forEach(function(b){if(b){var d=b.newOpacity;b.oldOpacity!==d&&(b.alignAttr&&b.placed?(b[d?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),n=!0,b.alignAttr.opacity=\nd,b[b.isOld?\"animate\":\"attr\"](b.alignAttr,null,function(){f.styledMode||b.css({pointerEvents:d?\"auto\":\"none\"});b.visibility=d?\"inherit\":\"hidden\";b.placed=!!d}),q(f,\"afterHideOverlappingLabel\")):b.attr({opacity:d}));b.isOld=!0}});n&&q(f,\"afterHideAllOverlappingLabels\")}});Q(A,\"parts/Interaction.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(d,f,A,q){var E=q.addEvent,K=q.createElement,J=q.css,L=q.defined,x=q.extend,F=q.fireEvent,H=q.isArray,C=q.isFunction,\nD=q.isNumber,w=q.isObject,n=q.merge,t=q.objectEach,N=q.pick;q=d.Chart;var m=d.defaultOptions,b=d.defaultPlotOptions,g=d.hasTouch,v=d.Series,h=d.seriesTypes,e=d.svg;var p=d.TrackerMixin={drawTrackerPoint:function(){var b=this,d=b.chart,e=d.pointer,f=function(b){var d=e.getPointFromEvent(b);\"undefined\"!==typeof d&&(e.isDirectTouch=!0,d.onMouseOver(b))},h;b.points.forEach(function(b){h=H(b.dataLabels)?b.dataLabels:b.dataLabel?[b.dataLabel]:[];b.graphic&&(b.graphic.element.point=b);h.forEach(function(d){d.div?\nd.div.point=b:d.element.point=b})});b._hasTracking||(b.trackerGroups.forEach(function(l){if(b[l]){b[l].addClass(\"highcharts-tracker\").on(\"mouseover\",f).on(\"mouseout\",function(b){e.onTrackerMouseOut(b)});if(g)b[l].on(\"touchstart\",f);!d.styledMode&&b.options.cursor&&b[l].css(J).css({cursor:b.options.cursor})}}),b._hasTracking=!0);F(this,\"afterDrawTracker\")},drawTrackerGraph:function(){var b=this,d=b.options,f=d.trackByArea,h=[].concat(f?b.areaPath:b.graphPath),m=b.chart,n=m.pointer,p=m.renderer,q=m.options.tooltip.snap,\nc=b.tracker,a=function(a){if(m.hoverSeries!==b)b.onMouseOver()},k=\"rgba(192,192,192,\"+(e?.0001:.002)+\")\";c?c.attr({d:h}):b.graph&&(b.tracker=p.path(h).attr({visibility:b.visible?\"visible\":\"hidden\",zIndex:2}).addClass(f?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(b.group),m.styledMode||b.tracker.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:k,fill:f?k:\"none\",\"stroke-width\":b.graph.strokeWidth()+(f?0:2*q)}),[b.tracker,b.markerGroup].forEach(function(c){c.addClass(\"highcharts-tracker\").on(\"mouseover\",\na).on(\"mouseout\",function(a){n.onTrackerMouseOut(a)});d.cursor&&!m.styledMode&&c.css({cursor:d.cursor});if(g)c.on(\"touchstart\",a)}));F(this,\"afterDrawTracker\")}};h.column&&(h.column.prototype.drawTracker=p.drawTrackerPoint);h.pie&&(h.pie.prototype.drawTracker=p.drawTrackerPoint);h.scatter&&(h.scatter.prototype.drawTracker=p.drawTrackerPoint);x(f.prototype,{setItemEvents:function(b,d,e){var f=this,g=f.chart.renderer.boxWrapper,l=b instanceof A,h=\"highcharts-legend-\"+(l?\"point\":\"series\")+\"-active\",\nm=f.chart.styledMode;(e?[d,b.legendSymbol]:[b.legendGroup]).forEach(function(c){if(c)c.on(\"mouseover\",function(){b.visible&&f.allItems.forEach(function(a){b!==a&&a.setState(\"inactive\",!l)});b.setState(\"hover\");b.visible&&g.addClass(h);m||d.css(f.options.itemHoverStyle)}).on(\"mouseout\",function(){f.chart.styledMode||d.css(n(b.visible?f.itemStyle:f.itemHiddenStyle));f.allItems.forEach(function(a){b!==a&&a.setState(\"\",!l)});g.removeClass(h);b.setState()}).on(\"click\",function(a){var c=function(){b.setVisible&&\nb.setVisible();f.allItems.forEach(function(a){b!==a&&a.setState(b.visible?\"inactive\":\"\",!l)})};g.removeClass(h);a={browserEvent:a};b.firePointEvent?b.firePointEvent(\"legendItemClick\",a,c):F(b,\"legendItemClick\",a,c)})})},createCheckboxForItem:function(b){b.checkbox=K(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:b.selected,defaultChecked:b.selected},this.options.itemCheckboxStyle,this.chart.container);E(b.checkbox,\"click\",function(d){F(b.series||b,\"checkboxClick\",{checked:d.target.checked,\nitem:b},function(){b.select()})})}});x(q.prototype,{showResetZoom:function(){function b(){d.zoomOut()}var d=this,e=m.lang,f=d.options.chart.resetZoomButton,g=f.theme,h=g.states,n=\"chart\"===f.relativeTo||\"spaceBox\"===f.relativeTo?null:\"plotBox\";F(this,\"beforeShowResetZoom\",null,function(){d.resetZoomButton=d.renderer.button(e.resetZoom,null,null,b,g,h&&h.hover).attr({align:f.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(f.position,!1,n)});F(this,\"afterShowResetZoom\")},\nzoomOut:function(){F(this,\"selection\",{resetSelection:!0},this.zoom)},zoom:function(b){var d=this,e,f=d.pointer,g=!1,l=d.inverted?f.mouseDownX:f.mouseDownY;!b||b.resetSelection?(d.axes.forEach(function(b){e=b.zoom()}),f.initiated=!1):b.xAxis.concat(b.yAxis).forEach(function(b){var c=b.axis,a=d.inverted?c.left:c.top,k=d.inverted?a+c.width:a+c.height,h=c.isXAxis,m=!1;if(!h&&l>=a&&l<=k||h||!L(l))m=!0;f[h?\"zoomX\":\"zoomY\"]&&m&&(e=c.zoom(b.min,b.max),c.displayBtn&&(g=!0))});var h=d.resetZoomButton;g&&!h?\nd.showResetZoom():!g&&w(h)&&(d.resetZoomButton=h.destroy());e&&d.redraw(N(d.options.chart.animation,b&&b.animation,100>d.pointCount))},pan:function(b,e){var f=this,g=f.hoverPoints,l=f.options.chart,h=f.options.mapNavigation&&f.options.mapNavigation.enabled,m;e=\"object\"===typeof e?e:{enabled:e,type:\"x\"};l&&l.panning&&(l.panning=e);var n=e.type;F(this,\"pan\",{originalEvent:b},function(){g&&g.forEach(function(a){a.setState()});var c=[1];\"xy\"===n?c=[1,0]:\"y\"===n&&(c=[0]);c.forEach(function(a){var c=f[a?\n\"xAxis\":\"yAxis\"][0],e=c.options,g=c.horiz,l=b[g?\"chartX\":\"chartY\"];g=g?\"mouseDownX\":\"mouseDownY\";var p=f[g],q=(c.pointRange||0)/2,u=c.reversed&&!f.inverted||!c.reversed&&f.inverted?-1:1,t=c.getExtremes(),v=c.toValue(p-l,!0)+q*u;u=c.toValue(p+c.len-l,!0)-q*u;var w=u<v;p=w?u:v;v=w?v:u;var y=c.hasVerticalPanning(),x=c.panningState;c.series.forEach(function(b){if(y&&!a&&(!x||x.isDirty)){var c=b.getProcessedData(!0);b=b.getExtremes(c.yData,!0);x||(x={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE});\nD(b.dataMin)&&D(b.dataMax)&&(x.startMin=Math.min(b.dataMin,x.startMin),x.startMax=Math.max(b.dataMax,x.startMax))}});u=Math.min(d.pick(null===x||void 0===x?void 0:x.startMin,t.dataMin),q?t.min:c.toValue(c.toPixels(t.min)-c.minPixelPadding));q=Math.max(d.pick(null===x||void 0===x?void 0:x.startMax,t.dataMax),q?t.max:c.toValue(c.toPixels(t.max)+c.minPixelPadding));c.panningState=x;if(!e.ordinal){e=u-p;0<e&&(v+=e,p=u);e=v-q;0<e&&(v=q,p-=e);if(c.series.length&&p!==t.min&&v!==t.max&&a||x&&p>=u&&v<=q)c.setExtremes(p,\nv,!1,!1,{trigger:\"pan\"}),f.resetZoomButton||h||!n.match(\"y\")||(f.showResetZoom(),c.displayBtn=!1),m=!0;f[g]=l}});m&&f.redraw(!1);J(f.container,{cursor:\"move\"})})}});x(A.prototype,{select:function(b,d){var e=this,f=e.series,g=f.chart;this.selectedStaging=b=N(b,!e.selected);e.firePointEvent(b?\"select\":\"unselect\",{accumulate:d},function(){e.selected=e.options.selected=b;f.options.data[f.data.indexOf(e)]=e.options;e.setState(b&&\"select\");d||g.getSelectedPoints().forEach(function(b){var d=b.series;b.selected&&\nb!==e&&(b.selected=b.options.selected=!1,d.options.data[d.data.indexOf(b)]=b.options,b.setState(g.hoverPoints&&d.options.inactiveOtherPoints?\"inactive\":\"\"),b.firePointEvent(\"unselect\"))})});delete this.selectedStaging},onMouseOver:function(b){var d=this.series.chart,e=d.pointer;b=b?e.normalize(b):e.getChartCoordinatesFromPoint(this,d.inverted);e.runPointActions(b,this)},onMouseOut:function(){var b=this.series.chart;this.firePointEvent(\"mouseOut\");this.series.options.inactiveOtherPoints||(b.hoverPoints||\n[]).forEach(function(b){b.setState()});b.hoverPoints=b.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var b=this,d=n(b.series.options.point,b.options).events;b.events=d;t(d,function(d,e){C(d)&&E(b,e,d)});this.hasImportedEvents=!0}},setState:function(d,e){var f=this.series,g=this.state,l=f.options.states[d||\"normal\"]||{},h=b[f.type].marker&&f.options.marker,m=h&&!1===h.enabled,n=h&&h.states&&h.states[d||\"normal\"]||{},c=!1===n.enabled,a=f.stateMarkerGraphic,k=this.marker||{},p=\nf.chart,q=f.halo,t,v=h&&f.markerAttribs;d=d||\"\";if(!(d===this.state&&!e||this.selected&&\"select\"!==d||!1===l.enabled||d&&(c||m&&!1===n.enabled)||d&&k.states&&k.states[d]&&!1===k.states[d].enabled)){this.state=d;v&&(t=f.markerAttribs(this,d));if(this.graphic){g&&this.graphic.removeClass(\"highcharts-point-\"+g);d&&this.graphic.addClass(\"highcharts-point-\"+d);if(!p.styledMode){var w=f.pointAttribs(this,d);var A=N(p.options.chart.animation,l.animation);f.options.inactiveOtherPoints&&w.opacity&&((this.dataLabels||\n[]).forEach(function(a){a&&a.animate({opacity:w.opacity},A)}),this.connector&&this.connector.animate({opacity:w.opacity},A));this.graphic.animate(w,A)}t&&this.graphic.animate(t,N(p.options.chart.animation,n.animation,h.animation));a&&a.hide()}else{if(d&&n){g=k.symbol||f.symbol;a&&a.currentSymbol!==g&&(a=a.destroy());if(t)if(a)a[e?\"animate\":\"attr\"]({x:t.x,y:t.y});else g&&(f.stateMarkerGraphic=a=p.renderer.symbol(g,t.x,t.y,t.width,t.height).add(f.markerGroup),a.currentSymbol=g);!p.styledMode&&a&&a.attr(f.pointAttribs(this,\nd))}a&&(a[d&&this.isInside?\"show\":\"hide\"](),a.element.point=this)}d=l.halo;l=(a=this.graphic||a)&&a.visibility||\"inherit\";d&&d.size&&a&&\"hidden\"!==l&&!this.isCluster?(q||(f.halo=q=p.renderer.path().add(a.parentGroup)),q.show()[e?\"animate\":\"attr\"]({d:this.haloPath(d.size)}),q.attr({\"class\":\"highcharts-halo highcharts-color-\"+N(this.colorIndex,f.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:l,zIndex:-1}),q.point=this,p.styledMode||q.attr(x({fill:this.color||f.color,\"fill-opacity\":d.opacity},\nd.attributes))):q&&q.point&&q.point.haloPath&&q.animate({d:q.point.haloPath(0)},null,q.hide);F(this,\"afterSetState\")}},haloPath:function(b){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-b,this.plotY-b,2*b,2*b)}});x(v.prototype,{onMouseOver:function(){var b=this.chart,d=b.hoverSeries;b.pointer.setHoverChartIndex();if(d&&d!==this)d.onMouseOut();this.options.events.mouseOver&&F(this,\"mouseOver\");this.setState(\"hover\");b.hoverSeries=this},onMouseOut:function(){var b=this.options,\nd=this.chart,e=d.tooltip,f=d.hoverPoint;d.hoverSeries=null;if(f)f.onMouseOut();this&&b.events.mouseOut&&F(this,\"mouseOut\");!e||this.stickyTracking||e.shared&&!this.noSharedTooltip||e.hide();d.series.forEach(function(b){b.setState(\"\",!0)})},setState:function(b,d){var e=this,f=e.options,g=e.graph,l=f.inactiveOtherPoints,h=f.states,m=f.lineWidth,c=f.opacity,a=N(h[b||\"normal\"]&&h[b||\"normal\"].animation,e.chart.options.chart.animation);f=0;b=b||\"\";if(e.state!==b&&([e.group,e.markerGroup,e.dataLabelsGroup].forEach(function(a){a&&\n(e.state&&a.removeClass(\"highcharts-series-\"+e.state),b&&a.addClass(\"highcharts-series-\"+b))}),e.state=b,!e.chart.styledMode)){if(h[b]&&!1===h[b].enabled)return;b&&(m=h[b].lineWidth||m+(h[b].lineWidthPlus||0),c=N(h[b].opacity,c));if(g&&!g.dashstyle)for(h={\"stroke-width\":m},g.animate(h,a);e[\"zone-graph-\"+f];)e[\"zone-graph-\"+f].attr(h),f+=1;l||[e.group,e.markerGroup,e.dataLabelsGroup,e.labelBySeries].forEach(function(b){b&&b.animate({opacity:c},a)})}d&&l&&e.points&&e.setAllPointsToState(b)},setAllPointsToState:function(b){this.points.forEach(function(d){d.setState&&\nd.setState(b)})},setVisible:function(b,d){var e=this,f=e.chart,g=e.legendItem,h=f.options.chart.ignoreHiddenSeries,l=e.visible;var m=(e.visible=b=e.options.visible=e.userOptions.visible=\"undefined\"===typeof b?!l:b)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(b){if(e[b])e[b][m]()});if(f.hoverSeries===e||(f.hoverPoint&&f.hoverPoint.series)===e)e.onMouseOut();g&&f.legend.colorizeItem(e,b);e.isDirty=!0;e.options.stacking&&f.series.forEach(function(b){b.options.stacking&&\nb.visible&&(b.isDirty=!0)});e.linkedSeries.forEach(function(c){c.setVisible(b,!1)});h&&(f.isDirtyBox=!0);F(e,m);!1!==d&&f.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(b){this.selected=b=this.options.selected=\"undefined\"===typeof b?!this.selected:b;this.checkbox&&(this.checkbox.checked=b);F(this,b?\"select\":\"unselect\")},drawTracker:p.drawTrackerGraph})});Q(A,\"parts/Responsive.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(d,f){var A=\nf.find,q=f.isArray,M=f.isObject,K=f.merge,J=f.objectEach,L=f.pick,x=f.splat,F=f.uniqueKey;d=d.Chart;d.prototype.setResponsive=function(d,f){var q=this.options.responsive,w=[],n=this.currentResponsive;!f&&q&&q.rules&&q.rules.forEach(function(d){\"undefined\"===typeof d._id&&(d._id=F());this.matchResponsiveRule(d,w)},this);f=K.apply(0,w.map(function(d){return A(q.rules,function(f){return f._id===d}).chartOptions}));f.isResponsiveOptions=!0;w=w.toString()||void 0;w!==(n&&n.ruleIds)&&(n&&this.update(n.undoOptions,\nd,!0),w?(n=this.currentOptions(f),n.isResponsiveOptions=!0,this.currentResponsive={ruleIds:w,mergedOptions:f,undoOptions:n},this.update(f,d,!0)):this.currentResponsive=void 0)};d.prototype.matchResponsiveRule=function(d,f){var q=d.condition;(q.callback||function(){return this.chartWidth<=L(q.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=L(q.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=L(q.minWidth,0)&&this.chartHeight>=L(q.minHeight,0)}).call(this)&&f.push(d._id)};d.prototype.currentOptions=function(d){function f(d,\nt,w,m){var b;J(d,function(d,n){if(!m&&-1<A.collectionsWithUpdate.indexOf(n))for(d=x(d),w[n]=[],b=0;b<d.length;b++)t[n][b]&&(w[n][b]={},f(d[b],t[n][b],w[n][b],m+1));else M(d)?(w[n]=q(d)?[]:{},f(d,t[n]||{},w[n],m+1)):w[n]=\"undefined\"===typeof t[n]?null:t[n]})}var A=this,w={};f(d,this.options,w,0);return w}});Q(A,\"masters/highcharts.src.js\",[A[\"parts/Globals.js\"]],function(d){return d});A[\"masters/highcharts.src.js\"]._modules=A;return A[\"masters/highcharts.src.js\"]});\n//# sourceMappingURL=highcharts.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/highcharts/highcharts.js\n// module id = 56\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-define.js\n// module id = 57\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 58\n// module chunks = 0","module.exports = require('./_hide');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_redefine.js\n// module id = 59\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-create.js\n// module id = 60\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys-internal.js\n// module id = 61\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 62\n// module chunks = 0","/**\n * Bring addZeroes and stripZeroes function directly into dateutils to \n * expose for testing\n */\n\nimport { addZeroes, stripZeroes } from './zero.js';\n\n/**\n * Transform a partial year value (84) into a full year value (1984)\n * according to a formula agreed upon at WSJ.\n * @param {number|string} value\n * @returns {number}\n */\n\nexport function fullYear(value) {\n value = +value;\n if (value < 100) {\n if (value + 2000 > (new Date().getUTCFullYear() + 15)) {\n value += 1900;\n } else {\n value += 2000;\n }\n }\n return value;\n}\n\n\n/**\n * Transforms a year value into 2-digit number: 1984 to 84.\n * @param {number|string} value\n * @returns {string} of length 2\n */\nexport function abbrYear(value) {\n value = addZeroes(stripZeroes(value), 2);\n return value.substr(-2, 2);\n}\n\n\n/**\n * @param {number|string} year1\n * @param {number|string} year2\n * @returns {boolean} true if y1 and y2 represent years in the same century.\n */\nexport function isSameCentury(year1, year2) {\n const y1 = addZeroes(fullYear(year1), 4);\n const y2 = addZeroes(fullYear(year2), 4);\n return y1.substr(0, 2) === y2.substr(0, 2);\n}\n\n\n\n/**\n * @private\n * @param {string} str\n * @returns {string|undefined} if str is a Quartar (\"2Q\") or else undefined.\n */\nexport function getQuarter(str) {\n if (typeof str === 'string') {\n str = str.toUpperCase();\n return (str.indexOf('Q') !== -1) ? str : undefined;\n }\n return undefined;\n}\n\n\n/**\n * @private\n * @param {string} str\n * @returns {string|undefined} if str is a Half (\"2H\") or else undefined.\n */\nexport function getHalf(str) {\n if (typeof str === 'string') {\n str = str.toUpperCase();\n return (str.indexOf('H') !== -1) ? str : undefined;\n }\n return undefined;\n}\n\n\n/**\n * For a given quarter, returns the index of the month that represents the end\n * of that quarter.\n * @private\n * @param {number} q Index of a quarter, 0 to 3.\n * @returns {number} Index of month, 2, 4, 8, or 11.\n */\nexport function quarterToMonth(q) {\n q = (typeof q === 'string') ? q.toUpperCase() : null;\n switch (q) {\n case '1Q':\n return 2;\n case '2Q':\n case '1H':\n return 5;\n case '3Q':\n return 8;\n case '4Q':\n case '2H':\n return 11;\n }\n return undefined;\n}\n\n\n/**\n * For a given month that represents the end of a quarter, returns the date\n * that represents the end of that quarter.\n * @private\n * @param {number} month Index of a month, 0 to 11.\n * @returns {number} Date of the month, 1 to 31.\n */\nexport function quarterToDate(month) {\n switch (month) {\n case undefined:\n case null:\n return undefined;\n case 1:\n return 28;\n case 3:\n case 5:\n case 8:\n case 10:\n return 30;\n default:\n return 31;\n }\n}\n\n\n\n/**\n * For use with removeExtraneous().\n * @private\n * @param {string} prop 'second', 'minute', etc.\n * @returns {number} in milliseconds\n */\nexport function genericTimeValue(prop) {\n switch (prop) {\n case 'second':\n return 1000 * 60;\n case 'minute':\n return 1000 * 60 * 60;\n case 'hour':\n return 1000 * 60 * 60 * 60;\n case 'date':\n return 1000 * 60 * 60 * 24;\n }\n return 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/dateutils.js","\n/**\n * Options passed to the renderer include options for multiple sizes. This\n * function narrows down all those options to those relevant to the current\n * size only.\n */\nexport default function filterOptionsForSize(options) {\n const size = getSize(options);\n const sizeObj = options.sizes[size.id];\n if (!options.headings) options.headings = sizeObj.headings;\n options.interactive = size.interactive;\n options.target = size.target;\n options.size = size.id;\n options.height = options.useContainerSize ? options.height :\n (sizeObj.height || size.height);\n options.stacking = sizeObj.stacking;\n options.axes = sizeObj.axes;\n options.xAxis = sizeObj.xAxis;\n options.yAxis = sizeObj.yAxis;\n options.tooltips = sizeObj.tooltips.sameAsAxes ? sizeObj.axes.units :\n sizeObj.tooltips;\n return options;\n}\n\nexport function getSize(options) {\n const index = indexOfSize(options);\n if (index !== -1) {\n return options.defaults.sizes[index];\n }\n options.defaults.sizes.sort((a, b) => {\n if (a.hasOwnProperty('minWidth') && b.hasOwnProperty('minWidth')) {\n return a.minWidth - b.minWidth;\n }\n return 1;\n });\n let size = options.defaults.sizes[0];\n options.defaults.sizes.forEach((item, index) => {\n if (item.hasOwnProperty('minWidth') &&\n Math.ceil(options.width) >= item.minWidth) {\n size = options.defaults.sizes[index];\n }\n });\n return size;\n}\n\n\nfunction indexOfSize(options) {\n if (options.size) {\n for (let i = 0; i < options.defaults.sizes.length; i++) {\n if (options.size === options.defaults.sizes[i].id) {\n return i;\n }\n }\n }\n return -1;\n}\n\n// set alignment\nfunction writeAnnotations(annotations) {\n annotations.items.forEach(item => {\n item.textAlign = item.textAlign || annotations.textAlign || 'left';\n item.flushAlign = item.flushAlign || annotations.flushAlign || 'flush';\n item.lineEnd = item.lineEnd || 'dot';\n });\n return annotations;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/filterOptionsForSize.js","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-call.js\n// module id = 65\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array-iter.js\n// module id = 66\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-detect.js\n// module id = 67\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/af.js\n// module id = 68\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar.js\n// module id = 69\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانÙÙŠ',\n 'ÙÙŠÙري',\n 'مارس',\n 'Ø£Ùريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar-dz.js\n// module id = 70\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar-kw.js\n// module id = 71\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar-ly.js\n// module id = 72\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar-ma.js\n// module id = 73\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar-sa.js\n// module id = 74\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ar-tn.js\n// module id = 75\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay: '[dünÉ™n] LT',\n lastWeek: '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s É™vvÉ™l',\n s: 'birneçə saniyÉ™',\n ss: '%d saniyÉ™',\n m: 'bir dÉ™qiqÉ™',\n mm: '%d dÉ™qiqÉ™',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM: function (input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/az.js\n// module id = 76\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'меÑÑц_меÑÑцы_меÑÑцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split(\n '_'\n ),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split(\n '_'\n ),\n },\n monthsShort: 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split(\n '_'\n ),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function () {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі Ñекунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM: function (input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-Ñ–'\n : number + '-Ñ‹';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/be.js\n// module id = 77\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'Ñну_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[МиналиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'преди %s',\n s: 'нÑколко Ñекунди',\n ss: '%d Ñекунди',\n m: 'минута',\n mm: '%d минути',\n h: 'чаÑ',\n hh: '%d чаÑа',\n d: 'ден',\n dd: '%d дена',\n M: 'меÑец',\n MM: '%d меÑеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/bg.js\n// module id = 78\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays: 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lÉ›rÉ›] LT',\n nextDay: '[Sini lÉ›rÉ›] LT',\n nextWeek: 'dddd [don lÉ›rÉ›] LT',\n lastDay: '[Kunu lÉ›rÉ›] LT',\n lastWeek: 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kÉ”nÉ”',\n past: 'a bÉ› %s bÉ”',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lÉ›rÉ› kelen',\n hh: 'lÉ›rÉ› %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/bm.js\n// module id = 79\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': 'à§',\n '8': '৮',\n '9': '৯',\n '0': '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split(\n '_'\n ),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/bn.js\n// module id = 80\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[à½à¼‹à½¦à½„] LT',\n lastWeek: '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སà¾à½¢à¼‹à½†à¼',\n m: 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm: '%d སà¾à½¢à¼‹à½˜',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/bo.js\n// module id = 81\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/br.js\n// module id = 82\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/bs.js\n// module id = 83\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ca.js\n// module id = 84\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bÅ™e/i,\n /^dub/i,\n /^kvÄ›/i,\n /^(Ävn|Äerven$|Äervna)/i,\n /^(Ävc|Äervenec|Äervence)/i,\n /^srp/i,\n /^zář/i,\n /^Å™Ãj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅ™edu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅ™edu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅ™ed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/cs.js\n// module id = 85\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /Ñехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каÑлла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр Ñехет',\n hh: '%d Ñехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/cv.js\n// module id = 86\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/cy.js\n// module id = 87\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'pÃ¥ dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'fÃ¥ sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'et Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/da.js\n// module id = 88\n// module chunks = 0","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/de.js\n// module id = 89\n// module chunks = 0","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/de-at.js\n// module id = 90\n// module chunks = 0","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/de-ch.js\n// module id = 91\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©',\n 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©',\n 'Þ‰Þ§ÞƒÞ¨Þ—Þª',\n 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª',\n 'Þ‰Þ',\n 'Þ–Þ«Þ‚Þ°',\n 'Þ–ÞªÞÞ¦Þ‡Þ¨',\n 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª',\n 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª',\n 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'Þ€Þ¯Þ‰Þ¦',\n 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦',\n 'Þ„ÞªÞ‹Þ¦',\n 'Þ„ÞªÞƒÞ§Þްފަތި',\n 'Þ€ÞªÞ†ÞªÞƒÞª',\n 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM: function (input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar: {\n sameDay: '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay: '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past: 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s: 'Þިކުންތުކޮޅެއް',\n ss: 'd% Þިކުންތު',\n m: 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm: 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d: 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd: 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M: 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM: 'Þ‰Þ¦ÞÞ° %d',\n y: 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy: 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/dv.js\n// module id = 92\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split(\n '_'\n ),\n monthsGenitiveEl: 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays: 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[ΣήμεÏα {}] LT',\n nextDay: '[ΑÏÏιο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s Ï€Ïιν',\n s: 'λίγα δευτεÏόλεπτα',\n ss: '%d δευτεÏόλεπτα',\n m: 'Îνα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ÏŽÏα',\n hh: '%d ÏŽÏες',\n d: 'μία μÎÏα',\n dd: '%d μÎÏες',\n M: 'Îνας μήνας',\n MM: '%d μήνες',\n y: 'Îνας χÏόνος',\n yy: '%d χÏόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/el.js\n// module id = 93\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-au.js\n// module id = 94\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-ca.js\n// module id = 95\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-gb.js\n// module id = 96\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-ie.js\n// module id = 97\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-il.js\n// module id = 98\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-in.js\n// module id = 99\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-nz.js\n// module id = 100\n// module chunks = 0","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/en-sg.js\n// module id = 101\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[HodiaÅ je] LT',\n nextDay: '[MorgaÅ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[HieraÅ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/eo.js\n// module id = 102\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha invalida',\n });\n\n return es;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/es.js\n// module id = 103\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/es-do.js\n// module id = 104\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/es-us.js\n// module id = 105\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/et.js\n// module id = 106\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/eu.js\n// module id = 107\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Û±',\n '2': 'Û²',\n '3': 'Û³',\n '4': 'Û´',\n '5': 'Ûµ',\n '6': 'Û¶',\n '7': 'Û·',\n '8': 'Û¸',\n '9': 'Û¹',\n '0': 'Û°',\n },\n numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[Ùردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal: '%dÙ…',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fa.js\n// module id = 108\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fi.js\n// module id = 109\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fil.js\n// module id = 110\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[à morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gjár kl.] LT',\n lastWeek: '[sÃðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s sÃðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tÃmi',\n hh: '%d tÃmar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fo.js\n// module id = 111\n// module chunks = 0","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fr.js\n// module id = 112\n// module chunks = 0","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fr-ca.js\n// module id = 113\n// module chunks = 0","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fr-ch.js\n// module id = 114\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/fy.js\n// module id = 115\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ga.js\n// module id = 116\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Mà rt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ã’gmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dà mhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Mà rt',\n 'Gibl',\n 'Cèit',\n 'Ã’gmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dà mh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimà irt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-mà ireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/gd.js\n// module id = 117\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/gl.js\n// module id = 118\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['à¤à¤•à¤¾ मिणटान', 'à¤à¤• मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['à¤à¤•à¤¾ वरान', 'à¤à¤• वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['à¤à¤•à¤¾ दिसान', 'à¤à¤• दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['à¤à¤•à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤• मà¥à¤¹à¤¯à¤¨à¥‹'],\n MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥€', number + ' मà¥à¤¹à¤¯à¤¨à¥‡'],\n y: ['à¤à¤•à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤• वरà¥à¤¸'],\n yy: [number + ' वरà¥à¤¸à¤¾à¤‚नी', number + ' वरà¥à¤¸à¤¾à¤‚'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¥€à¤²_मे_जून_जà¥à¤²à¤¯_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीचà¥à¤¯à¤¾_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€à¤šà¥à¤¯à¤¾_मारà¥à¤šà¤¾à¤šà¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥€à¤²à¤¾à¤šà¥à¤¯à¤¾_मेयाचà¥à¤¯à¤¾_जूनाचà¥à¤¯à¤¾_जà¥à¤²à¤¯à¤¾à¤šà¥à¤¯à¤¾_ऑगसà¥à¤Ÿà¤¾à¤šà¥à¤¯à¤¾_सपà¥à¤Ÿà¥‡à¤‚बराचà¥à¤¯à¤¾_ऑकà¥à¤Ÿà¥‹à¤¬à¤°à¤¾à¤šà¥à¤¯à¤¾_नोवà¥à¤¹à¥‡à¤‚बराचà¥à¤¯à¤¾_डिसेंबराचà¥à¤¯à¤¾'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š_à¤à¤ªà¥à¤°à¥€._मे_जून_जà¥à¤²._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बà¥à¤§à¤µà¤¾à¤°_बिरेसà¥à¤¤à¤¾à¤°_सà¥à¤•à¥à¤°à¤¾à¤°_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बà¥à¤§._बà¥à¤°à¥‡à¤¸à¥à¤¤._सà¥à¤•à¥à¤°._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बà¥_बà¥à¤°à¥‡_सà¥_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फालà¥à¤¯à¤¾à¤‚] LT',\n nextWeek: '[फà¥à¤¡à¤²à¥‹] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/gom-deva.js\n// module id = 119\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/gom-latn.js\n// module id = 120\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': 'à«©',\n '4': '૪',\n '5': 'à««',\n '6': '૬',\n '7': 'à«',\n '8': 'à«®',\n '9': '૯',\n '0': '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split(\n '_'\n ),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/gu.js\n// module id = 121\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split(\n '_'\n ),\n monthsShort: '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[×”×™×•× ×‘Ö¾]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[×תמול ב־]LT',\n lastWeek: '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: '×œ×¤× ×™ %s',\n s: 'מספר ×©× ×™×•×ª',\n ss: '%d ×©× ×™×•×ª',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n return number + ' שעות';\n },\n d: 'יו×',\n dd: function (number) {\n if (number === 2) {\n return 'יומיי×';\n }\n return number + ' ימי×';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n return number + ' חודשי×';\n },\n y: '×©× ×”',\n yy: function (number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n return number + ' ×©× ×™×';\n },\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/he.js\n// module id = 122\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var hi = moment.defineLocale('hi', {\n months: 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split(\n '_'\n ),\n monthsShort: 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कà¥à¤› ही कà¥à¤·à¤£',\n ss: '%d सेकंड',\n m: 'à¤à¤• मिनट',\n mm: '%d मिनट',\n h: 'à¤à¤• घंटा',\n hh: '%d घंटे',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महीने',\n MM: '%d महीने',\n y: 'à¤à¤• वरà¥à¤·',\n yy: '%d वरà¥à¤·',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/hi.js\n// module id = 123\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[proÅ¡lu] [nedjelju] [u] LT';\n case 3:\n return '[proÅ¡lu] [srijedu] [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/hr.js\n// module id = 124\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split(\n '_'\n ),\n weekdays: 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/hu.js\n// module id = 125\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split(\n '_'\n ),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split(\n '_'\n ),\n },\n monthsShort: 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays: 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split(\n '_'\n ),\n weekdaysShort: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Õ©.',\n LLL: 'D MMMM YYYY Õ©., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',\n },\n calendar: {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function () {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s Õ°Õ¥Õ¿Õ¸',\n past: '%s Õ¡Õ¼Õ¡Õ»',\n s: 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss: '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m: 'Ö€Õ¸ÕºÕ¥',\n mm: '%d Ö€Õ¸ÕºÕ¥',\n h: 'ÕªÕ¡Õ´',\n hh: '%d ÕªÕ¡Õ´',\n d: 'Ö…Ö€',\n dd: '%d Ö…Ö€',\n M: 'Õ¡Õ´Õ«Õ½',\n MM: '%d Õ¡Õ´Õ«Õ½',\n y: 'Õ¿Õ¡Ö€Õ«',\n yy: '%d Õ¿Õ¡Ö€Õ«',\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function (input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-Ö€Õ¤';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/hy-am.js\n// module id = 126\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/id.js\n// module id = 127\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum')\n );\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n return result + 'mÃnútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gær kl.] LT',\n lastWeek: '[sÃðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s sÃðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/is.js\n// module id = 128\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/it.js\n// module id = 129\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/it-ch.js\n// module id = 130\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: 'ã‹¿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: 'å¹³æˆ',\n narrow: 'ã»',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'æ˜å’Œ',\n narrow: 'ã¼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大æ£',\n narrow: 'ã½',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: 'ã¾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元å‰',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(å…ƒ|\\d+)å¹´/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === 'å…ƒ' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥(ddd) HH:mm',\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM: function (input) {\n return input === 'åˆå¾Œ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}æ—¥/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + 'å¹´';\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1æ—¥',\n dd: '%dæ—¥',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1å¹´',\n yy: '%då¹´',\n },\n });\n\n return ja;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ja.js\n// module id = 131\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/jv.js\n// module id = 132\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split(\n '_'\n ),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split(\n '_'\n ),\n isFormat: /(წინáƒ|შემდეგ)/,\n },\n weekdaysShort: 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin: 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვáƒáƒš] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინáƒ] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წáƒáƒ›|წუთ|სáƒáƒáƒ—|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss: '%d წáƒáƒ›áƒ˜',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'სáƒáƒáƒ—ი',\n hh: '%d სáƒáƒáƒ—ი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ka.js\n// module id = 133\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin: 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін Ñағат] LT',\n nextDay: '[Ертең Ñағат] LT',\n nextWeek: 'dddd [Ñағат] LT',\n lastDay: '[Кеше Ñағат] LT',\n lastWeek: '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше Ñекунд',\n ss: '%d Ñекунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір Ñағат',\n hh: '%d Ñағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/kk.js\n// module id = 134\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/km.js\n// module id = 135\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': 'à³',\n '8': 'à³®',\n '9': '೯',\n '0': '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin: 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದà³] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನà³à²¨à³†] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss: '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m: 'ಒಂದೠನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದೠಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದೠದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದೠತಿಂಗಳà³',\n MM: '%d ತಿಂಗಳà³',\n y: 'ಒಂದೠವರà³à²·',\n yy: '%d ವರà³à²·',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/kn.js\n// module id = 136\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split(\n '_'\n ),\n weekdays: 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYYë…„ MMMM Dì¼',\n LLL: 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYYë…„ MMMM Dì¼',\n lll: 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: 'ë‚´ì¼ LT',\n nextWeek: 'dddd LT',\n lastDay: 'ì–´ì œ LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s ì „',\n s: '몇 ì´ˆ',\n ss: '%dì´ˆ',\n m: '1분',\n mm: '%d분',\n h: 'í•œ 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%dì¼',\n M: 'í•œ 달',\n MM: '%d달',\n y: 'ì¼ ë…„',\n yy: '%dë…„',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n case 'M':\n return number + 'ì›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /ì˜¤ì „|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n },\n });\n\n return ko;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ko.js\n// module id = 137\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'Ù¡',\n '2': 'Ù¢',\n '3': 'Ù£',\n '4': 'Ù¤',\n '5': 'Ù¥',\n '6': 'Ù¦',\n '7': 'Ù§',\n '8': 'Ù¨',\n '9': 'Ù©',\n '0': 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'Øوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك Ú•Û†Ú˜',\n dd: '%d Ú•Û†Ú˜',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ku.js\n// module id = 138\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн Ñаат] LT',\n nextDay: '[Ðртең Ñаат] LT',\n nextWeek: 'dddd [Ñаат] LT',\n lastDay: '[КечÑÑ Ñаат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече Ñекунд',\n ss: '%d Ñекунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир Ñаат',\n hh: '%d Ñаат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ky.js\n// module id = 139\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/lb.js\n// module id = 140\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function (input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'àºàºµàº %s',\n past: '%sຜ່ານມາ',\n s: 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືàºàº™',\n MM: '%d ເດືàºàº™',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/lo.js\n// module id = 141\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundÄ—_sekundžių_sekundes',\n m: 'minutÄ—_minutÄ—s_minutÄ™',\n mm: 'minutÄ—s_minuÄių_minutes',\n h: 'valanda_valandos_valandÄ…',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dienÄ…',\n dd: 'dienos_dienų_dienas',\n M: 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n MM: 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Å iandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[PraÄ—jusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieÅ¡ %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/lt.js\n// module id = 142\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : JÄnis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n m: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n mm: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n h: 'stundas_stundÄm_stunda_stundas'.split('_'),\n hh: 'stundas_stundÄm_stunda_stundas'.split('_'),\n d: 'dienas_dienÄm_diena_dienas'.split('_'),\n dd: 'dienas_dienÄm_diena_dienas'.split('_'),\n M: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n MM: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Å odien pulksten] LT',\n nextDay: '[RÄ«t pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pÄ“c %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/lv.js\n// module id = 143\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag NikaÄ <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedjelje] [u] LT',\n '[proÅ¡log] [ponedjeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srijede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/me.js\n// module id = 144\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/mi.js\n// module id = 145\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку Ñекунди',\n ss: '%d Ñекунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден чаÑ',\n hh: '%d чаÑа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден меÑец',\n MM: '%d меÑеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/mk.js\n// module id = 146\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin: 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -à´¨àµ',\n LTS: 'A h:mm:ss -à´¨àµ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ',\n },\n calendar: {\n sameDay: '[ഇനàµà´¨àµ] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek: '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s à´•à´´à´¿à´žàµà´žàµ',\n past: '%s à´®àµàµ»à´ªàµ',\n s: 'അൽപ നിമിഷങàµà´™àµ¾',\n ss: '%d സെകàµà´•àµ»à´¡àµ',\n m: 'ഒരൠമിനിറàµà´±àµ',\n mm: '%d മിനിറàµà´±àµ',\n h: 'ഒരൠമണികàµà´•àµ‚ർ',\n hh: '%d മണികàµà´•àµ‚ർ',\n d: 'ഒരൠദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരൠമാസം',\n MM: '%d മാസം',\n y: 'ഒരൠവർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാതàµà´°à´¿' && hour >= 4) ||\n meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' ||\n meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n },\n });\n\n return ml;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ml.js\n// module id = 147\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split(\n '_'\n ),\n monthsShort: '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[ИрÑÑ…] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[ӨнгөрÑөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/mn.js\n// module id = 148\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'à¤à¤• मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'à¤à¤• तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'à¤à¤• दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'à¤à¤• महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'à¤à¤• वरà¥à¤·';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¥‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'à¤à¤•à¤¾ मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'à¤à¤•à¤¾ तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'à¤à¤•à¤¾ दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾';\n break;\n case 'MM':\n output = '%d महिनà¥à¤¯à¤¾à¤‚';\n break;\n case 'y':\n output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¤¾à¤‚';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उदà¥à¤¯à¤¾] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी|रातà¥à¤°à¥€/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दà¥à¤ªà¤¾à¤°à¥€' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रातà¥à¤°à¥€'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/mr.js\n// module id = 149\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ms.js\n// module id = 150\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ms-my.js\n// module id = 151\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'Ä¡urnata',\n dd: '%d Ä¡ranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/mt.js\n// module id = 152\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': 'á',\n '2': 'á‚',\n '3': 'áƒ',\n '4': 'á„',\n '5': 'á…',\n '6': 'á†',\n '7': 'á‡',\n '8': 'áˆ',\n '9': 'á‰',\n '0': 'á€',\n },\n numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/my.js\n// module id = 153\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/nb.js\n// module id = 154\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': 'à¥',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split(\n '_'\n ),\n monthsShort: 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek: '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही कà¥à¤·à¤£',\n ss: '%d सेकेणà¥à¤¡',\n m: 'à¤à¤• मिनेट',\n mm: '%d मिनेट',\n h: 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh: '%d घणà¥à¤Ÿà¤¾',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महिना',\n MM: '%d महिना',\n y: 'à¤à¤• बरà¥à¤·',\n yy: '%d बरà¥à¤·',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ne.js\n// module id = 155\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/nl.js\n// module id = 156\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/nl-be.js\n// module id = 157\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n M: 'ein mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'eit Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/nn.js\n// module id = 158\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/oc-lnc.js\n// module id = 159\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': 'à©©',\n '4': '੪',\n '5': 'à©«',\n '6': '੬',\n '7': 'à©',\n '8': 'à©®',\n '9': '੯',\n '0': '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕà©à¨ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/pa-in.js\n// module id = 160\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split(\n '_'\n );\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return (\n '(' +\n monthsSubjective[momentToFormat.month()] +\n '|' +\n monthsNominative[momentToFormat.month()] +\n ')'\n );\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W Å›rodÄ™ o] LT';\n\n case 6:\n return '[W sobotÄ™ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ„',\n dd: '%d dni',\n M: 'miesiÄ…c',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/pl.js\n// module id = 161\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/pt.js\n// module id = 162\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n });\n\n return ptBr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/pt-br.js\n// module id = 163\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ro.js\n// module id = 164\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'чаÑ_чаÑа_чаÑов',\n dd: 'день_днÑ_дней',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^Ñнв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йÑ]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^Ñен/i,\n /^окт/i,\n /^ноÑ/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split(\n '_'\n ),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split(\n '_'\n ),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?] ?dddd/,\n },\n weekdaysShort: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n\n // Выражение, которое ÑоответÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'неÑколько Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'чаÑ',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM: function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ru.js\n// module id = 165\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'Ùيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءÙ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'Ù‡Úª منٽ',\n mm: '%d منٽ',\n h: 'Ù‡Úª ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'Ù‡Úª Úينهن',\n dd: '%d Úينهن',\n M: 'Ù‡Úª مهينو',\n MM: '%d مهينا',\n y: 'Ù‡Úª سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sd.js\n// module id = 166\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maÅ‹it %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/se.js\n// module id = 167\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split(\n '_'\n ),\n weekdays: 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss: 'à¶à¶à·Šà¶´à¶» %d',\n m: 'මිනිà¶à·Šà¶à·”à·€',\n mm: 'මිනිà¶à·Šà¶à·” %d',\n h: 'පà·à¶º',\n hh: 'පà·à¶º %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මà·à·ƒà¶º',\n MM: 'මà·à·ƒ %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal: function (number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM: function (input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/si.js\n// module id = 168\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sk.js\n// module id = 169\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert SedovÅ¡ek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sl.js\n// module id = 170\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sq.js\n// module id = 171\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedelje] [u] LT',\n '[proÅ¡log] [ponedeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sr.js\n// module id = 172\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [Ñреду] [у] LT';\n case 6:\n return '[у] [Ñуботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [Ñреде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [Ñуботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико Ñекунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'меÑец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sr-cyrl.js\n// module id = 173\n// module chunks = 0","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ss.js\n// module id = 174\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sv.js\n// module id = 175\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/sw.js\n// module id = 176\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': 'à¯',\n '8': '௮',\n '9': '௯',\n '0': '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split(\n '_'\n ),\n weekdays: 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இனà¯à®±à¯] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேறà¯à®±à¯] LT',\n lastWeek: '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இலà¯',\n past: '%s à®®à¯à®©à¯',\n s: 'ஒர௠சில விநாடிகளà¯',\n ss: '%d விநாடிகளà¯',\n m: 'ஒர௠நிமிடமà¯',\n mm: '%d நிமிடஙà¯à®•à®³à¯',\n h: 'ஒர௠மணி நேரமà¯',\n hh: '%d மணி நேரமà¯',\n d: 'ஒர௠நாளà¯',\n dd: '%d நாடà¯à®•à®³à¯',\n M: 'ஒர௠மாதமà¯',\n MM: '%d மாதஙà¯à®•à®³à¯',\n y: 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy: '%d ஆணà¯à®Ÿà¯à®•à®³à¯',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal: function (number) {\n return number + 'வதà¯';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ta.js\n// module id = 177\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split(\n '_'\n ),\n monthsShort: 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin: 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడà±] LT',\n nextDay: '[రేపà±] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నినà±à°¨] LT',\n lastWeek: '[à°—à°¤] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s à°•à±à°°à°¿à°¤à°‚',\n s: 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss: '%d సెకనà±à°²à±',\n m: 'à°’à°• నిమిషం',\n mm: '%d నిమిషాలà±',\n h: 'à°’à°• à°—à°‚à°Ÿ',\n hh: '%d à°—à°‚à°Ÿà°²à±',\n d: 'à°’à°• రోజà±',\n dd: '%d రోజà±à°²à±',\n M: 'à°’à°• నెల',\n MM: '%d నెలలà±',\n y: 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy: '%d సంవతà±à°¸à°°à°¾à°²à±',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}à°µ/,\n ordinal: '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/te.js\n// module id = 178\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tet.js\n// module id = 179\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз Ñоати] LT',\n nextDay: '[Пагоҳ Ñоати] LT',\n lastDay: '[Дирӯз Ñоати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'Ñкчанд ÑониÑ',\n m: 'Ñк дақиқа',\n mm: '%d дақиқа',\n h: 'Ñк Ñоат',\n hh: '%d Ñоат',\n d: 'Ñк рӯз',\n dd: '%d рӯз',\n M: 'Ñк моҳ',\n MM: '%d моҳ',\n y: 'Ñк Ñол',\n yy: '%d Ñол',\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tg.js\n// module id = 180\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sที่à¹à¸¥à¹‰à¸§',\n s: 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดืà¸à¸™',\n MM: '%d เดืà¸à¸™',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/th.js\n// module id = 181\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tl-ph.js\n// module id = 182\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tlh.js\n// module id = 183\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tr.js\n// module id = 184\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à ] LT',\n nextDay: '[demà à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[ieiri à ] LT',\n lastWeek: '[sür el] dddd [lasteu à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n mÃut\", \"'iens mÃut\"],\n mm: [number + ' mÃuts', '' + number + ' mÃuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tzl.js\n// module id = 185\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split(\n '_'\n ),\n monthsShort: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past: 'ⵢⴰⵠ%s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉâµâµ“â´º',\n mm: '%d ⵎⵉâµâµ“â´º',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰâµ',\n M: 'â´°âµ¢oⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔâµ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙâµ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tzm.js\n// module id = 186\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuá¸',\n mm: '%d minuá¸',\n h: 'saÉ›a',\n hh: '%d tassaÉ›in',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/tzm-latn.js\n// module id = 187\n// module chunks = 0","//! moment.js language configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js language configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ug-cn.js\n// module id = 188\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'міÑÑць_міÑÑці_міÑÑців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split(\n '_'\n ),\n standalone: 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Ñ€.',\n LLL: 'D MMMM YYYY Ñ€., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Ñ€., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'міÑÑць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function (input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/uk.js\n// module id = 189\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'Ùروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعÛ', 'ÛÙتÛ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[Ú©Ù„ بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek: '[گذشتÛ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹÛ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماÛ',\n MM: '%d ماÛ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ur.js\n// module id = 190\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун Ñоат] LT [да]',\n nextDay: '[Ðртага] LT [да]',\n nextWeek: 'dddd [куни Ñоат] LT [да]',\n lastDay: '[Кеча Ñоат] LT [да]',\n lastWeek: '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурÑат',\n ss: '%d фурÑат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир Ñоат',\n hh: '%d Ñоат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/uz.js\n// module id = 191\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/uz-latn.js\n// module id = 192\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trÆ°á»›c lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tá»›i',\n past: '%s trÆ°á»›c',\n s: 'và i giây',\n ss: '%d giây',\n m: 'má»™t phút',\n mm: '%d phút',\n h: 'má»™t giá»',\n hh: '%d giá»',\n d: 'má»™t ngà y',\n dd: '%d ngà y',\n M: 'má»™t tháng',\n MM: '%d tháng',\n y: 'má»™t năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/vi.js\n// module id = 193\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ã~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ã~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~mÃñ~úté',\n mm: '%d m~Ãñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/x-pseudo.js\n// module id = 194\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort: 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin: 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[OÌ€niÌ€ ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ toÌn'bá»] [ni] LT\",\n lastDay: '[AÌ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'niÌ %s',\n past: '%s ká»jaÌ',\n s: 'iÌ€sẹjuÌ aayaÌ die',\n ss: 'aayaÌ %d',\n m: 'iÌ€sẹjuÌ kan',\n mm: 'iÌ€sẹjuÌ %d',\n h: 'waÌkati kan',\n hh: 'waÌkati %d',\n d: 'á»já»Ì kan',\n dd: 'á»já»Ì %d',\n M: 'osuÌ€ kan',\n MM: 'osuÌ€ %d',\n y: 'á»duÌn kan',\n yy: 'á»duÌn %d',\n },\n dayOfMonthOrdinalParse: /á»já»Ì\\s\\d{1,2}/,\n ordinal: 'á»já»Ì %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/yo.js\n// module id = 195\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL: 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%såŽ',\n past: '%så‰',\n s: 'å‡ ç§’',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 å°æ—¶',\n hh: '%d å°æ—¶',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/zh-cn.js\n// module id = 196\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上åˆ';\n } else if (hm === 1200) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhHk;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/zh-hk.js\n// module id = 197\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%så…§',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhMo;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/zh-mo.js\n// module id = 198\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhTw;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/zh-tw.js\n// module id = 199\n// module chunks = 0","import { MONTHS, MONTHS_SHORT } from './constants';\nimport datetime from './datetime';\nimport { addZeroes } from './zero';\n\n/**\n * Processes and builds the chart categories.\n */\nexport default function processCategories(options) {\n if (Array.isArray(options.categories)) {\n options.maxDataLength = getMaxDataLength(options);\n options.originalCategories = options.categories.slice(); \n if (options.categoriesAreDates) {\n return formatAsDates(options);\n } else {\n return formatAsCategories(options);\n }\n } else {\n options = writeDefaultCategories(options);\n }\n return options;\n}\n\n\nfunction getMaxDataLength(options) {\n let maxLen = 0;\n options.series.forEach(series => {\n maxLen = Math.max(maxLen, series.data.length);\n });\n return maxLen;\n}\n\n\n// Makes the index of each row into a default category value.\nfunction writeDefaultCategories(options) {\n options.categories = [[]];\n for (let i = 0; i < options.maxDataLength; i++) {\n options.categories[0][i] = i;\n }\n options.originalCategories = options.categories[0].slice();\n return options;\n}\n\n\n// Returns the categories as is, but wrapped in an array as the axes module needs.\nfunction formatAsCategories(options) {\n options.longCategories = options.originalCategories.slice(0);\n options.categories = [options.categories];\n return options;\n}\n\n\n// Casts the categories from strings into dates.\nfunction formatAsDates(options) {\n const { dates } = options;\n options.fiscalYears = !!options.datesAll.fiscalYear;\n options.quarterlyResults = datetime.allQuarterly(dates);\n options.longCategories = createLongCategories(options, dates);\n // if (options.quarterlyResults || options.fiscalYears) {\n // options.longCategories = formatQLong(options);\n // } else {\n // options.longCategories = formatLong(options.dates);\n // }\n options.categories = [options.quarterlyResults ? formatQ(dates) :\n options.longCategories];\n return options;\n}\n\nexport function createLongCategories(options, dates) {\n const { quarterlyResults, fiscalYears } = options;\n const action = quarterlyResults || fiscalYears ?\n formatQLong : formatLong;\n return action(dates);\n}\n\n// For tooltips: standard dates/times.\nfunction formatLong(dates) {\n return dates.map(date => {\n let str = formatDateLong(date);\n return formatTimeLong(date, str);\n });\n}\n\n\nfunction formatDateLong(date) {\n if (date.month !== undefined && date.date && date.year) {\n return [\n MONTHS[date.month],\n date.date + ',',\n date.year\n ].join(' ');\n } else if (date.month !== undefined && date.date) {\n return [\n MONTHS[date.month],\n date.date\n ].join(' ');\n } else if (date.month !== undefined && date.year) {\n return [\n MONTHS[date.month],\n date.year\n ].join(' ');\n } else if (date.month !== undefined) {\n return MONTHS[date.month];\n } else if (date.year) {\n return date.year.toString();\n }\n return null;\n}\n\n\nfunction formatTimeLong(date, str) {\n if (date.hour !== undefined) {\n let h = '';\n let a = '';\n str = str ? (str + ' ') : '';\n if (date.a === 'a' || date.a === 'p') {\n h = (date.hour % 12) + '';\n h = (h === '0') ? '12' : h;\n a = date.a;\n } else {\n if (date.hour === 0) {\n h = '12';\n a = 'a';\n } else if (date.hour === 12) {\n h = '12';\n a = 'p';\n } else if (date.hour > 12) {\n h = (date.hour % 12) + '';\n a = 'p';\n } else {\n // same as: if (date.hour < 12) {\n h = date.hour + '';\n a = 'a'\n }\n }\n str += h;\n if (date.minute) {\n str += ':' + addZeroes(date.minute, 2);\n }\n if (date.second) {\n str += ':' + addZeroes(date.second, 2);\n }\n if (a) {\n str += ' ' + ((date.a === 'a') ? 'a.m.' : 'p.m.');\n }\n if (isNoon(str, date)) {\n str = 'noon';\n }\n if (date.z) {\n str += ' ' + date.z;\n }\n }\n return str;\n}\n\n\nfunction isNoon(str, date) {\n return (date.minute === undefined && /^12/.test(str)) ||\n (date.second === undefined && /^12:00/.test(str)) ||\n /^12:00:00/.test(str);\n}\n\n\n// Returns array of quarterly/half year categories.\nfunction formatQ(dates, long) {\n return dates.map((item, index) => formatQText(item, index, long));\n}\n\nexport function formatQText(item, index, long) {\n let str = '';\n str += item.quarter || '';\n str += item.half || '';\n str += (item.year !== undefined) ? ' ' : '';\n str += ((index === 0 || long) && item.fiscalYear) ? 'FY' : ''\n str += item.year || '';\n return str;\n}\n\n// For tooltips: quarterly results.\nfunction formatQLong(dates) {\n return formatQ(dates, true);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/processCategories.js","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash.merge/index.js\n// module id = 201\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/typeof.js\n// module id = 202\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gops.js\n// module id = 203\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn.js\n// module id = 204\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/defineProperty.js\n// module id = 206\n// module chunks = 0","const TEXT_RULES = {\n thumb: {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false,\n }\n};\n\nif (__ALL__ || __WSJ__) {\n TEXT_RULES.E = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true,\n };\n TEXT_RULES.D = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true,\n };\n TEXT_RULES.G = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true,\n };\n TEXT_RULES.top = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true,\n };\n TEXT_RULES.soc = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true,\n };\n TEXT_RULES.tab = {\n title: false,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES.fon = {\n title: false,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['4u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['8u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['12u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['16u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['appfeed'] = {\n title: false,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n subdekPromo: true,\n sourcePromo: true,\n notePromo: true,\n };\n TEXT_RULES['video'] = {\n title: true,\n dek: true,\n subdek: false,\n note: false,\n source: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['twitterVideo'] = {\n title: true,\n dek: false,\n subdek: false,\n note: true,\n source: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['preview'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false\n };\n}\n\nif (__ALL__ || __BARRONS__) {\n TEXT_RULES['barrons-4col-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['barrons-8col-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['barrons-10col-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n },\n TEXT_RULES['barrons-fullscreen-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['b4u'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['barrons-8col-inset'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['barrons-10col-inset'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n },\n TEXT_RULES['barrons-fullscreen-inset'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n },\n TEXT_RULES['print-barrons'] = {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n}\n\nif (__ALL__ || __FINANCIALNEWS__) {\n TEXT_RULES['fn-small-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['fn-medium-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n TEXT_RULES['fn-large-image'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['fn4u'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['fn-medium-inset'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['fn-large-inset'] = {\n title: true,\n dek: true,\n subdek: false,\n note: true,\n source: true,\n date: true,\n tagline: true,\n thumb: false,\n };\n TEXT_RULES['print-fn'] = {\n title: false,\n dek: false,\n subdek: false,\n note: false,\n source: false,\n date: false,\n tagline: false,\n thumb: false,\n };\n}\n\nif (__MARKETWATCH__) {\n TEXT_RULES['marketwatch-ZT'] = {\n title: false,\n dek: false,\n subdek: false,\n legend: false,\n note: false,\n source: false,\n date: false,\n tagline: false\n };\n TEXT_RULES['marketwatch-ZR'] = {\n title: false,\n dek: false,\n subdek: false,\n legend: false,\n note: false,\n source: false,\n date: false,\n tagline: false\n };\n \n}\nTEXT_RULES['k4u'] = {\n title: true,\n dek: false,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: false,\n thumb: false,\n };\n\nexport function getBestRule(id) {\n // If a rule for @param id is found, return it.\n if (TEXT_RULES[id] !== undefined) {\n return TEXT_RULES[id];\n }\n // If a rules that begins with @param id is found, return it. This is useful\n // for example with any id that starts with \"thumb\".\n for (let i = 0, keys = Object.keys(TEXT_RULES); i < keys.length; i++) {\n let key = keys[i];\n if (id.indexOf(key) === 0) {\n return TEXT_RULES[key];\n }\n }\n // Default:\n return {\n title: true,\n dek: true,\n subdek: true,\n note: true,\n source: true,\n date: true,\n tagline: 'right'\n };\n}\n\n\nexport default TEXT_RULES;\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/outer/text-rules.js","import * as element from '../util/element';\n\nexport function removeEl(item) {\n if (item && item.el) {\n element.removeChild(item.el.element)\n item.el = null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/outer/util.js","import { replaceLineBreaks, boldText } from '../util/element';\nimport {\n CATEGORY,\n SERIES,\n VALUE,\n POINT,\n ANNOTATIONS_LINEHEIGHT,\n ANNOTATIONS_LINEHEIGHT_VIDEO,\n MONTHS\n} from '../data/constants';\nimport { formatQText, createLongCategories } from '../data/processCategories';\nimport getPoint from '../data/getPoint';\nimport * as format from '../data/format';\nimport datetime from '../data/datetime';\nimport { arrowWidth } from './defs';\n\nimport moment from 'moment';\n\nconst COLOR = '#333';\n\nexport function preRender(data, options) {\n const shapeOptions = getShapeOptions();\n const labelOptions = getLabelOptions(options);\n const [labels, shapes, extraSpace] = createAnnotations(options);\n const visible = options.size !== 'marketwatch-ZT';\n if (visible) addSpacing(data, options, extraSpace);\n data.annotations.push({ labels, labelOptions, shapes, shapeOptions, visible });\n}\n\nfunction getShapeOptions() {\n return {\n fill: COLOR,\n stroke: COLOR,\n type: 'circle',\n strokeWidth: 0\n };\n}\n\nfunction getLabelOptions(options) {\n const { color, fontSize, lineHeight, fontWeight, fontFamily } = options.styles.annotations;\n return {\n style: { color, fontFamily, fontSize, fontWeight, lineHeight, cursor: 'default' },\n backgroundColor: 'rgba(0, 0, 0, 0)', // defaults to gray, must be made transparent\n borderWidth: 0, // defaults to a border, which must be removed\n padding: 0, // label sits on top line before y applied\n y: setY(options), // margin above top line\n overflow: 'none', // allow labels rendered outside plot area\n allowOverlap: true // keep highcharts from hiding labels; spacing handled in postrender\n };\n}\n\nfunction isWsjDigital(options) {\n return options.product === 'wsj' && !options.print;\n}\n\nfunction setY(options) {\n // shift labels up 10px when suffix or recession label enabled\n const { id, axes } = options;\n const { units, showRecessions, showUkRecessions } = axes;\n const offset = id === 'video' || id === 'twitterVideo' ? 30 : 0;\n const y = units.suffix.length > 2 || showRecessions || showUkRecessions ?\n -20 : -10;\n return y - offset;\n}\n\nfunction createAnnotations(options) {\n const labels = [], shapes = [];\n const lineHeight = getLineHeight(options);\n const spacing = {};\n let maxHeight = 0;\n\n options.annotations.forEach(item => {\n // create label\n const { flushAlign, showLine, lineType } = item;\n const style = { flushAlign, showLine, lineType }; // info needed in postrender\n \n const formattedText = formatText(item, options);\n const text = formattedText.join('<br>');\n \n const [x, y, yAxis, endPoints, ms] = getXY(item, options);\n \n const label = { point: { x, y: 0, xAxis: 0 }, text, style }; // position at chart top\n\n // create corresponding shape\n const shape = createShape(item, options, x, y, yAxis);\n \n labels.push(label);\n shapes.push(shape);\n\n // extra space needed for tallest annotation\n const offset = options.id === 'video' || options.id === 'twitterVideo' ? 1 : 0;\n const numLines = (lastIdx(formattedText) + offset) * lineHeight;\n maxHeight = Math.max(maxHeight, numLines);\n \n // extra space needed for shape on right or left\n if (item.lineEnd !== 'nothing') {\n findMinMax(options, item, spacing, endPoints, ms);\n }\n })\n const { min, max } = spacing;\n return [labels, shapes, { top: maxHeight, min, max }];\n}\n\nfunction getLineHeight(options) {\n const { id, print, styles, product } = options;\n const wsjHeight = id === 'video' || id === 'twitterVideo' ?\n ANNOTATIONS_LINEHEIGHT_VIDEO : ANNOTATIONS_LINEHEIGHT;\n return product === 'wsj' && !print ?\n wsjHeight : parseFloat(styles.normal.lineHeight);\n}\n\nfunction formatText(item, options) {\n const text = compileText(item, options);\n const textBr = replaceLineBreaks(text);\n const lines = textBr.split('<br>');\n const wsjDigital = isWsjDigital(options);\n const [openTag, closeTag] = wsjDigital ?\n [`<span style=\"font-weight:500\">`, '</span>']\n :\n ['<strong>', '</strong>'];\n const boldAnnotation = boldText();\n return lines.map(line => boldAnnotation(line, openTag, closeTag));\n}\n\nfunction compileText(item, options) {\n const { text, category, series, value } = item;\n return (text || '')\n .replace(/\\\\{/g, '__LEFT_BRACKET__')\n .replace(/\\\\}/g, '__RIGHT_BRACKET__')\n .replace(CATEGORY, compiledCategory(category.toString(), options))\n .replace(SERIES, series)\n .replace(VALUE, value)\n .replace(POINT, compiledPoint(value, options))\n .replace(/__LEFT_BRACKET__/g, '{')\n .replace(/__RIGHT_BRACKET__/g, '}');\n}\n\nfunction compiledCategory(category, options) {\n return options.categoriesAreDates ?\n formatDate(category, options)\n :\n category;\n}\n\nfunction formatDate(category, options) {\n const value = findValue(category, options);\n const dateObj = options.dates.find(date => date.value === value);\n const formattedCategory = createLongCategories(options, [dateObj]);\n return formattedCategory[0];\n}\n\nfunction parseDate(category, options) {\n return datetime.parse([category], options);\n}\n\nfunction compiledPoint(value, options) {\n if (isFinite(value)) {\n const { tooltips, type } = options;\n return format.applyFull(value, tooltips, type === 'pie', true, true);\n }\n return 'n/a';\n}\n\nfunction getXY(item, options) { \n let dataIdx, x;\n const { category, series: seriesName, attachTo } = item;\n const { series, categories, irregularDates } = options;\n const { data } = findSeries(series, seriesName);\n if (data[0].hasOwnProperty('x')) {\n const value = findValue(category, options);\n dataIdx = data.findIndex(point => point.x === value);\n x = value;\n } else {\n dataIdx = findCatIdx(options, categories[0], category);\n x = dataIdx;\n }\n const { y } = data[dataIdx];\n const [yAxis, yValue] = attachTo === 'point' ?\n [0, y] : [undefined, undefined];\n const first = dataIdx === 0;\n const last = dataIdx === lastIdx(data);\n let ms;\n if (irregularDates) ms = findMilliseconds(options, data);\n return [x, yValue, yAxis, { first, last }, ms];\n}\n\nfunction findSeries(series, seriesName) {\n return series.find(({ name }) => name.toString() === seriesName.toString());\n}\n\nfunction findValue(category, options) {\n const date = parseDate(category, options);\n return date[0].value;\n}\n\nfunction findCatIdx(options, categories, annotationCategory) {\n return categories.findIndex((currentCategory, i) =>\n compareCategory(options, currentCategory, annotationCategory, i));\n}\n\nfunction compareCategory(options, category, annotationCategory, index) {\n return options.quarterlyResults ?\n checkQuarterly(options, category, annotationCategory, index)\n :\n category === annotationCategory; \n}\n\nfunction checkQuarterly(options, category, annotationCategory, index) {\n const date = parseDate(annotationCategory, options);\n const formattedCategory = formatQText(date[0], index);\n return formattedCategory === category;\n}\n\nfunction getAreaY(options, seriesIdx, dataIdx) {\n // for area charts, need to calculate top y for each section of stack\n const series = options.originalSeries;\n const totalForPercent = series.reduce((total, currentSeries) => total + currentSeries[dataIdx].y, 0);\n let seriesY = 0;\n for (let i = lastIdx(series); i >= seriesIdx; i--) {\n const { y } = series[i][dataIdx];\n const height = options.stacking === 'normal' ?\n y : y / totalForPercent * 100\n seriesY += height;\n }\n return seriesY;\n}\n\nfunction lastIdx(arr) {\n return arr.length - 1;\n}\n\nexport function findMilliseconds(options, series) {\n // for highstocks charts, calculate how many milliseconds equal shape's radius\n const delta = findDelta(series);\n const pxPerX = options.width / series.length - 1;\n return delta / pxPerX;\n}\n\nfunction findDelta(series) {\n let prevDelta = 0,\n currentDelta;\n for (let i = 1; i < series.length; i++) {\n currentDelta = series[i].x - series[i - 1].x;\n if (currentDelta === prevDelta) return currentDelta;\n prevDelta = currentDelta;\n }\n}\n\nfunction createShape(item, options, x, y, yAxis) {\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo';\n const shape = {};\n const point = { x, y, xAxis: 0, yAxis };\n const { print } = options;\n switch(item.lineEnd) {\n case 'circle':\n shape.r = circleR(print);\n shape.strokeWidth = print ? 0.5 : 1;\n shape.fill = 'rgba(0, 0, 0, 0)';\n shape.point = point;\n break;\n case 'arrow':\n // transparent path ending with custom arrow (created in defs)\n shape.type = 'path';\n shape.markerEnd = 'custom-arrow';\n shape.points = [{ x, y: 0, xAxis: 0 }, { x, y, xAxis: 0, yAxis }];\n break;\n case 'nothing':\n // transparent shape used for drawing line in postrender\n shape.point = point;\n break;\n default: // dot\n shape.r = isVideoGroup ? 9 : dotR(print);\n shape.fill = isVideoGroup ? '#fff' : undefined;\n shape.point = point;\n }\n return shape;\n}\n\nfunction circleR(print) {\n return print ? 4 : 6.5;\n}\n\nfunction dotR(print) {\n return print ? 1.5 : 3;\n}\n\nfunction findMinMax(options, item, spacing, endPoints, ms) {\n const { print, irregularDates } = options;\n const { lineEnd } = item;\n const r = getRadius(print, lineEnd);\n if (endPoints.first) {\n spacing.min = r;\n }\n else if (endPoints.last) {\n spacing.max = irregularDates ?\n ms * (r + 2) : r;\n }\n}\n\nfunction getRadius(print, lineEnd) {\n switch (lineEnd) {\n case 'dot':\n return dotR(print);\n case 'circle':\n return circleR(print);\n case 'arrow':\n return arrowWidth(print) / 2;\n }\n}\n\nfunction addSpacing(data, options, extraSpace) {\n data.chart.spacing[0] += extraSpace.top; // for multiline annotations\n // for shapes for 1st or last data point, add sufficient padding\n const padding = setPadding(data, options, extraSpace);\n padding('min', 'max');\n}\n\nfunction setPadding(data, options, extraSpace) {\n return function(...args) {\n args.forEach(type => {\n const space = extraSpace[type];\n const { xAxis } = data;\n const { irregularDates, width } = options;\n if (space) {\n irregularDates ?\n xAxis.overscroll += extraSpace.max || 0\n :\n xAxis[`${type}Padding`] = (space + 5) / width;\n }\n })\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/annotations-prerender.js","import * as transform from './transform';\nimport { forAxisTicks } from './util';\n\nexport const COLOR_BAND = '#EDEEEF';\nexport const VIDEO_COLOR_BAND = '#444444';\nconst COLOR_LABEL_VER = '#666666';//'rgba(0, 0, 0, 0.2)';\nconst COLOR_LABEL_HOR = '#666666';//#727272\nconst MARGIN_VER = 8;\nconst MARGIN_HOR = 2;\nconst OFFSET = 0;//-0.38;\n\n// Data from http://www.nber.org/cycles.html\nexport const RECESSIONS = [\n { start: { month: 5, year: 1857 }, end: { month: 11, year: 1858 } },\n { start: { month: 9, year: 1860 }, end: { month: 5, year: 1861 } },\n { start: { month: 3, year: 1865 }, end: { month: 11, year: 1867 } },\n { start: { month: 5, year: 1869 }, end: { month: 11, year: 1870 } },\n { start: { month: 9, year: 1873 }, end: { month: 2, year: 1879 } },\n { start: { month: 2, year: 1882 }, end: { month: 4, year: 1885 } },\n { start: { month: 2, year: 1887 }, end: { month: 3, year: 1888 } },\n { start: { month: 6, year: 1890 }, end: { month: 4, year: 1891 } },\n { start: { month: 0, year: 1893 }, end: { month: 5, year: 1894 } },\n { start: { month: 11, year: 1895 }, end: { month: 5, year: 1897 } },\n { start: { month: 5, year: 1899 }, end: { month: 11, year: 1900 } },\n { start: { month: 8, year: 1902 }, end: { month: 7, year: 1904 } },\n { start: { month: 4, year: 1907 }, end: { month: 5, year: 1908 } },\n { start: { month: 0, year: 1910 }, end: { month: 0, year: 1912 } },\n { start: { month: 0, year: 1913 }, end: { month: 11, year: 1914 } },\n { start: { month: 7, year: 1918 }, end: { month: 2, year: 1919 } },\n { start: { month: 0, year: 1920 }, end: { month: 6, year: 1921 } },\n { start: { month: 4, year: 1923 }, end: { month: 6, year: 1924 } },\n { start: { month: 9, year: 1926 }, end: { month: 10, year: 1927 } },\n { start: { month: 7, year: 1929 }, end: { month: 2, year: 1933 } },\n { start: { month: 4, year: 1937 }, end: { month: 5, year: 1938 } },\n { start: { month: 1, year: 1945 }, end: { month: 9, year: 1945 } },\n { start: { month: 10, year: 1948 }, end: { month: 9, year: 1949 } },\n { start: { month: 6, year: 1953 }, end: { month: 4, year: 1954 } },\n { start: { month: 7, year: 1957 }, end: { month: 3, year: 1958 } },\n { start: { month: 3, year: 1960 }, end: { month: 1, year: 1961 } },\n { start: { month: 11, year: 1969 }, end: { month: 10, year: 1970 } },\n { start: { month: 10, year: 1973 }, end: { month: 2, year: 1975 } },\n { start: { month: 0, year: 1980 }, end: { month: 6, year: 1980 } },\n { start: { month: 6, year: 1981 }, end: { month: 10, year: 1982 } },\n { start: { month: 6, year: 1990 }, end: { month: 2, year: 1991 } },\n { start: { month: 2, year: 2001 }, end: { month: 10, year: 2001 } },\n { start: { month: 11, year: 2007 }, end: { month: 5, year: 2009 } },\n { start: { month: 1, year: 2020 }, end: false }\n];\n\nexport const UK_RECESSIONS = [\n { start: { month: 4, year: 1956 }, end: { month: 9, year: 1956 } },\n { start: { month: 7, year: 1961 }, end: { month: 12, year: 1961 } },\n { start: { month: 7, year: 1973 }, end: { month: 3, year: 1974 } },\n { start: { month: 4, year: 1975 }, end: { month: 9, year: 1975 } },\n { start: { month: 1, year: 1980 }, end: { month: 3, year: 1981 } },\n { start: { month: 7, year: 1990 }, end: { month: 9, year: 1991 } },\n { start: { month: 4, year: 2008 }, end: { month: 6, year: 2009 } },\n]\n\n/**\n * Pre Render\n */\nexport function preRender(data, options) {\n if (canShowRecessions(options)) {\n const values = convertDataToValues(options.axes.showRecessions, options.axes.showUkRecessions);\n const dateA = options.dates[0];\n const dateB = options.dates[options.dates.length - 1];\n const axisValueA = (new Date(dateA.year, dateA.month || 0)).valueOf();\n const axisValueB = (new Date(dateB.year, dateB.month || 0, dateB.date || 1)).valueOf();\n\n let conditionalColorBand;\n if (options.product === 'marketwatch') {\n conditionalColorBand = '#eeeff0';\n } else if (options.id === 'video' || options.id === 'twitterVideo') {\n conditionalColorBand = VIDEO_COLOR_BAND;\n } else {\n conditionalColorBand = COLOR_BAND;\n }\n\n let plotBands = values.map(v => {\n if (v.start <= axisValueB && v.end >= axisValueA) {\n return {\n from: Math.max(axisValueA, v.start),\n to: Math.min(axisValueB, v.end),\n color: conditionalColorBand,\n className: 'recession'\n };\n }\n return null;\n }).filter(item => {\n return item !== null;\n });\n\n if (plotBands.length) {\n if (options.quarterlyResults && options.series[0].data.length <= 44) {\n plotBands = convertDatetimeToLinear(plotBands, options.dates);\n }\n data.xAxis.plotBands = [...data.xAxis.plotBands, ...plotBands];\n }\n }\n return data;\n}\n\n\nfunction canShowRecessions(options) {\n return (options.axes.showRecessions || options.axes.showUkRecessions) &&\n options.dates &&\n options.type !== 'pie' &&\n options.type !== 'bar' &&\n allHaveYears(options.dates);\n}\n\nfunction allHaveYears(dates) {\n return !dates.some(date => {\n return date.year === undefined;\n })\n}\n\nfunction convertDataToValues(showRecessions, showUkRecessions) {\n if(showRecessions) return convertDataToValuesHelper(RECESSIONS);\n if(showUkRecessions) return convertDataToValuesHelper(UK_RECESSIONS);\n}\n\nfunction convertDataToValuesHelper(recessionsDates){\n return recessionsDates.map(r => {\n return {\n start: (new Date(r.start.year, r.start.month)).valueOf(),\n end: r.end ? (new Date(r.end.year, r.end.month)).valueOf() : new Date().valueOf()\n };\n });\n}\n\n\n// On datetime axes, values are milliseconds. On linear axes, values are\n// just indices. For quarterly results, the axis is actually linear and just\n// pretends to be datetime, so plotBands must be converted from datetime.\nfunction convertDatetimeToLinear(plotBands, dates) {\n const datesLen = dates.length;\n plotBands.forEach(pb => {\n let newFrom = 0;\n let newTo = datesLen - 1;\n dates.forEach((date, index) => {\n if (pb.from >= date.value) {\n newFrom = index;\n }\n if (pb.to >= date.value) {\n newTo = index;\n }\n });\n newFrom = getLinearPrecise(newFrom, pb.from, dates);\n newTo = getLinearPrecise(newTo, pb.to, dates);\n pb.from = newFrom;\n pb.to = newTo;\n });\n return plotBands;\n}\n\n// For use with convertDatetimeToLinear().\nfunction getLinearPrecise(linear, datetime, dates) {\n if (linear < dates.length - 1) {\n linear += (datetime - dates[linear].value) /\n (dates[linear + 1].value - dates[linear].value);\n }\n return linear;\n}\n\n\n/**\n * Post Render\n */\nexport function postRender(highchart, options) {\n var xAxis = highchart.xAxis[0];\n var pb = xAxis.plotLinesAndBands.filter(band => band.options.className === 'recession');\n\n if (pb.length) {\n let pos = null;\n let rtext = null;\n let maxPx = 0;\n\n if (options.type === 'bar') {\n pos = {\n x: highchart.plotLeft + highchart.plotWidth - MARGIN_HOR,\n y: highchart.plotTop + parseFloat(options.styles.small.fontSize)\n };\n rtext = writeRecessionText(highchart, options, pos, COLOR_LABEL_HOR);\n rtext.element.setAttribute('x', +rtext.element.getAttribute('x') -\n rtext.element.getBoundingClientRect().width);\n maxPx = highchart.plotTop + highchart.plotHeight;\n \n moveRecessionTextHorizontal(pb, rtext.element, maxPx);\n\n } else {\n if (options.ticksOffsetX) {\n offsetPlotBands(pb, options.ticksOffsetX);\n }\n pos = topYAxisLabelPosition(highchart, options);\n rtext = writeRecessionText(highchart, options, pos, COLOR_LABEL_VER);\n maxPx = highchart.plotLeft + highchart.plotWidth;\n moveRecessionTextVertical(pb, rtext.element, options.ticksOffsetX || 0, maxPx);\n }\n }\n}\n\n\nfunction offsetPlotBands(plotBands, offsetX) {\n plotBands.forEach(pb => {\n transform.write(pb.svgElem.element, 'translate', offsetX);\n })\n}\n\n\nfunction moveRecessionTextHorizontal(pb, el, maxY) {\n let y = + el.getAttribute('y');\n const origY = y;\n const elHeight = el.getBoundingClientRect().height + MARGIN_HOR;\n for (let i = 0; i < pb.length; i++) {\n if (!pb[i].svgElem) continue;\n const d = transform.read(null, 'd', pb[i].svgElem.d);\n if (d[2][1] - d[1][1] >= elHeight) {\n y = d[2][1] - MARGIN_HOR;\n break;\n } else if (i === pb.length - 1) {\n y = d[1][1] - MARGIN_HOR;\n }\n }\n el.setAttribute('y', Math.max(origY, Math.min(y, maxY - elHeight)));\n}\n\n\nfunction moveRecessionTextVertical(pb, el, offsetX, maxX) {\n const elWidth = el.getBoundingClientRect().width;\n let x = +el.getAttribute('x');\n for (let i = 0; i < pb.length; i++) {\n if (!pb[i].svgElem) continue;\n const d = transform.read(null, 'd', pb[i].svgElem.d);\n if (d[0][0] >= x) {\n x = d[0][0];\n break;\n } else if (d[2][0] >= x + elWidth) {\n x = d[2][0] - elWidth;\n break;\n }\n }\n x += offsetX;\n el.setAttribute('x', Math.min(x, maxX - elWidth));\n}\n\n\nfunction writeRecessionText(highchart, options, pos, color) {\n if ((options.product === 'marketwatch' || options.product === 'financialnews') && options.type === 'line') {\n let bandsX = highchart.container.getElementsByClassName('highcharts-plot-bands-0')[0].getBoundingClientRect();\n bandsX = bandsX.left - bandsX.width;\n pos.x = bandsX;\n }\n\n let css = options.styles.get('normal', { color: color });\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n css.fontSize = \"13px\";\n css.fontFamily = \"Retina Narrow\"\n\n if (options.print) {\n css.fontSize = \"7.5px\";\n }\n\n if (options.id === 'video') {\n css.fontSize = '32px';\n css.fontFamily = 'Retina Narrow';\n css.fontWeight = 400;\n }\n }\n\n }\n\n const regex = /[\\u3000-\\u303F]|[\\u3040-\\u309F]|[\\u30A0-\\u30FF]|[\\uFF00-\\uFFEF]|[\\u4E00-\\u9FAF]|[\\u2605-\\u2606]|[\\u2190-\\u2195]|\\u203B/g;\n let recessionLabel = 'RECESSION';\n if (regex.test(options.el.innerHTML)) recessionLabel = '景気後退';\n const text = options.product === 'barrons' ?\n 'Recessions are shaded' : recessionLabel;\n\n return highchart.renderer.text(text, pos.x, pos.y)\n .css(css)\n .attr('class', 'label-recession')\n .add();\n}\n\n\n// Finds the Y of the top label on the y-axis in order to align \"recession\"\n// on the same baseline. If units have been set, uses that as a shortcut.\nfunction topYAxisLabelPosition(highchart, options) {\n let pos = { x: 0, y: 0 };\n const textUnits = highchart.container.querySelector('text.units');\n if (textUnits) {\n pos.x = +textUnits.getAttribute('x') +\n textUnits.getBoundingClientRect().width;\n pos.y = +textUnits.getAttribute('y') - 1;\n } else {\n forAxisTicks(highchart.yAxis[0], tick => {\n if (tick.isLast) {\n pos.x = +tick.label.element.getAttribute('x') +\n tick.label.element.getBoundingClientRect().width;\n pos.y = +tick.label.element.getAttribute('y');\n return false;\n }\n });\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj' && options.print) {\n pos.y = pos.y + 1;\n }\n\n }\n\n pos.x += MARGIN_VER;\n return pos;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/recessions.js","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment-timezone/index.js\n// module id = 211\n// module chunks = 0","import moment from 'moment-timezone';\n\nimport { RANGE, FREQUENCY, TIMETYPES } from '../constants/marketdata';\n\nexport function checkInstrumentType(tickers, instrumentType) {\n return tickers.some(({ type }) => type === instrumentType);\n}\n\nexport function selectProps(obj, props) {\n return props.reduce((newObj, prop) => Object.assign(newObj, { [prop]: obj[prop] }), {});\n}\n\nexport function updateProps(props, ticker) {\n const newProps = selectProps(props, ['dateRange', 'start', 'end', 'frequency', 'isPercent', 'isRolling']);\n newProps.tickers = [...props.tickers, ticker];\n return newProps;\n}\n\nexport function createNewProps(props, isCustom, categories, prop) {\n const { start, end, frequency } = props;\n const newProps = findStartEnd(isCustom, start, end, categories, frequency); \n\n if (prop !== 'update') newProps[prop] = props[prop];\n \n const hasCrypto = checkCrypto(props, prop);\n if (prop === 'dateRange' || hasCrypto) newProps.frequency = frequency;\n \n return newProps;\n}\n\nexport function getSourceLine(series) {\n const sources = compileSources(series);\n const sourceNames = Object.keys(sources);\n\n return sourceNames.length === 1 ?\n `Source: ${sourceNames[0]}`\n :\n writeMultipleSources(sourceNames, sources);\n}\n\nexport function checkIntradayFrequency(frequency) {\n return frequency.includes('T') && frequency.includes('M') || frequency.includes('H');\n}\n\nexport function createETMoment(date) {\n return moment.tz(date, 'America/New_York');\n}\n\nexport function lastItem(arr) {\n return arr[arr.length - 1];\n}\n\nexport function getRangeOptions(chartType) {\n const ranges = Object.keys(RANGE);\n const offset = chartType === 'column' ? 4 : 0;\n return ranges.slice(offset);\n}\n\nexport function getFrequencyOptions(dateRange, startDate, endDate, hasCrypto, currentFrequency, chartType) {\n // populate frequency dropdown with proper options for specified date range\n const isCustom = dateRange === 'Custom';\n if (isCustom) {\n // for custom dates, determine which preset date range is closest in length\n const [unixStart, unixEnd] = [startDate, endDate].map(convertDate);\n const timeSpan = unixEnd - unixStart;\n dateRange = getRange(timeSpan);\n }\n const noIntraday = checkCustomIntraday(endDate, isCustom); // for older custom dates, intraday intervals unavailable \n \n const { start, end, defaultFrequency } = getFrequencyDefaults(dateRange, hasCrypto, chartType, noIntraday);\n \n const frequencyOptions = getOptions(hasCrypto, defaultFrequency, start, end, chartType);\n\n const frequency = getDefaultFrequency(isCustom, frequencyOptions, defaultFrequency, currentFrequency);\n \n return { frequencyOptions, defaultFrequency: frequency };\n}\n\nexport function parseDateRange(dateRange) {\n return {\n timePeriodType: dateRange.slice(-1),\n timeValue: +dateRange.slice(0, -1)\n };\n}\n\nexport function getFrequencyDefaults(dateRange, hasCrypto, chartType, noIntraday) {\n const { start, end, default: frequency } = RANGE[dateRange];\n \n const isColumn = chartType === 'column';\n const isIntraday = isFrequencyIntraday(frequency);\n const needsInterday = (noIntraday || isColumn) && isIntraday;\n if (needsInterday) {\n return { start: 'P1D', end: getEnd(end), defaultFrequency: 'P1D' };\n }\n\n const defaultFrequency = hasCrypto && frequency === 'P7D' ?\n 'P1M' : frequency; \n return { start, end, defaultFrequency };\n}\n\nexport function checkSeriesLength(series) {\n return series && series.length === 1;\n}\n\nexport function getLastValue(data) {\n for (let i = data.length - 1; i >= 0; i--) {\n const value = data[i];\n const { y } = value;\n if (y !== null && y !== undefined) {\n return value;\n } \n }\n return null;\n}\n\nexport function parseData(data) {\n return data.map(point => selectProps(point, ['y']));\n}\n\nexport function parseDataColumn(data, prevData) {\n return data.map((point, i) => {\n if (i > 0) {\n const y = getColumnY(point, data, i);\n const updatedPoint = { y };\n if (prevData && prevData[i - 1] && prevData[i - 1].color) {\n updatedPoint.color = prevData[i - 1].color;\n }\n return updatedPoint;\n }\n }).slice(1);\n}\n\n// getFrequencyOptions helper functions\nfunction convertDate(date) {\n return date.format('x');\n}\n\nfunction getRange(timeSpan) {\n const timePeriods = getTimePeriods();\n let current;\n for (let i = 0; i < timePeriods.length; i++) {\n current = timePeriods[i];\n if (timeSpan < current.milliseconds) {\n const prev = timePeriods[i - 1];\n return i === 0 || checkDate(timeSpan, prev, current) ?\n current.range : prev.range;\n }\n }\n return current.range;\n}\n\nfunction getTimePeriods() {\n return Object.keys(RANGE)\n .map(createTimeSpanObj)\n .filter(({ milliseconds }) => !isNaN(milliseconds));\n}\n\nfunction createTimeSpanObj(range) {\n const { timePeriodType, timeValue } = parseDateRange(range);\n const milliseconds = TIMETYPES[timePeriodType] * timeValue;\n return { range, milliseconds };\n}\n\nfunction checkDate(timeSpan, prev, current) {\n return timeSpan - prev.milliseconds > current.milliseconds - timeSpan;\n}\n\nfunction checkCustomIntraday(endDate, isCustom) {\n return isCustom && endDate.isBefore(moment().subtract(2, 'w'));\n}\n\nfunction getOptions(hasCrypto, defaultFrequency, start, end) {\n return hasCrypto && !isFrequencyIntraday(defaultFrequency) ?\n getInterdayCryptoOptions()\n :\n getDefaultOptions(start, end);\n}\n\nfunction isFrequencyIntraday(code) {\n return code.includes('T');\n}\n\nfunction getInterdayCryptoOptions() {\n return FREQUENCY.filter(({ value }) =>\n value !== 'P7D' && !isFrequencyIntraday(value));\n}\n\nfunction getDefaultOptions(start, end) {\n const [startIdx, endIdx] = [start, end].map(findFrequencyIndex);\n return FREQUENCY.slice(startIdx, endIdx + 1);\n}\n\nfunction findFrequencyIndex(prop) {\n return FREQUENCY.findIndex(({ value }) => value === prop);\n}\n\nfunction getDefaultFrequency(isCustom, frequencyOptions, defaultFrequency, currentFrequency) {\n const validFrequency = frequencyOptions.some(({ value }) => value === currentFrequency);\n return isCustom && validFrequency ?\n currentFrequency\n :\n defaultFrequency;\n}\n\n// getFrequencyDefaults helper function\nfunction getEnd(end) {\n return isFrequencyIntraday(end) ? 'P1D' : end;\n}\n\n// createNewProps helper functions\nfunction findStartEnd(isCustom, startProp, endProp, categories, frequency) {\n const [start, end] = isCustom && frequency !== 'P7D' && frequency !== 'P1M' && frequency !== 'P3M' && frequency !== 'P1Y' ?\n [startProp, endProp]\n :\n getDates(categories);\n return { start, end };\n}\n\nfunction getDates(categories) {\n return [categories[0], lastItem(categories)].map(formatDate);\n}\n\nfunction formatDate(date) {\n const isIntraday = date.split(' ').length > 1;\n if (isIntraday) date += 'm';\n const format = isIntraday ? 'MM-DD-YYYY h:mm:ss a' : 'MM-DD-YYYY';\n return moment.tz(date, format, 'America/New_York').format();\n}\n\nfunction checkCrypto(props, prop) {\n const { tickers } = props;\n const cryptoAdded = tickers.length && lastItem(tickers).type === 'CryptoCurrency';\n return prop === 'tickers' && cryptoAdded;\n}\n\n// getSourceLine helper functions\nfunction compileSources(series) {\n const sources = {};\n\n series.forEach(({ sourceInfo }) => {\n const { type, symbol, source } = sourceInfo;\n\n if (!sources[source]) sources[source] = [];\n const types = sources[source];\n\n if (checkMultiple(series, type, source)) {\n types.push(symbol); // when same ticker type appears under different sources, list symbol\n } else if (!types.includes(type)) {\n types.push(type); // otherwise list type\n }\n })\n\n return sources;\n}\n\nfunction checkMultiple(series, currentType, currentSource) {\n // does same ticker type appear under multiple sources?\n return series.some(({ sourceInfo }) => {\n const { type, source } = sourceInfo;\n return type === currentType && source !== currentSource;\n });\n}\n\nfunction writeMultipleSources(sourceKeys, sources) {\n return sourceKeys.reduce((str, source) =>\n str + writeSource(sources, source), 'Sources: ').slice(0, -2);\n}\n\nfunction writeSource(sources, source) {\n return `${source} (${writeList(sources[source])}); `;\n}\n\nfunction writeList(listArr) {\n return listArr.reduce((str, listItem) => str + `${listItem}, `, '').slice(0, -2);\n}\n\n// parseDataColumn helper function\nfunction getColumnY(point, data, i) {\n const prevY = data[i - 1].y;\n return (point.y - prevY) / prevY * 100;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/ui/util/marketdata.js","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_species-constructor.js\n// module id = 213\n// module chunks = 0","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_task.js\n// module id = 214\n// module chunks = 0","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_perform.js\n// module id = 215\n// module chunks = 0","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_promise-resolve.js\n// module id = 216\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 217\n// module chunks = 0","import datetime from './data/datetime';\nimport processOptions from './data/processOptions';\nimport { truncateData } from './data/processSeries';\nimport * as preload from './style/preload';\nimport * as OuterChart from './outer/';\nimport * as InnerChart from './inner/';\nimport * as element from './util/element';\nimport { getSize } from './data/filterOptionsForSize';\nimport { fetchData, createDataParser } from '../../server/shared/marketDataHelpers';\nimport { ANNOTATIONS_LINEHEIGHT, ANNOTATIONS_LINEHEIGHT_VIDEO } from './data/constants';\nimport { getLastValue, parseDataColumn } from '../ui/util/marketdata';\n\nimport Highcharts from 'highcharts';\nimport Annotations from 'highcharts/modules/annotations';\nimport Exporting from 'highcharts/modules/exporting';\nimport HighChartsStock from '../../node_modules/highcharts/highstock.js';\nAnnotations(Highcharts);\nAnnotations(HighChartsStock);\nExporting(Highcharts);\nExporting(HighChartsStock);\n\n// Store charts so they can be destroyed as needed.\nlet charts = [];\n\n/**\n * Public API functions.\n */\n\nfunction render(options, uploadFonts = true, done) {\n // for published auto-updating market data charts, fetch the latest data\n const { liveMarketData, isRolling, skipUpdate } = options;\n const mustUpdate = liveMarketData && isRolling && !skipUpdate;\n const renderAction = mustUpdate ? renderRolling : startRender;\n return renderAction(options, done, uploadFonts);\n}\n\nfunction renderRolling(options, done, uploadFonts) {\n const { tickers, frequency, start, end, isPercent, product, dateRange, singleIsPercent } = options;\n const instruments = tickers.map(ticker => ticker.chartingSymbol);\n const isCustom = dateRange === 'Custom';\n const usePercent = tickers.length > 1 && isPercent ||\n tickers.length === 1 && singleIsPercent;\n const cb = createCallback(options, done, usePercent, isCustom, frequency, dateRange, end, uploadFonts);\n fetchData(instruments, start, end, frequency, isCustom, dateRange, true, product, cb);\n}\n\nfunction createCallback(options, done, isPercent, isCustom, frequency, dateRange, end, uploadFonts) {\n return function(data) {\n const parseData = createDataParser(data, isPercent, isCustom, frequency, dateRange, end);\n const size = getSize(options);\n const sizeObj = options.sizes[size.id];\n const headings = options.headings || sizeObj.headings;\n const barData = [];\n const prevData = options.series[0].data;\n data.forEach((series, index) => {\n const [seriesArr, categories, date] = parseData(series, index);\n if (options.type === 'bar') {\n const lastValue = getLastValue(seriesArr);\n const { color } = prevData[index];\n if (color) {\n lastValue.color = color;\n }\n barData.push(lastValue);\n } else {\n const [updatedCategories, updatedData] = options.type === 'line' ?\n [categories, seriesArr]\n :\n [categories.slice(1), parseDataColumn(seriesArr, prevData)];\n options.categories = updatedCategories;\n options.series[index].data = updatedData;\n }\n headings.date.text = `As of ${date}`;\n })\n if (options.type === 'bar') {\n options.series[0].data = barData;\n }\n options.annotations.filter(annotation => options.categories.includes(annotation.category));\n startRender(options, done, uploadFonts);\n }\n}\n\nfunction startRender(options, done, uploadFonts) {\n done = (typeof done === 'function') ? done : (() => {});\n options = options.irregularDates ? processOptions(options, HighChartsStock) : processOptions(options, Highcharts);\n const invalidated = (options.invalidated && options.invalidated[options.size]);\n if (!!invalidated) {\n const existChart = getExistChart(options.el).chart;\n if (existChart && existChart.outer && existChart.inner) {\n renderInvalidated(existChart, options, done, uploadFonts);\n return;\n }\n }\n resetRender(options, done, uploadFonts);\n}\n\nfunction resetRender(options, done, uploadFonts) {\n destroy(options.el);\n // console.log(`CHART.${options.id}.fonts.START`);\n if (uploadFonts || options.product !== 'wsj') {\n preload.fonts(options, () => {\n // also need to add a data attribute to element\n // when chart is done loading, for testing purposes\n const doneWithFlag = params => {\n done(params);\n params.container.dataset.rendered = true;\n }\n renderChart(options, doneWithFlag);\n });\n } else {\n renderChart(options, done)\n }\n}\n\n// Instead of re-rendering the entirety of both inner and outer charts, only\n// the invalidate parts of re-rendered.\n// TODO: Create preview/editing views and get this working again.\nfunction renderInvalidated(rendered, options, done, uploadFonts) {\n if (__ALL__) {\n let invalidated = options.invalidated[options.size] || [];\n\n const invalidAll = [\n 'chart/targets',\n 'chart/height',\n 'chart/annotations',\n // ];\n // const invalidChart = [\n 'chart/data',\n 'chart/type',\n 'chart/series-names',\n 'chart/hide-legend',\n 'chart/axis',\n 'chart/legend',\n 'chart/stacking',\n 'chart/height',\n 'chart/colors',\n 'headings/title',\n ];\n const invalidChart = [];\n\n // Some changes require a full chart re-render while others can force a\n // more limited re-render.\n const mustRender = function (invalidated, renderItems) {\n return true;\n // return renderItems.some(item => {\n // return invalidated.indexOf(item) !== -1 || invalidated.some(invItem => {\n // return invItem.indexOf(item) === 0;\n // });\n // });\n };\n\n if (mustRender(invalidated, invalidAll)) {\n window.__charts_fonts_loaded__ = undefined;\n resetRender(options, done, uploadFonts);\n return;\n }\n\n // Some items only force a re-render under specific conditions. For example,\n // changes to series name should only trigger a re-render if the legend is\n // enabled since that is the only place where series names appear.\n invalidated = invalidated.filter(item => {\n switch (item) {\n case 'chart/series-names':\n return options.legend.enabled;\n default:\n return true;\n }\n });\n\n const outerHeight = rendered.outerInfo.height;\n OuterChart.renderInvalidated(rendered, options, invalidated);\n\n if (outerHeight !== rendered.outerInfo.height ||\n mustRender(invalidated, invalidChart)) {\n // mustRenderColor(invalidated)) {\n destroyInner(rendered.inner);\n setTimeout(() => {\n renderInnerChart(options, rendered, rendered.outerInfo, done);\n }, 1);\n } else {\n InnerChart.renderInvalidated(rendered, options, invalidated);\n done(rendered.inner);\n }\n }\n}\n\n\n\n// The outer chart containers headlines and notes.\nfunction renderChart(options, done) {\n if (options.type === 'bar') {\n // options = truncateData(options, options.series);\n }\n let renderObj = { el: options.el, outer: null, inner: null, options };\n let chartObj = OuterChart.preRender(options);\n charts.push(renderObj);\n renderObj.outer = renderHighchart(options, chartObj, highchart => {\n let outer = OuterChart.postRender(highchart, options);\n renderObj.outerInfo = outer;\n if (outer.innerEl) {\n renderInnerChart(options, renderObj, outer, done);\n } else {\n done(null);\n }\n });\n}\n\n\n// The inner charts contains the actual chart.\nfunction renderInnerChart(options, renderObj, outer, done) {\n const outerY = outer.y;\n options.width = outer.width;\n const fontSize = parseFloat(options.styles.normal.fontSize);\n if (options.size.indexOf('thumb') !== 0) {\n options.height = outer.height - ((options.type === 'pie' || options.size === 'marketwatch-ZT') ? 0 : 16);\n }\n const offset = options.id === 'D' || options.id === 'appfeed' ? 12 : 8;\n options.height += offset;\n options.spacing = createInnerSpacing(options, outer.spacing);\n const chartObj = InnerChart.preRender(options);\n getHighchart(options, chartObj).then(highchart => {\n InnerChart.postRender(highchart, options);\n const hc = chartObj.chart.renderTo.querySelector('.highcharts-container');\n if (hc) {\n hc.style.position = 'absolute';\n hc.style.left = outer.x + 'px';\n hc.style.top = outerY + 'px';\n hc.style.overflow = 'visible';\n\n const svg = hc.querySelector('svg');\n svg.setAttribute('x', outer.x);\n svg.setAttribute('y', outerY);\n svg.setAttribute('height', Math.max(0, options.height + fontSize));\n\n if (options.size.indexOf('print') === 0) {\n // This causes tooltip issues, but needs to be done (at the time) for\n // image export and svg download:\n outer.innerEl.appendChild(svg);\n element.removeChild(hc);\n }\n }\n done(highchart);\n });\n}\n\nfunction getMaxTicksDecimals(axis) {\n let maxDecimals = 0;\n forAxisTicks(axis, (tick, pos) => {\n const decimal = tick.label.textStr.split('.')[1];\n if (decimal !== undefined) {\n maxDecimals = Math.max(decimal.length, maxDecimals);\n }\n });\n return maxDecimals;\n}\n\nfunction getHighchart(options, data) {\n return new Promise((resolve, reject) => resolve(renderHighchart(options, data)));\n}\n\n// async function getHighchart(options, data) {\n// const newChart = await renderHighchart(options, data);\n// return newChart;\n// }\n\nfunction createInnerSpacing(options, spacing) {\n const inner = spacing ? spacing.map(n => n) : [0, 0, 0, 0];\n const { annotations, axes, product, styles, id } = options;\n // const { items } = annotations;\n const { units, showRecessions, showUkRecessions } = axes;\n if (annotations/*items*/ && annotations/*items*/.length && (units.suffix.length > 2 || showRecessions || showUkRecessions)) {\n const isVideoGroup = id === 'video' || id === 'twitterVideo';\n const wsjHeight = isVideoGroup ?\n ANNOTATIONS_LINEHEIGHT_VIDEO : ANNOTATIONS_LINEHEIGHT;\n inner[0] += product === 'wsj' ? wsjHeight : parseFloat(styles.normal.lineHeight);\n inner[0] = Math.max(0, inner[0]);\n }\n return inner;\n}\n\n// Render a Highcharts chart via either the standalone Highcharts adapter or\n// jQuery, depending on the environment.\nfunction renderHighchart(options, data, postRender) {\n if (options.irregularDates) {\n return new HighChartsStock.stockChart(data, postRender);\n } else {\n return new Highcharts.chart(data, postRender);\n }\n}\n\nfunction destroy(el) {\n if (el) {\n const obj = getExistChart(el);\n if (obj.chart) {\n destroyOuter(obj.chart.outer, obj.chart.inner);\n }\n if (obj.index !== -1) {\n charts.splice(obj.index, 1);\n }\n } else {\n // charts.forEach(c => {\n // if (c.el) {\n // destroy(c.el);\n // }\n // });\n while (charts.length) {\n destroy(charts[0].el);\n }\n }\n}\n\nfunction destroyOuter(outer, inner) {\n destroyInner(inner);\n if (outer) {\n try {\n destroyCommon(outer);\n outer.destroy();\n } catch (e) {\n // Highcharts error.... because older version?\n // console.warn(e);\n }\n }\n}\n\nfunction destroyInner(inner) {\n if (inner) {\n try {\n destroyCommon(inner);\n inner.destroy();\n } catch (e) {\n // Usually exception caused by no innerEl !?!\n // console.warn(e);\n }\n }\n}\n\n// The version of Highcharts used at DJ does not do this automatically.\nfunction destroyCommon(chart) {\n if (chart.series) {\n chart.series.forEach(s => {\n try {\n s.update({\n enableMouseTracking: false\n });\n } catch (e) {\n //\n }\n });\n }\n}\n\n\nfunction getExistChart(el) {\n const existChartIndex = chartIndexOf(el);\n return {\n index: existChartIndex,\n chart: (existChartIndex !== -1) ? charts[existChartIndex] : null\n };\n}\n\nfunction chartIndexOf(el) {\n for (let i = 0; i < charts.length; i++) {\n if (charts[i].el === el) {\n return i;\n }\n }\n return -1;\n}\n\nexport default { render, destroy, datetime, chart: getExistChart };\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/index.js","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/is-iterable.js\n// module id = 220\n// module chunks = 0","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/is-iterable.js\n// module id = 221\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 222\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 223\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 224\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 225\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 226\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 227\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 228\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-absolute-index.js\n// module id = 229\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 230\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 231\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/core.is-iterable.js\n// module id = 232\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/get-iterator.js\n// module id = 233\n// module chunks = 0","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/get-iterator.js\n// module id = 234\n// module chunks = 0","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/core.get-iterator.js\n// module id = 235\n// module chunks = 0","import { fullYear } from './dateutils';\n\n\n/**\n * For quarterly data, fills in missing quarters, years, etc.\n */\nexport function normalize(items) {\n // Quarters, halves, years must be declared/set in first item of a year.\n let hasQ = items[0].quarter !== undefined;\n let hasH = items[0].half !== undefined;\n let hasY = items[0].year !== undefined;\n let FY = hasY && items[0].fiscalYear;\n\n // Dates are neither quarterly, halves, or fiscal years, so just return.\n if (!(hasQ || hasH || FY)) {\n return items;\n }\n\n let quarter = undefined;\n let half = undefined;\n let year = undefined;\n let currYear = undefined;\n items.forEach(item => {\n let prevQ = hasQ ? quarter : (hasH ? half : null);\n item.fiscalYear = FY;\n\n if (hasQ) {\n if (!item.quarter) {\n if (item.hasOwnProperty('month')) {\n // - 1 because getQuarter starts months from 0:\n item.quarter = getQuarter(item.month - 1);\n } else {\n quarter += 1;\n quarter %= 4;\n quarter = (quarter === 0) ? 4 : quarter;\n item.quarter = quarter + 'Q';\n }\n }\n quarter = +item.quarter.substring(0, 1);\n } else {\n item.quarter = undefined;\n }\n\n if (hasH) {\n if (!item.half) {\n half += 1;\n half %= 2;\n half = (half === 0) ? 2 : half;\n item.half = half + 'H';\n }\n half = +item.half.substring(0, 1)\n } else {\n item.half = undefined;\n }\n\n if (hasY) {\n if (item.year === undefined) {\n item.year = year;\n if ((hasQ && quarter <= prevQ) || (hasH && half <= prevQ)) {\n item.year += 1;\n }\n }\n item.year = year = fullYear(item.year);\n\n if (currYear !== year) {\n currYear = year;\n hasQ = item.quarter !== undefined;\n hasH = item.half !== undefined;\n }\n }\n });\n\n return items;\n}\n\n\n/**\n * Transforms items into a fiscal years by declaring fiscalYear to be true for\n * first item. Assumes normalize() will be called subsequently.\n */\nexport function makeFiscalYears(items) {\n items[0].fiscalYear = items[0].year !== undefined;\n return items;\n}\n\nexport function removeFiscalYears(items) {\n items.forEach(item => {\n item.fiscalYear = false;\n })\n return items;\n}\n\n\nexport function makeQuarterly(items) {\n items.forEach(item => {\n if (item.quarter === undefined && item.half === undefined &&\n item.month !== undefined) {\n item.quarter = getQuarter(item.month);\n }\n });\n return makeHalves(items);\n}\n\n\nfunction makeHalves(items) {\n let isHalf = false;\n let yearBlocks = {};\n\n // Separate dates into blocks of years.\n items.forEach(item => {\n if (item.quarter && item.year !== undefined) {\n yearBlocks[item.year] = yearBlocks[item.year] || [];\n if (item.month !== undefined) {\n yearBlocks[item.year].push(item);\n }\n }\n });\n\n // Transform any year blocks with 2 dates 6 months or more apart into halves.\n Object.keys(yearBlocks).forEach(key => {\n const block = yearBlocks[key];\n if (block.length === 2) {\n if (block[1].month - block[0].month >= 6) {\n isHalf = true;\n block[0].quarter = block[1].quarter = undefined;\n block[0].half = '1H';\n block[1].half = '2H';\n }\n }\n });\n\n if (isHalf) {\n // Data if halves, not quarters, so convert quarters in years with only\n // one quarter to a half.\n Object.keys(yearBlocks).forEach(key => {\n block = yearBlocks[key];\n if (block.length === 1) {\n block[0].quarter = undefined;\n block[0].half = getHalf(block[0].month);\n }\n });\n }\n return items;\n}\n\n\nexport function removeQuarterly(items) {\n items.forEach(item => {\n item.quarter = item.half = undefined;\n })\n return items;\n}\n\n\n/**\n * Converts a month index to a quarterly string value.\n * @private\n */\nexport function getQuarter(month) {\n if (month < 3) {\n return '1Q';\n } else if (month < 6) {\n return '2Q';\n } else if (month < 9) {\n return '3Q';\n } else {\n return '4Q';\n }\n}\n\n/**\n * Converts a month index to a half year string value.\n * @private\n */\nexport function getHalf(month) {\n return (month < 6) ? '1H' : '2H';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/quarterly.js","import highchartsVersion from './highchartsVersion';\nimport filterOptionsForSize from './filterOptionsForSize';\nimport processData from './processData';\nimport processCategories from './processCategories';\nimport processSeries from './processSeries';\nimport { processStyles } from '../style/';\nimport merge from 'lodash.merge';\nimport isPlainObject from 'lodash.isplainobject';\n\nexport default function processOptions(options, Highcharts) {\n removeOldProperties(options);\n options = copyOptions(options, Highcharts);\n options = filterOptionsForSize(options);\n options = processData(options);\n options = processCategories(options);\n options.styles = processStyles(options);\n options = processSeries(options);\n options.el = containerElement(options.el);\n //new added propeerties are handled here\n addNewProperties(options);\n return options;\n}\n\nfunction removeOldProperties(options){\n //if layout is bottom make it default;\n if(options.legend.layout === 'bottom') {\n options.legend.layout = 'default';\n };\n}\n\nfunction copyOptions(options, Highcharts) {\n return merge({}, {\n HIGHCHARTS_VERSION: highchartsVersion(Highcharts),\n id: options.el.getAttribute('id') || options.size,\n }, options);\n}\n\n// Prepares the container DOM element.\nfunction containerElement(el) {\n el = (typeof el === 'string') ? document.querySelector(el) : el;\n if (!el.querySelector('div.dj-chart-container')) {\n let divA = document.createElement('div');\n let divB = document.createElement('div');\n divA.className = 'dj-chart-container';\n divB.className = 'dj-chart-inner';\n el.appendChild(divA);\n el.appendChild(divB);\n }\n return el;\n}\n\nfunction addNewProperties(options){\n //promo fields\n options.headings.sourcePromo = options.headings.sourcePromo ? options.headings.sourcePromo : {text: options.headings.source.text, enabled: true};\n options.headings.notePromo = options.headings.notePromo ? options.headings.notePromo : {text: options.headings.note.text, enabled: true};\n options.headings.subdekPromo = options.headings.subdekPromo ? options.headings.subdekPromo : {text: options.headings.subdek.text, enabled: true};\n //plot lines\n options.plotLines = options.plotLines ? options.plotLines :\n [{ plotLineValue: '',\n plotLineDashStyle: 'solid',\n plotLineLabel: '',\n plotLineLabelPosition: 'top right',\n plotLineColor: '' }];\n //allowDecimals yAxis\n options.allowDecimals = options.allowDecimals === undefined ? true : options.allowDecimals;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/processOptions.js","export default function highchartsVersion(localHighcharts = null) {\n const parts = (localHighcharts || Highcharts).version.split(' ');\n for (let i = 0; i < parts.length; i++) {\n var n = parseFloat(parts[i]);\n if (!isNaN(n)) {\n return n;\n }\n }\n return 0;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/highchartsVersion.js","import * as format from './format';\nimport datetime from './datetime';\nimport { MONTHS } from './constants';\nimport { INTERVALS } from '../../ui/constants/axis-intervals';\nimport moment from 'moment';\nimport { checkArticle } from '../inner/axes-common';\n\n/**\n * Processes and optimizes the chart data before building categories and series.\n */\nexport default function processData(options) {\n if (options.categoriesAreDates) {\n options.dates = datetime.parse(options.categories, options);\n if ((!options.quarterlyResults || (options.quarterlyResults && options.series[0].data.length > 44)) && options.type !== 'bar') {\n const { fiscalYears } = options;\n const sortedDates = [...options.dates].sort((a, b) => a.value - b.value);\n options.xAxisTicks = {};\n const isArticle = checkArticle(options.size, options.product);\n const majorValue = isArticle ? options.majorTicksArticle : options.majorTicksPromo;\n const minorValue = isArticle ? options.minorTicksArticle : options.minorTicksPromo;\n const isDecade = majorValue === 'decade';\n const isHalfDecade = majorValue === 'halfDecade';\n const isCentury = majorValue === 'century';\n const longerThanYear = isDecade || isHalfDecade || isCentury;\n const major = longerThanYear ? 'year' : majorValue;\n const minor = minorValue === 'decade' ? 'year' : minorValue;\n const firstDate = sortedDates[0];\n const lastDate = sortedDates[sortedDates.length - 1];\n let majorTick = firstDate[major];\n let minorTick = firstDate[minor];\n let isFirstLabel = true;\n const interval = INTERVALS.find(({ name }) => name === majorValue).time;\n const tickPerColumn = options.dateSpan / interval >= options.series[0].data.length - 2;\n if (options.type === 'column' && tickPerColumn) {\n sortedDates.forEach(date => {\n const label = createLabel(date, majorValue, isFirstLabel, fiscalYears);\n options.xAxisTicks[date.value] = { label, type: 'major' };\n isFirstLabel = false;\n })\n } else {\n if (options.liveMarketData) {\n sortedDates.forEach((date, i) => {\n const needsMajor = date[major] !== majorTick &&\n (!longerThanYear ||\n isDecade && date.year % 10 === 0 ||\n isHalfDecade && date.year % 5 === 0 ||\n isCentury && date.year % 100 === 0);\n const needsMinor = date[minor] !== minorTick &&\n (options.type !== 'column' || isFirstLabel) &&\n (minorValue !== 'decade' ||\n minorValue === 'decade' && date.year % 10 === 0);\n if (needsMajor) {\n majorTick = date[major];\n minorTick = date[minor];\n const label = createLabel(date, majorValue, isFirstLabel, fiscalYears);\n options.xAxisTicks[date.value] = { label, type: 'major' };\n isFirstLabel = false;\n } else if (needsMinor) { \n minorTick = date[minor];\n const label = isFirstLabel ?\n createLabel(date, minorValue, isFirstLabel, fiscalYears)\n :\n '';\n options.xAxisTicks[date.value] = { type: 'minor', label }\n isFirstLabel = false; \n }\n });\n } else {\n let firstTick;\n let needsMajor; \n for (let i = 1; i < sortedDates.length; i++) {\n const date = sortedDates[i];\n needsMajor = date[major] !== majorTick &&\n (!longerThanYear ||\n isDecade && date.year % 10 === 0 ||\n isHalfDecade && date.year % 5 === 0 ||\n isCentury && date.year % 100 === 0);\n const needsMinor = date[minor] !== minorTick &&\n (options.type !== 'column' || isFirstLabel) &&\n (minorValue !== 'decade' ||\n minorValue === 'decade' && date.year % 10 === 0);\n if (needsMajor || needsMinor) {\n firstTick = date.value;\n break;\n }\n }\n const tick = moment.utc(firstTick);\n const lastMoment = moment.utc(lastDate.value);\n while (tick.isBefore(lastMoment) || tick.isSame(lastMoment)) {\n needsMajor = tick[major]() !== majorTick &&\n (!longerThanYear ||\n isDecade && tick.year() % 10 === 0 ||\n isHalfDecade && tick.year() % 5 === 0 ||\n isCentury && tick.year() % 100 === 0);\n if (needsMajor) {\n const label = createLabel(tick.toObject(), majorValue, isFirstLabel, fiscalYears);\n options.xAxisTicks[tick.valueOf()] = { label, type: 'major' };\n majorTick = tick[major]();\n isFirstLabel = false;\n } else if (options.type !== 'column' || isFirstLabel) {\n const label = isFirstLabel ?\n createLabel(tick.toObject(), minorValue, isFirstLabel, fiscalYears)\n :\n '';\n options.xAxisTicks[tick.valueOf()] = { label, type: 'minor' };\n isFirstLabel = false;\n }\n const [n, timeType] = getTimeType(minorValue);\n tick.add(n, timeType);\n isFirstLabel = false;\n }\n }\n const tickValues = Object.keys(options.xAxisTicks);\n const labeledTicks = tickValues.filter(key => options.xAxisTicks[key].label);\n if (labeledTicks.length === 1) {\n const lastTickValue = Math.max(...tickValues);\n const firstTickValue = Math.min(...tickValues);\n const lastTickDate = moment.utc(lastTickValue).toObject();\n const firstTickDate = moment.utc(firstTickValue).toObject();\n options.xAxisTicks[lastTickValue].label = createLabel(lastTickDate, minorValue, false);\n options.xAxisTicks[firstTickValue].label = createLabel(firstTickDate, minorValue, true, fiscalYears);\n } else if (!labeledTicks.length) {\n const label = createLabel(firstDate, minorValue, true, fiscalYears);\n options.xAxisTicks[firstDate.value] = { label, type: 'minor' };\n }\n }\n }\n\n options.datesAll = datetime.all(options.dates);\n if ((!options.quarterlyResults || (options.quarterlyResults && options.series[0].data.length > 44)) && options.type !== 'bar') {\n options.series = insertDates(options.series, options);\n }\n }\n if (options.type === 'pie' && options.optimizeDataOrder) {\n options = optimizePieData(options);\n } else if (options.categoriesAreDates && ((!options.quarterlyResults || (options.quarterlyResults && options.series[0].data.length > 44)))) {\n options = sortDataByDate(options);\n }\n if (options.axes && options.axes.units && options.axes.units.divisor !== \"none\") {\n options = divideYAxisValues(options);\n }\n return options;\n}\n\nfunction getTimeType(minorValue) {\n let timeType = minorValue;\n if (minorValue === 'date') timeType = 'day';\n if (minorValue === 'decade') timeType = 'year';\n const n = minorValue === 'decade' ?\n 10 : 1;\n return [n, timeType];\n}\n\nfunction createLabel(dateObj, type, isFirst, fiscalYears) {\n const year = dateObj.year || dateObj.years;\n const month = dateObj.month === undefined ? dateObj.months : dateObj.month;\n const date = dateObj.date;\n const hour = dateObj.hour || dateObj.hours;\n const minute = dateObj.minute || dateObj.minutes;\n const shortYear = year.toString().slice(2);\n let yearText = isFirst || shortYear === '00' ?\n year : `'${shortYear}`;\n if (isFirst && fiscalYears) yearText = 'FY' + yearText;\n const monthText = MONTHS[month];\n const quarterText = `${(month - (date === 1 ? 0 : 2)) / 3 + 1}Q`;\n switch (type) {\n case 'year':\n case 'decade':\n case 'halfDecade':\n case 'century':\n return yearText;\n case 'quarter':\n return month === 0 || month === 2 ?\n `${quarterText} ${yearText}`\n :\n quarterText\n case 'month':\n return month === 0 || isFirst ?\n `${monthText} ${yearText}`\n :\n monthText;\n case 'date':\n return `${monthText} ${date}`;\n case 'hour':\n const ampm = hour >= 12 ? 'p.m.' : 'a.m.';\n const formattedHour = hour === 12 ?\n 'noon' : `${hour % 12} ${ampm}`;\n return isFirst ? `${monthText} ${date}` : formattedHour;\n default:\n return '';\n }\n}\n\n// Insert date values into all data.\nfunction insertDates(data, options) {\n const proxyYears = getProxyYears(options);\n data.forEach(series => {\n series.data.forEach((item, index) => {\n let dateObj = options.dates[index];\n let date = new Date(dateObj.value);\n if (dateObj.year === undefined && proxyYears[index] !== undefined) {\n dateObj.yearIsProxy = true;\n date.setUTCFullYear(proxyYears[index]);\n }\n item.x = date.valueOf();\n });\n });\n return data;\n}\n\n\n// For data with dates with months but not years, create proxy years so the\n// dates can be sorted correctly.\nfunction getProxyYears(options) {\n let proxyYears = [];\n if (options.datesAll.month && !options.datesAll.year) {\n let year = (new Date()).getUTCFullYear();\n let month = undefined;\n for (let i = options.dates.length - 1; i >= 0; i--) {\n if (month !== undefined && month <= options.dates[i].month) {\n year -= 1;\n }\n proxyYears[i] = year;\n month = options.dates[i].month;\n }\n }\n return proxyYears;\n}\n\nfunction sortDataByDate(options) {\n options.series.forEach(item => {\n item.data.forEach((pt, index) => {\n pt.index = index;\n });\n if (item.data.every(point => point.x)) {\n item.data.sort((a, b) => {\n // if (a.x === undefined || b.x === undefined) {\n // return 0;\n // }\n return a.x - b.x;\n });\n }\n // item.data.forEach((pt, index) => {\n // pt.index = index;\n // });\n });\n return options;\n}\n\n// Data should be ordered like so:\n// 2 1\n// 3 10\n// 4 9\n// 5 8\n// 6 7\n// Also, category names get attached to points.\nfunction optimizePieData(options) {\n if (Array.isArray(options.categories)) {\n // Link each point to a category.\n options.series[0].data.forEach((point, index) => {\n point.name = options.categories[index];\n point.originalIndex = index;\n });\n }\n // Sort the data smallest to largest.\n options.series[0].data.sort(function (a, b) {\n if (a.y > b.y) {\n return 1;\n } else if (a.y < b.y) {\n return -1;\n }\n return 0;\n });\n // Take the largest data at the end and make it first.\n options.series[0].data.unshift(options.series[0].data.pop());\n return options;\n}\n\nfunction divideYAxisValues(options) {\n const divisor = format.getDivisor(options.axes.units.divisor);\n for (let i = 0; i < options.series.length; i++) {\n const yAxisValue = options.series[i].data;\n yAxisValue.forEach(value => {\n if (value.y !== null) {\n value.y = value.y / divisor;\n }\n });\n }\n return options;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/processData.js","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 240\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/from.js\n// module id = 241\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.from.js\n// module id = 242\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_create-property.js\n// module id = 243\n// module chunks = 0","import { TIMETYPES } from './marketdata';\n\nconst { Y, D, M } = TIMETYPES;\n\nexport const INTERVALS = [\n { name: 'century', time: 100 * Y },\n { name: 'decade', time: 10 * Y },\n { name: 'halfDecade', time: 5 * Y },\n { name: 'year', time: Y },\n { name: 'month', time: M },\n { name: 'date', time: D },\n { name: 'hour', time: 1000 * 60 * 60 },\n { name: 'minute', time: 1000 * 60 }\n]\n\nexport function getWidth(type, printWidth) {\n return type = 'Print' && printWidth > 114 ?\n printWidth : 300;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/ui/constants/axis-intervals.js","var map = {\n\t\"./af\": 68,\n\t\"./af.js\": 68,\n\t\"./ar\": 69,\n\t\"./ar-dz\": 70,\n\t\"./ar-dz.js\": 70,\n\t\"./ar-kw\": 71,\n\t\"./ar-kw.js\": 71,\n\t\"./ar-ly\": 72,\n\t\"./ar-ly.js\": 72,\n\t\"./ar-ma\": 73,\n\t\"./ar-ma.js\": 73,\n\t\"./ar-sa\": 74,\n\t\"./ar-sa.js\": 74,\n\t\"./ar-tn\": 75,\n\t\"./ar-tn.js\": 75,\n\t\"./ar.js\": 69,\n\t\"./az\": 76,\n\t\"./az.js\": 76,\n\t\"./be\": 77,\n\t\"./be.js\": 77,\n\t\"./bg\": 78,\n\t\"./bg.js\": 78,\n\t\"./bm\": 79,\n\t\"./bm.js\": 79,\n\t\"./bn\": 80,\n\t\"./bn.js\": 80,\n\t\"./bo\": 81,\n\t\"./bo.js\": 81,\n\t\"./br\": 82,\n\t\"./br.js\": 82,\n\t\"./bs\": 83,\n\t\"./bs.js\": 83,\n\t\"./ca\": 84,\n\t\"./ca.js\": 84,\n\t\"./cs\": 85,\n\t\"./cs.js\": 85,\n\t\"./cv\": 86,\n\t\"./cv.js\": 86,\n\t\"./cy\": 87,\n\t\"./cy.js\": 87,\n\t\"./da\": 88,\n\t\"./da.js\": 88,\n\t\"./de\": 89,\n\t\"./de-at\": 90,\n\t\"./de-at.js\": 90,\n\t\"./de-ch\": 91,\n\t\"./de-ch.js\": 91,\n\t\"./de.js\": 89,\n\t\"./dv\": 92,\n\t\"./dv.js\": 92,\n\t\"./el\": 93,\n\t\"./el.js\": 93,\n\t\"./en-au\": 94,\n\t\"./en-au.js\": 94,\n\t\"./en-ca\": 95,\n\t\"./en-ca.js\": 95,\n\t\"./en-gb\": 96,\n\t\"./en-gb.js\": 96,\n\t\"./en-ie\": 97,\n\t\"./en-ie.js\": 97,\n\t\"./en-il\": 98,\n\t\"./en-il.js\": 98,\n\t\"./en-in\": 99,\n\t\"./en-in.js\": 99,\n\t\"./en-nz\": 100,\n\t\"./en-nz.js\": 100,\n\t\"./en-sg\": 101,\n\t\"./en-sg.js\": 101,\n\t\"./eo\": 102,\n\t\"./eo.js\": 102,\n\t\"./es\": 103,\n\t\"./es-do\": 104,\n\t\"./es-do.js\": 104,\n\t\"./es-us\": 105,\n\t\"./es-us.js\": 105,\n\t\"./es.js\": 103,\n\t\"./et\": 106,\n\t\"./et.js\": 106,\n\t\"./eu\": 107,\n\t\"./eu.js\": 107,\n\t\"./fa\": 108,\n\t\"./fa.js\": 108,\n\t\"./fi\": 109,\n\t\"./fi.js\": 109,\n\t\"./fil\": 110,\n\t\"./fil.js\": 110,\n\t\"./fo\": 111,\n\t\"./fo.js\": 111,\n\t\"./fr\": 112,\n\t\"./fr-ca\": 113,\n\t\"./fr-ca.js\": 113,\n\t\"./fr-ch\": 114,\n\t\"./fr-ch.js\": 114,\n\t\"./fr.js\": 112,\n\t\"./fy\": 115,\n\t\"./fy.js\": 115,\n\t\"./ga\": 116,\n\t\"./ga.js\": 116,\n\t\"./gd\": 117,\n\t\"./gd.js\": 117,\n\t\"./gl\": 118,\n\t\"./gl.js\": 118,\n\t\"./gom-deva\": 119,\n\t\"./gom-deva.js\": 119,\n\t\"./gom-latn\": 120,\n\t\"./gom-latn.js\": 120,\n\t\"./gu\": 121,\n\t\"./gu.js\": 121,\n\t\"./he\": 122,\n\t\"./he.js\": 122,\n\t\"./hi\": 123,\n\t\"./hi.js\": 123,\n\t\"./hr\": 124,\n\t\"./hr.js\": 124,\n\t\"./hu\": 125,\n\t\"./hu.js\": 125,\n\t\"./hy-am\": 126,\n\t\"./hy-am.js\": 126,\n\t\"./id\": 127,\n\t\"./id.js\": 127,\n\t\"./is\": 128,\n\t\"./is.js\": 128,\n\t\"./it\": 129,\n\t\"./it-ch\": 130,\n\t\"./it-ch.js\": 130,\n\t\"./it.js\": 129,\n\t\"./ja\": 131,\n\t\"./ja.js\": 131,\n\t\"./jv\": 132,\n\t\"./jv.js\": 132,\n\t\"./ka\": 133,\n\t\"./ka.js\": 133,\n\t\"./kk\": 134,\n\t\"./kk.js\": 134,\n\t\"./km\": 135,\n\t\"./km.js\": 135,\n\t\"./kn\": 136,\n\t\"./kn.js\": 136,\n\t\"./ko\": 137,\n\t\"./ko.js\": 137,\n\t\"./ku\": 138,\n\t\"./ku.js\": 138,\n\t\"./ky\": 139,\n\t\"./ky.js\": 139,\n\t\"./lb\": 140,\n\t\"./lb.js\": 140,\n\t\"./lo\": 141,\n\t\"./lo.js\": 141,\n\t\"./lt\": 142,\n\t\"./lt.js\": 142,\n\t\"./lv\": 143,\n\t\"./lv.js\": 143,\n\t\"./me\": 144,\n\t\"./me.js\": 144,\n\t\"./mi\": 145,\n\t\"./mi.js\": 145,\n\t\"./mk\": 146,\n\t\"./mk.js\": 146,\n\t\"./ml\": 147,\n\t\"./ml.js\": 147,\n\t\"./mn\": 148,\n\t\"./mn.js\": 148,\n\t\"./mr\": 149,\n\t\"./mr.js\": 149,\n\t\"./ms\": 150,\n\t\"./ms-my\": 151,\n\t\"./ms-my.js\": 151,\n\t\"./ms.js\": 150,\n\t\"./mt\": 152,\n\t\"./mt.js\": 152,\n\t\"./my\": 153,\n\t\"./my.js\": 153,\n\t\"./nb\": 154,\n\t\"./nb.js\": 154,\n\t\"./ne\": 155,\n\t\"./ne.js\": 155,\n\t\"./nl\": 156,\n\t\"./nl-be\": 157,\n\t\"./nl-be.js\": 157,\n\t\"./nl.js\": 156,\n\t\"./nn\": 158,\n\t\"./nn.js\": 158,\n\t\"./oc-lnc\": 159,\n\t\"./oc-lnc.js\": 159,\n\t\"./pa-in\": 160,\n\t\"./pa-in.js\": 160,\n\t\"./pl\": 161,\n\t\"./pl.js\": 161,\n\t\"./pt\": 162,\n\t\"./pt-br\": 163,\n\t\"./pt-br.js\": 163,\n\t\"./pt.js\": 162,\n\t\"./ro\": 164,\n\t\"./ro.js\": 164,\n\t\"./ru\": 165,\n\t\"./ru.js\": 165,\n\t\"./sd\": 166,\n\t\"./sd.js\": 166,\n\t\"./se\": 167,\n\t\"./se.js\": 167,\n\t\"./si\": 168,\n\t\"./si.js\": 168,\n\t\"./sk\": 169,\n\t\"./sk.js\": 169,\n\t\"./sl\": 170,\n\t\"./sl.js\": 170,\n\t\"./sq\": 171,\n\t\"./sq.js\": 171,\n\t\"./sr\": 172,\n\t\"./sr-cyrl\": 173,\n\t\"./sr-cyrl.js\": 173,\n\t\"./sr.js\": 172,\n\t\"./ss\": 174,\n\t\"./ss.js\": 174,\n\t\"./sv\": 175,\n\t\"./sv.js\": 175,\n\t\"./sw\": 176,\n\t\"./sw.js\": 176,\n\t\"./ta\": 177,\n\t\"./ta.js\": 177,\n\t\"./te\": 178,\n\t\"./te.js\": 178,\n\t\"./tet\": 179,\n\t\"./tet.js\": 179,\n\t\"./tg\": 180,\n\t\"./tg.js\": 180,\n\t\"./th\": 181,\n\t\"./th.js\": 181,\n\t\"./tl-ph\": 182,\n\t\"./tl-ph.js\": 182,\n\t\"./tlh\": 183,\n\t\"./tlh.js\": 183,\n\t\"./tr\": 184,\n\t\"./tr.js\": 184,\n\t\"./tzl\": 185,\n\t\"./tzl.js\": 185,\n\t\"./tzm\": 186,\n\t\"./tzm-latn\": 187,\n\t\"./tzm-latn.js\": 187,\n\t\"./tzm.js\": 186,\n\t\"./ug-cn\": 188,\n\t\"./ug-cn.js\": 188,\n\t\"./uk\": 189,\n\t\"./uk.js\": 189,\n\t\"./ur\": 190,\n\t\"./ur.js\": 190,\n\t\"./uz\": 191,\n\t\"./uz-latn\": 192,\n\t\"./uz-latn.js\": 192,\n\t\"./uz.js\": 191,\n\t\"./vi\": 193,\n\t\"./vi.js\": 193,\n\t\"./x-pseudo\": 194,\n\t\"./x-pseudo.js\": 194,\n\t\"./yo\": 195,\n\t\"./yo.js\": 195,\n\t\"./zh-cn\": 196,\n\t\"./zh-cn.js\": 196,\n\t\"./zh-hk\": 197,\n\t\"./zh-hk.js\": 197,\n\t\"./zh-mo\": 198,\n\t\"./zh-mo.js\": 198,\n\t\"./zh-tw\": 199,\n\t\"./zh-tw.js\": 199\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 245;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = 245\n// module chunks = 0","import merge from 'lodash.merge';\nimport assign from 'lodash.assign';\n\n// Whitney SSm will be displayed in the SVG, but in the image export, the\n// fonts prepended below ('Whitney SSm Regular') will be used.\nconst BASE_STYLE = {\n color: {\n background: '#fff',\n normal: '#333',\n light: '#666',\n hed: '#333',\n dek: '#666',\n },\n font: {\n light: 'sans-serif',\n normal: 'sans-serif',\n semibold: 'sans-serif',\n bold: 'sans-serif'\n },\n weight: {\n light: 300,\n normal: 400,\n semibold: 600,\n bold: 700,\n },\n size: {\n small: '11px',\n normal: '13px',\n large: '16px',\n xlarge: '16px',\n },\n lineHeight: {\n small: '16px',\n normal: '16px',\n large: '20px',\n xlarge: '20px',\n },\n annotations: {},\n headline: {},\n title: {},\n description: {},\n notes: {},\n source: {},\n tick: {},\n axes: {\n zeroGridLine: {},\n label: {\n seriesAreNotDates: {},\n bar: {\n x: {},\n y: {}\n }\n },\n },\n legend: {},\n dataLabel: {}\n};\n\n\nexport function processStyles(options) {\n const STYLE = merge({}, BASE_STYLE);\n const { product, print, id } = options;\n if (__ALL__ || __WSJ__) {\n if (product === 'wsj') {\n if (print) {\n STYLE.annotations.fontSize = 7.5;\n STYLE.annotations.lineHeight = 10;\n STYLE.axes.label.bar.x.fontSize = 7.5;\n STYLE.axes.label.bar.x.fontWeight = 'normal';\n STYLE.axes.label.bar.x.lineHeight = 7.5;\n STYLE.axes.label.bar.y.fontSize = 7.5;\n STYLE.axes.label.bar.y.fontWeight = 'normal';\n STYLE.axes.label.bar.y.lineHeight = 7.5;\n STYLE.axes.label.color = '#666';\n STYLE.axes.label.fontSize = 7.5;\n STYLE.axes.label.fontWeight = 400;\n STYLE.axes.label.lineHeight = 7.5;\n STYLE.axes.label.seriesAreNotDates.fontSize = 7;\n STYLE.axes.label.seriesAreNotDates.fontWeight = 'normal';\n STYLE.axes.label.seriesAreNotDates.lineHeight = 8;\n STYLE.axes.zeroGridLine.color = '#333';\n STYLE.color.dek = '#000';\n STYLE.color.hed = '#000';\n STYLE.color.normal = '#000';\n STYLE.description.color = '#000';\n STYLE.description.fontFamily = '\"DJ5RetinaNr Medium\",sans-serif';\n STYLE.description.fontSize = 8.4;\n STYLE.description.fontWeight = 400;\n STYLE.description.lineHeight = 10;\n STYLE.font.bold = '\"DJ5RetinaNr Bold\",' + STYLE.font.bold;\n STYLE.font.light = '\"DJ5RetinaNr Light\",' + STYLE.font.light;\n STYLE.font.normal = '\"DJ5RetinaNr Medium\",' + STYLE.font.normal;\n STYLE.font.semibold = '\"DJ5RetinaNr Semibold\",' + STYLE.font.bold;\n STYLE.headline.color = '#000';\n STYLE.headline.fontFamily = '\"DJ5RetinaNr Bold\",sans-serif';\n STYLE.headline.fontSize = 12.6;\n STYLE.headline.fontWeight = 'normal';\n STYLE.headline.lineHeight = 14.4;\n STYLE.legend.fontSize = 7.5;\n STYLE.legend.fontWeight = 400;\n STYLE.legend.lineHeight = 'inherit';\n STYLE.legend.rectHeight = 6;\n STYLE.legend.rectWidth = 4;\n STYLE.lineHeight.large = 9.6;\n STYLE.lineHeight.normal = 8;\n STYLE.lineHeight.small = 7.2;\n STYLE.lineHeight.xlarge = 14.4;\n STYLE.size.large = 8.4;\n STYLE.size.normal = 7.5;\n STYLE.size.small = 6;\n STYLE.size.xlarge = 12.6;\n STYLE.tick.color = '#333';\n STYLE.tick.longSize = 5;\n STYLE.tick.mediumSize = 4;\n STYLE.tick.shortSize = 2;\n STYLE.tick.yOffset = 1;\n STYLE.weight.bold = 'normal';\n STYLE.weight.light = 'normal';\n STYLE.weight.normal = 'normal';\n STYLE.weight.semibold = 'normal';\n } else {\n STYLE.annotations.fontSize = '15px';\n STYLE.annotations.fontWeight = 300;\n STYLE.annotations.lineHeight = 20;\n STYLE.annotations.color = '#333';\n STYLE.annotations.fontFamily = '\"Retina\", sans-serif';\n // STYLE.axes.label.fontFamily = '\"Retina\", \"Retina Narrow\"'\n STYLE.axes.label.bar.x.fontSize = '15px';\n STYLE.axes.label.bar.x.fontWeight = 500;\n STYLE.axes.label.bar.x.lineHeight = '16px';\n STYLE.axes.label.bar.y.fontSize = '13px';\n STYLE.axes.label.bar.y.fontWeight = 300;\n STYLE.axes.label.bar.y.lineHeight = 20;\n STYLE.axes.label.color = '#333';\n // weirdly breaks if I set below to '13px' in firefox\n STYLE.axes.label.fontSize = 13;\n STYLE.axes.label.fontWeight = 300;\n STYLE.axes.label.lineHeight = 20;\n STYLE.axes.label.seriesAreNotDates.fontSize = '15px';\n STYLE.axes.label.seriesAreNotDates.fontWeight = 500;\n STYLE.axes.label.seriesAreNotDates.lineHeight = 18;\n STYLE.axes.label.seriesAreNotDates.fontFamily = '\"Retina\", sans-serif';\n STYLE.axes.zeroGridLine.color = '#333';\n STYLE.description.color = '#333';\n STYLE.description.fontFamily = '\"Retina\", sans-serif';\n STYLE.description.fontSize = '15px';\n STYLE.description.fontWeight = 300;\n STYLE.description.lineHeight = 20;\n STYLE.font.bold = '\"Retina\",' + STYLE.font.bold;\n STYLE.font.light = '\"Retina\",' + STYLE.font.light;\n STYLE.font.normal = '\"Retina\",' + STYLE.font.normal;\n STYLE.font.semibold = '\"Retina\",' + STYLE.font.bold;\n STYLE.weight.bold = 500;\n STYLE.weight.light = 300;\n STYLE.weight.normal = 300;\n STYLE.weight.semibold = 500;\n STYLE.title.fontFamily = 'Retina Narrow';\n STYLE.title.fontSize = '13px';\n STYLE.headline.color = '#333';\n STYLE.headline.fontFamily = \"Retina\";\n STYLE.headline.fontSize = '18px';\n STYLE.headline.fontWeight = 500;\n STYLE.headline.lineHeight = '20px';\n STYLE.legend.fontSize = '15px';\n STYLE.dataLabel.fontSize = '15px';\n STYLE.dataLabel.lineHeight = '18px';\n STYLE.legend.fontWeight = 300;\n STYLE.legend.lineHeight = 18;\n STYLE.legend.rectHeight = 10;\n STYLE.legend.rectWidth = 10;\n STYLE.notes.lineHeight = 14;\n STYLE.source.lineHeight = 14;\n STYLE.source.fontWeight = 300;\n STYLE.tick.color = '#333';\n STYLE.tick.longSize = 7;\n STYLE.tick.mediumSize = 5;\n STYLE.tick.shortSize = 3;\n STYLE.tick.yOffset = 1.5;\n STYLE.weight.bold = 500;\n STYLE.weight.semibold = 500;\n }\n if(id === 'video') {\n STYLE.annotations.fontSize = '24px';\n STYLE.annotations.color = '#fff';\n STYLE.annotations.fontWeight = 400;\n STYLE.annotations.fontFamily = 'Retina Narrow';\n STYLE.color.background = '#222222';\n STYLE.color.hed = '#fff';\n STYLE.axes.label.color = '#fff';\n STYLE.color.normal = '#fff';\n STYLE.headline.color = '#fff';\n STYLE.headline.fontSize = '60px';\n STYLE.headline.fontFamily = 'Retina Narrow';\n STYLE.headline.fontWeight = 'bold';\n STYLE.description.fontFamily = 'Retina Narrow';\n STYLE.description.fontWeight = 400;\n STYLE.description.fontSize = '35px';\n STYLE.description.color = '#fff';\n STYLE.legend.fontSize = '35px';\n STYLE.legend.fontWeight = 400;\n STYLE.axes.label.fontSize = 32;\n STYLE.axes.zeroGridLine.color = '#656565';\n STYLE.axes.label.seriesAreNotDates.fontSize = '32px';\n STYLE.axes.label.seriesAreNotDates.fontWeight = 'normal';\n STYLE.axes.label.seriesAreNotDates.lineHeight = 15;\n STYLE.font.normal = 'Retina Narrow';\n }\n if(id === 'twitterVideo'){\n STYLE.annotations.fontSize = '18px';\n STYLE.annotations.color = '#fff';\n STYLE.annotations.fontWeight = 300;\n STYLE.annotations.fontFamily = 'Retina Narrow';\n STYLE.color.background = '#222222';\n STYLE.color.hed = '#fff';\n STYLE.axes.label.color = '#fff';\n STYLE.color.normal = '#fff';\n STYLE.headline.color = '#fff';\n STYLE.headline.fontSize = '50px';\n STYLE.headline.fontFamily = 'Retina Narrow';\n STYLE.headline.fontWeight = 'bold';\n STYLE.description.fontSize = '35px';\n STYLE.description.color = '#fff';\n STYLE.legend.fontSize = '35px';\n STYLE.legend.fontWeight = 400;\n STYLE.axes.label.fontSize = 30;\n STYLE.axes.zeroGridLine.color = '#656565';\n STYLE.axes.label.seriesAreNotDates.fontSize = '30px';\n STYLE.axes.label.seriesAreNotDates.fontWeight = 'normal';\n STYLE.axes.label.seriesAreNotDates.lineHeight = 15;\n STYLE.font.normal = 'Retina Narrow';\n }\n }\n }\n if (__ALL__ || __BARRONS__) {\n if (product === 'barrons') {\n if (print) {\n STYLE.annotations.color = '#000';\n STYLE.annotations.fontSize = '12px';\n STYLE.color.normal = '#000000';\n STYLE.color.light = '#000000';\n STYLE.color.hed = '#000000';\n STYLE.color.dek = '#000000';\n STYLE.font.light = 'Aileron,' + STYLE.font.light;\n STYLE.font.normal = 'Aileron,' + STYLE.font.normal;\n STYLE.font.semibold = 'Aileron,' + STYLE.font.bold;\n STYLE.font.bold = 'Aileron,' + STYLE.font.bold;\n STYLE.size.small = '12px';\n STYLE.size.normal = '12px';\n STYLE.size.large = '9.5px';\n STYLE.size.xlarge = '14px';\n STYLE.lineHeight.large = '12.5px';\n STYLE.lineHeight.xlarge = '15.5px';\n } else {\n STYLE.annotations.color = '#6F7878';\n STYLE.annotations.fontSize = '14px';\n STYLE.annotations.lineHeight = 21;\n STYLE.annotations.fontFamily = 'Aileron,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n STYLE.color.normal = '#6F7878';\n STYLE.color.light = '#6F7878';\n STYLE.color.hed = '#001E20';\n STYLE.color.dek = '#001E20';\n STYLE.font.light = 'Aileron,' + STYLE.font.light;\n STYLE.font.normal = 'Aileron,' + STYLE.font.normal;\n STYLE.font.semibold = 'Aileron,' + STYLE.font.bold;\n STYLE.font.bold = 'Aileron,' + STYLE.font.bold;\n STYLE.title.fontFamily = 'Aileron';\n STYLE.title.fontSize = '13px';\n STYLE.size.small = '14px';\n STYLE.lineHeight.small = '18px';\n STYLE.size.normal = '14px';\n STYLE.lineHeight.normal = '21px';\n STYLE.size.large = '16px';\n STYLE.lineHeight.large = '21px';\n STYLE.size.xlarge = '22px';\n STYLE.lineHeight.xlarge = '24px';\n }\n }\n }\n // if (__ALL__ || __KNEWZ__) {\n if (product === 'knewz') {\n STYLE.annotations.color = '#6F7878';\n STYLE.annotations.fontSize = '14px';\n STYLE.annotations.lineHeight = 21;\n STYLE.annotations.fontFamily = 'Aileron,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n // STYLE.color.background = 'transparent';\n STYLE.color.normal = '#000000';\n STYLE.color.light = '#000000';\n STYLE.color.hed = '#000000';\n STYLE.legend.color = '#4A4A4A';\n STYLE.legend.fontWeight = 400;\n STYLE.legend.fontSize = '10px';\n STYLE.legend.lineHeight = '12px';\n STYLE.axes.label.fontSize = '12px'\n STYLE.axes.label.lineHeight = '16px'\n STYLE.color.dek = '#000000';\n STYLE.font.light = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.font.normal = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.font.semibold = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.font.bold = 'Ringside Condensed,' + STYLE.font.bold;\n STYLE.title.fontFamily = 'Ringside Condensed';\n STYLE.title.fontSize = '13px';\n STYLE.size.small = '14px';\n STYLE.lineHeight.small = '18px';\n STYLE.size.normal = '14px';\n STYLE.lineHeight.normal = '21px';\n STYLE.size.large = '16px';\n STYLE.lineHeight.large = '21px';\n STYLE.size.xlarge = '22px';\n STYLE.lineHeight.xlarge = '24px';\n }\n // }\n if (__ALL__ || __FINANCIALNEWS__) {\n if (product === 'financialnews') {\n STYLE.annotations.color = '#70808C';\n STYLE.annotations.fontSize = '12px';\n STYLE.annotations.lineHeight = '17px';\n STYLE.annotations.fontFamily = 'Theinhardt,TheinhardtRegular,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n STYLE.color.background = 'transparent';\n STYLE.color.normal = '#70808C';\n STYLE.color.light = '#70808C';\n STYLE.color.hed = '#005879';\n STYLE.color.dek = '#4D6172';\n STYLE.font.light = 'Theinhardt,TheinhardtRegular,' + STYLE.font.light;\n STYLE.font.normal = 'Theinhardt,TheinhardtRegular,' + STYLE.font.normal;\n STYLE.font.semibold = 'Theinhardt,TheinhardtBold,' + STYLE.font.bold;\n STYLE.font.bold = 'Theinhardt,TheinhardtBold,' + STYLE.font.bold;\n STYLE.size.small = '12px';\n STYLE.size.normal = '12px';\n STYLE.size.large = '16px';\n STYLE.size.xlarge = '24px';\n STYLE.title.fontFamily = 'Theinhardt,TheinhardtRegular';\n STYLE.title.fontSize = '13px';\n STYLE.lineHeight.small = '17px';\n STYLE.lineHeight.normal = '17px';\n STYLE.lineHeight.large = '22px';\n STYLE.lineHeight.xlarge = '28px';\n }\n }\n if (__ALL__ || __MARKETWATCH__) {\n if (product === 'marketwatch') {\n STYLE.font.light = 'Lato,' + STYLE.font.light;\n STYLE.font.normal = 'Lato,' + STYLE.font.normal;\n STYLE.font.semibold = 'Lato,' + STYLE.font.semibold;\n STYLE.font.bold = 'Lato,' + STYLE.font.bold;\n STYLE.font.axes = 'Lato,' + 'sans-serif';\n STYLE.title.fontFamily = 'Lato';\n STYLE.title.fontSize = '13px';\n STYLE.weight.light = 300;\n STYLE.weight.normal = 400;\n STYLE.weight.semibold = 700;\n STYLE.weight.bold = 900;\n STYLE.weight.axes = 700;\n STYLE.annotations.color = '#555';\n STYLE.annotations.fontSize = '13px';\n STYLE.annotations.lineHeight = '19px';\n STYLE.annotations.fontFamily = 'Lato,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n STYLE.color.normal = '#555';\n STYLE.color.dek = '#555';\n STYLE.color.light = '#555';\n STYLE.color.axes = '#555';\n STYLE.size.small = '13px';\n STYLE.size.axes = '13px';\n STYLE.size.normal = '13px';\n STYLE.size.large = '16px';\n STYLE.size.xlarge = '28px';\n STYLE.lineHeight.small = '19px';\n STYLE.lineHeight.normal = '19px';\n STYLE.lineHeight.large = '25px';\n STYLE.lineHeight.xlarge = '34px';\n }\n }\n if (product === 'mansionglobal') {\n STYLE.font.light = '\"Whitney SSm Light\",\"Whitney SSm\",Whitney,' + STYLE.font.light;\n STYLE.font.normal = '\"Whitney SSm Regular\",\"Whitney SSm\",Whitney,' + STYLE.font.normal;\n STYLE.font.normal = '\"Whitney SSm Book\",\"Whitney SSm\",Whitney,' + STYLE.font.normal;\n STYLE.font.semibold = '\"Whitney SSm Semi-Bold\",\"Whitney SSm\",Whitney,' + STYLE.font.semibold;\n STYLE.font.bold = '\"Whitney SSm Semi-Bold\",\"Whitney SSm\",Whitney,' + STYLE.font.bold;\n STYLE.title.fontFamily = 'Whitney SSm Regular\",\"Whitney SSm\",Whitney';\n STYLE.title.fontSize = '13px';\n STYLE.weight.light = 400;\n STYLE.weight.normal = 400;\n STYLE.weight.semibold = 600;\n STYLE.weight.semibold = 500;\n STYLE.weight.bold = 700;\n STYLE.color.light = '#666';\n STYLE.color.normal = '#333';\n STYLE.size.small = '14px';\n STYLE.size.normal = '14px';\n STYLE.size.large = '18px';\n STYLE.size.xlarge = '24px';\n STYLE.lineHeight.xlarge = '28px';\n STYLE.lineHeight.dek = '22px';\n STYLE.lineHeight.subdek = '22px';\n STYLE.notes.color = '#777';\n STYLE.axes.color = '#777';\n STYLE.legend.color = '#777';\n STYLE.annotations.color = '#777';\n STYLE.annotations.fontSize = '14px';\n STYLE.annotations.lineHeight = '16px';\n STYLE.annotations.fontFamily = '\"Whitney SSm Regular\",\"Whitney SSm\",Whitney,' + STYLE.font.normal;\n STYLE.annotations.fontWeight = 400;\n }\n STYLE.base = {\n fontFamily: STYLE.font.normal,\n fontSize: STYLE.size.normal,\n fontWeight: STYLE.weight.normal,\n lineHeight: STYLE.lineHeight.normal,\n color: STYLE.color.normal,\n };\n STYLE.get = (size, options) => {\n const sizeStyle = STYLE[size];\n return sizeStyle ? assign({}, sizeStyle, options) : STYLE.base;\n };\n STYLE.small = STYLE.get('base', {\n fontSize: STYLE.size.small,\n lineHeight: STYLE.lineHeight.small\n });\n STYLE.normal = STYLE.get('base');\n STYLE.large = STYLE.get('base', {\n fontSize: STYLE.size.large,\n lineHeight: STYLE.lineHeight.large\n });\n STYLE.xlarge = STYLE.get('base', {\n fontSize: STYLE.size.xlarge,\n lineHeight: STYLE.lineHeight.xlarge\n });\n return STYLE;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/style/index.js","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash.isplainobject/index.js\n// module id = 247\n// module chunks = 0","import WebFont from 'webfontloader';\n\n\n/**\n * Preload fonts depending on product. If fonts are *not* preloaded, then\n * line breaks fail (because line breaks are determined with a fallback font).\n */\nexport function fonts(options, complete) {\n const { product, print } = options;\n const info = fontsInfo(product, print);\n let interval = 0;\n if (info === true) {\n complete();\n } else {\n const status = window.__charts_fonts_status__ =\n (typeof window.__charts_fonts_status__ === 'object') ?\n window.__charts_fonts_status__ : {};\n\n const callbackComplete = () => {\n status[info.product] = 'complete';\n complete();\n }\n\n const checkComplete = () => {\n if (status[info.product] === 'complete') {\n clearInterval(interval);\n complete();\n }\n }\n\n const checkQueued = () => {\n if (!areFontsLoading()) {\n clearInterval(interval);\n if (status[info.product] === 'complete') {\n complete();\n } else {\n status[info.product] = 'loading';\n WebFont.load({\n custom: info,\n active: callbackComplete,\n inactive: callbackComplete,\n });\n }\n }\n }\n\n if (status[info.product] === 'loading') {\n interval = setInterval(checkComplete, 1);\n } else if (status[info.product] === 'complete') {\n complete();\n } else {\n interval = setInterval(checkQueued, 1);\n }\n }\n}\n\nfunction areFontsLoading() {\n const status = window.__charts_fonts_status__;\n if (status) {\n const keys = Object.keys(status);\n for (let i = 0; i < keys.length; i++) {\n if (status[keys[i]] === 'loading') {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction fontsInfo(product, print = false) {\n if (__ALL__ || __WSJ__) {\n if (product === 'wsj') {\n if (print) {\n return {\n product: 'wsj-print',\n families: [\n // 'Retina Standard Narrow:n3,n4,n6',\n // 'DJ5EscrowCond:n6'\n 'DJ5RetinaNr Light',\n 'DJ5RetinaNr Medium',\n 'DJ5RetinaNr Semibold',\n 'DJ5RetinaNr Bold',\n 'DJ5RetinaAgReg Medium',\n 'DJ5EscrowCond',\n ],\n urls: ['/assets/css/wsj-print.css']\n };\n } \n else {\n return {\n product,\n families: ['Retina', 'Retina Narrow'],\n urls: ['https://www.wsj.com/fonts/retina.css']\n };\n }\n } \n }\n if (__ALL__ || __BARRONS__) {\n if (product === 'barrons') {\n return {\n product,\n families: ['Aileron'],\n urls: ['https://www.barrons.com/fonts/Aileron.css']\n };\n }\n }\n if (__ALL__ || __FINANCIALNEWS__) {\n if (product === 'financialnews') {\n return {\n product,\n families: ['Publico:n6','Theinhardt:n3,n4,n6'],\n urls: ['https://fonts.wsj.net/PublicoMedium.css', 'https://s3.amazonaws.com/fonts.wsj.net/Theinhardt.css']\n };\n }\n }\n if (__ALL__ || __MARKETWATCH__) {\n if (product === 'marketwatch') {\n return {\n product,\n families: ['Lato'],\n urls: ['https://fonts.googleapis.com/css?family=Lato:400,700,900']\n };\n }\n }\n if (__ALL__ || __MANSIONGLOBAL__) {\n if (product === 'mansionglobal') {\n return {\n product,\n families: ['Whitney SSm A:n4,n6,n7'],\n urls: ['https://www.mansionglobal.com/fonts/442807/457709E0582EC35B6.css']\n };\n }\n }\n // if (__ALL__ || __KNEWZ__) {\n if (product === 'knewz') {\n return {\n product,\n families: ['Ringside Condensed'],\n urls: ['https://knewz.com/wp-content/themes/wp-knewz-theme/knewz-fonts.css']\n };\n }\n // }\n return true;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/style/preload.js","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 249\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 250\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 251\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 252\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 253\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 254\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 255\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 256\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 257\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopd.js\n// module id = 258\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 259\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 260\n// module chunks = 0","/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.o=b||a;this.c=this.o.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&(\"style\"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}\nfunction w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(\" \").replace(/\\s+/g,\" \").replace(/^\\s+|\\s+$/,\"\")}function y(a,b){for(var c=a.className.split(/\\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}\nfunction ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,\"link\",{rel:\"stylesheet\",href:b,media:\"all\"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error(\"Stylesheet failed to load\");d()}):setTimeout(function(){e=!0;d()},0);u(a,\"head\",b)}\nfunction A(a,b,c,d){var e=a.c.getElementsByTagName(\"head\")[0];if(e){var f=t(a,\"script\",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&\"loaded\"!=this.readyState&&\"complete\"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,\"HEAD\"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error(\"Script load timeout\")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||\"-\"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\\W_]+/g,\"\").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a=\"n\";var c=(b||\"n4\").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+\" \"+(a.f+\"00\")+\" 300px \"+I(a.c)}function I(a){var b=[];a=a.split(/,\\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['\"]/g,\"\");-1!=d.indexOf(\" \")||/^\\d/.test(d)?b.push(\"'\"+d+\"'\"):b.push(d)}return b.join(\",\")}function J(a){return a.a+a.f}function H(a){var b=\"normal\";\"o\"===a.a?b=\"oblique\":\"i\"===a.a&&(b=\"italic\");return b}\nfunction ga(a){var b=4,c=\"n\",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.o.document.documentElement;this.h=b;this.a=new F(\"-\");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c(\"wf\",\"loading\")]);K(a,\"loading\")}function L(a){if(a.g){var b=y(a.f,a.a.c(\"wf\",\"active\")),c=[],d=[a.a.c(\"wf\",\"loading\")];b||c.push(a.a.c(\"wf\",\"inactive\"));w(a.f,c,d)}K(a,\"inactive\")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,\"span\",{\"aria-hidden\":\"true\"},this.f)}function N(a){u(a.c,\"body\",a.a)}function O(a){return\"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\"+I(a.c)+\";\"+(\"font-style:\"+H(a)+\";font-weight:\"+(a.f+\"00\")+\";\")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||\"BESbswy\";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+\",serif\",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+\",sans-serif\",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G(\"serif\",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G(\"sans-serif\",J(this.a));a=\nO(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:\"serif\",C:\"sans-serif\"},S=null;function T(){if(null===S){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f[\"sans-serif\"]=this.m.a.offsetWidth;this.A=q();U(this)};\nfunction la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f[\"sans-serif\"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c(\"wf\",a.c,J(a).toString(),\"active\")],[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\"),b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\")]);K(b,\"fontactive\",a);this.m=!0;na(this)};\nW.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c(\"wf\",a.c,J(a).toString(),\"active\")),d=[],e=[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\")];c||d.push(b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\"));w(b.f,d,e)}K(b,\"fontinactive\",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c(\"wf\",\"active\")],[a.a.c(\"wf\",\"loading\"),a.a.c(\"wf\",\"inactive\")]),K(a,\"active\")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};\nfunction qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c(\"wf\",x.c,J(x).toString(),\"loading\")]);K(r,\"fontloading\",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);\nX=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}\nra.prototype.load=function(a){function b(){if(f[\"__mti_fntLst\"+d]){var c=f[\"__mti_fntLst\"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||\"https://fast.fonts.net/jsapi\")+\"/\"+d+\".js\"+(e?\"?v=\"+e:\"\"),function(e){e?a([]):(f[\"__MonotypeConfiguration__\"+\nd]=function(){return c.a},b())}).id=\"__MonotypeAPIScript__\"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(\":\"),d[1])for(var h=d[1].split(\",\"),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b){a?this.c=a:this.c=ua;this.a=[];this.f=[];this.g=b||\"\"}var ua=\"https://fonts.googleapis.com/css\";function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(\":\");3==e.length&&a.f.push(e.pop());var f=\"\";2==e.length&&\"\"!=e[1]&&(f=\":\");a.a.push(e.join(f))}}\nfunction wa(a){if(0==a.a.length)throw Error(\"No fonts to load!\");if(-1!=a.c.indexOf(\"kit=\"))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,\"+\"));b=a.c+\"?family=\"+c.join(\"%7C\");0<a.f.length&&(b+=\"&subset=\"+a.f.join(\",\"));0<a.g.length&&(b+=\"&text=\"+encodeURIComponent(a.g));return b};function ya(a){this.f=a;this.a=[];this.c={}}\nvar za={latin:\"BESbswy\",\"latin-ext\":\"\\u00e7\\u00f6\\u00fc\\u011f\\u015f\",cyrillic:\"\\u0439\\u044f\\u0416\",greek:\"\\u03b1\\u03b2\\u03a3\",khmer:\"\\u1780\\u1781\\u1782\",Hanuman:\"\\u1780\\u1781\\u1782\"},Aa={thin:\"1\",extralight:\"2\",\"extra-light\":\"2\",ultralight:\"2\",\"ultra-light\":\"2\",light:\"3\",regular:\"4\",book:\"4\",medium:\"5\",\"semi-bold\":\"6\",semibold:\"6\",\"demi-bold\":\"6\",demibold:\"6\",bold:\"7\",\"extra-bold\":\"8\",extrabold:\"8\",\"ultra-bold\":\"8\",ultrabold:\"8\",black:\"9\",heavy:\"9\",l:\"3\",r:\"4\",b:\"7\"},Ba={i:\"i\",italic:\"i\",n:\"n\",normal:\"n\"},\nCa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;\nfunction Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(\":\"),e=d[0].replace(/\\+/g,\" \"),f=[\"n4\"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(\",\"),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k=\"\";else{k=n[2];k=null==k||\"\"==k?\"n\":Ba[k];n=n[1];if(null==n||\"\"==n)n=\"4\";else var r=Aa[n],n=r?r:isNaN(n)?\"4\":n.substr(0,1);k=[k,n].join(\"\")}}else k=\"\";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(\",\"):\ng,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||\"https://use.typekit.net\")+\"/\"+b+\".js\",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga(\"font-weight:\"+h.weight+\";font-style:\"+h.style)))}a(d.a)},A(this.c,(this.f.api||\"https://f.fontdeck.com/s/css/js/\")+ea(this.c)+\"/\"+b+\".js\",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};\"function\"===typeof define&&define.amd?define(function(){return Z}):\"undefined\"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/webfontloader/webfontloader.js\n// module id = 261\n// module chunks = 0","/**\n * The Outer Chart renders headlines, footnotes, and credits.\n */\nimport spacing from './spacing';\nimport * as headlines from './headlines';\nimport * as notes from './notes';\nimport * as element from '../util/element';\n\nconst MARGIN = 12;\nconst BARRONS_PRINT_MARGIN = 0;\n\nexport function preRender(options) {\n // const hasAccessibility = options.headings.accessibilityDescription.text;\n // const defaultDescription = hasAccessibility ? hasAccessibility : options.headings.subdek.text || options.headings.title.text;\n\n let data = {\n exporting: {\n enabled: false,\n },\n // accessibility: {\n // description: defaultDescription\n // },\n chart: {\n renderTo: options.el.querySelector('.dj-chart-container'),\n width: options.width,\n height: options.height,\n reflow: false,\n backgroundColor: 'transparent',\n backgroundColor: options.styles.color.background\n },\n title: { text: null },\n subtitle: { text: null },\n credits: { enabled: false },\n navigator: { enabled: false }\n };\n if (options.size.indexOf('thumb') !== 0) {\n data.chart.spacing = spacing(options);\n data = headlines.preRender(data, options);\n data = notes.preRender(data, options);\n }\n return data;\n}\n\n\nexport function postRender(highchart, options) {\n if (options.size.indexOf('thumb') === 0) {\n return {\n innerEl: createInnerEl(highchart, options),\n x: 0,\n y: 0,\n width: options.width,\n height: options.height,\n info: null,\n };\n } else {\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n highchart.renderer.rect(0, 3.2, options.width, 0.5, 0)\n .attr({\n 'fill': '#000',\n })\n .add();\n // let y = 0;\n // while (y < options.height) {\n // highchart.renderer.rect(0, y, options.width, 0.5, 0)\n // .attr({\n // 'fill': 'rgba(255, 0, 0, 0.25)',\n // })\n // .add();\n // y += 9.6;\n // }\n }\n }\n const isSmallMW = options.product === 'marketwatch' && (options.size === 'marketwatch-ZR' ||\n options.size === 'marketwatch-ZT' || options.size === 'thumb-marketwatch-MA');\n const info = {\n headlines: headlines.postRender(highchart, options),\n notes: notes.postRender(highchart, options),\n }\n let margin;\n if (options.size === 'print-wsj' || info.headlines.y <= 0) {\n margin = 0;\n } else if (options.id === 'print-barrons') {\n margin = BARRONS_PRINT_MARGIN;\n } else {\n margin = MARGIN;\n }\n const heightOffset = options.id === 'print-barrons' ? 12 : 0;\n return {\n innerEl: createInnerEl(highchart, options),\n x: highchart.spacing[3],\n y: info.headlines.y + margin,\n width: options.width - highchart.spacing[1] - highchart.spacing[3],\n height: info.notes.y - info.headlines.y - margin + heightOffset,\n spacing: [0, 0, 0, 0],\n info,\n };\n }\n}\n\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n const updateH = headlines.renderInvalidated(rendered, options, invalidated);\n const updateN = notes.renderInvalidated(rendered, options, invalidated);\n let margin = (rendered.outerInfo.info &&\n rendered.outerInfo.info.headlines.y > 0) ? MARGIN : 0;\n if (__WSJ__) {\n margin = (options.size === 'print-wsj') ? 0 : margin;\n }\n if (updateH) {\n rendered.outerInfo.y += margin;\n }\n if (updateH || updateN) {\n rendered.outerInfo.height = 0;\n if (rendered.outerInfo.info) {\n rendered.outerInfo.height = rendered.outerInfo.info.notes.y -\n rendered.outerInfo.info.headlines.y - margin;\n }\n }\n }\n}\n\n\n\nfunction getTopHeight(highchart, options) {\n const svg = options.el.querySelector('svg');\n const svgY = svg.getBoundingClientRect().top;\n if (highchart.subtitle) {\n const srect = highchart.subtitle.element.getBoundingClientRect();\n return srect.top - svgY + srect.height;\n } else if (highchart.title) {\n const trect = highchart.title.element.getBoundingClientRect();\n return trect.top - svgY + trect.height;\n }\n return highchart.spacing[0];\n}\n\nfunction getBottomHeight(highchart, options) {\n return highchart.spacing[2];\n}\n\n// Cleans up the outer SVG, removing unnecessary `g` elements, and creates a\n// `g` element specifically for the inner chart SVG.\nfunction createInnerEl(highchart, options) {\n const svg = options.el.querySelector('svg');\n if (svg) {\n const gEls = svg.querySelectorAll('g');\n for (let i = 0; i < gEls.length; i++) {\n element.removeChild(gEls[i]);\n }\n return highchart.renderer.g('djchart').add().element;\n }\n return null;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/outer/index.js","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/define-property.js\n// module id = 263\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 264\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 265\n// module chunks = 0","\nfunction spacing(options) {\n switch (options.size) {\n case 'fon':\n return [30, 15, 0, 15];\n case 'soc':\n return [10, 10, 10, 10];\n case 'appfeed':\n return [3, 0, 3, 0];\n case 'video':\n return [120, 220, 140, 120];\n case 'twitterVideo':\n return [40, 60, 60, 60];\n }\n\n const left = options.type === 'scatter' ? 1 : 0;\n if (options.product === 'knewz') {\n return [10, 10, 10, 10]\n }\n return [0, 0, 0, 0];\n}\n\nexport default spacing;\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/outer/spacing.js","import TEXT_RULES, { getBestRule } from './text-rules';\nimport { removeEl } from './util';\n\nconst PRINT_LINE = 9.6;\n\nexport function preRender(data, options) {\n return data;\n}\n\n\nexport function postRender(highchart, options) {\n const R = getRules(options);\n const result = {\n hed: null,\n dek: null,\n subdek: null,\n x: highchart.spacing[3],\n y: highchart.spacing[0],\n width: (options.width - highchart.spacing[3] - highchart.spacing[1]) + 'px'\n };\n if (R.HED) {\n writeHed(options, highchart.renderer, R.HEADINGS.title.text, result);\n }\n if ((R.HED && R.DEK) || (R.HED && R.SUBDEK)) {\n result.y += getMargin(options, true);\n if (options.product === 'wsj' && !options.print) result.y -= 3;\n }\n if (R.DEK) {\n writeDek(options, highchart.renderer, R.HEADINGS.dek.text, result, R);\n }\n if ((R.HED && R.DEK && R.SUBDEK) || (R.DEK && R.SUBDEK)) {\n result.y += getMargin(options, false);\n if (options.product === 'wsj' && !options.print) result.y += 9;\n }\n if (R.SUBDEK && !R.RULE.subdekPromo) {\n writeChartLabel(options, highchart.renderer, R.HEADINGS.subdek.text, result, R);\n }\n if(R.SUBDEKPROMO){\n writeChartLabel(options, highchart.renderer, R.HEADINGS.subdekPromo.text, result, R);\n }\n if (R.WSJ_PRINT) {\n result.y = Math.max(result.y, PRINT_LINE);\n }\n return result;\n}\n\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n if (!rendered.outerInfo.info) {\n return false;\n }\n const R = getRules(options);\n const result = rendered.outerInfo.info.headlines;\n const invalidHed = invalidated.indexOf('headings/title') !== -1;\n const invalidDek = invalidated.indexOf('headings/dek') !== -1 ||\n (R.DEK && invalidHed && !result.hed);\n\n if ((invalidHed || invalidDek) && !!rendered.outer.spacing) {\n result.y = rendered.outer.spacing[0];\n\n // If previously there was no HED but now there is, rewrite the DEK to\n // force the face to change from bold to normal.\n const invalidDek2 = R.DEK && invalidHed && !result.hed;\n\n if (invalidHed) {\n removeEl(result.hed);\n if (R.HED) {\n writeHed(options, rendered.outer.renderer, R.HEADINGS.title.text, result);\n } else {\n result.hed = null;\n }\n } else if (result.hed) {\n result.y = result.hed.bottom;\n }\n\n if (R.HED && R.DEK) {\n result.y += R.WSJ_PRINT ? WSJ_PRINT_HED_MARGIN : HED_AND_DEK_MARGIN;\n }\n\n if (invalidDek) {\n removeEl(result.dek);\n if (R.DEK) {\n writeDek(options, rendered.outer.renderer, R.HEADINGS.dek.text, result, R.HED);\n } else {\n result.dek = null;\n }\n } else if (result.dek) {\n if (result.y !== result.dek.y) {\n let delta = result.y - result.dek.y;\n if (result.dek.el) {\n let nowY = +result.dek.el.element.getAttribute('y');\n result.dek.el.element.setAttribute('y', nowY + delta);\n }\n result.dek.y += delta;\n result.dek.bottom += delta;\n }\n result.y = result.dek.bottom;\n }\n\n rendered.outerInfo.y = result.y;\n if (R.WSJ_PRINT) {\n rendered.outerInfo.y = Math.max(rendered.outerInfo.y, PRINT_LINE);\n }\n return true;\n }\n return false;\n }\n}\n\n\nfunction getRules(options) {\n const RULE = getBestRule(options.size);\n const HEADINGS = options.headings;\n const HED = HEADINGS.title.text && HEADINGS.title.enabled && RULE.title;\n const DEK = HEADINGS.dek.text && HEADINGS.dek.enabled && RULE.dek;\n const SUBDEK = HEADINGS.subdek.text && HEADINGS.subdek.enabled && RULE.subdek;\n const SUBDEKPROMO = HEADINGS.subdekPromo.text && HEADINGS.subdekPromo.enabled && RULE.subdekPromo;\n const WSJ_PRINT = options.size === 'print-wsj';\n return { RULE, HEADINGS, HED, DEK, SUBDEK, SUBDEKPROMO, WSJ_PRINT };\n}\n\n\nfunction writeHed(options, renderer, text, result) {\n const css = getCss(options, 'hed', result.width);\n let wsjPrint = false;\n if (__WSJ__) {\n if (wsjPrint = options.size === 'print-wsj') {\n result.y = PRINT_LINE * 2;\n }\n }\n let financialnewsFirstLetterJ = false;\n if (__FINANCIALNEWS__) {\n if (text.charAt(0) === \"J\") {\n financialnewsFirstLetterJ = true;\n }\n }\n const [formattedText, offset] = options.id === 'video' || options.id === 'twitterVideo' ?\n [text.toUpperCase(), options.legend.enabled ? 0 : 15]\n :\n [text, 0];\n let obj = writeText(financialnewsFirstLetterJ, renderer, formattedText, result.x, result.y, css, wsjPrint, 'charts-headline', options.id);\n result.hed = {\n x: result.x,\n y: result.y,\n width: result.width,\n offsetY: obj.offsetY,\n bottom: obj.bottom,\n el: obj.el\n };\n result.y = obj.bottom + offset;\n}\n\nfunction writeDek(options, renderer, text, result, rules) {\n let financialnewsFirstLetterJ = false;\n if (__WSJ__) {\n if (!rules.HED && options.size === 'print-wsj') {\n result.y = PRINT_LINE;\n }\n }\n let css = getCss(options, 'dek', result.width);\n if (options.product === 'mansionglobal') {\n css.lineHeight = options.styles.lineHeight.dek;\n }\n let obj = writeText(financialnewsFirstLetterJ, renderer, text, result.x, result.y, css, null, 'charts-dek');\n result.dek = {\n x: result.x,\n y: result.y,\n width: result.width,\n offsetY: obj.offsetY,\n bottom: obj.bottom,\n el: obj.el\n };\n const offset = options.id === 'video' || options.id === 'twitterVideo' ? 30 : 0;\n result.y = obj.bottom + offset;\n}\n\nfunction writeChartLabel(options, renderer, text, result, rules) {\n let financialnewsFirstLetterJ = false;\n if (__WSJ__) {\n if (!rules.HED && !rules.DEK && options.size === 'print-wsj') {\n result.y = PRINT_LINE;\n }\n }\n let css = getCss(options, 'subdek', result.width, rules);\n if (options.product === 'mansionglobal') {\n css.lineHeight = options.styles.lineHeight.subdek;\n css.fontWeight = options.styles.weight.semibold;\n }\n let obj = writeText(financialnewsFirstLetterJ, renderer, text, result.x, result.y, css, null, 'charts-dek', options.id, options.legend.enabled);\n result.chartLabel = {\n x: result.x,\n y: result.y,\n width: result.width,\n offsetY: obj.offsetY,\n bottom: obj.bottom,\n el: obj.el\n };\n result.y = obj.bottom;\n}\n\nfunction getCss(options, headline, width, rules) {\n const size = headline === 'hed' ? 'xlarge' : 'large';\n const type = headline === 'dek' ? headline : 'hed';\n const boldSubdek = headline === 'subdek' && (rules.DEK || (!rules.HED && !rules.DEK));\n const subdekSameAsDek = headline === 'subdek' && rules.HED && rules.SUBDEK && !rules.DEK;\n const weight = boldSubdek ? 'bold' : 'normal';\n let fontFamily = options.styles.font.normal;\n let fontWeight = options.styles.weight[weight];\n let color = options.styles.color[type];\n // HED\n if (headline === 'hed') {\n if (options.product === 'financialnews') {\n fontFamily = '\"Publico Text\",\"Publico\"';\n fontWeight = options.styles.weight.bold;\n } else if (options.product === 'marketwatch') {\n color = '#666F7D';\n fontFamily = options.styles.font.bold;\n fontWeight = options.styles.weight.bold;\n } else if (options.product === 'mansionglobal') {\n fontFamily = '\"Whitney SSm Medium\", \"Whitney SSm\"';\n fontWeight = options.styles.weight.semibold;\n } else if (options.product === 'heatstreet') {\n fontFamily = options.styles.font.semibold;\n fontWeight = options.styles.weight.semibold;\n } else if (options.product === 'barrons') {\n fontFamily = options.styles.font.bold;\n fontWeight = options.styles.weight.bold;\n } else if (options.product === 'knewz') {\n fontWeight = 700;\n }\n }\n if (headline === 'subdek' && options.product === 'knewz') {\n if (options.headings.title.text) {\n fontWeight = 500;\n } else {\n fontWeight = 700;\n }\n \n }\n\n let css = options.styles.get(size, {\n fontFamily,\n fontWeight,\n color,\n width,\n });\n\n if (options.id === 'print-barrons') {\n switch (headline) {\n case 'hed':\n css.fontWeight = 700;\n break;\n case 'dek':\n css.fontWeight = 700;\n break;\n case 'subdek':\n css.fontSize = '7.5px';\n css.fontWeight = 300;\n css.lineHeight = '9px';\n break;\n }\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n const prop = headline === 'hed' ? 'headline' : 'description';\n const colorProp = type === 'dek' ? 'description' : 'headline';\n const printSubdek = options.print && headline === 'subdek';\n css.fontFamily = printSubdek && boldSubdek ? options.styles.headline.fontFamily : options.styles[prop].fontFamily;\n css.color = options.id === 'appfeed' ? '#222' : options.styles[colorProp].color;\n css.fontSize = headline === 'subdek' && !options.print ? '15px' : options.styles[prop].fontSize;\n if (options.size === 'appfeed') {\n css.fontSize = headline === 'subdek' ? '16px' : options.styles[prop].fontSize;\n }\n css.fontWeight = headline === 'subdek' ? css.fontWeight : options.styles[prop].fontWeight;\n css.lineHeight = options.styles[prop].lineHeight;\n\n if (subdekSameAsDek && headline === 'subdek') {\n css.fontSize = options.styles['description'].fontSize;\n css.lineHeight = options.styles['description'].lineHeight;\n css.fontWeight = options.styles['description'].fontWeight;\n css.color = options.styles['description'].color;\n }\n }\n }\n return css;\n}\n\n// Renders a generic block of text (either hed, dek or subdek) and returns the element\n// and its bottom y.\nfunction writeText(financialnewsFirstLetterJ, renderer, text, x, y, css, skipOffsetY = false, className = '', id, legendEnabled) {\n let offsetY;\n if (skipOffsetY) offsetY = 0;\n else offsetY = parseInt(css.fontSize, 10);\n let addOffset = offsetY;\n if (legendEnabled) {\n if (id === 'D') addOffset = 2;\n if (id === 'appfeed') addOffset = 12;\n }\n if (financialnewsFirstLetterJ) {\n x = 3;\n };\n const el = renderer.text(text)\n .css(css)\n .attr({ x, y: y + offsetY, class: className })\n .add();\n const tspan = el.element.querySelectorAll('tspan');\n const lines = tspan && tspan.length ? tspan.length : 1;\n const lineHeight = parseInt(css.lineHeight, 10);\n const bottom = y + addOffset + lineHeight * (lines - 1);\n return { el, offsetY, bottom };\n}\n\nfunction getMargin(options, hed) {\n switch (options.id) {\n case 'print-wsj':\n return hed ? 4 : 7;\n case 'print-barrons':\n return hed ? 3.5 : 2;\n default:\n return hed ? 8 : 14;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/outer/headlines.js","import TEXT_RULES, { getBestRule } from './text-rules';\nimport { removeEl } from './util';\nimport { MAX_4U_WIDTH } from '../data/constants';\n\n\nexport function preRender(data, options) {\n return data;\n}\n\nexport function postRender(highchart, options) {\n const R = getRules(options);\n const renderer = highchart.renderer;\n let result = {\n tagline: null,\n source: null,\n note: null,\n date: null,\n x: highchart.spacing[3],\n y: getStartY(highchart, options),\n width: (options.width - highchart.spacing[3] - highchart.spacing[1]) + 'px'\n };\n const sText = R.headings.source.text;\n const nText = R.headings.note.text;\n const spText = R.headings.sourcePromo.text;\n const npText = R.headings.notePromo.text;\n\n const sourceText = getText(options.id, sText);\n const noteText = getText(options.id, nText);\n const sourcePromoText = getText(options.id, spText);\n const notePromoText = getText(options.id, npText);\n if (R.tagline) {\n const wsjPrintTagline = isWsjPrintTagline(options.size, 'tagline');\n const taglineAlign = getTaglineAlign(options);\n if (wsjPrintTagline) {\n result.y = options.height;\n }\n result = writeSection(R.headings, options, 'tagline', renderer, R.headings.tagline.text,\n result, taglineAlign);\n if (wsjPrintTagline) {\n result.y = options.height - 9.2;\n }\n }\n if (R.source && !R.rule.sourcePromo) {\n result = writeSection(R.headings, options, 'source', renderer, sourceText, result, getSourceAlign(options));\n }\n if (R.note && !R.rule.notePromo) {\n result = writeSection(R.headings, options, 'note', renderer, noteText, result, getNoteAlign(options));\n }\n if (R.sourcePromo){\n result = writeSection(R.headings, options, 'source', renderer, sourcePromoText, result, getSourceAlign(options));\n }\n if (R.notePromo) {\n result = writeSection(R.headings, options, 'note', renderer, notePromoText, result, getNoteAlign(options));\n }\n if (R.date) {\n result = writeSection(R.headings, options, 'date', renderer, R.headings.date.text, result, 'right');\n }\n\n return result;\n}\n\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n const invalidSections = {};\n ['tagline', 'source', 'note', 'date'].forEach(section =>\n invalidSections[section] = invalidated.includes(`headings/${section}`))\n // const invalidTagline = invalidated.indexOf('headings/tagline') !== -1;\n // const invalidSource = invalidated.indexOf('headings/source') !== -1;\n // const invalidNote = invalidated.indexOf('headings/note') !== -1;\n if (Object.values(invalidSections).includes(true)) {\n const R = getRules(options);\n const renderer = rendered.outer.renderer;\n let info = rendered.outerInfo.info;\n if (!info) return true;\n info = info.notes;\n info.y = getStartY(rendered.outer, options);\n\n const taglineAlign = getTaglineAlign(options);\n if (invalidSections.tagline) {\n removeEl(info.tagline);\n if (R.tagline) {\n info = writeSection(R.headings, options, 'tagline', renderer,\n R.headings.tagline.text, info, taglineAlign);\n } else {\n info.tagline = null;\n }\n } else if (info.tagline) {\n info.y = info.tagline.top;\n }\n ['source', 'note', 'date'].forEach(section => invalidSection(section, invalidSections[section]));\n return true;\n }\n return false;\n }\n}\n\nfunction invalidSection(type, isInvalid) {\n if (isInvalid) {\n removeEl(info[type]);\n if (R[type]) {\n info = writeSection(R.headings, options, type, renderer, R.headings[type].text, info);\n } else {\n info[type] = null;\n }\n } else if (info[type]) {\n if (info.y !== info[type].y) {\n let delta = info.y - info[type].y;\n if (info[type].el) {\n let nowY = +info[type].el.element.getAttribute('y');\n info[type].el.element.setAttribute('y', nowY + delta);\n }\n info[type].y += delta;\n info[type].top += delta;\n }\n info.y = info[type].top;\n }\n}\n\n\nfunction getRules(options) {\n const rule = getBestRule(options.size);\n const { headings } = options;\n const rules = { rule, headings };\n ['tagline', 'source', 'note', 'date', 'notePromo', 'sourcePromo'].forEach(section => {\n const { text, enabled } = headings[section];\n rules[section] = text && enabled && rule[section];\n })\n return rules;\n}\n\n\nfunction writeSection(headings, options, section, renderer, text, result, align = 'left') {\n result[section] = {\n x: result.x,\n y: result.y,\n width: result.width,\n top: result.y,\n el: null\n };\n const obj = writeText(options, renderer, text, result, align, section);\n result[section].el = obj.el;\n result[section].top = obj.top;\n result.y = obj.top;\n if ((section === 'source' || section === 'note') && options.product === 'wsj' && !options.print) {\n if (result.note && !headings.source.text) result.y -= 3;\n if (!headings.note.text && result.source) result.y -= 3;\n if (headings.note.text && headings.source.text && section === 'source') {\n result.y -= 1;\n } \n }\n if (options.id === 'video'){\n result.y -= 28;\n } \n if(options.id === 'twitterVideo') {\n if(!headings.note.text) result.y -= 28;\n else result.y -=6;\n }\n if (section === 'date') {\n const isWsjSmall = options.id === 'appfeed' || options.id === 'E' || options.id === 'D';\n const wsjOffset = isWsjSmall ? 0 : 9;\n const offset = options.product === 'wsj' ? wsjOffset : 2;\n result.y += offset;\n }\n\n return result;\n}\n\n\n// Renders a generic block of text (tagline or source) and returns the element\n// and its top y.\nfunction writeText(options, renderer, text, result, align = 'left', section = null) {\n const offsetTagline = options.print ? 1 : 0;\n const css = options.styles.get('small', {\n width: result.width\n });\n if (options.product === 'wsj' && !options.print) {\n css.fontSize = '13px';\n css.lineHeight = 17;\n }\n if (options.id === 'video'|| options.id === 'twitterVideo') {\n css.fontSize = '24px';\n css.fontFamily = 'Retina Narrow';\n css.color = '#CCC';\n css.fontWeight = 500;\n }\n if (options.product === 'mansionglobal') {\n css.color = options.styles.notes.color;\n }\n if (options.product === 'knewz') {\n css.fontWeight = 900;\n css.color = '#8C8C8C'\n }\n if (__WSJ__) {\n if (isWsjPrintTagline(options.size, section)) {\n css.fontFamily = \"'DJ5EscrowCond Semibold'\";\n css.fontSize = 6.6;\n } else if (options.size === 'print-wsj') {\n css.fontFamily = \"'DJ5RetinaAgReg Medium'\";\n }\n if (options.product === 'wsj' && (section === 'source' || section === 'note')) {\n css.color = '#666';\n }\n }\n if (options.id === 'print-barrons') {\n css.fontSize = 6;\n }\n if (section === 'date' && options.product === 'wsj') {\n css.fontFamily = 'Retina Narrow';\n }\n\n const resultY = options.id==='twitterVideo' ? 477 : (result.y - offsetTagline);\n const resultX = getResultX(options, align, result);\n const el = renderer.text(text)\n .css(css)\n .attr({\n x: resultX,\n y: resultY,\n align\n })\n .add();\n\n const lines = el.element.querySelectorAll('tspan').length;\n const lineHeight = parseFloat(css.lineHeight);\n const height = lines * lineHeight;\n let yPx = result.y;\n if (lines > 1) {\n yPx = +el.element.getAttribute('y');\n yPx -= (lines - 1) * lineHeight;\n el.element.setAttribute('y', yPx);\n }\n return {\n el,\n y: yPx,\n top: yPx - lineHeight\n };\n}\n\nfunction getSourceAlign(options) {\n return options.product === 'marketwatch' || options.id === 'print-barrons' ? 'right' : 'left';\n}\n\nfunction getNoteAlign(options) {\n switch(options.id){\n case 'print-barrons':\n case 'twitterVideo':\n return 'right';\n default: 'left'\n }\n}\n\nfunction getTaglineAlign(options) {\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n return (options.sizes['print-wsj'].columns >= 2) ? 'right' : 'left';\n } else {\n return (options.width > MAX_4U_WIDTH) ? 'right' : 'left';\n }\n }\n if (!__WSJ__) {\n return (options.width > MAX_4U_WIDTH) ? 'right' : 'left';\n }\n}\n\nfunction getStartY(highchart, options) {\n return options.height - highchart.spacing[2] - yOffset(options);\n}\n\n// Lifts text just enough so that bottom line shows tails.\nfunction yOffset(options) {\n return Math.round((parseFloat(options.styles.lineHeight.small) -\n parseFloat(options.styles.size.small)) * 0.5);\n}\n\nfunction isWsjPrintTagline(size, section) {\n if (__WSJ__) {\n return size === 'print-wsj' && section === 'tagline';\n }\n return false;\n}\n\nfunction getResultX(options, align, result){\n if(options.id==='twitterVideo' && align === 'right') return parseFloat(result.width) + 60;\n if(align === 'left') return result.x;\n return parseFloat(result.width); \n}\n\nfunction getText(id, text){\n return (id === 'twitterVideo' || id === 'video') && text ? text.toUpperCase(): text;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/outer/notes.js","import { chartSpacing, addSpaceForAnnotations } from './spacing';\nimport * as chart from './chart';\nimport * as legend from './legend';\nimport * as tooltips from './tooltips';\nimport * as axes from './axes';\nimport * as recessions from './recessions';\nimport * as defs from './defs';\nimport * as annotationsPre from './annotations-prerender';\nimport * as annotationsPost from './annotations-postrender';\nimport * as plotLines from './plotLines-postrender';\n/**\n * The Inner Chart renders the actual chart sans headlines or footnotes.\n */\nexport function preRender(options) {\n // const hasAccessibility = options.headings.accessibilityDescription.text;\n // const defaultDescription = hasAccessibility ? hasAccessibility : options.headings.subdek.text || options.headings.title.text;\n const isVideo = options.id === 'video' || options.id ==='twitterVideo';\n\n let data = {\n exporting: {\n enabled: false,\n },\n // accessibility: {\n // description: defaultDescription\n // },\n series: options.series,\n chart: {\n reflow: false,\n type: options.type,\n width: options.width,\n height: options.height,\n style: isVideo ? JSON.stringify(options.styles.base):options.styles.base,\n renderTo: options.el.querySelector('.dj-chart-inner'),\n backgroundColor: 'transparent',\n panning: false,\n // backgroundColor: 'rgba(255, 0, 0, 0.1)'\n },\n credits: { enabled: false },\n title: { text: null },\n legend: { enabled: false },\n annotations: [],\n defs: {},\n plotOptions: {},\n xAxis: {},\n yAxis: {}\n };\n if (options.irregularDates) {\n data.scrollbar = { enabled: false };\n data.rangeSelector = { enabled: false };\n data.navigator = { enabled: false };\n }\n data.chart.spacing = chartSpacing(options);\n const isSmallMW = options.product === 'marketwatch' && (options.size === 'marketwatch-ZR' || options.size === 'marketwatch-ZT' || options.size === 'thumb-marketwatch-MA');\n // only invoke addSpaceForAnnotations for charts that can't be found in isSmallMW variable\n // if (!isSmallMW) {\n // data.chart.spacing = addSpaceForAnnotations(data.chart.spacing, options);\n // }\n \n data.plotOptions[options.type] = {};\n data = chart.preRender(data, options);\n const isZR = options.product === 'marketwatch' && options.size === 'marketwatch-ZR';\n if (isZR || options.size.indexOf('thumb') === 0) {\n data.plotOptions.series = data.plotOptions.series || {};\n data.plotOptions.series.enableMouseTracking = false;\n data.xAxis.labels = data.xAxis.labels || {};\n data.yAxis.labels = data.yAxis.labels || {};\n data.yAxis.labels.enabled = false;\n if (isZR) data.xAxis.labels.enabled = false;\n data.xAxis.tickWidth = 0;\n data.yAxis.title = data.yAxis.title || {};\n data.yAxis.title.text = '';\n data.yAxis.gridLineWidth = data.xAxis.gridLineWidth = 0;\n data.xAxis.lineWidth = 0;\n data.chart.spacingTop = 0;\n } else {\n data = legend.preRender(data, options);\n data = tooltips.preRender(data, options);\n data = axes.preRender(data, options);\n data = recessions.preRender(data, options);\n if (options.annotations.length) {\n defs.preRender(data, options);\n annotationsPre.preRender(data, options);\n }\n }\n if (options.size === 'marketwatch-ZT') {\n data.xAxis.labels.enabled = false;\n data.chart.spacingBottom = 20;\n }\n if (options.irregularDates) {\n data.xAxis.crosshair = { width: 0 };\n data.yAxis.showLastLabel = true;\n }\n return data;\n}\n\nexport function postRender(highchart, options) {\n chart.postRender(highchart, options);\n const isZR = options.product === 'marketwatch' && options.size === 'marketwatch-ZR';\n if (options.size.indexOf('thumb') === 0 || isZR || options.size === 'marketwatch-ZT') {\n if (__MARKETWATCH__) {\n if (options.type !== 'bar') {\n // unclear what this did\n let topEl = options.el.lastChild.lastChild.lastChild.lastChild;\n let firstChildThumb = topEl.firstChild;\n let secondChildThumb = topEl.lastChild;\n // firstChildThumb.transform.baseVal.getItem(0).setTranslate(0, 0);\n // firstChildThumb.transform.baseVal.getItem(0).setTranslate(0, 0);\n }\n }\n } else {\n // if (options.type !== 'scatter') {\n legend.postRender(highchart, options);\n // }\n \n tooltips.postRender(highchart, options);\n axes.postRender(highchart, options);\n recessions.postRender(highchart, options);\n if(options.plotLines[0].plotLineValue) plotLines.postRender(highchart, options);\n if (options.type !== 'pie' && options.type !== 'bar' && options.annotations.length) {\n annotationsPost.postRender(highchart, options);\n }\n }\n}\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n chart.renderInvalidated(rendered, options, invalidated);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/index.js","import { ANNOTATIONS_SPACE, ANNOTATIONS_SPACE_PRINT } from '../data/constants';\n\nexport function chartSpacing(options) {\n const spacing = [16, 0, 0, 0];// formerly 28 for index 2\n if (options.type === 'bar') {\n spacing[0] += options.print ? -28 : -40;// This makes no sense to me.\n if (options.print) {\n spacing[2] = 0;\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n if (options.print) {\n spacing[0] = -12;\n spacing[2] = 4;\n } else {\n spacing[0] = -20;\n spacing[2] = 8;\n }\n }\n }\n\n if (options.horizontalBarType === 'aboveBar' || options.horizontalBarType === 'noScaleAndLeft') {\n spacing[0] = 5;\n spacing[2] = 0;\n }\n } else {\n if (__MARKETWATCH__) {\n if (options.product === 'marketwatch') {\n const hasExtraLegendSpacingRight = (options.legend.layout === 'right' && options.legend.enabled) ? true : false;\n const isLineOrColumn = options.type === 'line' || options.type === 'column';\n const isThumb = (options.size === 'thumb-marketwatch-MA' || options.size === 'marketwatch-ZR' || options.size === 'marketwatch-ZT');\n const hasSuffix = options.axes.units.suffix;\n const hasPrefix = options.axes.units.prefix;\n if (isThumb) {\n return spacing;\n }\n if (isLineOrColumn && options.annotations.length) {\n // if no annotations spacing[0] should equal 6\n spacing[0] = options.annotations.length === 0 ? 6 : 16;\n }\n if (isLineOrColumn && !options.annotations.length) {\n spacing[0] = 6;\n }\n if (isLineOrColumn && !hasExtraLegendSpacingRight) {\n const givenSuffix = hasSuffix === \" thousand\" || hasSuffix === \"%\" || hasSuffix === \" hundred\" || hasSuffix === \" billion\" || hasSuffix === \" trillion\" || hasSuffix === \" cents\";\n if (hasSuffix) {\n if (hasSuffix === \" thousand\") {\n spacing[1] = 70;\n }\n if (hasSuffix === \"%\") {\n spacing[1] = 20;\n }\n if (hasSuffix === \" hundred\") {\n spacing[1] = 60;\n }\n if (hasSuffix === \" billion\") {\n spacing[1] = 45;\n }\n if (hasSuffix === \" trillion\") {\n spacing[1] = 50;\n }\n if (hasSuffix === \" cents\") {\n spacing[1] = 40;\n }\n if (!givenSuffix) {\n let suffixLength = hasSuffix.length;\n let thousand = \" thousand\";\n let thousandLength = thousand.length;\n let diff = suffixLength - thousandLength;\n if (suffixLength === thousandLength) {\n spacing[1] = 70;\n }\n if (suffixLength > thousandLength) {\n spacing[1] = 70 + (diff * 7);\n } else {\n spacing[1] = 70 + (diff * 5)\n }\n }\n } else {\n spacing[1] = 6;\n }\n if (hasPrefix && !options.axes.units.formatDecimals && !hasExtraLegendSpacingRight) {\n spacing[1] = spacing[1] + 5;\n }\n }\n }\n\n }\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews' && (options.type === 'line' || options.type === 'column')) {\n spacing[1] = options.type === 'column' && options.axes.units.suffix === '%' ? 15 : 6;\n\n }\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n spacing[0] = 15;\n spacing[2] = 9;\n\n if (options.print) {\n spacing[0] = 14;\n spacing[2] = 9;\n }\n\n if(options.id === '16u'){\n spacing[0] = 16;\n spacing[2] = 10;\n }\n\n if(options.id === '12u'){\n spacing[0] = 14;\n spacing[2] = 10;\n }\n\n if(options.id === '8u'){\n spacing[0] = 13;\n spacing[2] = 7;\n }\n\n if(options.id === '4u'){\n spacing[0] = 12;\n spacing[2] = 6;\n }\n\n if (options.id === 'D' || options.id === 'appfeed') {\n spacing[0] = options.legend.enabled &&\n (options.legend.layout === 'default' || options.legend.layout === 'top') ?\n 0 : 12;\n spacing[2] = 0;\n }\n\n if (options.id === 'E') {\n spacing[0] = 10;\n spacing[2] = 0;\n }\n\n if (options.annotations.length) {\n spacing[0] = 18;\n }\n if(options.id === 'video' || options.id === 'twitterVideo'){\n if(options.id === 'twitterVideo'){\n spacing[0] = 35;\n } else {\n spacing[0] = options.legend.enabled ? 20 : 35;\n }\n spacing[2] = 0;\n\n }\n }\n }\n\n if (options.type === 'scatter' && (options.product === 'wsj' || options.product === 'mansionglobal' || options.product === 'barrons')) {\n spacing[1] = 6;\n }\n\n if (options.type === 'scatter' && (options.product === 'financialnews' || options.product === 'marketwatch')) {\n spacing[3] = 6;\n }\n\n if (options.type === 'line' && options.product === 'marketwatch') {\n spacing[3] = 6;\n }\n\n }\n if (Array.isArray(options.spacing)) {\n spacing.forEach((n, i) => {\n spacing[i] += options.spacing[i] || 0;\n });\n }\n return spacing;\n}\n\n// DO NOT USE! Interferes with legend spacing!!!\nexport function chartMargin(options) {\n return [null, null, null, null];\n // const lineHeight = parseFloat(options.styles.normal.lineHeight);\n // const margin = [lineHeight, null, lineHeight * 2, null];\n // if (options.type === 'bar') {\n // margin[0] += 4;\n // margin[2] -= lineHeight;\n // }\n // return margin;\n // if (options.size.indexOf('thumb') === 0) {\n // return margin;\n // }\n // margin[0] = 16;\n // margin[2] = 28;\n // if (options.quarterlyResults && options.series[0].data.length <= 9) {\n // margin[2] += parseFloat(options.styles.normal.fontSize);\n // }\n // if (__WSJ__) {\n // if (options.size === 'print-wsj') {\n // if (options.type === 'bar') {\n // margin[0] = 14;\n // margin[2] = 0;\n // } else {\n // margin[0] = 12;\n // margin[2] = 8;\n // }\n // }\n // }\n // return margin;\n}\n\n// export function addSpaceForAnnotations(spacing, options) {\n// if (possibleAnnotationsSpacing(options)/* && needsAnnotationSpace(options)*/) {\n// spacing[1] += options.print ? ANNOTATIONS_SPACE_PRINT : ANNOTATIONS_SPACE;\n// options.spaceAddedForAnnotations = true;\n// }\n// return spacing;\n// }\n\n// function possibleAnnotationsSpacing(options) {\n// return !(\n// options.product === 'marketwatch' ||\n// options.type === 'pie' ||\n// options.type === 'bar' ||\n// (options.type === 'column' && options.stacking)\n// );\n// }\n\n// function needsAnnotationSpace(options) {\n// const endIndex = Math.floor((options.maxDataLength - 1) * 0.95);\n// for (let i = 0; i < options.annotations.length; i++) {\n// const a = options.annotations[i];\n// const attach = a.attach.point.enabled ? a.attach.point : a.attach.category;\n// const index = attach.index;\n// if (index >= endIndex) {\n// if (a.lineEnd === 'circle') {\n// return true;\n// }\n// if (options.print && a.lineEnd === 'dot') {\n// return true;\n// }\n// }\n// }\n// return false;\n// }\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/spacing.js","import * as line from './chart-line';\nimport * as area from './chart-area';\nimport * as bar from './chart-bar';\nimport * as pie from './chart-pie';\nimport * as scatter from './chart-scatter';\n\n/**\n * Updates options for specific chart types.\n */\nexport function preRender(data, options) {\n switch (options.type) {\n case 'line':\n return line.preRender(data, options);\n case 'area':\n return area.preRender(data, options);\n case 'pie':\n return pie.preRender(data, options);\n case 'scatter': \n return scatter.preRender(data, options);\n case 'bar':\n case 'column':\n return bar.preRender(data, options);\n }\n return data;\n}\n\n\nexport function postRender(highchart, options) {\n \n switch (options.type) {\n case 'line':\n line.postRender(highchart, options);\n break;\n case 'area':\n area.postRender(highchart, options);\n break;\n case 'pie':\n pie.postRender(highchart, options);\n break;\n case 'bar':\n case 'column':\n bar.postRender(highchart, options);\n break;\n }\n}\n\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n switch (options.type) {\n case 'line':\n return line.renderInvalidated(rendered, options, invalidated);\n case 'area':\n return area.renderInvalidated(rendered, options, invalidated);\n case 'pie':\n return pie.renderInvalidated(rendered, options, invalidated);\n case 'bar':\n case 'column':\n return bar.renderInvalidated(rendered, options, invalidated);\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart.js","import { renderInvalidatedColors } from './chart-util';\nimport {dashStylesHelper, roundLineJoinsHelper} from './util'\n/**\n * Adds options for LINE charts.\n */\nexport function preRender(data, options) {\n let radius = 0;\n let hoverRadius = 2.5;\n const isVideoGroup = (options.id === 'video' || options.id === 'twitterVideo');\n const notVideoGroup = (options.id !== 'video' && options.id !== 'twitterVideo');\n if (options.markedDataPoints) {\n if (options.print) !options.step ? radius = 1.25 : radius = 0;\n else {\n radius = !options.step ? 2.5 : 0;\n hoverRadius = !options.step ? 3.5 : 0;\n } \n }\n const showOnHover = options.showTooltips;\n data.plotOptions.line = {\n clip: notVideoGroup,\n lineWidth: options.id === 'video' ? 11 : options.id === 'twitterVideo' ? 8 : 2,\n linecap: isVideoGroup ? 'round' : 'square',\n enableMouseTracking: options.interactive,\n states: {\n hover: {\n halo: {\n opacity: 1,\n size: hoverRadius\n },\n lineWidthPlus: 0\n }\n },\n };\n data.plotOptions.series = {\n marker: {\n symbol: 'circle',\n radius: radius,\n lineWidth: 0,\n lineColor: null,\n enabled: options.markedDataPoints,\n states: {\n hover: {\n enabled: showOnHover\n }\n }\n },\n dataGrouping: {\n enabled: !options.irregularDates\n }\n };\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n data.plotOptions.line.lineWidth = 1.5;\n data.plotOptions.line.linecap = 'round';\n }\n }\n return data;\n}\n\n\nexport function postRender(highchart, options) {\n updateDashStyle(highchart, options); \n roundLineJoins(highchart, options);\n}\n\nfunction updateDashStyle(highchart, options) {\n const paths = [...highchart.container.querySelectorAll('.highcharts-graph')];\n paths.forEach(path => dashStylesHelper(path, options.size))\n}\n\nfunction roundLineJoins(highchart, options) {\n const selector = 'g.highcharts-series-group g.highcharts-series path';\n const paths = highchart.container.querySelectorAll(selector);\n const isVideoGroup = (options.id === 'video' || options.id === 'twitterVideo');\n for (let i = 0; i < paths.length; i++) {\n roundLineJoinsHelper(paths[i], isVideoGroup)\n }\n}\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n renderInvalidatedColors(rendered, invalidated);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart-line.js","import { renderInvalidatedColors } from './chart-util';\n\n/**\n * Adds options for LINE charts.\n */\nexport function preRender(data, options) {\n const showOnHover = options.showTooltips;\n data.plotOptions.area = {\n lineWidth: (options.series.length > 1) ? 1 : 0,\n lineColor: '#fff',\n linecap: 'square',\n fillOpacity: 1.0,\n enableMouseTracking: options.interactive,\n stacking: options.stacking,\n states: {\n hover: {\n halo: {\n opacity: 1,\n size: 4\n },\n lineWidthPlus: 0\n }\n }\n };\n data.plotOptions.series = {\n marker: {\n symbol: 'circle',\n radius: 0,\n lineWidth: 0,\n lineColor: null,\n states: {\n hover: {\n enabled: showOnHover\n }\n }\n }\n };\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n data.plotOptions.area.lineWidth = 1.5;\n // data.plotOptions.area.linecap = 'butt';\n }\n }\n return data;\n}\n\n\nexport function postRender(highchart, options) {\n roundLineJoins(highchart, options);\n}\n\n\nfunction roundLineJoins(highchart, options) {\n const selector = 'g.highcharts-series-group g.highcharts-series path';\n const paths = highchart.container.querySelectorAll(selector);\n for (let i = 0; i < paths.length; i++) {\n paths[i].setAttribute('stroke-linejoin', 'bevel');\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n paths[i].setAttribute('stroke-linecap', 'butt');\n }\n }\n }\n}\n\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n renderInvalidatedColors(rendered, invalidated);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart-area.js","import { renderInvalidatedColors } from './chart-util';\nimport * as format from '../data/format';\n\n/**\n * Adds options for BAR and COLUMN charts.\n */\n\nexport function preRender(data, options) {\n const bar = data.plotOptions[options.type];\n bar.stacking = options.stacking;\n bar.marker = {\n enabled: false\n };\n bar.borderWidth = 0;\n if (options.horizontalBarType === 'aboveBar') {\n let defaultHeight = 263;\n if (options.product === 'barrons') defaultHeight = 251;\n if (options.product === 'mansionglobal') defaultHeight = 225;\n if (options.product === 'marketwatch') defaultHeight = 231;\n if (options.product === 'financialnews') defaultHeight = 231;\n if (options.product === 'knewz') defaultHeight = 251;\n let scaleFrom400 = options.height / defaultHeight < 1 ? options.height / defaultHeight : defaultHeight / options.height;\n scaleFrom400 = options.height === defaultHeight ? 0.8 : scaleFrom400\n data.plotOptions[options.type].pointPadding = 0.2 / scaleFrom400;\n data.plotOptions[options.type].groupPadding = options.series.length > 1 && \n options.stacking === null ? 0.2 / scaleFrom400 : 0;\n // data.plotOptions[options.type].pointWidth = 15;\n } else {\n data.plotOptions[options.type].pointPadding = 0.2;\n data.plotOptions[options.type].groupPadding = options.series.length > 1 && \n options.stacking === null ? 0.2 : 0;\n // data.plotOptions[options.type].pointWidth = 15;\n }\n\n if (options.type === 'bar') {\n if (options.horizontalBarType === 'aboveBar' || options.horizontalBarType === 'noScaleAndLeft') {\n const hasPrefix = options.tooltips.prefix ? 1 : 0;\n let firstBarLength = options.series[0].data[0].y.toString().length + hasPrefix;\n firstBarLength = firstBarLength > 3 ? firstBarLength + firstBarLength : firstBarLength;\n let defaultOffset = firstBarLength === 1 ? 20 : 30 + (firstBarLength * 2);\n data.plotOptions[options.type].dataLabels = {\n enabled: true,\n align: 'right',\n allowOverlap: true,\n padding: 0,\n style: {\n fontFamily: options.styles.font.normal,\n fontWeight: options.styles.weight.normal,\n fontSize: options.styles.dataLabel.fontSize,\n lineHeight: options.styles.dataLabel.lineHeight,\n textOutline: false,\n shadow: false,\n color: 'black'\n },\n x: options.horizontalBarLabel ? -5 : defaultOffset, // if I set to this to 0 it sits inside the bar,\n y: 4,\n formatter() {\n return formatter(data, options, this);\n }\n }\n }\n }\n data.plotOptions.series = {\n dataGrouping: {\n enabled: !options.irregularDates\n }\n }\n return data; \n}\n\nfunction formatter(data, options, context) {\n let dataLabel = context.y;\n let value = format.applyFull(context.point.y, false, false, true, true, true);\n // const value = format.applyFull(context.point.y, options.tooltips, options.type === 'pie', true, true);\n const prefix = options.axes.units.prefix;\n const suffix = options.axes.units.suffix;\n if (context.point.index === 0) {\n if (prefix) {\n value = options.axes.units.prefix + value;\n }\n \n if (suffix) {\n value = value + suffix;\n }\n }\n\n return value;\n}\n\n// For bar charts, tweaks the spacing between bars.\n// function adjustBarsWidth(data, options) {\n// if (options.type === 'column') {\n// const c = data.plotOptions[options.type];\n// const seriesLen = options.stacking ? 1 : data.series.length;\n// let maxDataLen = 0;\n// data.series.forEach(item => {\n// maxDataLen = Math.max(maxDataLen, item.data.length);\n// });\n// const yAxisEstimate = getYAxisEstimatedWidth(data, options);\n// const xAxisWidth = options.width - yAxisEstimate;\n// const bars = seriesLen * maxDataLen;\n// const groupBars = (seriesLen > 1) ? (maxDataLen - 1) : 0;\n// const pointBars = (seriesLen === 1) ? (maxDataLen - 1) :\n// (maxDataLen * (seriesLen - 1));\n\n// const adjustedGroupBars = groupBars * 2;\n// // designed = 0.25 :\n// const adjustedPointBars = pointBars * (0.35 + 0.2 * seriesLen);\n\n// c.pointWidth = Math.max(2, xAxisWidth /\n// (bars + adjustedGroupBars + adjustedPointBars));\n \n// // if (options.legend.enabled && options.legend.layout === 'right') {\n// // c.pointWidth = c.pointWidth + (c.pointWidth * 0.25);\n// // } else {\n// // c.pointWidth = c.pointWidth + (c.pointWidth * 0.5)\n// // }\n \n\n// // let factorToSubtractBy = 0;\n\n// // if (data.series[0].data.length > 100) {\n// // if (options.width < 500) {\n// // factorToSubtractBy = 0.95;\n// // }\n// // if (options.width < 620 && options.width > 500) {\n// // factorToSubtractBy = 0.75;\n// // }\n// // if (options.width >= 620) {\n// // factorToSubtractBy = 0.25;\n// // }\n// // }\n\n// // if ((options.legend.enabled && options.legend.layout === 'right') && data.series[0].data.length > 100) {\n// // if (options.width < 500) {\n// // factorToSubtractBy = 0.95;\n// // }\n// // if (options.width < 620 && options.width > 500) {\n// // factorToSubtractBy = 0.9;\n// // }\n// // if (options.width === 620) {\n// // factorToSubtractBy = 0.7;\n// // }\n// // if (options.width > 620) {\n// // factorToSubtractBy = 0.25;\n// // }\n// // }\n\n// // if ((options.legend.enabled && options.legend.layout === 'right') && data.series[0].data.length < 100) {\n// // factorToSubtractBy = options.width < 420 ? 0.35 : 0.25;\n// // }\n \n// // c.pointWidth = c.pointWidth - (c.pointWidth * factorToSubtractBy);\n// // c.pointPadding = 0.5;\n// // c.groupPadding = 0;\n \n// }\n// return data;\n// }\n\n// NEVER CALLED\n// function getYAxisEstimatedWidth(data, options) {\n// let maxNum = 0;\n// data.series.forEach(series => {\n// for (let i = 0; i < series.data.length; i++) {\n// maxNum = Math.max(maxNum, series.data[i].y);\n// }\n// });\n// maxNum = (Math.round(maxNum) + '').length;\n// const units = options.axes.units;\n// const forceDecimals = (units.forceDecimals !== undefined) ?\n// units.forceDecimals : 0;\n// const maxDecimals = (units.maxDecimals !== undefined) ?\n// units.maxDecimals : Number.MAX_VALUE;\n// const len = maxNum + Math.min(forceDecimals, maxDecimals);\n// const fontSize = parseFloat(options.styles.normal.fontSize) * 0.5;\n// return len * fontSize;\n// }\n\nexport function postRender(highchart, options) {\n if (options.type === 'column') {\n adjustBarSpacing(highchart, options);\n }\n stylizeStacks(highchart, options);\n}\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n renderInvalidatedColors(rendered, invalidated);\n }\n}\n\n// Tweak spacing to improve rounding/pixel issues.\nfunction adjustBarSpacing(highchart, options) {\n const axis = highchart.yAxis[0];\n const delta = {\n index1: -1,\n index2: -1,\n };\n // Set X for each bar to NOT rounded position. I thought this would look\n // terrible, but it's fine.\n const seriesLen = axis.series.length;\n axis.series.forEach(series => {\n for (let i = 0; i < series.data.length; i++) {\n const point = series.data[i];\n if (point.graphic) {\n point.graphic.element.setAttribute('x', point.barX);\n // Measure the distance between bars:\n if (delta.index1 === -1) {\n delta.index1 = i;\n delta.bar1 = point.barX;\n } else if (delta.index2 === -1) {\n if (delta.index1 < i - 1) {\n delta.index1 = -1;\n } else {\n delta.index2 = i;\n delta.bar2 = point.barX - point.pointWidth;\n }\n }\n }\n }\n });\n // if (delta.index1 !== -1 && delta.index2 !== -1) {\n // // If bars are too close together, merge them:\n // const deltaPx = delta.bar2 - delta.bar1;\n // console.log(deltaPx);\n // const hasOverOneFiftyDataPoints = options.series[0].data.length > 150 ? 1.5 : 0.5;\n // console.log(deltaPx, options.size);\n // if (deltaPx < hasOverOneFiftyDataPoints) {\n // axis.series.forEach(series => {\n // for (let i = 0; i < series.data.length; i++) {\n // const point = series.data[i];\n // if (point.graphic) {\n // let isLegendRight = options.legend.enabled && options.legend.layout === 'right' ? 0.25 : 0.125;\n // isLegendRight = options.series[0].data.length > 150 ? isLegendRight + 0.05 : isLegendRight;\n // point.graphic.element.setAttribute('x', point.barX + (deltaPx / 2));\n // point.graphic.element.setAttribute('width', point.pointWidth - deltaPx);\n // }\n // }\n // });\n // }\n // }\n}\n\n// If stacking is enabled, adjust the style of the stacks.\nfunction stylizeStacks(highchart, options) {\n if (options.stacking) {\n highchart.yAxis[0].series.forEach(series => {\n series.data.forEach(item => {\n if (item.graphic) {\n const el = item.graphic.element;\n const px = parseFloat(el.attributes.height.value);\n if (px > 0) {\n el.setAttribute('height', px - 1);\n }\n }\n });\n });\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart-bar.js","/**\n * Adds options for PIE charts.\n */\nimport * as transform from './transform';\nimport { renderInvalidatedColors } from './chart-util';\nimport * as format from '../data/format';\n\n\nconst TOP_LEFT = 0;\nconst TOP_RIGHT = 1;\nconst BOTTOM_RIGHT = 2;\nconst BOTTOM_LEFT = 3;\n\nconst PERC_MARGIN = 4;\nconst LABEL_MARGIN = 10;\n\nexport function preRender(data, options) {\n options = writeDataNames(options);\n let arrayofYValues = data.series[0].data;\n let sumofYValues = 0;\n arrayofYValues.forEach((data) =>{\n sumofYValues += data.y;\n });\n arrayofYValues.forEach((data) =>{\n data.y = data.y / sumofYValues;\n // data.y = format.decimals(data.y, options.axes.units, true, true);\n data.y = parseFloat(data.y * 100);\n let forceDecimals = Number(options.axes.units.forceDecimals);\n if (forceDecimals === 1) forceDecimals = 10;\n if (forceDecimals === 2) forceDecimals = 100;\n if (forceDecimals === 3) forceDecimals = 1000; \n if (forceDecimals === 0) forceDecimals = 'round'\n if (forceDecimals) {\n data.y = forceDecimals !== 'round' ? Math.ceil(data.y * forceDecimals) / forceDecimals : data.y;\n if (data.y.toString().length > 4 && forceDecimals === 'round') {\n data.y = Math.round(data.y);\n }\n }\n })\n data.plotOptions.pie = {\n dataLabels: { enabled: false },\n enableMouseTracking: options.interactive,\n showInLegend: true,\n minSize: minSize(data, options),\n center: ['50%', '50%'],\n states: {\n hover: {\n enabled: false\n }\n }\n };\n return data;\n}\n\n// Writes the categories into the series[0] data so that they are available\n// for data labels.\nfunction writeDataNames(options) {\n options.series[0].data.forEach((item, index) => {\n if (options.type === 'pie' && options.optimizeDataOrder) {\n item.name = options.longCategories[item.originalIndex];\n } else {\n item.name = options.longCategories[index];\n }\n });\n return options;\n}\n\n// Set a minimum radius for the chart to render.\nfunction minSize(data, options) {\n return Math.min(\n options.height - data.chart.spacing[0] - data.chart.spacing[2],\n options.width - data.chart.spacing[3] - data.chart.spacing[1]\n ) * 0.5;\n}\n\n\n/**\n * Draws the data labels using custom methods instead of Highcharts.\n * 1) Draw labels into corners of quadrants.\n * 2) Resize and move pie chart based on data labels locations.\n * 3) Draw connectors.\n */\nexport function postRender(highchart, options) {\n if (options.legend.enabled && options.size.indexOf('thumb') !== 0) {\n const g = drawLabelsGroup(highchart);\n const rect = getPieRect(highchart);\n if (rect) {\n const labels = drawLabels(highchart, options, g, rect);\n if (labels.length) {\n let sorted = sortLabels(labels);\n sorted = positionLabels(highchart, sorted, rect);\n const resizedRect = resizeChart(highchart, rect, sorted,\n labels[0].lineHeight);\n truncateLabels(highchart, labels, resizedRect);\n improveLabelPositions(highchart, labels, resizedRect);\n if (options.product === 'financialnews') {\n makeDonutChart(highchart, options);\n }\n }\n }\n }\n}\n\n// Creates a `g` element to contain the data labels, translated to the same\n// position as the pie chart.\nfunction drawLabelsGroup(highchart) {\n const gPieSelector = '.highcharts-series-group .highcharts-series';\n const gPie = highchart.container.querySelector(gPieSelector);\n const g = highchart.renderer.g().add();\n g.element.setAttribute('transform', gPie.getAttribute('transform'));\n g.element.setAttribute('class', 'pie-chart-data-labels');\n return g;\n}\n\n\nfunction drawLabels(highchart, options, g, rect) {\n let labels = [];\n let data = highchart.series[0].data;\n let smallSize = isSmall(options.size);\n let styleLabel = options.styles.get(smallSize ? 'small' : 'normal', {\n fontFamily: options.styles.font.bold,\n fontWeight: options.styles.weight.bold\n });\n let stylePerc = options.styles.get(smallSize ? 'small' : 'normal');\n let lineHeight = parseFloat(styleLabel.fontSize);\n let pi2 = Math.PI * 2;\n\n for (let i = 0; i < data.length; i++) {\n const slice = data[i];\n labels[i] = {};\n labels[i].slice = slice;\n labels[i].radians = (slice.angle + pi2) % pi2;\n labels[i].styleLabel = options.styles.get(smallSize ? 'small' : 'normal', {\n fontFamily: options.styles.font.bold,\n fontWeight: options.styles.weight.bold,\n });\n labels[i].stylePerc = options.styles.get(smallSize ? 'small' : 'normal', {\n });\n labels[i].g = highchart.renderer.g().add(g);\n\n // const labelName = getLabelName(slice, options);\n labels[i].labelName = highchart.renderer\n .text(slice.name, 0, 0)\n .css(labels[i].styleLabel)\n .add(labels[i].g);\n labels[i].labelPerc = highchart.renderer\n .text(slice.y + '%',\n labels[i].labelName.element.getBoundingClientRect().width +\n PERC_MARGIN, 0)\n .css(labels[i].stylePerc)\n .add(labels[i].g);\n labels[i].lineHeight = smallSize ? 14 :\n parseFloat(styleLabel.lineHeight);\n const isMW = options.product === 'marketwatch';\n const isFN = options.product === 'financialnews';\n const widthVal = isMW ? 12 : 9;\n const heightVal = isMW ? 12 : 13;\n if (!isFN) {\n highchart.renderer.rect().attr({\n width: widthVal,\n height: heightVal,\n fill: slice.color\n }).add(labels[i].g);\n } else {\n highchart.renderer.circle(5, -4, widthVal / 2).attr({\n fill: slice.color\n }).add(labels[i].g);\n }\n \n const xVal = isMW ? 15 : 12;\n const yVal = isMW ? -10 : -12;\n labels[i].g.element.lastElementChild.setAttribute('x', 0);\n labels[i].g.element.firstElementChild.setAttribute('x', xVal);\n let percentageCurrentX = Number(labels[i].g.element.children[1].getAttribute('x'));\n labels[i].g.element.children[1].setAttribute('x', percentageCurrentX + xVal);\n labels[i].g.element.lastElementChild.setAttribute('y', yVal);\n }\n\n return labels;\n}\n\n// function getLabelName(slice, options) {\n// if (options.optimizeDataOrder && Array.isArray(options.categories) &&\n// options.categories.length) {\n// return options.categories[0][slice.originalIndex] || slice.name;\n// }\n// return slice.name\n// }\n\n\n// Sorts labels intro quadrants.\nfunction sortLabels(labels, rect) {\n let BR = [];\n let BL = [];\n let TL = [];\n let TR = [];\n\n labels = labels.sort(sortOnRadians);\n for (let i = 0; i < labels.length; i++) {\n let r = labels[i].radians;\n if (r > 0 && r <= Math.PI * 0.5) {\n BR.push(labels[i]);\n } else if (r > Math.PI * 0.5 && r < Math.PI) {\n BL.push(labels[i]);\n } else if (r >= Math.PI && r < Math.PI * 1.5) {\n TL.push(labels[i]);\n } else {\n TR.push(labels[i]);\n }\n }\n\n if (TR.length === 0 && BR.length) {\n TR.push(BR.shift());\n }\n BR.reverse();\n TL.reverse();\n return { BR, BL, TL, TR };\n}\n\n\nfunction positionLabels(highchart, sorted, rect) {\n // Top right\n let x;\n let y = 0;\n sorted.TR.forEach(label => {\n label.x = getRightX(highchart, label);\n label.y = y + label.lineHeight;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y += label.lineHeight;\n });\n\n // Bottom right\n y = getBottomY(highchart);\n sorted.BR.forEach(label => {\n label.x = getRightX(highchart, label);\n label.y = y;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y -= label.lineHeight;\n });\n\n // Bottom left\n x = getLeftX(highchart);\n y = getBottomY(highchart);\n sorted.BL.forEach(label => {\n label.x = x;\n label.y = y;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y -= label.lineHeight;\n });\n\n // Top left\n y = 0;\n sorted.TL.forEach(label => {\n label.x = x;\n label.y = y + label.lineHeight;\n transform.write(label.g.element, 'translate', label.x, label.y);\n y += label.lineHeight;\n });\n return sorted;\n}\n\n// Returns default label left x.\nfunction getLeftX(highchart) {\n return 0;//highchart.plotLeft;\n}\n\n// Returns default label right x.\nfunction getRightX(highchart, label) {\n return highchart.plotLeft + highchart.plotWidth - highchart.spacing[1] -\n label.g.element.getBoundingClientRect().width;\n}\n\n// Returns default label bottom y.\nfunction getBottomY(highchart) {\n return highchart.plotHeight - LABEL_MARGIN;// - highchart.spacing[2];\n}\n\n\n// Scales the chart down to compensate for labels.\nfunction resizeChart(highchart, rect, sorted, lineHeight) {\n const maxLabelsTop = Math.max(sorted.TL.length, sorted.TR.length);\n const maxLabelsBot = Math.max(sorted.BL.length, sorted.BR.length);\n let newHeight = rect.height - (maxLabelsTop + maxLabelsBot) * lineHeight;\n newHeight = Math.max(newHeight, Math.min(highchart.plotWidth * 0.6,\n highchart.plotHeight * 0.6));\n\n let scaleRatio = newHeight / rect.height;\n let pieG = highchart.series[0].data[0].graphic.parentGroup;\n let pieContainer = pieG.element.parentElement;\n let translate = transform.read(pieG.element, 'translate');\n let x = (highchart.chartWidth - highchart.chartWidth * scaleRatio) * 0.5;\n let y = translate[1];\n y += maxLabelsTop * lineHeight;\n // y += (rect.height - newHeight) / 2;\n\n transform.write(pieG.element, 'translate', translate[0], 0);\n pieContainer.setAttribute('transform', [\n 'matrix(',\n scaleRatio,\n ',0,0,',\n scaleRatio,\n ',',\n x,\n ',',\n y,\n ')'\n ].join(''));\n\n var r = {\n width: rect.width * scaleRatio\n };\n r.height = r.width;\n r.left = rect.center - r.width / 2 + highchart.spacing[3];\n r.center = rect.center;\n r.right = r.left + r.width;\n r.top = y + 10 * scaleRatio;\n r.middle = r.top + r.height / 2;\n r.bottom = r.top + r.height;\n // debugRect(highchart, r.left, r.top, r.width, r.height);\n return r;\n}\n\n\n// Truncate any labels that overlap the pie chart with '…'.\nfunction truncateLabels(highchart, labels, rect) {\n const labelsLen = labels.length;\n if (labelsLen) {\n let parentGroup = labels[0].g.element.parentElement;\n let parentTop = transform.read(parentGroup, 'translate')[1];\n\n for (let i = 0; i < labelsLen; i++) {\n let label = labels[i];\n parentGroup = parentGroup || label.g.element.parentElement;\n var labelRect = label.g.element.getBoundingClientRect();\n label.bounds = {\n x: label.x + highchart.spacing[3],\n y: label.y + parentTop - parseFloat(label.styleLabel.fontSize) + highchart.spacing[0],\n width: labelRect.width,\n height: labelRect.height\n };\n // debugRect(highchart, testRect.x, testRect.y, testRect.width, testRect.height);\n\n var maxWidth;\n if (label.bounds.y > rect.top && label.bounds.y < rect.bottom) {\n // Label is next to pie chart.\n if (label.x < rect.left) {\n maxWidth = rect.left - label.x - LABEL_MARGIN;\n truncateLabelLeft(labelRect, label, rect.left - label.x - LABEL_MARGIN);\n } else {\n maxWidth = highchart.chartWidth - highchart.spacing[1] - rect.right;\n truncateLabelRight(labelRect, label,\n label.bounds.x + labelRect.width, maxWidth);\n }\n\n } else {\n // Label is above or below the pie.\n if (label.radians > Math.PI / 2 && label.radians < Math.PI * 1.5) {\n maxWidth = rect.center - label.x - LABEL_MARGIN;\n truncateLabelLeft(labelRect, label, maxWidth);\n } else {\n maxWidth = highchart.chartWidth - highchart.spacing[1] - rect.center;\n truncateLabelRight(labelRect, label,\n label.bounds.x + labelRect.width, maxWidth);\n }\n }\n }\n }\n}\n\nfunction truncateLabelLeft(labelRect, label, maxWidth) {\n let tspan = label.labelName.element.querySelector('tspan') ||\n label.labelName.element;\n let s = label.labelName.textStr;\n let n = s.length - 2;\n while (labelRect.width > maxWidth && n > 0) {\n s = s.substr(0, n--);\n tspan.innerHTML = s + '…';\n label.labelPerc.element.setAttribute('x',\n label.labelName.element.getBoundingClientRect().width + PERC_MARGIN);\n labelRect = label.g.element.getBoundingClientRect();\n }\n}\n\nfunction truncateLabelRight(labelRect, label, rightX, maxWidth) {\n let tspan = label.labelName.element.querySelector('tspan') ||\n label.labelName.element;\n let s = label.labelName.textStr;\n let n = s.length - 2;\n while (labelRect.width > maxWidth && n > 0) {\n s = s.substr(0, n--);\n tspan.innerHTML = s + '…';\n label.labelPerc.element.setAttribute('x',\n label.labelName.element.getBoundingClientRect().width + PERC_MARGIN);\n labelRect = label.g.element.getBoundingClientRect();\n }\n const translate = transform.read(label.g.element, 'translate');\n transform.write(label.g.element, 'translate', rightX - labelRect.width, translate[1]);\n}\n\n\n// Moves labels closer to the chart, if possible.\nfunction improveLabelPositions(highchart, labels, rect) {\n let L = [];\n let R = [];\n let maxL = 0;\n let maxR = 0;\n for (var i = 0; i < labels.length; i++) {\n var label = labels[i];\n if (label.radians > Math.PI * 0.5 && label.radians < Math.PI * 1.5) {\n L.push(label);\n maxL = Math.max(maxL, label.bounds.width);\n } else {\n R.push(label);\n maxR = Math.max(maxR, label.bounds.width);\n }\n }\n var delta = rect.left - LABEL_MARGIN - maxL;\n if (delta > 0) {\n L.forEach(item => {\n let t = transform.read(item.g.element, 'translate');\n transform.write(item.g.element, 'translate', t[0] + delta, t[1]);\n })\n }\n delta = highchart.chartWidth - (rect.right + LABEL_MARGIN) - maxR;\n if (delta > 0) {\n R.forEach(item => {\n let t = transform.read(item.g.element, 'translate');\n transform.write(item.g.element, 'translate', t[0] - delta, t[1]);\n });\n }\n}\n\n\n// We decided, at least for the moment, not to do this.\nfunction connectLabels(highchart, rect, labels) {\n //\n}\n\n\n\n// For sorting the labels from top to bottom.\nfunction sortOnY(a, b) {\n // var ta = transform.read(a.dataLabel.element, 'translate')[1];\n // var tb = transform.read(b.dataLabel.element, 'translate')[1];\n // return ta - tb;\n return a.y - b.y;\n}\n\n// Sorts the labels clockwise around the pie, starting at 3 o'clock. The\n// radians should already have been normalized to a number >= 0 and\n// <= Math.PI * 2.\nfunction sortOnRadians(a, b) {\n return a.radians - b.radians;\n}\n\n// Returns position and dimensions of the pie graphic.\nfunction getPieRect(highchart) {\n const d = highchart.series[0].data[0];\n const g = !!d ? d.graphic : null;\n if (g) {\n let r = {\n left: g.x - g.r,\n top: g.y - g.r\n };\n r.width = g.r * 2;\n r.height = r.width;\n r.right = r.left + r.width;\n r.bottom = r.top + r.height;\n r.center = r.left + r.width / 2;\n r.middle = r.top + r.height / 2;\n return r;\n }\n return null;\n}\n\n\nfunction debugRect(highchart, x, y, width, height) {\n return highchart.renderer.rect(x, y, width, height)\n .attr({\n 'stroke-width': 1,\n 'stroke': 'red',\n 'fill': 'rgba(255, 255, 255, 0)'\n })\n .add();\n}\n\n\n// Used for determining whether to use 'small' or 'normal' font sizes.\nfunction isSmall(size) {\n return size === 'D' || size === '4u' || size === 'fon';\n}\n\n\nfunction makeDonutChart(highchart, options) {\n if (__FINANCIALNEWS__) {\n const highchartContainer = highchart.container;\n const highchartContainerSVG = highchartContainer.firstElementChild;\n const pieRect = highchartContainerSVG.querySelectorAll('.highcharts-pie-series')[0];\n const rectRadius = pieRect.getBBox().width;\n const radius = rectRadius/4.1;\n const svgWidth = Number(highchartContainerSVG.getAttribute('width'));\n const svgHeight = highchartContainerSVG.getAttribute('height');\n const groupOfPieValue = highchartContainer.getElementsByClassName('highcharts-pie-series')[0];\n const lastPathOfPie = groupOfPieValue.lastElementChild.getAttribute('d').split(' ');\n const lastPathOfPieYVal = Number(lastPathOfPie[lastPathOfPie.length - 2]);\n const circle = highchart.renderer.circle(svgWidth / 2, lastPathOfPieYVal, radius).attr({\n fill: '#fefaf3'\n });\n const text = highchart.renderer.text('%', (svgWidth / 2) - (radius / 2) * .85 , lastPathOfPieYVal + (radius / 2) * .75).attr({\n 'font-size': radius,\n stroke: 'black',\n text: '%'\n }).add()\n groupOfPieValue.append(circle.element);\n groupOfPieValue.append(text.element);\n }\n}\n\n\n\nexport function renderInvalidated(rendered, options, invalidated) {\n if (__ALL__) {\n renderInvalidatedColors(rendered, invalidated);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart-pie.js","export function preRender(data, options) {\n const showOnHover = options.showTooltips;\n data.plotOptions.series = {\n // dataLabels: {\n // enabled: true,\n // formatter: function() {\n // return this.point.value;\n // }\n // },\n stickyTracking: false,\n marker: {\n symbol: 'circle',\n radius: 4,\n enabled: true,\n states: {\n hover: {\n enabled: showOnHover\n }\n }\n }\n };\n return data;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/chart-scatter.js","import { MAX_4U_WIDTH, CATEGORY, SERIES, VALUE, POINT, SYMBOL } from '../data/constants';\nimport * as transform from './transform';\nimport * as element from '../util/element';\nimport * as format from '../data/format';\nimport { checkForceLegendTop } from '../data/processSeries';\n\nconst MIN_ITEM_CHARS = 16;\nconst MAX_ITEM_CHARS = 32;\nconst MIN_CHARS_RATIO = MIN_ITEM_CHARS / MAX_4U_WIDTH;\n\n\nexport function preRender(data, options) {\n if (__MARKETWATCH__) {\n if (options.size === 'marketwatch-ZT') {\n return data;\n }\n }\n data.legend = {\n enabled: options.id === 'twitterVideo' ? false : options.legend.enabled && options.type !== 'pie',\n navigation: { enabled: false },\n };\n\n if (data.legend.enabled) {\n options.forceLegendTop = checkForceLegendTop(options);\n styleLegend(data, options);\n compileLegendText(data, options);\n positionLegend(data, options);\n }\n return data;\n}\n\nfunction positionLegend(data, options) {\n const LH = parseFloat(options.styles.normal.lineHeight);\n if (options.legend.layout === 'default') {\n options.legend.layout = 'right';\n }\n if (options.forceLegendTop) {\n options.legend.layout = 'top';\n }\n switch (options.legend.layout) {\n case 'top':\n data.legend.layout = 'horizontal';\n data.legend.align = 'left';\n data.legend.verticalAlign = 'top';\n if (options.print) {\n data.legend.margin = options.type === 'bar' ? 8 : 4;\n }\n if (options.id === 'D') {\n data.legend.margin = 15;\n }\n if (options.id === 'appfeed') {\n data.legend.margin = 25;\n }\n if (options.id === 'video' || options.id === 'twitterVideo') {\n data.legend.margin = 50;\n data.legend.x = 6;\n }\n break;\n // case 'right':\n default:\n data.legend.layout = 'vertical';\n data.legend.align = 'right';\n data.legend.verticalAlign = 'middle';\n data.legend.margin = 10;\n break;\n }\n return data;\n}\n\nfunction compileLegendText(data, options) {\n data.legend.labelFormatter = function() {\n const openTag ='<b>', closeTag = '</b>';\n const series = options.series.find(series => series.name === this.name);\n const text = compileText(series, this, options);\n const textBr = element.replaceLineBreaks(text);\n const lines = textBr.split('<br>');\n const boldLegend = element.boldText();\n const bolded = lines.map(line => boldLegend(line, openTag, closeTag));\n return bolded.join('<br>');\n }\n}\n\nfunction styleLegend(data, options) {\n const fontFamilyStyle = options.product === 'financialnews' ? options.styles.font.normal : options.styles.font.semibold;\n const fontFamilyWeight = options.product === 'financialnews' ? options.styles.weight.normal : options.styles.weight.semibold;\n let fontSizePrint = 7.5;\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews') {\n fontSizePrint = options.print && options.sizes['print-fn'].columns <= 2 ? '7.75px' : '12px';\n }\n }\n const fontStyle = options.print ? {\n fontFamily: options.styles.font.normal,\n fontWeight: options.styles.weight.normal,\n fontSize: fontSizePrint\n } : {\n fontFamily: fontFamilyStyle,\n fontWeight: fontFamilyStyle\n }\n let styles = options.styles.get('normal', fontStyle);\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n styles = Object.assign({}, {\n fontSize: options.styles.legend.fontSize,\n fontWeight: options.styles.legend.fontWeight,\n lineHeight: options.styles.legend.lineHeight\n });\n if (options.id === 'video' || options.id === 'twitterVideo') {\n styles.fontFamily = 'Retina Narrow';\n styles.color = '#fff';\n }\n if (options.id === 'appfeed') {\n styles.color = '#666';\n styles.fontSize = '14px';\n }\n }\n }\n\n if (__MANSIONGLOBAL__) {\n if (options.product === 'mansionglobal') {\n styles = Object.assign({}, {\n fontSize: options.styles.legend.fontSize,\n fontWeight: options.styles.legend.fontWeight,\n lineHeight: options.styles.legend.lineHeight,\n color: options.styles.legend.color\n });\n }\n }\n if (options.product === 'knewz') {\n styles = Object.assign({}, {\n color: options.styles.legend.color,\n fontFamily: styles.fontFamily,\n lineHeight: options.styles.legend.lineHeight,\n fontSize: options.styles.legend.fontSize,\n fontWeight: options.styles.legend.fontWeight\n })\n }\n data.legend.itemStyle = styles;\n\n if (options.legend.layout === 'default' && !options.forceLegendTop || options.legend.layout === 'right') {\n // if (options.print) {\n const width = options.width * 0.25 - 17;//data.legend.margin;\n data.legend.itemStyle.width = width;//`${width}px`;\n // }\n \n if (options.print) {\n data.legend.margin = 4;\n }\n data.legend.padding = 2;\n } else {\n data.legend.padding = options.print ? 0 : 2;\n }\n data.legend.itemDistance = options.print ? 6 : 12;\n data.legend.itemMarginBottom = options.print ? 4 : 5;\n data.legend.symbolPadding = 7;\n\n // this doesnt do what you think it does.\n // for some reason this helps space the series name and the series symbol\n if (options.print) {\n data.legend.symbolWidth = 4;\n } else if (options.product === 'wsj') {\n data.legend.symbolWidth = 7;\n } else {\n data.legend.symbolWidth = 9;\n }\n\n if (!options.print) {\n data.legend.itemStyle.textOverflow = null;\n }\n // data.legend.squareSymbol = false;\n if (options.type === 'scatter') {\n data.legend.symbolHeight = 24;\n } else if (options.print) {\n data.legend.symbolHeight = 6;\n } else {\n data.legend.symbolHeight = 12;\n }\n\n data.legend.symbolRadius = options.type === 'scatter' ?\n 12 : 0;\n\n if (options.id === 'video' || options.id === 'twitterVideo') {\n data.legend.symbolHeight = 30;\n data.legend.symbolWidth = undefined;\n data.legend.itemDistance = 75;\n data.legend.symbolPadding = 30;\n }\n \n const isTooSmallForLineUp = options.series.length > 4 && options.height < 400;\n if (isTooSmallForLineUp) {\n data.legend.verticalAlign = 'middle';\n }\n\n return data;\n}\n\n\nexport function postRender(highchart, options) {\n if (highchart.legend.options.enabled && options.type !== 'scatter') {\n positionLegendContainer(highchart, options);\n let items = highchart.container.querySelectorAll('.highcharts-legend-item');\n disableItems(highchart, options, items);\n if (options.id !== 'video' && options.id!=='twitterVideo') {\n formatItems(highchart, options, items);\n } else {\n [...items].forEach(item => {\n if (options.type === 'line') {\n const path = item.querySelector('path');\n path.setAttribute('stroke-width', 30);\n const d = path.getAttribute('d').split(' ');\n d[4] = '23';\n d[1] = '-7';\n path.setAttribute('d', d.join(' '));\n } else {\n const rect = item.querySelector('rect');\n const y = +rect.getAttribute('y');\n rect.setAttribute('y', y + 4);\n }\n })\n }\n if (options.legend.layout === 'right' && items.length) {\n positionRightAlignedItems(highchart, options, items);\n }\n if ((options.type === 'column' || options.type === 'bar') && options.colorMode === 'THRESHOLD' && items.length) {\n styleColorChip(options.series[0], items[0]);\n }\n } else {\n if (options.type === 'scatter' && highchart.legend.options.enabled) {\n const items = highchart.container.querySelectorAll('.highcharts-legend-item');\n disableItems(highchart, options, items);\n positionLegendContainer(highchart, options);\n if (options.legend.layout === 'right' && items.length) {\n positionItemsMiddle(highchart);\n }\n formatScatterLegend(items);\n }\n }\n}\n\nfunction formatScatterLegend(items) {\n items.forEach(item => {\n let editCircle = item.children[1];\n let editCircleDVal = editCircle.getAttribute('d');\n let indexOfFourValue = editCircleDVal.indexOf('4 4');\n editCircleDVal = editCircleDVal.replace('4 4', '5.5 5.5');\n editCircle.setAttribute('d', editCircleDVal);\n })\n}\n\n// Resets the legend group Y as items will track data/item paths instead.\n// Note that `null` in Highcharts is not the same as `0`.\nfunction positionLegendContainer(highchart, options) {\n const el = highchart.container.querySelector('.highcharts-legend');\n const isBar = options.type === 'bar';\n let x = null;\n let y = null;\n if (options.legend.layout === 'top') {\n y = isBar ? 0 : 0;\n x = options.type === 'scatter' ? 1 : x;\n } \n // else if (options.legend.layout === 'bottom') {\n // y = highchart.spacingBox.height + highchart.legend.itemHeight;\n // y = options.height - parseFloat(options.styles.normal.lineHeight) * 2;\n // } \n else if (options.legend.layout === 'right') {\n y = isBar ? null : 0;\n }\n transform.write(el, 'translate', x, y);\n}\n\n// Disable clicks on legend items since the Highcharts behavior is not\n// requested and also a bit strange.\nfunction disableItems(highchart, options, items) {\n for (let i = 0; i < highchart.series.length; i++) {\n if (highchart.series[i].legendGroup) {\n highchart.series[i].legendGroup.element.onmouseover = null;\n if (items[i]) items[i].querySelector('text').style.cursor = 'default';\n }\n }\n}\n\nexport function checkHideColorChips(options) {\n const { product, type, legend } = options;\n const { layout, showColorChips } = legend;\n return product === 'wsj' && layout === 'right' && !showColorChips\n && (type === 'line' || type === 'area');\n}\n\n// Takes the color in the block and applies it to the text.\nfunction formatItems(highchart, options, items) {\n const hideColorChips = checkHideColorChips(options);\n let x = 0;\n let initX = 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n // Draw the key with the correct dimensions:\n let rect = null;\n let path = null;\n\n if (rect = item.querySelector('rect')) {\n if (options.product !== 'marketwatch' && options.id !== 'video' && options.id !== 'twitterVideo') {\n const [height, width, y] = options.product === 'wsj' ? [10, 10, 7] : [13, 9, 5];\n rect.setAttribute('width', options.print ? 4 : width);\n rect.setAttribute('height', options.print ? 6 : height);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', options.print ? 9 : y);\n }\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews') {\n const circleX = Number(items[i].children[0].getAttribute('x'));\n const circleY = Number(items[i].children[0].getAttribute('y'));\n const circleRadius = options.print && options.sizes['print-fn'].columns <= 2 ? 5.5 : 5;\n const positionY = options.print && options.sizes['print-fn'].columns <= 2 ? 3 : 11;\n const positionX = options.print ? 0 : 7;\n const circle = highchart.renderer.circle(positionX, positionY , circleRadius).attr({\n fill: items[i].children[1].getAttribute('fill')\n });\n items[i].append(circle.element);\n if (options.print) {\n items[i].children[0].setAttribute('x', circleX + 10 );\n }\n rect.setAttribute('opacity', 0);\n }\n }\n\n if (__MARKETWATCH__) {\n if ((options.type === 'bar' || options.type === 'area' || options.type === 'column') && options.product === 'marketwatch') {\n rect.setAttribute('width', 13);\n rect.setAttribute('height', 13);\n rect.setAttribute('x', -3);\n rect.setAttribute('y', 5);\n }\n }\n if (hideColorChips) {\n rect.setAttribute('display', 'none');\n }\n } else if (path = item.querySelector('path')) {\n path.setAttribute('stroke-dasharray', 'none');\n path.setAttribute('stroke-linecap', 'butt');\n\n if (options.product !== 'marketwatch') {\n path.setAttribute('stroke-width', options.print ? 6 : 13);\n path.setAttribute('d', options.print ?\n 'M 0 12 L 4 12' :\n 'M 0 11 L 9 11');\n }\n\n if(__WSJ__){\n if (options.product === 'wsj') {\n path.setAttribute('stroke-width', options.styles.legend.rectHeight);\n path.setAttribute('d', `M 0 12 L ${options.styles.legend.rectWidth} 12`);\n }\n }\n\n if (__MARKETWATCH__) {\n if (options.type === 'line' && options.product === 'marketwatch') {\n path.setAttribute('stroke-width', 3);\n path.setAttribute('d', 'M 0 11 L 9 11');\n } else if (options.type !== 'line' && options.product === 'marketwatch') {\n path.setAttribute('stroke-width', options.print ? 6 : 13);\n path.setAttribute('d', options.print ?\n 'M 0 12 L 4 12' :\n 'M 0 11 L 9 11');\n }\n }\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews') {\n const itemsChildrenLength = items[i].children.length;\n let pathColorIndex = 0;\n let circleIndex = 1;\n if (itemsChildrenLength === 3) {\n pathColorIndex = 1;\n circleIndex = 2;\n }\n const pathColor = items[i].children[pathColorIndex].getAttribute('stroke');\n const circleX = Number(items[i].children[circleIndex].getAttribute('x'));\n const circleY = Number(items[i].children[circleIndex].getAttribute('y'));\n const circleRadius = options.print && options.sizes['print-fn'].columns <= 2 ? 5.5 : 5;\n const positionY = options.print && options.sizes['print-fn'].columns <= 2 ? 3 : 4;\n const positionX = options.print ? 10 : 8;\n let circle = highchart.renderer.circle(circleX - positionX, circleY - positionY, circleRadius).attr({\n fill: pathColor\n });\n items[i].append(circle.element);\n path.setAttribute('opacity', 0);\n if (options.print) {\n const translateVal = items[i].getAttribute('transform');\n const getLastVal = translateVal.split(',');\n items[i].setAttribute('transform', 'translate(10,' + getLastVal[1]);\n }\n }\n }\n \n if (hideColorChips) {\n path.setAttribute('display', 'none');\n if (options.markedDataPoints) {\n const marker = item.querySelector('.highcharts-point');\n marker.setAttribute('display', 'none');\n }\n }\n }\n\n if (options.print) {\n const text = item.querySelector('text');\n text.setAttribute('x', 6);\n }\n\n if (options.product === 'wsj' && !options.print) {\n const text = item.querySelector('text');\n text.setAttribute('y', 17);\n }\n\n if (hideColorChips) {\n const tspans = item.querySelectorAll('tspan');\n [...tspans].forEach(tspan => {\n const currentX = +tspan.getAttribute('x');\n tspan.setAttribute('x', -2);\n });\n }\n\n // Space the items apart. TODO: Figure out how to make Highcharts do this!\n // if (options.legend.layout !== 'right') {\n // const translate = transform.read(item, 'translate');\n // if (i === 0) {\n // initX = translate[0];\n // }\n // if (translate[0] <= initX) {\n // x = 0;\n // }\n // transform.write(item, 'translate', translate[0] + x);\n // x += options.print ? 6 : 12;\n // }\n }\n}\n\nfunction positionRightAlignedItems(highchart, options, items) {\n switch (options.type) {\n case 'area':\n case 'line':\n positionLineItems(highchart, items, options);\n break;\n case 'column':\n positionColumnItems(highchart, items, options);\n break;\n case 'bar':\n positionItemsMiddle(highchart);\n break;\n }\n}\n\nfunction positionLineItems(highchart, items, options) {\n // const isTooSmallForLineUp = options.series.length > 4 && options.height < 400;\n const itemY = getLineItemsY(highchart.container, items, options);\n const botY = highchart.plotTop + highchart.plotHeight;\n positionLegendItems(itemY, items, options, botY, highchart);\n // if (!isTooSmallForLineUp) {\n // positionLegendItems(itemY, items, options, botY, highchart);\n // } else {\n // positionItemsMiddle(highchart);\n // } \n}\n\nfunction positionColumnItems(highchart, items, options) {\n const itemY = getColumnItemsY(highchart.container, items, options);\n const botY = highchart.plotTop + highchart.plotHeight;\n positionItemsMiddle(highchart);\n}\n\n// Necessary because Highcharts messes up \"middle\".\nfunction positionItemsMiddle(highchart) {\n var legendEl = highchart.container.querySelector('g.highcharts-legend');\n var translate = transform.read(legendEl, 'translate');\n var height = legendEl.getBoundingClientRect().height;\n var newY = highchart.plotTop + (highchart.plotHeight - height) / 2;\n if (translate) transform.write(legendEl, 'translate', translate[0], newY);\n}\n\n\n// Positions the legend items to track data points but not overlap.\nfunction positionLegendItems(itemY, items, options, botY, highchart) {\n const lineHeight = parseFloat(options.styles.lineHeight.normal);\n const midIndex = Math.min(itemY.length - 1, Math.round(itemY.length / 2));\n const margin = 8;//options.print ? 4 : 8;\n let willFit = true;\n\n // let y = itemY[midIndex].y;\n // for (let i = midIndex - 1; i >= 0; i--) {\n // let h = items[itemY[i].index].getBoundingClientRect().height + margin;\n // itemY[i].y = Math.min(itemY[i].y, y - h);\n // y = itemY[i].y;\n // }\n // y = itemY[midIndex].y +\n // items[itemY[midIndex].index].getBoundingClientRect().height + margin;\n \n // find the Y positions for the corresponding series by matching color\n const legendItemPositions = [...items].map((legendItem, i) => {\n const [el, attr] = options.type === 'line' ? ['path', 'stroke'] : ['rect', 'fill'];\n const colorChip = legendItem.querySelector(el);\n const color = window.getComputedStyle(colorChip).getPropertyValue(attr);\n const match = itemY.find(obj => obj.color === color);\n return { index: i, y: match.y };\n })\n sortItemY(legendItemPositions);\n let y = legendItemPositions[0].y;\n\n legendItemPositions.forEach(position => {\n position.y = Math.max(position.y, y);\n y = position.y + items[position.index].getBoundingClientRect().height + margin;\n })\n\n // y = 0;\n // for (let i = 0; i < midIndex; i++) {\n // itemY[i].y = Math.max(y, itemY[i].y);\n // y = itemY[i].y + items[itemY[i].index].getBoundingClientRect().height + margin;\n // }\n\n // for (let i = midIndex; i < items.length; i++) {\n // // let h = y + items[itemY[i - 1].index].getBoundingClientRect().height;// + margin;\n // itemY[i].y = Math.max(itemY[i].y, y);\n // y = itemY[i].y + items[itemY[i].index].getBoundingClientRect().height + margin;\n // }\n \n\n legendItemPositions.forEach(position => {\n if (position.y > botY) {\n positionItemsMiddle(highchart)\n willFit = false;\n }\n })\n\n // Finally, set the Y of the actual legend item element.\n if (willFit) {\n legendItemPositions.forEach(position => {\n if (position.y < botY) {\n transform.write(items[position.index], 'translate', null, position.y);\n }\n })\n }\n}\n\n\n// Returns array of Y positions for each legend item for column charts.\nfunction getColumnItemsY(container, items, options) {\n const fontSize = parseFloat(options.styles.size.normal);\n const seriesEl = container.querySelector('.highcharts-series-group');\n const barsEl = seriesEl.querySelectorAll('.highcharts-series');\n const printOffset = options.print ? -8 : 0;\n let itemY = [];\n\n for (let i = 0; i < items.length; i++) {\n // Get the path's parent and path Y.\n const g = barsEl[i];\n const rects = g.querySelectorAll('rect');\n const r = rects[rects.length - 1];\n const rY = (rects && rects.length) ?\n (transform.read(g, 'translate')[1] +\n (+r.getAttribute('y') + +r.getAttribute('height') / 2)) :\n fontSize;\n\n // Combine the results.\n itemY[i] = {\n index: i,\n y: rY - fontSize + printOffset\n };\n }\n\n return sortItemY(itemY);\n}\n\n// Returns array of Y positions for each legend item for line/area charts.\nfunction getLineItemsY(container, items, options) {\n const fontSize = parseFloat(options.styles.size.normal);\n const seriesEl = container.querySelector('.highcharts-series-group');\n const linesEl = seriesEl.querySelectorAll('.highcharts-series');\n const itemY = [];\n\n for (let i = 0; i < linesEl.length; i++) {\n // Get the path's parent and path Y.\n // var pathEl = seriesEl.querySelector('.highcharts-series.highcharts-series-' + i);\n const [lineIndex, attr] = options.type === 'area' ? [i, 'fill'] :\n [linesEl.length - i - 1, 'stroke'];\n const pathEl = linesEl[lineIndex];\n const pathElY = transform.read(pathEl, 'translate')[1];\n const paths = pathEl.querySelectorAll('path');\n const d = transform.read(paths[0], 'd');\n const color = window.getComputedStyle(paths[0]).getPropertyValue(attr);\n d.sort((a, b) => {\n return b[0] - a[0];\n });\n \n let pathY;\n if (options.type === 'line') {\n pathY = d[0][1];\n } else {\n const dx = d[0][0];\n const d0 = d.filter(item => {\n return item[0] === dx;\n }).sort((a, b) => {\n return a[1] - b[1]\n });\n if (d0.length >= 2) {\n pathY = (d0[d0.length - 1][1] - d0[0][1]) / 2 + d0[0][1];\n } else {\n pathY = d0[0][1];\n }\n }\n \n // Combine the results.\n itemY[i] = {\n index: i,\n y: pathY,// + fontSize / 2,\n color: color\n };\n }\n return sortItemY(itemY);\n}\n\n\n// Sort on Y and return.\nfunction sortItemY(itemY) {\n itemY.sort((a, b) => {\n return a.y - b.y;\n });\n return itemY;\n}\n\nfunction compileText(series, item, options) {\n const val = options.type === 'scatter' ? series.name : lastItem(item.yData);\n return (series.markdown || '')\n .replace(CATEGORY, options.liveMarketData || options.type === 'scatter' ? 'n/a' : compiledCategory(options) || 'n/a')\n .replace(SERIES, series.name || 'n/a')\n .replace(SYMBOL, item.userOptions.symbol || 'n/a')\n .replace(VALUE, options.liveMarketData ? 'n/a' : val)\n .replace(POINT, options.liveMarketData ? 'n/a' : compiledPoint(item.yData, options));\n}\n\nfunction compiledCategory(options) {\n if (!options.longCategories) return 'n/a';\n return options.categoriesAreDates && options.dates[0].value > lastItem(options.dates).value ?\n options.longCategories[0]\n :\n lastItem(options.longCategories);\n}\n\nfunction compiledPoint(data, options) {\n return lastItem(data) ?\n format.applyFull(lastItem(data), options.tooltips, options.type === 'pie', true, true)\n :\n 'null';\n}\n\nfunction lastItem(arr) {\n return typeof arr === 'string' ? arr : arr[arr.length - 1];\n}\n\n// split the color chip into two colors for threshold charts\nfunction styleColorChip(series, item) {\n const colorChip = item.querySelector('rect');\n const topColor = series.color;\n const bottomColor = series.negativeColor;\n const [defs, gradient, topStop, bottomStop] =\n [createSvgEl('defs'), createSvgEl('linearGradient'), createSvgEl('stop'), createSvgEl('stop')];\n const gradientAttrs = { 'id': 'lg', 'x2': '0%', 'y2': '100%' };\n setAttrs(gradient, gradientAttrs);\n setOffset(topStop, bottomStop);\n setColor(topStop, topColor);\n setColor(bottomStop, bottomColor);\n gradient.appendChild(topStop);\n gradient.appendChild(bottomStop);\n defs.appendChild(gradient);\n item.appendChild(defs);\n colorChip.setAttribute('fill', 'url(#lg)');\n}\n\nfunction createSvgEl(type) {\n const svgns = 'http://www.w3.org/2000/svg';\n return document.createElementNS(svgns, type);\n}\n\nfunction setAttrs(el, attrs) {\n for (let key in attrs) {\n el.setAttribute(key, attrs[key]);\n }\n}\n\nfunction setOffset(...args) {\n args.forEach(arg => arg.setAttribute('offset', '50%'));\n}\n\nfunction setColor(el, color) {\n el.setAttribute('stop-color', color);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/legend.js","import * as format from '../data/format';\nimport moment from 'moment'; \nimport { TRANSPARENT } from '../data/constants';\n\n\nexport function preRender(data, options) {\n data.tooltip = { enabled: options.interactive && options.showTooltips };\n const tooltip = data.tooltip;\n if (tooltip.enabled) {\n tooltip.borderWidth = 1;\n tooltip.borderColor = '#CCC';\n tooltip.shared = false;\n tooltip.style = getStyle(options);\n tooltip.split = false; \n tooltip.shadow = false;\n tooltip.hideDelay = options.type === 'line' || options.type === 'area' ?\n 500 : 5000;\n tooltip.formatter = function () {\n return formatter(data, options, this);\n };\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n tooltip.borderRadius = 0;\n tooltip.padding = 5;\n }\n }\n return data;\n}\n\nfunction formatter(data, options, context) {\n // hide tooltip for transparent data\n if (context.color === TRANSPARENT) return false;\n\n const {\n needsCommas,\n liveMarketData,\n isPercent,\n isIntraday,\n series,\n longCategories,\n tooltips,\n type,\n categoriesAreDates,\n optimizeDataOrder,\n stacking,\n axes\n } = options;\n \n const categories = longCategories ||\n (options.categories ? options.categories[0] : null);\n\n const marketNotBar = liveMarketData && type !== 'bar';\n let category;\n if (marketNotBar) {\n const catIdx = series[0].data.findIndex(({ x }) => x === context.x);\n category = formatCategory(categories[catIdx]);\n }\n\n const { decimals, prefix, suffix } = context.series.userOptions;\n const tooltipY = getTooltipY(axes, tooltips, context.point.y);\n const isStackedPercent = (type === 'column' || type === 'area' || type === 'bar') &&\n stacking === 'percent';\n const value = marketNotBar ? \n getValue(context.y, isPercent, prefix, suffix, decimals, needsCommas)\n :\n format.applyFull(tooltipY, tooltips, type === 'pie', true, true, false, isStackedPercent);\n\n if (!marketNotBar) {\n let firstYear = categories[0];\n let lastYear = categories[categories.length - 1];\n let isReverse = false;\n if (typeof firstYear === 'string' && typeof lastYear === 'string' && categoriesAreDates) {\n let firstYearSplit = firstYear.split(' ');\n let lastYearSplit = lastYear.split(' ');\n if (firstYearSplit.indexOf('p.m.') !== -1 && firstYearSplit.indexOf('a.m.') !== -1) {\n let firstYearTime = firstYearSplit[firstYearSplit.length - 2];\n let firstYearTimeSplit = firstYearTime.split(':')\n let hourFirstTimeSplit = parseInt(firstYearTimeSplit) + 12;\n hourFirstTimeSplit = hourFirstTimeSplit.toString();\n firstYearTimeSplit[0] = hourFirstTimeSplit;\n firstYearTimeSplit = firstYearTimeSplit.join(':');\n let lastYearTime = lastYearSplit[lastYearSplit.length - 2];\n let lastYearTimeSplit = lastYearTime.split(':')\n let hourLastTimeSplit = parseInt(lastYearTimeSplit) + 12;\n hourLastTimeSplit = hourLastTimeSplit.toString();\n lastYearTimeSplit[0] = hourLastTimeSplit;\n lastYearTimeSplit = lastYearTimeSplit.join(':');\n\n isReverse = firstYearTimeSplit > lastYearTimeSplit;\n } else {\n isReverse = findIfReverse(categories)\n }\n }\n \n if (isReverse) {\n categories.reverse();\n }\n const seriesData = !data.series ? series : data.series;\n var dataPoint = getDataPoint(seriesData, context, isReverse);\n }\n const index = dataPoint ? dataPoint.index : null;\n\n if (type === 'pie' && optimizeDataOrder && dataPoint.point.hasOwnProperty('originalIndex')) {\n category = context.point.name;\n } else if (!marketNotBar) {\n category = categories ? categories[index] : (context.point.category ||\n context.point.options.name);\n }\n const formatter = { category, value, index };\n\n if (isStackedPercent) {\n return formatStackedPercent(data, options, context, formatter);\n }\n return formatStandard(options, context, formatter);\n}\n\nfunction formatCategory(category) {\n const month = category.match(/([A-za-z]{3,})(\\s|.)/g);\n const day = category.match(/(\\d{1,2}),/g);\n const year = category.match(/\\d{4}/g);\n const time = category.match(/(\\d{1,2}):(\\d{2})|\\s\\d{1,2}\\s/g);\n const ampm = category.match(/(a|p).m./g);\n let updatedDate = '';\n if (month) updatedDate += `${formatMonth(month)} `;\n if (day) updatedDate += `${day[0]} `;\n if (year) updatedDate += year[0];\n if (time) {\n updatedDate += ` ${time[0]} ${ampm[0]}`;\n }\n return updatedDate;\n}\n\nfunction formatMonth(month) {\n return month[0].slice(0, 3);\n}\n\nfunction getTooltipY(axes, tooltips, y) {\n if (axes.units) {\n return format.getDivisor(axes.units.divisor) * y / format.getDivisor(tooltips.divisor);\n }\n return y;\n}\n\nfunction getValue(y, isPercent, prefix, suffix, decimals, needsCommas) {\n return isPercent ?\n `${y.toFixed(1)}%`\n :\n formatY(y, decimals, needsCommas, prefix, suffix);\n}\n\nfunction formatY(y, decimals, needsCommas, prefix, suffix) {\n y = y.toFixed(decimals);\n\n if (!needsCommas) return y;\n\n const [dollars, cents] = y.split('.');\n const digitsArr = dollars.split('').reverse();\n const commasAdded = addCommas(digitsArr);\n let finalString = prefix + formatDollars(commasAdded);\n if (cents) finalString += `.${cents}`;\n return finalString + suffix;\n}\n\nfunction addCommas(digits) {\n return digits.reduce((str, digit, i) => str + checkComma(i) + digit, '');\n}\n\nfunction checkComma(i) {\n return i % 3 === 0 && i > 0 ? ',' : '';\n}\n\nfunction formatDollars(digits) {\n return digits.split('').reverse().join('');\n}\n\nfunction findIfReverse(categories) {\n let currentDateComparison = categories[0]\n if (isNaN(Date.parse(currentDateComparison))) {\n let currentDateComparisonLength = currentDateComparison.split(' ').length;\n if (currentDateComparisonLength === 2) {\n currentDateComparison = currentDateComparison.split(' ').join(' 1, ');\n currentDateComparison = currentDateComparison.replace('.', '');\n }\n }\n for (let f = 1; f < categories.length; f++) {\n let currentCategory = categories[f];\n if (isNaN(Date.parse(currentCategory))) {\n let currentIndexComparisonLength = categories[f].split(' ').length;\n if (currentIndexComparisonLength === 2) {\n currentCategory = currentCategory.split(' ').join(' 1, ');\n currentCategory = currentCategory.replace('.', '');\n }\n }\n if (isNaN(new Date(currentCategory))) {\n return false;\n }\n if (f === 1) {\n if (Date.parse(currentDateComparison) < Date.parse(currentCategory)) {\n return false;\n }\n } else {\n // currentDateComparison = categories[f - 1];\n if (Date.parse(currentDateComparison) < Date.parse(currentCategory)) {\n return false;\n }\n if (f === categories.length - 1 && Date.parse(currentDateComparison) > Date.parse(currentCategory)) {\n return true;\n }\n \n }\n }\n}\n\nfunction getDataPoint(series, context, isReverse) {\n if (context.x !== undefined) {\n for (let s = 0; s < series.length; s++) {\n for (let d = 0; d < series[s].data.length; d++) {\n if (series[s].data[d].x === context.x) {\n return { point: series[s].data[d], index: series[s].data[d].index };\n }\n }\n }\n }\n return {\n point: context.point,\n index: context.point.hasOwnProperty('index') ? context.point.index :\n context.point.x\n };\n}\n\n// NEVER CALLED\n// function divideValue(value, divisorUnit) {\n// if (divisorUnit && divisorUnit !== 'none') {\n// const divisor = format.getDivisor(divisorUnit);\n// return +value / divisor;\n// }\n// return value;\n// }\n\nfunction space() {\n return '<span style=\"color: rgba(255, 255, 255, 0);\">x</span>';\n}\n\n\nfunction formatStandard(options, context, formatter) {\n const isWSJWeight = options.product === 'wsj' ? 500 : 600;\n return [\n '<span>',\n formatSeries(options, context),\n '<span>',\n formatter.category,\n '</span>',\n space(),\n `<span style=\"font-weight: ${isWSJWeight};\">`,\n formatter.value,\n '</span>',\n '</span>'\n ].join('');\n}\n\n\nfunction formatStackedPercent(data, options, context, formatter) {\n const isWSJWeight = options.product === 'wsj' ? 500 : 600;\n let total = 0;\n data.series.forEach(item => {\n total += item.data[formatter.index].y;\n });\n return [\n '<span style=\"',\n formatter.style,\n '\">',\n formatSeries(options, context),\n '<span style=\"padding: 0 6px 0 0;\">',\n formatter.category,\n '</span>',\n space(),\n `<span style=\"font-weight: ${isWSJWeight}; margin: 0 0 0 24px\">`,\n formatter.value,\n ' (',\n Math.round(context.point.y / total * 100),\n '%)',\n '</span>',\n '</span>'\n ].join('');\n}\n\n\n\nfunction formatSeries(options, context) {\n if (options.legend.enabled && options.series.length > 1) {\n let css;\n let defaultCSS = [\n 'padding: 0 6px 0 0;',\n ];\n\n if (options.product !== 'wsj') {\n css = defaultCSS.concat([\n 'font-weight: 600;',\n `color: ${context.series.color};`\n ]).join('');\n }\n\n if (options.product === 'wsj') {\n css = defaultCSS.concat([\n 'font-weight: 500;'\n ]).join('');\n }\n let nameArray = options.type === 'scatter' ? context.point.value.toString().split(' ') : context.series.name.toString().split(' ');\n if (nameArray[0] === '<br') {\n for (let i = 0; i < nameArray.length; i++) {\n if (nameArray[i] === '<br' || nameArray[i] === '/>') {\n nameArray.splice(i, 1);\n i--\n }\n }\n }\n nameArray = nameArray.join(' ');\n return [\n `<span style=\"${css}\">`,\n nameArray,\n '</span>',\n space()\n ].join('');\n }\n}\n\n\nfunction getStyle(options) {\n let width = options.width > 300 ? '400px' : '250px';\n let data = {\n padding: '8px',\n width: width,\n fontSize: '14px',\n fontFamily: options.styles.font.normal,\n fontWeight: options.styles.weight.normal,\n fontStyle: 'normal',\n color: '#000000',\n whiteSpace: 'normal !important',\n overflow: 'auto'\n };\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n data.fontSize = '15px';\n data.lineHeight = '18px';\n data.fontWeight = 300;\n }\n }\n\n return data;\n}\n\n\n\nexport function postRender(highchart, options) {\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/tooltips.js","import axesPreRender from './axes-prerender';\nimport axesPostRender from './axes-postrender';\n\n\nlet styles = null;\n\n\nexport function preRender(data, options) {\n styles = writeStyles(options);\n return axesPreRender(data, options, styles);\n}\n\nexport function postRender(highchart, options) {\n styles = writeStyles(options);\n return axesPostRender(highchart, options, styles);\n}\n\n// Writes styles constants used throughout axes processing.\nfunction writeStyles(options) {\n // const isWSJOnline = !options.product === 'wsj' && options.print ? options.styles.get('normal') : \n // options.styles.get('normal').fontFamily = '\"Retina Narrow\", sans-serif';\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo'\n let normal = options.styles.get('normal');\n if (options.product === 'wsj' && !options.print) {\n if (options.categoriesAreDates || options.type !== 'column') normal.fontFamily = '\"Retina Narrow\", sans-serif';\n if (isVideoGroup) normal.fontWeight = 400;\n normal.lineHeight = 15;\n }\n const defaultOptions = {\n FONT_SIZE: parseFloat(options.styles.size.normal),\n NORMAL_STYLE: normal,\n LIGHT_STYLE: options.styles.get('normal', {\n fontFamily: options.styles.font.light,\n fontWeight: options.styles.weight.light\n }),\n BOLD_STYLE: options.styles.get('normal', {\n fontFamily: options.styles.font.bold,\n fontWeight: options.styles.weight.bold\n }),\n SHORT_TICK_LENGTH: 4,\n MEDIUM_TICK_LENGTH: 7,\n LONG_TICK_LENGTH: parseFloat(options.styles.size.normal) + 5,\n MARGIN: 3\n };\n\n if (__MARKETWATCH__) {\n if (options.product === 'marketwatch') {\n return Object.assign({}, defaultOptions, {\n NORMAL_STYLE: options.styles.get('normal', {\n fontFamily: options.styles.font.semibold,\n fontWeight: options.styles.weight.semibold\n })\n });\n }\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n const hideTicks = (!options.categoriesAreDates && options.type === 'column')\n return Object.assign({}, defaultOptions, {\n SHORT_TICK_LENGTH: hideTicks ? 0 : options.styles.tick.shortSize,\n MEDIUM_TICK_LENGTH: hideTicks ? 0 : options.styles.tick.mediumSize,\n FONT_SIZE: options.styles.axes.label.fontSize,\n LONG_TICK_LENGTH: hideTicks ? 0 : options.styles.tick.longSize,\n AXES: options.styles.axes\n });\n }\n }\n\n if (options.product === 'knewz') {\n return Object.assign({}, defaultOptions, {\n NORMAL_STYLE: options.styles.get('normal', {\n fontWeight: 700,\n fontSize: options.styles.axes.label.fontSize,\n lineHeight: options.styles.axes.label.lineHeight\n })\n })\n }\n\n if (__MANSIONGLOBAL__) {\n if (options.product === 'mansionglobal') {\n return Object.assign({}, defaultOptions, {\n AXES: options.styles.axes\n })\n }\n }\n\n return defaultOptions;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/axes.js","import * as format from '../data/format';\nimport { MONTHS, MONTHS_SHORT, APOSTROPHE, NBSP } from '../data/constants';\nimport { YEAR_MILLISECONDS, checkArticle } from './axes-common';\nimport { findMilliseconds } from './annotations-prerender';\nimport { COLOR_BAND, VIDEO_COLOR_BAND } from './recessions';\nimport { addZeroes } from '../data/zero';\nimport assign from 'lodash.assign';\nimport moment from 'moment-timezone';\nlet isPrint;\n\nexport default function axesPreRender(data, options, styles) {\n data = writeCommonOptions(data, options);\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo'; \n switch (options.type) {\n case 'pie':\n return data;\n case 'bar':\n data = writeHorizontalOptions(data, options, styles);\n break;\n default:\n data = writeVerticalOptions(data, options, styles);\n break;\n }\n if (options.product !== 'financialnews') {\n data.xAxis.gridLineColor = data.yAxis.gridLineColor = options.print ?\n '#bfbfbf' : '#e6e6e6';\n } else {\n data.xAxis.gridLineColor = data.yAxis.gridLineColor = options.print ? '#000000' : '#e6e6e6';\n }\n\n if (options.product === 'knewz') {\n data.yAxis.gridLineColor = '#fefefe'\n }\n\n if (isVideoGroup) {\n if(options.id === 'video'){\n data.xAxis.gridLineColor = '#CBCBCB';\n data.yAxis.gridLineColor = '#CBCBCB';\n }\n if(options.id === 'twitterVideo'){\n data.xAxis.gridLineColor = '#8B8B8B';\n data.yAxis.gridLineColor = '#8B8B8B';\n }\n data.xAxis.lineColor = '#656565';\n data.xAxis.lineWidth = options.id === 'video' ? 11 : 8;\n } \n\n data = writeMinMax(data, options);\n if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== 'auto' && options.mobileXAxisInterval !== undefined) {\n tickIntervalCalc(options, data, true)\n }\n if (options.xAxisInterval !== 'auto' && options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n tickIntervalCalc(options, data, false)\n }\n\n if (!options.yAxisMobileEnabled && (options.yAxisMobileInterval !== '') && options.yAxisMobileInterval !== undefined && options.width < 620) {\n setTickIntervalForYAxis(options, data, true)\n }\n\n if ((options.yAxisInterval !== '') && options.yAxisInterval !== undefined && (options.width >= 620 || options.yAxisMobileEnabled)) {\n setTickIntervalForYAxis(options, data, false)\n }\n\n data.xAxis.plotBands = options.plotBands ?\n getPlotBands(options)\n :\n [];\n\n data.yAxis.plotLines = options.plotLines[0].plotLineValue ?\n\n options.plotLines.reduce((accum, plotLine) => {\n if(plotLine.plotLineValue){\n const label = options.type === 'bar' ? {\n text: plotLine.plotLineLabel,\n verticalAlign: plotLine.plotLineLabelPosition.includes('top') ? 'top' : 'bottom',\n textAlign: plotLine.plotLineLabelPosition.includes('top') ? 'left' : 'right',\n x: plotLine.plotLineLabelPosition.includes('right') ? 6: -13,\n y: 0,\n style: {\n color: '#323232',\n fontFamily: 'Retina Narrow'\n }\n }: {\n text: plotLine.plotLineLabel,\n align: plotLine.plotLineLabelPosition.includes('right') ? 'right' : 'left',\n x: plotLine.plotLineLabelPosition.includes('right') ? -10 : 0,\n y: plotLine.plotLineLabelPosition.includes('top') ? -6 : 15,\n style: {\n color: '#323232',\n fontFamily: 'Retina Narrow'\n }\n };\n accum.push({\n value: plotLine.plotLineValue,\n color: plotLine.plotLineColor,\n dashStyle: plotLine.plotLineDashStyle,\n width: plotLine.id === 'video' ? 11: plotLine.id === 'twitterVideo' ? 8 : 2,\n zIndex: ['area', 'bar', 'column'].includes(options.type) ? 5 : 3,\n label: label,\n })\n }\n return accum;\n }, []): [];\n return data;\n}\n\nfunction getPlotBands(options) {\n const { plotBands, id } = options;\n const isVideoGroup = id === 'video' || id === 'twitterVideo';\n \n return plotBands.map(band => {\n const offset = moment(band.to).tz('America/New_York').utcOffset();\n const [to, from] = ['to', 'from'].map(prop =>\n moment(band[prop]).add(offset, 'm').valueOf());\n return {\n to,\n from,\n color: isVideoGroup ? VIDEO_COLOR_BAND : COLOR_BAND\n }\n })\n}\n\nfunction setTickIntervalForYAxis(options, data, isMobile) {\n const typeOfInterval = isMobile ? 'yAxisMobileInterval' : 'yAxisInterval';\n const interval = options[typeOfInterval]\n if (interval !== '') {\n data.yAxis.tickInterval = Number(interval);\n }\n}\n\nfunction tickIntervalCalc(options, data, isMobile) {\n const typeOfInterval = isMobile ? 'mobileXAxisInterval' : 'xAxisInterval';\n let interval = options[typeOfInterval].split(' ')[0];\n let unit = options[typeOfInterval].split(' ')[1];\n if (unit === 'years' || unit === 'year') {\n data.xAxis.tickInterval = 24 * 3600 * 1000 * 365 * parseInt(interval);\n }\n if (unit === 'months' || unit === 'month') {\n data.xAxis.tickInterval = 24 * 3600 * 1000 * 30 * parseInt(interval);\n }\n if (unit === 'day') {\n data.xAxis.tickInterval = 24 * 3600 * 1000;\n }\n if (unit === 'week') {\n data.xAxis.tickInterval = 24 * 3600 * 1000 * 7;\n }\n}\n\nfunction checkForType(type) {\n return function(...types) {\n return types.includes(type);\n }\n}\n\n// Options common to all charts with axes.\nfunction writeCommonOptions(data, options) {\n const { type, product } = options;\n const checkChartTypes = checkForType(type);\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo'; \n let offsetVal = isVideoGroup ?\n 15 : 0;\n let oppositeVal = false;\n let horizontalGridLineStyle = 'solid';\n if (checkChartTypes('line', 'area')) {\n data.plotOptions.series.connectNulls = options.connectEmptyDataPoints !== 'none';\n }\n if (__MARKETWATCH__) {\n if (product === 'marketwatch' && checkChartTypes('line', 'scatter')) {\n offsetVal = 4;\n oppositeVal = true;\n }\n if (product === 'marketwatch' && type === 'column') {\n horizontalGridLineStyle = 'dash'\n oppositeVal = true;\n offsetVal = 8;\n }\n }\n if (__FINANCIALNEWS__) {\n if (product === 'financialnews' && checkChartTypes('line', 'column', 'scatter')) {\n oppositeVal = true;\n offsetVal = 4;\n }\n }\n\n const endOnTick = options.axes.maxYAxisValue ? false : true;\n const startOnTick = options.axes.minYAxisValue ? false : true;\n \n let endOnTickX = false;\n let startOnTickX = false;\n \n if (type === 'scatter') {\n endOnTickX = options.axes.maxXAxisValue ? false : true;\n startOnTickX = options.axes.minXAxisValue ? false : true;\n }\n\n if (product === 'marketwatch' && type === 'line') {\n endOnTickX = true;\n startOnTickX = true;\n }\n\n data.xAxis = {\n title: {\n text: options.headings.xaxisTitle.text.toUpperCase(),\n style: {\n fontSize: options.styles.title.fontSize,\n fontFamily: options.styles.title.fontFamily\n },\n offset: 20\n },\n tickColor: '#000000',\n startOnTick: startOnTickX,\n endOnTick: endOnTickX,\n overscroll: calculateOverscroll(options)\n };\n data.yAxis = {\n title: {\n text: options.headings.yaxisTitle.text.toUpperCase(),\n style: {\n fontSize: options.styles.title.fontSize,\n fontFamily: options.styles.title.fontFamily\n },\n offset: 40\n },\n tickColor: '#000000',\n offset: offsetVal,\n opposite: oppositeVal,\n gridLineDashStyle: horizontalGridLineStyle,\n startOnTick: startOnTick,\n endOnTick: type === 'scatter' || endOnTick,\n allowDecimals: options.allowDecimals,\n // lineColor: options.type === 'scatter' ? '#e6e6e6' : '#ffffff',\n // lineWidth: options.type === 'scatter' ? 1 : 0\n };\n\n if (__WSJ__){\n if (product === 'wsj'){\n data.xAxis.tickColor = options.styles.tick.color;\n }\n }\n // data.yAxis.opposite = true;\n // if (options.stacking === 'normal') {\n // data.yAxis.max = 100;\n // }\n return data;\n}\n\nfunction calculateOverscroll(options) {\n const { series, id, irregularDates, markedDataPoints } = options;\n const isVideoGroup = id === 'video' || id === 'twitterVideo' \n const multiplier = isVideoGroup? 25 : 5;\n return irregularDates && markedDataPoints ?\n findMilliseconds(options, series[0].data) * multiplier\n :\n 0;\n}\n\n\n// Writes chart options for bar charts (i.e., horizontal bars).\nfunction writeHorizontalOptions(data, options, styles) {\n if (options.horizontalBarType === 'normal') {\n if (Array.isArray(options.categories)) {\n data.xAxis.categories = getCategoryLabels(options.categories[0]);\n }\n data.xAxis.tickLength = 0;\n data.xAxis.offset = -2;\n data.xAxis.lineWidth = 0;\n data.yAxis.gridLineWidth = 1;\n \n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n data.yAxis.gridLineWidth = 0.5;\n }\n }\n \n const lineHeight = styles.BOLD_STYLE.fontSize;\n data.xAxis.labels = {\n style: assign({}, styles.BOLD_STYLE, {\n whiteSpace: 'wrap', textOverflow: 'visible', lineHeight\n }),\n // step: 1,\n x: -7,\n y: options.print ? 3 : undefined,\n align: 'left',\n reserveSpace: true\n // format: '{value}',\n };\n if (options.id === 'print-barrons') {\n data.xAxis.labels.style.fontSize = 7.5;\n }\n \n if (options.axes.shown) {\n data.yAxis.reversedStacks = false;\n data.yAxis.opposite = true;\n data.yAxis.reversed = !!options.axes.reversed;\n data.yAxis.labels = {\n y: -5,\n style: assign({}, styles.NORMAL_STYLE,\n { whiteSpace: 'nowrap', textOverflow: 'visible`' }),\n autoRotation: false,\n formatter: function () {\n \n const special = (options.axes.reversed && this.isLast) ||\n (!options.axes.reversed && this.isFirst);\n return formatterBarYAxisLabel(options.axes.units, this.value, special);\n }\n }\n if (options.id === 'print-barrons') {\n data.yAxis.labels.style.fontSize = 7.5;\n };\n }\n \n if (__WSJ__) {\n if (options.product === 'wsj') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.x.fontSize,\n fontWeight: options.styles.axes.label.bar.x.fontWeight,\n lineHeight: options.styles.axes.label.bar.x.lineHeight\n });\n \n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.y.fontSize,\n fontWeight: options.styles.axes.label.bar.y.fontWeight,\n lineHeight: options.styles.axes.label.bar.y.lineHeight\n });\n \n }\n }\n if (__MANSIONGLOBAL__) {\n if (options.product === 'mansionglobal') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n color: options.styles.axes.color\n });\n \n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n color: options.styles.axes.color\n });\n }\n }\n } else {\n if (Array.isArray(options.categories)) {\n data.xAxis.categories = getCategoryLabels(options.categories[0]);\n }\n data.xAxis.tickLength = 0;\n data.xAxis.offset = -2;\n data.xAxis.lineWidth = 0;\n data.yAxis.gridLineWidth = options.horizontalBarType === 'aboveBar' ? 0 : 1;\n data.yAxis.visible = false;\n const lineHeight = styles.BOLD_STYLE.fontSize;\n\n let numerator = 1;\n let denominator = 5;\n const seriesLength = data.series[0].data.length;\n let getNewDemoninator = (seriesLength - 1) * 2.5;\n denominator = denominator + getNewDemoninator;\n if (options.horizontalBarType === 'noScaleAndLeft') {\n data.xAxis.labels = {\n style: assign({}, styles.BOLD_STYLE, {\n whiteSpace: 'wrap', textOverflow: 'visible', lineHeight\n }),\n // step: 1,\n x: -7,\n y: options.print ? 3 : undefined,\n align: 'left',\n reserveSpace: true\n // format: '{value}',\n };\n } else {\n data.xAxis.labels = {\n style: assign({}, styles.BOLD_STYLE, {\n whiteSpace: 'nowrap', textOverflow: 'visible', lineHeight,\n }),\n // step: 1,\n x: -2,\n align: 'left',\n y: -(options.height * numerator/denominator),\n // format: '{value}',\n };\n }\n \n if (options.id === 'print-barrons') {\n data.xAxis.labels.style.fontSize = 7.5;\n }\n\n if (options.axes.shown) {\n data.yAxis.reversedStacks = false;\n data.yAxis.opposite = true;\n data.yAxis.reversed = !!options.axes.reversed;\n data.yAxis.labels = {\n y: -5,\n style: assign({}, styles.NORMAL_STYLE,\n { whiteSpace: 'nowrap', textOverflow: 'visible`' }),\n autoRotation: false,\n formatter: function () {\n \n const special = (options.axes.reversed && this.isLast) ||\n (!options.axes.reversed && this.isFirst);\n return formatterBarYAxisLabel(options.axes.units, this.value, special);\n }\n }\n if (options.id === 'print-barrons') {\n data.yAxis.labels.style.fontSize = 7.5;\n };\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.x.fontSize,\n fontWeight: options.styles.axes.label.bar.x.fontWeight,\n lineHeight: options.styles.axes.label.bar.x.lineHeight\n });\n \n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.bar.y.fontSize,\n fontWeight: options.styles.axes.label.bar.y.fontWeight,\n lineHeight: options.styles.axes.label.bar.y.lineHeight\n });\n \n }\n }\n if (__MANSIONGLOBAL__) {\n if (options.product === 'mansionglobal') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n color: options.styles.axes.color\n });\n \n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n color: options.styles.axes.color\n });\n }\n }\n }\n return data;\n}\n\nfunction formatterBarYAxisLabel(units, value, special) {\n value = format.decimals(value, units);\n value = format.commas(value, units);\n const prefix = units.prefix || '';\n const suffix = units.suffix || '';\n if (prefix && value.charAt(0) === '-') {\n // If value is negative, put the negative sign *before* the prefix.\n value = `-${prefix}${value.substr(1)}`;\n } else {\n value = `${prefix}${value}`;\n }\n if (special && suffix) {\n value += suffix;\n }\n return value;\n}\n\n\n// Writes chart options for column charts (i.e, vertical bars) and charts for\n// which the axes are the same as for column charts (i.e., line charts).\nfunction writeVerticalOptions(data, options, styles) {\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo' \n const Q = options.quarterlyResults && options.series[0].data.length <= 44;\n isPrint = options.print;\n let defaultXGridWidth = 0;\n if (__MARKETWATCH__) {\n if (options.type === 'line' && options.product === 'marketwatch') {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n defaultXGridWidth = 1;\n }\n if (options.type === 'column' && options.product === 'marketwatch') {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n }\n }\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews' && (options.type === 'line' || options.type === 'column')) {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n }\n }\n\n if (options.type === 'scatter') {\n data.xAxis.tickColor = 'rgba(0, 0, 0, 0)';\n }\n\n data.xAxis.tickWidth = 1;\n data.xAxis.lineWidth = 0;\n data.xAxis.gridLineWidth = options.type === 'scatter' ? 1 : 0;\n if (options.product === 'marketwatch' && options.type === 'line') {\n data.xAxis.gridLineWidth = 1;\n }\n data.xAxis.minorGridLineWidth = defaultXGridWidth;\n data.yAxis.gridLineWidth = options.id === 'print-barrons' ? 0.4 : 1;\n data.yAxis.tickPixelInterval = isVideoGroup ? 90 : parseFloat(styles.NORMAL_STYLE.lineHeight) * 3;\n data.yAxis.reversed = !!options.axes.reversed;\n let alignYAxis = 'right';\n let yAxisXVal = -10;\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n data.xAxis.tickWidth = 0.5;\n data.yAxis.gridLineWidth = 0.5;\n }\n if (isVideoGroup) {\n alignYAxis = 'left';\n yAxisXVal = 0;\n }\n }\n let yAxisYVal = -5;\n if (__MARKETWATCH__) {\n if ((options.product === 'marketwatch' || options.product === 'financialnews') && (options.type === 'line' || options.type === 'column')) {\n alignYAxis = 'left';\n yAxisXVal = 0;\n yAxisYVal = -2.5;\n }\n }\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews') {\n if (options.print === true && options.sizes['print-fn'].columns <= 2) {\n styles.LIGHT_STYLE.fontSize = 7.75;\n }\n }\n }\n if (options.print === true && options.product === 'financialnews') {\n styles.LIGHT_STYLE.color = '#000000';\n }\n if (options.id === 'print-barrons') {\n yAxisYVal = -2;\n }\n\n data.yAxis.labels = {\n style: isPrint ? styles.LIGHT_STYLE : styles.NORMAL_STYLE,\n autoRotation: false,\n align: alignYAxis,\n x: yAxisXVal,\n reserveSpace: isVideoGroup ? true : undefined,\n y: calculateYAxesLabelY(options, yAxisYVal),\n formatter: function () {\n const tp = this.axis.tickPositions;\n const decimalsDelta = Math.abs(tp[0] - tp[1]);\n let decimalPlaces = Number.isInteger(decimalsDelta) ? 0 : roundPlaces(decimalsDelta);\n // special = should have prefix and/or suffix:\n const special = options.axes.reversed && this.isFirst ||\n !options.axes.reversed && this.isLast;\n return formatterYAxisLabel(options.axes.units, this.value, decimalPlaces, special);\n }\n };\n\n options.axes.tickStyle = options.axes.tickStyle || 'center';\n data.xAxis.labels = {\n style: isPrint ? styles.LIGHT_STYLE : styles.NORMAL_STYLE,\n autoRotation: false,\n maxStaggerLines: 1,\n };\n data.xAxis.labels.style.textOverflow = 'visible';\n if (!options.allowCategoriesLinebreak) {\n data.xAxis.labels.style.whiteSpace = 'nowrap';\n }\n data.xAxis.labels.align = 'center';\n data.xAxis.labels.y = styles.FONT_SIZE + 7;\n data.xAxis.tickLength = styles.MEDIUM_TICK_LENGTH;\n data.xAxis.labels.overflow = 'allow';\n\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n data.xAxis.labels.y -= 4;\n }\n if (isVideoGroup) {\n if(options.id === 'video') data.xAxis.labels.y += 6;\n else data.xAxis.labels.y += 2;\n }\n }\n\n if (options.type === 'scatter') {\n data.xAxis.type = 'linear';\n // const maxNum = Match.ceil(Math.max.apply(null, xValues));\n // data.xAxis.max = Math.ceil(Math.max.apply(null, xValues));\n if (options.axes.minXAxisValue) data.xAxis.min = Number(options.axes.minXAxisValue); \n if (options.axes.maxXAxisValue) data.xAxis.max = Number(options.axes.maxXAxisValue);\n if (options.axes.xAxisIncrementsForScatter) data.xAxis.tickInterval = Number(options.axes.xAxisIncrementsForScatter);\n }\n\n if (Array.isArray(options.categories) && (Q || !options.categoriesAreDates) && options.type !== 'scatter') { \n const categoryLabels = getCategoryLabels(options.categories[0]);\n const isArticle = checkArticle(options.size, options.product);\n const hiddenCategories = isArticle ?\n options.hiddenCategoriesArticle\n :\n options.hiddenCategoriesPromo;\n data.xAxis.categories = categoryLabels.map((label, i) =>\n hiddenCategories.includes(i) ? '' : label);\n data.xAxis.tickWidth = 1;\n data.xAxis.tickmarkPlacement = 'on';\n data.xAxis.tickPositioner = function() {\n return this.tickPositions.filter(position => !hiddenCategories.includes(position))\n }\n if (Q) {\n data.xAxis.labels.formatter = formatterQuarterlyResults(options);\n }\n }\n if (options.categoriesAreDates && !Q) {\n data.xAxis.labels.style.whiteSpace = 'nowrap';\n\n if (options.fiscalYears) {\n data.xAxis.tickInterval = YEAR_MILLISECONDS;\n } else {\n const firstDate = new Date(options.originalCategories[0]);\n const lastDate = new Date(options.originalCategories[options.originalCategories.length - 1]);\n const diff = Math.abs((firstDate.getTime() - lastDate.getTime()) / (24 * 3600 * 1000));\n let hasMoreThanTwoDays = diff > 2; \n }\n if (data.xAxis.tickInterval) {\n data.xAxis.tickInterval = Math.round(data.xAxis.tickInterval);\n }\n\n data.xAxis.labels.formatter = function () {\n const { label } = options.xAxisTicks[this.value];\n return label || null;\n };\n data.xAxis.tickPositioner = function() {\n return Object.keys(options.xAxisTicks).map(value => +value);\n }\n data.xAxis.type = 'datetime';\n }\n\n if(__WSJ__){\n if(options.product === 'wsj') {\n const isPrintColor = options.print ? 'rgb(0, 0, 0)' : options.styles.axes.label.color;\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.fontSize,\n color: isPrintColor,\n fill: isPrintColor\n });\n\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n fontSize: options.styles.axes.label.fontSize,\n color: isPrintColor,\n fill: isPrintColor\n });\n\n if(options.type === 'column' && !options.categoriesAreDates){\n data.xAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n fontSize: options.styles.axes.label.seriesAreNotDates.fontSize,\n fontWeight: options.styles.axes.label.seriesAreNotDates.fontWeight,\n lineHeight: options.styles.axes.label.seriesAreNotDates.lineHeight\n });\n }\n\n if (options.type === 'area') {\n data.yAxis.gridZIndex = 4;\n }\n }\n }\n\n if (__MANSIONGLOBAL__) {\n if (options.product === 'mansionglobal') {\n data.xAxis.labels.style = Object.assign({}, data.xAxis.labels.style, {\n color: options.styles.axes.color\n });\n\n data.yAxis.labels.style = Object.assign({}, data.yAxis.labels.style, {\n color: options.styles.axes.color\n });\n }\n }\n\n if (options.id === 'print-barrons') {\n data.xAxis.labels.style.fontSize = 7.5;\n data.yAxis.labels.style.fontSize = 7.5;\n }\n return data;\n}\n\nfunction calculateYAxesLabelY(options, initialValue){\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo' \n if (__WSJ__) {\n if (options.product === 'wsj') {\n if (options.size === 'print-wsj'){\n if (options.type === 'line') {\n return -2.5;\n }\n\n if (options.type === 'column') {\n return -1.5;\n }\n }\n if (options.type === 'scatter') {\n return 5;\n }\n if (isVideoGroup) {\n return -12;\n }\n return -2;\n }\n }\n\n if (options.product !== 'wsj' && options.type === 'scatter') {\n return 5;\n }\n\n return initialValue;\n}\n\n// Returns correct spacing between ticks on x-axis depending.\nfunction getDatetimeTickInterval(context, options) {\n if (options.datesAll) {\n let currYear;\n let yearsTraversed = 0;\n let yearRepeated = false;\n\n let currMonth;\n let monthsTraversed = 0;\n let monthRepeated = false;\n\n let currDate;\n let datesTraversed = 0;\n let dateRepeated = false;\n\n if (options.datesAll.year && !options.datesAll.month) {\n let isYears = true;\n for (let i = 0; isYears && i < options.dates.length; i++) {\n if (currYear === undefined || options.dates[i].year !== currYear) {\n currYear = options.dates[i].year;\n } else if (options.dates[i].year === currYear) {\n isYears = false;\n }\n }\n return YEAR_MILLISECONDS;\n }\n\n for (let i = 0; i < options.dates.length; i++) {\n // If data passes through >= 3 years but data is spaced less than a year\n // apart, ensure that ticks are spaced by years.\n if (options.datesAll.year && options.datesAll.month) {\n if (currYear === undefined || options.dates[i].year !== currYear) {\n currYear = options.dates[i].year;\n yearsTraversed += 1;\n } else if (!yearRepeated && options.dates[i].year === currYear) {\n yearRepeated = true;\n }\n if (yearRepeated && yearsTraversed >= 3) {\n return YEAR_MILLISECONDS;\n }\n }\n }\n\n for (let i = 0; i < options.dates.length; i++) {\n // If data passes through >= 3 months but data is spaced less than a\n // month apart, ensure that ticks are spaced by months.\n if (options.datesAll.month && options.datesAll.date) {\n if (currMonth === undefined || options.dates[i].month !== currMonth) {\n currMonth = options.dates[i].month;\n monthsTraversed += 1;\n } else if (!monthRepeated && options.dates[i].month === currMonth) {\n monthRepeated = true;\n }\n if (monthRepeated && monthsTraversed >= 3) {\n return 1000 * 60 * 60 * 24 * 30;\n }\n }\n }\n\n for (let i = 0; i < options.dates.length; i++) {\n // If data passes through >= 3 dates but data is spaced less than a day\n // apart, ensure that ticks are spaced by days.\n if (options.datesAll.date) {\n if (currDate === undefined || options.dates[i].date !== currDate) {\n currDate = options.dates[i].date;\n datesTraversed += 1;\n } else if (!dateRepeated && options.dates[i].date === currDate) {\n dateRepeated = true;\n }\n if (dateRepeated && datesTraversed >= 3) {\n return 1000 * 60 * 60 * 24;\n }\n }\n }\n\n if (options.datesAll.hour && !options.datesAll.year &&\n !options.datesAll.month) {\n let fd = options.dates[0];\n let ld = options.dates[options.dates.length - 1];\n let d1 = new Date();\n let d2 = new Date();\n var hour = 1000 * 60 * 60;\n d1.setUTCHours(fd.hour);\n d1.setUTCMinutes(fd.minute);\n d2.setUTCHours(ld.hour);\n d2.setUTCMinutes(ld.minute);\n if (d2.valueOf() - d1.valueOf() > hour) {\n return hour;\n }\n }\n }\n return null;\n}\n\n\n\n// A Highcharts `formatter` function to format x-axis dates.\nfunction formatterDate(context, options, interval) {\n // INDEX = (INDEX >= options.series[0].data.length) ? 0 : INDEX;\n // const index = INDEX++;\n const index = getDataIndex(context.value, options.series[0].data, interval);\n\n // This gives some whack results...\n // const date = new Date(context.value);\n\n // ...therefore, track the index of this tick:\n // options.xAxisLabelIndex = options.xAxisLabelIndex || 0;\n // options.xAxisLabelIndex %= options.series[0].data.length;\n // const index = options.xAxisLabelIndex;\n // const date = new Date(options.series[0].data[index].x);\n const date = new Date(context.value);\n const momentDate = moment.utc(context.value); \n\n // options.xAxisLabelIndex += 1;\n \n options.dateTimeLabelFormat = context.dateTimeLabelFormat;\n let labelFormat = options.dateTimeLabelFormat;\n // if (labelFormat === '%H:%M') labelFormat = '%e. %b'\n \n // const dateObj = options.dates[index];\n switch (labelFormat) {\n case '%H:%M':\n case '%H:%M:%S':\n var incSecs = false;//context.dateTimeLabelFormat === '%H:%M:%S';\n options.series[0].data[index].xAxisLabel = formatHM(/*date*/momentDate, incSecs);\n return formatHM(/*date*/momentDate, incSecs);\n case '%e. %b':\n options.series[0].data[index].xAxisLabel = [\n MONTHS[date.getUTCMonth()],\n date.getUTCDate()\n ].join(' ');\n return [\n MONTHS[date.getUTCMonth()],\n date.getUTCDate()\n ].join(' ');\n case '%b \\'%y':\n if (options.dates[index].yearIsProxy) {\n options.series[0].data[index].xAxisLabel =\n MONTHS[date.getUTCMonth()];\n return MONTHS[date.getUTCMonth()];\n } else {\n options.series[0].data[index].xAxisLabel = [\n MONTHS[date.getUTCMonth()],\n '’' + (date.getUTCFullYear() + '').substr(2)\n ].join(' ');\n return [\n MONTHS[date.getUTCMonth()],\n '’' + (date.getUTCFullYear() + '').substr(2)\n ].join(' ');\n }\n case '%Y':\n // console.log(index, date.getUTCFullYear(), date.getFullYear(), realDate.getFullYear());\n options.series[0].data[index].xAxisLabel = date.getUTCFullYear() + '';\n //(dateObj.year || realDate.getUTCFullYear()) + '';\n // return dateObj.year || (date.getFullYear() + '');\n return date.getUTCFullYear() + ''\n }\n options.series[0].data[index].xAxisLabel = '0';\n return '0';\n}\n\nfunction getDataIndex(value, data, interval) {\n let index = 0;\n for (let i = 0; i < data.length; i++) {\n index = i;\n if (value < data[i].x) {\n break;\n }\n }\n return index;\n}\n\nfunction formatHM(date, includeSeconds) {\n // const offset = date.utcOffset() / 60;\n let h = date.hours()//date.getUTCHours();\n // console.log('in formatHM', date, h, date.utc().hours())\n //h += offset + 4;\n let a = h < 12 ? ' a.m.' : ' p.m.';\n let m = addZeroes(date.minutes()/*date.getUTCMinutes()*/, 2);\n let s = includeSeconds ? addZeroes(date.seconds()/*date.getUTCSeconds()*/, 2) : null;\n if (h === 12 && m == '00') {\n return 'noon';\n }\n if (h === 0 || h === 12) {\n h = 12;\n } else {\n h %= 12;\n }\n m = m === '00' ? '' : `:${m}`;\n s = includeSeconds ? `:${s}` : '';\n return [ h, m, s, a ].join('');\n}\n\n\n// Used as Highcharts `formatter` function (not directly).\nexport function formatterYAxisLabel(units, value, minDecimals, special) {\n value += '';\n const decimalUnits = assign({}, units);\n if (units.forceDecimals !== undefined) {\n decimalUnits.forceDecimals = Math.max(units.forceDecimals, minDecimals);\n }\n if (units.maxDecimals !== undefined) {\n decimalUnits.maxDecimals = Math.max(units.maxDecimals, minDecimals);\n }\n value = format.decimals(value, decimalUnits);\n value = format.commas(value, units.commas);\n if (special) {\n let neg = '';\n if (units.prefix && value.charAt(0) === '-') {\n neg = '-';\n value = value.substr(1);\n }\n value = [\n neg,\n units.prefix,\n value\n ].join('');\n }\n return value;\n}\n\n\n// A Highcharts `formatter` function that returns 'nQ<br/>YYYY'.\nfunction formatterQuarterlyResults(options) {\n const rows = options.series[0].data.length;\n let quarter = undefined;\n let year = undefined;\n return function () {\n let value = '';\n const parts = this.value.split(/\\s/);\n let tmpQ = parts[0] || null;\n let tmpY = parts[1] || null;\n const FY = tmpY ? (tmpY.indexOf('FY') === 0) : false;\n if (FY) {\n tmpY = tmpY.substr(2);\n }\n if (this.isFirst) {\n // Sometimes Highcharts runs through the date *twice*!\n quarter = year = undefined;\n }\n if (tmpQ && rows <= 9 && options.interactive) {\n value += tmpQ;\n }\n if (tmpY) {\n if (value !== '') {\n value += '<br>';\n }\n if (tmpY !== year) {\n if (year === undefined) {\n value += (FY ? 'FY' : '') + tmpY;\n } else {\n value += (APOSTROPHE + tmpY.substr(2, 4));\n }\n }\n }\n quarter = tmpQ;\n year = tmpY;\n return value;\n };\n}\n\n\n// Returns an array of category objects as an array of strings for use as the\n// value for `data[x|yAxis].categories`.\nfunction getCategoryLabels(categories) {\n const strings = [];\n if (categories) {\n categories.forEach((cat, index) => {\n if (typeof cat === 'string' || typeof cat === 'number') {\n strings[index] = cat + '';\n } else if (cat && typeof cat === 'object') {\n strings[index] = cat.text;\n } else {\n strings[index] = '';\n }\n });\n }\n return strings;\n}\n\n\n// Attempts to allow manual tweaking of min and max axis values, but does not\n// quite do what is requested: Set an *absolute* max and min, whereas\n// Highcharts uses the values as a guide.\nfunction writeMinMax(data, options) {\n if (options.type !== 'pie') {\n if (options.axes.minYAxisValue !== undefined) {\n data.yAxis.min = options.axes.minYAxisValue;\n }\n if (options.axes.maxYAxisValue !== undefined) {\n data.yAxis.max = options.axes.maxYAxisValue;\n }\n }\n return data;\n}\n\n// Finds if yAxis.min should be set automatically so as to ensure that\n// a zero line is included.\nfunction valuesBelowPositive2(options) {\n let found = false;\n for (let s = 0; s < options.series.length; s++) {\n for (let d = 0; d < options.series[s].data.length; d++) {\n if (options.series[s].data[d].y < 0) {\n return false;\n } else if (!found && options.series[s].data[d].y <= 2) {\n found = true;\n }\n }\n }\n return found;\n}\n\n// Finds if yAxis.max should be set automatically so as to ensure that\n// a zero line is included.\nfunction valuesAboveNegative2(options) {\n let found = false;\n for (let s = 0; s < options.series.length; s++) {\n for (let d = 0; d < options.series[s].data.length; d++) {\n if (options.series[s].data[d].y > 0) {\n return false;\n } else if (!found && options.series[s].data[d].y <= -2) {\n found = true;\n }\n }\n }\n return found;\n}\n\n// Sometimes decimals are 17 or something outrageous, but decimalsDelta is something like 0.20000000000000002\n// which should be just 0.2. This fixes the issue.\nfunction roundPlaces(float) {\n for (var places = 1; places < 19; places++) {\n if (float.toFixed(places) + '0' === float.toFixed(places + 1)) break; \n }\n return places;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/axes-prerender.js","\n// Returns a point by its original index, before sorting by date.\nexport default function getPoint(series, index) {\n return series[0].hasOwnProperty('index') ?\n series.find(item => item.index === index)\n :\n series[index];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/data/getPoint.js","//! moment-timezone.js\n//! version : 0.5.31\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.31\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (å°åŒ—標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment-timezone/moment-timezone.js\n// module id = 282\n// module chunks = 0","module.exports = {\"version\":\"2020a\",\"zones\":[\"Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5\",\"Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5\",\"Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5\",\"Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5\",\"Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6\",\"Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4\",\"Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5\",\"Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5\",\"Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3\",\"Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4\",\"Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5\",\"Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0|\",\"Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5\",\"Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5\",\"Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5\",\"Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|\",\"Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5\",\"Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5\",\"Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\",\"America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3\",\"America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4\",\"America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|\",\"America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|\",\"America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|\",\"America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|\",\"America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|\",\"America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4\",\"America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5\",\"America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2\",\"America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3\",\"America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5\",\"America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4\",\"America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5\",\"America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3\",\"America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2\",\"America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2\",\"America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5\",\"America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4\",\"America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2\",\"America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4\",\"America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4\",\"America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5\",\"America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3\",\"America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5\",\"America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4\",\"America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5\",\"America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2\",\"America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4\",\"America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8\",\"America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3\",\"America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|13e2\",\"America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5\",\"America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5\",\"America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3\",\"America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5\",\"America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5\",\"America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2\",\"America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5\",\"America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3\",\"America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2\",\"America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5\",\"America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5\",\"America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4\",\"America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4\",\"America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2\",\"America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2\",\"America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4\",\"America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3\",\"America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5\",\"America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6\",\"America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4\",\"America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5\",\"America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5\",\"America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4\",\"America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4\",\"America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4\",\"America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2\",\"America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5\",\"America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6\",\"America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3\",\"America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5\",\"America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5\",\"America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5\",\"America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4\",\"America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2\",\"America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2\",\"America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2\",\"America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\"America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4\",\"America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5\",\"America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4\",\"America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4\",\"America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5\",\"America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|\",\"America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842\",\"America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2\",\"America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5\",\"America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4\",\"America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229\",\"America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4\",\"America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5\",\"America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5\",\"America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6\",\"America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452\",\"America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2\",\"America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3\",\"America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5\",\"America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656\",\"America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|23e3\",\"America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4\",\"America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642\",\"America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10\",\"Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70\",\"Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80\",\"Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1\",\"Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60\",\"Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5\",\"Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40\",\"Antarctica/Rothera|-00 -03|0 30|01|gOo0|130\",\"Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20\",\"Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40\",\"Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25\",\"Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4\",\"Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5\",\"Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5\",\"Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5\",\"Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3\",\"Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4\",\"Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4\",\"Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4\",\"Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5\",\"Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4\",\"Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5\",\"Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6\",\"Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|\",\"Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5\",\"Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4\",\"Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4\",\"Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6\",\"Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4\",\"Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3\",\"Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6\",\"Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5\",\"Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6\",\"Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5\",\"Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4\",\"Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5\",\"Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4\",\"Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|0101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|18e5\",\"Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|25e4\",\"Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5\",\"Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5\",\"Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6\",\"Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6\",\"Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4\",\"Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4\",\"Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5\",\"Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4\",\"Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6\",\"Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5\",\"Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5\",\"Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2\",\"Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\",\"Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5\",\"Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4\",\"Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4\",\"Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3\",\"Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5\",\"Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6\",\"Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4\",\"Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4\",\"Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5\",\"Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5\",\"Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4\",\"Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4\",\"Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5\",\"Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4\",\"Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5\",\"Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4\",\"Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4\",\"Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6\",\"Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2\",\"Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5\",\"Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5\",\"Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5\",\"Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3\",\"Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6\",\"Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5\",\"Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2\",\"Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4\",\"Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5\",\"Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5\",\"Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4\",\"Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3\",\"Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4\",\"Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3\",\"Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4\",\"Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4\",\"Atlantic/South_Georgia|-02|20|0||30\",\"Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2\",\"Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5\",\"Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5\",\"Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5\",\"Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3\",\"Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746\",\"Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4\",\"Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368\",\"Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4\",\"Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347\",\"Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10\",\"Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5\",\"Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5\",\"CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2\",\"CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"EST|EST|50|0||\",\"EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Etc/GMT-0|GMT|0|0||\",\"Etc/GMT-1|+01|-10|0||\",\"Pacific/Port_Moresby|+10|-a0|0||25e4\",\"Etc/GMT-11|+11|-b0|0||\",\"Pacific/Tarawa|+12|-c0|0||29e3\",\"Etc/GMT-13|+13|-d0|0||\",\"Etc/GMT-14|+14|-e0|0||\",\"Etc/GMT-2|+02|-20|0||\",\"Etc/GMT-3|+03|-30|0||\",\"Etc/GMT-4|+04|-40|0||\",\"Etc/GMT-5|+05|-50|0||\",\"Etc/GMT-6|+06|-60|0||\",\"Indian/Christmas|+07|-70|0||21e2\",\"Etc/GMT-8|+08|-80|0||\",\"Pacific/Palau|+09|-90|0||21e3\",\"Etc/GMT+1|-01|10|0||\",\"Etc/GMT+10|-10|a0|0||\",\"Etc/GMT+11|-11|b0|0||\",\"Etc/GMT+12|-12|c0|0||\",\"Etc/GMT+3|-03|30|0||\",\"Etc/GMT+4|-04|40|0||\",\"Etc/GMT+5|-05|50|0||\",\"Etc/GMT+6|-06|60|0||\",\"Etc/GMT+7|-07|70|0||\",\"Etc/GMT+8|-08|80|0||\",\"Etc/GMT+9|-09|90|0||\",\"Etc/UTC|UTC|0|0||\",\"Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5\",\"Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3\",\"Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5\",\"Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5\",\"Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6\",\"Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5\",\"Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5\",\"Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5\",\"Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5\",\"Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4\",\"Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4\",\"Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3\",\"Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4\",\"Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5\",\"Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4\",\"Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\",\"Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5\",\"Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5\",\"Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3\",\"Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6\",\"Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6\",\"Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4\",\"Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5\",\"Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5\",\"Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|\",\"Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4\",\"Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5\",\"Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4\",\"Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5\",\"Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4\",\"Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5\",\"Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0|10e5\",\"Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4\",\"HST|HST|a0|0||\",\"Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2\",\"Indian/Cocos|+0630|-6u|0||596\",\"Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130\",\"Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3\",\"Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4\",\"Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4\",\"Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4\",\"Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3\",\"MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"MST|MST|70|0||\",\"MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600\",\"Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3\",\"Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4\",\"Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3\",\"Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3\",\"Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1\",\"Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483\",\"Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4\",\"Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3\",\"Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125\",\"Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4\",\"Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4\",\"Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4\",\"Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2\",\"Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2\",\"Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3\",\"Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2\",\"Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2\",\"Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3\",\"Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2\",\"Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4\",\"Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3\",\"Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56\",\"Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3\",\"Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3\",\"Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4\",\"Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3\",\"PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\"],\"links\":[\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Cairo|Egypt\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|US/Alaska\",\"America/Argentina/Buenos_Aires|America/Buenos_Aires\",\"America/Argentina/Catamarca|America/Argentina/ComodRivadavia\",\"America/Argentina/Catamarca|America/Catamarca\",\"America/Argentina/Cordoba|America/Cordoba\",\"America/Argentina/Cordoba|America/Rosario\",\"America/Argentina/Jujuy|America/Jujuy\",\"America/Argentina/Mendoza|America/Mendoza\",\"America/Atikokan|America/Coral_Harbour\",\"America/Chicago|US/Central\",\"America/Curacao|America/Aruba\",\"America/Curacao|America/Kralendijk\",\"America/Curacao|America/Lower_Princes\",\"America/Denver|America/Shiprock\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Detroit|US/Michigan\",\"America/Edmonton|Canada/Mountain\",\"America/Fort_Wayne|America/Indiana/Indianapolis\",\"America/Fort_Wayne|America/Indianapolis\",\"America/Fort_Wayne|US/East-Indiana\",\"America/Godthab|America/Nuuk\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/Indiana/Knox|America/Knox_IN\",\"America/Indiana/Knox|US/Indiana-Starke\",\"America/Jamaica|Jamaica\",\"America/Kentucky/Louisville|America/Louisville\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Manaus|Brazil/West\",\"America/Mazatlan|Mexico/BajaSur\",\"America/Mexico_City|Mexico/General\",\"America/New_York|US/Eastern\",\"America/Noronha|Brazil/DeNoronha\",\"America/Panama|America/Cayman\",\"America/Phoenix|US/Arizona\",\"America/Port_of_Spain|America/Anguilla\",\"America/Port_of_Spain|America/Antigua\",\"America/Port_of_Spain|America/Dominica\",\"America/Port_of_Spain|America/Grenada\",\"America/Port_of_Spain|America/Guadeloupe\",\"America/Port_of_Spain|America/Marigot\",\"America/Port_of_Spain|America/Montserrat\",\"America/Port_of_Spain|America/St_Barthelemy\",\"America/Port_of_Spain|America/St_Kitts\",\"America/Port_of_Spain|America/St_Lucia\",\"America/Port_of_Spain|America/St_Thomas\",\"America/Port_of_Spain|America/St_Vincent\",\"America/Port_of_Spain|America/Tortola\",\"America/Port_of_Spain|America/Virgin\",\"America/Regina|Canada/Saskatchewan\",\"America/Rio_Branco|America/Porto_Acre\",\"America/Rio_Branco|Brazil/Acre\",\"America/Santiago|Chile/Continental\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"America/Tijuana|America/Ensenada\",\"America/Tijuana|America/Santa_Isabel\",\"America/Tijuana|Mexico/BajaNorte\",\"America/Toronto|America/Montreal\",\"America/Toronto|Canada/Eastern\",\"America/Vancouver|Canada/Pacific\",\"America/Whitehorse|Canada/Yukon\",\"America/Winnipeg|Canada/Central\",\"Asia/Ashgabat|Asia/Ashkhabad\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Ho_Chi_Minh|Asia/Saigon\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Macau|Asia/Macao\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Nicosia|Europe/Nicosia\",\"Asia/Qatar|Asia/Bahrain\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Riyadh|Asia/Aden\",\"Asia/Riyadh|Asia/Kuwait\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|PRC\",\"Asia/Taipei|ROC\",\"Asia/Tehran|Iran\",\"Asia/Thimphu|Asia/Thimbu\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Urumqi|Asia/Kashgar\",\"Atlantic/Faroe|Atlantic/Faeroe\",\"Atlantic/Reykjavik|Iceland\",\"Atlantic/South_Georgia|Etc/GMT+2\",\"Australia/Adelaide|Australia/South\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Broken_Hill|Australia/Yancowinna\",\"Australia/Darwin|Australia/North\",\"Australia/Hobart|Australia/Tasmania\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Melbourne|Australia/Victoria\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/NSW\",\"Etc/GMT-0|Etc/GMT\",\"Etc/GMT-0|Etc/GMT+0\",\"Etc/GMT-0|Etc/GMT0\",\"Etc/GMT-0|Etc/Greenwich\",\"Etc/GMT-0|GMT\",\"Etc/GMT-0|GMT+0\",\"Etc/GMT-0|GMT-0\",\"Etc/GMT-0|GMT0\",\"Etc/GMT-0|Greenwich\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Belgrade|Europe/Ljubljana\",\"Europe/Belgrade|Europe/Podgorica\",\"Europe/Belgrade|Europe/Sarajevo\",\"Europe/Belgrade|Europe/Skopje\",\"Europe/Belgrade|Europe/Zagreb\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Helsinki|Europe/Mariehamn\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Portugal\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Oslo|Arctic/Longyearbyen\",\"Europe/Oslo|Atlantic/Jan_Mayen\",\"Europe/Prague|Europe/Bratislava\",\"Europe/Rome|Europe/San_Marino\",\"Europe/Rome|Europe/Vatican\",\"Europe/Warsaw|Poland\",\"Europe/Zurich|Europe/Busingen\",\"Europe/Zurich|Europe/Vaduz\",\"Indian/Christmas|Etc/GMT-7\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Chuuk|Pacific/Truk\",\"Pacific/Chuuk|Pacific/Yap\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kwajalein|Kwajalein\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Palau|Etc/GMT-9\",\"Pacific/Pohnpei|Pacific/Ponape\",\"Pacific/Port_Moresby|Etc/GMT-10\",\"Pacific/Tarawa|Etc/GMT-12\",\"Pacific/Tarawa|Pacific/Funafuti\",\"Pacific/Tarawa|Pacific/Wake\",\"Pacific/Tarawa|Pacific/Wallis\"],\"countries\":[\"AD|Europe/Andorra\",\"AE|Asia/Dubai\",\"AF|Asia/Kabul\",\"AG|America/Port_of_Spain America/Antigua\",\"AI|America/Port_of_Spain America/Anguilla\",\"AL|Europe/Tirane\",\"AM|Asia/Yerevan\",\"AO|Africa/Lagos Africa/Luanda\",\"AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo\",\"AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia\",\"AS|Pacific/Pago_Pago\",\"AT|Europe/Vienna\",\"AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla\",\"AW|America/Curacao America/Aruba\",\"AX|Europe/Helsinki Europe/Mariehamn\",\"AZ|Asia/Baku\",\"BA|Europe/Belgrade Europe/Sarajevo\",\"BB|America/Barbados\",\"BD|Asia/Dhaka\",\"BE|Europe/Brussels\",\"BF|Africa/Abidjan Africa/Ouagadougou\",\"BG|Europe/Sofia\",\"BH|Asia/Qatar Asia/Bahrain\",\"BI|Africa/Maputo Africa/Bujumbura\",\"BJ|Africa/Lagos Africa/Porto-Novo\",\"BL|America/Port_of_Spain America/St_Barthelemy\",\"BM|Atlantic/Bermuda\",\"BN|Asia/Brunei\",\"BO|America/La_Paz\",\"BQ|America/Curacao America/Kralendijk\",\"BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco\",\"BS|America/Nassau\",\"BT|Asia/Thimphu\",\"BW|Africa/Maputo Africa/Gaborone\",\"BY|Europe/Minsk\",\"BZ|America/Belize\",\"CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson\",\"CC|Indian/Cocos\",\"CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi\",\"CF|Africa/Lagos Africa/Bangui\",\"CG|Africa/Lagos Africa/Brazzaville\",\"CH|Europe/Zurich\",\"CI|Africa/Abidjan\",\"CK|Pacific/Rarotonga\",\"CL|America/Santiago America/Punta_Arenas Pacific/Easter\",\"CM|Africa/Lagos Africa/Douala\",\"CN|Asia/Shanghai Asia/Urumqi\",\"CO|America/Bogota\",\"CR|America/Costa_Rica\",\"CU|America/Havana\",\"CV|Atlantic/Cape_Verde\",\"CW|America/Curacao\",\"CX|Indian/Christmas\",\"CY|Asia/Nicosia Asia/Famagusta\",\"CZ|Europe/Prague\",\"DE|Europe/Zurich Europe/Berlin Europe/Busingen\",\"DJ|Africa/Nairobi Africa/Djibouti\",\"DK|Europe/Copenhagen\",\"DM|America/Port_of_Spain America/Dominica\",\"DO|America/Santo_Domingo\",\"DZ|Africa/Algiers\",\"EC|America/Guayaquil Pacific/Galapagos\",\"EE|Europe/Tallinn\",\"EG|Africa/Cairo\",\"EH|Africa/El_Aaiun\",\"ER|Africa/Nairobi Africa/Asmara\",\"ES|Europe/Madrid Africa/Ceuta Atlantic/Canary\",\"ET|Africa/Nairobi Africa/Addis_Ababa\",\"FI|Europe/Helsinki\",\"FJ|Pacific/Fiji\",\"FK|Atlantic/Stanley\",\"FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae\",\"FO|Atlantic/Faroe\",\"FR|Europe/Paris\",\"GA|Africa/Lagos Africa/Libreville\",\"GB|Europe/London\",\"GD|America/Port_of_Spain America/Grenada\",\"GE|Asia/Tbilisi\",\"GF|America/Cayenne\",\"GG|Europe/London Europe/Guernsey\",\"GH|Africa/Accra\",\"GI|Europe/Gibraltar\",\"GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule\",\"GM|Africa/Abidjan Africa/Banjul\",\"GN|Africa/Abidjan Africa/Conakry\",\"GP|America/Port_of_Spain America/Guadeloupe\",\"GQ|Africa/Lagos Africa/Malabo\",\"GR|Europe/Athens\",\"GS|Atlantic/South_Georgia\",\"GT|America/Guatemala\",\"GU|Pacific/Guam\",\"GW|Africa/Bissau\",\"GY|America/Guyana\",\"HK|Asia/Hong_Kong\",\"HN|America/Tegucigalpa\",\"HR|Europe/Belgrade Europe/Zagreb\",\"HT|America/Port-au-Prince\",\"HU|Europe/Budapest\",\"ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura\",\"IE|Europe/Dublin\",\"IL|Asia/Jerusalem\",\"IM|Europe/London Europe/Isle_of_Man\",\"IN|Asia/Kolkata\",\"IO|Indian/Chagos\",\"IQ|Asia/Baghdad\",\"IR|Asia/Tehran\",\"IS|Atlantic/Reykjavik\",\"IT|Europe/Rome\",\"JE|Europe/London Europe/Jersey\",\"JM|America/Jamaica\",\"JO|Asia/Amman\",\"JP|Asia/Tokyo\",\"KE|Africa/Nairobi\",\"KG|Asia/Bishkek\",\"KH|Asia/Bangkok Asia/Phnom_Penh\",\"KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati\",\"KM|Africa/Nairobi Indian/Comoro\",\"KN|America/Port_of_Spain America/St_Kitts\",\"KP|Asia/Pyongyang\",\"KR|Asia/Seoul\",\"KW|Asia/Riyadh Asia/Kuwait\",\"KY|America/Panama America/Cayman\",\"KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral\",\"LA|Asia/Bangkok Asia/Vientiane\",\"LB|Asia/Beirut\",\"LC|America/Port_of_Spain America/St_Lucia\",\"LI|Europe/Zurich Europe/Vaduz\",\"LK|Asia/Colombo\",\"LR|Africa/Monrovia\",\"LS|Africa/Johannesburg Africa/Maseru\",\"LT|Europe/Vilnius\",\"LU|Europe/Luxembourg\",\"LV|Europe/Riga\",\"LY|Africa/Tripoli\",\"MA|Africa/Casablanca\",\"MC|Europe/Monaco\",\"MD|Europe/Chisinau\",\"ME|Europe/Belgrade Europe/Podgorica\",\"MF|America/Port_of_Spain America/Marigot\",\"MG|Africa/Nairobi Indian/Antananarivo\",\"MH|Pacific/Majuro Pacific/Kwajalein\",\"MK|Europe/Belgrade Europe/Skopje\",\"ML|Africa/Abidjan Africa/Bamako\",\"MM|Asia/Yangon\",\"MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan\",\"MO|Asia/Macau\",\"MP|Pacific/Guam Pacific/Saipan\",\"MQ|America/Martinique\",\"MR|Africa/Abidjan Africa/Nouakchott\",\"MS|America/Port_of_Spain America/Montserrat\",\"MT|Europe/Malta\",\"MU|Indian/Mauritius\",\"MV|Indian/Maldives\",\"MW|Africa/Maputo Africa/Blantyre\",\"MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas\",\"MY|Asia/Kuala_Lumpur Asia/Kuching\",\"MZ|Africa/Maputo\",\"NA|Africa/Windhoek\",\"NC|Pacific/Noumea\",\"NE|Africa/Lagos Africa/Niamey\",\"NF|Pacific/Norfolk\",\"NG|Africa/Lagos\",\"NI|America/Managua\",\"NL|Europe/Amsterdam\",\"NO|Europe/Oslo\",\"NP|Asia/Kathmandu\",\"NR|Pacific/Nauru\",\"NU|Pacific/Niue\",\"NZ|Pacific/Auckland Pacific/Chatham\",\"OM|Asia/Dubai Asia/Muscat\",\"PA|America/Panama\",\"PE|America/Lima\",\"PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier\",\"PG|Pacific/Port_Moresby Pacific/Bougainville\",\"PH|Asia/Manila\",\"PK|Asia/Karachi\",\"PL|Europe/Warsaw\",\"PM|America/Miquelon\",\"PN|Pacific/Pitcairn\",\"PR|America/Puerto_Rico\",\"PS|Asia/Gaza Asia/Hebron\",\"PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores\",\"PW|Pacific/Palau\",\"PY|America/Asuncion\",\"QA|Asia/Qatar\",\"RE|Indian/Reunion\",\"RO|Europe/Bucharest\",\"RS|Europe/Belgrade\",\"RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr\",\"RW|Africa/Maputo Africa/Kigali\",\"SA|Asia/Riyadh\",\"SB|Pacific/Guadalcanal\",\"SC|Indian/Mahe\",\"SD|Africa/Khartoum\",\"SE|Europe/Stockholm\",\"SG|Asia/Singapore\",\"SH|Africa/Abidjan Atlantic/St_Helena\",\"SI|Europe/Belgrade Europe/Ljubljana\",\"SJ|Europe/Oslo Arctic/Longyearbyen\",\"SK|Europe/Prague Europe/Bratislava\",\"SL|Africa/Abidjan Africa/Freetown\",\"SM|Europe/Rome Europe/San_Marino\",\"SN|Africa/Abidjan Africa/Dakar\",\"SO|Africa/Nairobi Africa/Mogadishu\",\"SR|America/Paramaribo\",\"SS|Africa/Juba\",\"ST|Africa/Sao_Tome\",\"SV|America/El_Salvador\",\"SX|America/Curacao America/Lower_Princes\",\"SY|Asia/Damascus\",\"SZ|Africa/Johannesburg Africa/Mbabane\",\"TC|America/Grand_Turk\",\"TD|Africa/Ndjamena\",\"TF|Indian/Reunion Indian/Kerguelen\",\"TG|Africa/Abidjan Africa/Lome\",\"TH|Asia/Bangkok\",\"TJ|Asia/Dushanbe\",\"TK|Pacific/Fakaofo\",\"TL|Asia/Dili\",\"TM|Asia/Ashgabat\",\"TN|Africa/Tunis\",\"TO|Pacific/Tongatapu\",\"TR|Europe/Istanbul\",\"TT|America/Port_of_Spain\",\"TV|Pacific/Funafuti\",\"TW|Asia/Taipei\",\"TZ|Africa/Nairobi Africa/Dar_es_Salaam\",\"UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye\",\"UG|Africa/Nairobi Africa/Kampala\",\"UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway\",\"US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu\",\"UY|America/Montevideo\",\"UZ|Asia/Samarkand Asia/Tashkent\",\"VA|Europe/Rome Europe/Vatican\",\"VC|America/Port_of_Spain America/St_Vincent\",\"VE|America/Caracas\",\"VG|America/Port_of_Spain America/Tortola\",\"VI|America/Port_of_Spain America/St_Thomas\",\"VN|Asia/Bangkok Asia/Ho_Chi_Minh\",\"VU|Pacific/Efate\",\"WF|Pacific/Wallis\",\"WS|Pacific/Apia\",\"YE|Asia/Riyadh Asia/Aden\",\"YT|Africa/Nairobi Indian/Mayotte\",\"ZA|Africa/Johannesburg\",\"ZM|Africa/Maputo Africa/Lusaka\",\"ZW|Africa/Maputo Africa/Harare\"]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment-timezone/data/packed/latest.json\n// module id = 283\n// module chunks = 0","import * as transform from './transform';\nimport axesPostRenderYAxis from './axes-postrender-y-axis';\nimport axesPostRenderXAxis, { updateCategoryLabels, checkVideoGroup, extendVideoAxisLine } from './axes-postrender-x-axis';\n\nexport default function axesPostRender(highchart, options, styles) {\n makeLinesCrisp(highchart, options);\n if (options.type !== 'pie' && options.horizontalBarType === 'normal') {\n axesPostRenderYAxis(highchart, options, styles);\n if (options.type === 'line' || options.type === 'column' || options.type === 'area') {\n if (options.categoriesAreDates && !options.quarterlyResults) {\n const ticks = highchart.xAxis[0].ticks;\n for (let key in ticks) {\n if (options.xAxisTicks[key].type === 'minor') {\n const tick = ticks[key].mark.element;\n const d = tick.getAttribute('d');\n const dArr = d.split(' ');\n dArr[5] = +dArr[5] - 2.5;\n const newD = dArr.join(' ');\n tick.setAttribute('d', newD);\n }\n }\n if (checkVideoGroup(options.id)) {\n extendVideoAxisLine(highchart);\n }\n const labels = highchart.xAxis[0].labelGroup.element.children;\n\n if(options.product === 'marketwatch'){\n const firstLabel = labels[0];\n const x = +firstLabel.getAttribute('x');\n const { width } = firstLabel.getBoundingClientRect();\n\n if (x<width/2) {\n if(x<0) firstLabel.setAttribute('x', 0);\n firstLabel.setAttribute('text-anchor', 'start');\n }\n }\n const lastLabel = labels[labels.length - 1];\n const x = +lastLabel.getAttribute('x');\n const { width } = lastLabel.getBoundingClientRect();\n if (x + width / 2 > options.width) {\n lastLabel.setAttribute('text-anchor', 'end');\n }\n }\n } else {\n axesPostRenderXAxis(highchart, options, styles);\n }\n }\n\n if (options.type === 'bar' && (options.horizontalBarType === 'aboveBar' || options.horizontalBarType === 'noScaleAndLeft')) {\n // for first label sit inside bar\n const highchartContainer = highchart.container;\n const allDataLabels = highchartContainer.getElementsByClassName('highcharts-data-labels')[0];\n const firstDataLabel = highchartContainer.getElementsByClassName('highcharts-data-labels')[0].children[0];\n const firstDataLabelRight = firstDataLabel.getBoundingClientRect().right;\n const xAxisLabels = highchartContainer.getElementsByClassName('highcharts-xaxis-labels')[0];\n const arrayOfLabelWidths = []\n for (let g = 0; g < xAxisLabels.children.length; g++) {\n const currentXAxisLabelWidth = xAxisLabels.children[g].getBoundingClientRect().width;\n arrayOfLabelWidths.push(currentXAxisLabelWidth);\n }\n for (let i = 0; i < allDataLabels.children.length; i++) {\n const currentDataLabel = allDataLabels.children[i];\n const currentDataLabelWidth = currentDataLabel.getBoundingClientRect().width;\n const correspondingBarHeight = highchartContainer.getElementsByClassName('highcharts-bar-series')[0].children[i].getAttribute('height');\n const highestXAxisLabelWidth = Math.max(...arrayOfLabelWidths);\n const stringLengthOfLabel = currentDataLabel.children[0].innerHTML.length;\n let heightPlusTen = (Number(correspondingBarHeight) + (10 - stringLengthOfLabel));\n\n if (options.horizontalBarType === 'aboveBar') {\n if (i !== 0) {\n transform.write(currentDataLabel, 'translate', heightPlusTen);\n }\n }\n \n if (options.horizontalBarType === 'noScaleAndLeft') {\n heightPlusTen += (highestXAxisLabelWidth + 5);\n if (options.horizontalBarLabel && i === 0) {\n let additionalSpace = 10;\n if (stringLengthOfLabel > 5 && stringLengthOfLabel < 10) additionalSpace = 5;\n if (stringLengthOfLabel >= 10) additionalSpace = -10;\n heightPlusTen -= (currentDataLabelWidth + additionalSpace);\n }\n transform.write(currentDataLabel, 'translate', heightPlusTen);\n }\n }\n if (options.horizontalBarType === 'noScaleAndLeft') {\n const axis = highchart.axes[0];\n const axisLeft = axis.chart.plotLeft;\n const axisSizeX = axis.chart.plotSizeX;\n let elementPathFirst = highchart.renderer.path().attr({\n stroke: '#333',\n fill: 'black',\n 'stroke-width': 1,\n class: 'add-vertical-gridline',\n d: \"M \" + axisLeft + ' 10 L ' + axisLeft + ' ' + axisSizeX,\n opacity: 1\n });\n const root = highchartContainer.getElementsByClassName('highcharts-series-group')[0];\n root.appendChild(elementPathFirst.element);\n \n }\n \n }\n\n if (__WSJ__) {\n if (options.product === 'wsj' && options.print && (options.type !== 'bar' && options.type !== 'pie') ) {\n const suffix = highchart.container.getElementsByClassName('units y-axis-suffix')[0];\n suffix.style.fill = 'rgb(0, 0, 0)';\n }\n }\n\n\n if (options.print && options.type === 'bar') {\n const barCont = highchart.container.getElementsByClassName('highcharts-bar-series');\n for (let i = 0; i < barCont.length; i++ ) {\n const highchartBarG = barCont[i];\n const highchartBarGTransformVal = /translate\\(\\s*([^\\s,)]+)[ ,]([^\\s,)]+)/.exec(highchartBarG.getAttribute('transform'));\n const xValTranslate = parseInt(highchartBarGTransformVal[1]) - 1.5;\n highchartBarG.transform.baseVal.getItem(0).setTranslate(xValTranslate, parseInt(highchartBarGTransformVal[2]));\n }\n }\n if (options.print && options.type === 'column') {\n if (options.product === 'wsj') {\n const seriesGroup = highchart.container.getElementsByClassName('highcharts-series-group')[0];\n const seriesGroupTransformVal = seriesGroup.transform.baseVal.getItem(0).matrix.f;\n const seriesGroupYVal = seriesGroupTransformVal - 1;\n seriesGroup.transform.baseVal.getItem(0).setTranslate(0, seriesGroupYVal);\n }\n const colCont = highchart.container.getElementsByClassName('highcharts-column-series');\n for (let i = 0; i < colCont.length; i++) {\n const highchartColumnG = colCont[i];\n const highchartColumnGTransformVal = /translate\\(\\s*([^\\s,)]+)[ ,]([^\\s,)]+)/.exec(highchartColumnG.getAttribute('transform'));\n const yValTranslate = parseInt(highchartColumnGTransformVal[2]) + 1;\n highchartColumnG.transform.baseVal.getItem(0).setTranslate(parseInt(highchartColumnGTransformVal[1]), yValTranslate);\n }\n if (options.product === 'wsj') {\n const rectGroup = highchart.container.getElementsByClassName('highcharts-point');\n for (let h = 0; h < rectGroup.length; h++) {\n const rect = rectGroup[h];\n const rectHeight = parseInt(rect.getAttribute('height'));\n const rectY = parseInt(rect.getAttribute('y'));\n rect.setAttribute('height', rectHeight + 1);\n rect.setAttribute('y', rectY - 2);\n }\n }\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj' && (options.type === 'bar' && options.horizontalChartType === 'normal')) {\n const yAxis = highchart.container.getElementsByClassName('highcharts-yaxis-labels');\n yAxis[0].setAttribute('transform', 'translate(0, 2)');\n\n // align h-bar xAxis labels to the left\n const xAxis = highchart.container.getElementsByClassName('highcharts-xaxis-labels');\n const xLabels = xAxis[0].childNodes;\n\n xLabels.forEach(label => {\n label.setAttribute('x', '0');\n label.setAttribute('text-anchor', 'start');\n\n const tspans = label.childNodes;\n\n tspans.forEach(tspan => {\n tspan.setAttribute('x', '0');\n });\n });\n }\n }\n}\n\n// Ensures lines are offset by 0.5 to ensure crispness.\n// TODO: If ever combining inner and outer charts, revisit this function!\nfunction makeLinesCrisp(highchart, options) {\n const g = highchart.container.querySelectorAll('svg > g');\n\n for (let i = 0; i < g.length; i++) {\n const list = g[i].classList;\n\n if (!list.contains('highcharts-legend')) {\n g[i].setAttribute('transform', 'translate(0, 0.5)');\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n if(list.contains('highcharts-xaxis')){\n g[i].setAttribute('transform', `translate(0, ${options.styles.tick.yOffset})`);\n }\n }\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/axes-postrender.js","import * as transform from './transform';\nimport { isVerticalType, forAxisTicks, forAxisTicksReverse } from './util';\nimport { NBSP } from '../data/constants';\nimport { ANNOTATIONS_SPACE, ANNOTATIONS_SPACE_PRINT } from '../data/constants';\nimport * as element from '../util/element';\n\n\n/**\n * Manipulates the SVG drawn by Highcharts to update the scale (Y) axis.\n */\nexport default function axesPostRenderYAxis(highchart, options, styles) {\n // The scale axis is always the Y axis, even on bar charts where the scale\n // axis visually is the X axis:\n // for wsj yaxis labels, set to tabular-nums\n const notVideoGroup = options.id !== 'video' && options.id !== 'twitterVideo';\n\n if (!options.print && options.product === 'wsj' && notVideoGroup) {\n highchart.container.getElementsByClassName('highcharts-yaxis-labels')[0].setAttribute('style', 'font-variant-numeric: tabular-nums;');\n }\n\n if (options.type === 'scatter' && options.headings.yaxisTitle.text) {\n moveYAxisTitle(highchart, options);\n }\n\n const axis = highchart.axes[1];\n if (isVerticalType(options.type)) {\n makeDecimalsConsistent(axis);\n extendTicks(axis, options);\n \n } else {\n if (options.type !== 'scatter') shiftLastHorizontalBarLine(highchart, options);\n }\n\n setZeroLineToBlack(axis, options, highchart);\n \n insertZeroesForEmptyBars(highchart.renderer, axis, options);\n if ((options.type === 'column' || options.type === 'bar') && (options.id !== 'video' && options.id !== 'twitterVideo')) {\n moveZeroLineToTop(highchart.container, axis, options);\n }\n if (notVideoGroup) {\n ensureLabelsFit(axis, options, highchart);\n }\n\n if (options.type === 'scatter' && (options.product === 'marketwatch' || options.product === 'financialnews')) {\n shiftYAxisLabelsScatter(options, highchart);\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj' && options.type !== 'bar') {\n // moveTopLabel(axis, options);\n }\n }\n\n addSuffix(highchart.renderer, axis, options, styles, highchart);\n\n if (options.id === 'print-barrons') {\n if (axis.ticks[0]) setZeroLineWidth(axis.ticks[0], 1);\n }\n\n if(options.id === 'video' || options.id === 'twitterVideo'){\n if (axis.ticks[0]) {\n setZeroLineWidth(axis.ticks[0], options.id === 'video' ? 11 : 8);\n //sets xAxis line width to 1\n setXAxisLineToOne(highchart.axes[0].axisLine);\n }\n}\n}\n\nfunction shiftYAxisLabelsScatter(options, highchart) {\n const container = highchart.container;\n const yAxisLabelsGroup = container.getElementsByClassName('highcharts-yaxis-labels')[0];\n let translateValue = 'translate(35, 0.5)';\n yAxisLabelsGroup.attributes.transform.nodeValue = translateValue;\n}\n\nfunction moveYAxisTitle(highchart, options) {\n const yAxisTitle = highchart.container.getElementsByClassName('highcharts-axis-title')[1];\n const yVal = Number(yAxisTitle.getAttribute('y'));\n if (options.product === 'wsj' || options.product === 'barrons') {\n yAxisTitle.setAttribute('y', yVal - (yVal * 0.015));\n }\n}\n\nfunction setZeroLineWidth(line, num) {\n line.gridLine.element.setAttribute('stroke-width', num);\n}\n\nfunction setXAxisLineToOne(line){\n line.element.setAttribute('stroke-width', 1);\n}\n\n// Set line representing the zero value to black.\nfunction setZeroLineToBlack(axis, options, highchart) {\n let zeroTick = axis.ticks[0];\n\n if (__MARKETWATCH__) {\n if (options.product === 'marketwatch' && options.type === 'column') {\n return;\n }\n }\n\n let zeroY;\n if (options.type === 'scatter') {\n forAxisTicks(axis, (ticks, i) => {\n const label = ticks.label.textStr;\n if (label === '0' || label === '0<tspan fill-opacity=\"0\">.0</tspan>') {\n zeroY = i;\n } \n });\n \n if (zeroY !== undefined) {\n const zeroTickScatter = axis.ticks[zeroY];\n zeroTickScatter.gridLine.element.setAttribute('stroke', options.styles.axes.zeroGridLine.color || '#333');\n }\n }\n if (zeroTick && options.type !== 'scatter') {\n zeroTick.gridLine.element.setAttribute('stroke', '#000');\n\n if(__WSJ__){\n if(options.product === 'wsj'){\n zeroTick.gridLine.element.setAttribute('stroke', options.styles.axes.zeroGridLine.color);\n }\n }\n }\n}\nfunction makeDecimalsConsistent(axis) {\n const zeroIndex = axis.tickPositions.indexOf(0);\n const maxDecimals = getMaxTicksDecimals(axis);\n if (maxDecimals > 0) {\n forAxisTicks(axis, (tick, key, index) => {\n let textStr = tick.label.textStr;\n let indexDot = textStr.indexOf('.');\n let decimals = indexDot === -1 ? 0 : (textStr.length - indexDot - 1);\n if (key === 0) {\n textStr += '<tspan fill-opacity=\"0\">';\n }\n if (indexDot === -1) {\n indexDot = textStr.length;\n textStr += '.';\n }\n while (decimals++ < maxDecimals) {\n textStr += '0';\n }\n if (key === 0) {\n textStr += '</tspan>';\n }\n tick.label.textStr = textStr;\n tick.label.element.innerHTML = textStr;\n });\n }\n}\n\n// Extend grid lines under the label text on the y-axis (for \"vertical\" axes).\nfunction extendTicks(axis, options) {\n if (options.type === 'scatter' || (options.type === 'line' && options.product === 'marketwatch')) {\n let firstTick;\n let lastTick;\n forAxisTicks(axis, tick => {\n if (tick.isFirst) firstTick = tick;\n if (tick.isLast) lastTick = tick;\n });\n if (firstTick && lastTick) {\n const firstLine = firstTick.gridLine.element;\n const lastLine = lastTick.gridLine.element;\n const dFirst = transform.read(firstLine, 'd');\n const dLast = transform.read(lastLine, 'd');\n dFirst[0][0] = dFirst[0][0] - 1;\n dFirst[1][0] = dFirst[1][0] + 1;\n dLast[0][0] = dLast[0][0] - 1;\n dLast[1][0] = dLast[1][0] + 1;\n transform.write(firstLine, 'd', dFirst);\n transform.write(lastLine, 'd', dLast);\n }\n \n } else {\n forAxisTicks(axis, tick => {\n const line = tick.gridLine.element;\n if (line.hasAttribute('d')) {\n const d = transform.read(line, 'd');\n d[0][0] = 0;\n if (options.spaceAddedForAnnotations) {\n d[1][0] += options.print ? ANNOTATIONS_SPACE_PRINT : ANNOTATIONS_SPACE;\n }\n transform.write(line, 'd', d);\n // const d = line.getAttribute('d').split(/\\s/g);\n // d[1] = 0;\n // if (options.spaceAddedForAnnotations) {\n // console.log('???');\n // }\n // line.setAttribute('d', d.join(' '));\n }\n });\n }\n \n}\n\nfunction getMaxTicksDecimals(axis) {\n let maxDecimals = 0;\n forAxisTicks(axis, (tick, pos) => {\n const decimal = tick.label.textStr.split('.')[1];\n if (decimal !== undefined) {\n maxDecimals = Math.max(decimal.length, maxDecimals);\n }\n });\n return maxDecimals;\n}\n\n// Add units suffix string to the top tick label (`isLast`).\nfunction addSuffix(renderer, axis, options, styles, highchart) {\n if (options.axes.units && isVerticalType(options.type)) {\n for (let key in axis.ticks) {\n const ok1 = options.axes.reversed && axis.ticks[key].isFirst;\n const ok2 = !options.axes.reversed && axis.ticks[key].isLast;\n if (ok1 || ok2) {\n const isVideoGroup = options.id === 'video' || options.id === 'twitterVideo'\n let label = axis.ticks[key].label.element;\n\n // To align the 0 properly with other labels without having\n // decimals, the decimals are made inivisible. But this means\n // any units suffix must be offset to not show up to the right\n // of these invisible decimals but instead right next to the 0.\n const tspan = label.querySelector('tspan');\n let xOffset = 0;\n if (isVideoGroup) {\n xOffset = label.getBoundingClientRect().width;\n }\n if (tspan && tspan.getAttribute('opacity') === '0') {\n let tspanInnerHTML = label.innerHTML + '';\n let labelFullWidth = label.getBoundingClientRect().width;\n label.innerHTML = '0';\n let labelTmpWidth = label.getBoundingClientRect().width;\n xOffset += labelTmpWidth - labelFullWidth;\n label.innerHTML = tspanInnerHTML;\n }\n const unitStr = options.product === 'financialnews' ? options.axes.units.suffix : options.axes.units.suffix.replace(/^\\s+/, NBSP);\n if ((options.type === 'line' || options.type === 'column') && options.product === 'marketwatch') {\n label.innerHTML = label.innerHTML + '<tspan>' + ' ' + unitStr + '</tspan>';\n break;\n }\n if ((options.type === 'line' || options.type === 'column') && options.product === 'financialnews') {\n if (options.axes.units.suffix !== \"%\") {\n const labelYVal = label.getAttribute('y');\n const highChartContainer = highchart.container;\n let newLabelYVal = labelYVal - 7;\n styles.NORMAL_STYLE.fontSize = 10;\n styles.NORMAL_STYLE.color = '#555555';\n const firstYAxisLabel = highChartContainer.getElementsByClassName('highcharts-yaxis-labels')[0].lastElementChild.getBoundingClientRect().right;\n const suffix = renderer.text(unitStr, +label.getAttribute('x'), +newLabelYVal)\n .css(styles.NORMAL_STYLE)\n .add();\n suffix.element.setAttribute('class', 'units y-axis-suffix');\n const suffixRight = suffix.element.getBoundingClientRect().right;\n const currentSuffX = suffix.element.getAttribute('x');\n const diff = suffixRight - firstYAxisLabel;\n suffix.element.setAttribute('x', currentSuffX - diff);\n\n // suffix.element.setAttribute('x', currentSuffX - diff);\n break;\n } else {\n label.innerHTML = label.innerHTML + '<tspan>' + unitStr + '</tspan>';\n break;\n }\n\n } else {\n let css = styles.NORMAL_STYLE;\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n css = Object.assign({}, css, {\n fontSize: styles.AXES.label.fontSize,\n color: styles.AXES.label.color,\n fill: styles.AXES.label.color\n });\n }\n }\n\n if (__MANSIONGLOBAL__) {\n if (options.product === 'mansionglobal') {\n css = Object.assign({}, css, {\n color: styles.AXES.color,\n fill: styles.AXES.color\n });\n }\n }\n\n const suffix = renderer.text(unitStr, +label.getAttribute('x') + xOffset, +label.getAttribute('y'))\n .css(css)\n .add();\n const currentY = suffix.element.getAttribute('y');\n suffix.element.setAttribute('class', 'units y-axis-suffix');\n // aligns the suffix with the label\n if (!options.print) {\n suffix.element.setAttribute('y', +currentY + .5);\n }\n break;\n }\n }\n }\n }\n\n}\n\n// On vertical bar / column charts, insert a small '0' in place of bars that\n// have a zero value, so that it does not look like an error.\nfunction insertZeroesForEmptyBars(renderer, axis, options) {\n const typeOk = options.type === 'column';\n const stackOk = !options.stacking || axis.series.length === 1;\n if (typeOk && stackOk) {\n const series = axis.series;\n const allLessThanZero = allValuesLessThanZero(axis);\n let g = [];\n axis.series.forEach(series => {\n series.data.forEach(item => {\n if (item.y === 0) {\n const el = item.graphic.element;\n const translate = transform.read(el.parentElement, 'translate');\n if (translate) {\n let x = +el.attributes.x.value + translate[0];\n let y = +el.attributes.y.value + translate[1];\n let smallStyle = options.styles.get('small');\n if (options.product === 'wsj') {\n smallStyle.color = '#555555';\n } else {\n smallStyle.color = item.color;\n }\n x += +el.attributes.width.value / 2;\n y += allLessThanZero ? parseFloat(options.styles.get('small').fontSize) : -4;\n const text = renderer.text('0', x, y)\n .attr({ 'text-anchor': 'middle' })\n .css(smallStyle)\n .add();\n g.push({ type: '0', el: text.element });\n }\n \n } else if (item.graphic) {\n g.push({ type: 'bar', el: item.graphic.element });\n }\n });\n });\n\n // Sort by `left` position.\n g.sort(function (a, b) {\n return a.el.getBoundingClientRect().left -\n b.el.getBoundingClientRect().left;\n });\n\n // Check if 0s overlap bars or other 0s and, if so, remove.\n for (let i = 0; i < g.length - 1; i++) {\n if (g[i].type === '0') {\n const r1 = g[i].el.getBoundingClientRect();\n const r2 = g[i + 1].el.getBoundingClientRect();\n if (r1.right + 2 > r2.left) {\n element.removeChild(g[i].el);\n }\n }\n }\n }\n}\n\n// Returns true if all values are <= 0.\nfunction allValuesLessThanZero(axis) {\n return axis.series.every(series => {\n return series.data.every(item => {\n return item.y <= 0;\n })\n });\n}\n\n// In Highcharts, grid lines ares places under lines and columns, which is\n// fine. But we want the 0 line to be above (as in z or depth).\nfunction moveZeroLineToTop(container, axis, options) {\n const zero = axis.ticks[0];\n if (zero) {\n const el = zero.gridLine.element;\n if (__WSJ__) {\n if (options.size === 'print-wsj') {\n const d = transform.read(el, 'd');\n if (options.type === 'bar') {\n d[0][0] = Math.floor(d[0][0]) - 0.5;\n d[1][0] = d[0][0];\n } else {\n d[0][1] = Math.ceil(d[0][1]);\n d[1][1] = d[0][1];\n }\n transform.write(el, 'd', d);\n }\n }\n container.querySelector('.highcharts-series-group').appendChild(el);\n }\n}\n\n// Sometimes Highcharts lets labels slip off the edge of chart, as if it\n// measured the label width using a short label. Push the labels over so they\n// all fit.\nfunction ensureLabelsFit(axis, options, highchart) {\n // ensureHorizontalLabelsFit(axis);\n if (options.type === 'bar') {\n if (!options.axes.reversed) {\n ensureHorizontalLabelsFit(axis);\n }\n } else {\n if (!options.headings.yaxisTitle.text) {\n ensureVerticalLabelsFit(axis, options, highchart);\n }\n }\n}\n\nfunction ensureHorizontalLabelsFit(axis) {\n const key = axis.tickPositions[axis.tickPositions.length - 1];\n const tick = axis.ticks[key];\n const el = tick.label.element;\n const x2 = tick.label.xy.x + el.getBoundingClientRect().width / 2;\n const dif = axis.left + axis.width - x2;\n tick.label.xy.x += dif;\n if (dif < 0) {\n el.setAttribute('x', +el.getAttribute('x') + dif);\n }\n}\n\nfunction ensureVerticalLabelsFit(axis, options, highchart) {\n let maxWidth = 0;\n forAxisTicks(axis, tick => {\n const width = tick.label.element.getBoundingClientRect().width;\n maxWidth = Math.max(maxWidth, width);\n }); \n maxWidth = Math.ceil(maxWidth);\n if (options.product !== \"marketwatch\" && options.product !== 'financialnews') {\n forAxisTicks(axis, tick => {\n tick.label.element.setAttribute('x', maxWidth);\n });\n }\n else {\n if (options.type !== 'scatter') {\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews') {\n if (options.type === 'line' || options.type === 'column') {\n const highChartContainer = highchart.container;\n let labelsG = highChartContainer.getElementsByClassName('highcharts-yaxis-labels');\n let translateValue = options.print === true ? 'translate(0, 5)' : 'translate(0, 6)';\n labelsG[0].attributes.transform.nodeValue = translateValue;\n const gElRectLabels = highChartContainer.getElementsByClassName('highcharts-yaxis-labels')[0];\n const gElRectRightLabels = gElRectLabels.getBoundingClientRect().right;\n const gElRectLabelsChildren = gElRectLabels.children;\n const horizontalGridLineArr = highChartContainer.getElementsByClassName('highcharts-yaxis-grid')[0].children;\n const gWidth = gElRectLabels.getBoundingClientRect().width;\n // if (options.type === 'line') {\n // // translate the yaxis labels to the right based on width of surround g element\n // gElRectLabels.setAttribute('transform', 'translate(' + gWidth + ',' + '6)' );\n // for (let i = 0; i < gElRectLabelsChildren.length; i++) {\n // gElRectLabelsChildren[i].setAttribute('text-anchor', 'end');\n // // if there's a 0 in yaxis labels remove the extra space/zero\n // const hasZero = gElRectLabels.children[i].innerHTML === '0' || gElRectLabels.children[i].innerHTML[1] === '<' ? true : false;\n // if (hasZero) {\n // gElRectLabels.children[i].children[0].innerHTML = '';\n // }\n // const currentXVal = Number(gElRectLabelsChildren[i].getAttribute('x'));\n // const dValue = transform.read(horizontalGridLineArr[i], 'd');\n // let lastHorizontalGridLineElD = horizontalGridLineArr[i].getAttribute('d').split(' ');\n // const childWidth = gElRectLabelsChildren[i].getBoundingClientRect().width;\n // // extend horizontal gridlines to match position of label, which is now right aligned. highcharts positions them to be left aligned and all horizontal gridlines end at some point, thereby having same length\n // lastHorizontalGridLineElD[3] = ((currentXVal + (gWidth) - childWidth - 2)) + \",\" + dValue[1][1];\n // // if first yaxis label has a percentage sign, decrease length of horizontal gridline to account for extra space that % creates\n // lastHorizontalGridLineElD[3] = (options.axes.units.suffix === '%') && i === gElRectLabelsChildren.length - 1 ? ((currentXVal + (gWidth) - childWidth - 15)) + \",\" + dValue[1][1] : lastHorizontalGridLineElD[3];\n // // make sure first gridline has proper length\n // lastHorizontalGridLineElD[3] = options.axes.units.prefix !== \"\" && i === gElRectLabelsChildren.length - 1 ? (currentXVal - (gWidth * 0.125)) + \",\" + dValue[1][1] : lastHorizontalGridLineElD[3];\n // lastHorizontalGridLineElD[2] = '';\n // lastHorizontalGridLineElD = lastHorizontalGridLineElD.join(' ');\n // horizontalGridLineArr[i].setAttribute('d', lastHorizontalGridLineElD);\n // }\n // }\n }\n if (options.type !== 'line' && options.type !== 'column') {\n forAxisTicks(axis, tick => {\n tick.label.element.setAttribute('x', maxWidth);\n });\n }\n }\n }\n if (__MARKETWATCH__) {\n if (options.type === 'line' && options.product === 'marketwatch') {\n const highChartContainer = highchart.container;\n \n let labelsG = highChartContainer.getElementsByClassName('highcharts-yaxis-labels');\n let translateValue = 'translate(0, 6)';\n labelsG[0].attributes.transform.nodeValue = translateValue;\n }\n if (options.type === 'column' && options.product === 'marketwatch') {\n const highChartContainer = highchart.container;\n let labelsG = highChartContainer.getElementsByClassName('highcharts-yaxis-labels');\n let translateValue = 'translate(0, 6)';\n labelsG[0].attributes.transform.nodeValue = translateValue;\n }\n \n if (options.type !== \"line\" && options.type !== 'column') {\n forAxisTicks(axis, tick => {\n tick.label.element.setAttribute('x', maxWidth);\n });\n }\n }\n }\n \n }\n\n}\n\nfunction shiftLastHorizontalBarLine(highchart, options) {\n const axis = highchart.axes[1];\n forAxisTicksReverse(axis, tick => {\n if (tick.isLast) {\n const d = transform.read(tick.gridLine.element, 'd');\n d[0][0] -= 1;\n d[1][0] = d[0][0];\n transform.write(tick.gridLine.element, 'd', d);\n // break:\n return false;\n }\n });\n}\n\nfunction moveTopLabel(axis, options){\n const isColumn = options.type === 'column';\n const isPrint = options.size === 'print-wsj'\n const is8u = options.size === '8u';\n\n for (let tick in axis.ticks) {\n if(axis.ticks[tick].isLast){\n const topTick = axis.ticks[tick];\n const label = axis.ticks[tick].label.element;\n const position = +label.getAttribute('y');\n let offset = -2;\n\n if(is8u){\n offset = -1;\n }\n\n if(isColumn){\n offset = -1;\n }\n\n if(isPrint){\n offset = -.5;\n }\n\n const newPostition = position + offset;\n label.setAttribute('y', newPostition);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/axes-postrender-y-axis.js","import { isVerticalType, forAxisTicks } from './util';\nimport * as transform from './transform';\nimport { YEAR_MILLISECONDS } from './axes-common';\nimport { MONTHS, APOSTROPHE } from '../data/constants';\nimport * as element from '../util/element';\n\nexport default function axesPostRenderXAxis(highchart, options, style) {\n const { id, type, print, product, categoriesAreDates } = options;\n const isVideoGroup = checkVideoGroup(options.id);\n if (id === 'print-barrons' && type !== 'bar') {\n updateBarronsTickLabels(highchart, options);\n }\n if (barronsNoBaseline(highchart, options) && type !== 'scatter' && type !== 'bar') {\n updateBarronsTicks(highchart, options);\n }\n if (product === 'wsj' && !print && !isVideoGroup) {\n highchart.container.getElementsByClassName('highcharts-xaxis-labels')[0].setAttribute('style', 'font-variant-numeric: tabular-nums;');\n }\n if (product === 'knewz') {\n let xAxisContainerTicks = highchart.container.getElementsByClassName('highcharts-xaxis')[0].children;\n for (var x = 0; x < xAxisContainerTicks.length; x++) {\n xAxisContainerTicks[x].setAttribute('stroke', '#fefefe')\n }\n }\n if (type === 'bar') {\n formatBarChartLabels(highchart, options);\n } else {\n if (categoriesAreDates) {\n updateDateLabels(highchart, options, style);\n } else {\n updateCategoryLabels(highchart, options);\n if (__MARKETWATCH__) {\n if(product === 'marketwatch' && type === 'line') {\n adjustFirstXAxisTick(highchart.axes[0], false, false);\n }\n }\n if (__FINANCIALNEWS__) {\n if(product === 'financialnews' && type === 'line') {\n adjustFirstXAxisTick(highchart.axes[0], false, false);\n }\n }\n }\n }\n updateForMW(highchart, options);\n if (type === 'scatter') {\n const axis = highchart.axes[0];\n setZeroLineToBlack(highchart, options, axis)\n }\n\n if (isVideoGroup) {\n extendVideoAxisLine(highchart);\n }\n}\n\nexport function checkVideoGroup(id) {\n return id === 'video' || id === 'twitterVideo';\n}\n\nexport function extendVideoAxisLine(highchart) {\n const axisLine = highchart.axes[0].axisLine.element;\n const d = axisLine.getAttribute('d').split(' ');\n d[1] = '0';\n axisLine.setAttribute('d', d.join(' '));\n}\n\nfunction setZeroLineToBlack(highchart, options, axis) {\n let zeroX;\n \n forAxisTicks(axis, (ticks, i) => {\n const label = ticks.label.textStr;\n if (label === '0') zeroX = i;\n });\n if (zeroX !== undefined) {\n const zeroTickScatter = axis.ticks[zeroX];\n zeroTickScatter.gridLine.element.setAttribute('stroke', options.styles.axes.zeroGridLine.color || '#333');\n const container = highchart.container;\n const xAxisGrid = container.getElementsByClassName('highcharts-yaxis-grid')[0];\n xAxisGrid.appendChild(zeroTickScatter.gridLine.element);\n }\n \n}\n\nfunction updateBarronsTickLabels(highchart, options) {\n const ticks = highchart.xAxis[0].ticks;\n for (let key in ticks) {\n const tick = ticks[key];\n const tickBottom = +tick.mark.d.split(' ')[5];\n tick.label.element.setAttribute('y', tickBottom + 7);\n }\n}\n\nfunction barronsNoBaseline(highchart, options) {\n const ticks = highchart.axes[1].tickPositions;\n return options.product === 'barrons' &&\n (!highchart.axes[1].ticks[0] ||\n ticks.some(tick => tick < 0) && ticks.some(tick => tick >= 0));\n}\n\nfunction updateBarronsTicks(highchart, options) {\n const ticks = highchart.axes[0].ticks;\n for (let key in ticks) {\n const el = ticks[key].mark.element;\n el.setAttribute('stroke', '#e6e6e6');\n if (options.print) el.setAttribute('stroke-width', 0.4);\n }\n}\n\nfunction updateForMW(highchart, options) {\n if (__MARKETWATCH__) {\n if (options.product === 'marketwatch' && options.type === 'line') {\n const xAxisTicks = highchart.xAxis[0].ticks;\n const xAxisTicksAsArr = Object.keys(xAxisTicks);\n const firstTick = xAxisTicksAsArr[0];\n const lastTick = xAxisTicksAsArr[xAxisTicksAsArr.length - 1];\n for (var x in xAxisTicks) {\n const highchartXAxisGrid = highchart.container.getElementsByClassName('highcharts-xaxis-grid')[0];\n const highchartXAxisGridFirstEl = highchartXAxisGrid.firstElementChild.getAttribute('class');\n const highchartXAxisGridLastEl = highchartXAxisGrid.lastElementChild.getAttribute('class');\n const hasFirstAddedVerticalGridline = highchartXAxisGridFirstEl === 'add-vertical-gridline';\n const hasLastAddedVerticalGridline = highchartXAxisGridLastEl === 'add-vertical-gridline';\n const evalBoth = hasLastAddedVerticalGridline && hasFirstAddedVerticalGridline;\n if (evalBoth) {\n if (xAxisTicks[x].label.element.parentElement) {\n\n } else {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n } else {\n if (!hasFirstAddedVerticalGridline && !hasLastAddedVerticalGridline) {\n if (xAxisTicks[x].label.element.parentElement || xAxisTicks[x].isFirst || xAxisTicks[x].isLast) {\n } else {\n if (!xAxisTicks[x].isFirst || !xAxisTicks[x].isLast) {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n }\n }\n if (!hasFirstAddedVerticalGridline && hasLastAddedVerticalGridline) {\n if (xAxisTicks[x].label.element.parentElement || xAxisTicks[x].isFirst) {\n } else {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n }\n if (!hasLastAddedVerticalGridline && hasFirstAddedVerticalGridline) {\n\n if (xAxisTicks[x].label.element.parentElement || xAxisTicks[x].isLast) {\n } else {\n xAxisTicks[x].gridLine.element.setAttribute('opacity', 0);\n }\n }\n }\n }\n }\n }\n}\n\n\nfunction formatBarChartLabels(highchart, options) {\n if (!options.allowCategoriesLinebreak) {\n forAxisTicks(highchart.xAxis[0], (tick) => {\n const tspan = tick.label.element.querySelectorAll('tspan');\n if (tspan.length > 1) {\n // Move the top tspan down to center it vertically in its space:\n const labelY = +tick.label.element.getAttribute('y');\n const tspanY = (+tspan[1].getAttribute('dy') / 2) * (tspan.length - 1);\n tick.label.element.setAttribute('y', labelY + tspanY);\n\n // Replace last 4 characters with an ellipsis (4 instead of 3 to be\n // ensure nothing is cut off at left):\n const textStr = tspan[0].textContent.substr(0,\n tspan[0].textContent.length - 4) + '...';\n tspan[0].innerHTML = textStr;\n\n // Remove the extra tspans:\n for (let i = 1; i < tspan.length; i++) {\n element.removeChild(tspan[i]);\n }\n }\n });\n }\n}\n\n\n// Remove category ticks and labels that are redudant or overlapping.\nexport function updateCategoryLabels(highchart, options) {\n if (options.removeOverlappingCategories) {\n let maxWidth = 0;\n const ticksShown = [];\n forAxisTicks(highchart.xAxis[0], (tick, index) => {\n if (tick.label.textStr === index) {\n removeTick(tick);\n } else {\n maxWidth = Math.max(maxWidth, tick.label.textPxLength);\n ticksShown.push(tick);\n }\n });\n const maxLabels = Math.floor(highchart.xAxis[0].width / maxWidth) || 0;\n const skip = Math.ceil(ticksShown.length / maxLabels);\n if (skip > 1) {\n let removeNum = 0;\n for (let i = 0; i < ticksShown.length; i++) {\n if (removeNum > 0 && removeNum < skip) {\n removeTick(ticksShown[i]);\n }\n if (++removeNum === skip) {\n removeNum = 0;\n }\n }\n }\n }\n}\n\n// Remove date ticks and labels that are redudant or overlapping.\nfunction updateDateLabels(highchart, options, styles) {\n const axis = highchart.axes[0];\n if (options.type === 'column') {\n const categoriesLen = options.categories[0].length;\n if (options.quarterlyResults && categoriesLen > 9) {\n // centerCategoriesBetweenBars(axis, options);\n } else {\n if (axis.tickInterval < YEAR_MILLISECONDS) {\n // TODO: Re-enable this but with long ticks, better rules.\n // centerCategoriesBetweenBars(axis, options);\n // centerLabelsBetweenBars(highchart, options);\n }\n }\n }\n if (options.quarterlyResults && options.series[0].data.length <= 44) {\n // ensureMultipleLinesForQuarterlyResults(highchart, styles);\n removeOverlappingQuarterlyResults(axis, options, styles);\n } else {\n const skipNum = getDatesSkipNum(axis, styles.MARGIN);\n const startNum = formatDateLabels(axis, options, skipNum);\n removeAmPm(axis, options);\n const isMwOrFn = options.product === 'marketwatch' || options.product === 'financialnews' ? true : false;\n const tickArray = Object.keys(axis.ticks);\n if (options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n let isAnIntervalOfOne = options.xAxisInterval.split(' ')[0] === '1' && options.xAxisInterval !== '1 week' ? true : false;\n if (isAnIntervalOfOne || options.xAxisInterval === 'auto') {\n removeOverlappingDates(axis, options, skipNum, startNum, styles);\n if (options.xAxisInterval === '1 day') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n } else {\n if (options.type !== 'column' && !isMwOrFn && options.showMinorTicks) {\n addMinorTick(axis, options, styles, highchart);\n }\n if (isMwOrFn) {\n if (options.xAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.xAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && options.type === 'column') {\n if (options.xAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.xAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && !options.showMinorTicks) {\n if (options.xAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.xAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n }\n }\n \n if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== undefined) {\n let isAnIntervalOfOneMob = options.mobileXAxisInterval.split(' ')[0] === '1' && options.mobileXAxisInterval !== '1 week' ? true : false;\n if (isAnIntervalOfOneMob || options.mobileXAxisInterval === 'auto') {\n removeOverlappingDates(axis, options, skipNum, startNum, styles);\n if (options.mobileXAxisInterval === '1 day') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n } else {\n if (options.type !== 'column' && !isMwOrFn && options.showMinorTicks) {\n addMinorTick(axis, options, styles, highchart);\n }\n if (isMwOrFn) {\n if (options.mobileXAxisInterval === '1 week' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.mobileXAxisInterval === '3 months' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && options.type === 'column') {\n if (options.mobileXAxisInterval === '1 week' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.mobileXAxisInterval === '3 months' && options.showMinorTicks) {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n if (!isMwOrFn && !options.showMinorTicks) {\n if (options.mobileXAxisInterval === '1 week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, false);\n }\n if (options.mobileXAxisInterval === '3 months') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, true);\n }\n }\n }\n }\n }\n if (options.fiscalYears && !options.quarterlyResults) {\n addFY(axis);\n }\n replaceApostrophes(axis);\n adjustLastXAxisTick(axis);\n ensureTickSpacing(axis, options, styles);\n if (__MARKETWATCH__) {\n if(options.product === 'marketwatch' && options.type === 'line') {\n adjustFirstXAxisTick(axis, true, false);\n }\n if(options.product === 'marketwatch' && options.type === 'column' && options.quarterlyResults && options.size === 'marketwatch-4u-inset') {\n adjustFirstXAxisTick(axis, false, true);\n }\n }\n if (__FINANCIALNEWS__) {\n if (options.product === 'financialnews' && options.type === 'line') {\n adjustFirstXAxisTick(axis, true, false);\n }\n }\n\n if (__WSJ__) {\n if (options.product === 'wsj') {\n if (!options.showMinorTicks) {\n makeTickShorter(axis, options, styles, highchart);\n }\n const xGridTickGroup = highchart.container.getElementsByClassName('highcharts-xaxis')[0];\n const xGridLabelGroup = highchart.container.getElementsByClassName('highcharts-xaxis-labels')[0];\n if (!options.print) {\n if (options.showMinorTicks) {\n xGridLabelGroup.setAttribute('transform', 'translate(0, -0.5)');\n } else {\n xGridLabelGroup.setAttribute('transform', 'translate(0, -2.5)');\n }\n }\n \n if (((xGridTickGroup.children.length - 1) === xGridLabelGroup.children.length) && options.showMinorTicks) {\n if (!options.print) xGridLabelGroup.setAttribute('transform', 'translate(0, -2.5)');\n makeTickShorter(axis, options, styles, highchart);\n }\n }\n \n }\n \n}\n\n// Moves ticks to between bars by shifting them to the left by half the space\n// between ticks. For use when x-axis date labels are categories and not actual\n// dates, such as quarterly data.\nfunction centerCategoriesBetweenBars(axis, options) {\n const tickSpacing = Math.round(getTickSpacing(axis) * 0.5);\n const x = [];\n forAxisTicks(axis, (tick, tickPos, index) => {\n var markD = transform.read(tick.mark.element, 'd');\n x[index] = markD[0][0] - tickSpacing;// + 0.5;\n });\n moveAxisLabels(axis, x);\n}\n\n// Move a series tick marks and labels to specific x positions.\nfunction moveAxisLabels(axis, x) {\n forAxisTicks(axis, (tick, key, index) => {\n if (x[index] !== null && x[index] !== undefined) {\n let markD = transform.read(tick.mark.element, 'd');\n markD[0][0] = markD[1][0] = Math.round(x[index]) + 0.5;\n transform.write(tick.mark.element, 'd', markD[0], markD[1]);\n tick.label.element.setAttribute('x', x[index]);\n const tspan = tick.label.element.querySelectorAll('tspan');\n for (let i = 0; i < tspan.length; i++) {\n tspan[i].setAttribute('x', x[index]);\n }\n }\n });\n}\n\n// Get number of x-axis date labels that overlap and therefore must be removed.\nfunction getDatesSkipNum(axis, margin) {\n // At least 2 points are needed if one is to overlap another.\n if (axis.tickPositions.length >= 2) {\n let widest = 0;\n let tickDistance = Math.max(2, getTickSpacing(axis) - margin);\n forAxisTicks(axis, tick => {\n const width = tick.label.element.getBoundingClientRect().right + margin -\n tick.label.element.getBoundingClientRect().left;\n widest = Math.max(widest, width);\n });\n let skipNum = normalizeSkipNumber(Math.ceil(widest / tickDistance));\n let skipLabels = Math.floor(axis.tickPositions.length / skipNum);\n const maxLabels = Math.floor(axis.width / widest);\n while (skipLabels > maxLabels) {\n skipNum = normalizeSkipNumber(Math.ceil(widest / --tickDistance));\n skipLabels = Math.floor(axis.tickPositions.length / skipNum);\n }\n return skipNum;\n }\n return 0;\n}\n\n// When overlapping date labels are removed, this returns a number that is more\n// normal to skip over: 10 instead of 9 or 5 instead of 3.\nfunction normalizeSkipNumber(skip) {\n if (skip > 2 && skip < 5) {\n return 5;\n } else if (skip > 5 && skip < 10) {\n return 10;\n } else if (skip > 10 && skip < 15) {\n return 15;\n } else if (skip > 15 && skip < 20) {\n return 20;\n } else if (skip > 20 && skip < 25) {\n return 25;\n } else if (skip > 25 && skip < 50) {\n return 50;\n } else if (skip > 50 && skip < 100) {\n return 100;\n }\n return skip;\n}\n\n// Returns the distance/space between the first two ticks of an axis.\nfunction getTickSpacing(axis) {\n let spacing = 0;\n if (axis.tickPositions.length > 1) {\n const t1 = axis.ticks[axis.tickPositions[0]];\n const t2 = axis.ticks[axis.tickPositions[1]];\n const d1 = transform.read(t1.mark.element, 'd');\n const d2 = transform.read(t2.mark.element, 'd');\n spacing = d2[0][0] - d1[0][0];\n }\n return spacing;\n}\n\n// Format x-axis dates that are not quarterly results nor fiscal years.\nfunction formatDateLabels(axis, options, skipNum) {\n let dateType = null;\n let startNum = 0;\n skipNum = skipNum || 0;\n\n forAxisTicks(axis, (tick, key, index) => {\n const str = tick.label.textStr;\n\n if (/^(\\d{4})\\b/.test(str)) {\n dateType = 'year';\n } else if (options.dateTimeLabelFormat === '%e. %b') {\n dateType = 'month-date';\n } else if (options.dateTimeLabelFormat === '%b \\'%y') {\n dateType = 'month-year';\n }\n if (skipNum >= 2) {\n if (+str % skipNum === 0) {\n startNum = index;\n return false;\n }\n } else {\n return false;\n }\n });\n\n if (dateType === 'year') {\n formatYears(axis, startNum);\n } else if (dateType === 'month-year') {\n // This just removes duplicated years; we don't actually want to do this yet.\n // formatMonthYear(axis, startNum);\n } else if (dateType === 'month-date') {\n formatMonthDate(axis, startNum);\n }\n return startNum;\n}\n\n\n// Called from formatXAxisDates().\nfunction formatYears(axis, startNum) {\n let century;\n let tmpCentury;\n let abbrYear;\n let prevStr;\n forAxisTicks(axis, (tick, key, index) => {\n if (index >= startNum) {\n let str = tick.label.textStr + '';\n if (str === prevStr) {\n prevStr = str;\n removeTick(tick);\n } else {\n prevStr = str;\n // Format: 1980 '90 2000 '10\n tmpCentury = str.substr(0, 2);\n if (tmpCentury === century) {\n str = tick.label.textStr = APOSTROPHE + str.substr(2);\n tick.label.element.innerHTML = str;\n } else {\n century = tmpCentury;\n }\n const apostMatch = str.match(/\\u2019(\\d\\d)/);\n if (apostMatch) {\n if (abbrYear === undefined || abbrYear !== apostMatch[1]) {\n abbrYear = apostMatch[1];\n } else if (abbrYear === apostMatch[1]) {\n let apostIndex = str.indexOf(APOSTROPHE);\n if (apostIndex > 0) {\n str = str.substr(0, apostIndex - 1);\n tick.label.element.innerHTML = str;\n }\n }\n }\n }\n }\n });\n}\n\n// Called from formatXAxisDates().\nfunction formatMonthYear(axis, startNum) {\n let year = undefined;\n forAxisTicks(axis, tick => {\n if (tick.label.element.parentElement) {\n let label = tick.label.element.innerHTML.split(' ');\n if (label.length === 2) {\n if (label[1] === year) {\n tick.label.textStr = tick.label.element.innerHTML = label[0];\n } else {\n year = label[1];\n }\n }\n }\n });\n}\n\n// Called from formatXAxisDates().\nfunction formatMonthDate(axis, startNum) {\n let month = undefined;\n forAxisTicks(axis, tick => {\n if (tick.label.element.parentElement) {\n let label = tick.label.element.innerHTML.split(' ');\n if (label.length === 2 && MONTHS.indexOf(label[0]) !== -1) {\n if (label[0] === month) {\n tick.label.textStr = tick.label.element.innerHTML = label[1];\n } else {\n month = label[0];\n }\n }\n }\n });\n}\n\n// Remove superflous am/pm.\nfunction removeAmPm(axis, options) {\n let am;\n forAxisTicks(axis, (tick, key, index) => {\n if (tick.label.element.parentElement) {\n const str = tick.label.textStr + '';\n if (index === 0) {\n if (str.indexOf(' a.m.') !== -1) {\n am = 'a';\n } else if (str.indexOf(' p.m.') !== -1) {\n am = 'p';\n } else if (str === 'noon') {\n am = null;\n } else {\n // Timescale is not hours.\n return;\n }\n } else if (str !== 'noon') {\n let amIndex = str.indexOf(' a.m.');\n const tmpAm = (amIndex !== -1) ? 'a' : 'p';\n if (amIndex === -1) {\n amIndex = str.indexOf(' p.m.');\n }\n if (amIndex !== -1) {\n if (tmpAm === am) {\n tick.label.element.innerHTML = str.substr(0, amIndex);\n } else {\n am = tmpAm;\n }\n }\n }\n }\n });\n}\n\n// For overlapping quarterly results, remove labels that do not mention years.\nfunction removeOverlappingQuarterlyResults(axis, options, styles) {\n let tick0 = axis.ticks[axis.tickPositions[0]];\n let rect0 = tick0.label.element.getBoundingClientRect();\n let totalSkips = 0;\n let skips = 1;\n forAxisTicks(axis, (tick, key, index) => {\n if (index > 0) {\n if (rect0 === null && totalSkips > 0) {\n if (tick.label.element.innerHTML) {\n if (skips > 0 && totalSkips > 1 && options.xAxisInterval === 'auto') {\n removeDateTick(tick, options, styles);\n }\n if (++skips >= totalSkips) {\n skips = 0;\n }\n }\n } else {\n if (tick.label.element.innerHTML) {\n var rect = tick.label.element.getBoundingClientRect();\n if (rect0.right + styles.MARGIN >= rect.left && options.xAxisInterval === 'auto') {\n removeDateTick(tick, options, styles);\n } else {\n rect0 = null;\n }\n ++totalSkips;\n }\n }\n }\n });\n}\n\n// Removes overlapping datetime labels, accounting for context of datetime\n// labels before and after.\nfunction removeOverlappingDates(axis, options, skipNum, startNum, styles) {\n let prevStr = null;\n let label = null;\n const isMY = options.dateTimeLabelFormat === '%b \\'%y';\n const isHM = (/^\\%H\\:\\%M/).test(options.dateTimeLabelFormat);\n const axisTickLen = axis.tickPositions.length;\n forAxisTicks(axis, (tick, key, index) => {\n if (axisTickLen >= 2 && skipNum >= 2) {\n if (!(skipNum < 2 || (index - startNum) % skipNum === 0)) {\n removeDateTick(tick, options, styles);\n }\n }\n if (tick.label.element.parentElement) {\n if (isMY) {\n label = tick.label.textStr.split(' ');\n if (label[1] === prevStr) {\n tick.label.element.innerHTML = label[0];\n }\n prevStr = label[1];\n } else if (isHM) {\n label = tick.label.textStr;\n if (label === prevStr) {\n removeDateTick(tick, options, styles);\n }\n prevStr = label;\n }\n }\n });\n}\n\n// If fiscalYears, add 'FY' to first label.\nfunction addFY(axis) {\n forAxisTicks(axis, tick => {\n if (tick.label.element.parentElement) {\n tick.label.element.innerHTML = 'FY' + tick.label.textStr;\n return false;\n }\n });\n}\n\n// Ensures curly apostrophes render correctly.\nfunction replaceApostrophes(axis) {\n forAxisTicks(axis, tick => {\n const str = tick.label.element.innerHTML + '';\n tick.label.element.innerHTML = str.replace(APOSTROPHE, '’');\n });\n}\n\nfunction adjustLastXAxisTick(axis) {\n const tick = axis.ticks[axis.tickPositions[axis.tickPositions.length - 1]];\n const markX = transform.read(tick.mark.element, 'd')[0][0];\n const labelWidth = tick.label.element.getBoundingClientRect().width;\n const offset = (axis.left + axis.width) - (markX + labelWidth / 2);\n tick.label.element.setAttribute('x', markX + Math.min(0, offset));\n tick.label.element.setAttribute('text-anchor', 'middle');\n}\n\nfunction adjustFirstXAxisTick(axis, isDateTime, isColQuarterly) {\n const tick = axis.ticks[axis.tickPositions[0]];\n const markX = transform.read(tick.mark.element, 'd')[0][0];\n const labelWidth = tick.label.element.getBoundingClientRect().width;\n if (labelWidth / 2 > markX && !isColQuarterly) {\n if (isDateTime) {\n tick.label.element.setAttribute('x', labelWidth / 2);\n }\n else {\n tick.label.element.setAttribute('text-anchor', 'left');\n }\n } else {\n tick.label.element.setAttribute('x', markX);\n }\n if (isColQuarterly) {\n const barContainerX = axis.chart.container.getElementsByClassName('highcharts-series-0')[0].firstElementChild.getAttribute('x');\n if (barContainerX <= 0) {\n tick.label.element.setAttribute('text-anchor', 'left');\n tick.label.element.setAttribute('x', 2);\n tick.label.element.children[1].setAttribute('x', 2);\n }\n }\n}\n\n// Ensures ticks are spaced adequately apart by removing ticks that are too\n// close together.\nfunction ensureTickSpacing(axis, options, styles) {\n const MIN = 4;\n const longs = [];\n let dx;\n forAxisTicks(axis, (tick, key, index) => {\n const markEl = tick.mark.element;\n if (markEl.parentElement &&\n Math.round(markEl.getBoundingClientRect().height) >= styles.MEDIUM_TICK_LENGTH) {\n longs.push(index);\n }\n });\n forAxisTicks(axis, (tick, key, index) => {\n const markEl = tick.mark.element;\n if (markEl.parentElement) {\n const d = transform.read(null, 'd', tick.mark.d);\n if (dx === undefined) {\n dx = d[0][0];\n }\n if (longs.indexOf(index) === -1) {\n if (d[0][0] - dx <= MIN) {\n element.removeChild(markEl);\n } else {\n let n = -1;\n const longFwd = longs.some(longIndex => {\n n = longIndex;\n return longIndex > index;\n });\n if (longFwd) {\n const longTickF = axis.ticks[axis.tickPositions[n]];\n const dlf = transform.read(null, 'd', longTickF.mark.d);\n if (dlf[0][0] - d[0][0] <= MIN) {\n element.removeChild(markEl);\n }\n }\n if (markEl.parentElement) {\n const longBck = longs.some(longIndex => {\n n = longIndex;\n return longIndex < index;\n });\n if (longBck) {\n const longTickB = axis.ticks[axis.tickPositions[n]];\n const dlb = transform.read(null, 'd', longTickB.mark.d);\n if (d[0][0] - dlb[0][0] <= MIN) {\n element.removeChild(markEl);\n }\n }\n }\n dx = d[0][0];\n }\n } else {\n dx = d[0][0];\n }\n }\n });\n}\n\n// Removes a date tick and label or replaces it with a short tick depending\n// on the context.\nfunction removeDateTick(tick, options, styles) {\n const labelEl = tick.label.element;\n const markEl = tick.mark.element;\n element.removeChild(labelEl);\n if (!options.showMinorTicks) {\n element.removeChild(markEl);\n } \n if (options.type === 'column') {\n element.removeChild(markEl);\n } else if (Math.round(markEl.getBoundingClientRect().height)\n >= styles.MEDIUM_TICK_LENGTH && options.showMinorTicks) { \n let d = transform.read(null, 'd', tick.mark.d);\n d[1][1] = d[0][1] + styles.SHORT_TICK_LENGTH;\n transform.write(markEl, 'd', d);\n }\n}\n\nfunction addMinorTick(axis, options, styles, highchart) {\n const xAxisGridGroup = axis.chart.axes[0].gridGroup.element;\n if (xAxisGridGroup.children.length > 1) {\n const firstInGroupD = transform.read(null, 'd', xAxisGridGroup.children[0].getAttribute('d'));\n const secondInGroupD = transform.read(null, 'd', xAxisGridGroup.children[1].getAttribute('d'));\n let interval;\n let unit;\n if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== 'auto' && options.mobileXAxisInterval !== undefined) {\n interval = options.mobileXAxisInterval.split(' ')[0];\n unit = options.mobileXAxisInterval.split(' ')[1];\n } \n if (options.xAxisInterval !== 'auto' && options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n interval = options.xAxisInterval.split(' ')[0];\n unit = options.xAxisInterval.split(' ')[1];\n }\n interval = unit === 'week' ? 7 : interval;\n const diff = (secondInGroupD[0][0] - firstInGroupD[0][0]) / parseInt(interval);\n forAxisTicks(axis, (tick, key, index) => {\n const labelEl = tick.label.element;\n const markEl = tick.mark.element;\n let d = transform.read(null, 'd', tick.mark.d);\n if ((options.dates[0].year % interval !== 0 && options.dates[0].month === 1) || (unit === 'months' || unit === 'week')) {\n let backD = transform.read(null, 'd', tick.mark.d);\n let firstTick;\n if (unit === 'years') {\n firstTick = index === 0 ? parseInt(tick.label.element.children[0].innerHTML) : firstTick;\n }\n if (unit === 'months') {\n let label = tick.label.textStr.split(' ')[0];\n let labelMonthValue = findMonthValue(label);\n firstTick = index === 0 ? labelMonthValue : firstTick;\n }\n if (unit === 'week') {\n firstTick = index === 0 ? parseInt(tick.label.textStr.split(' ')[1]) : firstTick;\n }\n let benchmark;\n if (unit === 'years') {\n benchmark = firstTick - options.dates[0].year;\n }\n if (unit === 'months') {\n benchmark = (firstTick - options.dates[0].month) - 1;\n } \n if (unit === 'week') {\n benchmark = options.dates[0].date > firstTick ? (firstTick + 30) - options.dates[0].date : firstTick - options.dates[0].date;\n }\n for (let w = 0; w < benchmark; w++) {\n appendToXGridGroup(highchart, diff, styles, backD, false);\n }\n }\n\n const tickArray = Object.keys(tick.axis.ticks);\n const lastTick = tickArray[tickArray.length - 1];\n const isLastTick = tick.pos === tick.axis.ticks[lastTick].pos ? true : false;\n if (!isLastTick) {\n for (let i = 0; i < interval - 1; i++) {\n appendToXGridGroup(highchart, diff, styles, d, true);\n }\n } else {\n let lastBenchmark;\n if (unit === 'years') {\n lastBenchmark = options.dates[options.dates.length - 1].year - parseInt(tick.label.textCache.split(',')[0]);\n }\n if (unit === 'months') {\n let label = tick.label.textStr.split(' ')[0];\n let labelMonthValue = findMonthValue(label);\n lastBenchmark = options.dates[options.dates.length - 1].month - labelMonthValue;\n }\n if (unit === 'week') {\n lastBenchmark = options.dates[options.dates.length - 1].month.date - parseInt(tick.label.textStr.split(' ')[1]);\n }\n for (let i = 0; i < lastBenchmark; i++) {\n appendToXGridGroup(highchart, diff, styles, d, true);\n }\n }\n\n const isMonth = unit === 'months' ? true : false;\n if (unit === 'months' || unit === 'week') {\n styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, isMonth);\n }\n });\n } \n // if (xAxisGridGroup.children.length === 1) {\n // const firstInGroupD = transform.read(null, 'd', xAxisGridGroup.children[0].getAttribute('d'));\n // let interval;\n // let unit;\n // if (!options.mobileXAxisIntervalSameAsDesktop && options.mobileXAxisInterval !== 'auto' && options.mobileXAxisInterval !== undefined) {\n // interval = options.mobileXAxisInterval.split(' ')[0];\n // unit = options.mobileXAxisInterval.split(' ')[1];\n // } \n // if (options.xAxisInterval !== 'auto' && options.xAxisInterval !== undefined && (options.width >= 620 || options.mobileXAxisIntervalSameAsDesktop)) {\n // interval = options.xAxisInterval.split(' ')[0];\n // unit = options.xAxisInterval.split(' ')[1];\n // }\n // let firstDate;\n // let lastDate;\n // if (unit === 'years') {\n // firstDate = options.dates[0].year;\n // lastDate = options.dates[options.dates.length - 1].year;\n // }\n // if (unit === 'months') {\n // firstDate = options.dates[0].month;\n // lastDate = options.dates[options.dates.length - 1].month;\n // }\n // if (unit === 'week') {\n // firstDate = options.dates[0].date;\n // lastDate = options.dates[options.dates.length - 1].date;\n // }\n // const axisTicksKey = Object.keys(axis.ticks);\n // const xAxisGridLine = highchart.container.getElementsByClassName('highcharts-axis-line')[0];\n // const xAxisGridLineD = xAxisGridLine.getAttribute('d');\n // const gridLineD = transform.read(null, 'd', xAxisGridLineD);\n // const d = transform.read(null, 'd', axis.ticks[axisTicksKey[0]].mark.d);\n // const secD = transform.read(null, 'd', axis.ticks[axisTicksKey[0]].mark.d);\n // const isWeekOrYear = unit === 'years' ? axis.ticks[axisTicksKey[0]].label.textStr : axis.ticks[axisTicksKey[0]].label.textStr.split(' ')[1];\n // let diff = unit !== 'months' ? parseInt(isWeekOrYear) - firstDate : \n // findMonthValue(axis.ticks[axisTicksKey[0]].label.textStr.split(' ')[0]) - firstDate;\n // let diffLast = unit !== 'months' ? lastDate - parseInt(isWeekOrYear) : \n // lastDate - findMonthValue(axis.ticks[axisTicksKey[0]].label.textStr.split(' ')[0]);\n // const diffBetweenFirstDataPoint = Math.round(d[0][0] / diff);\n // for (let u = 0; u < diff; u++) {\n // if (d[0][0] - diffBetweenFirstDataPoint >= gridLineD[0][0]) {\n // appendToXGridGroup(highchart, diffBetweenFirstDataPoint, styles, d, false);\n // }\n // }\n // for (let y = 0; y < diffLast; y++) {\n // if (secD[1][0] + diffBetweenFirstDataPoint <= gridLineD[1][0]) {\n // appendToXGridGroup(highchart, diffBetweenFirstDataPoint, styles, secD, true);\n // }\n // }\n // }\n}\n\nfunction appendToXGridGroup(highchart, diff, styles, d, isAfterFirstTick) {\n let newPath = highchart.renderer.path().attr({\n 'opacity': 1\n });\n if (isAfterFirstTick) {\n d[0][0] = d[0][0] + diff;\n d[1][0] = d[1][0] + diff;\n } else {\n d[0][0] = d[0][0] - diff;\n d[1][0] = d[1][0] - diff;\n }\n d[1][1] = d[0][1] + styles.SHORT_TICK_LENGTH;\n newPath = transform.write(newPath.element, 'd', d);\n newPath.setAttribute('stroke-width', 1);\n newPath.setAttribute('stroke', '#333333');\n let gridGroup = highchart.container.getElementsByClassName('highcharts-xaxis')[0];\n gridGroup.appendChild(newPath);\n}\n\n// Removes a tick label and grid line.\nfunction removeTick(tick) {\n element.removeChild(tick.label.element);\n element.removeChild((tick['gridLine'] || tick['mark']).element);\n}\n\nfunction styleMonthAndDayTicks(axis, options, styles, highchart, tickArray, isMonth) {\n const firstTick = tickArray[0];\n const firstTickVal = isMonth ? axis.ticks[firstTick].label.element.children[0].innerHTML.split(' ')[1] :\n axis.ticks[firstTick].label.element.children[0].innerHTML.split(' ')[0];\n const landMarkTicks = [firstTickVal];\n forAxisTicks(axis, (tick, key, index) => {\n const tickVal = tick.label.textStr\n const tickValUnit = isMonth ? tickVal.split(' ')[1] : tickVal.split(' ')[0];\n if (landMarkTicks.indexOf(tickValUnit) !== -1 && index !== 0) {\n const arrayVal = isMonth ? 0 : 1;\n if (tick.label.element.children.length > 0) {\n tick.label.element.children[0].innerHTML = tickVal.split(' ')[arrayVal];\n } else {\n tick.label.element.innerHTML = tickVal.split(' ')[arrayVal];\n }\n \n } else {\n landMarkTicks.push(tickValUnit);\n }\n });\n\n}\n\nfunction findMonthValue(label) {\n const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ]\n return months.indexOf(label);\n}\n\nfunction makeTickShorter(axis, options, styles, highchart) {\n forAxisTicks(axis, (tick, key, index) => {\n // const labelEl = tick.label.element;\n const markEl = tick.mark.element;\n let d = transform.read(null, 'd', tick.mark.d);\n d[1][1] = d[0][1] + styles.SHORT_TICK_LENGTH;\n transform.write(markEl, 'd', d);\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/axes-postrender-x-axis.js","import { findOffset, arrowWidth, getHeight } from './defs';\n\nconst COLOR = '#333';\nconst VIDEO_COLOR = '#fff';\nconst MARGIN_ONLINE = 16;\nconst MARGIN_PRINT = 8;\n\nexport function postRender(highchart, options) {\n const { container } = highchart;\n removeClipPath(container);\n const [labels, shapes] = getAnnotationEls(container);\n spaceOutAndDrawLines(highchart, options, labels, shapes);\n}\n\nfunction removeClipPath(container) {\n // prevents labels from being cut off\n const el = findEl(container, '.highcharts-annotation');\n el.setAttribute('clip-path', 'none');\n}\n\nfunction findEl(el, selector) {\n return el.querySelector(selector);\n}\n\nfunction getAnnotationEls(container) {\n const findByType = searchContainer(container);\n return ['label', 'shape'].map(findByType).map(sortEls);\n}\n\nfunction searchContainer(container) {\n return function(type) {\n const els = container.querySelectorAll(`.highcharts-annotation-${type}s`);\n return [...els[0].children];\n }\n}\n\nfunction sortEls(els) {\n // labels/shapes both sorted by x ascending\n return els.sort((a, b) => findAttr(a) - findAttr(b));\n}\n\nfunction findAttr(el) {\n const type = el.tagName;\n switch(type) {\n case 'g': // label\n const labelX = parseTransform(el).x;\n const labelWidth = getWidth(el);\n return labelX + labelWidth / 2;\n case 'circle': // circle/dot line ends\n return +el.getAttribute('cx');\n case 'path': // arrow line end\n return getArrowPosition(el).x;\n }\n}\n\nfunction parseTransform(label) {\n // get label's x, y\n const transform = label.getAttribute('transform');\n const start = transform.indexOf('(') + 1;\n const end = transform.indexOf(')');\n const nums = transform.slice(start, end).split(',');\n return { x: +nums[0], y: +nums[1] };\n}\n\nfunction getWidth(el) {\n return el.getBoundingClientRect().width;\n}\n\nfunction getArrowPosition(path) {\n // get arrow's x, y\n const d = path.getAttribute('d').split(' ');\n return { x: +d[4], y: +d[5] };\n}\n\nfunction spaceOutAndDrawLines(highchart, options, labels, shapes) {\n const [recession, suffix] = getEls(highchart);\n const margin = options.print ? MARGIN_PRINT : MARGIN_ONLINE;\n const x = getLeftX(highchart, options, margin);\n const args = [labels, shapes, x, margin, suffix, recession];\n shiftLabelsRight(...args);\n shiftLabelsLeft(options, highchart, ...args);\n}\n\nfunction getEls(highchart) {\n const el = getEl(highchart.container);\n const recessionEl = el('.label-recession');\n const suffixEl = el('.y-axis-suffix');\n const recession = recessionEl ?\n {\n type: 'recession',\n startX: getStartX(recessionEl),\n endX: getStartX(recessionEl) + getWidth(recessionEl),\n midpoint: getStartX(recessionEl) + getWidth(recessionEl) / 2\n }\n :\n null;\n const suffix = suffixEl ?\n {\n type: 'suffix',\n startX: getStartX(suffixEl),\n endX: getStartX(suffixEl) + getWidth(suffixEl)\n }\n :\n null;\n return [recession, suffix];\n}\n\nfunction getEl(container) {\n return function(tag) {\n return findEl(container, tag);\n }\n}\n\nfunction getStartX(el) {\n return +el.getAttribute('x');\n}\n\nfunction getLeftX(highchart, options, margin) {\n if (highchart.axes[1].opposite) return 0; // y axis on right\n const shortSuffix = options.axes.units.suffix &&\n options.axes.units.suffix.length <= 2;\n if (shortSuffix) {\n const suffixEl = findEl(highchart.container, '.y-axis-suffix');\n return +suffixEl.getAttribute('x') + getWidth(suffixEl) + margin;\n }\n return topLabelX(highchart, options) + margin;\n}\n\nfunction topLabelX(highchart, options) {\n const reversed = options.axes.reversed;\n const yAxis = highchart.axes[1];\n const tickPositions = yAxis.tickPositions;\n const tickPosition = reversed ?\n tickPositions[0] : lastItem(tickPositions);\n return yAxis.ticks[tickPosition].label.xy.x;\n}\n\nfunction lastItem(arr) {\n return arr[arr.length - 1];\n}\n\nfunction shiftLabelsRight(labels, shapes, hardLeft, margin, suffix, recession) {\n // from left to right, ensure proper spacing between labels\n let startX = hardLeft;\n\n labels.forEach((label, i) => {\n const shape = shapes[i];\n const labelWidth = getWidth(label);\n let { x } = parseTransform(label),\n needTransform = false;\n\n if (needTransform = x < startX) x = startX;\n\n if (suffix || recession) {\n const { moveX, shapeX } = getPositions(x, shape, labelWidth);\n const [shiftRight, overlap] = needShiftRight(moveX, suffix, recession);\n if (shiftRight) {\n x = shiftRightX(overlap, shapeX, labelWidth);\n needTransform = true;\n }\n }\n\n if (needTransform) updateTransform(label, x);\n\n startX = x + labelWidth + margin; // farthest left next label can be\n });\n}\n\nfunction getPositions(x, shape, labelWidth) {\n const shapeX = getShapeX(shape);\n const labelX = x + labelWidth / 2; // label center\n const jointed = isJointed(labelX, shapeX, labelWidth);\n const moveX = jointed ? labelX : shapeX; // line top\n return { labelX, moveX, shapeX, jointed };\n}\n\nfunction getShapeX(shape) {\n return shape.tagName === 'circle' ?\n +shape.getAttribute('cx') : getArrowPosition(shape).x;\n}\n\nfunction isJointed(labelX, shapeX, labelWidth) {\n // draw jointed line only if shapeX outside label width\n return Math.abs(labelX - shapeX) >= labelWidth / 2;\n}\n\nfunction needShiftRight(moveX, suffix, recession) {\n const overlap = checkOverlap(moveX, recession, suffix);\n const shiftRight = overlap.type === 'suffix' ||\n overlap.type === 'recession' && moveX >= recession.midpoint;\n return [shiftRight, overlap];\n}\n\nfunction checkOverlap(moveX, recession, suffix) {\n // does line overlap with recession or suffix label\n if (recession && moveX >= recession.startX && moveX <= recession.endX) {\n return recession;\n }\n else if (suffix && moveX >= suffix.startX && moveX <= suffix.endX) {\n return suffix;\n }\n else {\n return { type: 'none' };\n }\n}\n\nfunction shiftRightX(overlap, shapeX, labelWidth) {\n // position label to ensure line wraps around recession/suffix\n const centeredOnOverlap = overlap.startX + 2 - labelWidth / 2;\n return shapeX >= centeredOnOverlap && shapeX <= overlap.endX ?\n shapeX + 1 : centeredOnOverlap;\n}\n\nfunction updateTransform(label, x) {\n // set new x for label\n const { y } = parseTransform(label);\n const translate = `translate(${x},${y})`;\n label.setAttribute('transform', translate);\n}\n\nfunction shiftLabelsLeft(options, highchart, labels, shapes, hardLeft, margin, suffix, recession) {\n /*\n * From right to left, ensure proper spacing between labels\n * After positioning each label, draw its line\n * Hide annotations pushed off left of chart or into suffix label\n */\n const wsjPrint = options.print && options.product === 'wsj';\n const offset = wsjPrint ? 1 : 0;\n const hardRight = highchart.plotLeft + highchart.plotWidth - offset;\n \n const drawLine = lineRenderer(highchart, options, margin);\n\n let startX = hardRight, nextLabel, nextShape;\n const lastLabel = labels.length - 1; \n \n for (let i = lastLabel; i >= 0; i--) {\n \n const label = labels[i], shape = shapes[i];\n const labelWidth = getWidth(label);\n const [flushAlign, showLine, dotted] = getProps(label);\n let { x } = parseTransform(label), transformX;\n\n if (x + labelWidth >= startX) {\n x = startX - labelWidth;\n const itemFlush = i === lastLabel && flushAlign;\n // for right-most labels pushed off chart with flush alignment selected\n if (itemFlush) label.setAttribute('text-anchor', 'end');\n transformX = itemFlush ? hardRight : x;\n }\n \n if (recession || suffix) {\n const { moveX, shapeX } = getPositions(x, shape, labelWidth);\n const overlap = checkOverlap(moveX, recession, suffix);\n if (overlap.type !== 'none') {\n x = shiftLeftX(overlap, shapeX, labelWidth);\n transformX = x;\n }\n }\n \n const positions = getPositions(x, shape, labelWidth);\n \n const hidden = x < hardLeft ||\n options.product !== 'financialnews' && suffix && positions.moveX <= suffix.endX;\n if (hidden) {\n hideAnnotation(label, shape)\n } else {\n if (transformX) {\n updateTransform(label, transformX);\n }\n if (showLine) {\n drawLine(label, shape, nextLabel, nextShape, positions, dotted);\n }\n } \n \n [nextLabel, nextShape] = [positions.moveX, positions.shapeX]; // to determine whether jointed lines overlap\n startX = x - margin; // farthest right next label can be\n }\n}\n\nfunction lineRenderer(highchart, options, margin) {\n const cushion = margin / 2;\n let addPx = cushion;\n return function(label, shape, nextLabel, nextShape, positions, dotted) {\n const { labelX, moveX, shapeX, jointed } = positions;\n const [labelY, shapeY] = [getLabelY(label), adjustShapeY(highchart, options, shape)];\n \n // for highstocks charts, if shape cut off on left, re-render shape to force added space\n if (options.irregularDates) checkCutoff(highchart, options, shape, shapeX, shapeY);\n\n const [m, jointPath, lastL] = getPathStart(moveX, labelY, shapeX, shapeY);\n if (jointed) {\n // draw jointed line\n const jointRight = labelX > shapeX;\n let jointY = initialJointY(highchart, margin, jointRight);\n // if jointed lines overlap, bump 2nd line down\n if (nextLabel) {\n if (shapeX >= nextLabel) {\n jointY += addPx;\n addPx += cushion; // keep increasing addPx if >2 consecutive jointed lines overlap\n } else if (moveX >= nextShape) {\n jointY -= addPx;\n addPx += cushion;\n } else {\n addPx = cushion; // reset addPx once consecutive jointed lines don't overlap\n }\n }\n jointPath.push(...['L', labelX, jointY, 'L', shapeX, jointY]);\n }\n const path = [...m, ...jointPath, ...lastL];\n renderPath(highchart, options, path, dotted);\n }\n}\n\nfunction getLabelY(label) {\n // line top positioned below label\n const { y } = parseTransform(label);\n const labelHeight = label.getBoundingClientRect().height;\n return y + labelHeight;\n}\n\nfunction adjustShapeY(highchart, options, shape) {\n let shapeY = shape.tagName === 'circle' ?\n +shape.getAttribute('cy') : getArrowPosition(shape).y;\n if (!shapeY) { // check whether category enabled\n const xAxisPathPoints = highchart.axes[0].axisLine.d.split(' ');\n shapeY = +lastItem(xAxisPathPoints); // line extends to xAxis\n }\n return adjustLineEnd(options, shape, shapeY);\n}\n\nfunction adjustLineEnd(options, shape, shapeY) {\n // for arrow/circle line ends, shorten line for proper intersection with shape\n const isCircle = +shape.getAttribute('stroke-width') > 0;\n let offsetY = 0;\n if (isCircle) {\n offsetY = +shape.getAttribute('r');\n } else if (shape.tagName === 'path') { // arrow\n offsetY = findOffset(options);\n }\n return shapeY - offsetY;\n}\n\nfunction checkCutoff(highchart, options, shape, shapeX, shapeY) {\n if (+shape.getAttribute('stroke-width') === 0) {\n const isDot = shape.tagName === 'circle';\n const width = arrowWidth(options.print);\n const midpoint = width / 2;\n const r = isDot ? +shape.getAttribute('r') : midpoint;\n \n if (shapeX - r <= highchart.plotLeft) {\n shape.setAttribute('display', 'none');\n const fill = options.id === 'video' || options.id === 'twitterVideo' ?\n VIDEO_COLOR : COLOR;\n const attr = { fill, zIndex: 4 };\n \n if (isDot) {\n highchart.renderer.circle(shapeX, shapeY, r)\n .attr(attr)\n .add();\n } \n else { // arrow\n const height = getHeight(width, midpoint);\n const path = ['M', shapeX, shapeY, 'L', shapeX + midpoint, shapeY, 'L', shapeX, shapeY + height, 'L', shapeX - midpoint, shapeY, 'z'];\n \n highchart.renderer.path(path)\n .attr(attr)\n .add();\n }\n }\n }\n}\n\nfunction getPathStart(moveX, labelY, shapeX, shapeY) {\n // top, bottom of line\n return [['M', moveX, labelY], [], ['L', shapeX, shapeY]];\n}\n\nfunction initialJointY(highchart, margin, jointRight) {\n const divisor = jointRight ? 1 : 2;\n return highchart.plotTop + margin / divisor;\n}\n\nfunction renderPath(highchart, options, path, dotted) {\n const { print, id } = options;\n const strokeWidth = getStrokeWidth(print, dotted);\n const gap = print ? 3 : 5;\n const dashArray = dotted ? `0.1,${gap}` : undefined;\n highchart.renderer.path(path)\n .attr({\n stroke: id === 'video' || id === 'twitterVideo' ? VIDEO_COLOR : COLOR,\n 'stroke-width': strokeWidth,\n 'stroke-dasharray': dashArray,\n 'stroke-linecap': 'round',\n zIndex: 4\n })\n .add()\n}\n\nfunction getStrokeWidth(print, dotted) {\n if (print && dotted) return 1.5;\n else if (print && !dotted) return 0.5;\n else if (!print && dotted) return 2.5;\n else return 1;\n}\n\nfunction getProps(label) {\n // get properties set in prerender\n const styles = label.getAttribute('style').split(';');\n const flushAlign = styles[0];\n const showLine = styles[1];\n const lineType = styles[2];\n return [\n !flushAlign.includes('default'),\n showLine.includes('true') || showLine.includes('undefined'),\n lineType.includes('dotted')\n ];\n}\n\nfunction shiftLeftX(overlap, shapeX, labelWidth) {\n // position label to ensure line wraps around recession/suffix\n const centeredOnOverlap = overlap.startX - 2 - labelWidth / 2;\n return shapeX <= centeredOnOverlap + labelWidth && shapeX >= overlap.startX ?\n shapeX - labelWidth - 1 : centeredOnOverlap;\n}\n\nfunction hideAnnotation(...args) {\n args.forEach(arg => arg.setAttribute('display', 'none'));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/annotations-postrender.js","import {dashStylesHelper, roundLineJoinsHelper} from './util';\n\nexport const postRender = (highchart, options) => {\n const lineInFront = ['area', 'bar', 'column'].includes(options.type);\n const gPlotLines = [...highchart.container.querySelectorAll(lineInFront ? '.highcharts-plot-lines-5' : '.highcharts-plot-lines-3')][0];\n const paths = gPlotLines.querySelectorAll('path');\n const isVideoGroup = (options.id === 'video' || options.id === 'twitterVideo');\n paths.forEach(path => {\n dashStylesHelper(path, options.size);\n roundLineJoinsHelper(path, isVideoGroup);\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/chart/inner/plotLines-postrender.js","import moment from 'moment';\nimport { RANGE } from '../../src/ui/constants/marketdata';\nimport { createETMoment, parseDateRange, checkIntradayFrequency } from '../../src/ui/util/marketdata'; \nimport { MONTHS } from '../../src/chart/data/constants';\nimport { checkArray } from './helpers';\nconst hstri = require('hstri');\n\n// functions to export\nfunction getMikeParams(query) {\n return ['instrument', 'start', 'end', 'frequency', 'format', 'dateRange', 'product', 'type']\n .map(prop => getParam(query, prop));\n}\n\nfunction createDataFormatter(res, isPercent, isCustom, dateRange, frequency, end, instruments) {\n return function(data) {\n const series = formatForChartlos(data, isPercent, isCustom, dateRange, frequency, end, instruments);\n res.send({ series });\n }\n}\n\nfunction fetchData(instrument, start, end, frequency, isCustom, dateRange, isRolling, product, done) {\n const isIntraday = /\\d+D/.test(dateRange) ||\n isCustom && checkIntradayFrequency(frequency);\n const formattedEnd = findEndDate(end, isRolling, isCustom, isIntraday);\n\n const token = getToken(product);\n \n queryHstri(start, instrument, frequency, formattedEnd, token, dateRange)\n .then(data => \n done(data))\n}\n\nfunction createDataParser(res, isPercent, isCustom, frequency, dateRange, end) {\n const isMultiple = res.length > 1;\n\n const showAsPercentProps = checkShowAsPercent(res, isPercent);\n const usePercent = isPercent || mustShowAsPercent(showAsPercentProps);\n\n const { TimeInfo, Series } = res[0].raw;\n const { IsIntraday } = TimeInfo;\n \n const startDates = findStartDates(Series, dateRange);\n\n const needsLast = !isCustom || checkToday(isCustom, IsIntraday, end, moment());\n const allDates = buildDatesArr(res, [...startDates], end, isCustom, frequency, needsLast);\n\n const lastIndex = getLastIdx(allDates); \n\n const lastQuoteDate = findLastQuoteDate(Series);\n const lastDate = IsIntraday ? allDates[lastIndex] : lastQuoteDate;\n \n const categories = createCategories(allDates, needsLast, lastIndex, IsIntraday, frequency, lastQuoteDate);\n\n const date = formatAsOfDate(lastDate, IsIntraday, frequency);\n\n const dataTemplate = buildDataTemplate(allDates);\n\n return function(series, index) {\n const { data, raw } = series;\n const { InstrumentType, ExtraData } = raw.Series[index];\n \n const { Value } = findPriorClose(ExtraData);\n const priorDate = startDates[index];\n \n const seriesArr = mapSeriesData(data, !usePercent, InstrumentType, priorDate, Value, dataTemplate);\n \n return [seriesArr, categories, date, showAsPercentProps];\n }\n}\n\n// getMikeParams helper function\nfunction getParam(query, prop) {\n const param = query[prop];\n switch(prop) {\n case 'instrument':\n return checkArray(param);\n case 'format':\n return param === 'percent';\n case 'type':\n return param === 'rolling';\n default:\n return param;\n }\n}\n\n// createDataFormatter helper functions\nfunction formatForChartlos(res, isPercent, isCustom, dateRange, frequency, end, instruments) {\n const parseData = createDataParser(res, isPercent, isCustom, frequency, dateRange, end); \n return res.map((series, index) => {\n const [seriesArr, categories, date, showAsPercentProps] = parseData(series, index);\n const { raw, name, ticker } = series;\n const { TimeInfo, Series } = raw;\n const { IsIntraday: isIntraday } = TimeInfo;\n const { InstrumentType: tickerType, FormatHints } = Series[index];\n const instrument = instruments[index];\n const sourceInfo = getSourceInfo(tickerType, ticker, instrument);\n const [prefix, suffix, decimals] = setFormatProps(FormatHints, tickerType);\n const needsCommas = tickerType !== 'Index'; \n return ({\n data: seriesArr,\n name,\n symbol: ticker,\n needsCommas,\n index,\n date,\n prefix,\n suffix,\n decimals,\n isIntraday,\n sourceInfo,\n tickerType,\n showAsPercentProps,\n categories\n })\n })\n}\n\nfunction getSourceInfo(type, symbol, fullSymbol) {\n return {\n source: getSource(type, symbol, fullSymbol),\n type: getPlural(type),\n symbol\n }\n}\n\nfunction getSource(type, symbol, fullSymbol) {\n switch(type) {\n case 'Bond':\n case 'Currency':\n return 'Tullett Prebon';\n case 'Index':\n return getIndexSource(symbol);\n case 'CryptoCurrency':\n return getCryptoSource(symbol, fullSymbol);\n default:\n return 'FactSet';\n }\n}\n\nfunction getIndexSource(symbol) {\n switch(symbol) {\n case 'BUXX':\n case 'NEXT50':\n case 'VCIPO':\n return 'Dow Jones Market Data';\n default:\n return 'FactSet';\n }\n}\n\nfunction getCryptoSource(symbol, fullSymbol) {\n const symbols = ['BTCEUR', 'BTCUSD', 'ETHEUR', 'ETHUSD', 'XRPEUR', 'XRPUSD', 'LTCEUR', 'LTCUSD', 'BCHEUR', 'BCHUSD', 'XMREUR', 'XMRUSD', 'ETCEUR', 'ETCUSD', 'DASHEUR', 'DASHUSD', 'ZECEUR', 'ZECUSD'];\n return symbols.includes(symbol) && fullSymbol.includes('KRAKEN') ?\n 'KRAKEN'\n :\n 'CoinDesk';\n}\n\nfunction getPlural(type) {\n switch(type){\n case 'Index':\n return 'indexes';\n case 'Commodity':\n return 'commodities';\n case 'CryptoCurrency':\n return 'crypto currencies';\n case 'Currency':\n return 'currencies';\n case 'ExchangeTradedFund':\n return 'ETFs';\n case 'ExchangeTradedNote':\n return 'ETNs';\n case 'Adr':\n return 'ADRs';\n case 'PreferredStock':\n return 'preferred stocks';\n // case 'MutualFundClosed':\n // return;\n // case 'MutualFundOpen':\n // return;\n // case 'RealEstateInvestmentTrust':\n // return;\n default:\n return `${type.toLowerCase()}s`;\n }\n}\n\nfunction setFormatProps(formatHints, tickerType) {\n const { UnitSymbol, DecimalPlaces, Suffix } = formatHints;\n const prefix = Suffix || !UnitSymbol ?\n '' : UnitSymbol;\n const suffix = Suffix ?\n UnitSymbol : '';\n const decimals = checkDecimals(tickerType, DecimalPlaces) ?\n DecimalPlaces : 2;\n return [prefix, suffix, decimals];\n}\n\nfunction checkDecimals(tickerType, places) {\n return tickerType === 'Bond' || tickerType === 'Currency' || places <= 2;\n}\n\n// fetchData helper functions\nfunction findEndDate(end, isRolling, isCustom, isIntraday) {\n const currentTime = moment();\n /*\n * Use the current time for custom interday with an end date of today\n */\n const isCustomToday = checkToday(isCustom, isIntraday, end, currentTime);\n if (isCustomToday) return currentTime;\n /*\n * For other custom auto-updating charts, update only until specified end date\n */\n if (isRolling && isCustom) return moment.min(moment(end), currentTime);\n /* \n * Otherwise use specified end date\n */\n return end;\n}\n\nfunction checkToday(isCustom, isIntraday, end, currentTime) {\n return isCustom && !isIntraday\n && end.slice(0, 10) === currentTime.format('YYYY-MM-DD');\n}\n\nfunction getToken(product) {\n switch (product) {\n case 'wsj':\n return '57494d5ed7ad44af85bc59a51dd87c90';\n case 'barrons':\n return 'c1b7ca756343461b86565b61bbd2ac6f';\n case 'marketwatch':\n return 'cecc4267a0194af89ca343805a3e57af';\n case 'mansionglobal':\n return '45mb4gzz6uqrogv7xgv37k654z2e5d6q';\n case 'financialnews':\n return 'brewtbcvblmff8sb1kcdbj21c29j8lv5';\n default:\n return '57494d5ed7ad44af85bc59a51dd87c90';\n }\n// WSJ Pro: 'eb0af67ce7f24679a0e2d2c7c32e7d98'\n}\n\nfunction queryHstri(start, instrument, frequency, end, entitlementToken, timeFrame) {\n return hstri({\n start: getHstriDate(start),\n timeFrame: RANGE[timeFrame].value,\n instrument,\n frequency: frequency || 'P1D',\n end: getHstriDate(end),\n service: 'michelangelo',\n entitlementToken\n });\n}\n\nfunction getHstriDate(date) {\n return date ? createETMoment(date) : '';\n}\n\n// createDataParser helper functions\nfunction checkShowAsPercent(series, isPercentProp) {\n // \"Show as percent change\" toggle should be locked into true or false in certain situations\n const hasBonds = series.some(checkBonds);\n const differentUnitSymbols = series.some((currentSeries, i) =>\n checkUnitSymbols(series[0], currentSeries, i));\n const disabled = hasBonds || differentUnitSymbols;\n const isPercent = !hasBonds && (differentUnitSymbols || isPercentProp);\n return { isPercent, disabled };\n}\n\nfunction checkBonds(series, i) {\n const instrumentType = getSeriesProp(series, i, 'InstrumentType');\n return instrumentType === 'Bond';\n}\n\nfunction getSeriesProp(series, i, prop) {\n return series.raw.Series[i][prop];\n}\n\nfunction checkUnitSymbols(firstSeries, currentSeries, i) {\n return getUnitSymbol(currentSeries, i) !== getUnitSymbol(firstSeries, 0);\n}\n\nfunction getUnitSymbol(series, i) {\n return getSeriesProp(series, i, 'FormatHints').UnitSymbol;\n}\n\nfunction mustShowAsPercent(showAsPercentProps) {\n const { isPercent, disabled } = showAsPercentProps;\n return isPercent && disabled;\n}\n\nfunction buildDatesArr(res, rawDateArr, end, isCustom, frequency, needsLast) {\n const compiledDates = compileDates(res, rawDateArr);\n const lastDate = compiledDates[getLastIdx(compiledDates)];\n \n const longerThanDaily = checkLongerThanDaily(frequency);\n \n const isBefore = longerThanDaily && checkBefore(frequency, lastDate, end);\n \n return isCustom && end && !needsLast && isBefore ?\n compiledDates.slice(0, -1) : compiledDates;\n}\n\nfunction compileDates(res, rawDateArr) {\n res.forEach(series => rawDateArr.push(...series.ticks));\n const uniqueDates = new Set(rawDateArr);\n return [...uniqueDates].filter(date => date)\n .sort((a, b) => a - b);\n}\n\nfunction getLastIdx(arr) {\n return arr.length - 1;\n}\n\nfunction checkLongerThanDaily(frequency) {\n return ['P7D', 'P1M', 'P3M', 'P1Y'].some(code => code === frequency);\n}\n\nfunction checkBefore(frequency, lastDate, end) {\n const date = moment(lastDate);\n return convertDate(date, frequency).isAfter(end);\n}\n\nfunction convertDate(date, frequency) {\n switch (frequency) {\n case 'P7D':\n return date.add(5, 'd');\n case 'P1M':\n return date.utc().endOf('month');\n case 'P3M':\n return date.utc().add(2, 'M').endOf('month');\n case 'P1Y':\n return date.utc().endOf('year');\n default:\n return date;\n }\n}\n\nfunction findStartDates(series, dateRange) {\n return series.map(currentSeries => {\n const { MarketSessions, ExtraData, InstrumentType } = currentSeries;\n if (MarketSessions && dateRange !== 'Custom') {\n const priorClose = findPriorClose(ExtraData).Date;\n const closingTime = MarketSessions.reverse().find(session => session.Kind === 'Trading').End;\n const date = moment(priorClose).utc();\n const year = date.year();\n const month = date.month();\n const day = date.date();\n const time = moment(closingTime);\n const hour = time.hour();\n const minutes = time.minute();\n const seconds = time.second();\n return +moment().year(year).month(month).date(day).hour(hour).minute(minutes).second(seconds).format('x');\n }\n if (dateRange === 'YTD') {\n return findPriorClose(ExtraData).Date;\n }\n });\n}\n\nfunction findPriorClose(extraData) {\n return extraData.find(data => data.Name === 'PriorClose');\n}\n\nfunction findLastQuoteDate(series) {\n const currentQuoteDates = series.map(currentSeries => currentSeries.CurrentQuote.DateUtc);\n return Math.max(...currentQuoteDates);\n}\n\nfunction createCategories(dates, needsLast, lastIndex, isIntraday, frequency, lastDate) {\n return dates.map((x, i) => {\n const isLast = needsLast && i === lastIndex;\n return formatCategory(x, isIntraday, frequency, isLast, lastDate);\n });\n}\n\nfunction formatCategory(x, isIntraday, frequency, isLast, lastDate) {\n const date = getDate(x, isIntraday, frequency, isLast, lastDate);\n const dayFormat = 'MM/DD/YYYY';\n return isIntraday ?\n date.format(`${dayFormat} h:mm:ss a`).slice(0, -1)\n :\n date.format(dayFormat);\n}\n\nfunction getDate(x, isIntraday, frequency, isLast, lastDate) {\n const needsToday = checkNeedsToday(frequency, isLast);\n const date = needsToday ?\n moment.tz(lastDate, 'America/New_York')\n :\n convertDate(createETMoment(x), frequency);\n return isIntraday || needsToday ?\n date : date.utc();\n}\n\nfunction checkNeedsToday(frequency, isLast) {\n return isLast && checkLongerThanDaily(frequency);\n}\n\nfunction formatAsOfDate(x, isIntraday, frequency) {\n const date = createETMoment(x);\n const month = MONTHS[date.month()];\n const day = date.date();\n const formattedDate = `${month} ${day}`;\n const time = date.format('h:mm a');\n const formattedTime = formatTime(time);\n return formattedDate + formattedTime;\n}\n\nfunction formatTime(time) {\n const zerosRemoved = time.replace(':00', '');\n return `, ${zerosRemoved.slice(0, -1)}.m. ET`;\n}\n\nfunction buildDataTemplate(dates) {\n const dataTemplate = {};\n dates.forEach(date => {\n dataTemplate[date] = null;\n });\n return dataTemplate;\n}\n\nfunction mapSeriesData(data, notPercent, tickerType, firstDate, firstValue, dataTemplate) {\n const seriesData = Object.assign({}, dataTemplate);\n\n const value = notPercent ? firstValue : 0;\n if (firstDate) seriesData[firstDate] = value;\n\n const initialY = firstDate ? firstValue : findFirstY(data);\n\n data.forEach((item, index) => {\n const x = item[0];\n const y = getY(item[1], initialY, notPercent); \n if (seriesData[x] === null) seriesData[x] = y;\n });\n\n return Object.values(seriesData).map(y => {\n return { y };\n })\n}\n\nfunction findFirstY(data) {\n // find first non-null Y value (needed to calculate percent change)\n return data.find(point => point[1])[1];\n}\n\nfunction getY(y, initialY, notPercent) {\n if (y === undefined || y === null) return null;\n if (notPercent) return y;\n return getChange(initialY, y);\n}\n\nfunction getChange(initialY, y) {\n // percentage change from first Y value\n return (y - initialY) / initialY * 100;\n}\n\nexport {\n getMikeParams,\n createDataFormatter,\n fetchData,\n createDataParser\n}\n\n\n// WEBPACK FOOTER //\n// ./server/shared/marketDataHelpers.js","import assign from 'lodash.assign';\nimport moment from 'moment';\nimport async from 'async';\nconst fetch = require('node-fetch');\n\nfunction checkArray(prop) {\n return Array.isArray(prop) ? prop : [prop];\n}\n\nfunction convertTime(time) {\n const day = moment().format('YYYY-MM-DD');\n switch (time) {\n case 'day':\n return day;\n case 'week':\n return moment().subtract(7,'d').format('YYYY-MM-DD');\n case 'month':\n return moment().subtract(1, 'months').format('YYYY-MM-DD');\n case '6months':\n return moment().subtract(6, 'months').format('YYYY-MM-DD');\n case 'year':\n return moment().subtract(1, 'years').format('YYYY-MM-DD');\n }\n}\n\nfunction convertQueryObj(query) {\n let obj = {\n headline: query.headline,\n slug: query.title,\n creator: query.creator,\n modifier: query.modifier,\n create_date: query.created,\n modify_date: query.modified,\n product: query.targets,\n source: query.source,\n chart_type: query.type,\n status: query.status\n }\n if (obj.create_date === 'anytime') {\n delete obj.create_date;\n }\n if (obj.modify_date === 'anytime') {\n delete obj.modify_date;\n }\n if(Array.isArray(obj.status)){\n delete obj.status;\n }\n\n for (let key in obj) {\n if (obj[key] === '' || obj[key] === undefined) {\n delete obj[key]\n }\n }\n return obj;\n}\n\nfunction convertSortObj(prop, order) {\n const obj = {}\n switch(prop) {\n case 'DATE_CREATED':\n obj.prop = 'create_date'\n break;\n case 'DATE_MODIFIED':\n obj.prop = 'modify_date'\n break;\n case 'CREATED_BY':\n obj.prop = 'creator'\n break;\n case 'STATUS':\n obj.prop = 'status'\n break;\n case 'MODIFIED_BY':\n obj.prop = 'modifier'\n break;\n case 'TITLE':\n obj.prop = 'slug'\n break;\n default:\n obj.prop = 'modify_date'\n break;\n }\n switch(order) {\n case 'DESCENDING':\n obj.order = 'desc'\n break;\n case 'ASCENDING':\n obj.order = 'asc'\n break;\n }\n return obj;\n}\n\nfunction pullOutHeadlines(chart) {\n\n //if new way is used, function always returns an object, for the old way if no sizes were selected the function return false\n const textObj = findUniqueHeadlines(chart.chart, chart.id);\n //converting source into new way, to be able to search by source\n if(!chart.chart.source && chart.chart.data.source) {\n chart.source = chart.chart.data.source.text;\n }\n let textItemInsert = [];\n let defaultHeadline = [];\n const hasDefaultHeadline = chart.default_headline ? true : false;\n\n if (textObj) {\n for (let key in textObj) {\n textObj[key].map(item => {\n item.text_type = key;\n if (item.content) {\n textItemInsert.push(item);\n if (item['size'] === 'default') {\n let obj = {\n content: item.content,\n type: item.text_type\n }\n defaultHeadline.push(obj);\n }\n }\n });\n }\n if (defaultHeadline.length === 1) {\n chart.default_headline = defaultHeadline[0].content;\n }\n if (defaultHeadline.length > 1) {\n for (let x = 0; x < defaultHeadline.length; x++) {\n if (defaultHeadline[x].type === 'headline') {\n chart.default_headline = defaultHeadline[x].content;\n }\n }\n }\n if (!defaultHeadline.length) {\n chart.default_headline = 'Untitled';\n }\n }\n\n return {textObj, textItemInsert, hasDefaultHeadline, chart}\n}\n\nfunction findUniqueHeadlines(chart, id) {\n const {sizes} = chart;\n const {title, dek, subdek} = chart.data;\n\n let titleArr = [];\n let dekArr = [];\n let subdekArr = [];\n let helper = ['title', 'dek', 'subdek']\n\n function check(heading, obj){\n const titleCheck = heading === 'title';\n const dekCheck = heading === 'dek';\n const subdekCheck = heading === 'subdek';\n if(titleCheck) titleArr.push(obj);\n if(dekCheck) dekArr.push(obj);\n if(subdekCheck) subdekArr.push(obj);\n }\n\n //new way - no sizes\n if(title && dek && subdek){\n helper.forEach(heading => {\n const obj = {\n content: chart.data[heading].text || '',\n chart_id: id}\n check(heading, obj)\n })\n } else {\n //old way iterating over the sizes\n for (let key in sizes) {\n helper.forEach(heading=>{\n if (sizes[key].headings[heading]) {\n const obj = {\n content: sizes[key].headings[heading].text || '',\n size: key,\n chart_id: id\n };\n check(heading, obj)\n }\n })\n }\n\n function filterHeadings(arr){\n const contentSet = new Set();\n arr = arr.filter(elem => {\n if(contentSet.has(elem.content)) return false;\n contentSet.add(elem.content)\n })\n }\n\n filterHeadings(titleArr)\n filterHeadings(dekArr)\n filterHeadings(subdekArr)\n}\n // adding(new way)/redefining(old way) size to default\n function addSize(arr){\n if(arr.length) arr[0]['size'] = 'default'\n }\n\n addSize(titleArr)\n addSize(dekArr)\n addSize(subdekArr)\n\n\n const obj = {\n headline: titleArr,\n subheadline: dekArr,\n title: subdekArr\n }\n\n//this check required only for old (size) way, because the new way will always have length 1 for each property.\n if (obj.headline.length || obj.subheadline.length || obj.title.length) {\n return obj;\n } else {\n return false;\n }\n\n}\n\nfunction updateChartData(chart, data, action) {\n var now = new Date();\n chart.status = data.status || chart.status || 'draft';\n const prevGams = chart.urls ? chart.urls.gams : '';\n if (data.urls) {\n let urls = {};\n if (chart.urls) {\n Object.keys(chart.urls).forEach(key => {\n urls[key] = chart.urls[key];\n });\n }\n Object.keys(data.urls).forEach(key => {\n // chart['url_' + key] = data.urls[key];\n urls[key] = data.urls[key];\n });\n // if (chart.url_gams && chart.url_gamsError) {\n // chart.url_gamsError = null;\n // }\n if (urls.gams && urls.gamsError) {\n urls.gamsError = null;\n }\n chart.urls = urls;\n }\n\n chart['chart_type'] = data.chart.type || chart.type;\n chart.chart = data.chart || chart.chart || {};\n chart.default_headline = data.default_headline || chart.default_headline;\n chart.slug = (data.chart && data.chart.title) ? data.chart.title : (chart.slug || '');\n chart.modifier = data.modifier || chart.modifier;\n chart.product = data.chart.product || chart.product;\n chart.version = data.version || chart.version;\n let source = '';\n if (data.chart.data.source.text.length > 0) {\n source = data.chart.data.source.text;\n const writtenSource = 'Source: '\n source = source.indexOf(writtenSource) === 0 ? source.replace(writtenSource, '') : source;\n }\n chart.source = source;\n let gamsId = 'draft';\n let imageUrl = '';\n if (data.urls) {\n if (data.urls.gams) {\n gamsId = data.urls.gams;\n // if new gamsId was not generated that means imageUrl wasn't produced\n if(gamsId===prevGams) imageUrl = '';\n else if(data.product==='marketwatch') imageUrl = data.urls.gamsUrls[5];\n else {\n imageUrl = data.urls.gamsUrls[1] || data.urls.gamsUrls[0];\n }\n }\n }\n chart.gams = gamsId || chart.gams;\n\n chart['modify_date'] = now;\n if (data.chart && data.chart.approved) {\n chart['approved_graphics'] = data.chart.approved.graphics;\n chart['approved_editor'] = data.chart.approved.editor;\n }\n // if (data.chart && data.chart.sections) {\n // chart.sections = data.chart.sections;\n // }\n\n chart.history = data.history || chart.history || [];\n\n chart.history.push({\n action: action,\n user: data.modifier,\n date: now,\n imageUrl: imageUrl\n });\n\n if (action === 'created') {\n chart.creator = data.modifier;\n chart.id = data.id;\n chart['create_date'] = now;\n chart.modify_date = now;\n }\n return chart;\n}\n\n\nfunction pngRequest(data, environment) {\n var uri = `${converterBaseUrl(environment)}api/v1/png/string/base64/`;\n // var uri = 'http://int.prod.michelangelo-imaging.virginia.dj01.onservo.com/Rasterize/Svg?base64=true&type=png';\n // var uri = 'http://int.stg.michelangelo-imaging.virginia.dj01.onservo.com/Rasterize/Svg?base64=true&type=png'\n // const uri = `${converterBaseUrl(environment)}api/convert/base64`;\n var svgJSON = {\n \"svg\": sanitizeSVG(data)\n };\n return {\n method: 'POST',\n uri: uri,\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify(svgJSON)\n };\n}\n\nasync function epsRequest(data, environment) {\n const url = 'http://int.production.svg-converter.virginia.dj01.onservo.com/api/v1/eps/string/publish';\n return await fetch(url, {\n method: 'POST',\n uri: url,\n headers: {\n 'content-type': 'application/json'\n },\n body: JSON.stringify(data)\n })\n}\n\nfunction sanitizeSVG(data) {\n return data\n .replace(/\\u00a0/g, \" \")\n .replace(/\\u0003/g, \"\")\n .replace(' ', \" \")\n .replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\")\n}\n\nfunction converterBaseUrl(env) {\n if (process.env.NODE_ENV !== 'production') {\n return 'https://int-development-svg-converter.vir-dev.onservo.com/';\n } else {\n return `https://int-wsj-svg-converter.vir.onservo.com/`;\n }\n}\n\n// When returning multiple charts, returns only necessary data to display a\n// table of charts and not all charts data.\nfunction simplifyCharts(charts, query) {\n let filtered = charts;\n /* if (query.created && query.created !== 'anytime') {\n filtered = filtered.filter(chart => {\n return filterByDate(chart.createDate, query.created);\n });\n }\n if (query.modified && query.modified !== 'anytime') {\n filtered = filtered.filter(chart => {\n return filterByDate(chart.modifyDate, query.modified);\n });\n }\n if (query.title) {\n query.title = query.title.toLowerCase();\n filtered = filtered.filter(chart => {\n console.log(chart.chart.title);\n return chart.chart.title.indexOf(query.title) !== -1;\n });\n }\n if (query.text) {\n filtered = filtered.filter(chart => {\n return chartHasText(chart, query.text);\n });\n }\n if (query.creator) {\n query.creator = query.creator.toLowerCase();\n filtered = filtered.filter(chart => {\n return chart.creator.toLowerCase().indexOf(query.creator) !== -1;\n });\n }\n if (query.modifier) {\n query.modifier = query.modifier.toLowerCase();\n filtered = filtered.filter(chart => {\n return chart.modifier.toLowerCase().indexOf(query.modifier) !== -1;\n });\n }\n if (query.targets) {\n filtered = filtered.filter(chart => {\n const targets = chart.chart.targets || chart.targets;\n query.targets = Array.isArray(query.targets) ? query.targets : [query.targets];\n let found = false;\n query.targets.some(qt => {\n\n if (targets.indexOf(qt) !== -1) {\n console.log(qt, targets, targets.indexOf(qt) !== -1);\n return (found = true);\n }\n });\n return found;\n });\n }*/\n // const filtered = charts.filter(chart => {\n // const targets = chart.targets || chart.chart.targets;\n // if (query.targets && Array.isArray(targets)) {\n // query.targets = Array.isArray(query.targets) ? query.targets : [query.targets];\n // let found = false;\n // // console.log(targets, query.targets);\n // for (let i = 0; !found && i < query.targets.length; i++) {\n // found = targets.some(target => {\n // const targetStr = (target.indexOf('wsj') === 0) ? 'wsj' : target;\n // return targetStr === query.targets[i];\n // });\n // }\n // if (!found) {\n // return false;\n // }\n // }\n // return true;\n // });\n const simplified = filtered.map(chart => {\n let targets = chart.targets || chart.chart.targets;\n return {\n id: chart._id,\n title: chart.chart.title,\n createDate: chart.createDate,\n creator: chart.creator,\n modifyDate: chart.modifyDate || chart.createDate,\n modifier: chart.modifier || chart.creator,\n status: chart.status,\n sections: chart.chart.admin && chart.chart.admin.sections,\n targets: Array.isArray(targets) ?\n targets.sort((a, b) => {\n a = Array.isArray(a) ? a : [a];\n b = Array.isArray(b) ? b : [b];\n return sortStrs(a.join(''), b.join(''), 'asc');\n }) : [],\n approvedEditor: chart.chart.admin && chart.chart.admin.approved.editor,\n approvedGraphics: chart.chart.admin && chart.chart.admin.approved.graphics\n };\n });\n return simplified;\n // return sortCharts(simplified, query.prop, query.order);\n}\n\n\nfunction chartHasText(chart, text) {\n text = text.toLowerCase();\n if (chart.chart.title.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n if (chart.chart.data) {\n const data = chart.chart.data;\n if (data.raw && data.raw.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n if (Array.isArray(data.series)) {\n for (let i = 0; i < data.series.length; i++) {\n let name = (data.series[i].name || '') + '';\n if (name && name.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n }\n }\n }\n const keys = chart.chart.sizes ? Object.keys(chart.chart.sizes) : [];\n for (let i = 0; i < keys.length; i++) {\n let axes = chart.chart.sizes[keys[i]].axes;\n if (axes && axes.units) {\n let units = chart.chart.sizes[keys[i]].axes.units;\n if (units.prefix && units.prefix.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n if (units.suffix && units.suffix.toLowerCase().indexOf(text) !== -1) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction filterByDate(dateValue, relativeValue) {\n const minDate = Date.now() - getRelativeTime(relativeValue);\n return Date.parse(dateValue) >= minDate;\n}\n\nfunction sortStrs(a, b, order) {\n if (a < b) {\n return (order === 'desc') ? -1 : 1;\n } else if (a > b) {\n return (order === 'desc') ? 1 : -1;\n }\n return 0;\n}\n\nfunction buildMetadata(resp) {\n let status = '',\n hed = '',\n dek = '',\n chartTitle = '',\n inset = '',\n embed = '',\n image = '',\n publishDate = '',\n name = '',\n description = '';\n if (resp[0]) {\n const { urls, history, chart, status: statusText, slug } = resp[0];\n status = createStatus(statusText);\n const { title: hedObj, dek: dekObj, subdek: subdekObj } = chart.data;\n if (urls) {\n inset = urls.inset;\n const iframe = urls.iframe || '';\n const startIdx = iframe.indexOf('src=');\n const endIdx = iframe.indexOf('.html');\n embed = iframe.slice(startIdx + 5, endIdx + 5);\n }\n image = findImage(urls);\n const lastPublishedItem = findLastPublished(history);\n if (lastPublishedItem) publishDate = lastPublishedItem.date;\n if (hedObj) hed = hedObj.text;\n if (dekObj) dek = dekObj.text;\n if (subdekObj) chartTitle = subdekObj.text;\n name = slug || hed || dek || chartTitle;\n description = slug ?\n (hed || dek || chartTitle)\n :\n (dek || chartTitle);\n }\n return { status, hed, dek, chartTitle, inset, embed, image, publishDate, name, description };\n}\n\nfunction findLastPublished(history) {\n return [...history].reverse()\n .map(JSON.parse)\n .find(obj => obj.imageUrl);\n} \n\nfunction createStatus(statusText) {\n return statusText[0].toUpperCase() + statusText.slice(1); \n}\n\nfunction findImage(urls) {\n const gamsUrls = setGamsUrls(urls) || [];\n const searchByCrop = searchGamsUrls(gamsUrls);\n return searchByCrop('4U') || searchByCrop('PREVIEW')\n || 'https://images.wsj.net/im-108184';\n}\n\nfunction setGamsUrls(urls) {\n if (urls && urls.gamsUrls) {\n const { gamsUrls } = urls;\n return Array.isArray(gamsUrls) ?\n gamsUrls\n :\n [gamsUrls];\n }\n}\n\nfunction searchGamsUrls(gamsUrls) {\n return function(crop) {\n return gamsUrls.find(url => url.includes(crop));\n }\n}\n\nfunction success(res, data) {\n data.status = 'success';\n res.json(data);\n // res.json(_.assign({ status: 'success' }, data ));\n}\n\nfunction fail(res, data) {\n data.status = 'fail';\n res.json(data);\n // res.json(_.assign({ status: 'fail'}, data ));\n}\n\n\n// function filterByArray(charts, prop, value) {\n// if (!value) {\n// return charts;\n// }\n// value = Array.isArray(value) ? value : [value];\n// let filtered = [];\n// charts.forEach(chart => {\n// const chartVal = chart[prop];\n// if (chartVal) {\n// let found = false;\n// for (let i = 0; i < value.length; i++) {\n// if (chartVal.indexOf(value[i]) !== -1) {\n// found = true;\n// break;\n// }\n// }\n// if (found) filtered.push(chart);\n// }\n// });\n// return filtered;\n// }\n//\n//\n// function filterByString(charts, prop, value) {\n// if (value) {\n// let filtered = [];\n// charts.forEach(chart => {\n// const chartVal = chart[prop];\n// if (chartVal) {\n// if (chartVal.indexOf(value) !== -1) {\n// filtered.push(chart);\n// }\n// }\n// });\n// return filtered;\n// }\n// return charts;\n// }\n\n\n// function filterByDate(charts, prop, value) {\n// if (value && value !== 'anytime') {\n// let filtered = [];\n// const minDate = Date.now() - getRelativeTime(value);\n// charts.forEach(chart => {\n// if (Date.parse(chart[prop]) >= minDate) {\n// filtered.push(chart);\n// }\n// });\n// return filtered;\n// }\n// return charts;\n// }\n\n\n\nexport {\n updateChartData,\n // getSortObj,\n // sortCharts,\n pngRequest,\n epsRequest,\n success,\n fail,\n simplifyCharts,\n findUniqueHeadlines,\n pullOutHeadlines,\n convertTime,\n convertQueryObj,\n convertSortObj,\n checkArray,\n buildMetadata,\n // filterByArray,\n // filterByString,\n // filterByDate\n}\n\n\n// WEBPACK FOOTER //\n// ./server/shared/helpers.js","module.exports = require(\"regenerator-runtime\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/regenerator/index.js\n// module id = 291\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime-module.js\n// module id = 292\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime.js\n// module id = 293\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/asyncToGenerator.js\n// module id = 294\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/promise\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/promise.js\n// module id = 295\n// module chunks = 0","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/promise.js\n// module id = 296\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.promise.js\n// module id = 297\n// module chunks = 0","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-instance.js\n// module id = 298\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_for-of.js\n// module id = 299\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_invoke.js\n// module id = 300\n// module chunks = 0","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_microtask.js\n// module id = 301\n// module chunks = 0","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_user-agent.js\n// module id = 302\n// module chunks = 0","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_redefine-all.js\n// module id = 303\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-species.js\n// module id = 304\n// module chunks = 0","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.promise.finally.js\n// module id = 305\n// module chunks = 0","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.promise.try.js\n// module id = 306\n// module chunks = 0","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.async = global.async || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction slice(arrayLike, start) {\n start = start|0;\n var newLen = Math.max(arrayLike.length - start, 0);\n var newArr = Array(newLen);\n for(var idx = 0; idx < newLen; idx++) {\n newArr[idx] = arrayLike[start + idx];\n }\n return newArr;\n}\n\n/**\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {Function} fn - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @returns {Function} the partially-applied function\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n */\nvar apply = function(fn/*, ...args*/) {\n var args = slice(arguments, 1);\n return function(/*callArgs*/) {\n var callArgs = slice(arguments);\n return fn.apply(null, args.concat(callArgs));\n };\n};\n\nvar initialParams = function (fn) {\n return function (/*...args, callback*/) {\n var args = slice(arguments);\n var callback = args.pop();\n fn.call(this, args, callback);\n };\n};\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return function (fn/*, ...args*/) {\n var args = slice(arguments, 1);\n defer(function () {\n fn.apply(null, args);\n });\n };\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nvar setImmediate$1 = wrap(_defer);\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n return initialParams(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (isObject(result) && typeof result.then === 'function') {\n result.then(function(value) {\n invokeCallback(callback, null, value);\n }, function(err) {\n invokeCallback(callback, err.message ? err : new Error(err));\n });\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (e) {\n setImmediate$1(rethrow, e);\n }\n}\n\nfunction rethrow(error) {\n throw error;\n}\n\nvar supportsSymbol = typeof Symbol === 'function';\n\nfunction isAsync(fn) {\n return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction wrapAsync(asyncFn) {\n return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn;\n}\n\nfunction applyEach$1(eachfn) {\n return function(fns/*, ...args*/) {\n var args = slice(arguments, 1);\n var go = initialParams(function(args, callback) {\n var that = this;\n return eachfn(fns, function (fn, cb) {\n wrapAsync(fn).apply(that, args.concat(cb));\n }, callback);\n });\n if (args.length) {\n return go.apply(this, args);\n }\n else {\n return go;\n }\n };\n}\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Built-in value references. */\nvar Symbol$1 = root.Symbol;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString$1 = objectProto$1.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString$1.call(value);\n}\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]';\nvar undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]';\nvar funcTag = '[object Function]';\nvar genTag = '[object GeneratorFunction]';\nvar proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nvar breakLoop = {};\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nfunction once(fn) {\n return function () {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\nvar iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;\n\nvar getIterator = function (coll) {\n return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();\n};\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/** Used for built-in method references. */\nvar objectProto$3 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$2 = objectProto$3.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto$3.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty$2.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/** `Object#toString` result references. */\nvar argsTag$1 = '[object Arguments]';\nvar arrayTag = '[object Array]';\nvar boolTag = '[object Boolean]';\nvar dateTag = '[object Date]';\nvar errorTag = '[object Error]';\nvar funcTag$1 = '[object Function]';\nvar mapTag = '[object Map]';\nvar numberTag = '[object Number]';\nvar objectTag = '[object Object]';\nvar regexpTag = '[object RegExp]';\nvar setTag = '[object Set]';\nvar stringTag = '[object String]';\nvar weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\nvar dataViewTag = '[object DataView]';\nvar float32Tag = '[object Float32Array]';\nvar float64Tag = '[object Float64Array]';\nvar int8Tag = '[object Int8Array]';\nvar int16Tag = '[object Int16Array]';\nvar int32Tag = '[object Int32Array]';\nvar uint8Tag = '[object Uint8Array]';\nvar uint8ClampedTag = '[object Uint8ClampedArray]';\nvar uint16Tag = '[object Uint16Array]';\nvar uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag$1] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/** Detect free variable `exports`. */\nvar freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports$1 && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule$1 && freeModule$1.require && freeModule$1.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/** Used for built-in method references. */\nvar objectProto$2 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$2.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty$1.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar objectProto$5 = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5;\n\n return value === proto;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/** Used for built-in method references. */\nvar objectProto$4 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$3 = objectProto$4.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$3.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? {value: coll[i], key: i} : null;\n }\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done)\n return null;\n i++;\n return {value: item.value, key: i};\n }\n}\n\nfunction createObjectIterator(obj) {\n var okeys = keys(obj);\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n return i < len ? {value: obj[key], key: key} : null;\n };\n}\n\nfunction iterator(coll) {\n if (isArrayLike(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = getIterator(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\n\nfunction onlyOnce(fn) {\n return function() {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\nfunction _eachOfLimit(limit) {\n return function (obj, iteratee, callback) {\n callback = once(callback || noop);\n if (limit <= 0 || !obj) {\n return callback(null);\n }\n var nextElem = iterator(obj);\n var done = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n }\n else if (value === breakLoop || (done && running <= 0)) {\n done = true;\n return callback(null);\n }\n else if (!looping) {\n replenish();\n }\n }\n\n function replenish () {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, onlyOnce(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n}\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, wrapAsync(iteratee), callback);\n}\n\nfunction doLimit(fn, limit) {\n return function (iterable, iteratee, callback) {\n return fn(iterable, limit, iteratee, callback);\n };\n}\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = once(callback || noop);\n var index = 0,\n completed = 0,\n length = coll.length;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err) {\n callback(err);\n } else if ((++completed === length) || value === breakLoop) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, onlyOnce(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nvar eachOfGeneric = doLimit(eachOfLimit, Infinity);\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n */\nvar eachOf = function(coll, iteratee, callback) {\n var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric;\n eachOfImplementation(coll, wrapAsync(iteratee), callback);\n};\n\nfunction doParallel(fn) {\n return function (obj, iteratee, callback) {\n return fn(eachOf, obj, wrapAsync(iteratee), callback);\n };\n}\n\nfunction _asyncMap(eachfn, arr, iteratee, callback) {\n callback = callback || noop;\n arr = arr || [];\n var results = [];\n var counter = 0;\n var _iteratee = wrapAsync(iteratee);\n\n eachfn(arr, function (value, _, callback) {\n var index = counter++;\n _iteratee(value, function (err, v) {\n results[index] = v;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n\n/**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines).\n *\n * @name map\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n */\nvar map = doParallel(_asyncMap);\n\n/**\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, `fns`, then it will return a function which lets you pass in the\n * arguments as if it were a single function call. If more arguments are\n * provided, `callback` is required while `args` is still optional.\n *\n * @name applyEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} fns - A collection of {@link AsyncFunction}s\n * to all call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument, `fns`, is provided, it will\n * return a function which lets you pass in the arguments as if it were a single\n * function call. The signature is `(..args, callback)`. If invoked with any\n * arguments, `callback` is required.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n */\nvar applyEach = applyEach$1(map);\n\nfunction doParallelLimit(fn) {\n return function (obj, limit, iteratee, callback) {\n return fn(_eachOfLimit(limit), obj, wrapAsync(iteratee), callback);\n };\n}\n\n/**\n * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nvar mapLimit = doParallelLimit(_asyncMap);\n\n/**\n * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nvar mapSeries = doLimit(mapLimit, 1);\n\n/**\n * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.applyEach]{@link module:ControlFlow.applyEach}\n * @category Control Flow\n * @param {Array|Iterable|Object} fns - A collection of {@link AsyncFunction}s to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n */\nvar applyEachSeries = applyEach$1(mapSeries);\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\n/**\n * Determines the best order for running the {@link AsyncFunction}s in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the {@link AsyncFunction}s pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * {@link AsyncFunction}s also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the {@link AsyncFunction} itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n */\nvar auto = function (tasks, concurrency, callback) {\n if (typeof concurrency === 'function') {\n // concurrency is optional, shift the args.\n callback = concurrency;\n concurrency = null;\n }\n callback = once(callback || noop);\n var keys$$1 = keys(tasks);\n var numTasks = keys$$1.length;\n if (!numTasks) {\n return callback(null);\n }\n if (!concurrency) {\n concurrency = numTasks;\n }\n\n var results = {};\n var runningTasks = 0;\n var hasError = false;\n\n var listeners = Object.create(null);\n\n var readyTasks = [];\n\n // for cycle detection:\n var readyToCheck = []; // tasks that have been identified as reachable\n // without the possibility of returning to an ancestor task\n var uncheckedDependencies = {};\n\n baseForOwn(tasks, function (task, key) {\n if (!isArray(task)) {\n // no dependencies\n enqueueTask(key, [task]);\n readyToCheck.push(key);\n return;\n }\n\n var dependencies = task.slice(0, task.length - 1);\n var remainingDependencies = dependencies.length;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n readyToCheck.push(key);\n return;\n }\n uncheckedDependencies[key] = remainingDependencies;\n\n arrayEach(dependencies, function (dependencyName) {\n if (!tasks[dependencyName]) {\n throw new Error('async.auto task `' + key +\n '` has a non-existent dependency `' +\n dependencyName + '` in ' +\n dependencies.join(', '));\n }\n addListener(dependencyName, function () {\n remainingDependencies--;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n }\n });\n });\n });\n\n checkForDeadlocks();\n processQueue();\n\n function enqueueTask(key, task) {\n readyTasks.push(function () {\n runTask(key, task);\n });\n }\n\n function processQueue() {\n if (readyTasks.length === 0 && runningTasks === 0) {\n return callback(null, results);\n }\n while(readyTasks.length && runningTasks < concurrency) {\n var run = readyTasks.shift();\n run();\n }\n\n }\n\n function addListener(taskName, fn) {\n var taskListeners = listeners[taskName];\n if (!taskListeners) {\n taskListeners = listeners[taskName] = [];\n }\n\n taskListeners.push(fn);\n }\n\n function taskComplete(taskName) {\n var taskListeners = listeners[taskName] || [];\n arrayEach(taskListeners, function (fn) {\n fn();\n });\n processQueue();\n }\n\n\n function runTask(key, task) {\n if (hasError) return;\n\n var taskCallback = onlyOnce(function(err, result) {\n runningTasks--;\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n }\n if (err) {\n var safeResults = {};\n baseForOwn(results, function(val, rkey) {\n safeResults[rkey] = val;\n });\n safeResults[key] = result;\n hasError = true;\n listeners = Object.create(null);\n\n callback(err, safeResults);\n } else {\n results[key] = result;\n taskComplete(key);\n }\n });\n\n runningTasks++;\n var taskFn = wrapAsync(task[task.length - 1]);\n if (task.length > 1) {\n taskFn(results, taskCallback);\n } else {\n taskFn(taskCallback);\n }\n }\n\n function checkForDeadlocks() {\n // Kahn's algorithm\n // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm\n // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html\n var currentTask;\n var counter = 0;\n while (readyToCheck.length) {\n currentTask = readyToCheck.pop();\n counter++;\n arrayEach(getDependents(currentTask), function (dependent) {\n if (--uncheckedDependencies[dependent] === 0) {\n readyToCheck.push(dependent);\n }\n });\n }\n\n if (counter !== numTasks) {\n throw new Error(\n 'async.auto cannot execute tasks due to a recursive dependency'\n );\n }\n }\n\n function getDependents(taskName) {\n var result = [];\n baseForOwn(tasks, function (task, key) {\n if (isArray(task) && baseIndexOf(task, taskName, 0) >= 0) {\n result.push(key);\n }\n });\n return result;\n }\n};\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : undefined;\nvar symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff';\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f';\nvar reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f';\nvar rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff';\nvar rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\nvar rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange$1 = '\\\\ud800-\\\\udfff';\nvar rsComboMarksRange$1 = '\\\\u0300-\\\\u036f';\nvar reComboHalfMarksRange$1 = '\\\\ufe20-\\\\ufe2f';\nvar rsComboSymbolsRange$1 = '\\\\u20d0-\\\\u20ff';\nvar rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1;\nvar rsVarRange$1 = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange$1 + ']';\nvar rsCombo = '[' + rsComboRange$1 + ']';\nvar rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]';\nvar rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')';\nvar rsNonAstral = '[^' + rsAstralRange$1 + ']';\nvar rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}';\nvar rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]';\nvar rsZWJ$1 = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?';\nvar rsOptVar = '[' + rsVarRange$1 + ']?';\nvar rsOptJoin = '(?:' + rsZWJ$1 + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*';\nvar rsSeq = rsOptVar + reOptMod + rsOptJoin;\nvar rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrim, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nvar FN_ARGS = /^(?:async\\s+)?(function)?\\s*[^\\(]*\\(\\s*([^\\)]*)\\)/m;\nvar FN_ARG_SPLIT = /,/;\nvar FN_ARG = /(=.+)?(\\s*)$/;\nvar STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\n\nfunction parseParams(func) {\n func = func.toString().replace(STRIP_COMMENTS, '');\n func = func.match(FN_ARGS)[2].replace(' ', '');\n func = func ? func.split(FN_ARG_SPLIT) : [];\n func = func.map(function (arg){\n return trim(arg.replace(FN_ARG, ''));\n });\n return func;\n}\n\n/**\n * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.auto]{@link module:ControlFlow.auto}\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is an {@link AsyncFunction} of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback, and a `results` object with any completed\n * task results, similar to `auto`.\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n */\nfunction autoInject(tasks, callback) {\n var newTasks = {};\n\n baseForOwn(tasks, function (taskFn, key) {\n var params;\n var fnIsAsync = isAsync(taskFn);\n var hasNoDeps =\n (!fnIsAsync && taskFn.length === 1) ||\n (fnIsAsync && taskFn.length === 0);\n\n if (isArray(taskFn)) {\n params = taskFn.slice(0, -1);\n taskFn = taskFn[taskFn.length - 1];\n\n newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn);\n } else if (hasNoDeps) {\n // no dependencies, use the function as-is\n newTasks[key] = taskFn;\n } else {\n params = parseParams(taskFn);\n if (taskFn.length === 0 && !fnIsAsync && params.length === 0) {\n throw new Error(\"autoInject task functions require explicit parameters.\");\n }\n\n // remove callback param\n if (!fnIsAsync) params.pop();\n\n newTasks[key] = params.concat(newTask);\n }\n\n function newTask(results, taskCb) {\n var newArgs = arrayMap(params, function (name) {\n return results[name];\n });\n newArgs.push(taskCb);\n wrapAsync(taskFn).apply(null, newArgs);\n }\n });\n\n auto(newTasks, callback);\n}\n\n// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n// used for queues. This implementation assumes that the node provided by the user can be modified\n// to adjust the next and last properties. We implement only the minimal functionality\n// for queue support.\nfunction DLL() {\n this.head = this.tail = null;\n this.length = 0;\n}\n\nfunction setInitial(dll, node) {\n dll.length = 1;\n dll.head = dll.tail = node;\n}\n\nDLL.prototype.removeLink = function(node) {\n if (node.prev) node.prev.next = node.next;\n else this.head = node.next;\n if (node.next) node.next.prev = node.prev;\n else this.tail = node.prev;\n\n node.prev = node.next = null;\n this.length -= 1;\n return node;\n};\n\nDLL.prototype.empty = function () {\n while(this.head) this.shift();\n return this;\n};\n\nDLL.prototype.insertAfter = function(node, newNode) {\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next) node.next.prev = newNode;\n else this.tail = newNode;\n node.next = newNode;\n this.length += 1;\n};\n\nDLL.prototype.insertBefore = function(node, newNode) {\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev) node.prev.next = newNode;\n else this.head = newNode;\n node.prev = newNode;\n this.length += 1;\n};\n\nDLL.prototype.unshift = function(node) {\n if (this.head) this.insertBefore(this.head, node);\n else setInitial(this, node);\n};\n\nDLL.prototype.push = function(node) {\n if (this.tail) this.insertAfter(this.tail, node);\n else setInitial(this, node);\n};\n\nDLL.prototype.shift = function() {\n return this.head && this.removeLink(this.head);\n};\n\nDLL.prototype.pop = function() {\n return this.tail && this.removeLink(this.tail);\n};\n\nDLL.prototype.toArray = function () {\n var arr = Array(this.length);\n var curr = this.head;\n for(var idx = 0; idx < this.length; idx++) {\n arr[idx] = curr.data;\n curr = curr.next;\n }\n return arr;\n};\n\nDLL.prototype.remove = function (testFn) {\n var curr = this.head;\n while(!!curr) {\n var next = curr.next;\n if (testFn(curr)) {\n this.removeLink(curr);\n }\n curr = next;\n }\n return this;\n};\n\nfunction queue(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n }\n else if(concurrency === 0) {\n throw new Error('Concurrency must not be zero');\n }\n\n var _worker = wrapAsync(worker);\n var numRunning = 0;\n var workersList = [];\n\n var processingScheduled = false;\n function _insert(data, insertAtFront, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n return setImmediate$1(function() {\n q.drain();\n });\n }\n\n for (var i = 0, l = data.length; i < l; i++) {\n var item = {\n data: data[i],\n callback: callback || noop\n };\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n } else {\n q._tasks.push(item);\n }\n }\n\n if (!processingScheduled) {\n processingScheduled = true;\n setImmediate$1(function() {\n processingScheduled = false;\n q.process();\n });\n }\n }\n\n function _next(tasks) {\n return function(err){\n numRunning -= 1;\n\n for (var i = 0, l = tasks.length; i < l; i++) {\n var task = tasks[i];\n\n var index = baseIndexOf(workersList, task, 0);\n if (index === 0) {\n workersList.shift();\n } else if (index > 0) {\n workersList.splice(index, 1);\n }\n\n task.callback.apply(task, arguments);\n\n if (err != null) {\n q.error(err, task.data);\n }\n }\n\n if (numRunning <= (q.concurrency - q.buffer) ) {\n q.unsaturated();\n }\n\n if (q.idle()) {\n q.drain();\n }\n q.process();\n };\n }\n\n var isProcessing = false;\n var q = {\n _tasks: new DLL(),\n concurrency: concurrency,\n payload: payload,\n saturated: noop,\n unsaturated:noop,\n buffer: concurrency / 4,\n empty: noop,\n drain: noop,\n error: noop,\n started: false,\n paused: false,\n push: function (data, callback) {\n _insert(data, false, callback);\n },\n kill: function () {\n q.drain = noop;\n q._tasks.empty();\n },\n unshift: function (data, callback) {\n _insert(data, true, callback);\n },\n remove: function (testFn) {\n q._tasks.remove(testFn);\n },\n process: function () {\n // Avoid trying to start too many processing operations. This can occur\n // when callbacks resolve synchronously (#1267).\n if (isProcessing) {\n return;\n }\n isProcessing = true;\n while(!q.paused && numRunning < q.concurrency && q._tasks.length){\n var tasks = [], data = [];\n var l = q._tasks.length;\n if (q.payload) l = Math.min(l, q.payload);\n for (var i = 0; i < l; i++) {\n var node = q._tasks.shift();\n tasks.push(node);\n workersList.push(node);\n data.push(node.data);\n }\n\n numRunning += 1;\n\n if (q._tasks.length === 0) {\n q.empty();\n }\n\n if (numRunning === q.concurrency) {\n q.saturated();\n }\n\n var cb = onlyOnce(_next(tasks));\n _worker(data, cb);\n }\n isProcessing = false;\n },\n length: function () {\n return q._tasks.length;\n },\n running: function () {\n return numRunning;\n },\n workersList: function () {\n return workersList;\n },\n idle: function() {\n return q._tasks.length + numRunning === 0;\n },\n pause: function () {\n q.paused = true;\n },\n resume: function () {\n if (q.paused === false) { return; }\n q.paused = false;\n setImmediate$1(q.process);\n }\n };\n return q;\n}\n\n/**\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as [`queue`]{@link module:ControlFlow.queue}.\n * @typedef {Object} CargoObject\n * @memberOf module:ControlFlow\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke like `cargo.length()`.\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke like `cargo.push(task, [callback])`.\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke like `cargo.idle()`.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke like `cargo.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke like `cargo.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke like `cargo.kill()`.\n */\n\n/**\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An asynchronous function for processing an array\n * of queued tasks. Invoked with `(tasks, callback)`.\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {module:ControlFlow.CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i<tasks.length; i++) {\n * console.log('hello ' + tasks[i].name);\n * }\n * callback();\n * }, 2);\n *\n * // add some items\n * cargo.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * cargo.push({name: 'bar'}, function(err) {\n * console.log('finished processing bar');\n * });\n * cargo.push({name: 'baz'}, function(err) {\n * console.log('finished processing baz');\n * });\n */\nfunction cargo(worker, payload) {\n return queue(worker, 1, payload);\n}\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n */\nvar eachOfSeries = doLimit(eachOfLimit, 1);\n\n/**\n * Reduces `coll` into a single value using an async `iteratee` to return each\n * successive step. `memo` is the initial state of the reduction. This function\n * only operates in series.\n *\n * For performance reasons, it may make sense to split a call to this function\n * into a parallel map, and then use the normal `Array.prototype.reduce` on the\n * results. This function is for situations where each step in the reduction\n * needs to be async; if you can get the data before reducing it, then it's\n * probably a good idea to do so.\n *\n * @name reduce\n * @static\n * @memberOf module:Collections\n * @method\n * @alias inject\n * @alias foldl\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee complete with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n * @example\n *\n * async.reduce([1,2,3], 0, function(memo, item, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * callback(null, memo + item)\n * });\n * }, function(err, result) {\n * // result is now equal to the last value of memo, which is 6\n * });\n */\nfunction reduce(coll, memo, iteratee, callback) {\n callback = once(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n eachOfSeries(coll, function(x, i, callback) {\n _iteratee(memo, x, function(err, v) {\n memo = v;\n callback(err);\n });\n }, function(err) {\n callback(err, memo);\n });\n}\n\n/**\n * Version of the compose function that is more natural to read. Each function\n * consumes the return value of the previous function. It is the equivalent of\n * [compose]{@link module:ControlFlow.compose} with the arguments reversed.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name seq\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.compose]{@link module:ControlFlow.compose}\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} a function that composes the `functions` in order\n * @example\n *\n * // Requires lodash (or underscore), express3 and dresende's orm2.\n * // Part of an app, that fetches cats of the logged user.\n * // This example uses `seq` function to avoid overnesting and error\n * // handling clutter.\n * app.get('/cats', function(request, response) {\n * var User = request.models.User;\n * async.seq(\n * _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data))\n * function(user, fn) {\n * user.getCats(fn); // 'getCats' has signature (callback(err, data))\n * }\n * )(req.session.user_id, function (err, cats) {\n * if (err) {\n * console.error(err);\n * response.json({ status: 'error', message: err.message });\n * } else {\n * response.json({ status: 'ok', message: 'Cats found', data: cats });\n * }\n * });\n * });\n */\nfunction seq(/*...functions*/) {\n var _functions = arrayMap(arguments, wrapAsync);\n return function(/*...args*/) {\n var args = slice(arguments);\n var that = this;\n\n var cb = args[args.length - 1];\n if (typeof cb == 'function') {\n args.pop();\n } else {\n cb = noop;\n }\n\n reduce(_functions, args, function(newargs, fn, cb) {\n fn.apply(that, newargs.concat(function(err/*, ...nextargs*/) {\n var nextargs = slice(arguments, 1);\n cb(err, nextargs);\n }));\n },\n function(err, results) {\n cb.apply(that, [err].concat(results));\n });\n };\n}\n\n/**\n * Creates a function which is a composition of the passed asynchronous\n * functions. Each function consumes the return value of the function that\n * follows. Composing functions `f()`, `g()`, and `h()` would produce the result\n * of `f(g(h()))`, only this version uses callbacks to obtain the return values.\n *\n * Each function is executed with the `this` binding of the composed function.\n *\n * @name compose\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {...AsyncFunction} functions - the asynchronous functions to compose\n * @returns {Function} an asynchronous function that is the composed\n * asynchronous `functions`\n * @example\n *\n * function add1(n, callback) {\n * setTimeout(function () {\n * callback(null, n + 1);\n * }, 10);\n * }\n *\n * function mul3(n, callback) {\n * setTimeout(function () {\n * callback(null, n * 3);\n * }, 10);\n * }\n *\n * var add1mul3 = async.compose(mul3, add1);\n * add1mul3(4, function (err, result) {\n * // result now equals 15\n * });\n */\nvar compose = function(/*...args*/) {\n return seq.apply(null, slice(arguments).reverse());\n};\n\nvar _concat = Array.prototype.concat;\n\n/**\n * The same as [`concat`]{@link module:Collections.concat} but runs a maximum of `limit` async operations at a time.\n *\n * @name concatLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n */\nvar concatLimit = function(coll, limit, iteratee, callback) {\n callback = callback || noop;\n var _iteratee = wrapAsync(iteratee);\n mapLimit(coll, limit, function(val, callback) {\n _iteratee(val, function(err /*, ...args*/) {\n if (err) return callback(err);\n return callback(null, slice(arguments, 1));\n });\n }, function(err, mapResults) {\n var result = [];\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n result = _concat.apply(result, mapResults[i]);\n }\n }\n\n return callback(err, result);\n });\n};\n\n/**\n * Applies `iteratee` to each item in `coll`, concatenating the results. Returns\n * the concatenated list. The `iteratee`s are called in parallel, and the\n * results are concatenated as they return. There is no guarantee that the\n * results array will be returned in the original order of `coll` passed to the\n * `iteratee` function.\n *\n * @name concat\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`,\n * which should use an array as its result. Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n * @example\n *\n * async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {\n * // files is now a list of filenames that exist in the 3 directories\n * });\n */\nvar concat = doLimit(concatLimit, Infinity);\n\n/**\n * The same as [`concat`]{@link module:Collections.concat} but runs only a single async operation at a time.\n *\n * @name concatSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.concat]{@link module:Collections.concat}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each item in `coll`.\n * The iteratee should complete with an array an array of results.\n * Invoked with (item, callback).\n * @param {Function} [callback(err)] - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is an array\n * containing the concatenated results of the `iteratee` function. Invoked with\n * (err, results).\n */\nvar concatSeries = doLimit(concatLimit, 1);\n\n/**\n * Returns a function that when called, calls-back with the values provided.\n * Useful as the first function in a [`waterfall`]{@link module:ControlFlow.waterfall}, or for plugging values in to\n * [`auto`]{@link module:ControlFlow.auto}.\n *\n * @name constant\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {...*} arguments... - Any number of arguments to automatically invoke\n * callback with.\n * @returns {AsyncFunction} Returns a function that when invoked, automatically\n * invokes the callback with the previous given arguments.\n * @example\n *\n * async.waterfall([\n * async.constant(42),\n * function (value, next) {\n * // value === 42\n * },\n * //...\n * ], callback);\n *\n * async.waterfall([\n * async.constant(filename, \"utf8\"),\n * fs.readFile,\n * function (fileData, next) {\n * //...\n * }\n * //...\n * ], callback);\n *\n * async.auto({\n * hostname: async.constant(\"https://server.net/\"),\n * port: findFreePort,\n * launchServer: [\"hostname\", \"port\", function (options, cb) {\n * startServer(options, cb);\n * }],\n * //...\n * }, callback);\n */\nvar constant = function(/*...values*/) {\n var values = slice(arguments);\n var args = [null].concat(values);\n return function (/*...ignoredArgs, callback*/) {\n var callback = arguments[arguments.length - 1];\n return callback.apply(this, args);\n };\n};\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nfunction _createTester(check, getResult) {\n return function(eachfn, arr, iteratee, cb) {\n cb = cb || noop;\n var testPassed = false;\n var testResult;\n eachfn(arr, function(value, _, callback) {\n iteratee(value, function(err, result) {\n if (err) {\n callback(err);\n } else if (check(result) && !testResult) {\n testPassed = true;\n testResult = getResult(true, value);\n callback(null, breakLoop);\n } else {\n callback();\n }\n });\n }, function(err) {\n if (err) {\n cb(err);\n } else {\n cb(null, testPassed ? testResult : getResult(false));\n }\n });\n };\n}\n\nfunction _findGetResult(v, x) {\n return x;\n}\n\n/**\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * [`detectSeries`]{@link module:Collections.detectSeries}.\n *\n * @name detect\n * @static\n * @memberOf module:Collections\n * @method\n * @alias find\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n */\nvar detect = doParallel(_createTester(identity, _findGetResult));\n\n/**\n * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findLimit\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nvar detectLimit = doParallelLimit(_createTester(identity, _findGetResult));\n\n/**\n * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findSeries\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nvar detectSeries = doLimit(detectLimit, 1);\n\nfunction consoleFunc(name) {\n return function (fn/*, ...args*/) {\n var args = slice(arguments, 1);\n args.push(function (err/*, ...args*/) {\n var args = slice(arguments, 1);\n if (typeof console === 'object') {\n if (err) {\n if (console.error) {\n console.error(err);\n }\n } else if (console[name]) {\n arrayEach(args, function (x) {\n console[name](x);\n });\n }\n }\n });\n wrapAsync(fn).apply(null, args);\n };\n}\n\n/**\n * Logs the result of an [`async` function]{@link AsyncFunction} to the\n * `console` using `console.dir` to display the properties of the resulting object.\n * Only works in Node.js or in browsers that support `console.dir` and\n * `console.error` (such as FF and Chrome).\n * If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name dir\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n */\nvar dir = consoleFunc('dir');\n\n/**\n * The post-check version of [`during`]{@link module:ControlFlow.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of [`doWhilst`]{@link module:ControlFlow.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.during]{@link module:ControlFlow.during}\n * @category Control Flow\n * @param {AsyncFunction} fn - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error if one occurred, otherwise `null`.\n */\nfunction doDuring(fn, test, callback) {\n callback = onlyOnce(callback || noop);\n var _fn = wrapAsync(fn);\n var _test = wrapAsync(test);\n\n function next(err/*, ...args*/) {\n if (err) return callback(err);\n var args = slice(arguments, 1);\n args.push(check);\n _test.apply(this, args);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n _fn(next);\n }\n\n check(null, true);\n\n}\n\n/**\n * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `iteratee` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - A function which is called each time `test`\n * passes. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `iteratee`. Invoked with any non-error callback results of\n * `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped.\n * `callback` will be passed an error and any arguments passed to the final\n * `iteratee`'s callback. Invoked with (err, [results]);\n */\nfunction doWhilst(iteratee, test, callback) {\n callback = onlyOnce(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n var next = function(err/*, ...args*/) {\n if (err) return callback(err);\n var args = slice(arguments, 1);\n if (test.apply(this, args)) return _iteratee(next);\n callback.apply(null, [null].concat(args));\n };\n _iteratee(next);\n}\n\n/**\n * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.doWhilst]{@link module:ControlFlow.doWhilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `iteratee`. Invoked with any non-error callback results of\n * `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n */\nfunction doUntil(iteratee, test, callback) {\n doWhilst(iteratee, function() {\n return !test.apply(this, arguments);\n }, callback);\n}\n\n/**\n * Like [`whilst`]{@link module:ControlFlow.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {AsyncFunction} fn - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error, if one occurred, otherwise `null`.\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n */\nfunction during(test, fn, callback) {\n callback = onlyOnce(callback || noop);\n var _fn = wrapAsync(fn);\n var _test = wrapAsync(test);\n\n function next(err) {\n if (err) return callback(err);\n _test(check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n _fn(next);\n }\n\n _test(check);\n}\n\nfunction _withoutIndex(iteratee) {\n return function (value, index, callback) {\n return iteratee(value, callback);\n };\n}\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n */\nfunction eachLimit(coll, iteratee, callback) {\n eachOf(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n}\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfLimit`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachLimit$1(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n}\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfSeries`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nvar eachSeries = doLimit(eachLimit$1, 1);\n\n/**\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained. ES2017 `async` functions are returned as-is -- they are immune\n * to Zalgo's corrupting influences, as they always resolve on a later tick.\n *\n * @name ensureAsync\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {AsyncFunction} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n */\nfunction ensureAsync(fn) {\n if (isAsync(fn)) return fn;\n return initialParams(function (args, callback) {\n var sync = true;\n args.push(function () {\n var innerArgs = arguments;\n if (sync) {\n setImmediate$1(function () {\n callback.apply(null, innerArgs);\n });\n } else {\n callback.apply(null, innerArgs);\n }\n });\n fn.apply(this, args);\n sync = false;\n });\n}\n\nfunction notId(v) {\n return !v;\n}\n\n/**\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf module:Collections\n * @method\n * @alias all\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n */\nvar every = doParallel(_createTester(notId, notId));\n\n/**\n * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nvar everyLimit = doParallelLimit(_createTester(notId, notId));\n\n/**\n * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in series.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nvar everySeries = doLimit(everyLimit, 1);\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nfunction filterArray(eachfn, arr, iteratee, callback) {\n var truthValues = new Array(arr.length);\n eachfn(arr, function (x, index, callback) {\n iteratee(x, function (err, v) {\n truthValues[index] = !!v;\n callback(err);\n });\n }, function (err) {\n if (err) return callback(err);\n var results = [];\n for (var i = 0; i < arr.length; i++) {\n if (truthValues[i]) results.push(arr[i]);\n }\n callback(null, results);\n });\n}\n\nfunction filterGeneric(eachfn, coll, iteratee, callback) {\n var results = [];\n eachfn(coll, function (x, index, callback) {\n iteratee(x, function (err, v) {\n if (err) {\n callback(err);\n } else {\n if (v) {\n results.push({index: index, value: x});\n }\n callback();\n }\n });\n }, function (err) {\n if (err) {\n callback(err);\n } else {\n callback(null, arrayMap(results.sort(function (a, b) {\n return a.index - b.index;\n }), baseProperty('value')));\n }\n });\n}\n\nfunction _filter(eachfn, coll, iteratee, callback) {\n var filter = isArrayLike(coll) ? filterArray : filterGeneric;\n filter(eachfn, coll, wrapAsync(iteratee), callback || noop);\n}\n\n/**\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf module:Collections\n * @method\n * @alias select\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n */\nvar filter = doParallel(_filter);\n\n/**\n * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar filterLimit = doParallelLimit(_filter);\n\n/**\n * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n */\nvar filterSeries = doLimit(filterLimit, 1);\n\n/**\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the callback then `errback` is called with the\n * error, and execution stops, otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} fn - an async function to call repeatedly.\n * Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n */\nfunction forever(fn, errback) {\n var done = onlyOnce(errback || noop);\n var task = wrapAsync(ensureAsync(fn));\n\n function next(err) {\n if (err) return done(err);\n task(next);\n }\n next();\n}\n\n/**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs a maximum of `limit` async operations at a time.\n *\n * @name groupByLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n */\nvar groupByLimit = function(coll, limit, iteratee, callback) {\n callback = callback || noop;\n var _iteratee = wrapAsync(iteratee);\n mapLimit(coll, limit, function(val, callback) {\n _iteratee(val, function(err, key) {\n if (err) return callback(err);\n return callback(null, {key: key, val: val});\n });\n }, function(err, mapResults) {\n var result = {};\n // from MDN, handle object having an `hasOwnProperty` prop\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n var key = mapResults[i].key;\n var val = mapResults[i].val;\n\n if (hasOwnProperty.call(result, key)) {\n result[key].push(val);\n } else {\n result[key] = [val];\n }\n }\n }\n\n return callback(err, result);\n });\n};\n\n/**\n * Returns a new object, where each value corresponds to an array of items, from\n * `coll`, that returned the corresponding key. That is, the keys of the object\n * correspond to the values passed to the `iteratee` callback.\n *\n * Note: Since this function applies the `iteratee` to each item in parallel,\n * there is no guarantee that the `iteratee` functions will complete in order.\n * However, the values for each key in the `result` will be in the same order as\n * the original `coll`. For Objects, the values will roughly be in the order of\n * the original Objects' keys (but this can vary across JavaScript engines).\n *\n * @name groupBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @example\n *\n * async.groupBy(['userId1', 'userId2', 'userId3'], function(userId, callback) {\n * db.findById(userId, function(err, user) {\n * if (err) return callback(err);\n * return callback(null, user.age);\n * });\n * }, function(err, result) {\n * // result is object containing the userIds grouped by age\n * // e.g. { 30: ['userId1', 'userId3'], 42: ['userId2']};\n * });\n */\nvar groupBy = doLimit(groupByLimit, Infinity);\n\n/**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs only a single async operation at a time.\n *\n * @name groupBySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n */\nvar groupBySeries = doLimit(groupByLimit, 1);\n\n/**\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n */\nvar log = consoleFunc('log');\n\n/**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n */\nfunction mapValuesLimit(obj, limit, iteratee, callback) {\n callback = once(callback || noop);\n var newObj = {};\n var _iteratee = wrapAsync(iteratee);\n eachOfLimit(obj, limit, function(val, key, next) {\n _iteratee(val, key, function (err, result) {\n if (err) return next(err);\n newObj[key] = result;\n next();\n });\n }, function (err) {\n callback(err, newObj);\n });\n}\n\n/**\n * A relative of [`map`]{@link module:Collections.map}, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, function (file, key, callback) {\n * fs.stat(file, callback);\n * }, function(err, result) {\n * // result is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n */\n\nvar mapValues = doLimit(mapValuesLimit, Infinity);\n\n/**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n */\nvar mapValuesSeries = doLimit(mapValuesLimit, 1);\n\nfunction has(obj, key) {\n return key in obj;\n}\n\n/**\n * Caches the results of an async function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {AsyncFunction} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n */\nfunction memoize(fn, hasher) {\n var memo = Object.create(null);\n var queues = Object.create(null);\n hasher = hasher || identity;\n var _fn = wrapAsync(fn);\n var memoized = initialParams(function memoized(args, callback) {\n var key = hasher.apply(null, args);\n if (has(memo, key)) {\n setImmediate$1(function() {\n callback.apply(null, memo[key]);\n });\n } else if (has(queues, key)) {\n queues[key].push(callback);\n } else {\n queues[key] = [callback];\n _fn.apply(null, args.concat(function(/*args*/) {\n var args = slice(arguments);\n memo[key] = args;\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i].apply(null, args);\n }\n }));\n }\n });\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n}\n\n/**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `process.nextTick`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.setImmediate]{@link module:Utils.setImmediate}\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\nvar _defer$1;\n\nif (hasNextTick) {\n _defer$1 = process.nextTick;\n} else if (hasSetImmediate) {\n _defer$1 = setImmediate;\n} else {\n _defer$1 = fallback;\n}\n\nvar nextTick = wrap(_defer$1);\n\nfunction _parallel(eachfn, tasks, callback) {\n callback = callback || noop;\n var results = isArrayLike(tasks) ? [] : {};\n\n eachfn(tasks, function (task, key, callback) {\n wrapAsync(task)(function (err, result) {\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n }\n results[key] = result;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n\n/**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the\n * execution of other tasks when a task fails.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n *\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n */\nfunction parallelLimit(tasks, callback) {\n _parallel(eachOf, tasks, callback);\n}\n\n/**\n * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallelLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.parallel]{@link module:ControlFlow.parallel}\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n */\nfunction parallelLimit$1(tasks, limit, callback) {\n _parallel(_eachOfLimit(limit), tasks, callback);\n}\n\n/**\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @memberOf module:ControlFlow\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with `queue.length()`.\n * @property {boolean} started - a boolean indicating whether or not any\n * items have been pushed and processed by the queue.\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with `queue.running()`.\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with `queue.workersList()`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with `queue.push(task, [callback])`,\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with `queue.unshift(task, [callback])`.\n * @property {Function} remove - remove items from the queue that match a test\n * function. The test function will be passed an object with a `data` property,\n * and a `priority` property, if this is a\n * [priorityQueue]{@link module:ControlFlow.priorityQueue} object.\n * Invoked with `queue.remove(testFn)`, where `testFn` is of the form\n * `function ({data, priority}) {}` and returns a Boolean.\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with `queue.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. No more tasks\n * should be pushed to the queue after calling this function. Invoke with `queue.kill()`.\n */\n\n/**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`. Invoked with (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */\nvar queue$1 = function (worker, concurrency) {\n var _worker = wrapAsync(worker);\n return queue(function (items, cb) {\n _worker(items[0], cb);\n }, concurrency, 1);\n};\n\n/**\n * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`.\n * Invoked with (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n */\nvar priorityQueue = function(worker, concurrency) {\n // Start with a normal queue\n var q = queue$1(worker, concurrency);\n\n // Override push to accept second parameter representing priority\n q.push = function(data, priority, callback) {\n if (callback == null) callback = noop;\n if (typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0) {\n // call drain immediately if there are no tasks\n return setImmediate$1(function() {\n q.drain();\n });\n }\n\n priority = priority || 0;\n var nextNode = q._tasks.head;\n while (nextNode && priority >= nextNode.priority) {\n nextNode = nextNode.next;\n }\n\n for (var i = 0, l = data.length; i < l; i++) {\n var item = {\n data: data[i],\n priority: priority,\n callback: callback\n };\n\n if (nextNode) {\n q._tasks.insertBefore(nextNode, item);\n } else {\n q._tasks.push(item);\n }\n }\n setImmediate$1(q.process);\n };\n\n // Remove unshift function\n delete q.unshift;\n\n return q;\n};\n\n/**\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any of the `tasks` complete or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array containing [async functions]{@link AsyncFunction}\n * to run. Each function can complete with an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n */\nfunction race(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions'));\n if (!tasks.length) return callback();\n for (var i = 0, l = tasks.length; i < l; i++) {\n wrapAsync(tasks[i])(callback);\n }\n}\n\n/**\n * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reduce]{@link module:Collections.reduce}\n * @alias foldr\n * @category Collection\n * @param {Array} array - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee complete with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n */\nfunction reduceRight (array, memo, iteratee, callback) {\n var reversed = slice(array).reverse();\n reduce(reversed, memo, iteratee, callback);\n}\n\n/**\n * Wraps the async function in another function that always completes with a\n * result object, even when it errors.\n *\n * The result object has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n */\nfunction reflect(fn) {\n var _fn = wrapAsync(fn);\n return initialParams(function reflectOn(args, reflectCallback) {\n args.push(function callback(error, cbArg) {\n if (error) {\n reflectCallback(null, { error: error });\n } else {\n var value;\n if (arguments.length <= 2) {\n value = cbArg;\n } else {\n value = slice(arguments, 1);\n }\n reflectCallback(null, { value: value });\n }\n });\n\n return _fn.apply(this, args);\n });\n}\n\n/**\n * A helper function that wraps an array or an object of functions with `reflect`.\n *\n * @name reflectAll\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.reflect]{@link module:Utils.reflect}\n * @category Util\n * @param {Array|Object|Iterable} tasks - The collection of\n * [async functions]{@link AsyncFunction} to wrap in `async.reflect`.\n * @returns {Array} Returns an array of async functions, each wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n *\n * // an example using an object instead of an array\n * let tasks = {\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * two: function(callback) {\n * callback('two');\n * },\n * three: function(callback) {\n * setTimeout(function() {\n * callback(null, 'three');\n * }, 100);\n * }\n * };\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results.one.value = 'one'\n * // results.two.error = 'two'\n * // results.three.value = 'three'\n * });\n */\nfunction reflectAll(tasks) {\n var results;\n if (isArray(tasks)) {\n results = arrayMap(tasks, reflect);\n } else {\n results = {};\n baseForOwn(tasks, function(task, key) {\n results[key] = reflect.call(this, task);\n });\n }\n return results;\n}\n\nfunction reject$1(eachfn, arr, iteratee, callback) {\n _filter(eachfn, arr, function(value, cb) {\n iteratee(value, function(err, v) {\n cb(err, !v);\n });\n }, callback);\n}\n\n/**\n * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n */\nvar reject = doParallel(reject$1);\n\n/**\n * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar rejectLimit = doParallelLimit(reject$1);\n\n/**\n * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar rejectSeries = doLimit(rejectLimit, 1);\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant$1(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @see [async.retryable]{@link module:ControlFlow.retryable}\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * `errorFilter` - An optional synchronous function that is invoked on\n * erroneous result. If it returns `true` the retry attempts will continue;\n * if the function returns `false` the retry flow is aborted with the current\n * attempt's error and result being returned to the final callback.\n * Invoked with (err).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {AsyncFunction} task - An async function to retry.\n * Invoked with (callback).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n *\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod only when error condition satisfies, all other\n * // errors will abort the retry control flow and return to final callback\n * async.retry({\n * errorFilter: function(err) {\n * return err.message === 'Temporary error'; // only retry on a specific error\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // to retry individual methods that are not as reliable within other\n * // control flow functions, use the `retryable` wrapper:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retryable(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n *\n */\nfunction retry(opts, task, callback) {\n var DEFAULT_TIMES = 5;\n var DEFAULT_INTERVAL = 0;\n\n var options = {\n times: DEFAULT_TIMES,\n intervalFunc: constant$1(DEFAULT_INTERVAL)\n };\n\n function parseTimes(acc, t) {\n if (typeof t === 'object') {\n acc.times = +t.times || DEFAULT_TIMES;\n\n acc.intervalFunc = typeof t.interval === 'function' ?\n t.interval :\n constant$1(+t.interval || DEFAULT_INTERVAL);\n\n acc.errorFilter = t.errorFilter;\n } else if (typeof t === 'number' || typeof t === 'string') {\n acc.times = +t || DEFAULT_TIMES;\n } else {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n }\n\n if (arguments.length < 3 && typeof opts === 'function') {\n callback = task || noop;\n task = opts;\n } else {\n parseTimes(options, opts);\n callback = callback || noop;\n }\n\n if (typeof task !== 'function') {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n\n var _task = wrapAsync(task);\n\n var attempt = 1;\n function retryAttempt() {\n _task(function(err) {\n if (err && attempt++ < options.times &&\n (typeof options.errorFilter != 'function' ||\n options.errorFilter(err))) {\n setTimeout(retryAttempt, options.intervalFunc(attempt));\n } else {\n callback.apply(null, arguments);\n }\n });\n }\n\n retryAttempt();\n}\n\n/**\n * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method\n * wraps a task and makes it retryable, rather than immediately calling it\n * with retries.\n *\n * @name retryable\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.retry]{@link module:ControlFlow.retry}\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {AsyncFunction} task - the asynchronous function to wrap.\n * This function will be passed any arguments passed to the returned wrapper.\n * Invoked with (...args, callback).\n * @returns {AsyncFunction} The wrapped function, which when invoked, will\n * retry on an error, based on the parameters specified in `opts`.\n * This function will accept the same parameters as `task`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n */\nvar retryable = function (opts, task) {\n if (!task) {\n task = opts;\n opts = null;\n }\n var _task = wrapAsync(task);\n return initialParams(function (args, callback) {\n function taskFn(cb) {\n _task.apply(null, args.concat(cb));\n }\n\n if (opts) retry(opts, taskFn, callback);\n else retry(taskFn, callback);\n\n });\n};\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n */\nfunction series(tasks, callback) {\n _parallel(eachOfSeries, tasks, callback);\n}\n\n/**\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf module:Collections\n * @method\n * @alias any\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n */\nvar some = doParallel(_createTester(Boolean, identity));\n\n/**\n * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anyLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nvar someLimit = doParallelLimit(_createTester(Boolean, identity));\n\n/**\n * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anySeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in series.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nvar someSeries = doLimit(someLimit, 1);\n\n/**\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a value to use as the sort criteria as\n * its `result`.\n * Invoked with (item, callback).\n * @param {Function} callback - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n */\nfunction sortBy (coll, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n map(coll, function (x, callback) {\n _iteratee(x, function (err, criteria) {\n if (err) return callback(err);\n callback(null, {value: x, criteria: criteria});\n });\n }, function (err, results) {\n if (err) return callback(err);\n callback(null, arrayMap(results.sort(comparator), baseProperty('value')));\n });\n\n function comparator(left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n }\n}\n\n/**\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} asyncFn - The async function to limit in time.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {AsyncFunction} Returns a wrapped function that can be used with any\n * of the control flow functions.\n * Invoke this function with the same parameters as you would `asyncFunc`.\n * @example\n *\n * function myFunction(foo, callback) {\n * doAsyncTask(foo, function(err, data) {\n * // handle errors\n * if (err) return callback(err);\n *\n * // do some stuff ...\n *\n * // return processed data\n * return callback(null, data);\n * });\n * }\n *\n * var wrapped = async.timeout(myFunction, 1000);\n *\n * // call `wrapped` as you would `myFunction`\n * wrapped({ bar: 'bar' }, function(err, data) {\n * // if `myFunction` takes < 1000 ms to execute, `err`\n * // and `data` will have their expected values\n *\n * // else `err` will be an Error with the code 'ETIMEDOUT'\n * });\n */\nfunction timeout(asyncFn, milliseconds, info) {\n var fn = wrapAsync(asyncFn);\n\n return initialParams(function (args, callback) {\n var timedOut = false;\n var timer;\n\n function timeoutCallback() {\n var name = asyncFn.name || 'anonymous';\n var error = new Error('Callback function \"' + name + '\" timed out.');\n error.code = 'ETIMEDOUT';\n if (info) {\n error.info = info;\n }\n timedOut = true;\n callback(error);\n }\n\n args.push(function () {\n if (!timedOut) {\n callback.apply(null, arguments);\n clearTimeout(timer);\n }\n });\n\n // setup timer and call original function\n timer = setTimeout(timeoutCallback, milliseconds);\n fn.apply(null, args);\n });\n}\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\nvar nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\n/**\n * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name timesLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see [async.map]{@link module:Collections.map}.\n */\nfunction timeLimit(count, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n mapLimit(baseRange(0, count, 1), limit, _iteratee, callback);\n}\n\n/**\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with [map]{@link module:Collections.map}.\n *\n * @name times\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n */\nvar times = doLimit(timeLimit, Infinity);\n\n/**\n * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n */\nvar timesSeries = doLimit(timeLimit, 1);\n\n/**\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n */\nfunction transform (coll, accumulator, iteratee, callback) {\n if (arguments.length <= 3) {\n callback = iteratee;\n iteratee = accumulator;\n accumulator = isArray(coll) ? [] : {};\n }\n callback = once(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n\n eachOf(coll, function(v, k, cb) {\n _iteratee(accumulator, v, k, cb);\n }, function(err) {\n callback(err, accumulator);\n });\n}\n\n/**\n * It runs each task in series but stops whenever any of the functions were\n * successful. If one of the tasks were successful, the `callback` will be\n * passed the result of the successful task. If all tasks fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name tryEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection containing functions to\n * run, each function is passed a `callback(err, result)` it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback which is called when one\n * of the tasks has succeeded, or all have failed. It receives the `err` and\n * `result` arguments of the last attempt at completing the `task`. Invoked with\n * (err, results).\n * @example\n * async.tryEach([\n * function getDataFromFirstWebsite(callback) {\n * // Try getting the data from the first website\n * callback(err, data);\n * },\n * function getDataFromSecondWebsite(callback) {\n * // First website failed,\n * // Try getting the data from the backup website\n * callback(err, data);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * Now do something with the data.\n * });\n *\n */\nfunction tryEach(tasks, callback) {\n var error = null;\n var result;\n callback = callback || noop;\n eachSeries(tasks, function(task, callback) {\n wrapAsync(task)(function (err, res/*, ...args*/) {\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n } else {\n result = res;\n }\n error = err;\n callback(!err);\n });\n }, function () {\n callback(error, result);\n });\n}\n\n/**\n * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.memoize]{@link module:Utils.memoize}\n * @category Util\n * @param {AsyncFunction} fn - the memoized function\n * @returns {AsyncFunction} a function that calls the original unmemoized function\n */\nfunction unmemoize(fn) {\n return function () {\n return (fn.unmemoized || fn).apply(null, arguments);\n };\n}\n\n/**\n * Repeatedly call `iteratee`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `iteratee`. Invoked with ().\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n */\nfunction whilst(test, iteratee, callback) {\n callback = onlyOnce(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n if (!test()) return callback(null);\n var next = function(err/*, ...args*/) {\n if (err) return callback(err);\n if (test()) return _iteratee(next);\n var args = slice(arguments, 1);\n callback.apply(null, [null].concat(args));\n };\n _iteratee(next);\n}\n\n/**\n * Repeatedly call `iteratee` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `iteratee`'s callback.\n *\n * The inverse of [whilst]{@link module:ControlFlow.whilst}.\n *\n * @name until\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `iteratee`. Invoked with ().\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n */\nfunction until(test, iteratee, callback) {\n whilst(function() {\n return !test.apply(this, arguments);\n }, iteratee, callback);\n}\n\n/**\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array of [async functions]{@link AsyncFunction}\n * to run.\n * Each function should complete with any number of `result` values.\n * The `result` values will be passed as arguments, in order, to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n */\nvar waterfall = function(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions'));\n if (!tasks.length) return callback();\n var taskIndex = 0;\n\n function nextTask(args) {\n var task = wrapAsync(tasks[taskIndex++]);\n args.push(onlyOnce(next));\n task.apply(null, args);\n }\n\n function next(err/*, ...args*/) {\n if (err || taskIndex === tasks.length) {\n return callback.apply(null, arguments);\n }\n nextTask(slice(arguments, 1));\n }\n\n nextTask([]);\n};\n\n/**\n * An \"async function\" in the context of Async is an asynchronous function with\n * a variable number of parameters, with the final parameter being a callback.\n * (`function (arg1, arg2, ..., callback) {}`)\n * The final callback is of the form `callback(err, results...)`, which must be\n * called once the function is completed. The callback should be called with a\n * Error as its first argument to signal that an error occurred.\n * Otherwise, if no error occurred, it should be called with `null` as the first\n * argument, and any additional `result` arguments that may apply, to signal\n * successful completion.\n * The callback must be called exactly once, ideally on a later tick of the\n * JavaScript event loop.\n *\n * This type of function is also referred to as a \"Node-style async function\",\n * or a \"continuation passing-style function\" (CPS). Most of the methods of this\n * library are themselves CPS/Node-style async functions, or functions that\n * return CPS/Node-style async functions.\n *\n * Wherever we accept a Node-style async function, we also directly accept an\n * [ES2017 `async` function]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function}.\n * In this case, the `async` function will not be passed a final callback\n * argument, and any thrown error will be used as the `err` argument of the\n * implicit callback, and the return value will be used as the `result` value.\n * (i.e. a `rejected` of the returned Promise becomes the `err` callback\n * argument, and a `resolved` value becomes the `result`.)\n *\n * Note, due to JavaScript limitations, we can only detect native `async`\n * functions and not transpilied implementations.\n * Your environment must have `async`/`await` support for this to work.\n * (e.g. Node > v7.6, or a recent version of a modern browser).\n * If you are using `async` functions through a transpiler (e.g. Babel), you\n * must still wrap the function with [asyncify]{@link module:Utils.asyncify},\n * because the `async function` will be compiled to an ordinary function that\n * returns a promise.\n *\n * @typedef {Function} AsyncFunction\n * @static\n */\n\n/**\n * Async is a utility module which provides straight-forward, powerful functions\n * for working with asynchronous JavaScript. Although originally designed for\n * use with [Node.js](http://nodejs.org) and installable via\n * `npm install --save async`, it can also be used directly in the browser.\n * @module async\n * @see AsyncFunction\n */\n\n\n/**\n * A collection of `async` functions for manipulating collections, such as\n * arrays and objects.\n * @module Collections\n */\n\n/**\n * A collection of `async` functions for controlling the flow through a script.\n * @module ControlFlow\n */\n\n/**\n * A collection of `async` utility functions.\n * @module Utils\n */\n\nvar index = {\n apply: apply,\n applyEach: applyEach,\n applyEachSeries: applyEachSeries,\n asyncify: asyncify,\n auto: auto,\n autoInject: autoInject,\n cargo: cargo,\n compose: compose,\n concat: concat,\n concatLimit: concatLimit,\n concatSeries: concatSeries,\n constant: constant,\n detect: detect,\n detectLimit: detectLimit,\n detectSeries: detectSeries,\n dir: dir,\n doDuring: doDuring,\n doUntil: doUntil,\n doWhilst: doWhilst,\n during: during,\n each: eachLimit,\n eachLimit: eachLimit$1,\n eachOf: eachOf,\n eachOfLimit: eachOfLimit,\n eachOfSeries: eachOfSeries,\n eachSeries: eachSeries,\n ensureAsync: ensureAsync,\n every: every,\n everyLimit: everyLimit,\n everySeries: everySeries,\n filter: filter,\n filterLimit: filterLimit,\n filterSeries: filterSeries,\n forever: forever,\n groupBy: groupBy,\n groupByLimit: groupByLimit,\n groupBySeries: groupBySeries,\n log: log,\n map: map,\n mapLimit: mapLimit,\n mapSeries: mapSeries,\n mapValues: mapValues,\n mapValuesLimit: mapValuesLimit,\n mapValuesSeries: mapValuesSeries,\n memoize: memoize,\n nextTick: nextTick,\n parallel: parallelLimit,\n parallelLimit: parallelLimit$1,\n priorityQueue: priorityQueue,\n queue: queue$1,\n race: race,\n reduce: reduce,\n reduceRight: reduceRight,\n reflect: reflect,\n reflectAll: reflectAll,\n reject: reject,\n rejectLimit: rejectLimit,\n rejectSeries: rejectSeries,\n retry: retry,\n retryable: retryable,\n seq: seq,\n series: series,\n setImmediate: setImmediate$1,\n some: some,\n someLimit: someLimit,\n someSeries: someSeries,\n sortBy: sortBy,\n timeout: timeout,\n times: times,\n timesLimit: timeLimit,\n timesSeries: timesSeries,\n transform: transform,\n tryEach: tryEach,\n unmemoize: unmemoize,\n until: until,\n waterfall: waterfall,\n whilst: whilst,\n\n // aliases\n all: every,\n allLimit: everyLimit,\n allSeries: everySeries,\n any: some,\n anyLimit: someLimit,\n anySeries: someSeries,\n find: detect,\n findLimit: detectLimit,\n findSeries: detectSeries,\n forEach: eachLimit,\n forEachSeries: eachSeries,\n forEachLimit: eachLimit$1,\n forEachOf: eachOf,\n forEachOfSeries: eachOfSeries,\n forEachOfLimit: eachOfLimit,\n inject: reduce,\n foldl: reduce,\n foldr: reduceRight,\n select: filter,\n selectLimit: filterLimit,\n selectSeries: filterSeries,\n wrapSync: asyncify\n};\n\nexports['default'] = index;\nexports.apply = apply;\nexports.applyEach = applyEach;\nexports.applyEachSeries = applyEachSeries;\nexports.asyncify = asyncify;\nexports.auto = auto;\nexports.autoInject = autoInject;\nexports.cargo = cargo;\nexports.compose = compose;\nexports.concat = concat;\nexports.concatLimit = concatLimit;\nexports.concatSeries = concatSeries;\nexports.constant = constant;\nexports.detect = detect;\nexports.detectLimit = detectLimit;\nexports.detectSeries = detectSeries;\nexports.dir = dir;\nexports.doDuring = doDuring;\nexports.doUntil = doUntil;\nexports.doWhilst = doWhilst;\nexports.during = during;\nexports.each = eachLimit;\nexports.eachLimit = eachLimit$1;\nexports.eachOf = eachOf;\nexports.eachOfLimit = eachOfLimit;\nexports.eachOfSeries = eachOfSeries;\nexports.eachSeries = eachSeries;\nexports.ensureAsync = ensureAsync;\nexports.every = every;\nexports.everyLimit = everyLimit;\nexports.everySeries = everySeries;\nexports.filter = filter;\nexports.filterLimit = filterLimit;\nexports.filterSeries = filterSeries;\nexports.forever = forever;\nexports.groupBy = groupBy;\nexports.groupByLimit = groupByLimit;\nexports.groupBySeries = groupBySeries;\nexports.log = log;\nexports.map = map;\nexports.mapLimit = mapLimit;\nexports.mapSeries = mapSeries;\nexports.mapValues = mapValues;\nexports.mapValuesLimit = mapValuesLimit;\nexports.mapValuesSeries = mapValuesSeries;\nexports.memoize = memoize;\nexports.nextTick = nextTick;\nexports.parallel = parallelLimit;\nexports.parallelLimit = parallelLimit$1;\nexports.priorityQueue = priorityQueue;\nexports.queue = queue$1;\nexports.race = race;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reflect = reflect;\nexports.reflectAll = reflectAll;\nexports.reject = reject;\nexports.rejectLimit = rejectLimit;\nexports.rejectSeries = rejectSeries;\nexports.retry = retry;\nexports.retryable = retryable;\nexports.seq = seq;\nexports.series = series;\nexports.setImmediate = setImmediate$1;\nexports.some = some;\nexports.someLimit = someLimit;\nexports.someSeries = someSeries;\nexports.sortBy = sortBy;\nexports.timeout = timeout;\nexports.times = times;\nexports.timesLimit = timeLimit;\nexports.timesSeries = timesSeries;\nexports.transform = transform;\nexports.tryEach = tryEach;\nexports.unmemoize = unmemoize;\nexports.until = until;\nexports.waterfall = waterfall;\nexports.whilst = whilst;\nexports.all = every;\nexports.allLimit = everyLimit;\nexports.allSeries = everySeries;\nexports.any = some;\nexports.anyLimit = someLimit;\nexports.anySeries = someSeries;\nexports.find = detect;\nexports.findLimit = detectLimit;\nexports.findSeries = detectSeries;\nexports.forEach = eachLimit;\nexports.forEachSeries = eachSeries;\nexports.forEachLimit = eachLimit$1;\nexports.forEachOf = eachOf;\nexports.forEachOfSeries = eachOfSeries;\nexports.forEachOfLimit = eachOfLimit;\nexports.inject = reduce;\nexports.foldl = reduce;\nexports.foldr = reduceRight;\nexports.select = filter;\nexports.selectLimit = filterLimit;\nexports.selectSeries = filterSeries;\nexports.wrapSync = asyncify;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/async/dist/async.js\n// module id = 307\n// module chunks = 0","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/timers-browserify/main.js\n// module id = 308\n// module chunks = 0","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/setimmediate/setImmediate.js\n// module id = 309\n// module chunks = 0","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function () {\n\t// the only reliable means to get the global object is\n\t// `Function('return this')()`\n\t// However, this causes CSP violations in Chrome apps.\n\tif (typeof self !== 'undefined') { return self; }\n\tif (typeof window !== 'undefined') { return window; }\n\tif (typeof global !== 'undefined') { return global; }\n\tthrow new Error('unable to locate global object');\n}\n\nvar global = getGlobal();\n\nmodule.exports = exports = global.fetch;\n\n// Needed for TypeScript and Webpack.\nexports.default = global.fetch.bind(global);\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-fetch/browser.js\n// module id = 310\n// module chunks = 0","var moment = require('moment');\nvar $ = require('jquery');\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.hstri = factory());\n}(this, (function () { 'use strict';\n\nvar queryMichelangelo = function (opts, ajax) {\n var data = buildQuery({\n timeFrame: opts.timeFrame,\n start: opts.start,\n end: opts.end,\n series: opts.instrument,\n frequency: opts.frequency,\n entitlementToken: opts.entitlementToken,\n volume: opts.volume\n });\n var promise = sendQuery(data, ajax).fail(function (err) {\n if (err.responseJSON && err.responseJSON.Message) {\n throw 'Message from API: ' + err.responseJSON.Message;\n }\n throw err.statusText;\n });\n\n if (opts.raw !== true) {\n promise = promise.then(extractValues).then(combineValues).then(extractMetadata).fail(function (err) {\n console.error(err);\n throw 'Error parsing data';\n });\n\n // .then(fillBlanks);\n }\n\n if (opts.callback) {\n promise.done(opts.callback);\n }\n\n return promise;\n};\n\nfunction extractValues(data) {\n return data.Series.map(function (d, i) {\n return {\n points: d.DataPoints.map(function (p, j) {\n var points = {};\n d.DesiredDataPoints.forEach(function (dataPointType, k) {\n points[dataPointType] = p[k];\n });\n return points;\n }),\n ticks: data.TimeInfo.Ticks,\n raw: data\n };\n });\n}\n\nfunction combineValues(data) {\n return data.map(function (d, i) {\n var combined = d.points.map(function (p, j) {\n p.date = d.ticks[j];\n return p;\n });\n d.data = combined.map(function (p) {\n return [p.date, p.Last ? p.Last : p.Volume];\n });\n d.fullData = combined;\n return d;\n });\n}\n\nfunction extractMetadata(data) {\n return data.map(function (d, i) {\n var raw = d.raw.Series[i];\n d.ticker = raw.Ticker;\n d.name = raw.CommonName;\n return d;\n });\n}\n\n/*\nopts:\n- start (date)\n- end (date)\n- series (array of instrument keys)\n*/\nfunction buildQuery(opts) {\n var series = opts.series.map(function (symbol) {\n var props = {\n \"Key\": symbol,\n \"Dialect\": \"Charting\",\n \"Kind\": \"Ticker\",\n \"SeriesId\": \"s1\",\n \"DataTypes\": [\"Open\", \"High\", \"Low\", \"Last\", \"PercentChange\"]\n };\n if (opts.volume) {\n props[\"Indicators\"] = [{ \"Parameters\": [], \"Kind\": \"Volume\", \"SeriesId\": \"i2\" }];\n }\n return props;\n });\n return {\n \"Series\": series,\n \"StartDate\": opts.start ? opts.start.valueOf() : null,\n \"EndDate\": opts.end ? opts.end.valueOf() : null,\n \"Step\": opts.frequency,\n // \"TimeFrame\":\"D1\",\n \"EntitlementToken\": opts.entitlementToken,\n \"IncludeMockTick\": true,\n \"FilterNullSlots\": true,\n \"FilterClosedPoints\": true,\n \"IncludeClosedSlots\": false,\n \"IncludeOfficialClose\": true,\n \"InjectOpen\": false,\n \"ShowPreMarket\": false,\n \"ShowAfterHours\": false,\n \"UseExtendedTimeFrame\": true,\n \"WantPriorClose\": true,\n \"IncludeCurrentQuotes\": true,\n \"ResetTodaysAfterHoursPercentChange\": false,\n \"TimeFrame\": opts.timeFrame\n };\n}\n\nfunction sendQuery(data, ajax) {\n var request = ajax({\n url: \"https://api.wsj.net/api/michelangelo/timeseries/history?ckey=\" + data.EntitlementToken.slice(0, 10),\n type: \"POST\",\n dataType: \"json\",\n data: JSON.stringify(data),\n beforeSend: function beforeSend(request) {\n request.setRequestHeader(\"Dylan2010.EntitlementToken\", data.EntitlementToken);\n request.setRequestHeader(\"Content-Type\", \"application/json; charset=UTF-8\");\n }\n });\n return request;\n}\n\nvar queryDylan = function (opts, ajax) {\n\n var query = buildQuery(opts);\n var url = 'https://api.wsj.net/api/dylan/dataseries/v2/pricing?id=' + query + '&ckey=57494d5ed7&Dylan2010.EntitlementToken=57494d5ed7ad44af85bc59a51dd87c90&json=true';\n\n var promise = ajax({\n url: url,\n type: \"GET\",\n crossDomain: true,\n headers: {\n \"Accept\": \"application/json\",\n \"Dylan2010.EntitlementToken\": '57494d5ed7ad44af85bc59a51dd87c90'\n },\n dataType: 'json'\n }).fail(function (err) {\n console.error(err);\n if (typeof $ !== 'undefined') {\n var message = $(err.responseText).find('p:eq(1)').text().split(\"'\")[1];\n throw 'Message from API: ' + message;\n } else {\n throw err.responseText;\n }\n });\n\n if (opts.raw !== true) {\n promise = promise.then(extractValues).then(processValues).then(extractMetadata$1).fail(function (err) {\n console.error(err);\n throw 'Problem parsing data';\n });\n }\n\n if (opts.callback) {\n promise.done(opts.callback);\n }\n\n return promise;\n\n function extractValues(d) {\n var metadata = d.GetDataSeriesResponse.DataSeriesResponses[0].SeriesMatches[0];\n var values = metadata.DataPoints;\n if (values.length === 0) {\n throw 'Live data is empty.';\n }\n return { metadata: metadata, values: values };\n }\n\n function processValues(_ref) {\n var metadata = _ref.metadata,\n values = _ref.values;\n\n var processed = values.map(function (d, i) {\n var date = Date.parse(d.Trading.Last.Time);\n var value = d.Trading.Last.Price.Value;\n return [date, value];\n });\n return [{\n raw: metadata,\n data: processed\n }];\n }\n\n function buildQuery(opts) {\n /*\n Instruments --> comma separated list of instruments to request formated as follows \n Ticker|CountryCode|ExchangeIsoCode|InstrumentType\n \n Needed --> pipe separated list of what you want returned possibilities\n AfterHoursTrading, BeforeHourseTrading, Financials, FinancialStatusIndicator, Offers, Trading, TradingStatistics, RealtimeTrading, RealtimeBeforeHoursTrading, RealTimeAfterHoursTrading, CompositeTrading, CompositeBeforeHoursTrading, CompositeAfterHoursTrading, IndustryClassification, BluegrassChannels, TimeZoneInfo, BondSpecific, CurrencySpecific)\n */\n\n var query = '';\n\n query += opts.instrument[0] + '|'; // Ticker|CountryCode|ExchangeIsoCode|InstrumentType\n query += opts.start.format('YYYY-MM-DD[T]HH:mm:ss') + '|';\n query += opts.end.format('YYYY-MM-DD[T]HH:mm:ss') + '|';\n query += opts.frequency + '||True';\n\n return query;\n\n // EURUSD|US||Currency|'+range[0]+ '|' +range[1] + '|PT1M||True\n }\n};\n\nfunction extractMetadata$1(data) {\n var raw = data[0].raw.Instrument;\n data[0].name = raw.CommonName;\n data[0].ticker = raw.Ticker;\n return data;\n}\n\nvar fillBlanksWith = function (_ref, moment) {\n var frequency = _ref.frequency,\n fillBlanksWithPrevious = _ref.fillBlanksWithPrevious,\n start = _ref.start,\n end = _ref.end;\n\n return function (arr) {\n var precisions = {\n P1D: 'day',\n P1Y: 'year',\n P1W: 'week',\n PT1M: 'minute',\n PT1H: 'hour'\n };\n var intervals = {};\n Object.keys(precisions).forEach(function (k) {\n intervals[k] = moment() - moment().subtract(1, precisions[k]);\n });\n var interval = intervals[frequency];\n\n arr.forEach(function (instr) {\n\n var data = JSON.parse(JSON.stringify(instr.data));\n var lengthOfTime = end - start;\n var expectedNumberOfTicks = lengthOfTime / interval;\n var expectedTicks = [];\n for (var i = 0; i < expectedNumberOfTicks; i++) {\n expectedTicks.push([start + interval * i, null]);\n }\n\n var fullTicks = [].concat(data, expectedTicks);\n fullTicks.sort(function (a, b) {\n return a[0] - b[0];\n });\n fullTicks.forEach(function (d) {\n d[0] = moment.utc(d[0]).startOf(precisions[frequency]).valueOf();\n });\n var uniqueTicks = fullTicks.reduce(function (accum, curr, i) {\n var existingIndex = -1;\n var existing = accum.filter(function (d, i) {\n if (d[0] === curr[0]) {\n existingIndex = i;\n }\n return d[0] === curr[0];\n });\n if (existing.length === 0) {\n accum.push([curr[0], curr[1]]);\n } else if (existingIndex > -1 && existing[0][1] === null) {\n accum[existingIndex] = curr;\n }\n return accum;\n }, []);\n\n var fillWithPreviousValue = createFillerBackTo(instr.ticks[instr.ticks.length - 1]);\n if (fillBlanksWithPrevious) {\n uniqueTicks = uniqueTicks.map(fillWithPreviousValue);\n }\n\n instr.data = uniqueTicks;\n instr.ticks = uniqueTicks.map(function (d) {\n return d[0];\n });\n instr.points = uniqueTicks.map(function (d) {\n return d[1];\n });\n });\n\n return arr;\n };\n\n function createFillerBackTo(d) {\n var date = moment(d);\n return function (d, i, arr) {\n var notFirst = i > 0;\n var isNull = d[1] === null;\n var inPast = moment.utc(d[0]).isBefore(date);\n if (notFirst && isNull && inPast) {\n d[1] = arr[i - 1][1];\n }\n return d;\n };\n }\n};\n\nvar hstri$2 = function hstri$2(opts, deps) {\n\n opts = processOpts(opts, deps.moment);\n\n var promise = void 0;\n\n if (opts.service === 'dylan') {\n promise = queryDylan(opts, deps.ajax);\n } else {\n promise = queryMichelangelo(opts, deps.ajax);\n }\n\n if (opts.fillBlanks || opts.fillBlanksWithPrevious) {\n var fillBlanks = fillBlanksWith(opts, deps.moment);\n promise = promise.then(fillBlanks);\n }\n\n if (opts.raw !== true) {\n promise = promise.then(addSource(opts));\n }\n\n return promise;\n};\n\nfunction validateFrequency(frequency) {\n // regex from moment.js\n // https://github.com/moment/moment/blob/develop/src/lib/duration/create.js#L14\n var isoRegex = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;\n var match = frequency.match(isoRegex);\n if (match === null || !frequency) {\n throw '\"' + frequency + '\" option is not valid. Here are some example time codes:\\\nP1D | daily\\\nP1Y | yearly\\\nP1W | weekly\\\nPT1M | every minute\\\nPT1H | every hour\\\n';\n }\n}\n\nfunction processOpts(opts, moment) {\n var checkDate = createDateChecker(moment);\n var roundToNearestMinute = createMinuteRounder(moment);\n\n if (!opts.instrument) {\n throw 'No symbol specified';\n }\n if (Array.isArray(opts.instrument) === false) {\n opts.instrument = [opts.instrument];\n }\n if (opts.timeFrame === 'custom' || !opts.timeFrame) {\n if (!opts.start) {\n throw 'Must specify start date or time frame code';\n } else {\n checkDate(opts.start, 'Start date');\n }\n if (opts.end) {\n checkDate(opts.end, 'End date');\n } else {\n opts.end = moment();\n }\n\n if (opts.start.isSame(opts.end)) {\n if (opts.start.format('HH:mm:ss') === '00:00:00') {\n // if both dates are midnight, assume user wants that full day\n opts.end.endOf('day');\n } else {\n throw 'Start and end dates are exactly the same day and time.';\n }\n }\n\n opts.start = roundToNearestMinute(opts.start);\n opts.end = roundToNearestMinute(opts.end, true);\n opts.timeFrame = 'custom';\n } else {\n opts.start = '';\n opts.end = '';\n }\n validateFrequency(opts.frequency);\n\n opts.entitlementToken = opts.entitlementToken || '57494d5ed7ad44af85bc59a51dd87c90';\n\n return opts;\n}\n\nfunction createDateChecker(moment) {\n return function checkDate(date, name) {\n if (date instanceof moment === false) {\n throw name + ' is not a Moment.js date object. It also needs a timezone explicitly set using the Moment Timezone plugin. Downloads and documentation here: http://momentjs.com/timezone/';\n return false;\n }\n if (date.tz() === undefined) {\n throw name + ' needs a timezone explicitly set using the Moment Timezone plugin. Downloads and documentation here: http://momentjs.com/timezone/';\n return false;\n }\n return true;\n };\n}\n\nfunction createMinuteRounder(moment) {\n return function roundToNearestMinute(date) {\n var roundUp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var roundToNearest = 60000; // 1 minutes\n if (roundUp) {\n return moment(Math.ceil(date / roundToNearest) * roundToNearest);\n }\n return moment(Math.floor(date / roundToNearest) * roundToNearest);\n };\n}\n\nfunction addSource(opts) {\n return function (data) {\n data.forEach(function (d) {\n d.source = {\n entitlementToken: opts.entitlementToken\n };\n });\n return data;\n };\n}\n\n// NOTE: this.moment is set in the entry script\n\nfunction log(data) {\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'json';\n\n var fmt = format.toLowerCase();\n var output = '';\n\n console.log(this);\n\n if (fmt === 'raw') {\n output = JSON.stringify(data);\n } else if (fmt === 'csv') {\n console.log(arrayToCSV(data.data, this.moment));\n } else {\n output = JSON.stringify(data.data);\n }\n console.log(output);\n return output;\n}\n\nfunction arrayToCSV(data, moment) {\n var newArr = data.map(function (d, i) {\n d[0] = moment.tz(d[0], 'America/New_York').format('DD-MM-YY HH:mm:ss');\n return d.join(\",\");\n });\n newArr.unshift('date,value');\n return newArr.join(\"\\n\");\n}\n\n/*\nTODO: check moment-timezone and jQuery are present\n*/\n\nvar hstri = function hstri(opts) {\n return hstri$2(opts, {\n moment: moment,\n ajax: $.ajax\n });\n};\nhstri.moment = moment;\nhstri.log = log;\n\nreturn hstri;\n\n})));\n//# sourceMappingURL=hstri.js.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/hstri/hstri.js\n// module id = 311\n// module chunks = 0","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tif ( typeof props.top === \"number\" ) {\n\t\t\t\tprops.top += \"px\";\n\t\t\t}\n\t\t\tif ( typeof props.left === \"number\" ) {\n\t\t\t\tprops.left += \"px\";\n\t\t\t}\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t} );\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jquery/dist/jquery.js\n// module id = 312\n// module chunks = 0","/*\n Highcharts JS v8.1.0 (2020-05-05)\n\n Annotations module\n\n (c) 2009-2019 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(c){\"object\"===typeof module&&module.exports?(c[\"default\"]=c,module.exports=c):\"function\"===typeof define&&define.amd?define(\"highcharts/modules/annotations\",[\"highcharts\"],function(p){c(p);c.Highcharts=p;return c}):c(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(c){function p(c,a,m,t){c.hasOwnProperty(a)||(c[a]=t.apply(null,m))}c=c?c._modules:{};p(c,\"annotations/eventEmitterMixin.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"]],function(c,a){var k=a.addEvent,t=a.fireEvent,\nf=a.inArray,d=a.objectEach,B=a.pick,r=a.removeEvent;return{addEvents:function(){var b=this,g=function(g){k(g,\"mousedown\",function(e){b.onMouseDown(e)})};g(this.graphic.element);(b.labels||[]).forEach(function(b){b.options.useHTML&&b.graphic.text&&g(b.graphic.text.element)});d(b.options.events,function(g,e){var h=function(h){\"click\"===e&&b.cancelClick||g.call(b,b.chart.pointer.normalize(h),b.target)};if(-1===f(e,b.nonDOMEvents||[]))b.graphic.on(e,h);else k(b,e,h)});if(b.options.draggable&&(k(b,\"drag\",\nb.onDrag),!b.graphic.renderer.styledMode)){var a={cursor:{x:\"ew-resize\",y:\"ns-resize\",xy:\"move\"}[b.options.draggable]};b.graphic.css(a);(b.labels||[]).forEach(function(b){b.options.useHTML&&b.graphic.text&&b.graphic.text.css(a)})}b.isUpdating||t(b,\"add\")},removeDocEvents:function(){this.removeDrag&&(this.removeDrag=this.removeDrag());this.removeMouseUp&&(this.removeMouseUp=this.removeMouseUp())},onMouseDown:function(b){var g=this,d=g.chart.pointer;b.preventDefault&&b.preventDefault();if(2!==b.button){b=\nd.normalize(b);var a=b.chartX;var e=b.chartY;g.cancelClick=!1;g.chart.hasDraggedAnnotation=!0;g.removeDrag=k(c.doc,\"mousemove\",function(b){g.hasDragged=!0;b=d.normalize(b);b.prevChartX=a;b.prevChartY=e;t(g,\"drag\",b);a=b.chartX;e=b.chartY});g.removeMouseUp=k(c.doc,\"mouseup\",function(b){g.cancelClick=g.hasDragged;g.hasDragged=!1;g.chart.hasDraggedAnnotation=!1;t(B(g.target,g),\"afterUpdate\");g.onMouseUp(b)})}},onMouseUp:function(b){var g=this.chart;b=this.target||this;var d=g.options.annotations;g=g.annotations.indexOf(b);\nthis.removeDocEvents();d[g]=b.options},onDrag:function(b){if(this.chart.isInsidePlot(b.chartX-this.chart.plotLeft,b.chartY-this.chart.plotTop)){var g=this.mouseMoveToTranslation(b);\"x\"===this.options.draggable&&(g.y=0);\"y\"===this.options.draggable&&(g.x=0);this.points.length?this.translate(g.x,g.y):(this.shapes.forEach(function(b){b.translate(g.x,g.y)}),this.labels.forEach(function(b){b.translate(g.x,g.y)}));this.redraw(!1)}},mouseMoveToRadians:function(b,g,d){var a=b.prevChartY-d,e=b.prevChartX-\ng;d=b.chartY-d;b=b.chartX-g;this.chart.inverted&&(g=e,e=a,a=g,g=b,b=d,d=g);return Math.atan2(d,b)-Math.atan2(a,e)},mouseMoveToTranslation:function(b){var g=b.chartX-b.prevChartX;b=b.chartY-b.prevChartY;if(this.chart.inverted){var d=b;b=g;g=d}return{x:g,y:b}},mouseMoveToScale:function(b,g,d){g=(b.chartX-g||1)/(b.prevChartX-g||1);b=(b.chartY-d||1)/(b.prevChartY-d||1);this.chart.inverted&&(d=b,b=g,g=d);return{x:g,y:b}},destroy:function(){this.removeDocEvents();r(this);this.hcEvents=null}}});p(c,\"annotations/ControlPoint.js\",\n[c[\"parts/Utilities.js\"],c[\"annotations/eventEmitterMixin.js\"]],function(c,a){var k=c.merge,t=c.pick;return function(){function f(d,f,c,b){this.addEvents=a.addEvents;this.graphic=void 0;this.mouseMoveToRadians=a.mouseMoveToRadians;this.mouseMoveToScale=a.mouseMoveToScale;this.mouseMoveToTranslation=a.mouseMoveToTranslation;this.onDrag=a.onDrag;this.onMouseDown=a.onMouseDown;this.onMouseUp=a.onMouseUp;this.removeDocEvents=a.removeDocEvents;this.nonDOMEvents=[\"drag\"];this.chart=d;this.target=f;this.options=\nc;this.index=t(c.index,b)}f.prototype.setVisibility=function(d){this.graphic.attr(\"visibility\",d?\"visible\":\"hidden\");this.options.visible=d};f.prototype.render=function(){var d=this.chart,a=this.options;this.graphic=d.renderer.symbol(a.symbol,0,0,a.width,a.height).add(d.controlPointsGroup).css(a.style);this.setVisibility(a.visible);this.addEvents()};f.prototype.redraw=function(d){this.graphic[d?\"animate\":\"attr\"](this.options.positioner.call(this,this.target))};f.prototype.destroy=function(){a.destroy.call(this);\nthis.graphic&&(this.graphic=this.graphic.destroy());this.options=this.target=this.chart=null};f.prototype.update=function(d){var a=this.chart,f=this.target,b=this.index;d=k(!0,this.options,d);this.destroy();this.constructor(a,f,d,b);this.render(a.controlPointsGroup);this.redraw()};return f}()});p(c,\"annotations/MockPoint.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"]],function(c,a){var k=a.defined,t=a.fireEvent;return function(){function a(d,a,f){this.y=this.x=this.plotY=this.plotX=this.isInside=\nvoid 0;this.mock=!0;this.series={visible:!0,chart:d,getPlotBox:c.Series.prototype.getPlotBox};this.target=a||null;this.options=f;this.applyOptions(this.getOptions())}a.fromPoint=function(d){return new a(d.series.chart,null,{x:d.x,y:d.y,xAxis:d.series.xAxis,yAxis:d.series.yAxis})};a.pointToPixels=function(d,a){var c=d.series,b=c.chart,g=d.plotX,f=d.plotY;b.inverted&&(d.mock?(g=d.plotY,f=d.plotX):(g=b.plotWidth-d.plotY,f=b.plotHeight-d.plotX));c&&!a&&(d=c.getPlotBox(),g+=d.translateX,f+=d.translateY);\nreturn{x:g,y:f}};a.pointToOptions=function(d){return{x:d.x,y:d.y,xAxis:d.series.xAxis,yAxis:d.series.yAxis}};a.prototype.hasDynamicOptions=function(){return\"function\"===typeof this.options};a.prototype.getOptions=function(){return this.hasDynamicOptions()?this.options(this.target):this.options};a.prototype.applyOptions=function(d){this.command=d.command;this.setAxis(d,\"x\");this.setAxis(d,\"y\");this.refresh()};a.prototype.setAxis=function(d,a){a+=\"Axis\";d=d[a];var f=this.series.chart;this.series[a]=\nd instanceof c.Axis?d:k(d)?f[a][d]||f.get(d):null};a.prototype.toAnchor=function(){var a=[this.plotX,this.plotY,0,0];this.series.chart.inverted&&(a[0]=this.plotY,a[1]=this.plotX);return a};a.prototype.getLabelConfig=function(){return{x:this.x,y:this.y,point:this}};a.prototype.isInsidePlot=function(){var a=this.plotX,c=this.plotY,f=this.series.xAxis,b=this.series.yAxis,g={x:a,y:c,isInsidePlot:!0};f&&(g.isInsidePlot=k(a)&&0<=a&&a<=f.len);b&&(g.isInsidePlot=g.isInsidePlot&&k(c)&&0<=c&&c<=b.len);t(this.series.chart,\n\"afterIsInsidePlot\",g);return g.isInsidePlot};a.prototype.refresh=function(){var a=this.series,c=a.xAxis;a=a.yAxis;var f=this.getOptions();c?(this.x=f.x,this.plotX=c.toPixels(f.x,!0)):(this.x=null,this.plotX=f.x);a?(this.y=f.y,this.plotY=a.toPixels(f.y,!0)):(this.y=null,this.plotY=f.y);this.isInside=this.isInsidePlot()};a.prototype.translate=function(a,f,c,b){this.hasDynamicOptions()||(this.plotX+=c,this.plotY+=b,this.refreshOptions())};a.prototype.scale=function(a,c,f,b){if(!this.hasDynamicOptions()){var g=\nthis.plotY*b;this.plotX=(1-f)*a+this.plotX*f;this.plotY=(1-b)*c+g;this.refreshOptions()}};a.prototype.rotate=function(a,f,c){if(!this.hasDynamicOptions()){var b=Math.cos(c);c=Math.sin(c);var g=this.plotX,d=this.plotY;g-=a;d-=f;this.plotX=g*b-d*c+a;this.plotY=g*c+d*b+f;this.refreshOptions()}};a.prototype.refreshOptions=function(){var a=this.series,c=a.xAxis;a=a.yAxis;this.x=this.options.x=c?this.options.x=c.toValue(this.plotX,!0):this.plotX;this.y=this.options.y=a?a.toValue(this.plotY,!0):this.plotY};\nreturn a}()});p(c,\"annotations/controllable/controllableMixin.js\",[c[\"parts/Utilities.js\"],c[\"annotations/ControlPoint.js\"],c[\"annotations/MockPoint.js\"],c[\"parts/Tooltip.js\"]],function(c,a,m,t){var f=c.isObject,d=c.isString,k=c.merge,r=c.splat;return{init:function(b,a,c){this.annotation=b;this.chart=b.chart;this.options=a;this.points=[];this.controlPoints=[];this.index=c;this.linkPoints();this.addControlPoints()},attr:function(){this.graphic.attr.apply(this.graphic,arguments)},getPointsOptions:function(){var b=\nthis.options;return b.points||b.point&&r(b.point)},attrsFromOptions:function(b){var a=this.constructor.attrsMap,c={},d,e=this.chart.styledMode;for(d in b){var h=a[d];!h||e&&-1!==[\"fill\",\"stroke\",\"stroke-width\"].indexOf(h)||(c[h]=b[d])}return c},anchor:function(b){var a=b.series.getPlotBox();b=b.mock?b.toAnchor():t.prototype.getAnchor.call({chart:b.series.chart},b);b={x:b[0]+(this.options.x||0),y:b[1]+(this.options.y||0),height:b[2]||0,width:b[3]||0};return{relativePosition:b,absolutePosition:k(b,\n{x:b.x+a.translateX,y:b.y+a.translateY})}},point:function(b,a){if(b&&b.series)return b;a&&null!==a.series||(f(b)?a=new m(this.chart,this,b):d(b)?a=this.chart.get(b)||null:\"function\"===typeof b&&(a=b.call(a,this),a=a.series?a:new m(this.chart,this,b)));return a},linkPoints:function(){var b=this.getPointsOptions(),a=this.points,c=b&&b.length||0,d;for(d=0;d<c;d++){var e=this.point(b[d],a[d]);if(!e){a.length=0;return}e.mock&&e.refresh();a[d]=e}return a},addControlPoints:function(){var b=this.options.controlPoints;\n(b||[]).forEach(function(g,d){g=k(this.options.controlPointOptions,g);g.index||(g.index=d);b[d]=g;this.controlPoints.push(new a(this.chart,this,g))},this)},shouldBeDrawn:function(){return!!this.points.length},render:function(b){this.controlPoints.forEach(function(b){b.render()})},redraw:function(b){this.controlPoints.forEach(function(a){a.redraw(b)})},transform:function(b,a,d,c,e){if(this.chart.inverted){var h=a;a=d;d=h}this.points.forEach(function(h,g){this.transformPoint(b,a,d,c,e,g)},this)},transformPoint:function(b,\na,d,c,e,h){var l=this.points[h];l.mock||(l=this.points[h]=m.fromPoint(l));l[b](a,d,c,e)},translate:function(b,a){this.transform(\"translate\",null,null,b,a)},translatePoint:function(b,a,d){this.transformPoint(\"translate\",null,null,b,a,d)},translateShape:function(b,a){var d=this.annotation.chart,c=this.annotation.userOptions,e=d.annotations.indexOf(this.annotation);d=d.options.annotations[e];this.translatePoint(b,a,0);d[this.collection][this.index].point=this.options.point;c[this.collection][this.index].point=\nthis.options.point},rotate:function(b,a,d){this.transform(\"rotate\",b,a,d)},scale:function(b,a,d,c){this.transform(\"scale\",b,a,d,c)},setControlPointsVisibility:function(b){this.controlPoints.forEach(function(a){a.setVisibility(b)})},destroy:function(){this.graphic&&(this.graphic=this.graphic.destroy());this.tracker&&(this.tracker=this.tracker.destroy());this.controlPoints.forEach(function(b){b.destroy()});this.options=this.controlPoints=this.points=this.chart=null;this.annotation&&(this.annotation=\nnull)},update:function(b){var a=this.annotation;b=k(!0,this.options,b);var d=this.graphic.parentGroup;this.destroy();this.constructor(a,b);this.render(d);this.redraw()}}});p(c,\"annotations/controllable/markerMixin.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"]],function(c,a){var k=a.addEvent,t=a.defined,f=a.merge,d=a.objectEach,B=a.uniqueKey,r={arrow:{tagName:\"marker\",render:!1,id:\"arrow\",refY:5,refX:9,markerWidth:10,markerHeight:10,children:[{tagName:\"path\",d:\"M 0 0 L 10 5 L 0 10 Z\",strokeWidth:0}]},\n\"reverse-arrow\":{tagName:\"marker\",render:!1,id:\"reverse-arrow\",refY:5,refX:1,markerWidth:10,markerHeight:10,children:[{tagName:\"path\",d:\"M 0 5 L 10 0 L 10 10 Z\",strokeWidth:0}]}};c.SVGRenderer.prototype.addMarker=function(b,a){var d={id:b},c={stroke:a.color||\"none\",fill:a.color||\"rgba(0, 0, 0, 0.75)\"};d.children=a.children.map(function(a){return f(c,a)});a=this.definition(f(!0,{markerWidth:20,markerHeight:20,refX:0,refY:0,orient:\"auto\"},a,d));a.id=b;return a};a=function(a){return function(b){this.attr(a,\n\"url(#\"+b+\")\")}};a={markerEndSetter:a(\"marker-end\"),markerStartSetter:a(\"marker-start\"),setItemMarkers:function(a){var b=a.options,d=a.chart,c=d.options.defs,e=b.fill,h=t(e)&&\"none\"!==e?e:b.stroke;[\"markerStart\",\"markerEnd\"].forEach(function(e){var l=b[e],g;if(l){for(g in c){var v=c[g];if(l===v.id&&\"marker\"===v.tagName){var n=v;break}}n&&(l=a[e]=d.renderer.addMarker((b.id||B())+\"-\"+n.id,f(n,{color:h})),a.attr(e,l.attr(\"id\")))}})}};k(c.Chart,\"afterGetContainer\",function(){this.options.defs=f(r,this.options.defs||\n{});d(this.options.defs,function(a){\"marker\"===a.tagName&&!1!==a.render&&this.renderer.addMarker(a.id,a)},this)});return a});p(c,\"annotations/controllable/ControllablePath.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/markerMixin.js\"]],function(c,a,m,t){var f=a.extend;a=a.merge;var d=\"rgba(192,192,192,\"+(c.svg?.0001:.002)+\")\";c=function(a,d,b){this.init(a,d,b);this.collection=\"shapes\"};c.attrsMap={dashStyle:\"dashstyle\",\nstrokeWidth:\"stroke-width\",stroke:\"stroke\",fill:\"fill\",zIndex:\"zIndex\"};a(!0,c.prototype,m,{type:\"path\",setMarkers:t.setItemMarkers,toD:function(){var a=this.options.d;if(a)return\"function\"===typeof a?a.call(this):a;a=this.points;var d=a.length,b=d,c=a[0],f=b&&this.anchor(c).absolutePosition,x=0,e=[];if(f)for(e.push([\"M\",f.x,f.y]);++x<d&&b;)c=a[x],b=c.command||\"L\",f=this.anchor(c).absolutePosition,\"M\"===b?e.push([b,f.x,f.y]):\"L\"===b?e.push([b,f.x,f.y]):\"Z\"===b&&e.push([b]),b=c.series.visible;return b?\nthis.chart.renderer.crispLine(e,this.graphic.strokeWidth()):null},shouldBeDrawn:function(){return m.shouldBeDrawn.call(this)||!!this.options.d},render:function(a){var c=this.options,b=this.attrsFromOptions(c);this.graphic=this.annotation.chart.renderer.path([[\"M\",0,0]]).attr(b).add(a);c.className&&this.graphic.addClass(c.className);this.tracker=this.annotation.chart.renderer.path([[\"M\",0,0]]).addClass(\"highcharts-tracker-line\").attr({zIndex:2}).add(a);this.annotation.chart.styledMode||this.tracker.attr({\"stroke-linejoin\":\"round\",\nstroke:d,fill:d,\"stroke-width\":this.graphic.strokeWidth()+2*c.snap});m.render.call(this);f(this.graphic,{markerStartSetter:t.markerStartSetter,markerEndSetter:t.markerEndSetter});this.setMarkers(this)},redraw:function(a){var d=this.toD(),b=a?\"animate\":\"attr\";d?(this.graphic[b]({d:d}),this.tracker[b]({d:d})):(this.graphic.attr({d:\"M 0 -9000000000\"}),this.tracker.attr({d:\"M 0 -9000000000\"}));this.graphic.placed=this.tracker.placed=!!d;m.redraw.call(this,a)}});return c});p(c,\"annotations/controllable/ControllableRect.js\",\n[c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllablePath.js\"]],function(c,a,m){c=c.merge;var k=function(a,d,c){this.init(a,d,c);this.collection=\"shapes\"};k.attrsMap=c(m.attrsMap,{width:\"width\",height:\"height\"});c(!0,k.prototype,a,{type:\"rect\",translate:a.translateShape,render:function(c){var d=this.attrsFromOptions(this.options);this.graphic=this.annotation.chart.renderer.rect(0,-9E9,0,0).attr(d).add(c);a.render.call(this)},redraw:function(c){var d=\nthis.anchor(this.points[0]).absolutePosition;if(d)this.graphic[c?\"animate\":\"attr\"]({x:d.x,y:d.y,width:this.options.width,height:this.options.height});else this.attr({x:0,y:-9E9});this.graphic.placed=!!d;a.redraw.call(this,c)}});return k});p(c,\"annotations/controllable/ControllableCircle.js\",[c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllablePath.js\"]],function(c,a,m){c=c.merge;var k=function(a,c,k){this.init(a,c,k);this.collection=\"shapes\"};\nk.attrsMap=c(m.attrsMap,{r:\"r\"});c(!0,k.prototype,a,{type:\"circle\",translate:a.translateShape,render:function(c){var d=this.attrsFromOptions(this.options);this.graphic=this.annotation.chart.renderer.circle(0,-9E9,0).attr(d).add(c);a.render.call(this)},redraw:function(c){var d=this.anchor(this.points[0]).absolutePosition;if(d)this.graphic[c?\"animate\":\"attr\"]({x:d.x,y:d.y,r:this.options.r});else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!d;a.redraw.call(this,c)},setRadius:function(a){this.options.r=\na}});return k});p(c,\"annotations/controllable/ControllableLabel.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/MockPoint.js\"],c[\"parts/Tooltip.js\"]],function(c,a,m,t,f){var d=a.extend,k=a.format,r=a.isNumber,b=a.merge,g=a.pick,p=function(a,b,c){this.init(a,b,c);this.collection=\"labels\"};p.shapesWithoutBackground=[\"connector\"];p.alignedPosition=function(a,b){var e=a.align,c=a.verticalAlign,d=(b.x||0)+(a.x||0),f=(b.y||0)+(a.y||0),\ng,n;\"right\"===e?g=1:\"center\"===e&&(g=2);g&&(d+=(b.width-(a.width||0))/g);\"bottom\"===c?n=1:\"middle\"===c&&(n=2);n&&(f+=(b.height-(a.height||0))/n);return{x:Math.round(d),y:Math.round(f)}};p.justifiedOptions=function(a,b,c,d){var e=c.align,h=c.verticalAlign,l=b.box?0:b.padding||0,n=b.getBBox();b={align:e,verticalAlign:h,x:c.x,y:c.y,width:b.width,height:b.height};c=d.x-a.plotLeft;var u=d.y-a.plotTop;d=c+l;0>d&&(\"right\"===e?b.align=\"left\":b.x=-d);d=c+n.width-l;d>a.plotWidth&&(\"left\"===e?b.align=\"right\":\nb.x=a.plotWidth-d);d=u+l;0>d&&(\"bottom\"===h?b.verticalAlign=\"top\":b.y=-d);d=u+n.height-l;d>a.plotHeight&&(\"top\"===h?b.verticalAlign=\"bottom\":b.y=a.plotHeight-d);return b};p.attrsMap={backgroundColor:\"fill\",borderColor:\"stroke\",borderWidth:\"stroke-width\",zIndex:\"zIndex\",borderRadius:\"r\",padding:\"padding\"};b(!0,p.prototype,m,{translatePoint:function(a,b){m.translatePoint.call(this,a,b,0)},translate:function(a,b){var c=this.annotation.chart,e=this.annotation.userOptions,d=c.annotations.indexOf(this.annotation);\nd=c.options.annotations[d];c.inverted&&(c=a,a=b,b=c);this.options.x+=a;this.options.y+=b;d[this.collection][this.index].x=this.options.x;d[this.collection][this.index].y=this.options.y;e[this.collection][this.index].x=this.options.x;e[this.collection][this.index].y=this.options.y},render:function(a){var b=this.options,c=this.attrsFromOptions(b),d=b.style;this.graphic=this.annotation.chart.renderer.label(\"\",0,-9999,b.shape,null,null,b.useHTML,null,\"annotation-label\").attr(c).add(a);this.annotation.chart.styledMode||\n(\"contrast\"===d.color&&(d.color=this.annotation.chart.renderer.getContrast(-1<p.shapesWithoutBackground.indexOf(b.shape)?\"#FFFFFF\":b.backgroundColor)),this.graphic.css(b.style).shadow(b.shadow));b.className&&this.graphic.addClass(b.className);this.graphic.labelrank=b.labelrank;m.render.call(this)},redraw:function(a){var b=this.options,c=this.text||b.format||b.text,d=this.graphic,f=this.points[0];d.attr({text:c?k(c,f.getLabelConfig(),this.annotation.chart):b.formatter.call(f,this)});b=this.anchor(f);\n(c=this.position(b))?(d.alignAttr=c,c.anchorX=b.absolutePosition.x,c.anchorY=b.absolutePosition.y,d[a?\"animate\":\"attr\"](c)):d.attr({x:0,y:-9999});d.placed=!!c;m.redraw.call(this,a)},anchor:function(){var a=m.anchor.apply(this,arguments),b=this.options.x||0,c=this.options.y||0;a.absolutePosition.x-=b;a.absolutePosition.y-=c;a.relativePosition.x-=b;a.relativePosition.y-=c;return a},position:function(a){var b=this.graphic,c=this.annotation.chart,l=this.points[0],q=this.options,k=a.absolutePosition,v=\na.relativePosition;if(a=l.series.visible&&t.prototype.isInsidePlot.call(l)){if(q.distance)var n=f.prototype.getPosition.call({chart:c,distance:g(q.distance,16)},b.width,b.height,{plotX:v.x,plotY:v.y,negative:l.negative,ttBelow:l.ttBelow,h:v.height||v.width});else q.positioner?n=q.positioner.call(this):(l={x:k.x,y:k.y,width:0,height:0},n=p.alignedPosition(d(q,{width:b.width,height:b.height}),l),\"justify\"===this.options.overflow&&(n=p.alignedPosition(p.justifiedOptions(c,b,q,n),l)));q.crop&&(q=n.x-\nc.plotLeft,l=n.y-c.plotTop,a=c.isInsidePlot(q,l)&&c.isInsidePlot(q+b.width,l+b.height))}return a?n:null}});c.SVGRenderer.prototype.symbols.connector=function(a,b,c,d,f){var e=f&&f.anchorX;f=f&&f.anchorY;var h=c/2;if(r(e)&&r(f)){var n=[[\"M\",e,f]];var u=b-f;0>u&&(u=-d-u);u<c&&(h=e<a+c/2?u:c-u);f>b+d?n.push([\"L\",a+h,b+d]):f<b?n.push([\"L\",a+h,b]):e<a?n.push([\"L\",a,b+d/2]):e>a+c&&n.push([\"L\",a+c,b+d/2])}return n||[]};return p});p(c,\"annotations/controllable/ControllableImage.js\",[c[\"parts/Utilities.js\"],\nc[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllableLabel.js\"]],function(c,a,m){c=c.merge;var k=function(a,c,k){this.init(a,c,k);this.collection=\"shapes\"};k.attrsMap={width:\"width\",height:\"height\",zIndex:\"zIndex\"};c(!0,k.prototype,a,{type:\"image\",translate:a.translateShape,render:function(c){var d=this.attrsFromOptions(this.options),f=this.options;this.graphic=this.annotation.chart.renderer.image(f.src,0,-9E9,f.width,f.height).attr(d).add(c);this.graphic.width=\nf.width;this.graphic.height=f.height;a.render.call(this)},redraw:function(c){var d=this.anchor(this.points[0]);if(d=m.prototype.position.call(this,d))this.graphic[c?\"animate\":\"attr\"]({x:d.x,y:d.y});else this.graphic.attr({x:0,y:-9E9});this.graphic.placed=!!d;a.redraw.call(this,c)}});return k});p(c,\"annotations/annotations.src.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"annotations/controllable/controllableMixin.js\"],c[\"annotations/controllable/ControllableRect.js\"],c[\"annotations/controllable/ControllableCircle.js\"],\nc[\"annotations/controllable/ControllablePath.js\"],c[\"annotations/controllable/ControllableImage.js\"],c[\"annotations/controllable/ControllableLabel.js\"],c[\"annotations/eventEmitterMixin.js\"],c[\"annotations/MockPoint.js\"],c[\"annotations/ControlPoint.js\"]],function(c,a,m,t,f,d,p,r,b,g,z){var k=a.addEvent,e=a.defined,h=a.destroyObjectProperties,l=a.erase,q=a.extend,y=a.find,v=a.fireEvent,n=a.merge,u=a.pick,C=a.splat;a=a.wrap;var A=c.Chart.prototype,w=c.Annotation=function(a,b){this.chart=a;this.points=\n[];this.controlPoints=[];this.coll=\"annotations\";this.labels=[];this.shapes=[];this.options=n(this.defaultOptions,b);this.userOptions=b;b=this.getLabelsAndShapesOptions(this.options,b);this.options.labels=b.labels;this.options.shapes=b.shapes;this.init(a,this.options)};n(!0,w.prototype,m,b,{nonDOMEvents:[\"add\",\"afterUpdate\",\"drag\",\"remove\"],defaultOptions:{visible:!0,draggable:\"xy\",labelOptions:{align:\"center\",allowOverlap:!1,backgroundColor:\"rgba(0, 0, 0, 0.75)\",borderColor:\"black\",borderRadius:3,\nborderWidth:1,className:\"\",crop:!1,formatter:function(){return e(this.y)?this.y:\"Annotation label\"},overflow:\"justify\",padding:5,shadow:!1,shape:\"callout\",style:{fontSize:\"11px\",fontWeight:\"normal\",color:\"contrast\"},useHTML:!1,verticalAlign:\"bottom\",x:0,y:-16},shapeOptions:{stroke:\"rgba(0, 0, 0, 0.75)\",strokeWidth:1,fill:\"rgba(0, 0, 0, 0.75)\",r:0,snap:2},controlPointOptions:{symbol:\"circle\",width:10,height:10,style:{stroke:\"black\",\"stroke-width\":2,fill:\"white\"},visible:!1,events:{}},events:{},zIndex:6},\ninit:function(){this.linkPoints();this.addControlPoints();this.addShapes();this.addLabels();this.setLabelCollector()},getLabelsAndShapesOptions:function(a,b){var c={};[\"labels\",\"shapes\"].forEach(function(d){a[d]&&(c[d]=C(b[d]).map(function(b,c){return n(a[d][c],b)}))});return c},addShapes:function(){(this.options.shapes||[]).forEach(function(a,b){a=this.initShape(a,b);n(!0,this.options.shapes[b],a.options)},this)},addLabels:function(){(this.options.labels||[]).forEach(function(a,b){a=this.initLabel(a,\nb);n(!0,this.options.labels[b],a.options)},this)},addClipPaths:function(){this.setClipAxes();this.clipXAxis&&this.clipYAxis&&(this.clipRect=this.chart.renderer.clipRect(this.getClipBox()))},setClipAxes:function(){var a=this.chart.xAxis,b=this.chart.yAxis,c=(this.options.labels||[]).concat(this.options.shapes||[]).reduce(function(c,d){return[a[d&&d.point&&d.point.xAxis]||c[0],b[d&&d.point&&d.point.yAxis]||c[1]]},[]);this.clipXAxis=c[0];this.clipYAxis=c[1]},getClipBox:function(){if(this.clipXAxis&&\nthis.clipYAxis)return{x:this.clipXAxis.left,y:this.clipYAxis.top,width:this.clipXAxis.width,height:this.clipYAxis.height}},setLabelCollector:function(){var a=this;a.labelCollector=function(){return a.labels.reduce(function(a,b){b.options.allowOverlap||a.push(b.graphic);return a},[])};a.chart.labelCollectors.push(a.labelCollector)},setOptions:function(a){this.options=n(this.defaultOptions,a)},redraw:function(a){this.linkPoints();this.graphic||this.render();this.clipRect&&this.clipRect.animate(this.getClipBox());\nthis.redrawItems(this.shapes,a);this.redrawItems(this.labels,a);m.redraw.call(this,a)},redrawItems:function(a,b){for(var c=a.length;c--;)this.redrawItem(a[c],b)},renderItems:function(a){for(var b=a.length;b--;)this.renderItem(a[b])},render:function(){var a=this.chart.renderer;this.graphic=a.g(\"annotation\").attr({zIndex:this.options.zIndex,visibility:this.options.visible?\"visible\":\"hidden\"}).add();this.shapesGroup=a.g(\"annotation-shapes\").add(this.graphic).clip(this.chart.plotBoxClip);this.labelsGroup=\na.g(\"annotation-labels\").attr({translateX:0,translateY:0}).add(this.graphic);this.addClipPaths();this.clipRect&&this.graphic.clip(this.clipRect);this.renderItems(this.shapes);this.renderItems(this.labels);this.addEvents();m.render.call(this)},setVisibility:function(a){var b=this.options;a=u(a,!b.visible);this.graphic.attr(\"visibility\",a?\"visible\":\"hidden\");a||this.setControlPointsVisibility(!1);b.visible=a},setControlPointsVisibility:function(a){var b=function(b){b.setControlPointsVisibility(a)};\nm.setControlPointsVisibility.call(this,a);this.shapes.forEach(b);this.labels.forEach(b)},destroy:function(){var a=this.chart,c=function(a){a.destroy()};this.labels.forEach(c);this.shapes.forEach(c);this.clipYAxis=this.clipXAxis=null;l(a.labelCollectors,this.labelCollector);b.destroy.call(this);m.destroy.call(this);h(this,a)},remove:function(){return this.chart.removeAnnotation(this)},update:function(a,b){var c=this.chart,d=this.getLabelsAndShapesOptions(this.userOptions,a),e=c.annotations.indexOf(this);\na=n(!0,this.userOptions,a);a.labels=d.labels;a.shapes=d.shapes;this.destroy();this.constructor(c,a);c.options.annotations[e]=a;this.isUpdating=!0;u(b,!0)&&c.redraw();v(this,\"afterUpdate\");this.isUpdating=!1},initShape:function(a,b){a=n(this.options.shapeOptions,{controlPointOptions:this.options.controlPointOptions},a);b=new w.shapesMap[a.type](this,a,b);b.itemType=\"shape\";this.shapes.push(b);return b},initLabel:function(a,b){a=n(this.options.labelOptions,{controlPointOptions:this.options.controlPointOptions},\na);b=new r(this,a,b);b.itemType=\"label\";this.labels.push(b);return b},redrawItem:function(a,b){a.linkPoints();a.shouldBeDrawn()?(a.graphic||this.renderItem(a),a.redraw(u(b,!0)&&a.graphic.placed),a.points.length&&this.adjustVisibility(a)):this.destroyItem(a)},adjustVisibility:function(a){var b=!1,c=a.graphic;a.points.forEach(function(a){!1!==a.series.visible&&!1!==a.visible&&(b=!0)});b?\"hidden\"===c.visibility&&c.show():c.hide()},destroyItem:function(a){l(this[a.itemType+\"s\"],a);a.destroy()},renderItem:function(a){a.render(\"label\"===\na.itemType?this.labelsGroup:this.shapesGroup)}});w.shapesMap={rect:t,circle:f,path:d,image:p};w.types={};w.MockPoint=g;w.ControlPoint=z;c.extendAnnotation=function(a,b,c,d){b=b||w;n(!0,a.prototype,b.prototype,c);a.prototype.defaultOptions=n(a.prototype.defaultOptions,d||{})};q(A,{initAnnotation:function(a){a=new (w.types[a.type]||w)(this,a);this.annotations.push(a);return a},addAnnotation:function(a,b){a=this.initAnnotation(a);this.options.annotations.push(a.options);u(b,!0)&&a.redraw();return a},\nremoveAnnotation:function(a){var b=this.annotations,c=\"annotations\"===a.coll?a:y(b,function(b){return b.options.id===a});c&&(v(c,\"remove\"),l(this.options.annotations,c.options),l(b,c),c.destroy())},drawAnnotations:function(){this.plotBoxClip.attr(this.plotBox);this.annotations.forEach(function(a){a.redraw()})}});A.collectionsWithUpdate.push(\"annotations\");A.collectionsWithInit.annotations=[A.addAnnotation];A.callbacks.push(function(a){a.annotations=[];a.options.annotations||(a.options.annotations=\n[]);a.plotBoxClip=this.renderer.clipRect(this.plotBox);a.controlPointsGroup=a.renderer.g(\"control-points\").attr({zIndex:99}).clip(a.plotBoxClip).add();a.options.annotations.forEach(function(b,c){b=a.initAnnotation(b);a.options.annotations[c]=b.options});a.drawAnnotations();k(a,\"redraw\",a.drawAnnotations);k(a,\"destroy\",function(){a.plotBoxClip.destroy();a.controlPointsGroup.destroy()})});a(c.Pointer.prototype,\"onContainerMouseDown\",function(a){this.chart.hasDraggedAnnotation||a.apply(this,Array.prototype.slice.call(arguments,\n1))})});p(c,\"mixins/navigation.js\",[],function(){return{initUpdate:function(c){c.navigation||(c.navigation={updates:[],update:function(a,c){this.updates.forEach(function(k){k.update.call(k.context,a,c)})}})},addUpdate:function(c,a){a.navigation||this.initUpdate(a);a.navigation.updates.push({update:c,context:a})}}});p(c,\"annotations/navigationBindings.js\",[c[\"parts/Globals.js\"],c[\"parts/Utilities.js\"],c[\"mixins/navigation.js\"]],function(c,a,m){function k(a){var b=a.prototype.defaultOptions.events&&\na.prototype.defaultOptions.events.click;e(!0,a.prototype.defaultOptions.events,{click:function(a){var c=this,d=c.chart.navigationBindings,e=d.activeAnnotation;b&&b.click.call(c,a);e!==c?(d.deselectAnnotation(),d.activeAnnotation=c,c.setControlPointsVisibility(!0),r(d,\"showPopup\",{annotation:c,formType:\"annotation-toolbar\",options:d.annotationToFields(c),onSubmit:function(a){var b={};\"remove\"===a.actionType?(d.activeAnnotation=!1,d.chart.removeAnnotation(c)):(d.fieldsToOptions(a.fields,b),d.deselectAnnotation(),\na=b.typeOptions,\"measure\"===c.options.type&&(a.crosshairY.enabled=0!==a.crosshairY.strokeWidth,a.crosshairX.enabled=0!==a.crosshairX.strokeWidth),c.update(b))}})):(d.deselectAnnotation(),r(d,\"closePopup\"));a.activeAnnotation=!0}})}var f=a.addEvent,d=a.attr,p=a.format,r=a.fireEvent,b=a.isArray,g=a.isFunction,z=a.isNumber,x=a.isObject,e=a.merge,h=a.objectEach,l=a.pick,q=c.doc,y=c.win,v=function(){function a(a,b){this.selectedButton=this.boundClassNames=void 0;this.chart=a;this.options=b;this.eventsToUnbind=\n[];this.container=q.getElementsByClassName(this.options.bindingsClassName||\"\")}a.prototype.initEvents=function(){var a=this,b=a.chart,c=a.container,d=a.options;a.boundClassNames={};h(d.bindings||{},function(b){a.boundClassNames[b.className]=b});[].forEach.call(c,function(b){a.eventsToUnbind.push(f(b,\"click\",function(c){var d=a.getButtonEvents(b,c);d&&a.bindingsButtonClick(d.button,d.events,c)}))});h(d.events||{},function(b,c){g(b)&&a.eventsToUnbind.push(f(a,c,b))});a.eventsToUnbind.push(f(b.container,\n\"click\",function(c){!b.cancelClick&&b.isInsidePlot(c.chartX-b.plotLeft,c.chartY-b.plotTop)&&a.bindingsChartClick(this,c)}));a.eventsToUnbind.push(f(b.container,\"mousemove\",function(b){a.bindingsContainerMouseMove(this,b)}))};a.prototype.initUpdate=function(){var a=this;m.addUpdate(function(b){a.update(b)},this.chart)};a.prototype.bindingsButtonClick=function(a,b,c){var d=this.chart;this.selectedButtonElement&&(r(this,\"deselectButton\",{button:this.selectedButtonElement}),this.nextEvent&&(this.currentUserDetails&&\n\"annotations\"===this.currentUserDetails.coll&&d.removeAnnotation(this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1));this.selectedButton=b;this.selectedButtonElement=a;r(this,\"selectButton\",{button:a});b.init&&b.init.call(this,a,c);(b.start||b.steps)&&d.renderer.boxWrapper.addClass(\"highcharts-draw-mode\")};a.prototype.bindingsChartClick=function(a,b){a=this.chart;var c=this.selectedButton;a=a.renderer.boxWrapper;var d;if(d=this.activeAnnotation&&!b.activeAnnotation&&b.target.parentNode){a:{d=\nb.target;var e=y.Element.prototype,h=e.matches||e.msMatchesSelector||e.webkitMatchesSelector,f=null;if(e.closest)f=e.closest.call(d,\".highcharts-popup\");else{do{if(h.call(d,\".highcharts-popup\"))break a;d=d.parentElement||d.parentNode}while(null!==d&&1===d.nodeType)}d=f}d=!d}d&&(r(this,\"closePopup\"),this.deselectAnnotation());c&&c.start&&(this.nextEvent?(this.nextEvent(b,this.currentUserDetails),this.steps&&(this.stepIndex++,c.steps[this.stepIndex]?this.mouseMoveEvent=this.nextEvent=c.steps[this.stepIndex]:\n(r(this,\"deselectButton\",{button:this.selectedButtonElement}),a.removeClass(\"highcharts-draw-mode\"),c.end&&c.end.call(this,b,this.currentUserDetails),this.mouseMoveEvent=this.nextEvent=!1,this.selectedButton=null))):(this.currentUserDetails=c.start.call(this,b),c.steps?(this.stepIndex=0,this.steps=!0,this.mouseMoveEvent=this.nextEvent=c.steps[this.stepIndex]):(r(this,\"deselectButton\",{button:this.selectedButtonElement}),a.removeClass(\"highcharts-draw-mode\"),this.steps=!1,this.selectedButton=null,\nc.end&&c.end.call(this,b,this.currentUserDetails))))};a.prototype.bindingsContainerMouseMove=function(a,b){this.mouseMoveEvent&&this.mouseMoveEvent(b,this.currentUserDetails)};a.prototype.fieldsToOptions=function(a,b){h(a,function(a,c){var d=parseFloat(a),e=c.split(\".\"),h=b,f=e.length-1;!z(d)||a.match(/px/g)||c.match(/format/g)||(a=d);\"\"!==a&&\"undefined\"!==a&&e.forEach(function(b,c){var d=l(e[c+1],\"\");f===c?h[b]=a:(h[b]||(h[b]=d.match(/\\d/g)?[]:{}),h=h[b])})});return b};a.prototype.deselectAnnotation=\nfunction(){this.activeAnnotation&&(this.activeAnnotation.setControlPointsVisibility(!1),this.activeAnnotation=!1)};a.prototype.annotationToFields=function(c){function d(a,e,f,l){if(f&&-1===v.indexOf(e)&&(0<=(f.indexOf&&f.indexOf(e))||f[e]||!0===f))if(b(a))l[e]=[],a.forEach(function(a,b){x(a)?(l[e][b]={},h(a,function(a,c){d(a,c,n[e],l[e][b])})):d(a,0,n[e],l[e])});else if(x(a)){var u={};b(l)?(l.push(u),u[e]={},u=u[e]):l[e]=u;h(a,function(a,b){d(a,b,0===e?f:n[e],u)})}else\"format\"===e?l[e]=[p(a,c.labels[0].points[0]).toString(),\n\"text\"]:b(l)?l.push([a,g(a)]):l[e]=[a,g(a)]}var e=c.options,f=a.annotationsEditable,n=f.nestedOptions,g=this.utils.getFieldType,u=l(e.type,e.shapes&&e.shapes[0]&&e.shapes[0].type,e.labels&&e.labels[0]&&e.labels[0].itemType,\"label\"),v=a.annotationsNonEditable[e.langKey]||[],q={langKey:e.langKey,type:u};h(e,function(a,b){\"typeOptions\"===b?(q[b]={},h(e[b],function(a,c){d(a,c,n,q[b],!0)})):d(a,b,f[u],q)});return q};a.prototype.getClickedClassNames=function(a,b){var c=b.target;b=[];for(var e;c&&((e=d(c,\n\"class\"))&&(b=b.concat(e.split(\" \").map(function(a){return[a,c]}))),c=c.parentNode,c!==a););return b};a.prototype.getButtonEvents=function(a,b){var c=this,d;this.getClickedClassNames(a,b).forEach(function(a){c.boundClassNames[a[0]]&&!d&&(d={events:c.boundClassNames[a[0]],button:a[1]})});return d};a.prototype.update=function(a){this.options=e(!0,this.options,a);this.removeEvents();this.initEvents()};a.prototype.removeEvents=function(){this.eventsToUnbind.forEach(function(a){a()})};a.prototype.destroy=\nfunction(){this.removeEvents()};a.annotationsEditable={nestedOptions:{labelOptions:[\"style\",\"format\",\"backgroundColor\"],labels:[\"style\"],label:[\"style\"],style:[\"fontSize\",\"color\"],background:[\"fill\",\"strokeWidth\",\"stroke\"],innerBackground:[\"fill\",\"strokeWidth\",\"stroke\"],outerBackground:[\"fill\",\"strokeWidth\",\"stroke\"],shapeOptions:[\"fill\",\"strokeWidth\",\"stroke\"],shapes:[\"fill\",\"strokeWidth\",\"stroke\"],line:[\"strokeWidth\",\"stroke\"],backgroundColors:[!0],connector:[\"fill\",\"strokeWidth\",\"stroke\"],crosshairX:[\"strokeWidth\",\n\"stroke\"],crosshairY:[\"strokeWidth\",\"stroke\"]},circle:[\"shapes\"],verticalLine:[],label:[\"labelOptions\"],measure:[\"background\",\"crosshairY\",\"crosshairX\"],fibonacci:[],tunnel:[\"background\",\"line\",\"height\"],pitchfork:[\"innerBackground\",\"outerBackground\"],rect:[\"shapes\"],crookedLine:[],basicAnnotation:[]};a.annotationsNonEditable={rectangle:[\"crosshairX\",\"crosshairY\",\"label\"]};return a}();v.prototype.utils={updateRectSize:function(a,b){var c=b.chart,d=b.options.typeOptions,e=c.pointer.getCoordinates(a);\na=e.xAxis[0].value-d.point.x;d=d.point.y-e.yAxis[0].value;b.update({typeOptions:{background:{width:c.inverted?d:a,height:c.inverted?a:d}}})},getFieldType:function(a){return{string:\"text\",number:\"number\",\"boolean\":\"checkbox\"}[typeof a]}};c.Chart.prototype.initNavigationBindings=function(){var a=this.options;a&&a.navigation&&a.navigation.bindings&&(this.navigationBindings=new v(this,a.navigation),this.navigationBindings.initEvents(),this.navigationBindings.initUpdate())};f(c.Chart,\"load\",function(){this.initNavigationBindings()});\nf(c.Chart,\"destroy\",function(){this.navigationBindings&&this.navigationBindings.destroy()});f(v,\"deselectButton\",function(){this.selectedButtonElement=null});f(c.Annotation,\"remove\",function(){this.chart.navigationBindings&&this.chart.navigationBindings.deselectAnnotation()});c.Annotation&&(k(c.Annotation),h(c.Annotation.types,function(a){k(a)}));c.setOptions({lang:{navigation:{popup:{simpleShapes:\"Simple shapes\",lines:\"Lines\",circle:\"Circle\",rectangle:\"Rectangle\",label:\"Label\",shapeOptions:\"Shape options\",\ntypeOptions:\"Details\",fill:\"Fill\",format:\"Text\",strokeWidth:\"Line width\",stroke:\"Line color\",title:\"Title\",name:\"Name\",labelOptions:\"Label options\",labels:\"Labels\",backgroundColor:\"Background color\",backgroundColors:\"Background colors\",borderColor:\"Border color\",borderRadius:\"Border radius\",borderWidth:\"Border width\",style:\"Style\",padding:\"Padding\",fontSize:\"Font size\",color:\"Color\",height:\"Height\",shapes:\"Shape options\"}}},navigation:{bindingsClassName:\"highcharts-bindings-container\",bindings:{circleAnnotation:{className:\"highcharts-circle-annotation\",\nstart:function(a){a=this.chart.pointer.getCoordinates(a);var b=this.chart.options.navigation;return this.chart.addAnnotation(e({langKey:\"circle\",type:\"basicAnnotation\",shapes:[{type:\"circle\",point:{xAxis:0,yAxis:0,x:a.xAxis[0].value,y:a.yAxis[0].value},r:5}]},b.annotationsOptions,b.bindings.circleAnnotation.annotationsOptions))},steps:[function(a,b){var c=b.options.shapes[0].point,d=this.chart.xAxis[0].toPixels(c.x);c=this.chart.yAxis[0].toPixels(c.y);var e=this.chart.inverted;b.update({shapes:[{r:Math.max(Math.sqrt(Math.pow(e?\nc-a.chartX:d-a.chartX,2)+Math.pow(e?d-a.chartY:c-a.chartY,2)),5)}]})}]},rectangleAnnotation:{className:\"highcharts-rectangle-annotation\",start:function(a){var b=this.chart.pointer.getCoordinates(a);a=this.chart.options.navigation;var c=b.xAxis[0].value;b=b.yAxis[0].value;return this.chart.addAnnotation(e({langKey:\"rectangle\",type:\"basicAnnotation\",shapes:[{type:\"path\",points:[{xAxis:0,yAxis:0,x:c,y:b},{xAxis:0,yAxis:0,x:c,y:b},{xAxis:0,yAxis:0,x:c,y:b},{xAxis:0,yAxis:0,x:c,y:b}]}]},a.annotationsOptions,\na.bindings.rectangleAnnotation.annotationsOptions))},steps:[function(a,b){var c=b.options.shapes[0].points,d=this.chart.pointer.getCoordinates(a);a=d.xAxis[0].value;d=d.yAxis[0].value;c[1].x=a;c[2].x=a;c[2].y=d;c[3].y=d;b.update({shapes:[{points:c}]})}]},labelAnnotation:{className:\"highcharts-label-annotation\",start:function(a){a=this.chart.pointer.getCoordinates(a);var b=this.chart.options.navigation;return this.chart.addAnnotation(e({langKey:\"label\",type:\"basicAnnotation\",labelOptions:{format:\"{y:.2f}\"},\nlabels:[{point:{xAxis:0,yAxis:0,x:a.xAxis[0].value,y:a.yAxis[0].value},overflow:\"none\",crop:!0}]},b.annotationsOptions,b.bindings.labelAnnotation.annotationsOptions))}}},events:{},annotationsOptions:{}}});return v});p(c,\"annotations/popup.js\",[c[\"parts/Globals.js\"],c[\"annotations/navigationBindings.js\"],c[\"parts/Utilities.js\"]],function(c,a,m){var k=m.addEvent,f=m.createElement,d=m.defined,p=m.isArray,r=m.isObject,b=m.isString,g=m.objectEach,z=m.pick;m=m.wrap;var x=/\\d/g;m(c.Pointer.prototype,\"onContainerMouseDown\",\nfunction(a,c){var d=c.target&&c.target.className;b(d)&&0<=d.indexOf(\"highcharts-popup-field\")||a.apply(this,Array.prototype.slice.call(arguments,1))});c.Popup=function(a,b){this.init(a,b)};c.Popup.prototype={init:function(a,b){this.container=f(\"div\",{className:\"highcharts-popup\"},null,a);this.lang=this.getLangpack();this.iconsURL=b;this.addCloseBtn()},addCloseBtn:function(){var a=this;var b=f(\"div\",{className:\"highcharts-popup-close\"},null,this.container);b.style[\"background-image\"]=\"url(\"+this.iconsURL+\n\"close.svg)\";[\"click\",\"touchstart\"].forEach(function(c){k(b,c,function(){a.closePopup()})})},addColsContainer:function(a){var b=f(\"div\",{className:\"highcharts-popup-lhs-col\"},null,a);a=f(\"div\",{className:\"highcharts-popup-rhs-col\"},null,a);f(\"div\",{className:\"highcharts-popup-rhs-col-wrapper\"},null,a);return{lhsCol:b,rhsCol:a}},addInput:function(a,b,c,d){var e=a.split(\".\");e=e[e.length-1];var h=this.lang;b=\"highcharts-\"+b+\"-\"+e;b.match(x)||f(\"label\",{innerHTML:h[e]||e,htmlFor:b},null,c);f(\"input\",\n{name:b,value:d[0],type:d[1],className:\"highcharts-popup-field\"},null,c).setAttribute(\"highcharts-data-name\",a)},addButton:function(a,b,c,d,g){var e=this,h=this.closePopup,l=this.getFields;var q=f(\"button\",{innerHTML:b},null,a);[\"click\",\"touchstart\"].forEach(function(a){k(q,a,function(){h.call(e);return d(l(g,c))})});return q},getFields:function(a,b){var c=a.querySelectorAll(\"input\"),d=a.querySelectorAll(\"#highcharts-select-series > option:checked\")[0];a=a.querySelectorAll(\"#highcharts-select-volume > option:checked\")[0];\nvar e,f;var h={actionType:b,linkedTo:d&&d.getAttribute(\"value\"),fields:{}};[].forEach.call(c,function(a){f=a.getAttribute(\"highcharts-data-name\");(e=a.getAttribute(\"highcharts-data-series-id\"))?h.seriesId=a.value:f?h.fields[f]=a.value:h.type=a.value});a&&(h.fields[\"params.volumeSeriesID\"]=a.getAttribute(\"value\"));return h},showPopup:function(){var a=this.container,b=a.querySelectorAll(\".highcharts-popup-close\")[0];a.innerHTML=\"\";0<=a.className.indexOf(\"highcharts-annotation-toolbar\")&&(a.classList.remove(\"highcharts-annotation-toolbar\"),\na.removeAttribute(\"style\"));a.appendChild(b);a.style.display=\"block\"},closePopup:function(){this.popup.container.style.display=\"none\"},showForm:function(a,b,c,d){this.popup=b.navigationBindings.popup;this.showPopup();\"indicators\"===a&&this.indicators.addForm.call(this,b,c,d);\"annotation-toolbar\"===a&&this.annotations.addToolbar.call(this,b,c,d);\"annotation-edit\"===a&&this.annotations.addForm.call(this,b,c,d);\"flag\"===a&&this.annotations.addForm.call(this,b,c,d,!0)},getLangpack:function(){return c.getOptions().lang.navigation.popup},\nannotations:{addToolbar:function(a,b,c){var d=this,e=this.lang,h=this.popup.container,g=this.showForm;-1===h.className.indexOf(\"highcharts-annotation-toolbar\")&&(h.className+=\" highcharts-annotation-toolbar\");h.style.top=a.plotTop+10+\"px\";f(\"span\",{innerHTML:z(e[b.langKey]||b.langKey,b.shapes&&b.shapes[0].type)},null,h);var l=this.addButton(h,e.removeButton||\"remove\",\"remove\",c,h);l.className+=\" highcharts-annotation-remove-button\";l.style[\"background-image\"]=\"url(\"+this.iconsURL+\"destroy.svg)\";l=\nthis.addButton(h,e.editButton||\"edit\",\"edit\",function(){g.call(d,\"annotation-edit\",a,b,c)},h);l.className+=\" highcharts-annotation-edit-button\";l.style[\"background-image\"]=\"url(\"+this.iconsURL+\"edit.svg)\"},addForm:function(a,b,c,d){var e=this.popup.container,h=this.lang;f(\"h2\",{innerHTML:h[b.langKey]||b.langKey,className:\"highcharts-popup-main-title\"},null,e);var g=f(\"div\",{className:\"highcharts-popup-lhs-col highcharts-popup-lhs-full\"},null,e);var l=f(\"div\",{className:\"highcharts-popup-bottom-row\"},\nnull,e);this.annotations.addFormFields.call(this,g,a,\"\",b,[],!0);this.addButton(l,d?h.addButton||\"add\":h.saveButton||\"save\",d?\"add\":\"save\",c,e)},addFormFields:function(a,b,c,d,k,v){var e=this,h=this.annotations.addFormFields,l=this.addInput,q=this.lang,m,y;g(d,function(d,f){m=\"\"!==c?c+\".\"+f:f;r(d)&&(!p(d)||p(d)&&r(d[0])?(y=q[f]||f,y.match(x)||k.push([!0,y,a]),h.call(e,a,b,m,d,k,!1)):k.push([e,m,\"annotation\",a,d]))});v&&(k=k.sort(function(a){return a[1].match(/format/g)?-1:1}),k.forEach(function(a){!0===\na[0]?f(\"span\",{className:\"highcharts-annotation-title\",innerHTML:a[1]},null,a[2]):l.apply(a[0],a.splice(1))}))}},indicators:{addForm:function(a,b,c){var d=this.indicators,e=this.lang;this.tabs.init.call(this,a);b=this.popup.container.querySelectorAll(\".highcharts-tab-item-content\");this.addColsContainer(b[0]);d.addIndicatorList.call(this,a,b[0],\"add\");var f=b[0].querySelectorAll(\".highcharts-popup-rhs-col\")[0];this.addButton(f,e.addButton||\"add\",\"add\",c,f);this.addColsContainer(b[1]);d.addIndicatorList.call(this,\na,b[1],\"edit\");f=b[1].querySelectorAll(\".highcharts-popup-rhs-col\")[0];this.addButton(f,e.saveButton||\"save\",\"edit\",c,f);this.addButton(f,e.removeButton||\"remove\",\"remove\",c,f)},addIndicatorList:function(a,b,c){var d=this,e=b.querySelectorAll(\".highcharts-popup-lhs-col\")[0];b=b.querySelectorAll(\".highcharts-popup-rhs-col\")[0];var h=\"edit\"===c,l=h?a.series:a.options.plotOptions,m=this.indicators.addFormFields,p;var r=f(\"ul\",{className:\"highcharts-indicator-list\"},null,e);var t=b.querySelectorAll(\".highcharts-popup-rhs-col-wrapper\")[0];\ng(l,function(b,c){var e=b.options;if(b.params||e&&e.params){var g=d.indicators.getNameType(b,c),q=g.type;p=f(\"li\",{className:\"highcharts-indicator-list\",innerHTML:g.name},null,r);[\"click\",\"touchstart\"].forEach(function(c){k(p,c,function(){m.call(d,a,h?b:l[q],g.type,t);h&&b.options&&f(\"input\",{type:\"hidden\",name:\"highcharts-id-\"+q,value:b.options.id},null,t).setAttribute(\"highcharts-data-series-id\",b.options.id)})})}});0<r.childNodes.length&&r.childNodes[0].click()},getNameType:function(a,b){var d=\na.options,e=c.seriesTypes;e=e[b]&&e[b].prototype.nameBase||b.toUpperCase();d&&d.type&&(b=a.options.type,e=a.name);return{name:e,type:b}},listAllSeries:function(a,b,c,g,k){a=\"highcharts-\"+b+\"-type-\"+a;var e;f(\"label\",{innerHTML:this.lang[b]||b,htmlFor:a},null,g);var h=f(\"select\",{name:a,className:\"highcharts-popup-field\"},null,g);h.setAttribute(\"id\",\"highcharts-select-\"+b);c.series.forEach(function(a){e=a.options;!e.params&&e.id&&\"highcharts-navigator-series\"!==e.id&&f(\"option\",{innerHTML:e.name||\ne.id,value:e.id},null,h)});d(k)&&(h.value=k)},addFormFields:function(a,b,c,d){var e=b.params||b.options.params,g=this.indicators.getNameType;d.innerHTML=\"\";f(\"h3\",{className:\"highcharts-indicator-title\",innerHTML:g(b,c).name},null,d);f(\"input\",{type:\"hidden\",name:\"highcharts-type-\"+c,value:c},null,d);this.indicators.listAllSeries.call(this,c,\"series\",a,d,b.linkedParent&&e.volumeSeriesID);e.volumeSeriesID&&this.indicators.listAllSeries.call(this,c,\"volume\",a,d,b.linkedParent&&b.linkedParent.options.id);\nthis.indicators.addParamInputs.call(this,a,\"params\",e,c,d)},addParamInputs:function(a,b,c,d,f){var e=this,h=this.indicators.addParamInputs,l=this.addInput,k;g(c,function(c,g){k=b+\".\"+g;r(c)?h.call(e,a,k,c,d,f):\"params.volumeSeriesID\"!==k&&l.call(e,k,d,f,[c,\"text\"])})},getAmount:function(){var a=0;g(this.series,function(b){var c=b.options;(b.params||c&&c.params)&&a++});return a}},tabs:{init:function(a){var b=this.tabs;a=this.indicators.getAmount.call(a);var c=b.addMenuItem.call(this,\"add\");b.addMenuItem.call(this,\n\"edit\",a);b.addContentItem.call(this,\"add\");b.addContentItem.call(this,\"edit\");b.switchTabs.call(this,a);b.selectTab.call(this,c,0)},addMenuItem:function(a,b){var c=this.popup.container,d=\"highcharts-tab-item\",e=this.lang;0===b&&(d+=\" highcharts-tab-disabled\");b=f(\"span\",{innerHTML:e[a+\"Button\"]||a,className:d},null,c);b.setAttribute(\"highcharts-data-tab-type\",a);return b},addContentItem:function(){return f(\"div\",{className:\"highcharts-tab-item-content\"},null,this.popup.container)},switchTabs:function(a){var b=\nthis,c;this.popup.container.querySelectorAll(\".highcharts-tab-item\").forEach(function(d,e){c=d.getAttribute(\"highcharts-data-tab-type\");\"edit\"===c&&0===a||[\"click\",\"touchstart\"].forEach(function(a){k(d,a,function(){b.tabs.deselectAll.call(b);b.tabs.selectTab.call(b,this,e)})})})},selectTab:function(a,b){var c=this.popup.container.querySelectorAll(\".highcharts-tab-item-content\");a.className+=\" highcharts-tab-item-active\";c[b].className+=\" highcharts-tab-item-show\"},deselectAll:function(){var a=this.popup.container,\nb=a.querySelectorAll(\".highcharts-tab-item\");a=a.querySelectorAll(\".highcharts-tab-item-content\");var c;for(c=0;c<b.length;c++)b[c].classList.remove(\"highcharts-tab-item-active\"),a[c].classList.remove(\"highcharts-tab-item-show\")}}};k(a,\"showPopup\",function(a){this.popup||(this.popup=new c.Popup(this.chart.container,this.chart.options.navigation.iconsURL||this.chart.options.stockTools&&this.chart.options.stockTools.gui.iconsURL||\"https://code.highcharts.com/8.1.0/gfx/stock-icons/\"));this.popup.showForm(a.formType,\nthis.chart,a.options,a.onSubmit)});k(a,\"closePopup\",function(){this.popup&&this.popup.closePopup()})});p(c,\"masters/modules/annotations.src.js\",[],function(){})});\n//# sourceMappingURL=annotations.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/highcharts/modules/annotations.js\n// module id = 313\n// module chunks = 0","/*\n Highcharts JS v8.1.0 (2020-05-05)\n\n Exporting module\n\n (c) 2010-2019 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(g){\"object\"===typeof module&&module.exports?(g[\"default\"]=g,module.exports=g):\"function\"===typeof define&&define.amd?define(\"highcharts/modules/exporting\",[\"highcharts\"],function(n){g(n);g.Highcharts=n;return g}):g(\"undefined\"!==typeof Highcharts?Highcharts:void 0)})(function(g){function n(e,f,g,l){e.hasOwnProperty(f)||(e[f]=l.apply(null,g))}g=g?g._modules:{};n(g,\"modules/full-screen.src.js\",[g[\"parts/Globals.js\"],g[\"parts/Utilities.js\"]],function(e,f){var g=f.addEvent;f=e.Chart;var l=function(){function e(k){this.chart=\nk;this.isOpen=!1;k=k.renderTo;this.browserProps||(\"function\"===typeof k.requestFullscreen?this.browserProps={fullscreenChange:\"fullscreenchange\",requestFullscreen:\"requestFullscreen\",exitFullscreen:\"exitFullscreen\"}:k.mozRequestFullScreen?this.browserProps={fullscreenChange:\"mozfullscreenchange\",requestFullscreen:\"mozRequestFullScreen\",exitFullscreen:\"mozCancelFullScreen\"}:k.webkitRequestFullScreen?this.browserProps={fullscreenChange:\"webkitfullscreenchange\",requestFullscreen:\"webkitRequestFullScreen\",\nexitFullscreen:\"webkitExitFullscreen\"}:k.msRequestFullscreen&&(this.browserProps={fullscreenChange:\"MSFullscreenChange\",requestFullscreen:\"msRequestFullscreen\",exitFullscreen:\"msExitFullscreen\"}))}e.prototype.close=function(){var k=this.chart;if(this.isOpen&&this.browserProps&&k.container.ownerDocument instanceof Document)k.container.ownerDocument[this.browserProps.exitFullscreen]();this.unbindFullscreenEvent&&this.unbindFullscreenEvent();this.isOpen=!1;this.setButtonText()};e.prototype.open=function(){var k=\nthis,e=k.chart;if(k.browserProps){k.unbindFullscreenEvent=g(e.container.ownerDocument,k.browserProps.fullscreenChange,function(){k.isOpen?(k.isOpen=!1,k.close()):(k.isOpen=!0,k.setButtonText())});var f=e.renderTo[k.browserProps.requestFullscreen]();if(f)f[\"catch\"](function(){alert(\"Full screen is not supported inside a frame.\")});g(e,\"destroy\",k.unbindFullscreenEvent)}};e.prototype.setButtonText=function(){var e,f=this.chart,g=f.exportDivElements,l=f.options.exporting,q=null===(e=null===l||void 0===\nl?void 0:l.buttons)||void 0===e?void 0:e.contextButton.menuItems;e=f.options.lang;(null===l||void 0===l?0:l.menuItemDefinitions)&&(null===e||void 0===e?0:e.exitFullscreen)&&e.viewFullscreen&&q&&g&&g.length&&(g[q.indexOf(\"viewFullscreen\")].innerHTML=this.isOpen?e.exitFullscreen:l.menuItemDefinitions.viewFullscreen.text||e.viewFullscreen)};e.prototype.toggle=function(){this.isOpen?this.close():this.open()};return e}();e.Fullscreen=l;g(f,\"beforeRender\",function(){this.fullscreen=new e.Fullscreen(this)});\nreturn e.Fullscreen});n(g,\"mixins/navigation.js\",[],function(){return{initUpdate:function(e){e.navigation||(e.navigation={updates:[],update:function(e,g){this.updates.forEach(function(f){f.update.call(f.context,e,g)})}})},addUpdate:function(e,f){f.navigation||this.initUpdate(f);f.navigation.updates.push({update:e,context:f})}}});n(g,\"modules/exporting.src.js\",[g[\"parts/Globals.js\"],g[\"parts/Utilities.js\"],g[\"mixins/navigation.js\"]],function(e,f,g){var l=f.addEvent,q=f.css,k=f.createElement,n=f.discardElement,\nw=f.extend,I=f.find,A=f.fireEvent,J=f.isObject,r=f.merge,E=f.objectEach,t=f.pick,K=f.removeEvent,L=f.uniqueKey,v=e.defaultOptions,x=e.doc,B=e.Chart,M=e.isTouchDevice,y=e.win,G=y.navigator.userAgent,F=e.SVGRenderer,H=e.Renderer.prototype.symbols,N=/Edge\\/|Trident\\/|MSIE /.test(G),O=/firefox/i.test(G);w(v.lang,{viewFullscreen:\"View in full screen\",exitFullscreen:\"Exit from full screen\",printChart:\"Print chart\",downloadPNG:\"Download PNG image\",downloadJPEG:\"Download JPEG image\",downloadPDF:\"Download PDF document\",\ndownloadSVG:\"Download SVG vector image\",contextButtonTitle:\"Chart context menu\"});v.navigation||(v.navigation={});r(!0,v.navigation,{buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:\"right\",buttonSpacing:3,height:22,verticalAlign:\"top\",width:24}});r(!0,v.navigation,{menuStyle:{border:\"1px solid #999999\",background:\"#ffffff\",padding:\"5px 0\"},menuItemStyle:{padding:\"0.5em 1em\",color:\"#333333\",background:\"none\",fontSize:M?\"14px\":\"11px\",transition:\"background 250ms, color 250ms\"},\nmenuItemHoverStyle:{background:\"#335cad\",color:\"#ffffff\"},buttonOptions:{symbolFill:\"#666666\",symbolStroke:\"#666666\",symbolStrokeWidth:3,theme:{padding:5}}});v.exporting={type:\"image/png\",url:\"https://export.highcharts.com/\",printMaxWidth:780,scale:2,buttons:{contextButton:{className:\"highcharts-contextbutton\",menuClassName:\"highcharts-contextmenu\",symbol:\"menu\",titleKey:\"contextButtonTitle\",menuItems:\"viewFullscreen printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG\".split(\" \")}},\nmenuItemDefinitions:{viewFullscreen:{textKey:\"viewFullscreen\",onclick:function(){this.fullscreen.toggle()}},printChart:{textKey:\"printChart\",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:\"downloadPNG\",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:\"downloadJPEG\",onclick:function(){this.exportChart({type:\"image/jpeg\"})}},downloadPDF:{textKey:\"downloadPDF\",onclick:function(){this.exportChart({type:\"application/pdf\"})}},downloadSVG:{textKey:\"downloadSVG\",\nonclick:function(){this.exportChart({type:\"image/svg+xml\"})}}}};e.post=function(a,b,c){var d=k(\"form\",r({method:\"post\",action:a,enctype:\"multipart/form-data\"},c),{display:\"none\"},x.body);E(b,function(a,b){k(\"input\",{type:\"hidden\",name:b,value:a},null,d)});d.submit();n(d)};e.isSafari&&e.win.matchMedia(\"print\").addListener(function(a){e.printingChart&&(a.matches?e.printingChart.beforePrint():e.printingChart.afterPrint())});w(B.prototype,{sanitizeSVG:function(a,b){var c=a.indexOf(\"</svg>\")+6,d=a.substr(c);\na=a.substr(0,c);b&&b.exporting&&b.exporting.allowHTML&&d&&(d='<foreignObject x=\"0\" y=\"0\" width=\"'+b.chart.width+'\" height=\"'+b.chart.height+'\"><body xmlns=\"http://www.w3.org/1999/xhtml\">'+d+\"</body></foreignObject>\",a=a.replace(\"</svg>\",d+\"</svg>\"));a=a.replace(/zIndex=\"[^\"]+\"/g,\"\").replace(/symbolName=\"[^\"]+\"/g,\"\").replace(/jQuery[0-9]+=\"[^\"]+\"/g,\"\").replace(/url\\((\"|")(.*?)(\"|");?\\)/g,\"url($2)\").replace(/url\\([^#]+#/g,\"url(#\").replace(/<svg /,'<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" ').replace(/ (|NS[0-9]+:)href=/g,\n\" xlink:href=\").replace(/\\n/,\" \").replace(/(fill|stroke)=\"rgba\\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\\.]+)\\)\"/g,'$1=\"rgb($2)\" $1-opacity=\"$3\"').replace(/ /g,\"\\u00a0\").replace(/­/g,\"\\u00ad\");this.ieSanitizeSVG&&(a=this.ieSanitizeSVG(a));return a},getChartHTML:function(){this.styledMode&&this.inlineStyles();return this.container.innerHTML},getSVG:function(a){var b,c=r(this.options,a);c.plotOptions=r(this.userOptions.plotOptions,a&&a.plotOptions);c.time=r(this.userOptions.time,a&&a.time);var d=k(\"div\",\nnull,{position:\"absolute\",top:\"-9999em\",width:this.chartWidth+\"px\",height:this.chartHeight+\"px\"},x.body);var f=this.renderTo.style.width;var g=this.renderTo.style.height;f=c.exporting.sourceWidth||c.chart.width||/px$/.test(f)&&parseInt(f,10)||(c.isGantt?800:600);g=c.exporting.sourceHeight||c.chart.height||/px$/.test(g)&&parseInt(g,10)||400;w(c.chart,{animation:!1,renderTo:d,forExport:!0,renderer:\"SVGRenderer\",width:f,height:g});c.exporting.enabled=!1;delete c.data;c.series=[];this.series.forEach(function(a){b=\nr(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});b.isInternal||c.series.push(b)});this.axes.forEach(function(a){a.userOptions.internalKey||(a.userOptions.internalKey=L())});var u=new e.Chart(c,this.callback);a&&[\"xAxis\",\"yAxis\",\"series\"].forEach(function(b){var d={};a[b]&&(d[b]=a[b],u.update(d))});this.axes.forEach(function(a){var b=I(u.axes,function(b){return b.options.internalKey===a.userOptions.internalKey}),d=a.getExtremes(),c=d.userMin;d=d.userMax;b&&(\"undefined\"!==\ntypeof c&&c!==b.min||\"undefined\"!==typeof d&&d!==b.max)&&b.setExtremes(c,d,!0,!1)});f=u.getChartHTML();A(this,\"getSVG\",{chartCopy:u});f=this.sanitizeSVG(f,c);c=null;u.destroy();n(d);return f},getSVGForExport:function(a,b){var c=this.options.exporting;return this.getSVG(r({chart:{borderRadius:0}},c.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||c.sourceWidth,sourceHeight:a&&a.sourceHeight||c.sourceHeight}}))},getFilename:function(){var a=this.userOptions.title&&this.userOptions.title.text,\nb=this.options.exporting.filename;if(b)return b.replace(/\\//g,\"-\");\"string\"===typeof a&&(b=a.toLowerCase().replace(/<\\/?[^>]+(>|$)/g,\"\").replace(/[\\s_]+/g,\"-\").replace(/[^a-z0-9\\-]/g,\"\").replace(/^[\\-]+/g,\"\").replace(/[\\-]+/g,\"-\").substr(0,24).replace(/[\\-]+$/g,\"\"));if(!b||5>b.length)b=\"chart\";return b},exportChart:function(a,b){b=this.getSVGForExport(a,b);a=r(this.options.exporting,a);e.post(a.url,{filename:a.filename?a.filename.replace(/\\//g,\"-\"):this.getFilename(),type:a.type,width:a.width||0,\nscale:a.scale,svg:b},a.formAttributes)},moveContainers:function(a){(this.fixedDiv?[this.fixedDiv,this.scrollingContainer]:[this.container]).forEach(function(b){a.appendChild(b)})},beforePrint:function(){var a=x.body,b=this.options.exporting.printMaxWidth,c={childNodes:a.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0;this.pointer.reset(null,0);A(this,\"beforePrint\");b&&this.chartWidth>b&&(c.resetParams=[this.options.chart.width,void 0,!1],this.setSize(b,void 0,!1));[].forEach.call(c.childNodes,\nfunction(a,b){1===a.nodeType&&(c.origDisplay[b]=a.style.display,a.style.display=\"none\")});this.moveContainers(a);this.printReverseInfo=c},afterPrint:function(){if(this.printReverseInfo){var a=this.printReverseInfo.childNodes,b=this.printReverseInfo.origDisplay,c=this.printReverseInfo.resetParams;this.moveContainers(this.renderTo);[].forEach.call(a,function(a,c){1===a.nodeType&&(a.style.display=b[c]||\"\")});this.isPrinting=!1;c&&this.setSize.apply(this,c);delete this.printReverseInfo;delete e.printingChart;\nA(this,\"afterPrint\")}},print:function(){var a=this;a.isPrinting||(e.printingChart=a,e.isSafari||a.beforePrint(),setTimeout(function(){y.focus();y.print();e.isSafari||setTimeout(function(){a.afterPrint()},1E3)},1))},contextMenu:function(a,b,c,d,e,g,u){var h=this,D=h.options.navigation,r=h.chartWidth,z=h.chartHeight,p=\"cache-\"+a,m=h[p],C=Math.max(e,g);if(!m){h.exportContextMenu=h[p]=m=k(\"div\",{className:a},{position:\"absolute\",zIndex:1E3,padding:C+\"px\",pointerEvents:\"auto\"},h.fixedDiv||h.container);\nvar n=k(\"ul\",{className:\"highcharts-menu\"},{listStyle:\"none\",margin:0,padding:0},m);h.styledMode||q(n,w({MozBoxShadow:\"3px 3px 10px #888\",WebkitBoxShadow:\"3px 3px 10px #888\",boxShadow:\"3px 3px 10px #888\"},D.menuStyle));m.hideMenu=function(){q(m,{display:\"none\"});u&&u.setState(0);h.openMenu=!1;q(h.renderTo,{overflow:\"hidden\"});f.clearTimeout(m.hideTimer);A(h,\"exportMenuHidden\")};h.exportEvents.push(l(m,\"mouseleave\",function(){m.hideTimer=y.setTimeout(m.hideMenu,500)}),l(m,\"mouseenter\",function(){f.clearTimeout(m.hideTimer)}),\nl(x,\"mouseup\",function(b){h.pointer.inClass(b.target,a)||m.hideMenu()}),l(m,\"click\",function(){h.openMenu&&m.hideMenu()}));b.forEach(function(a){\"string\"===typeof a&&(a=h.options.exporting.menuItemDefinitions[a]);if(J(a,!0)){if(a.separator)var b=k(\"hr\",null,null,n);else b=k(\"li\",{className:\"highcharts-menu-item\",onclick:function(b){b&&b.stopPropagation();m.hideMenu();a.onclick&&a.onclick.apply(h,arguments)},innerHTML:a.text||h.options.lang[a.textKey]},null,n),h.styledMode||(b.onmouseover=function(){q(this,\nD.menuItemHoverStyle)},b.onmouseout=function(){q(this,D.menuItemStyle)},q(b,w({cursor:\"pointer\"},D.menuItemStyle)));h.exportDivElements.push(b)}});h.exportDivElements.push(n,m);h.exportMenuWidth=m.offsetWidth;h.exportMenuHeight=m.offsetHeight}b={display:\"block\"};c+h.exportMenuWidth>r?b.right=r-c-e-C+\"px\":b.left=c-C+\"px\";d+g+h.exportMenuHeight>z&&\"top\"!==u.alignOptions.verticalAlign?b.bottom=z-d-C+\"px\":b.top=d+g-C+\"px\";q(m,b);q(h.renderTo,{overflow:\"\"});h.openMenu=!0;A(h,\"exportMenuShown\")},addButton:function(a){var b=\nthis,c=b.renderer,d=r(b.options.navigation.buttonOptions,a),e=d.onclick,f=d.menuItems,g=d.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);if(!1!==d.enabled){var h=d.theme,k=h.states,l=k&&k.hover;k=k&&k.select;var z;b.styledMode||(h.fill=t(h.fill,\"#ffffff\"),h.stroke=t(h.stroke,\"none\"));delete h.states;e?z=function(a){a&&a.stopPropagation();e.call(b,a)}:f&&(z=function(a){a&&a.stopPropagation();b.contextMenu(p.menuClassName,f,p.translateX,\np.translateY,p.width,p.height,p);p.setState(2)});d.text&&d.symbol?h.paddingLeft=t(h.paddingLeft,25):d.text||w(h,{width:d.width,height:d.height,padding:0});b.styledMode||(h[\"stroke-linecap\"]=\"round\",h.fill=t(h.fill,\"#ffffff\"),h.stroke=t(h.stroke,\"none\"));var p=c.button(d.text,0,0,z,h,l,k).addClass(a.className).attr({title:t(b.options.lang[d._titleKey||d.titleKey],\"\")});p.menuClassName=a.menuClassName||\"highcharts-menu-\"+b.btnCount++;if(d.symbol){var m=c.symbol(d.symbol,d.symbolX-g/2,d.symbolY-g/2,\ng,g,{width:g,height:g}).addClass(\"highcharts-button-symbol\").attr({zIndex:1}).add(p);b.styledMode||m.attr({stroke:d.symbolStroke,fill:d.symbolFill,\"stroke-width\":d.symbolStrokeWidth||1})}p.add(b.exportingGroup).align(w(d,{width:p.width,x:t(d.x,b.buttonOffset)}),!0,\"spacingBox\");b.buttonOffset+=(p.width+d.buttonSpacing)*(\"right\"===d.align?-1:1);b.exportSVGElements.push(p,m)}},destroyExport:function(a){var b=a?a.target:this;a=b.exportSVGElements;var c=b.exportDivElements,d=b.exportEvents,e;a&&(a.forEach(function(a,\nd){a&&(a.onclick=a.ontouchstart=null,e=\"cache-\"+a.menuClassName,b[e]&&delete b[e],b.exportSVGElements[d]=a.destroy())}),a.length=0);b.exportingGroup&&(b.exportingGroup.destroy(),delete b.exportingGroup);c&&(c.forEach(function(a,d){f.clearTimeout(a.hideTimer);K(a,\"mouseleave\");b.exportDivElements[d]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null;n(a)}),c.length=0);d&&(d.forEach(function(a){a()}),d.length=0)}});F.prototype.inlineToAttributes=\"fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y\".split(\" \");\nF.prototype.inlineBlacklist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/];F.prototype.unstyledElements=[\"clipPath\",\"defs\",\"desc\"];B.prototype.inlineStyles=function(){function a(a){return a.replace(/([A-Z])/g,function(a,b){return\"-\"+b.toLowerCase()})}function b(c){function p(b,f){n=q=!1;if(g){for(t=g.length;t--&&!q;)q=g[t].test(f);n=!q}\"transform\"===f&&\"none\"===b&&(n=!0);for(t=e.length;t--&&!n;)n=e[t].test(f)||\n\"function\"===typeof b;n||w[f]===b&&\"svg\"!==c.nodeName||h[c.nodeName][f]===b||(-1!==d.indexOf(f)?c.setAttribute(a(f),b):m+=a(f)+\":\"+b+\";\")}var m=\"\",n,q,t;if(1===c.nodeType&&-1===f.indexOf(c.nodeName)){var u=y.getComputedStyle(c,null);var w=\"svg\"===c.nodeName?{}:y.getComputedStyle(c.parentNode,null);if(!h[c.nodeName]){k=l.getElementsByTagName(\"svg\")[0];var v=l.createElementNS(c.namespaceURI,c.nodeName);k.appendChild(v);h[c.nodeName]=r(y.getComputedStyle(v,null));\"text\"===c.nodeName&&delete h.text.fill;\nk.removeChild(v)}if(O||N)for(var x in u)p(u[x],x);else E(u,p);m&&(u=c.getAttribute(\"style\"),c.setAttribute(\"style\",(u?u+\";\":\"\")+m));\"svg\"===c.nodeName&&c.setAttribute(\"stroke-width\",\"1px\");\"text\"!==c.nodeName&&[].forEach.call(c.children||c.childNodes,b)}}var c=this.renderer,d=c.inlineToAttributes,e=c.inlineBlacklist,g=c.inlineWhitelist,f=c.unstyledElements,h={},k;c=x.createElement(\"iframe\");q(c,{width:\"1px\",height:\"1px\",visibility:\"hidden\"});x.body.appendChild(c);var l=c.contentWindow.document;l.open();\nl.write('<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>');l.close();b(this.container.querySelector(\"svg\"));k.parentNode.removeChild(k)};H.menu=function(a,b,c,d){return[[\"M\",a,b+2.5],[\"L\",a+c,b+2.5],[\"M\",a,b+d/2+.5],[\"L\",a+c,b+d/2+.5],[\"M\",a,b+d-1.5],[\"L\",a+c,b+d-1.5]]};H.menuball=function(a,b,c,d){a=[];d=d/3-2;return a=a.concat(this.circle(c-d,b,d,d),this.circle(c-d,b+d+4,d,d),this.circle(c-d,b+2*(d+4),d,d))};B.prototype.renderExporting=function(){var a=this,b=a.options.exporting,c=b.buttons,d=a.isDirtyExporting||\n!a.exportSVGElements;a.buttonOffset=0;a.isDirtyExporting&&a.destroyExport();d&&!1!==b.enabled&&(a.exportEvents=[],a.exportingGroup=a.exportingGroup||a.renderer.g(\"exporting-group\").attr({zIndex:3}).add(),E(c,function(b){a.addButton(b)}),a.isDirtyExporting=!1);l(a,\"destroy\",a.destroyExport)};l(B,\"init\",function(){var a=this;a.exporting={update:function(b,c){a.isDirtyExporting=!0;r(!0,a.options.exporting,b);t(c,!0)&&a.redraw()}};g.addUpdate(function(b,c){a.isDirtyExporting=!0;r(!0,a.options.navigation,\nb);t(c,!0)&&a.redraw()},a)});B.prototype.callbacks.push(function(a){a.renderExporting();l(a,\"redraw\",a.renderExporting)})});n(g,\"masters/modules/exporting.src.js\",[],function(){})});\n//# sourceMappingURL=exporting.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/highcharts/modules/exporting.js\n// module id = 314\n// module chunks = 0","/*\n Highstock JS v8.1.0 (2020-05-05)\n\n (c) 2009-2018 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(S,P){\"object\"===typeof module&&module.exports?(P[\"default\"]=P,module.exports=S.document?P(S):P):\"function\"===typeof define&&define.amd?define(\"highcharts/highstock\",function(){return P(S)}):(S.Highcharts&&S.Highcharts.error(16,!0),S.Highcharts=P(S))})(\"undefined\"!==typeof window?window:this,function(S){function P(k,g,H,v){k.hasOwnProperty(g)||(k[g]=v.apply(null,H))}var A={};P(A,\"parts/Globals.js\",[],function(){var k=\"undefined\"!==typeof S?S:\"undefined\"!==typeof window?window:{},g=k.document,\nH=k.navigator&&k.navigator.userAgent||\"\",v=g&&g.createElementNS&&!!g.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect,K=/(edge|msie|trident)/i.test(H)&&!k.opera,G=-1!==H.indexOf(\"Firefox\"),N=-1!==H.indexOf(\"Chrome\"),M=G&&4>parseInt(H.split(\"Firefox/\")[1],10);return{product:\"Highcharts\",version:\"8.1.0\",deg2rad:2*Math.PI/360,doc:g,hasBidiBug:M,hasTouch:!!k.TouchEvent,isMS:K,isWebKit:-1!==H.indexOf(\"AppleWebKit\"),isFirefox:G,isChrome:N,isSafari:!N&&-1!==H.indexOf(\"Safari\"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(H),\nSVG_NS:\"http://www.w3.org/2000/svg\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:v,win:k,marginNames:[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],noop:function(){},charts:[],dateFormats:{}}});P(A,\"parts/Utilities.js\",[A[\"parts/Globals.js\"]],function(k){function g(){var b,d=arguments,n={},x=function(b,d){\"object\"!==typeof b&&(b={});T(d,function(n,a){!H(n,!0)||q(n)||t(n)?b[a]=d[a]:b[a]=x(b[a]||{},n)});return b};!0===d[0]&&(n=d[1],d=Array.prototype.slice.call(d,2));var a=d.length;for(b=0;b<\na;b++)n=x(n,d[b]);return n}function H(b,d){return!!b&&\"object\"===typeof b&&(!d||!z(b))}function v(b,d,n){var x;D(d)?f(n)?b.setAttribute(d,n):b&&b.getAttribute&&((x=b.getAttribute(d))||\"class\"!==d||(x=b.getAttribute(d+\"Name\"))):T(d,function(d,n){b.setAttribute(n,d)});return x}function K(){for(var b=arguments,d=b.length,n=0;n<d;n++){var x=b[n];if(\"undefined\"!==typeof x&&null!==x)return x}}function G(b,d){if(!b)return d;var n=b.split(\".\").reverse();if(1===n.length)return d[b];for(b=n.pop();\"undefined\"!==\ntypeof b&&\"undefined\"!==typeof d&&null!==d;)d=d[b],b=n.pop();return d}k.timers=[];var N=k.charts,M=k.doc,y=k.win,I=k.error=function(b,d,n,x){var a=r(b),c=a?\"Highcharts error #\"+b+\": www.highcharts.com/errors/\"+b+\"/\":b.toString(),e=function(){if(d)throw Error(c);y.console&&console.log(c)};if(\"undefined\"!==typeof x){var f=\"\";a&&(c+=\"?\");T(x,function(b,d){f+=\"\\n\"+d+\": \"+b;a&&(c+=encodeURI(d)+\"=\"+encodeURI(b))});c+=f}n?Z(n,\"displayError\",{code:b,message:c,params:x},e):e()},J=function(){function b(b,d,\nn){this.options=d;this.elem=b;this.prop=n}b.prototype.dSetter=function(){var b=this.paths,d=b&&b[0];b=b&&b[1];var n=[],x=this.now||0;if(1!==x&&d&&b)if(d.length===b.length&&1>x)for(var a=0;a<b.length;a++){for(var c=d[a],e=b[a],f=[],m=0;m<e.length;m++){var u=c[m],p=e[m];f[m]=\"number\"===typeof u&&\"number\"===typeof p&&(\"A\"!==e[0]||4!==m&&5!==m)?u+x*(p-u):p}n.push(f)}else n=b;else n=this.toD||[];this.elem.attr(\"d\",n,void 0,!0)};b.prototype.update=function(){var b=this.elem,d=this.prop,n=this.now,x=this.options.step;\nif(this[d+\"Setter\"])this[d+\"Setter\"]();else b.attr?b.element&&b.attr(d,n,null,!0):b.style[d]=n+this.unit;x&&x.call(b,n,this)};b.prototype.run=function(b,d,n){var x=this,a=x.options,c=function(b){return c.stopped?!1:x.step(b)},e=y.requestAnimationFrame||function(b){setTimeout(b,13)},f=function(){for(var b=0;b<k.timers.length;b++)k.timers[b]()||k.timers.splice(b--,1);k.timers.length&&e(f)};b!==d||this.elem[\"forceAnimate:\"+this.prop]?(this.startTime=+new Date,this.start=b,this.end=d,this.unit=n,this.now=\nthis.start,this.pos=0,c.elem=this.elem,c.prop=this.prop,c()&&1===k.timers.push(c)&&e(f)):(delete a.curAnim[this.prop],a.complete&&0===Object.keys(a.curAnim).length&&a.complete.call(this.elem))};b.prototype.step=function(b){var d=+new Date,n=this.options,x=this.elem,a=n.complete,c=n.duration,e=n.curAnim;if(x.attr&&!x.element)b=!1;else if(b||d>=c+this.startTime){this.now=this.end;this.pos=1;this.update();var f=e[this.prop]=!0;T(e,function(b){!0!==b&&(f=!1)});f&&a&&a.call(x);b=!1}else this.pos=n.easing((d-\nthis.startTime)/c),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b};b.prototype.initPath=function(b,d,n){function x(b,d){for(;b.length<h;){var n=b[0],x=d[h-b.length];x&&\"M\"===n[0]&&(b[0]=\"C\"===x[0]?[\"C\",n[1],n[2],n[1],n[2],n[1],n[2]]:[\"L\",n[1],n[2]]);b.unshift(n);f&&b.push(b[b.length-1])}}function a(b,d){for(;b.length<h;)if(d=b[b.length/m-1].slice(),\"C\"===d[0]&&(d[1]=d[5],d[2]=d[6]),f){var n=b[b.length/m].slice();b.splice(b.length/2,0,d,n)}else b.push(d)}var c=b.startX,\ne=b.endX;d=d&&d.slice();n=n.slice();var f=b.isArea,m=f?2:1;if(!d)return[n,n];if(c&&e){for(b=0;b<c.length;b++)if(c[b]===e[0]){var u=b;break}else if(c[0]===e[e.length-c.length+b]){u=b;var p=!0;break}else if(c[c.length-1]===e[e.length-c.length+b]){u=c.length-b;break}\"undefined\"===typeof u&&(d=[])}if(d.length&&r(u)){var h=n.length+u*m;p?(x(d,n),a(n,d)):(x(n,d),a(d,n))}return[d,n]};b.prototype.fillSetter=function(){b.prototype.strokeSetter.apply(this,arguments)};b.prototype.strokeSetter=function(){this.elem.attr(this.prop,\nk.color(this.start).tweenTo(k.color(this.end),this.pos),null,!0)};return b}();k.Fx=J;k.merge=g;var E=k.pInt=function(b,d){return parseInt(b,d||10)},D=k.isString=function(b){return\"string\"===typeof b},z=k.isArray=function(b){b=Object.prototype.toString.call(b);return\"[object Array]\"===b||\"[object Array Iterator]\"===b};k.isObject=H;var t=k.isDOMElement=function(b){return H(b)&&\"number\"===typeof b.nodeType},q=k.isClass=function(b){var d=b&&b.constructor;return!(!H(b,!0)||t(b)||!d||!d.name||\"Object\"===\nd.name)},r=k.isNumber=function(b){return\"number\"===typeof b&&!isNaN(b)&&Infinity>b&&-Infinity<b},h=k.erase=function(b,d){for(var n=b.length;n--;)if(b[n]===d){b.splice(n,1);break}},f=k.defined=function(b){return\"undefined\"!==typeof b&&null!==b};k.attr=v;var a=k.splat=function(b){return z(b)?b:[b]},l=k.syncTimeout=function(b,d,n){if(0<d)return setTimeout(b,d,n);b.call(0,n);return-1},e=k.clearTimeout=function(b){f(b)&&clearTimeout(b)},c=k.extend=function(b,d){var n;b||(b={});for(n in d)b[n]=d[n];return b};\nk.pick=K;var m=k.css=function(b,d){k.isMS&&!k.svg&&d&&\"undefined\"!==typeof d.opacity&&(d.filter=\"alpha(opacity=\"+100*d.opacity+\")\");c(b.style,d)},u=k.createElement=function(b,d,n,x,a){b=M.createElement(b);d&&c(b,d);a&&m(b,{padding:\"0\",border:\"none\",margin:\"0\"});n&&m(b,n);x&&x.appendChild(b);return b},L=k.extendClass=function(b,d){var n=function(){};n.prototype=new b;c(n.prototype,d);return n},F=k.pad=function(b,d,n){return Array((d||2)+1-String(b).replace(\"-\",\"\").length).join(n||\"0\")+b},w=k.relativeLength=\nfunction(b,d,n){return/%$/.test(b)?d*parseFloat(b)/100+(n||0):parseFloat(b)},p=k.wrap=function(b,d,n){var x=b[d];b[d]=function(){var b=Array.prototype.slice.call(arguments),d=arguments,a=this;a.proceed=function(){x.apply(a,arguments.length?arguments:d)};b.unshift(x);b=n.apply(this,b);a.proceed=null;return b}},C=k.format=function(b,d,n){var x=\"{\",a=!1,c=[],e=/f$/,f=/\\.([0-9])/,m=k.defaultOptions.lang,u=n&&n.time||k.time;for(n=n&&n.numberFormatter||W;b;){var p=b.indexOf(x);if(-1===p)break;var h=b.slice(0,\np);if(a){h=h.split(\":\");x=G(h.shift()||\"\",d);if(h.length&&\"number\"===typeof x)if(h=h.join(\":\"),e.test(h)){var Q=parseInt((h.match(f)||[\"\",\"-1\"])[1],10);null!==x&&(x=n(x,Q,m.decimalPoint,-1<h.indexOf(\",\")?m.thousandsSep:\"\"))}else x=u.dateFormat(h,x);c.push(x)}else c.push(h);b=b.slice(p+1);x=(a=!a)?\"}\":\"{\"}c.push(b);return c.join(\"\")},O=k.getMagnitude=function(b){return Math.pow(10,Math.floor(Math.log(b)/Math.LN10))},B=k.normalizeTickInterval=function(b,d,n,x,a){var c=b;n=K(n,1);var e=b/n;d||(d=a?[1,\n1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===x&&(1===n?d=d.filter(function(b){return 0===b%1}):.1>=n&&(d=[1/n])));for(x=0;x<d.length&&!(c=d[x],a&&c*n>=b||!a&&e<=(d[x]+(d[x+1]||d[x]))/2);x++);return c=R(c*n,-Math.round(Math.log(.001)/Math.LN10))},d=k.stableSort=function(b,d){var n=b.length,x,a;for(a=0;a<n;a++)b[a].safeI=a;b.sort(function(b,n){x=d(b,n);return 0===x?b.safeI-n.safeI:x});for(a=0;a<n;a++)delete b[a].safeI},b=k.arrayMin=function(b){for(var d=b.length,n=b[0];d--;)b[d]<n&&(n=b[d]);return n},\nn=k.arrayMax=function(b){for(var d=b.length,n=b[0];d--;)b[d]>n&&(n=b[d]);return n},x=k.destroyObjectProperties=function(b,d){T(b,function(n,x){n&&n!==d&&n.destroy&&n.destroy();delete b[x]})},Q=k.discardElement=function(b){var d=k.garbageBin;d||(d=u(\"div\"));b&&d.appendChild(b);d.innerHTML=\"\"},R=k.correctFloat=function(b,d){return parseFloat(b.toPrecision(d||14))},X=k.setAnimation=function(b,d){d.renderer.globalAnimation=K(b,d.options.chart.animation,!0)},U=k.animObject=function(b){return H(b)?g(b):\n{duration:b?500:0}},V=k.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},W=k.numberFormat=function(b,d,n,x){b=+b||0;d=+d;var a=k.defaultOptions.lang,c=(b.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,e=b.toString().split(\"e\");if(-1===d)d=Math.min(c,20);else if(!r(d))d=2;else if(d&&e[1]&&0>e[1]){var f=d+ +e[1];0<=f?(e[0]=(+e[0]).toExponential(f).split(\"e\")[0],d=f):(e[0]=e[0].split(\".\")[0]||0,b=20>d?(e[0]*Math.pow(10,e[1])).toFixed(d):\n0,e[1]=0)}var m=(Math.abs(e[1]?e[0]:b)+Math.pow(10,-Math.max(d,c)-1)).toFixed(d);c=String(E(m));f=3<c.length?c.length%3:0;n=K(n,a.decimalPoint);x=K(x,a.thousandsSep);b=(0>b?\"-\":\"\")+(f?c.substr(0,f)+x:\"\");b+=c.substr(f).replace(/(\\d{3})(?=\\d)/g,\"$1\"+x);d&&(b+=n+m.slice(-d));e[1]&&0!==+b&&(b+=\"e\"+e[1]);return b};Math.easeInOutSine=function(b){return-.5*(Math.cos(Math.PI*b)-1)};var aa=k.getStyle=function(b,d,n){if(\"width\"===d)return d=Math.min(b.offsetWidth,b.scrollWidth),n=b.getBoundingClientRect&&\nb.getBoundingClientRect().width,n<d&&n>=d-1&&(d=Math.floor(n)),Math.max(0,d-k.getStyle(b,\"padding-left\")-k.getStyle(b,\"padding-right\"));if(\"height\"===d)return Math.max(0,Math.min(b.offsetHeight,b.scrollHeight)-k.getStyle(b,\"padding-top\")-k.getStyle(b,\"padding-bottom\"));y.getComputedStyle||I(27,!0);if(b=y.getComputedStyle(b,void 0))b=b.getPropertyValue(d),K(n,\"opacity\"!==d)&&(b=E(b));return b},Y=k.inArray=function(b,d,n){return d.indexOf(b,n)},fa=k.find=Array.prototype.find?function(b,d){return b.find(d)}:\nfunction(b,d){var n,x=b.length;for(n=0;n<x;n++)if(d(b[n],n))return b[n]};k.keys=Object.keys;var ba=k.offset=function(b){var d=M.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,left:0};return{top:b.top+(y.pageYOffset||d.scrollTop)-(d.clientTop||0),left:b.left+(y.pageXOffset||d.scrollLeft)-(d.clientLeft||0)}},ca=k.stop=function(b,d){for(var n=k.timers.length;n--;)k.timers[n].elem!==b||d&&d!==k.timers[n].prop||(k.timers[n].stopped=!0)},T=k.objectEach=function(b,d,n){for(var x in b)Object.hasOwnProperty.call(b,\nx)&&d.call(n||b[x],b[x],x,b)};T({map:\"map\",each:\"forEach\",grep:\"filter\",reduce:\"reduce\",some:\"some\"},function(b,d){k[d]=function(d){return Array.prototype[b].apply(d,[].slice.call(arguments,1))}});var ha=k.addEvent=function(b,d,n,x){void 0===x&&(x={});var a=b.addEventListener||k.addEventListenerPolyfill;var c=\"function\"===typeof b&&b.prototype?b.prototype.protoEvents=b.prototype.protoEvents||{}:b.hcEvents=b.hcEvents||{};k.Point&&b instanceof k.Point&&b.series&&b.series.chart&&(b.series.chart.runTrackerClick=\n!0);a&&a.call(b,d,n,!1);c[d]||(c[d]=[]);c[d].push({fn:n,order:\"number\"===typeof x.order?x.order:Infinity});c[d].sort(function(b,d){return b.order-d.order});return function(){A(b,d,n)}},A=k.removeEvent=function(b,d,n){function x(d,n){var x=b.removeEventListener||k.removeEventListenerPolyfill;x&&x.call(b,d,n,!1)}function a(n){var a;if(b.nodeName){if(d){var c={};c[d]=!0}else c=n;T(c,function(b,d){if(n[d])for(a=n[d].length;a--;)x(d,n[d][a].fn)})}}var c;[\"protoEvents\",\"hcEvents\"].forEach(function(e,f){var m=\n(f=f?b:b.prototype)&&f[e];m&&(d?(c=m[d]||[],n?(m[d]=c.filter(function(b){return n!==b.fn}),x(d,n)):(a(m),m[d]=[])):(a(m),f[e]={}))})},Z=k.fireEvent=function(b,d,n,x){var a;n=n||{};if(M.createEvent&&(b.dispatchEvent||b.fireEvent)){var e=M.createEvent(\"Events\");e.initEvent(d,!0,!0);c(e,n);b.dispatchEvent?b.dispatchEvent(e):b.fireEvent(d,e)}else n.target||c(n,{preventDefault:function(){n.defaultPrevented=!0},target:b,type:d}),function(d,x){void 0===d&&(d=[]);void 0===x&&(x=[]);var c=0,e=0,f=d.length+\nx.length;for(a=0;a<f;a++)!1===(d[c]?x[e]?d[c].order<=x[e].order?d[c++]:x[e++]:d[c++]:x[e++]).fn.call(b,n)&&n.preventDefault()}(b.protoEvents&&b.protoEvents[d],b.hcEvents&&b.hcEvents[d]);x&&!n.defaultPrevented&&x.call(b,n)},ia=k.animate=function(b,d,n){var x,a=\"\",c,e;if(!H(n)){var f=arguments;n={duration:f[2],easing:f[3],complete:f[4]}}r(n.duration)||(n.duration=400);n.easing=\"function\"===typeof n.easing?n.easing:Math[n.easing]||Math.easeInOutSine;n.curAnim=g(d);T(d,function(f,m){ca(b,m);e=new J(b,\nn,m);c=null;\"d\"===m&&z(d.d)?(e.paths=e.initPath(b,b.pathArray,d.d),e.toD=d.d,x=0,c=1):b.attr?x=b.attr(m):(x=parseFloat(aa(b,m))||0,\"opacity\"!==m&&(a=\"px\"));c||(c=f);c&&c.match&&c.match(\"px\")&&(c=c.replace(/px/g,\"\"));e.run(x,c,a)})},ja=k.seriesType=function(b,d,n,x,a){var c=k.getOptions(),e=k.seriesTypes;c.plotOptions[b]=g(c.plotOptions[d],n);e[b]=L(e[d]||function(){},x);e[b].prototype.type=b;a&&(e[b].prototype.pointClass=L(k.Point,a));return e[b]},ea=k.uniqueKey=function(){var b=Math.random().toString(36).substring(2,\n9),d=0;return function(){return\"highcharts-\"+b+\"-\"+d++}}(),P=k.isFunction=function(b){return\"function\"===typeof b};y.jQuery&&(y.jQuery.fn.highcharts=function(){var b=[].slice.call(arguments);if(this[0])return b[0]?(new (k[D(b[0])?b.shift():\"Chart\"])(this[0],b[0],b[1]),this):N[v(this[0],\"data-highcharts-chart\")]});return{Fx:k.Fx,addEvent:ha,animate:ia,animObject:U,arrayMax:n,arrayMin:b,attr:v,clamp:function(b,d,n){return b>d?b<n?b:n:d},clearTimeout:e,correctFloat:R,createElement:u,css:m,defined:f,\ndestroyObjectProperties:x,discardElement:Q,erase:h,error:I,extend:c,extendClass:L,find:fa,fireEvent:Z,format:C,getMagnitude:O,getNestedProperty:G,getStyle:aa,inArray:Y,isArray:z,isClass:q,isDOMElement:t,isFunction:P,isNumber:r,isObject:H,isString:D,merge:g,normalizeTickInterval:B,numberFormat:W,objectEach:T,offset:ba,pad:F,pick:K,pInt:E,relativeLength:w,removeEvent:A,seriesType:ja,setAnimation:X,splat:a,stableSort:d,stop:ca,syncTimeout:l,timeUnits:V,uniqueKey:ea,wrap:p}});P(A,\"parts/Color.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Utilities.js\"]],function(k,g){var H=g.isNumber,v=g.merge,K=g.pInt;g=function(){function g(k){this.parsers=[{regex:/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]?(?:\\.[0-9]+)?)\\s*\\)/,parse:function(g){return[K(g[1]),K(g[2]),K(g[3]),parseFloat(g[4],10)]}},{regex:/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/,parse:function(g){return[K(g[1]),K(g[2]),K(g[3]),1]}}];this.rgba=[];if(!(this instanceof g))return new g(k);this.init(k)}g.parse=function(k){return new g(k)};\ng.prototype.init=function(k){var v,y;if((this.input=k=g.names[k&&k.toLowerCase?k.toLowerCase():\"\"]||k)&&k.stops)this.stops=k.stops.map(function(y){return new g(y[1])});else{if(k&&k.charAt&&\"#\"===k.charAt()){var I=k.length;k=parseInt(k.substr(1),16);7===I?v=[(k&16711680)>>16,(k&65280)>>8,k&255,1]:4===I&&(v=[(k&3840)>>4|(k&3840)>>8,(k&240)>>4|k&240,(k&15)<<4|k&15,1])}if(!v)for(y=this.parsers.length;y--&&!v;){var J=this.parsers[y];(I=J.regex.exec(k))&&(v=J.parse(I))}}this.rgba=v||[]};g.prototype.get=\nfunction(k){var g=this.input,y=this.rgba;if(\"undefined\"!==typeof this.stops){var I=v(g);I.stops=[].concat(I.stops);this.stops.forEach(function(y,g){I.stops[g]=[I.stops[g][0],y.get(k)]})}else I=y&&H(y[0])?\"rgb\"===k||!k&&1===y[3]?\"rgb(\"+y[0]+\",\"+y[1]+\",\"+y[2]+\")\":\"a\"===k?y[3]:\"rgba(\"+y.join(\",\")+\")\":g;return I};g.prototype.brighten=function(k){var g,y=this.rgba;if(this.stops)this.stops.forEach(function(y){y.brighten(k)});else if(H(k)&&0!==k)for(g=0;3>g;g++)y[g]+=K(255*k),0>y[g]&&(y[g]=0),255<y[g]&&\n(y[g]=255);return this};g.prototype.setOpacity=function(g){this.rgba[3]=g;return this};g.prototype.tweenTo=function(g,k){var y=this.rgba,v=g.rgba;v.length&&y&&y.length?(g=1!==v[3]||1!==y[3],k=(g?\"rgba(\":\"rgb(\")+Math.round(v[0]+(y[0]-v[0])*(1-k))+\",\"+Math.round(v[1]+(y[1]-v[1])*(1-k))+\",\"+Math.round(v[2]+(y[2]-v[2])*(1-k))+(g?\",\"+(v[3]+(y[3]-v[3])*(1-k)):\"\")+\")\"):k=g.input||\"none\";return k};g.names={white:\"#ffffff\",black:\"#000000\"};return g}();k.Color=g;k.color=g.parse;return k.Color});P(A,\"parts/SVGElement.js\",\n[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){var v=g.deg2rad,K=g.doc,G=g.hasTouch,N=g.isFirefox,M=g.noop,y=g.svg,I=g.SVG_NS,J=g.win,E=H.animate,D=H.animObject,z=H.attr,t=H.createElement,q=H.css,r=H.defined,h=H.erase,f=H.extend,a=H.fireEvent,l=H.inArray,e=H.isArray,c=H.isFunction,m=H.isNumber,u=H.isString,L=H.merge,F=H.objectEach,w=H.pick,p=H.pInt,C=H.stop,O=H.uniqueKey;H=function(){function B(){this.height=this.element=void 0;this.opacity=1;this.renderer=void 0;\nthis.SVG_NS=I;this.symbolCustomAttribs=\"x y width height r start end innerR anchorX anchorY rounded\".split(\" \");this.textProps=\"color cursor direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width\".split(\" \");this.width=void 0}B.prototype._defaultGetter=function(d){d=w(this[d+\"Value\"],this[d],this.element?this.element.getAttribute(d):null,0);/^[\\-0-9\\.]+$/.test(d)&&(d=parseFloat(d));return d};B.prototype._defaultSetter=function(d,b,n){n.setAttribute(b,\nd)};B.prototype.add=function(d){var b=this.renderer,n=this.element;d&&(this.parentGroup=d);this.parentInverted=d&&d.inverted;\"undefined\"!==typeof this.textStr&&b.buildText(this);this.added=!0;if(!d||d.handleZ||this.zIndex)var x=this.zIndexSetter();x||(d?d.element:b.box).appendChild(n);if(this.onAdd)this.onAdd();return this};B.prototype.addClass=function(d,b){var n=b?\"\":this.attr(\"class\")||\"\";d=(d||\"\").split(/ /g).reduce(function(b,d){-1===n.indexOf(d)&&b.push(d);return b},n?[n]:[]).join(\" \");d!==\nn&&this.attr(\"class\",d);return this};B.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)};B.prototype.align=function(d,b,n){var x,a={};var c=this.renderer;var e=c.alignedObjects;var f,m;if(d){if(this.alignOptions=d,this.alignByTranslate=b,!n||u(n))this.alignTo=x=n||\"renderer\",h(e,this),e.push(this),n=void 0}else d=this.alignOptions,b=this.alignByTranslate,x=this.alignTo;n=w(n,c[x],c);x=d.align;c=d.verticalAlign;e=(n.x||0)+(d.x||0);var p=(n.y||0)+(d.y||\n0);\"right\"===x?f=1:\"center\"===x&&(f=2);f&&(e+=(n.width-(d.width||0))/f);a[b?\"translateX\":\"x\"]=Math.round(e);\"bottom\"===c?m=1:\"middle\"===c&&(m=2);m&&(p+=(n.height-(d.height||0))/m);a[b?\"translateY\":\"y\"]=Math.round(p);this[this.placed?\"animate\":\"attr\"](a);this.placed=!0;this.alignAttr=a;return this};B.prototype.alignSetter=function(d){var b={left:\"start\",center:\"middle\",right:\"end\"};b[d]&&(this.alignValue=d,this.element.setAttribute(\"text-anchor\",b[d]))};B.prototype.animate=function(d,b,n){var x=D(w(b,\nthis.renderer.globalAnimation,!0));w(K.hidden,K.msHidden,K.webkitHidden,!1)&&(x.duration=0);0!==x.duration?(n&&(x.complete=n),E(this,d,x)):(this.attr(d,void 0,n),F(d,function(b,d){x.step&&x.step.call(this,b,{prop:d,pos:1})},this));return this};B.prototype.applyTextOutline=function(d){var b=this.element,n;-1!==d.indexOf(\"contrast\")&&(d=d.replace(/contrast/g,this.renderer.getContrast(b.style.fill)));d=d.split(\" \");var x=d[d.length-1];if((n=d[0])&&\"none\"!==n&&g.svg){this.fakeTS=!0;d=[].slice.call(b.getElementsByTagName(\"tspan\"));\nthis.ySetter=this.xSetter;n=n.replace(/(^[\\d\\.]+)(.*?)$/g,function(b,d,n){return 2*d+n});this.removeTextOutline(d);var a=b.textContent?/^[\\u0591-\\u065F\\u066A-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC]/.test(b.textContent):!1;var c=b.firstChild;d.forEach(function(d,e){0===e&&(d.setAttribute(\"x\",b.getAttribute(\"x\")),e=b.getAttribute(\"y\"),d.setAttribute(\"y\",e||0),null===e&&b.setAttribute(\"y\",0));e=d.cloneNode(!0);z(a&&!N?d:e,{\"class\":\"highcharts-text-outline\",fill:x,stroke:x,\"stroke-width\":n,\"stroke-linejoin\":\"round\"});\nb.insertBefore(e,c)});a&&N&&d[0]&&(d=d[0].cloneNode(!0),d.textContent=\" \",b.insertBefore(d,c))}};B.prototype.attr=function(d,b,n,x){var a=this.element,c,e=this,f,m,u=this.symbolCustomAttribs;if(\"string\"===typeof d&&\"undefined\"!==typeof b){var p=d;d={};d[p]=b}\"string\"===typeof d?e=(this[d+\"Getter\"]||this._defaultGetter).call(this,d,a):(F(d,function(b,n){f=!1;x||C(this,n);this.symbolName&&-1!==l(n,u)&&(c||(this.symbolAttr(d),c=!0),f=!0);!this.rotation||\"x\"!==n&&\"y\"!==n||(this.doTransform=!0);f||(m=\nthis[n+\"Setter\"]||this._defaultSetter,m.call(this,b,n,a),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(n)&&this.updateShadows(n,b,m))},this),this.afterSetters());n&&n.call(this);return e};B.prototype.clip=function(d){return this.attr(\"clip-path\",d?\"url(\"+this.renderer.url+\"#\"+d.id+\")\":\"none\")};B.prototype.crisp=function(d,b){b=b||d.strokeWidth||0;var n=Math.round(b)%2/2;d.x=Math.floor(d.x||this.x||0)+n;d.y=Math.floor(d.y||this.y||0)+n;d.width=Math.floor((d.width||\nthis.width||0)-2*n);d.height=Math.floor((d.height||this.height||0)-2*n);r(d.strokeWidth)&&(d.strokeWidth=b);return d};B.prototype.complexColor=function(d,b,n){var x=this.renderer,c,f,m,u,p,h,w,l,C,B,t=[],q;a(this.renderer,\"complexColor\",{args:arguments},function(){d.radialGradient?f=\"radialGradient\":d.linearGradient&&(f=\"linearGradient\");if(f){m=d[f];p=x.gradients;h=d.stops;C=n.radialReference;e(m)&&(d[f]=m={x1:m[0],y1:m[1],x2:m[2],y2:m[3],gradientUnits:\"userSpaceOnUse\"});\"radialGradient\"===f&&C&&\n!r(m.gradientUnits)&&(u=m,m=L(m,x.getRadialAttr(C,u),{gradientUnits:\"userSpaceOnUse\"}));F(m,function(b,d){\"id\"!==d&&t.push(d,b)});F(h,function(b){t.push(b)});t=t.join(\",\");if(p[t])B=p[t].attr(\"id\");else{m.id=B=O();var a=p[t]=x.createElement(f).attr(m).add(x.defs);a.radAttr=u;a.stops=[];h.forEach(function(b){0===b[1].indexOf(\"rgba\")?(c=k.parse(b[1]),w=c.get(\"rgb\"),l=c.get(\"a\")):(w=b[1],l=1);b=x.createElement(\"stop\").attr({offset:b[0],\"stop-color\":w,\"stop-opacity\":l}).add(a);a.stops.push(b)})}q=\"url(\"+\nx.url+\"#\"+B+\")\";n.setAttribute(b,q);n.gradient=t;d.toString=function(){return q}}})};B.prototype.css=function(d){var b=this.styles,n={},x=this.element,a=\"\",c=!b,e=[\"textOutline\",\"textOverflow\",\"width\"];d&&d.color&&(d.fill=d.color);b&&F(d,function(d,x){b&&b[x]!==d&&(n[x]=d,c=!0)});if(c){b&&(d=f(b,n));if(d)if(null===d.width||\"auto\"===d.width)delete this.textWidth;else if(\"text\"===x.nodeName.toLowerCase()&&d.width)var m=this.textWidth=p(d.width);this.styles=d;m&&!y&&this.renderer.forExport&&delete d.width;\nif(x.namespaceURI===this.SVG_NS){var u=function(b,d){return\"-\"+d.toLowerCase()};F(d,function(b,d){-1===e.indexOf(d)&&(a+=d.replace(/([A-Z])/g,u)+\":\"+b+\";\")});a&&z(x,\"style\",a)}else q(x,d);this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),d&&d.textOutline&&this.applyTextOutline(d.textOutline))}return this};B.prototype.dashstyleSetter=function(d){var b=this[\"stroke-width\"];\"inherit\"===b&&(b=1);if(d=d&&d.toLowerCase()){var n=d.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\n\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(d=n.length;d--;)n[d]=\"\"+p(n[d])*w(b,NaN);d=n.join(\",\").replace(/NaN/g,\"none\");this.element.setAttribute(\"stroke-dasharray\",d)}};B.prototype.destroy=function(){var d=this,b=d.element||{},n=d.renderer,x=n.isSVG&&\"SPAN\"===b.nodeName&&d.parentGroup||void 0,a=b.ownerSVGElement;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=\nnull;C(d);if(d.clipPath&&a){var c=d.clipPath;[].forEach.call(a.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(b){-1<b.getAttribute(\"clip-path\").indexOf(c.element.id)&&b.removeAttribute(\"clip-path\")});d.clipPath=c.destroy()}if(d.stops){for(a=0;a<d.stops.length;a++)d.stops[a].destroy();d.stops.length=0;d.stops=void 0}d.safeRemoveChild(b);for(n.styledMode||d.destroyShadows();x&&x.div&&0===x.div.childNodes.length;)b=x.parentGroup,d.safeRemoveChild(x.div),delete x.div,x=b;d.alignTo&&h(n.alignedObjects,\nd);F(d,function(b,n){d[n]&&d[n].parentGroup===d&&d[n].destroy&&d[n].destroy();delete d[n]})};B.prototype.destroyShadows=function(){(this.shadows||[]).forEach(function(d){this.safeRemoveChild(d)},this);this.shadows=void 0};B.prototype.destroyTextPath=function(d,b){var n=d.getElementsByTagName(\"text\")[0];if(n){if(n.removeAttribute(\"dx\"),n.removeAttribute(\"dy\"),b.element.setAttribute(\"id\",\"\"),this.textPathWrapper&&n.getElementsByTagName(\"textPath\").length){for(d=this.textPathWrapper.element.childNodes;d.length;)n.appendChild(d[0]);\nn.removeChild(this.textPathWrapper.element)}}else if(d.getAttribute(\"dx\")||d.getAttribute(\"dy\"))d.removeAttribute(\"dx\"),d.removeAttribute(\"dy\");this.textPathWrapper&&(this.textPathWrapper=this.textPathWrapper.destroy())};B.prototype.dSetter=function(d,b,n){e(d)&&(\"string\"===typeof d[0]&&(d=this.renderer.pathToSegments(d)),this.pathArray=d,d=d.reduce(function(b,d,n){return d&&d.join?(n?b+\" \":\"\")+d.join(\" \"):(d||\"\").toString()},\"\"));/(NaN| {2}|^$)/.test(d)&&(d=\"M 0 0\");this[b]!==d&&(n.setAttribute(b,\nd),this[b]=d)};B.prototype.fadeOut=function(d){var b=this;b.animate({opacity:0},{duration:w(d,150),complete:function(){b.attr({y:-9999}).hide()}})};B.prototype.fillSetter=function(d,b,n){\"string\"===typeof d?n.setAttribute(b,d):d&&this.complexColor(d,b,n)};B.prototype.getBBox=function(d,b){var n,x=this.renderer,a=this.element,e=this.styles,m=this.textStr,u=x.cache,p=x.cacheKeys,h=a.namespaceURI===this.SVG_NS;b=w(b,this.rotation,0);var l=x.styledMode?a&&B.prototype.getStyle.call(a,\"font-size\"):e&&e.fontSize;\nif(r(m)){var C=m.toString();-1===C.indexOf(\"<\")&&(C=C.replace(/[0-9]/g,\"0\"));C+=[\"\",b,l,this.textWidth,e&&e.textOverflow,e&&e.fontWeight].join()}C&&!d&&(n=u[C]);if(!n){if(h||x.forExport){try{var F=this.fakeTS&&function(b){[].forEach.call(a.querySelectorAll(\".highcharts-text-outline\"),function(d){d.style.display=b})};c(F)&&F(\"none\");n=a.getBBox?f({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight};c(F)&&F(\"\")}catch(ba){\"\"}if(!n||0>n.width)n={width:0,height:0}}else n=this.htmlGetBBox();x.isSVG&&\n(d=n.width,x=n.height,h&&(n.height=x={\"11px,17\":14,\"13px,20\":16}[e&&e.fontSize+\",\"+Math.round(x)]||x),b&&(e=b*v,n.width=Math.abs(x*Math.sin(e))+Math.abs(d*Math.cos(e)),n.height=Math.abs(x*Math.cos(e))+Math.abs(d*Math.sin(e))));if(C&&0<n.height){for(;250<p.length;)delete u[p.shift()];u[C]||p.push(C);u[C]=n}}return n};B.prototype.getStyle=function(d){return J.getComputedStyle(this.element||this,\"\").getPropertyValue(d)};B.prototype.hasClass=function(d){return-1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(d)};\nB.prototype.hide=function(d){d?this.attr({y:-9999}):this.attr({visibility:\"hidden\"});return this};B.prototype.htmlGetBBox=function(){return{height:0,width:0,x:0,y:0}};B.prototype.init=function(d,b){this.element=\"span\"===b?t(b):K.createElementNS(this.SVG_NS,b);this.renderer=d;a(this,\"afterInit\")};B.prototype.invert=function(d){this.inverted=d;this.updateTransform();return this};B.prototype.on=function(d,b){var n,x,a=this.element,c;G&&\"click\"===d?(a.ontouchstart=function(b){n=b.touches[0].clientX;x=\nb.touches[0].clientY},a.ontouchend=function(d){n&&4<=Math.sqrt(Math.pow(n-d.changedTouches[0].clientX,2)+Math.pow(x-d.changedTouches[0].clientY,2))||b.call(a,d);c=!0;d.preventDefault()},a.onclick=function(d){c||b.call(a,d)}):a[\"on\"+d]=b;return this};B.prototype.opacitySetter=function(d,b,n){this[b]=d;n.setAttribute(b,d)};B.prototype.removeClass=function(d){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(u(d)?new RegExp(\" ?\"+d+\" ?\"):d,\"\"))};B.prototype.removeTextOutline=function(d){for(var b=\nd.length,n;b--;)n=d[b],\"highcharts-text-outline\"===n.getAttribute(\"class\")&&h(d,this.element.removeChild(n))};B.prototype.safeRemoveChild=function(d){var b=d.parentNode;b&&b.removeChild(d)};B.prototype.setRadialReference=function(d){var b=this.element.gradient&&this.renderer.gradients[this.element.gradient];this.element.radialReference=d;b&&b.radAttr&&b.animate(this.renderer.getRadialAttr(d,b.radAttr));return this};B.prototype.setTextPath=function(d,b){var n=this.element,x={textAnchor:\"text-anchor\"},\na=!1,c=this.textPathWrapper,e=!c;b=L(!0,{enabled:!0,attributes:{dy:-5,startOffset:\"50%\",textAnchor:\"middle\"}},b);var f=b.attributes;if(d&&b&&b.enabled){c&&null===c.element.parentNode?(e=!0,c=c.destroy()):c&&this.removeTextOutline.call(c.parentGroup,[].slice.call(n.getElementsByTagName(\"tspan\")));this.options&&this.options.padding&&(f.dx=-this.options.padding);c||(this.textPathWrapper=c=this.renderer.createElement(\"textPath\"),a=!0);var u=c.element;(b=d.element.getAttribute(\"id\"))||d.element.setAttribute(\"id\",\nb=O());if(e)for(d=n.getElementsByTagName(\"tspan\");d.length;)d[0].setAttribute(\"y\",0),m(f.dx)&&d[0].setAttribute(\"x\",-f.dx),u.appendChild(d[0]);a&&c&&c.add({element:this.text?this.text.element:n});u.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",this.renderer.url+\"#\"+b);r(f.dy)&&(u.parentNode.setAttribute(\"dy\",f.dy),delete f.dy);r(f.dx)&&(u.parentNode.setAttribute(\"dx\",f.dx),delete f.dx);F(f,function(b,d){u.setAttribute(x[d]||d,b)});n.removeAttribute(\"transform\");this.removeTextOutline.call(c,\n[].slice.call(n.getElementsByTagName(\"tspan\")));this.text&&!this.renderer.styledMode&&this.attr({fill:\"none\",\"stroke-width\":0});this.applyTextOutline=this.updateTransform=M}else c&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(n,d),this.updateTransform(),this.options&&this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this};B.prototype.shadow=function(d,b,n){var x=[],a=this.element,c=!1,e=this.oldShadowOptions;var m={color:\"#000000\",\noffsetX:1,offsetY:1,opacity:.15,width:3};var u;!0===d?u=m:\"object\"===typeof d&&(u=f(m,d));u&&(u&&e&&F(u,function(b,d){b!==e[d]&&(c=!0)}),c&&this.destroyShadows(),this.oldShadowOptions=u);if(!u)this.destroyShadows();else if(!this.shadows){var p=u.opacity/u.width;var h=this.parentInverted?\"translate(-1,-1)\":\"translate(\"+u.offsetX+\", \"+u.offsetY+\")\";for(m=1;m<=u.width;m++){var w=a.cloneNode(!1);var l=2*u.width+1-2*m;z(w,{stroke:d.color||\"#000000\",\"stroke-opacity\":p*m,\"stroke-width\":l,transform:h,fill:\"none\"});\nw.setAttribute(\"class\",(w.getAttribute(\"class\")||\"\")+\" highcharts-shadow\");n&&(z(w,\"height\",Math.max(z(w,\"height\")-l,0)),w.cutHeight=l);b?b.element.appendChild(w):a.parentNode&&a.parentNode.insertBefore(w,a);x.push(w)}this.shadows=x}return this};B.prototype.show=function(d){return this.attr({visibility:d?\"inherit\":\"visible\"})};B.prototype.strokeSetter=function(d,b,n){this[b]=d;this.stroke&&this[\"stroke-width\"]?(B.prototype.fillSetter.call(this,this.stroke,\"stroke\",n),n.setAttribute(\"stroke-width\",\nthis[\"stroke-width\"]),this.hasStroke=!0):\"stroke-width\"===b&&0===d&&this.hasStroke?(n.removeAttribute(\"stroke\"),this.hasStroke=!1):this.renderer.styledMode&&this[\"stroke-width\"]&&(n.setAttribute(\"stroke-width\",this[\"stroke-width\"]),this.hasStroke=!0)};B.prototype.strokeWidth=function(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;var d=this.getStyle(\"stroke-width\"),b=0;if(d.indexOf(\"px\")===d.length-2)b=p(d);else if(\"\"!==d){var n=K.createElementNS(I,\"rect\");z(n,{width:d,\"stroke-width\":0});\nthis.element.parentNode.appendChild(n);b=n.getBBox().width;n.parentNode.removeChild(n)}return b};B.prototype.symbolAttr=function(d){var b=this;\"x y r start end width height innerR anchorX anchorY clockwise\".split(\" \").forEach(function(n){b[n]=w(d[n],b[n])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})};B.prototype.textSetter=function(d){d!==this.textStr&&(delete this.textPxLength,this.textStr=d,this.added&&this.renderer.buildText(this))};B.prototype.titleSetter=function(d){var b=\nthis.element.getElementsByTagName(\"title\")[0];b||(b=K.createElementNS(this.SVG_NS,\"title\"),this.element.appendChild(b));b.firstChild&&b.removeChild(b.firstChild);b.appendChild(K.createTextNode(String(w(d,\"\")).replace(/<[^>]*>/g,\"\").replace(/</g,\"<\").replace(/>/g,\">\")))};B.prototype.toFront=function(){var d=this.element;d.parentNode.appendChild(d);return this};B.prototype.translate=function(d,b){return this.attr({translateX:d,translateY:b})};B.prototype.updateShadows=function(d,b,n){var x=this.shadows;\nif(x)for(var a=x.length;a--;)n.call(x[a],\"height\"===d?Math.max(b-(x[a].cutHeight||0),0):\"d\"===d?this.d:b,d,x[a])};B.prototype.updateTransform=function(){var d=this.translateX||0,b=this.translateY||0,n=this.scaleX,x=this.scaleY,a=this.inverted,c=this.rotation,e=this.matrix,f=this.element;a&&(d+=this.width,b+=this.height);d=[\"translate(\"+d+\",\"+b+\")\"];r(e)&&d.push(\"matrix(\"+e.join(\",\")+\")\");a?d.push(\"rotate(90) scale(-1,1)\"):c&&d.push(\"rotate(\"+c+\" \"+w(this.rotationOriginX,f.getAttribute(\"x\"),0)+\" \"+\nw(this.rotationOriginY,f.getAttribute(\"y\")||0)+\")\");(r(n)||r(x))&&d.push(\"scale(\"+w(n,1)+\" \"+w(x,1)+\")\");d.length&&f.setAttribute(\"transform\",d.join(\" \"))};B.prototype.visibilitySetter=function(d,b,n){\"inherit\"===d?n.removeAttribute(b):this[b]!==d&&n.setAttribute(b,d);this[b]=d};B.prototype.xGetter=function(d){\"circle\"===this.element.nodeName&&(\"x\"===d?d=\"cx\":\"y\"===d&&(d=\"cy\"));return this._defaultGetter(d)};B.prototype.zIndexSetter=function(d,b){var n=this.renderer,x=this.parentGroup,a=(x||n).element||\nn.box,c=this.element,e=!1;n=a===n.box;var f=this.added;var m;r(d)?(c.setAttribute(\"data-z-index\",d),d=+d,this[b]===d&&(f=!1)):r(this[b])&&c.removeAttribute(\"data-z-index\");this[b]=d;if(f){(d=this.zIndex)&&x&&(x.handleZ=!0);b=a.childNodes;for(m=b.length-1;0<=m&&!e;m--){x=b[m];f=x.getAttribute(\"data-z-index\");var u=!r(f);if(x!==c)if(0>d&&u&&!n&&!m)a.insertBefore(c,b[m]),e=!0;else if(p(f)<=d||u&&(!r(d)||0<=d))a.insertBefore(c,b[m+1]||null),e=!0}e||(a.insertBefore(c,b[n?3:0]||null),e=!0)}return e};return B}();\nH.prototype[\"stroke-widthSetter\"]=H.prototype.strokeSetter;H.prototype.yGetter=H.prototype.xGetter;H.prototype.matrixSetter=H.prototype.rotationOriginXSetter=H.prototype.rotationOriginYSetter=H.prototype.rotationSetter=H.prototype.scaleXSetter=H.prototype.scaleYSetter=H.prototype.translateXSetter=H.prototype.translateYSetter=H.prototype.verticalAlignSetter=function(a,d){this[d]=a;this.doTransform=!0};g.SVGElement=H;return g.SVGElement});P(A,\"parts/SvgRenderer.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],\nA[\"parts/SVGElement.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=k.parse,G=v.addEvent,N=v.attr,M=v.createElement,y=v.css,I=v.defined,J=v.destroyObjectProperties,E=v.extend,D=v.isArray,z=v.isNumber,t=v.isObject,q=v.isString,r=v.merge,h=v.objectEach,f=v.pick,a=v.pInt,l=v.removeEvent,e=v.splat,c=v.uniqueKey,m=g.charts,u=g.deg2rad,L=g.doc,F=g.isFirefox,w=g.isMS,p=g.isWebKit;v=g.noop;var C=g.svg,O=g.SVG_NS,B=g.symbolSizes,d=g.win;k=g.SVGRenderer=function(){this.init.apply(this,arguments)};E(k.prototype,\n{Element:H,SVG_NS:O,init:function(b,n,x,a,c,e,f){var m=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"});f||m.css(this.getStyle(a));a=m.element;b.appendChild(a);N(b,\"dir\",\"ltr\");-1===b.innerHTML.indexOf(\"xmlns\")&&N(a,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=a;this.boxWrapper=m;this.alignedObjects=[];this.url=(F||p)&&L.getElementsByTagName(\"base\").length?d.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\"):\"\";this.createElement(\"desc\").add().element.appendChild(L.createTextNode(\"Created with Highcharts 8.1.0\"));\nthis.defs=this.createElement(\"defs\").add();this.allowHTML=e;this.forExport=c;this.styledMode=f;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(n,x,!1);var u;F&&b.getBoundingClientRect&&(n=function(){y(b,{left:0,top:0});u=b.getBoundingClientRect();y(b,{left:Math.ceil(u.left)-u.left+\"px\",top:Math.ceil(u.top)-u.top+\"px\"})},n(),this.unSubPixelFix=G(d,\"resize\",n))},definition:function(b){function d(b,n){var x;e(b).forEach(function(b){var c=a.createElement(b.tagName),e={};\nh(b,function(b,d){\"tagName\"!==d&&\"children\"!==d&&\"textContent\"!==d&&(e[d]=b)});c.attr(e);c.add(n||a.defs);b.textContent&&c.element.appendChild(L.createTextNode(b.textContent));d(b.children||[],c);x=c});return x}var a=this;return d(b)},getStyle:function(b){return this.style=E({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},b)},setStyle:function(b){this.boxWrapper.css(this.getStyle(b))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var b=\nthis.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();J(this.gradients||{});this.gradients=null;b&&(this.defs=b.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(b){var d=new this.Element;d.init(this,b);return d},draw:v,getRadialAttr:function(b,d){return{cx:b[0]-b[2]/2+d.cx*b[2],cy:b[1]-b[2]/2+d.cy*b[2],r:d.r*b[2]}},truncate:function(b,d,a,c,e,f,m){var n=this,x=b.rotation,u,p=c?1:0,h=(a||c).length,w=h,l=[],C=function(b){d.firstChild&&\nd.removeChild(d.firstChild);b&&d.appendChild(L.createTextNode(b))},F=function(x,f){f=f||x;if(\"undefined\"===typeof l[f])if(d.getSubStringLength)try{l[f]=e+d.getSubStringLength(0,c?f+1:f)}catch(ea){\"\"}else n.getSpanWidth&&(C(m(a||c,x)),l[f]=e+n.getSpanWidth(b,d));return l[f]},Q;b.rotation=0;var R=F(d.textContent.length);if(Q=e+R>f){for(;p<=h;)w=Math.ceil((p+h)/2),c&&(u=m(c,w)),R=F(w,u&&u.length-1),p===h?p=h+1:R>f?h=w-1:p=w;0===h?C(\"\"):a&&h===a.length-1||C(u||m(a||c,w))}c&&c.splice(0,w);b.actualWidth=\nR;b.rotation=x;return Q},escapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},buildText:function(b){var d=b.element,x=this,c=x.forExport,e=f(b.textStr,\"\").toString(),m=-1!==e.indexOf(\"<\"),u=d.childNodes,p,w=N(d,\"x\"),l=b.styles,F=b.textWidth,B=l&&l.lineHeight,r=l&&l.textOutline,t=l&&\"ellipsis\"===l.textOverflow,q=l&&\"nowrap\"===l.whiteSpace,z=l&&l.fontSize,g,k=u.length;l=F&&!b.added&&this.box;var D=function(b){var n;x.styledMode||(n=/(px|em)$/.test(b&&b.style.fontSize)?b.style.fontSize:\nz||x.style.fontSize||12);return B?a(B):x.fontMetrics(n,b.getAttribute(\"style\")?b:d).h},E=function(b,d){h(x.escapes,function(n,a){d&&-1!==d.indexOf(n)||(b=b.toString().replace(new RegExp(n,\"g\"),a))});return b},v=function(b,d){var n=b.indexOf(\"<\");b=b.substring(n,b.indexOf(\">\")-n);n=b.indexOf(d+\"=\");if(-1!==n&&(n=n+d.length+1,d=b.charAt(n),'\"'===d||\"'\"===d))return b=b.substring(n+1),b.substring(0,b.indexOf(d))},I=/<br.*?>/g;var J=[e,t,q,B,r,z,F].join();if(J!==b.textCache){for(b.textCache=J;k--;)d.removeChild(u[k]);\nm||r||t||F||-1!==e.indexOf(\" \")&&(!q||I.test(e))?(l&&l.appendChild(d),m?(e=x.styledMode?e.replace(/<(b|strong)>/g,'<span class=\"highcharts-strong\">').replace(/<(i|em)>/g,'<span class=\"highcharts-emphasized\">'):e.replace(/<(b|strong)>/g,'<span style=\"font-weight:bold\">').replace(/<(i|em)>/g,'<span style=\"font-style:italic\">'),e=e.replace(/<a/g,\"<span\").replace(/<\\/(b|strong|i|em|a)>/g,\"</span>\").split(I)):e=[e],e=e.filter(function(b){return\"\"!==b}),e.forEach(function(n,a){var e=0,f=0;n=n.replace(/^\\s+|\\s+$/g,\n\"\").replace(/<span/g,\"|||<span\").replace(/<\\/span>/g,\"</span>|||\");var m=n.split(\"|||\");m.forEach(function(n){if(\"\"!==n||1===m.length){var u={},h=L.createElementNS(x.SVG_NS,\"tspan\"),l,Q;(l=v(n,\"class\"))&&N(h,\"class\",l);if(l=v(n,\"style\"))l=l.replace(/(;| |^)color([ :])/,\"$1fill$2\"),N(h,\"style\",l);(Q=v(n,\"href\"))&&!c&&(N(h,\"onclick\",'location.href=\"'+Q+'\"'),N(h,\"class\",\"highcharts-anchor\"),x.styledMode||y(h,{cursor:\"pointer\"}));n=E(n.replace(/<[a-zA-Z\\/](.|\\n)*?>/g,\"\")||\" \");if(\" \"!==n){h.appendChild(L.createTextNode(n));\ne?u.dx=0:a&&null!==w&&(u.x=w);N(h,u);d.appendChild(h);!e&&g&&(!C&&c&&y(h,{display:\"block\"}),N(h,\"dy\",D(h)));if(F){var R=n.replace(/([^\\^])-/g,\"$1- \").split(\" \");u=!q&&(1<m.length||a||1<R.length);Q=0;var B=D(h);if(t)p=x.truncate(b,h,n,void 0,0,Math.max(0,F-parseInt(z||12,10)),function(b,d){return b.substring(0,d)+\"\\u2026\"});else if(u)for(;R.length;)R.length&&!q&&0<Q&&(h=L.createElementNS(O,\"tspan\"),N(h,{dy:B,x:w}),l&&N(h,\"style\",l),h.appendChild(L.createTextNode(R.join(\" \").replace(/- /g,\"-\"))),d.appendChild(h)),\nx.truncate(b,h,null,R,0===Q?f:0,F,function(b,d){return R.slice(0,d).join(\" \").replace(/- /g,\"-\")}),f=b.actualWidth,Q++}e++}}});g=g||d.childNodes.length}),t&&p&&b.attr(\"title\",E(b.textStr,[\"<\",\">\"])),l&&l.removeChild(d),r&&b.applyTextOutline&&b.applyTextOutline(r)):d.appendChild(L.createTextNode(E(e)))}},getContrast:function(b){b=K(b).rgba;b[0]*=1;b[1]*=1.2;b[2]*=.5;return 459<b[0]+b[1]+b[2]?\"#000000\":\"#FFFFFF\"},button:function(b,d,a,c,e,f,m,u,h,p){var n=this.label(b,d,a,h,void 0,void 0,p,void 0,\n\"button\"),x=0,l=this.styledMode;n.attr(r({padding:8,r:2},e));if(!l){e=r({fill:\"#f7f7f7\",stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontWeight:\"normal\"}},e);var C=e.style;delete e.style;f=r(e,{fill:\"#e6e6e6\"},f);var F=f.style;delete f.style;m=r(e,{fill:\"#e6ebf5\",style:{color:\"#000000\",fontWeight:\"bold\"}},m);var Q=m.style;delete m.style;u=r(e,{style:{color:\"#cccccc\"}},u);var R=u.style;delete u.style}G(n.element,w?\"mouseover\":\"mouseenter\",function(){3!==x&&n.setState(1)});\nG(n.element,w?\"mouseout\":\"mouseleave\",function(){3!==x&&n.setState(x)});n.setState=function(b){1!==b&&(n.state=x=b);n.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][b||0]);l||n.attr([e,f,m,u][b||0]).css([C,F,Q,R][b||0])};l||n.attr(e).css(E({cursor:\"default\"},C));return n.on(\"click\",function(b){3!==x&&c.call(n,b)})},crispLine:function(b,d,a){void 0===a&&(a=\"round\");var n=b[0],x=b[1];n[1]===x[1]&&(n[1]=x[1]=Math[a](n[1])-\nd%2/2);n[2]===x[2]&&(n[2]=x[2]=Math[a](n[2])+d%2/2);return b},path:function(b){var d=this.styledMode?{}:{fill:\"none\"};D(b)?d.d=b:t(b)&&E(d,b);return this.createElement(\"path\").attr(d)},circle:function(b,d,a){b=t(b)?b:\"undefined\"===typeof b?{}:{x:b,y:d,r:a};d=this.createElement(\"circle\");d.xSetter=d.ySetter=function(b,d,n){n.setAttribute(\"c\"+d,b)};return d.attr(b)},arc:function(b,d,a,c,e,f){t(b)?(c=b,d=c.y,a=c.r,b=c.x):c={innerR:c,start:e,end:f};b=this.symbol(\"arc\",b,d,a,a,c);b.r=a;return b},rect:function(b,\nd,a,c,e,f){e=t(b)?b.r:e;var n=this.createElement(\"rect\");b=t(b)?b:\"undefined\"===typeof b?{}:{x:b,y:d,width:Math.max(a,0),height:Math.max(c,0)};this.styledMode||(\"undefined\"!==typeof f&&(b.strokeWidth=f,b=n.crisp(b)),b.fill=\"none\");e&&(b.r=e);n.rSetter=function(b,d,a){n.r=b;N(a,{rx:b,ry:b})};n.rGetter=function(){return n.r};return n.attr(b)},setSize:function(b,d,a){var n=this.alignedObjects,c=n.length;this.width=b;this.height=d;for(this.boxWrapper.animate({width:b,height:d},{step:function(){this.attr({viewBox:\"0 0 \"+\nthis.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:f(a,!0)?void 0:0});c--;)n[c].align()},g:function(b){var d=this.createElement(\"g\");return b?d.attr({\"class\":\"highcharts-\"+b}):d},image:function(b,n,a,c,e,f){var x={preserveAspectRatio:\"none\"},m=function(b,d){b.setAttributeNS?b.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",d):b.setAttribute(\"hc-svg-href\",d)},u=function(d){m(h.element,b);f.call(h,d)};1<arguments.length&&E(x,{x:n,y:a,width:c,height:e});var h=this.createElement(\"image\").attr(x);\nf?(m(h.element,\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"),x=new d.Image,G(x,\"load\",u),x.src=b,x.complete&&u({})):m(h.element,b);return h},symbol:function(b,d,a,c,e,u){var n=this,x=/^url\\((.*?)\\)$/,h=x.test(b),p=!h&&(this.symbols[b]?b:\"circle\"),w=p&&this.symbols[p],l;if(w){\"number\"===typeof d&&(l=w.call(this.symbols,Math.round(d||0),Math.round(a||0),c,e,u));var C=this.path(l);n.styledMode||C.attr(\"fill\",\"none\");E(C,{symbolName:p,x:d,y:a,width:c,height:e});u&&E(C,\nu)}else if(h){var F=b.match(x)[1];C=this.image(F);C.imgwidth=f(B[F]&&B[F].width,u&&u.width);C.imgheight=f(B[F]&&B[F].height,u&&u.height);var Q=function(){C.attr({width:C.width,height:C.height})};[\"width\",\"height\"].forEach(function(b){C[b+\"Setter\"]=function(b,d){var n={},a=this[\"img\"+d],c=\"width\"===d?\"translateX\":\"translateY\";this[d]=b;I(a)&&(u&&\"within\"===u.backgroundSize&&this.width&&this.height&&(a=Math.round(a*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(d,\na),this.alignByTranslate||(n[c]=((this[d]||0)-a)/2,this.attr(n)))}});I(d)&&C.attr({x:d,y:a});C.isImg=!0;I(C.imgwidth)&&I(C.imgheight)?Q():(C.attr({width:0,height:0}),M(\"img\",{onload:function(){var b=m[n.chartIndex];0===this.width&&(y(this,{position:\"absolute\",top:\"-999em\"}),L.body.appendChild(this));B[F]={width:this.width,height:this.height};C.imgwidth=this.width;C.imgheight=this.height;C.element&&Q();this.parentNode&&this.parentNode.removeChild(this);n.imgCount--;if(!n.imgCount&&b&&!b.hasLoaded)b.onload()},\nsrc:F}),this.imgCount++)}return C},symbols:{circle:function(b,d,a,c){return this.arc(b+a/2,d+c/2,a/2,c/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(b,d,a,c){return[[\"M\",b,d],[\"L\",b+a,d],[\"L\",b+a,d+c],[\"L\",b,d+c],[\"Z\"]]},triangle:function(b,d,a,c){return[[\"M\",b+a/2,d],[\"L\",b+a,d+c],[\"L\",b,d+c],[\"Z\"]]},\"triangle-down\":function(b,d,a,c){return[[\"M\",b,d],[\"L\",b+a,d],[\"L\",b+a/2,d+c],[\"Z\"]]},diamond:function(b,d,a,c){return[[\"M\",b+a/2,d],[\"L\",b+a,d+c/2],[\"L\",b+a/2,d+c],[\"L\",b,d+c/2],[\"Z\"]]},\narc:function(b,d,a,c,e){var n=e.start,x=e.r||a,m=e.r||c||a,u=e.end-.001;a=e.innerR;c=f(e.open,.001>Math.abs(e.end-e.start-2*Math.PI));var h=Math.cos(n),p=Math.sin(n),w=Math.cos(u);u=Math.sin(u);n=f(e.longArc,.001>e.end-n-Math.PI?0:1);x=[[\"M\",b+x*h,d+m*p],[\"A\",x,m,0,n,f(e.clockwise,1),b+x*w,d+m*u]];I(a)&&x.push(c?[\"M\",b+a*w,d+a*u]:[\"L\",b+a*w,d+a*u],[\"A\",a,a,0,n,I(e.clockwise)?1-e.clockwise:0,b+a*h,d+a*p]);c||x.push([\"Z\"]);return x},callout:function(b,d,a,c,e){var n=Math.min(e&&e.r||0,a,c),x=n+6,f=\ne&&e.anchorX;e=e&&e.anchorY;var m=[[\"M\",b+n,d],[\"L\",b+a-n,d],[\"C\",b+a,d,b+a,d,b+a,d+n],[\"L\",b+a,d+c-n],[\"C\",b+a,d+c,b+a,d+c,b+a-n,d+c],[\"L\",b+n,d+c],[\"C\",b,d+c,b,d+c,b,d+c-n],[\"L\",b,d+n],[\"C\",b,d,b,d,b+n,d]];f&&f>a?e>d+x&&e<d+c-x?m.splice(3,1,[\"L\",b+a,e-6],[\"L\",b+a+6,e],[\"L\",b+a,e+6],[\"L\",b+a,d+c-n]):m.splice(3,1,[\"L\",b+a,c/2],[\"L\",f,e],[\"L\",b+a,c/2],[\"L\",b+a,d+c-n]):f&&0>f?e>d+x&&e<d+c-x?m.splice(7,1,[\"L\",b,e+6],[\"L\",b-6,e],[\"L\",b,e-6],[\"L\",b,d+n]):m.splice(7,1,[\"L\",b,c/2],[\"L\",f,e],[\"L\",b,c/2],\n[\"L\",b,d+n]):e&&e>c&&f>b+x&&f<b+a-x?m.splice(5,1,[\"L\",f+6,d+c],[\"L\",f,d+c+6],[\"L\",f-6,d+c],[\"L\",b+n,d+c]):e&&0>e&&f>b+x&&f<b+a-x&&m.splice(1,1,[\"L\",f-6,d],[\"L\",f,d-6],[\"L\",f+6,d],[\"L\",a-n,d]);return m}},clipRect:function(b,d,a,e){var n=c()+\"-\",x=this.createElement(\"clipPath\").attr({id:n}).add(this.defs);b=this.rect(b,d,a,e,0).add(x);b.id=n;b.clipPath=x;b.count=0;return b},text:function(b,d,a,c){var n={};if(c&&(this.allowHTML||!this.forExport))return this.html(b,d,a);n.x=Math.round(d||0);a&&(n.y=Math.round(a));\nI(b)&&(n.text=b);b=this.createElement(\"text\").attr(n);c||(b.xSetter=function(b,d,n){var a=n.getElementsByTagName(\"tspan\"),c=n.getAttribute(d),e;for(e=0;e<a.length;e++){var x=a[e];x.getAttribute(d)===c&&x.setAttribute(d,b)}n.setAttribute(d,b)});return b},fontMetrics:function(b,n){b=!this.styledMode&&/px/.test(b)||!d.getComputedStyle?b||n&&n.style&&n.style.fontSize||this.style&&this.style.fontSize:n&&H.prototype.getStyle.call(n,\"font-size\");b=/px/.test(b)?a(b):12;n=24>b?b+3:Math.round(1.2*b);return{h:n,\nb:Math.round(.8*n),f:b}},rotCorr:function(b,d,a){var n=b;d&&a&&(n=Math.max(n*Math.cos(d*u),4));return{x:-b/3*Math.sin(d*u),y:n}},pathToSegments:function(b){for(var d=[],a=[],c={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},e=0;e<b.length;e++)q(a[0])&&z(b[e])&&a.length===c[a[0].toUpperCase()]&&b.splice(e,0,a[0].replace(\"M\",\"L\").replace(\"m\",\"l\")),\"string\"===typeof b[e]&&(a.length&&d.push(a.slice(0)),a.length=0),a.push(b[e]);d.push(a.slice(0));return d},label:function(b,d,a,c,e,f,m,u,h){var n=this,x=n.styledMode,\np=n.g(\"button\"!==h&&\"label\"),w=p.text=n.text(\"\",0,0,m).attr({zIndex:1}),C,F={width:0,height:0,x:0,y:0},Q=F,B=0,L=3,t=0,O,q,R,X,g,k={},y,D,U=/^url\\((.*?)\\)$/.test(c),v=x||U,W=function(){return x?C.strokeWidth()%2/2:(y?parseInt(y,10):0)%2/2};h&&p.addClass(\"highcharts-\"+h);var V=function(){var b=w.element.style,d={};Q=z(O)&&z(q)&&!g||!I(w.textStr)?F:w.getBBox();p.width=(O||Q.width||0)+2*L+t;p.height=(q||Q.height||0)+2*L;D=L+Math.min(n.fontMetrics(b&&b.fontSize,w).b,Q.height||Infinity);v&&(C||(p.box=\nC=n.symbols[c]||U?n.symbol(c):n.rect(),C.addClass((\"button\"===h?\"\":\"highcharts-label-box\")+(h?\" highcharts-\"+h+\"-box\":\"\")),C.add(p),b=W(),d.x=b,d.y=(u?-D:0)+b),d.width=Math.round(p.width),d.height=Math.round(p.height),C.attr(E(d,k)),k={})};var J=function(){var b=t+L;var d=u?0:D;I(O)&&Q&&(\"center\"===g||\"right\"===g)&&(b+={center:.5,right:1}[g]*(O-Q.width));if(b!==w.x||d!==w.y)w.attr(\"x\",b),w.hasBoxWidthChanged&&(Q=w.getBBox(!0),V()),\"undefined\"!==typeof d&&w.attr(\"y\",d);w.x=b;w.y=d};var M=function(b,\nd){C?C.attr(b,d):k[b]=d};p.onAdd=function(){w.add(p);p.attr({text:b||0===b?b:\"\",x:d,y:a});C&&I(e)&&p.attr({anchorX:e,anchorY:f})};p.widthSetter=function(b){O=z(b)?b:null};p.heightSetter=function(b){q=b};p[\"text-alignSetter\"]=function(b){g=b};p.paddingSetter=function(b){I(b)&&b!==L&&(L=p.padding=b,J())};p.paddingLeftSetter=function(b){I(b)&&b!==t&&(t=b,J())};p.alignSetter=function(b){b={left:0,center:.5,right:1}[b];b!==B&&(B=b,Q&&p.attr({x:R}))};p.textSetter=function(b){\"undefined\"!==typeof b&&w.attr({text:b});\nV();J()};p[\"stroke-widthSetter\"]=function(b,d){b&&(v=!0);y=this[\"stroke-width\"]=b;M(d,b)};x?p.rSetter=function(b,d){M(d,b)}:p.strokeSetter=p.fillSetter=p.rSetter=function(b,d){\"r\"!==d&&(\"fill\"===d&&b&&(v=!0),p[d]=b);M(d,b)};p.anchorXSetter=function(b,d){e=p.anchorX=b;M(d,Math.round(b)-W()-R)};p.anchorYSetter=function(b,d){f=p.anchorY=b;M(d,b-X)};p.xSetter=function(b){p.x=b;B&&(b-=B*((O||Q.width)+2*L),p[\"forceAnimate:x\"]=!0);R=Math.round(b);p.attr(\"translateX\",R)};p.ySetter=function(b){X=p.y=Math.round(b);\np.attr(\"translateY\",X)};p.isLabel=!0;var G=p.css;m={css:function(b){if(b){var d={};b=r(b);p.textProps.forEach(function(n){\"undefined\"!==typeof b[n]&&(d[n]=b[n],delete b[n])});w.css(d);var n=\"fontSize\"in d||\"fontWeight\"in d;if(\"width\"in d||n)V(),n&&J()}return G.call(p,b)},getBBox:function(){return{width:Q.width+2*L,height:Q.height+2*L,x:Q.x-L,y:Q.y-L}},destroy:function(){l(p.element,\"mouseenter\");l(p.element,\"mouseleave\");w&&w.destroy();C&&(C=C.destroy());H.prototype.destroy.call(p);p=n=w=V=J=M=null}};\np.on=function(b,d){var n=w&&\"SPAN\"===w.element.tagName?w:void 0;if(n){var a=function(a){(\"mouseenter\"===b||\"mouseleave\"===b)&&a.relatedTarget instanceof Element&&(p.element.contains(a.relatedTarget)||n.element.contains(a.relatedTarget))||d.call(p.element,a)};n.on(b,a)}H.prototype.on.call(p,b,a||d);return p};x||(m.shadow=function(b){b&&(V(),C&&C.shadow(b));return p});return E(p,m)}});g.Renderer=k});P(A,\"parts/Html.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.attr,v=g.createElement,\nK=g.css,G=g.defined,N=g.extend,M=g.pick,y=g.pInt,I=k.isFirefox,J=k.isMS,E=k.isWebKit,D=k.SVGElement;g=k.SVGRenderer;var z=k.win;N(D.prototype,{htmlCss:function(t){var q=\"SPAN\"===this.element.tagName&&t&&\"width\"in t,r=M(q&&t.width,void 0);if(q){delete t.width;this.textWidth=r;var h=!0}t&&\"ellipsis\"===t.textOverflow&&(t.whiteSpace=\"nowrap\",t.overflow=\"hidden\");this.styles=N(this.styles,t);K(this.element,t);h&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var t=this.element;return{x:t.offsetLeft,\ny:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var t=this.renderer,q=this.element,r=this.translateX||0,h=this.translateY||0,f=this.x||0,a=this.y||0,l=this.textAlign||\"left\",e={left:0,center:.5,right:1}[l],c=this.styles,m=c&&c.whiteSpace;K(q,{marginLeft:r,marginTop:h});!t.styledMode&&this.shadows&&this.shadows.forEach(function(a){K(a,{marginLeft:r+1,marginTop:h+1})});this.inverted&&[].forEach.call(q.childNodes,function(a){t.invertChild(a,q)});\nif(\"SPAN\"===q.tagName){c=this.rotation;var u=this.textWidth&&y(this.textWidth),L=[c,l,q.innerHTML,this.textWidth,this.textAlign].join(),F;(F=u!==this.oldTextWidth)&&!(F=u>this.oldTextWidth)&&((F=this.textPxLength)||(K(q,{width:\"\",whiteSpace:m||\"nowrap\"}),F=q.offsetWidth),F=F>u);F&&(/[ \\-]/.test(q.textContent||q.innerText)||\"ellipsis\"===q.style.textOverflow)?(K(q,{width:u+\"px\",display:\"block\",whiteSpace:m||\"normal\"}),this.oldTextWidth=u,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;L!==this.cTT&&\n(m=t.fontMetrics(q.style.fontSize,q).b,!G(c)||c===(this.oldRotation||0)&&l===this.oldAlign||this.setSpanRotation(c,e,m),this.getSpanCorrection(!G(c)&&this.textPxLength||q.offsetWidth,m,e,c,l));K(q,{left:f+(this.xCorr||0)+\"px\",top:a+(this.yCorr||0)+\"px\"});this.cTT=L;this.oldRotation=c;this.oldAlign=l}}else this.alignOnAdd=!0},setSpanRotation:function(t,q,r){var h={},f=this.renderer.getTransformKey();h[f]=h.transform=\"rotate(\"+t+\"deg)\";h[f+(I?\"Origin\":\"-origin\")]=h.transformOrigin=100*q+\"% \"+r+\"px\";\nK(this.element,h)},getSpanCorrection:function(t,q,r){this.xCorr=-t*r;this.yCorr=-q}});N(g.prototype,{getTransformKey:function(){return J&&!/Edge/.test(z.navigator.userAgent)?\"-ms-transform\":E?\"-webkit-transform\":I?\"MozTransform\":z.opera?\"-o-transform\":\"\"},html:function(t,q,r){var h=this.createElement(\"span\"),f=h.element,a=h.renderer,l=a.isSVG,e=function(a,e){[\"opacity\",\"visibility\"].forEach(function(c){a[c+\"Setter\"]=function(f,m,u){var p=a.div?a.div.style:e;D.prototype[c+\"Setter\"].call(this,f,m,u);\np&&(p[m]=f)}});a.addedSetters=!0};h.textSetter=function(a){a!==f.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=a;f.innerHTML=M(a,\"\");h.doTransform=!0};l&&e(h,h.element.style);h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(a,e){\"align\"===e&&(e=\"textAlign\");h[e]=a;h.doTransform=!0};h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};h.attr({text:t,x:Math.round(q),y:Math.round(r)}).css({position:\"absolute\"});a.styledMode||h.css({fontFamily:this.style.fontFamily,\nfontSize:this.style.fontSize});f.style.whiteSpace=\"nowrap\";h.css=h.htmlCss;l&&(h.add=function(c){var m=a.box.parentNode,u=[];if(this.parentGroup=c){var l=c.div;if(!l){for(;c;)u.push(c),c=c.parentGroup;u.reverse().forEach(function(a){function c(c,e){a[e]=c;\"translateX\"===e?C.left=c+\"px\":C.top=c+\"px\";a.doTransform=!0}var f=H(a.element,\"class\");l=a.div=a.div||v(\"div\",f?{className:f}:void 0,{position:\"absolute\",left:(a.translateX||0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,\npointerEvents:a.styles&&a.styles.pointerEvents},l||m);var C=l.style;N(a,{classSetter:function(a){return function(c){this.element.setAttribute(\"class\",c);a.className=c}}(l),on:function(){u[0].div&&h.on.apply({element:u[0].div},arguments);return a},translateXSetter:c,translateYSetter:c});a.addedSetters||e(a)})}}else l=m;l.appendChild(f);h.added=!0;h.alignOnAdd&&h.htmlUpdateTransform();return h});return h}})});P(A,\"parts/Tick.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.clamp,\nv=g.correctFloat,K=g.defined,G=g.destroyObjectProperties,N=g.extend,M=g.fireEvent,y=g.isNumber,I=g.merge,J=g.objectEach,E=g.pick,D=k.deg2rad;g=function(){function z(t,q,r,h,f){this.isNewLabel=this.isNew=!0;this.axis=t;this.pos=q;this.type=r||\"\";this.parameters=f||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;M(this,\"init\");r||h||this.addLabel()}z.prototype.addLabel=function(){var t=this,q=t.axis,r=q.options,h=q.chart,f=q.categories,a=q.logarithmic,l=q.names,\ne=t.pos,c=E(t.options&&t.options.labels,r.labels),m=q.tickPositions,u=e===m[0],L=e===m[m.length-1];l=this.parameters.category||(f?E(f[e],l[e],e):e);var F=t.label;f=(!c.step||1===c.step)&&1===q.tickInterval;m=m.info;var w,p;if(q.dateTime&&m){var C=h.time.resolveDTLFormat(r.dateTimeLabelFormats[!r.grid&&m.higherRanks[e]||m.unitName]);var O=C.main}t.isFirst=u;t.isLast=L;t.formatCtx={axis:q,chart:h,isFirst:u,isLast:L,dateTimeLabelFormat:O,tickPositionInfo:m,value:a?v(a.lin2log(l)):l,pos:e};r=q.labelFormatter.call(t.formatCtx,\nthis.formatCtx);if(p=C&&C.list)t.shortenLabel=function(){for(w=0;w<p.length;w++)if(F.attr({text:q.labelFormatter.call(N(t.formatCtx,{dateTimeLabelFormat:p[w]}))}),F.getBBox().width<q.getSlotWidth(t)-2*E(c.padding,5))return;F.attr({text:\"\"})};f&&q._addedPlotLB&&q.isXAxis&&t.moveLabel(r,c);K(F)||t.movedLabel?F&&F.textStr!==r&&!f&&(!F.textWidth||c.style&&c.style.width||F.styles.width||F.css({width:null}),F.attr({text:r}),F.textPxLength=F.getBBox().width):(t.label=F=t.createLabel({x:0,y:0},r,c),t.rotation=\n0)};z.prototype.createLabel=function(t,q,r){var h=this.axis,f=h.chart;if(t=K(q)&&r.enabled?f.renderer.text(q,t.x,t.y,r.useHTML).add(h.labelGroup):null)f.styledMode||t.css(I(r.style)),t.textPxLength=t.getBBox().width;return t};z.prototype.destroy=function(){G(this,this.axis)};z.prototype.getPosition=function(t,q,r,h){var f=this.axis,a=f.chart,l=h&&a.oldChartHeight||a.chartHeight;t={x:t?v(f.translate(q+r,null,null,h)+f.transB):f.left+f.offset+(f.opposite?(h&&a.oldChartWidth||a.chartWidth)-f.right-f.left:\n0),y:t?l-f.bottom+f.offset-(f.opposite?f.height:0):v(l-f.translate(q+r,null,null,h)-f.transB)};t.y=H(t.y,-1E5,1E5);M(this,\"afterGetPosition\",{pos:t});return t};z.prototype.getLabelPosition=function(t,q,r,h,f,a,l,e){var c=this.axis,m=c.transA,u=c.isLinked&&c.linkedParent?c.linkedParent.reversed:c.reversed,L=c.staggerLines,F=c.tickRotCorr||{x:0,y:0},w=f.y,p=h||c.reserveSpaceDefault?0:-c.labelOffset*(\"center\"===c.labelAlign?.5:1),C={};K(w)||(w=0===c.side?r.rotation?-8:-r.getBBox().height:2===c.side?\nF.y+8:Math.cos(r.rotation*D)*(F.y-r.getBBox(!1,0).height/2));t=t+f.x+p+F.x-(a&&h?a*m*(u?-1:1):0);q=q+w-(a&&!h?a*m*(u?1:-1):0);L&&(r=l/(e||1)%L,c.opposite&&(r=L-r-1),q+=c.labelOffset/L*r);C.x=t;C.y=Math.round(q);M(this,\"afterGetLabelPosition\",{pos:C,tickmarkOffset:a,index:l});return C};z.prototype.getLabelSize=function(){return this.label?this.label.getBBox()[this.axis.horiz?\"height\":\"width\"]:0};z.prototype.getMarkPath=function(t,q,r,h,f,a){return a.crispLine([[\"M\",t,q],[\"L\",t+(f?0:-r),q+(f?r:0)]],\nh)};z.prototype.handleOverflow=function(t){var q=this.axis,r=q.options.labels,h=t.x,f=q.chart.chartWidth,a=q.chart.spacing,l=E(q.labelLeft,Math.min(q.pos,a[3]));a=E(q.labelRight,Math.max(q.isRadial?0:q.pos+q.len,f-a[1]));var e=this.label,c=this.rotation,m={left:0,center:.5,right:1}[q.labelAlign||e.attr(\"align\")],u=e.getBBox().width,L=q.getSlotWidth(this),F=L,w=1,p,C={};if(c||\"justify\"!==E(r.overflow,\"justify\"))0>c&&h-m*u<l?p=Math.round(h/Math.cos(c*D)-l):0<c&&h+m*u>a&&(p=Math.round((f-h)/Math.cos(c*\nD)));else if(f=h+(1-m)*u,h-m*u<l?F=t.x+F*(1-m)-l:f>a&&(F=a-t.x+F*m,w=-1),F=Math.min(L,F),F<L&&\"center\"===q.labelAlign&&(t.x+=w*(L-F-m*(L-Math.min(u,F)))),u>F||q.autoRotation&&(e.styles||{}).width)p=F;p&&(this.shortenLabel?this.shortenLabel():(C.width=Math.floor(p)+\"px\",(r.style||{}).textOverflow||(C.textOverflow=\"ellipsis\"),e.css(C)))};z.prototype.moveLabel=function(t,q){var r=this,h=r.label,f=!1,a=r.axis,l=a.reversed,e=a.chart.inverted;h&&h.textStr===t?(r.movedLabel=h,f=!0,delete r.label):J(a.ticks,\nfunction(a){f||a.isNew||a===r||!a.label||a.label.textStr!==t||(r.movedLabel=a.label,f=!0,a.labelPos=r.movedLabel.xy,delete a.label)});if(!f&&(r.labelPos||h)){var c=r.labelPos||h.xy;h=e?c.x:l?0:a.width+a.left;a=e?l?a.width+a.left:0:c.y;r.movedLabel=r.createLabel({x:h,y:a},t,q);r.movedLabel&&r.movedLabel.attr({opacity:0})}};z.prototype.render=function(t,q,r){var h=this.axis,f=h.horiz,a=this.pos,l=E(this.tickmarkOffset,h.tickmarkOffset);a=this.getPosition(f,a,l,q);l=a.x;var e=a.y;h=f&&l===h.pos+h.len||\n!f&&e===h.pos?-1:1;r=E(r,1);this.isActive=!0;this.renderGridLine(q,r,h);this.renderMark(a,r,h);this.renderLabel(a,q,r,t);this.isNew=!1;M(this,\"afterRender\")};z.prototype.renderGridLine=function(t,q,r){var h=this.axis,f=h.options,a=this.gridLine,l={},e=this.pos,c=this.type,m=E(this.tickmarkOffset,h.tickmarkOffset),u=h.chart.renderer,L=c?c+\"Grid\":\"grid\",F=f[L+\"LineWidth\"],w=f[L+\"LineColor\"];f=f[L+\"LineDashStyle\"];a||(h.chart.styledMode||(l.stroke=w,l[\"stroke-width\"]=F,f&&(l.dashstyle=f)),c||(l.zIndex=\n1),t&&(q=0),this.gridLine=a=u.path().attr(l).addClass(\"highcharts-\"+(c?c+\"-\":\"\")+\"grid-line\").add(h.gridGroup));if(a&&(r=h.getPlotLinePath({value:e+m,lineWidth:a.strokeWidth()*r,force:\"pass\",old:t})))a[t||this.isNew?\"attr\":\"animate\"]({d:r,opacity:q})};z.prototype.renderMark=function(t,q,r){var h=this.axis,f=h.options,a=h.chart.renderer,l=this.type,e=l?l+\"Tick\":\"tick\",c=h.tickSize(e),m=this.mark,u=!m,L=t.x;t=t.y;var F=E(f[e+\"Width\"],!l&&h.isXAxis?1:0);f=f[e+\"Color\"];c&&(h.opposite&&(c[0]=-c[0]),u&&\n(this.mark=m=a.path().addClass(\"highcharts-\"+(l?l+\"-\":\"\")+\"tick\").add(h.axisGroup),h.chart.styledMode||m.attr({stroke:f,\"stroke-width\":F})),m[u?\"attr\":\"animate\"]({d:this.getMarkPath(L,t,c[0],m.strokeWidth()*r,h.horiz,a),opacity:q}))};z.prototype.renderLabel=function(t,q,r,h){var f=this.axis,a=f.horiz,l=f.options,e=this.label,c=l.labels,m=c.step;f=E(this.tickmarkOffset,f.tickmarkOffset);var u=!0,L=t.x;t=t.y;e&&y(L)&&(e.xy=t=this.getLabelPosition(L,t,e,a,c,f,h,m),this.isFirst&&!this.isLast&&!E(l.showFirstLabel,\n1)||this.isLast&&!this.isFirst&&!E(l.showLastLabel,1)?u=!1:!a||c.step||c.rotation||q||0===r||this.handleOverflow(t),m&&h%m&&(u=!1),u&&y(t.y)?(t.opacity=r,e[this.isNewLabel?\"attr\":\"animate\"](t),this.isNewLabel=!1):(e.attr(\"y\",-9999),this.isNewLabel=!0))};z.prototype.replaceMovedLabel=function(){var t=this.label,q=this.axis,r=q.reversed,h=this.axis.chart.inverted;if(t&&!this.isNew){var f=h?t.xy.x:r?q.left:q.width+q.left;r=h?r?q.width+q.top:q.top:t.xy.y;t.animate({x:f,y:r,opacity:0},void 0,t.destroy);\ndelete this.label}q.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel};return z}();k.Tick=g;return k.Tick});P(A,\"parts/Time.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.defined,v=g.error,K=g.extend,G=g.isObject,N=g.merge,M=g.objectEach,y=g.pad,I=g.pick,J=g.splat,E=g.timeUnits,D=k.win;g=function(){function z(t){this.options={};this.variableTimezone=this.useUTC=!1;this.Date=D.Date;this.getTimezoneOffset=this.timezoneOffsetFunction();this.update(t)}z.prototype.get=\nfunction(t,q){if(this.variableTimezone||this.timezoneOffset){var r=q.getTime(),h=r-this.getTimezoneOffset(q);q.setTime(h);t=q[\"getUTC\"+t]();q.setTime(r);return t}return this.useUTC?q[\"getUTC\"+t]():q[\"get\"+t]()};z.prototype.set=function(t,q,r){if(this.variableTimezone||this.timezoneOffset){if(\"Milliseconds\"===t||\"Seconds\"===t||\"Minutes\"===t)return q[\"setUTC\"+t](r);var h=this.getTimezoneOffset(q);h=q.getTime()-h;q.setTime(h);q[\"setUTC\"+t](r);t=this.getTimezoneOffset(q);h=q.getTime()+t;return q.setTime(h)}return this.useUTC?\nq[\"setUTC\"+t](r):q[\"set\"+t](r)};z.prototype.update=function(t){var q=I(t&&t.useUTC,!0);this.options=t=N(!0,this.options||{},t);this.Date=t.Date||D.Date||Date;this.timezoneOffset=(this.useUTC=q)&&t.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();this.variableTimezone=!(q&&!t.getTimezoneOffset&&!t.timezone)};z.prototype.makeTime=function(t,q,r,h,f,a){if(this.useUTC){var l=this.Date.UTC.apply(0,arguments);var e=this.getTimezoneOffset(l);l+=e;var c=this.getTimezoneOffset(l);e!==c?\nl+=c-e:e-36E5!==this.getTimezoneOffset(l-36E5)||k.isSafari||(l-=36E5)}else l=(new this.Date(t,q,I(r,1),I(h,0),I(f,0),I(a,0))).getTime();return l};z.prototype.timezoneOffsetFunction=function(){var t=this,q=this.options,r=D.moment;if(!this.useUTC)return function(h){return 6E4*(new Date(h.toString())).getTimezoneOffset()};if(q.timezone){if(r)return function(h){return 6E4*-r.tz(h,q.timezone).utcOffset()};v(25)}return this.useUTC&&q.getTimezoneOffset?function(h){return 6E4*q.getTimezoneOffset(h.valueOf())}:\nfunction(){return 6E4*(t.timezoneOffset||0)}};z.prototype.dateFormat=function(t,q,r){var h;if(!H(q)||isNaN(q))return(null===(h=k.defaultOptions.lang)||void 0===h?void 0:h.invalidDate)||\"\";t=I(t,\"%Y-%m-%d %H:%M:%S\");var f=this;h=new this.Date(q);var a=this.get(\"Hours\",h),l=this.get(\"Day\",h),e=this.get(\"Date\",h),c=this.get(\"Month\",h),m=this.get(\"FullYear\",h),u=k.defaultOptions.lang,L=null===u||void 0===u?void 0:u.weekdays,F=null===u||void 0===u?void 0:u.shortWeekdays;h=K({a:F?F[l]:L[l].substr(0,3),\nA:L[l],d:y(e),e:y(e,2,\" \"),w:l,b:u.shortMonths[c],B:u.months[c],m:y(c+1),o:c+1,y:m.toString().substr(2,2),Y:m,H:y(a),k:a,I:y(a%12||12),l:a%12||12,M:y(this.get(\"Minutes\",h)),p:12>a?\"AM\":\"PM\",P:12>a?\"am\":\"pm\",S:y(h.getSeconds()),L:y(Math.floor(q%1E3),3)},k.dateFormats);M(h,function(a,c){for(;-1!==t.indexOf(\"%\"+c);)t=t.replace(\"%\"+c,\"function\"===typeof a?a.call(f,q):a)});return r?t.substr(0,1).toUpperCase()+t.substr(1):t};z.prototype.resolveDTLFormat=function(t){return G(t,!0)?t:(t=J(t),{main:t[0],from:t[1],\nto:t[2]})};z.prototype.getTimeTicks=function(t,q,r,h){var f=this,a=[],l={};var e=new f.Date(q);var c=t.unitRange,m=t.count||1,u;h=I(h,1);if(H(q)){f.set(\"Milliseconds\",e,c>=E.second?0:m*Math.floor(f.get(\"Milliseconds\",e)/m));c>=E.second&&f.set(\"Seconds\",e,c>=E.minute?0:m*Math.floor(f.get(\"Seconds\",e)/m));c>=E.minute&&f.set(\"Minutes\",e,c>=E.hour?0:m*Math.floor(f.get(\"Minutes\",e)/m));c>=E.hour&&f.set(\"Hours\",e,c>=E.day?0:m*Math.floor(f.get(\"Hours\",e)/m));c>=E.day&&f.set(\"Date\",e,c>=E.month?1:Math.max(1,\nm*Math.floor(f.get(\"Date\",e)/m)));if(c>=E.month){f.set(\"Month\",e,c>=E.year?0:m*Math.floor(f.get(\"Month\",e)/m));var L=f.get(\"FullYear\",e)}c>=E.year&&f.set(\"FullYear\",e,L-L%m);c===E.week&&(L=f.get(\"Day\",e),f.set(\"Date\",e,f.get(\"Date\",e)-L+h+(L<h?-7:0)));L=f.get(\"FullYear\",e);h=f.get(\"Month\",e);var F=f.get(\"Date\",e),w=f.get(\"Hours\",e);q=e.getTime();f.variableTimezone&&(u=r-q>4*E.month||f.getTimezoneOffset(q)!==f.getTimezoneOffset(r));q=e.getTime();for(e=1;q<r;)a.push(q),q=c===E.year?f.makeTime(L+e*m,\n0):c===E.month?f.makeTime(L,h+e*m):!u||c!==E.day&&c!==E.week?u&&c===E.hour&&1<m?f.makeTime(L,h,F,w+e*m):q+c*m:f.makeTime(L,h,F+e*m*(c===E.day?1:7)),e++;a.push(q);c<=E.hour&&1E4>a.length&&a.forEach(function(a){0===a%18E5&&\"000000000\"===f.dateFormat(\"%H%M%S%L\",a)&&(l[a]=\"day\")})}a.info=K(t,{higherRanks:l,totalRange:c*m});return a};z.defaultOptions={Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0};return z}();k.Time=g;return k.Time});P(A,\"parts/Options.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Time.js\"],A[\"parts/Color.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){H=H.parse;var K=v.merge;k.defaultOptions={colors:\"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \"),symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),\ndecimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:g.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:\"line\",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}},width:null,height:null,borderColor:\"#335cad\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{text:\"Chart title\",align:\"center\",margin:15,\nwidthAdjust:-44},subtitle:{text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},labels:{style:{position:\"absolute\",color:\"#333333\"}},legend:{enabled:!0,align:\"center\",alignColumns:!0,layout:\"horizontal\",labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{activeColor:\"#003399\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"12px\",fontWeight:\"bold\",textOverflow:\"ellipsis\"},\nitemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#cccccc\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:k.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %b %e, %H:%M:%S.%L\",\nsecond:\"%A, %b %e, %H:%M:%S\",minute:\"%A, %b %e, %H:%M\",hour:\"%A, %b %e, %H:%M\",day:\"%A, %b %e, %Y\",week:\"Week from %A, %b %e, %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",padding:8,snap:k.isTouchDevice?25:10,headerFormat:'<span style=\"font-size: 10px\">{point.key}</span><br/>',pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:H(\"#f7f7f7\").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:\"#333333\",cursor:\"default\",fontSize:\"12px\",\nwhiteSpace:\"nowrap\"}},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"9px\"},text:\"Highcharts.com\"}};k.setOptions=function(g){k.defaultOptions=K(!0,k.defaultOptions,g);(g.time||g.global)&&k.time.update(K(k.defaultOptions.global,k.defaultOptions.time,g.global,g.time));return k.defaultOptions};k.getOptions=function(){return k.defaultOptions};k.defaultPlotOptions=k.defaultOptions.plotOptions;\nk.time=new g(K(k.defaultOptions.global,k.defaultOptions.time));k.dateFormat=function(g,v,M){return k.time.dateFormat(g,v,M)};\"\"});P(A,\"parts/Axis.js\",[A[\"parts/Color.js\"],A[\"parts/Globals.js\"],A[\"parts/Tick.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=v.addEvent,G=v.animObject,N=v.arrayMax,M=v.arrayMin,y=v.clamp,I=v.correctFloat,J=v.defined,E=v.destroyObjectProperties,D=v.error,z=v.extend,t=v.fireEvent,q=v.format,r=v.getMagnitude,h=v.isArray,f=v.isFunction,a=v.isNumber,l=v.isString,e=v.merge,\nc=v.normalizeTickInterval,m=v.objectEach,u=v.pick,L=v.relativeLength,F=v.removeEvent,w=v.splat,p=v.syncTimeout,C=g.defaultOptions,O=g.deg2rad;v=function(){function B(d,b){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=\nthis.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.oldMin=this.oldMax=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0;this.init(d,b)}B.prototype.init=function(d,b){var a=b.isX,c=this;c.chart=d;\nc.horiz=d.inverted&&!c.isZAxis?!a:a;c.isXAxis=a;c.coll=c.coll||(a?\"xAxis\":\"yAxis\");t(this,\"init\",{userOptions:b});c.opposite=b.opposite;c.side=b.side||(c.horiz?c.opposite?0:2:c.opposite?1:3);c.setOptions(b);var e=this.options,p=e.type;c.labelFormatter=e.labels.formatter||c.defaultLabelFormatter;c.userOptions=b;c.minPixelPadding=0;c.reversed=e.reversed;c.visible=!1!==e.visible;c.zoomEnabled=!1!==e.zoomEnabled;c.hasNames=\"category\"===p||!0===e.categories;c.categories=e.categories||c.hasNames;c.names||\n(c.names=[],c.names.keys={});c.plotLinesAndBandsGroups={};c.positiveValuesOnly=!(!c.logarithmic||e.allowNegativeLog);c.isLinked=J(e.linkedTo);c.ticks={};c.labelEdge=[];c.minorTicks={};c.plotLinesAndBands=[];c.alternateBands={};c.len=0;c.minRange=c.userMinRange=e.minRange||e.maxZoom;c.range=e.range;c.offset=e.offset||0;c.max=null;c.min=null;c.crosshair=u(e.crosshair,w(d.options.tooltip.crosshairs)[a?0:1],!1);b=c.options.events;-1===d.axes.indexOf(c)&&(a?d.axes.splice(d.xAxis.length,0,c):d.axes.push(c),\nd[c.coll].push(c));c.series=c.series||[];d.inverted&&!c.isZAxis&&a&&\"undefined\"===typeof c.reversed&&(c.reversed=!0);c.labelRotation=c.options.labels.rotation;m(b,function(b,d){f(b)&&K(c,d,b)});t(this,\"afterInit\")};B.prototype.setOptions=function(d){this.options=e(B.defaultOptions,\"yAxis\"===this.coll&&B.defaultYAxisOptions,[B.defaultTopAxisOptions,B.defaultRightAxisOptions,B.defaultBottomAxisOptions,B.defaultLeftAxisOptions][this.side],e(C[this.coll],d));t(this,\"afterSetOptions\",{userOptions:d})};\nB.prototype.defaultLabelFormatter=function(){var d=this.axis,b=this.value,a=d.chart.time,c=d.categories,e=this.dateTimeLabelFormat,f=C.lang,m=f.numericSymbols;f=f.numericSymbolMagnitude||1E3;var u=m&&m.length,p=d.options.labels.format;d=d.logarithmic?Math.abs(b):d.tickInterval;var h=this.chart,w=h.numberFormatter;if(p)var l=q(p,this,h);else if(c)l=b;else if(e)l=a.dateFormat(e,b);else if(u&&1E3<=d)for(;u--&&\"undefined\"===typeof l;)a=Math.pow(f,u+1),d>=a&&0===10*b%a&&null!==m[u]&&0!==b&&(l=w(b/a,-1)+\nm[u]);\"undefined\"===typeof l&&(l=1E4<=Math.abs(b)?w(b,-1):w(b,-1,void 0,\"\"));return l};B.prototype.getSeriesExtremes=function(){var d=this,b=d.chart,n;t(this,\"getSeriesExtremes\",null,function(){d.hasVisibleSeries=!1;d.dataMin=d.dataMax=d.threshold=null;d.softThreshold=!d.isXAxis;d.stacking&&d.stacking.buildStacks();d.series.forEach(function(c){if(c.visible||!b.options.chart.ignoreHiddenSeries){var e=c.options,f=e.threshold;d.hasVisibleSeries=!0;d.positiveValuesOnly&&0>=f&&(f=null);if(d.isXAxis){if(e=\nc.xData,e.length){n=c.getXExtremes(e);var x=n.min;var m=n.max;a(x)||x instanceof Date||(e=e.filter(a),n=c.getXExtremes(e),x=n.min,m=n.max);e.length&&(d.dataMin=Math.min(u(d.dataMin,x),x),d.dataMax=Math.max(u(d.dataMax,m),m))}}else if(c=c.applyExtremes(),a(c.dataMin)&&(x=c.dataMin,d.dataMin=Math.min(u(d.dataMin,x),x)),a(c.dataMax)&&(m=c.dataMax,d.dataMax=Math.max(u(d.dataMax,m),m)),J(f)&&(d.threshold=f),!e.softThreshold||d.positiveValuesOnly)d.softThreshold=!1}})});t(this,\"afterGetSeriesExtremes\")};\nB.prototype.translate=function(d,b,n,c,e,f){var x=this.linkedParent||this,m=1,u=0,p=c?x.oldTransA:x.transA;c=c?x.oldMin:x.min;var h=x.minPixelPadding;e=(x.isOrdinal||x.brokenAxis&&x.brokenAxis.hasBreaks||x.logarithmic&&e)&&x.lin2val;p||(p=x.transA);n&&(m*=-1,u=x.len);x.reversed&&(m*=-1,u-=m*(x.sector||x.len));b?(d=(d*m+u-h)/p+c,e&&(d=x.lin2val(d))):(e&&(d=x.val2lin(d)),d=a(c)?m*(d-c)*p+u+m*h+(a(f)?p*f:0):void 0);return d};B.prototype.toPixels=function(d,b){return this.translate(d,!1,!this.horiz,null,\n!0)+(b?0:this.pos)};B.prototype.toValue=function(d,b){return this.translate(d-(b?0:this.pos),!0,!this.horiz,null,!0)};B.prototype.getPlotLinePath=function(d){function b(b,d,a){if(\"pass\"!==l&&b<d||b>a)l?b=y(b,d,a):q=!0;return b}var n=this,c=n.chart,e=n.left,f=n.top,m=d.old,p=d.value,h=d.translatedValue,w=d.lineWidth,l=d.force,C,F,B,L,r=m&&c.oldChartHeight||c.chartHeight,O=m&&c.oldChartWidth||c.chartWidth,q,z=n.transB;d={value:p,lineWidth:w,old:m,force:l,acrossPanes:d.acrossPanes,translatedValue:h};\nt(this,\"getPlotLinePath\",d,function(d){h=u(h,n.translate(p,null,null,m));h=y(h,-1E5,1E5);C=B=Math.round(h+z);F=L=Math.round(r-h-z);a(h)?n.horiz?(F=f,L=r-n.bottom,C=B=b(C,e,e+n.width)):(C=e,B=O-n.right,F=L=b(F,f,f+n.height)):(q=!0,l=!1);d.path=q&&!l?null:c.renderer.crispLine([[\"M\",C,F],[\"L\",B,L]],w||1)});return d.path};B.prototype.getLinearTickPositions=function(d,b,a){var n=I(Math.floor(b/d)*d);a=I(Math.ceil(a/d)*d);var c=[],e;I(n+d)===n&&(e=20);if(this.single)return[b];for(b=n;b<=a;){c.push(b);b=\nI(b+d,e);if(b===f)break;var f=b}return c};B.prototype.getMinorTickInterval=function(){var d=this.options;return!0===d.minorTicks?u(d.minorTickInterval,\"auto\"):!1===d.minorTicks?null:d.minorTickInterval};B.prototype.getMinorTickPositions=function(){var d=this.options,b=this.tickPositions,a=this.minorTickInterval,c=[],e=this.pointRangePadding||0,f=this.min-e;e=this.max+e;var m=e-f;if(m&&m/a<this.len/3){var u=this.logarithmic;if(u)this.paddedTicks.forEach(function(b,d,n){d&&c.push.apply(c,u.getLogTickPositions(a,\nn[d-1],n[d],!0))});else if(this.dateTime&&\"auto\"===this.getMinorTickInterval())c=c.concat(this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(a),f,e,d.startOfWeek));else for(d=f+(b[0]-f)%a;d<=e&&d!==c[0];d+=a)c.push(d)}0!==c.length&&this.trimTicks(c);return c};B.prototype.adjustForMinRange=function(){var d=this.options,b=this.min,a=this.max,c=this.logarithmic,e,f,m,p,h;this.isXAxis&&\"undefined\"===typeof this.minRange&&!c&&(J(d.min)||J(d.max)?this.minRange=null:(this.series.forEach(function(b){p=\nb.xData;for(f=h=b.xIncrement?1:p.length-1;0<f;f--)if(m=p[f]-p[f-1],\"undefined\"===typeof e||m<e)e=m}),this.minRange=Math.min(5*e,this.dataMax-this.dataMin)));if(a-b<this.minRange){var w=this.dataMax-this.dataMin>=this.minRange;var l=this.minRange;var C=(l-a+b)/2;C=[b-C,u(d.min,b-C)];w&&(C[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin);b=N(C);a=[b+l,u(d.max,b+l)];w&&(a[2]=c?c.log2lin(this.dataMax):this.dataMax);a=M(a);a-b<l&&(C[0]=a-l,C[1]=u(d.min,a-l),b=N(C))}this.min=b;this.max=\na};B.prototype.getClosest=function(){var d;this.categories?d=1:this.series.forEach(function(b){var a=b.closestPointRange,c=b.visible||!b.chart.options.chart.ignoreHiddenSeries;!b.noSharedTooltip&&J(a)&&c&&(d=J(d)?Math.min(d,a):a)});return d};B.prototype.nameToX=function(d){var b=h(this.categories),a=b?this.categories:this.names,c=d.options.x;d.series.requireSorting=!1;J(c)||(c=!1===this.options.uniqueNames?d.series.autoIncrement():b?a.indexOf(d.name):u(a.keys[d.name],-1));if(-1===c){if(!b)var e=a.length}else e=\nc;\"undefined\"!==typeof e&&(this.names[e]=d.name,this.names.keys[d.name]=e);return e};B.prototype.updateNames=function(){var d=this,b=this.names;0<b.length&&(Object.keys(b.keys).forEach(function(d){delete b.keys[d]}),b.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(function(b){b.xIncrement=null;if(!b.points||b.isDirtyData)d.max=Math.max(d.max,b.xData.length-1),b.processData(),b.generatePoints();b.data.forEach(function(a,c){if(a&&a.options&&\"undefined\"!==typeof a.name){var n=d.nameToX(a);\n\"undefined\"!==typeof n&&n!==a.x&&(a.x=n,b.xData[c]=n)}})}))};B.prototype.setAxisTranslation=function(d){var b=this,a=b.max-b.min,c=b.axisPointRange||0,e=0,f=0,m=b.linkedParent,p=!!b.categories,h=b.transA,w=b.isXAxis;if(w||p||c){var C=b.getClosest();m?(e=m.minPointOffset,f=m.pointRangePadding):b.series.forEach(function(d){var a=p?1:w?u(d.options.pointRange,C,0):b.axisPointRange||0,n=d.options.pointPlacement;c=Math.max(c,a);if(!b.single||p)d=d.is(\"xrange\")?!w:w,e=Math.max(e,d&&l(n)?0:a/2),f=Math.max(f,\nd&&\"on\"===n?0:a)});m=b.ordinal&&b.ordinal.slope&&C?b.ordinal.slope/C:1;b.minPointOffset=e*=m;b.pointRangePadding=f*=m;b.pointRange=Math.min(c,b.single&&p?1:a);w&&(b.closestPointRange=C)}d&&(b.oldTransA=h);b.translationSlope=b.transA=h=b.staticScale||b.len/(a+f||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding=h*e;t(this,\"afterSetAxisTranslation\")};B.prototype.minFromRange=function(){return this.max-this.range};B.prototype.setTickInterval=function(d){var b=this,n=b.chart,e=b.logarithmic,f=b.options,\nm=b.isXAxis,p=b.isLinked,h=f.maxPadding,w=f.minPadding,l=f.tickInterval,C=f.tickPixelInterval,F=b.categories,B=a(b.threshold)?b.threshold:null,L=b.softThreshold;b.dateTime||F||p||this.getTickAmount();var O=u(b.userMin,f.min);var q=u(b.userMax,f.max);if(p){b.linkedParent=n[b.coll][f.linkedTo];var z=b.linkedParent.getExtremes();b.min=u(z.min,z.dataMin);b.max=u(z.max,z.dataMax);f.type!==b.linkedParent.options.type&&D(11,1,n)}else{if(!L&&J(B))if(b.dataMin>=B)z=B,w=0;else if(b.dataMax<=B){var g=B;h=0}b.min=\nu(O,z,b.dataMin);b.max=u(q,g,b.dataMax)}e&&(b.positiveValuesOnly&&!d&&0>=Math.min(b.min,u(b.dataMin,b.min))&&D(10,1,n),b.min=I(e.log2lin(b.min),16),b.max=I(e.log2lin(b.max),16));b.range&&J(b.max)&&(b.userMin=b.min=O=Math.max(b.dataMin,b.minFromRange()),b.userMax=q=b.max,b.range=null);t(b,\"foundExtremes\");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(F||b.axisPointRange||b.stacking&&b.stacking.usePercentage||p)&&J(b.min)&&J(b.max)&&(n=b.max-b.min)&&(!J(O)&&w&&(b.min-=n*w),!J(q)&&h&&(b.max+=\nn*h));a(b.userMin)||(a(f.softMin)&&f.softMin<b.min&&(b.min=O=f.softMin),a(f.floor)&&(b.min=Math.max(b.min,f.floor)));a(b.userMax)||(a(f.softMax)&&f.softMax>b.max&&(b.max=q=f.softMax),a(f.ceiling)&&(b.max=Math.min(b.max,f.ceiling)));L&&J(b.dataMin)&&(B=B||0,!J(O)&&b.min<B&&b.dataMin>=B?b.min=b.options.minRange?Math.min(B,b.max-b.minRange):B:!J(q)&&b.max>B&&b.dataMax<=B&&(b.max=b.options.minRange?Math.max(B,b.min+b.minRange):B));b.tickInterval=b.min===b.max||\"undefined\"===typeof b.min||\"undefined\"===\ntypeof b.max?1:p&&!l&&C===b.linkedParent.options.tickPixelInterval?l=b.linkedParent.tickInterval:u(l,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,F?1:(b.max-b.min)*C/Math.max(b.len,C));m&&!d&&b.series.forEach(function(d){d.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.ordinal&&(b.tickInterval=b.ordinal.postProcessTickInterval(b.tickInterval));b.pointRange&&!l&&(b.tickInterval=Math.max(b.pointRange,\nb.tickInterval));d=u(f.minTickInterval,b.dateTime&&b.closestPointRange);!l&&b.tickInterval<d&&(b.tickInterval=d);b.dateTime||b.logarithmic||l||(b.tickInterval=c(b.tickInterval,void 0,r(b.tickInterval),u(f.allowDecimals,.5>b.tickInterval||void 0!==this.tickAmount),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()};B.prototype.setTickPositions=function(){var d=this.options,b=d.tickPositions;var a=this.getMinorTickInterval();var c=d.tickPositioner,e=this.hasVerticalPanning(),\nf=\"colorAxis\"===this.coll,m=(f||!e)&&d.startOnTick;e=(f||!e)&&d.endOnTick;this.tickmarkOffset=this.categories&&\"between\"===d.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\"auto\"===a&&this.tickInterval?this.tickInterval/5:a;this.single=this.min===this.max&&J(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==d.allowDecimals);this.tickPositions=a=b&&b.slice();!a&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,\n200))?a=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,d.units),this.min,this.max,d.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(a=[this.min,this.max],D(19,!1,this.chart)),a.length>this.len&&(a=[a[0],a.pop()],a[0]===a[1]&&(a.length=1)),this.tickPositions=a,c&&(c=c.apply(this,\n[this.min,this.max])))&&(this.tickPositions=a=c);this.paddedTicks=a.slice(0);this.trimTicks(a,m,e);this.isLinked||(this.single&&2>a.length&&!this.categories&&!this.series.some(function(b){return b.is(\"heatmap\")&&\"between\"===b.options.pointPlacement})&&(this.min-=.5,this.max+=.5),b||c||this.adjustTickAmount());t(this,\"afterSetTickPositions\")};B.prototype.trimTicks=function(d,b,a){var c=d[0],n=d[d.length-1],e=!this.isOrdinal&&this.minPointOffset||0;t(this,\"trimTicks\");if(!this.isLinked){if(b&&-Infinity!==\nc)this.min=c;else for(;this.min-e>d[0];)d.shift();if(a)this.max=n;else for(;this.max+e<d[d.length-1];)d.pop();0===d.length&&J(c)&&!this.options.tickPositions&&d.push((n+c)/2)}};B.prototype.alignToOthers=function(){var d={},b,a=this.options;!1===this.chart.options.chart.alignTicks||!1===a.alignTicks||!1===a.startOnTick||!1===a.endOnTick||this.logarithmic||this.chart[this.coll].forEach(function(a){var c=a.options;c=[a.horiz?c.left:c.top,c.width,c.height,c.pane].join();a.series.length&&(d[c]?b=!0:d[c]=\n1)});return b};B.prototype.getTickAmount=function(){var d=this.options,b=d.tickAmount,a=d.tickPixelInterval;!J(d.tickInterval)&&!b&&this.len<a&&!this.isRadial&&!this.logarithmic&&d.startOnTick&&d.endOnTick&&(b=2);!b&&this.alignToOthers()&&(b=Math.ceil(this.len/a)+1);4>b&&(this.finalTickAmt=b,b=5);this.tickAmount=b};B.prototype.adjustTickAmount=function(){var d=this.options,b=this.tickInterval,a=this.tickPositions,c=this.tickAmount,e=this.finalTickAmt,f=a&&a.length,m=u(this.threshold,this.softThreshold?\n0:null),p;if(this.hasData()){if(f<c){for(p=this.min;a.length<c;)a.length%2||p===m?a.push(I(a[a.length-1]+b)):a.unshift(I(a[0]-b));this.transA*=(f-1)/(c-1);this.min=d.startOnTick?a[0]:Math.min(this.min,a[0]);this.max=d.endOnTick?a[a.length-1]:Math.max(this.max,a[a.length-1])}else f>c&&(this.tickInterval*=2,this.setTickPositions());if(J(e)){for(b=d=a.length;b--;)(3===e&&1===b%2||2>=e&&0<b&&b<d-1)&&a.splice(b,1);this.finalTickAmt=void 0}}};B.prototype.setScale=function(){var d,b=!1,a=!1;this.series.forEach(function(d){var c;\nb=b||d.isDirtyData||d.isDirty;a=a||(null===(c=d.xAxis)||void 0===c?void 0:c.isDirty)||!1});this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();(d=this.len!==this.oldAxisLength)||b||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.stacking&&this.stacking.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,\nthis.isDirty||(this.isDirty=d||this.min!==this.oldMin||this.max!==this.oldMax)):this.stacking&&this.stacking.cleanStacks();b&&this.panningState&&(this.panningState.isDirty=!0);t(this,\"afterSetScale\")};B.prototype.setExtremes=function(d,b,a,c,e){var n=this,f=n.chart;a=u(a,!0);n.series.forEach(function(b){delete b.kdTree});e=z(e,{min:d,max:b});t(n,\"setExtremes\",e,function(){n.userMin=d;n.userMax=b;n.eventArgs=e;a&&f.redraw(c)})};B.prototype.zoom=function(d,b){var a=this,c=this.dataMin,e=this.dataMax,\nf=this.options,m=Math.min(c,u(f.min,c)),p=Math.max(e,u(f.max,e));d={newMin:d,newMax:b};t(this,\"zoom\",d,function(b){var d=b.newMin,n=b.newMax;if(d!==a.min||n!==a.max)a.allowZoomOutside||(J(c)&&(d<m&&(d=m),d>p&&(d=p)),J(e)&&(n<m&&(n=m),n>p&&(n=p))),a.displayBtn=\"undefined\"!==typeof d||\"undefined\"!==typeof n,a.setExtremes(d,n,!1,void 0,{trigger:\"zoom\"});b.zoomed=!0});return d.zoomed};B.prototype.setAxisSize=function(){var d=this.chart,b=this.options,a=b.offsets||[0,0,0,0],c=this.horiz,e=this.width=Math.round(L(u(b.width,\nd.plotWidth-a[3]+a[1]),d.plotWidth)),f=this.height=Math.round(L(u(b.height,d.plotHeight-a[0]+a[2]),d.plotHeight)),m=this.top=Math.round(L(u(b.top,d.plotTop+a[0]),d.plotHeight,d.plotTop));b=this.left=Math.round(L(u(b.left,d.plotLeft+a[3]),d.plotWidth,d.plotLeft));this.bottom=d.chartHeight-f-m;this.right=d.chartWidth-e-b;this.len=Math.max(c?e:f,0);this.pos=c?b:m};B.prototype.getExtremes=function(){var d=this.logarithmic;return{min:d?I(d.lin2log(this.min)):this.min,max:d?I(d.lin2log(this.max)):this.max,\ndataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}};B.prototype.getThreshold=function(d){var b=this.logarithmic,a=b?b.lin2log(this.min):this.min;b=b?b.lin2log(this.max):this.max;null===d||-Infinity===d?d=a:Infinity===d?d=b:a>d?d=a:b<d&&(d=b);return this.translate(d,0,1,0,1)};B.prototype.autoLabelAlign=function(d){var b=(u(d,0)-90*this.side+720)%360;d={align:\"center\"};t(this,\"autoLabelAlign\",d,function(d){15<b&&165>b?d.align=\"right\":195<b&&345>b&&(d.align=\"left\")});\nreturn d.align};B.prototype.tickSize=function(d){var b=this.options,a=b[\"tick\"===d?\"tickLength\":\"minorTickLength\"],c=u(b[\"tick\"===d?\"tickWidth\":\"minorTickWidth\"],\"tick\"===d&&this.isXAxis&&!this.categories?1:0);if(c&&a){\"inside\"===b[d+\"Position\"]&&(a=-a);var e=[a,c]}d={tickSize:e};t(this,\"afterTickSize\",d);return d.tickSize};B.prototype.labelMetrics=function(){var d=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,\nthis.ticks[d]&&this.ticks[d].label)};B.prototype.unsquish=function(){var d=this.options.labels,b=this.horiz,a=this.tickInterval,c=a,e=this.len/(((this.categories?1:0)+this.max-this.min)/a),f,m=d.rotation,p=this.labelMetrics(),h,w=Number.MAX_VALUE,l,C=this.max-this.min,F=function(b){var d=b/(e||1);d=1<d?Math.ceil(d):1;d*a>C&&Infinity!==b&&Infinity!==e&&C&&(d=Math.ceil(C/a));return I(d*a)};b?(l=!d.staggerLines&&!d.step&&(J(m)?[m]:e<u(d.autoRotationLimit,80)&&d.autoRotation))&&l.forEach(function(b){if(b===\nm||b&&-90<=b&&90>=b){h=F(Math.abs(p.h/Math.sin(O*b)));var d=h+Math.abs(b/360);d<w&&(w=d,f=b,c=h)}}):d.step||(c=F(p.h));this.autoRotation=l;this.labelRotation=u(f,m);return c};B.prototype.getSlotWidth=function(d){var b,c=this.chart,e=this.horiz,f=this.options.labels,m=Math.max(this.tickPositions.length-(this.categories?0:1),1),u=c.margin[3];if(d&&a(d.slotWidth))return d.slotWidth;if(e&&f&&2>(f.step||0))return f.rotation?0:(this.staggerLines||1)*this.len/m;if(!e){d=null===(b=null===f||void 0===f?void 0:\nf.style)||void 0===b?void 0:b.width;if(void 0!==d)return parseInt(d,10);if(u)return u-c.spacing[3]}return.33*c.chartWidth};B.prototype.renderUnsquish=function(){var d=this.chart,b=d.renderer,a=this.tickPositions,c=this.ticks,e=this.options.labels,f=e&&e.style||{},m=this.horiz,u=this.getSlotWidth(),p=Math.max(1,Math.round(u-2*(e.padding||5))),h={},w=this.labelMetrics(),C=e.style&&e.style.textOverflow,F=0;l(e.rotation)||(h.rotation=e.rotation||0);a.forEach(function(b){b=c[b];b.movedLabel&&b.replaceMovedLabel();\nb&&b.label&&b.label.textPxLength>F&&(F=b.label.textPxLength)});this.maxLabelLength=F;if(this.autoRotation)F>p&&F>w.h?h.rotation=this.labelRotation:this.labelRotation=0;else if(u){var B=p;if(!C){var L=\"clip\";for(p=a.length;!m&&p--;){var r=a[p];if(r=c[r].label)r.styles&&\"ellipsis\"===r.styles.textOverflow?r.css({textOverflow:\"clip\"}):r.textPxLength>u&&r.css({width:u+\"px\"}),r.getBBox().height>this.len/a.length-(w.h-w.f)&&(r.specificTextOverflow=\"ellipsis\")}}}h.rotation&&(B=F>.5*d.chartHeight?.33*d.chartHeight:\nF,C||(L=\"ellipsis\"));if(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))h.align=this.labelAlign;a.forEach(function(b){var d=(b=c[b])&&b.label,a=f.width,e={};d&&(d.attr(h),b.shortenLabel?b.shortenLabel():B&&!a&&\"nowrap\"!==f.whiteSpace&&(B<d.textPxLength||\"SPAN\"===d.element.tagName)?(e.width=B+\"px\",C||(e.textOverflow=d.specificTextOverflow||L),d.css(e)):d.styles&&d.styles.width&&!e.width&&!a&&d.css({width:null}),delete d.specificTextOverflow,b.rotation=h.rotation)},this);this.tickRotCorr=\nb.rotCorr(w.b,this.labelRotation||0,0!==this.side)};B.prototype.hasData=function(){return this.series.some(function(d){return d.hasData()})||this.options.showEmpty&&J(this.min)&&J(this.max)};B.prototype.addTitle=function(d){var b=this.chart.renderer,a=this.horiz,c=this.opposite,f=this.options.title,m,u=this.chart.styledMode;this.axisTitle||((m=f.textAlign)||(m=(a?{low:\"left\",middle:\"center\",high:\"right\"}:{low:c?\"right\":\"left\",middle:\"center\",high:c?\"left\":\"right\"})[f.align]),this.axisTitle=b.text(f.text,\n0,0,f.useHTML).attr({zIndex:7,rotation:f.rotation||0,align:m}).addClass(\"highcharts-axis-title\"),u||this.axisTitle.css(e(f.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0);u||f.style.width||this.isRadial||this.axisTitle.css({width:this.len+\"px\"});this.axisTitle[d?\"show\":\"hide\"](d)};B.prototype.generateTick=function(d){var b=this.ticks;b[d]?b[d].addLabel():b[d]=new H(this,d)};B.prototype.getOffset=function(){var d=this,b=d.chart,a=b.renderer,c=d.options,e=d.tickPositions,f=d.ticks,\np=d.horiz,h=d.side,w=b.inverted&&!d.isZAxis?[1,0,3,2][h]:h,l,C=0,F=0,B=c.title,r=c.labels,L=0,O=b.axisOffset;b=b.clipOffset;var q=[-1,1,1,-1][h],z=c.className,g=d.axisParent;var k=d.hasData();d.showAxis=l=k||u(c.showEmpty,!0);d.staggerLines=d.horiz&&r.staggerLines;d.axisGroup||(d.gridGroup=a.g(\"grid\").attr({zIndex:c.gridZIndex||1}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\"-grid \"+(z||\"\")).add(g),d.axisGroup=a.g(\"axis\").attr({zIndex:c.zIndex||2}).addClass(\"highcharts-\"+this.coll.toLowerCase()+\n\" \"+(z||\"\")).add(g),d.labelGroup=a.g(\"axis-labels\").attr({zIndex:r.zIndex||7}).addClass(\"highcharts-\"+d.coll.toLowerCase()+\"-labels \"+(z||\"\")).add(g));k||d.isLinked?(e.forEach(function(b,a){d.generateTick(b,a)}),d.renderUnsquish(),d.reserveSpaceDefault=0===h||2===h||{1:\"left\",3:\"right\"}[h]===d.labelAlign,u(r.reserveSpace,\"center\"===d.labelAlign?!0:null,d.reserveSpaceDefault)&&e.forEach(function(b){L=Math.max(f[b].getLabelSize(),L)}),d.staggerLines&&(L*=d.staggerLines),d.labelOffset=L*(d.opposite?\n-1:1)):m(f,function(b,d){b.destroy();delete f[d]});if(B&&B.text&&!1!==B.enabled&&(d.addTitle(l),l&&!1!==B.reserveSpace)){d.titleOffset=C=d.axisTitle.getBBox()[p?\"height\":\"width\"];var y=B.offset;F=J(y)?0:u(B.margin,p?5:10)}d.renderLine();d.offset=q*u(c.offset,O[h]?O[h]+(c.margin||0):0);d.tickRotCorr=d.tickRotCorr||{x:0,y:0};a=0===h?-d.labelMetrics().h:2===h?d.tickRotCorr.y:0;F=Math.abs(L)+F;L&&(F=F-a+q*(p?u(r.y,d.tickRotCorr.y+8*q):r.x));d.axisTitleMargin=u(y,F);d.getMaxLabelDimensions&&(d.maxLabelDimensions=\nd.getMaxLabelDimensions(f,e));p=this.tickSize(\"tick\");O[h]=Math.max(O[h],d.axisTitleMargin+C+q*d.offset,F,e&&e.length&&p?p[0]+q*d.offset:0);c=c.offset?0:2*Math.floor(d.axisLine.strokeWidth()/2);b[w]=Math.max(b[w],c);t(this,\"afterGetOffset\")};B.prototype.getLinePath=function(d){var b=this.chart,a=this.opposite,c=this.offset,e=this.horiz,f=this.left+(a?this.width:0)+c;c=b.chartHeight-this.bottom-(a?this.height:0)+c;a&&(d*=-1);return b.renderer.crispLine([[\"M\",e?this.left:f,e?c:this.top],[\"L\",e?b.chartWidth-\nthis.right:f,e?c:b.chartHeight-this.bottom]],d)};B.prototype.renderLine=function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))};B.prototype.getTitlePosition=function(){var d=this.horiz,b=this.left,a=this.top,c=this.len,e=this.options.title,f=d?b:a,m=this.opposite,u=this.offset,p=e.x||0,h=e.y||0,w=this.axisTitle,\nl=this.chart.renderer.fontMetrics(e.style&&e.style.fontSize,w);w=Math.max(w.getBBox(null,0).height-l.h-1,0);c={low:f+(d?0:c),middle:f+c/2,high:f+(d?c:0)}[e.align];b=(d?a+this.height:b)+(d?1:-1)*(m?-1:1)*this.axisTitleMargin+[-w,w,l.f,-w][this.side];d={x:d?c+p:b+(m?this.width:0)+u+p,y:d?b+h-(m?this.height:0)+u:c+h};t(this,\"afterGetTitlePosition\",{titlePosition:d});return d};B.prototype.renderMinorTick=function(d){var b=this.chart.hasRendered&&a(this.oldMin),c=this.minorTicks;c[d]||(c[d]=new H(this,\nd,\"minor\"));b&&c[d].isNew&&c[d].render(null,!0);c[d].render(null,!1,1)};B.prototype.renderTick=function(d,b){var c=this.isLinked,e=this.ticks,f=this.chart.hasRendered&&a(this.oldMin);if(!c||d>=this.min&&d<=this.max)e[d]||(e[d]=new H(this,d)),f&&e[d].isNew&&e[d].render(b,!0,-1),e[d].render(b)};B.prototype.render=function(){var d=this,b=d.chart,c=d.logarithmic,e=d.options,f=d.isLinked,u=d.tickPositions,h=d.axisTitle,w=d.ticks,l=d.minorTicks,C=d.alternateBands,F=e.stackLabels,B=e.alternateGridColor,\nL=d.tickmarkOffset,r=d.axisLine,O=d.showAxis,q=G(b.renderer.globalAnimation),z,k;d.labelEdge.length=0;d.overlap=!1;[w,l,C].forEach(function(b){m(b,function(b){b.isActive=!1})});if(d.hasData()||f)d.minorTickInterval&&!d.categories&&d.getMinorTickPositions().forEach(function(b){d.renderMinorTick(b)}),u.length&&(u.forEach(function(b,a){d.renderTick(b,a)}),L&&(0===d.min||d.single)&&(w[-1]||(w[-1]=new H(d,-1,null,!0)),w[-1].render(-1))),B&&u.forEach(function(a,e){k=\"undefined\"!==typeof u[e+1]?u[e+1]+L:\nd.max-L;0===e%2&&a<d.max&&k<=d.max+(b.polar?-L:L)&&(C[a]||(C[a]=new g.PlotLineOrBand(d)),z=a+L,C[a].options={from:c?c.lin2log(z):z,to:c?c.lin2log(k):k,color:B},C[a].render(),C[a].isActive=!0)}),d._addedPlotLB||((e.plotLines||[]).concat(e.plotBands||[]).forEach(function(b){d.addPlotBandOrLine(b)}),d._addedPlotLB=!0);[w,l,C].forEach(function(d){var a,c=[],e=q.duration;m(d,function(b,d){b.isActive||(b.render(d,!1,0),b.isActive=!1,c.push(d))});p(function(){for(a=c.length;a--;)d[c[a]]&&!d[c[a]].isActive&&\n(d[c[a]].destroy(),delete d[c[a]])},d!==C&&b.hasRendered&&e?e:0)});r&&(r[r.isPlaced?\"animate\":\"attr\"]({d:this.getLinePath(r.strokeWidth())}),r.isPlaced=!0,r[O?\"show\":\"hide\"](O));h&&O&&(e=d.getTitlePosition(),a(e.y)?(h[h.isNew?\"attr\":\"animate\"](e),h.isNew=!1):(h.attr(\"y\",-9999),h.isNew=!0));F&&F.enabled&&d.stacking&&d.stacking.renderStackTotals();d.isDirty=!1;t(this,\"afterRender\")};B.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach(function(d){d.render()}));this.series.forEach(function(d){d.isDirty=\n!0})};B.prototype.getKeepProps=function(){return this.keepProps||B.keepProps};B.prototype.destroy=function(d){var b=this,a=b.plotLinesAndBands,c;t(this,\"destroy\",{keepEvents:d});d||F(b);[b.ticks,b.minorTicks,b.alternateBands].forEach(function(b){E(b)});if(a)for(d=a.length;d--;)a[d].destroy();\"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar\".split(\" \").forEach(function(d){b[d]&&(b[d]=b[d].destroy())});for(c in b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[c]=b.plotLinesAndBandsGroups[c].destroy();\nm(b,function(d,a){-1===b.getKeepProps().indexOf(a)&&delete b[a]})};B.prototype.drawCrosshair=function(d,b){var a=this.crosshair,c=u(a.snap,!0),e,f=this.cross,m=this.chart;t(this,\"drawCrosshair\",{e:d,point:b});d||(d=this.cross&&this.cross.e);if(this.crosshair&&!1!==(J(b)||!c)){c?J(b)&&(e=u(\"colorAxis\"!==this.coll?b.crosshairPos:null,this.isXAxis?b.plotX:this.len-b.plotY)):e=d&&(this.horiz?d.chartX-this.pos:this.len-d.chartY+this.pos);if(J(e)){var p={value:b&&(this.isXAxis?b.x:u(b.stackY,b.y)),translatedValue:e};\nm.polar&&z(p,{isCrosshair:!0,chartX:d&&d.chartX,chartY:d&&d.chartY,point:b});p=this.getPlotLinePath(p)||null}if(!J(p)){this.hideCrosshair();return}c=this.categories&&!this.isRadial;f||(this.cross=f=m.renderer.path().addClass(\"highcharts-crosshair highcharts-crosshair-\"+(c?\"category \":\"thin \")+a.className).attr({zIndex:u(a.zIndex,2)}).add(),m.styledMode||(f.attr({stroke:a.color||(c?k.parse(\"#ccd6eb\").setOpacity(.25).get():\"#cccccc\"),\"stroke-width\":u(a.width,1)}).css({\"pointer-events\":\"none\"}),a.dashStyle&&\nf.attr({dashstyle:a.dashStyle})));f.show().attr({d:p});c&&!a.width&&f.attr({\"stroke-width\":this.transA});this.cross.e=d}else this.hideCrosshair();t(this,\"afterDrawCrosshair\",{e:d,point:b})};B.prototype.hideCrosshair=function(){this.cross&&this.cross.hide();t(this,\"afterHideCrosshair\")};B.prototype.hasVerticalPanning=function(){var d,b;return/y/.test((null===(b=null===(d=this.chart.options.chart)||void 0===d?void 0:d.panning)||void 0===b?void 0:b.type)||\"\")};B.defaultOptions={dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",\nrange:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e. %b\"},week:{main:\"%e. %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"}},maxPadding:.01,minorTickLength:2,minorTickPosition:\"outside\",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",\nstyle:{color:\"#666666\"}},type:\"linear\",minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",tickColor:\"#ccd6eb\"};B.defaultYAxisOptions={endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){var d=this.axis.chart.numberFormatter;return d(this.total,\n-1)},style:{color:\"#000000\",fontSize:\"11px\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0};B.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}};B.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}};B.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}};B.keepProps=\"extKey hcEvents names series userMax userMin\".split(\" \");return B}();\ng.Axis=v;return g.Axis});P(A,\"parts/DateTimeAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.getMagnitude,K=g.normalizeTickInterval,G=g.timeUnits,N=function(){function g(g){this.axis=g}g.prototype.normalizeTimeTickInterval=function(g,k){var y=k||[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2]],[\"week\",[1,2]],[\"month\",[1,2,3,4,6]],[\"year\",null]];k=y[y.length-1];var E=\nG[k[0]],D=k[1],z;for(z=0;z<y.length&&!(k=y[z],E=G[k[0]],D=k[1],y[z+1]&&g<=(E*D[D.length-1]+G[y[z+1][0]])/2);z++);E===G.year&&g<5*E&&(D=[1,2,5]);g=K(g/E,D,\"year\"===k[0]?Math.max(v(g/E),1):1);return{unitRange:E,count:g,unitName:k[0]}};return g}();g=function(){function g(){}g.compose=function(g){g.keepProps.push(\"dateTime\");g.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};H(g,\"init\",function(g){\"datetime\"!==g.userOptions.type?this.dateTime=void 0:\nthis.dateTime||(this.dateTime=new N(this))})};g.AdditionsClass=N;return g}();g.compose(k);return g});P(A,\"parts/LogarithmicAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.getMagnitude,K=g.normalizeTickInterval,G=g.pick,N=function(){function g(g){this.axis=g}g.prototype.getLogTickPositions=function(g,k,J,E){var y=this.axis,z=y.len,t=y.options,q=[];E||(this.minorAutoInterval=void 0);if(.5<=g)g=Math.round(g),q=y.getLinearTickPositions(g,k,J);else if(.08<=g){t=\nMath.floor(k);var r,h;for(z=.3<g?[1,2,4]:.15<g?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];t<J+1&&!h;t++){var f=z.length;for(r=0;r<f&&!h;r++){var a=this.log2lin(this.lin2log(t)*z[r]);a>k&&(!E||l<=J)&&\"undefined\"!==typeof l&&q.push(l);l>J&&(h=!0);var l=a}}}else k=this.lin2log(k),J=this.lin2log(J),g=E?y.getMinorTickInterval():t.tickInterval,g=G(\"auto\"===g?null:g,this.minorAutoInterval,t.tickPixelInterval/(E?5:1)*(J-k)/((E?z/y.tickPositions.length:z)||1)),g=K(g,void 0,v(g)),q=y.getLinearTickPositions(g,k,J).map(this.log2lin),\nE||(this.minorAutoInterval=g/5);E||(y.tickInterval=g);return q};g.prototype.lin2log=function(g){return Math.pow(10,g)};g.prototype.log2lin=function(g){return Math.log(g)/Math.LN10};return g}();g=function(){function g(){}g.compose=function(g){g.keepProps.push(\"logarithmic\");var k=g.prototype,y=N.prototype;k.log2lin=y.log2lin;k.lin2log=y.lin2log;H(g,\"init\",function(g){var k=this.logarithmic;\"logarithmic\"!==g.userOptions.type?this.logarithmic=void 0:(k||(k=this.logarithmic=new N(this)),this.log2lin!==\nk.log2lin&&(k.log2lin=this.log2lin.bind(this)),this.lin2log!==k.lin2log&&(k.lin2log=this.lin2log.bind(this)))});H(g,\"afterInit\",function(){var g=this.logarithmic;g&&(this.lin2val=function(k){return g.lin2log(k)},this.val2lin=function(k){return g.log2lin(k)})})};return g}();g.compose(k);return g});P(A,\"parts/PlotLineOrBand.js\",[A[\"parts/Globals.js\"],A[\"parts/Axis.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){var v=H.arrayMax,K=H.arrayMin,G=H.defined,N=H.destroyObjectProperties,M=H.erase,y=H.extend,\nI=H.merge,J=H.objectEach,E=H.pick,D=function(){function g(t,q){this.axis=t;q&&(this.options=q,this.id=q.id)}g.prototype.render=function(){k.fireEvent(this,\"render\");var t=this,q=t.axis,r=q.horiz,h=q.logarithmic,f=t.options,a=f.label,l=t.label,e=f.to,c=f.from,m=f.value,u=G(c)&&G(e),L=G(m),F=t.svgElem,w=!F,p=[],C=f.color,O=E(f.zIndex,0),B=f.events;p={\"class\":\"highcharts-plot-\"+(u?\"band \":\"line \")+(f.className||\"\")};var d={},b=q.chart.renderer,n=u?\"bands\":\"lines\";h&&(c=h.log2lin(c),e=h.log2lin(e),m=\nh.log2lin(m));q.chart.styledMode||(L?(p.stroke=C||\"#999999\",p[\"stroke-width\"]=E(f.width,1),f.dashStyle&&(p.dashstyle=f.dashStyle)):u&&(p.fill=C||\"#e6ebf5\",f.borderWidth&&(p.stroke=f.borderColor,p[\"stroke-width\"]=f.borderWidth)));d.zIndex=O;n+=\"-\"+O;(h=q.plotLinesAndBandsGroups[n])||(q.plotLinesAndBandsGroups[n]=h=b.g(\"plot-\"+n).attr(d).add());w&&(t.svgElem=F=b.path().attr(p).add(h));if(L)p=q.getPlotLinePath({value:m,lineWidth:F.strokeWidth(),acrossPanes:f.acrossPanes});else if(u)p=q.getPlotBandPath(c,\ne,f);else return;(w||!F.d)&&p&&p.length?(F.attr({d:p}),B&&J(B,function(b,d){F.on(d,function(b){B[d].apply(t,[b])})})):F&&(p?(F.show(!0),F.animate({d:p})):F.d&&(F.hide(),l&&(t.label=l=l.destroy())));a&&(G(a.text)||G(a.formatter))&&p&&p.length&&0<q.width&&0<q.height&&!p.isFlat?(a=I({align:r&&u&&\"center\",x:r?!u&&4:10,verticalAlign:!r&&u&&\"middle\",y:r?u?16:10:u?6:-4,rotation:r&&!u&&90},a),this.renderLabel(a,p,u,O)):l&&l.hide();return t};g.prototype.renderLabel=function(t,q,r,h){var f=this.label,a=this.axis.chart.renderer;\nf||(f={align:t.textAlign||t.align,rotation:t.rotation,\"class\":\"highcharts-plot-\"+(r?\"band\":\"line\")+\"-label \"+(t.className||\"\")},f.zIndex=h,h=this.getLabelText(t),this.label=f=a.text(h,0,0,t.useHTML).attr(f).add(),this.axis.chart.styledMode||f.css(t.style));a=q.xBounds||[q[0][1],q[1][1],r?q[2][1]:q[0][1]];q=q.yBounds||[q[0][2],q[1][2],r?q[2][2]:q[0][2]];r=K(a);h=K(q);f.align(t,!1,{x:r,y:h,width:v(a)-r,height:v(q)-h});f.show(!0)};g.prototype.getLabelText=function(t){return G(t.formatter)?t.formatter.call(this):\nt.text};g.prototype.destroy=function(){M(this.axis.plotLinesAndBands,this);delete this.axis;N(this)};return g}();y(g.prototype,{getPlotBandPath:function(g,t){var q=this.getPlotLinePath({value:t,force:!0,acrossPanes:this.options.acrossPanes}),r=this.getPlotLinePath({value:g,force:!0,acrossPanes:this.options.acrossPanes}),h=[],f=this.horiz,a=1;g=g<this.min&&t<this.min||g>this.max&&t>this.max;if(r&&q){if(g){var l=r.toString()===q.toString();a=0}for(g=0;g<r.length;g+=2){t=r[g];var e=r[g+1],c=q[g],m=q[g+\n1];\"M\"!==t[0]&&\"L\"!==t[0]||\"M\"!==e[0]&&\"L\"!==e[0]||\"M\"!==c[0]&&\"L\"!==c[0]||\"M\"!==m[0]&&\"L\"!==m[0]||(f&&c[1]===t[1]?(c[1]+=a,m[1]+=a):f||c[2]!==t[2]||(c[2]+=a,m[2]+=a),h.push([\"M\",t[1],t[2]],[\"L\",e[1],e[2]],[\"L\",m[1],m[2]],[\"L\",c[1],c[2]],[\"Z\"]));h.isFlat=l}}return h},addPlotBand:function(g){return this.addPlotBandOrLine(g,\"plotBands\")},addPlotLine:function(g){return this.addPlotBandOrLine(g,\"plotLines\")},addPlotBandOrLine:function(g,t){var q=(new D(this,g)).render(),r=this.userOptions;if(q){if(t){var h=\nr[t]||[];h.push(g);r[t]=h}this.plotLinesAndBands.push(q)}return q},removePlotBandOrLine:function(g){for(var t=this.plotLinesAndBands,q=this.options,r=this.userOptions,h=t.length;h--;)t[h].id===g&&t[h].destroy();[q.plotLines||[],r.plotLines||[],q.plotBands||[],r.plotBands||[]].forEach(function(f){for(h=f.length;h--;)(f[h]||{}).id===g&&M(f,f[h])})},removePlotBand:function(g){this.removePlotBandOrLine(g)},removePlotLine:function(g){this.removePlotBandOrLine(g)}});k.PlotLineOrBand=D;return k.PlotLineOrBand});\nP(A,\"parts/Tooltip.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.clamp,v=g.css,K=g.defined,G=g.discardElement,N=g.extend,M=g.fireEvent,y=g.format,I=g.isNumber,J=g.isString,E=g.merge,D=g.pick,z=g.splat,t=g.syncTimeout,q=g.timeUnits;\"\";var r=k.doc,h=function(){function f(a,f){this.crosshairs=[];this.distance=0;this.isHidden=!0;this.isSticky=!1;this.now={};this.options={};this.outside=!1;this.chart=a;this.init(a,f)}f.prototype.applyFilter=function(){var a=this.chart;a.renderer.definition({tagName:\"filter\",\nid:\"drop-shadow-\"+a.index,opacity:.5,children:[{tagName:\"feGaussianBlur\",\"in\":\"SourceAlpha\",stdDeviation:1},{tagName:\"feOffset\",dx:1,dy:1},{tagName:\"feComponentTransfer\",children:[{tagName:\"feFuncA\",type:\"linear\",slope:.3}]},{tagName:\"feMerge\",children:[{tagName:\"feMergeNode\"},{tagName:\"feMergeNode\",\"in\":\"SourceGraphic\"}]}]});a.renderer.definition({tagName:\"style\",textContent:\".highcharts-tooltip-\"+a.index+\"{filter:url(#drop-shadow-\"+a.index+\")}\"})};f.prototype.bodyFormatter=function(a){return a.map(function(a){var e=\na.series.tooltipOptions;return(e[(a.point.formatPrefix||\"point\")+\"Formatter\"]||a.point.tooltipFormatter).call(a.point,e[(a.point.formatPrefix||\"point\")+\"Format\"]||\"\")})};f.prototype.cleanSplit=function(a){this.chart.series.forEach(function(f){var e=f&&f.tt;e&&(!e.isActive||a?f.tt=e.destroy():e.isActive=!1)})};f.prototype.defaultFormatter=function(a){var f=this.points||z(this);var e=[a.tooltipFooterHeaderFormatter(f[0])];e=e.concat(a.bodyFormatter(f));e.push(a.tooltipFooterHeaderFormatter(f[0],!0));\nreturn e};f.prototype.destroy=function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());this.renderer&&(this.renderer=this.renderer.destroy(),G(this.container));g.clearTimeout(this.hideTimer);g.clearTimeout(this.tooltipTimeout)};f.prototype.getAnchor=function(a,f){var e=this.chart,c=e.pointer,m=e.inverted,u=e.plotTop,h=e.plotLeft,l=0,w=0,p,C;a=z(a);this.followPointer&&f?(\"undefined\"===typeof f.chartX&&(f=c.normalize(f)),\na=[f.chartX-h,f.chartY-u]):a[0].tooltipPos?a=a[0].tooltipPos:(a.forEach(function(a){p=a.series.yAxis;C=a.series.xAxis;l+=a.plotX+(!m&&C?C.left-h:0);w+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!m&&p?p.top-u:0)}),l/=a.length,w/=a.length,a=[m?e.plotWidth-w:l,this.shared&&!m&&1<a.length&&f?f.chartY-u:m?e.plotHeight-l:w]);return a.map(Math.round)};f.prototype.getDateFormat=function(a,f,e,c){var m=this.chart.time,u=m.dateFormat(\"%m-%d %H:%M:%S.%L\",f),h={millisecond:15,second:12,minute:9,hour:6,day:3},\nl=\"millisecond\";for(w in q){if(a===q.week&&+m.dateFormat(\"%w\",f)===e&&\"00:00:00.000\"===u.substr(6)){var w=\"week\";break}if(q[w]>a){w=l;break}if(h[w]&&u.substr(h[w])!==\"01-01 00:00:00.000\".substr(h[w]))break;\"week\"!==w&&(l=w)}if(w)var p=m.resolveDTLFormat(c[w]).main;return p};f.prototype.getLabel=function(){var a,f,e=this,c=this.chart.renderer,m=this.chart.styledMode,u=this.options,h=\"tooltip\"+(K(u.className)?\" \"+u.className:\"\"),F=(null===(a=u.style)||void 0===a?void 0:a.pointerEvents)||(!this.followPointer&&\nu.stickOnContact?\"auto\":\"none\"),w;a=function(){e.inContact=!0};var p=function(){var a=e.chart.hoverSeries;e.inContact=!1;if(a&&a.onMouseOut)a.onMouseOut()};if(!this.label){this.outside&&(this.container=w=k.doc.createElement(\"div\"),w.className=\"highcharts-tooltip-container\",v(w,{position:\"absolute\",top:\"1px\",pointerEvents:F,zIndex:3}),k.doc.body.appendChild(w),this.renderer=c=new k.Renderer(w,0,0,null===(f=this.chart.options.chart)||void 0===f?void 0:f.style,void 0,void 0,c.styledMode));this.split?\nthis.label=c.g(h):(this.label=c.label(\"\",0,0,u.shape||\"callout\",null,null,u.useHTML,null,h).attr({padding:u.padding,r:u.borderRadius}),m||this.label.attr({fill:u.backgroundColor,\"stroke-width\":u.borderWidth}).css(u.style).css({pointerEvents:F}).shadow(u.shadow));m&&(this.applyFilter(),this.label.addClass(\"highcharts-tooltip-\"+this.chart.index));if(e.outside&&!e.split){var C={x:this.label.xSetter,y:this.label.ySetter};this.label.xSetter=function(a,c){C[c].call(this.label,e.distance);w.style.left=a+\n\"px\"};this.label.ySetter=function(a,c){C[c].call(this.label,e.distance);w.style.top=a+\"px\"}}this.label.on(\"mouseenter\",a).on(\"mouseleave\",p).attr({zIndex:8}).add()}return this.label};f.prototype.getPosition=function(a,f,e){var c=this.chart,m=this.distance,u={},h=c.inverted&&e.h||0,l,w=this.outside,p=w?r.documentElement.clientWidth-2*m:c.chartWidth,C=w?Math.max(r.body.scrollHeight,r.documentElement.scrollHeight,r.body.offsetHeight,r.documentElement.offsetHeight,r.documentElement.clientHeight):c.chartHeight,\nt=c.pointer.getChartPosition(),B=c.containerScaling,d=function(b){return B?b*B.scaleX:b},b=function(b){return B?b*B.scaleY:b},n=function(n){var u=\"x\"===n;return[n,u?p:C,u?a:f].concat(w?[u?d(a):b(f),u?t.left-m+d(e.plotX+c.plotLeft):t.top-m+b(e.plotY+c.plotTop),0,u?p:C]:[u?a:f,u?e.plotX+c.plotLeft:e.plotY+c.plotTop,u?c.plotLeft:c.plotTop,u?c.plotLeft+c.plotWidth:c.plotTop+c.plotHeight])},x=n(\"y\"),q=n(\"x\"),g=!this.followPointer&&D(e.ttBelow,!c.inverted===!!e.negative),z=function(a,c,e,f,n,p,w){var x=\n\"y\"===a?b(m):d(m),l=(e-f)/2,C=f<n-m,F=n+m+f<c,B=n-x-e+l;n=n+x-l;if(g&&F)u[a]=n;else if(!g&&C)u[a]=B;else if(C)u[a]=Math.min(w-f,0>B-h?B:B-h);else if(F)u[a]=Math.max(p,n+h+e>c?n:n+h);else return!1},k=function(b,d,a,c,e){var f;e<m||e>d-m?f=!1:u[b]=e<a/2?1:e>d-c/2?d-c-2:e-a/2;return f},y=function(b){var d=x;x=q;q=d;l=b},E=function(){!1!==z.apply(0,x)?!1!==k.apply(0,q)||l||(y(!0),E()):l?u.x=u.y=0:(y(!0),E())};(c.inverted||1<this.len)&&y();E();return u};f.prototype.getXDateFormat=function(a,f,e){f=f.dateTimeLabelFormats;\nvar c=e&&e.closestPointRange;return(c?this.getDateFormat(c,a.x,e.options.startOfWeek,f):f.day)||f.year};f.prototype.hide=function(a){var f=this;g.clearTimeout(this.hideTimer);a=D(a,this.options.hideDelay,500);this.isHidden||(this.hideTimer=t(function(){f.getLabel().fadeOut(a?void 0:a);f.isHidden=!0},a))};f.prototype.init=function(a,f){this.chart=a;this.options=f;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=f.split&&!a.inverted&&!a.polar;this.shared=f.shared||this.split;this.outside=\nD(f.outside,!(!a.scrollablePixelsX&&!a.scrollablePixelsY))};f.prototype.isStickyOnContact=function(){return!(this.followPointer||!this.options.stickOnContact||!this.inContact)};f.prototype.move=function(a,f,e,c){var m=this,u=m.now,h=!1!==m.options.animation&&!m.isHidden&&(1<Math.abs(a-u.x)||1<Math.abs(f-u.y)),l=m.followPointer||1<m.len;N(u,{x:h?(2*u.x+a)/3:a,y:h?(u.y+f)/2:f,anchorX:l?void 0:h?(2*u.anchorX+e)/3:e,anchorY:l?void 0:h?(u.anchorY+c)/2:c});m.getLabel().attr(u);m.drawTracker();h&&(g.clearTimeout(this.tooltipTimeout),\nthis.tooltipTimeout=setTimeout(function(){m&&m.move(a,f,e,c)},32))};f.prototype.refresh=function(a,f){var e=this.chart,c=this.options,m=a,u={},h=[],l=c.formatter||this.defaultFormatter;u=this.shared;var w=e.styledMode;if(c.enabled){g.clearTimeout(this.hideTimer);this.followPointer=z(m)[0].series.tooltipOptions.followPointer;var p=this.getAnchor(m,f);f=p[0];var C=p[1];!u||m.series&&m.series.noSharedTooltip?u=m.getLabelConfig():(e.pointer.applyInactiveState(m),m.forEach(function(a){a.setState(\"hover\");\nh.push(a.getLabelConfig())}),u={x:m[0].category,y:m[0].y},u.points=h,m=m[0]);this.len=h.length;e=l.call(u,this);l=m.series;this.distance=D(l.tooltipOptions.distance,16);!1===e?this.hide():(this.split?this.renderSplit(e,z(a)):(a=this.getLabel(),c.style.width&&!w||a.css({width:this.chart.spacingBox.width+\"px\"}),a.attr({text:e&&e.join?e.join(\"\"):e}),a.removeClass(/highcharts-color-[\\d]+/g).addClass(\"highcharts-color-\"+D(m.colorIndex,l.colorIndex)),w||a.attr({stroke:c.borderColor||m.color||l.color||\"#666666\"}),\nthis.updatePosition({plotX:f,plotY:C,negative:m.negative,ttBelow:m.ttBelow,h:p[2]||0})),this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1);M(this,\"refresh\")}};f.prototype.renderSplit=function(a,f){function e(b,d,a,c,e){void 0===e&&(e=!0);a?(d=y?0:I,b=H(b-c/2,g.left,g.right-c)):(d-=E,b=e?b-c-x:b+x,b=H(b,e?b:g.left,g.right));return{x:b,y:d}}var c=this,m=c.chart,u=c.chart,h=u.plotHeight,l=u.plotLeft,w=u.plotTop,p=u.pointer,C=u.renderer,r=u.scrollablePixelsY,B=void 0===r?\n0:r;r=u.scrollingContainer;r=void 0===r?{scrollLeft:0,scrollTop:0}:r;var d=r.scrollLeft,b=r.scrollTop,n=u.styledMode,x=c.distance,q=c.options,t=c.options.positioner,g={left:d,right:d+u.chartWidth,top:b,bottom:b+u.chartHeight},z=c.getLabel(),y=!(!m.xAxis[0]||!m.xAxis[0].opposite),E=w+b,v=0,I=h-B;J(a)&&(a=[!1,a]);a=a.slice(0,f.length+1).reduce(function(d,a,m){if(!1!==a&&\"\"!==a){m=f[m-1]||{isHeader:!0,plotX:f[0].plotX,plotY:h,series:{}};var u=m.isHeader,p=u?c:m.series,F=p.tt,r=m.isHeader;var L=m.series;\nvar O=\"highcharts-color-\"+D(m.colorIndex,L.colorIndex,\"none\");F||(F={padding:q.padding,r:q.borderRadius},n||(F.fill=q.backgroundColor,F[\"stroke-width\"]=q.borderWidth),F=C.label(\"\",0,0,q[r?\"headerShape\":\"shape\"]||\"callout\",void 0,void 0,q.useHTML).addClass((r?\"highcharts-tooltip-header \":\"\")+\"highcharts-tooltip-box \"+O).attr(F).add(z));F.isActive=!0;F.attr({text:a});n||F.css(q.style).shadow(q.shadow).attr({stroke:q.borderColor||m.color||L.color||\"#333333\"});a=p.tt=F;r=a.getBBox();p=r.width+a.strokeWidth();\nu&&(v=r.height,I+=v,y&&(E-=v));L=m.plotX;L=void 0===L?0:L;O=m.plotY;O=void 0===O?0:O;var k=m.series;if(m.isHeader){L=l+L;var Q=w+h/2}else F=k.xAxis,k=k.yAxis,L=F.pos+H(L,-x,F.len+x),k.pos+O>=b+w&&k.pos+O<=b+w+h-B&&(Q=k.pos+O);L=H(L,g.left-x,g.right+x);\"number\"===typeof Q?(r=r.height+1,O=t?t.call(c,p,r,m):e(L,Q,u,p),d.push({align:t?0:void 0,anchorX:L,anchorY:Q,boxWidth:p,point:m,rank:D(O.rank,u?1:0),size:r,target:O.y,tt:a,x:O.x})):a.isActive=!1}return d},[]);!t&&a.some(function(b){return b.x<g.left})&&\n(a=a.map(function(b){var d=e(b.anchorX,b.anchorY,b.point.isHeader,b.boxWidth,!1);return N(b,{target:d.y,x:d.x})}));c.cleanSplit();k.distribute(a,I);a.forEach(function(b){var d=b.pos;b.tt.attr({visibility:\"undefined\"===typeof d?\"hidden\":\"inherit\",x:b.x,y:d+E,anchorX:b.anchorX,anchorY:b.anchorY})});a=c.container;m=c.renderer;c.outside&&a&&m&&(u=z.getBBox(),m.setSize(u.width+u.x,u.height+u.y,!1),p=p.getChartPosition(),a.style.left=p.left+\"px\",a.style.top=p.top+\"px\")};f.prototype.drawTracker=function(){if(this.followPointer||\n!this.options.stickOnContact)this.tracker&&this.tracker.destroy();else{var a=this.chart,f=this.label,e=a.hoverPoint;if(f&&e){var c={x:0,y:0,width:0,height:0};e=this.getAnchor(e);var m=f.getBBox();e[0]+=a.plotLeft-f.translateX;e[1]+=a.plotTop-f.translateY;c.x=Math.min(0,e[0]);c.y=Math.min(0,e[1]);c.width=0>e[0]?Math.max(Math.abs(e[0]),m.width-e[0]):Math.max(Math.abs(e[0]),m.width);c.height=0>e[1]?Math.max(Math.abs(e[1]),m.height-Math.abs(e[1])):Math.max(Math.abs(e[1]),m.height);this.tracker?this.tracker.attr(c):\n(this.tracker=f.renderer.rect(c).addClass(\"highcharts-tracker\").add(f),a.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}}};f.prototype.styledModeFormat=function(a){return a.replace('style=\"font-size: 10px\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex}\"')};f.prototype.tooltipFooterHeaderFormatter=function(a,f){var e=f?\"footer\":\"header\",c=a.series,m=c.tooltipOptions,u=m.xDateFormat,h=c.xAxis,l=h&&\"datetime\"===h.options.type&&\nI(a.key),w=m[e+\"Format\"];f={isFooter:f,labelConfig:a};M(this,\"headerFormatter\",f,function(e){l&&!u&&(u=this.getXDateFormat(a,m,h));l&&u&&(a.point&&a.point.tooltipDateKeys||[\"key\"]).forEach(function(a){w=w.replace(\"{point.\"+a+\"}\",\"{point.\"+a+\":\"+u+\"}\")});c.chart.styledMode&&(w=this.styledModeFormat(w));e.text=y(w,{point:a,series:c},this.chart)});return f.text};f.prototype.update=function(a){this.destroy();E(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,E(!0,this.options,a))};f.prototype.updatePosition=\nfunction(a){var f=this.chart,e=f.pointer,c=this.getLabel(),m=a.plotX+f.plotLeft,u=a.plotY+f.plotTop;e=e.getChartPosition();a=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);if(this.outside){var h=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(c.width+h,c.height+h,!1);if(f=f.containerScaling)v(this.container,{transform:\"scale(\"+f.scaleX+\", \"+f.scaleY+\")\"}),m*=f.scaleX,u*=f.scaleY;m+=e.left-a.x;u+=e.top-a.y}this.move(Math.round(a.x),Math.round(a.y||0),\nm,u)};return f}();k.Tooltip=h;return k.Tooltip});P(A,\"parts/Pointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"parts/Tooltip.js\"],A[\"parts/Color.js\"]],function(k,g,H,v){var K=g.addEvent,G=g.attr,N=g.css,M=g.defined,y=g.extend,I=g.find,J=g.fireEvent,E=g.isNumber,D=g.isObject,z=g.objectEach,t=g.offset,q=g.pick,r=g.splat,h=v.parse,f=k.charts,a=k.noop;g=function(){function l(a,c){this.lastValidTouch={};this.pinchDown=[];this.runChartClick=!1;this.chart=a;this.hasDragged=!1;this.options=c;this.unbindContainerMouseLeave=\nfunction(){};this.init(a,c)}l.prototype.applyInactiveState=function(a){var c=[],e;(a||[]).forEach(function(a){e=a.series;c.push(e);e.linkedParent&&c.push(e.linkedParent);e.linkedSeries&&(c=c.concat(e.linkedSeries));e.navigatorSeries&&c.push(e.navigatorSeries)});this.chart.series.forEach(function(a){-1===c.indexOf(a)?a.setState(\"inactive\",!0):a.options.inactiveOtherPoints&&a.setAllPointsToState(\"inactive\")})};l.prototype.destroy=function(){var a=this;\"undefined\"!==typeof a.unDocMouseMove&&a.unDocMouseMove();\nthis.unbindContainerMouseLeave();k.chartCount||(k.unbindDocumentMouseUp&&(k.unbindDocumentMouseUp=k.unbindDocumentMouseUp()),k.unbindDocumentTouchEnd&&(k.unbindDocumentTouchEnd=k.unbindDocumentTouchEnd()));clearInterval(a.tooltipTimeout);z(a,function(c,e){a[e]=null})};l.prototype.drag=function(a){var c=this.chart,e=c.options.chart,f=a.chartX,l=a.chartY,F=this.zoomHor,w=this.zoomVert,p=c.plotLeft,C=c.plotTop,r=c.plotWidth,B=c.plotHeight,d=this.selectionMarker,b=this.mouseDownX||0,n=this.mouseDownY||\n0,x=D(e.panning)?e.panning&&e.panning.enabled:e.panning,q=e.panKey&&a[e.panKey+\"Key\"];if(!d||!d.touch)if(f<p?f=p:f>p+r&&(f=p+r),l<C?l=C:l>C+B&&(l=C+B),this.hasDragged=Math.sqrt(Math.pow(b-f,2)+Math.pow(n-l,2)),10<this.hasDragged){var t=c.isInsidePlot(b-p,n-C);c.hasCartesianSeries&&(this.zoomX||this.zoomY)&&t&&!q&&!d&&(this.selectionMarker=d=c.renderer.rect(p,C,F?1:r,w?1:B,0).attr({\"class\":\"highcharts-selection-marker\",zIndex:7}).add(),c.styledMode||d.attr({fill:e.selectionMarkerFill||h(\"#335cad\").setOpacity(.25).get()}));\nd&&F&&(f-=b,d.attr({width:Math.abs(f),x:(0<f?0:f)+b}));d&&w&&(f=l-n,d.attr({height:Math.abs(f),y:(0<f?0:f)+n}));t&&!d&&x&&c.pan(a,e.panning)}};l.prototype.dragStart=function(a){var c=this.chart;c.mouseIsDown=a.type;c.cancelClick=!1;c.mouseDownX=this.mouseDownX=a.chartX;c.mouseDownY=this.mouseDownY=a.chartY};l.prototype.drop=function(a){var c=this,e=this.chart,f=this.hasPinched;if(this.selectionMarker){var h={originalEvent:a,xAxis:[],yAxis:[]},l=this.selectionMarker,w=l.attr?l.attr(\"x\"):l.x,p=l.attr?\nl.attr(\"y\"):l.y,C=l.attr?l.attr(\"width\"):l.width,r=l.attr?l.attr(\"height\"):l.height,B;if(this.hasDragged||f)e.axes.forEach(function(d){if(d.zoomEnabled&&M(d.min)&&(f||c[{xAxis:\"zoomX\",yAxis:\"zoomY\"}[d.coll]])){var b=d.horiz,e=\"touchend\"===a.type?d.minPixelPadding:0,m=d.toValue((b?w:p)+e);b=d.toValue((b?w+C:p+r)-e);h[d.coll].push({axis:d,min:Math.min(m,b),max:Math.max(m,b)});B=!0}}),B&&J(e,\"selection\",h,function(d){e.zoom(y(d,f?{animation:!1}:null))});E(e.index)&&(this.selectionMarker=this.selectionMarker.destroy());\nf&&this.scaleGroups()}e&&E(e.index)&&(N(e.container,{cursor:e._cursor}),e.cancelClick=10<this.hasDragged,e.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])};l.prototype.findNearestKDPoint=function(a,c,f){var e=this.chart,m=e.hoverPoint;e=e.tooltip;if(m&&e&&e.isStickyOnContact())return m;var h;a.forEach(function(a){var e=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf(\"y\");a=a.searchPoint(f,e);if((e=D(a,!0))&&!(e=!D(h,!0))){e=h.distX-a.distX;var m=h.dist-a.dist,u=(a.series.group&&\na.series.group.zIndex)-(h.series.group&&h.series.group.zIndex);e=0<(0!==e&&c?e:0!==m?m:0!==u?u:h.series.index>a.series.index?-1:1)}e&&(h=a)});return h};l.prototype.getChartCoordinatesFromPoint=function(a,c){var e=a.series,f=e.xAxis;e=e.yAxis;var h=q(a.clientX,a.plotX),l=a.shapeArgs;if(f&&e)return c?{chartX:f.len+f.pos-h,chartY:e.len+e.pos-a.plotY}:{chartX:h+f.pos,chartY:a.plotY+e.pos};if(l&&l.x&&l.y)return{chartX:l.x,chartY:l.y}};l.prototype.getChartPosition=function(){return this.chartPosition||\n(this.chartPosition=t(this.chart.container))};l.prototype.getCoordinates=function(a){var c={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(e){c[e.isXAxis?\"xAxis\":\"yAxis\"].push({axis:e,value:e.toValue(a[e.horiz?\"chartX\":\"chartY\"])})});return c};l.prototype.getHoverData=function(a,c,f,h,l,F){var e,m=[];h=!(!h||!a);var u=c&&!c.stickyTracking,r={chartX:F?F.chartX:void 0,chartY:F?F.chartY:void 0,shared:l};J(this,\"beforeGetHoverData\",r);u=u?[c]:f.filter(function(a){return r.filter?r.filter(a):a.visible&&\n!(!l&&a.directTouch)&&q(a.options.enableMouseTracking,!0)&&a.stickyTracking});c=(e=h||!F?a:this.findNearestKDPoint(u,l,F))&&e.series;e&&(l&&!c.noSharedTooltip?(u=f.filter(function(a){return r.filter?r.filter(a):a.visible&&!(!l&&a.directTouch)&&q(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),u.forEach(function(a){var d=I(a.points,function(b){return b.x===e.x&&!b.isNull});D(d)&&(a.chart.isBoosting&&(d=a.getPoint(d)),m.push(d))})):m.push(e));r={hoverPoint:e};J(this,\"afterGetHoverData\",r);return{hoverPoint:r.hoverPoint,\nhoverSeries:c,hoverPoints:m}};l.prototype.getPointFromEvent=function(a){a=a.target;for(var c;a&&!c;)c=a.point,a=a.parentNode;return c};l.prototype.onTrackerMouseOut=function(a){a=a.relatedTarget||a.toElement;var c=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!c||!a||c.stickyTracking||this.inClass(a,\"highcharts-tooltip\")||this.inClass(a,\"highcharts-series-\"+c.index)&&this.inClass(a,\"highcharts-tracker\")))c.onMouseOut()};l.prototype.inClass=function(a,c){for(var e;a;){if(e=G(a,\"class\")){if(-1!==\ne.indexOf(c))return!0;if(-1!==e.indexOf(\"highcharts-container\"))return!1}a=a.parentNode}};l.prototype.init=function(a,c){this.options=c;this.chart=a;this.runChartClick=c.chart.events&&!!c.chart.events.click;this.pinchDown=[];this.lastValidTouch={};H&&(a.tooltip=new H(a,c.tooltip),this.followTouchMove=q(c.tooltip.followTouchMove,!0));this.setDOMEvents()};l.prototype.normalize=function(a,c){var e=a.touches,f=e?e.length?e.item(0):e.changedTouches[0]:a;c||(c=this.getChartPosition());e=f.pageX-c.left;\nc=f.pageY-c.top;if(f=this.chart.containerScaling)e/=f.scaleX,c/=f.scaleY;return y(a,{chartX:Math.round(e),chartY:Math.round(c)})};l.prototype.onContainerClick=function(a){var c=this.chart,e=c.hoverPoint;a=this.normalize(a);var f=c.plotLeft,h=c.plotTop;c.cancelClick||(e&&this.inClass(a.target,\"highcharts-tracker\")?(J(e.series,\"click\",y(a,{point:e})),c.hoverPoint&&e.firePointEvent(\"click\",a)):(y(a,this.getCoordinates(a)),c.isInsidePlot(a.chartX-f,a.chartY-h)&&J(c,\"click\",a)))};l.prototype.onContainerMouseDown=\nfunction(a){a=this.normalize(a);if(k.isFirefox&&0!==a.button)this.onContainerMouseMove(a);if(\"undefined\"===typeof a.button||1===((a.buttons||a.button)&1))this.zoomOption(a),this.dragStart(a)};l.prototype.onContainerMouseLeave=function(a){var c=f[q(k.hoverChartIndex,-1)],e=this.chart.tooltip;a=this.normalize(a);c&&(a.relatedTarget||a.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=void 0);e&&!e.isHidden&&this.reset()};l.prototype.onContainerMouseMove=function(a){var c=this.chart;a=this.normalize(a);\nthis.setHoverChartIndex();a.preventDefault||(a.returnValue=!1);\"mousedown\"===c.mouseIsDown&&this.drag(a);c.openMenu||!this.inClass(a.target,\"highcharts-tracker\")&&!c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)||this.runPointActions(a)};l.prototype.onDocumentTouchEnd=function(a){f[k.hoverChartIndex]&&f[k.hoverChartIndex].pointer.drop(a)};l.prototype.onContainerTouchMove=function(a){this.touch(a)};l.prototype.onContainerTouchStart=function(a){this.zoomOption(a);this.touch(a,!0)};l.prototype.onDocumentMouseMove=\nfunction(a){var c=this.chart,e=this.chartPosition;a=this.normalize(a,e);var f=c.tooltip;!e||f&&f.isStickyOnContact()||c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)||this.inClass(a.target,\"highcharts-tracker\")||this.reset()};l.prototype.onDocumentMouseUp=function(a){var c=f[q(k.hoverChartIndex,-1)];c&&c.pointer.drop(a)};l.prototype.pinch=function(e){var c=this,f=c.chart,h=c.pinchDown,l=e.touches||[],F=l.length,w=c.lastValidTouch,p=c.hasZoom,C=c.selectionMarker,r={},B=1===F&&(c.inClass(e.target,\n\"highcharts-tracker\")&&f.runTrackerClick||c.runChartClick),d={};1<F&&(c.initiated=!0);p&&c.initiated&&!B&&e.preventDefault();[].map.call(l,function(b){return c.normalize(b)});\"touchstart\"===e.type?([].forEach.call(l,function(b,d){h[d]={chartX:b.chartX,chartY:b.chartY}}),w.x=[h[0].chartX,h[1]&&h[1].chartX],w.y=[h[0].chartY,h[1]&&h[1].chartY],f.axes.forEach(function(b){if(b.zoomEnabled){var d=f.bounds[b.horiz?\"h\":\"v\"],a=b.minPixelPadding,c=b.toPixels(Math.min(q(b.options.min,b.dataMin),b.dataMin)),\ne=b.toPixels(Math.max(q(b.options.max,b.dataMax),b.dataMax)),h=Math.max(c,e);d.min=Math.min(b.pos,Math.min(c,e)-a);d.max=Math.max(b.pos+b.len,h+a)}}),c.res=!0):c.followTouchMove&&1===F?this.runPointActions(c.normalize(e)):h.length&&(C||(c.selectionMarker=C=y({destroy:a,touch:!0},f.plotBox)),c.pinchTranslate(h,l,r,C,d,w),c.hasPinched=p,c.scaleGroups(r,d),c.res&&(c.res=!1,this.reset(!1,0)))};l.prototype.pinchTranslate=function(a,c,f,h,l,F){this.zoomHor&&this.pinchTranslateDirection(!0,a,c,f,h,l,F);\nthis.zoomVert&&this.pinchTranslateDirection(!1,a,c,f,h,l,F)};l.prototype.pinchTranslateDirection=function(a,c,f,h,l,F,w,p){var e=this.chart,m=a?\"x\":\"y\",u=a?\"X\":\"Y\",d=\"chart\"+u,b=a?\"width\":\"height\",n=e[\"plot\"+(a?\"Left\":\"Top\")],x,r,q=p||1,t=e.inverted,g=e.bounds[a?\"h\":\"v\"],L=1===c.length,k=c[0][d],z=f[0][d],y=!L&&c[1][d],D=!L&&f[1][d];f=function(){\"number\"===typeof D&&20<Math.abs(k-y)&&(q=p||Math.abs(z-D)/Math.abs(k-y));r=(n-z)/q+k;x=e[\"plot\"+(a?\"Width\":\"Height\")]/q};f();c=r;if(c<g.min){c=g.min;var E=\n!0}else c+x>g.max&&(c=g.max-x,E=!0);E?(z-=.8*(z-w[m][0]),\"number\"===typeof D&&(D-=.8*(D-w[m][1])),f()):w[m]=[z,D];t||(F[m]=r-n,F[b]=x);F=t?1/q:q;l[b]=x;l[m]=c;h[t?a?\"scaleY\":\"scaleX\":\"scale\"+u]=q;h[\"translate\"+u]=F*n+(z-F*k)};l.prototype.reset=function(a,c){var e=this.chart,f=e.hoverSeries,h=e.hoverPoint,l=e.hoverPoints,w=e.tooltip,p=w&&w.shared?l:h;a&&p&&r(p).forEach(function(c){c.series.isCartesian&&\"undefined\"===typeof c.plotX&&(a=!1)});if(a)w&&p&&r(p).length&&(w.refresh(p),w.shared&&l?l.forEach(function(a){a.setState(a.state,\n!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):h&&(h.setState(h.state,!0),e.axes.forEach(function(a){a.crosshair&&h.series[a.coll]===a&&a.drawCrosshair(null,h)})));else{if(h)h.onMouseOut();l&&l.forEach(function(a){a.setState()});if(f)f.onMouseOut();w&&w.hide(c);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());e.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=e.hoverPoints=\ne.hoverPoint=null}};l.prototype.runPointActions=function(a,c){var e=this.chart,h=e.tooltip&&e.tooltip.options.enabled?e.tooltip:void 0,l=h?h.shared:!1,F=c||e.hoverPoint,w=F&&F.series||e.hoverSeries;w=this.getHoverData(F,w,e.series,(!a||\"touchmove\"!==a.type)&&(!!c||w&&w.directTouch&&this.isDirectTouch),l,a);F=w.hoverPoint;var p=w.hoverPoints;c=(w=w.hoverSeries)&&w.tooltipOptions.followPointer;l=l&&w&&!w.noSharedTooltip;if(F&&(F!==e.hoverPoint||h&&h.isHidden)){(e.hoverPoints||[]).forEach(function(a){-1===\np.indexOf(a)&&a.setState()});if(e.hoverSeries!==w)w.onMouseOver();this.applyInactiveState(p);(p||[]).forEach(function(a){a.setState(\"hover\")});e.hoverPoint&&e.hoverPoint.firePointEvent(\"mouseOut\");if(!F.series)return;F.firePointEvent(\"mouseOver\");e.hoverPoints=p;e.hoverPoint=F;h&&h.refresh(l?p:F,a)}else c&&h&&!h.isHidden&&(F=h.getAnchor([{}],a),h.updatePosition({plotX:F[0],plotY:F[1]}));this.unDocMouseMove||(this.unDocMouseMove=K(e.container.ownerDocument,\"mousemove\",function(a){var c=f[k.hoverChartIndex];\nif(c)c.pointer.onDocumentMouseMove(a)}));e.axes.forEach(function(c){var f=q((c.crosshair||{}).snap,!0),h;f&&((h=e.hoverPoint)&&h.series[c.coll]===c||(h=I(p,function(d){return d.series[c.coll]===c})));h||!f?c.drawCrosshair(a,h):c.hideCrosshair()})};l.prototype.scaleGroups=function(a,c){var e=this.chart,f;e.series.forEach(function(h){f=a||h.getPlotBox();h.xAxis&&h.xAxis.zoomEnabled&&h.group&&(h.group.attr(f),h.markerGroup&&(h.markerGroup.attr(f),h.markerGroup.clip(c?e.clipRect:null)),h.dataLabelsGroup&&\nh.dataLabelsGroup.attr(f))});e.clipRect.attr(c||e.clipBox)};l.prototype.setDOMEvents=function(){var a=this.chart.container,c=a.ownerDocument;a.onmousedown=this.onContainerMouseDown.bind(this);a.onmousemove=this.onContainerMouseMove.bind(this);a.onclick=this.onContainerClick.bind(this);this.unbindContainerMouseLeave=K(a,\"mouseleave\",this.onContainerMouseLeave.bind(this));k.unbindDocumentMouseUp||(k.unbindDocumentMouseUp=K(c,\"mouseup\",this.onDocumentMouseUp.bind(this)));k.hasTouch&&(K(a,\"touchstart\",\nthis.onContainerTouchStart.bind(this)),K(a,\"touchmove\",this.onContainerTouchMove.bind(this)),k.unbindDocumentTouchEnd||(k.unbindDocumentTouchEnd=K(c,\"touchend\",this.onDocumentTouchEnd.bind(this))))};l.prototype.setHoverChartIndex=function(){var a=this.chart,c=k.charts[q(k.hoverChartIndex,-1)];if(c&&c!==a)c.pointer.onContainerMouseLeave({relatedTarget:!0});c&&c.mouseIsDown||(k.hoverChartIndex=a.index)};l.prototype.touch=function(a,c){var e=this.chart,f;this.setHoverChartIndex();if(1===a.touches.length)if(a=\nthis.normalize(a),(f=e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop))&&!e.openMenu){c&&this.runPointActions(a);if(\"touchmove\"===a.type){c=this.pinchDown;var h=c[0]?4<=Math.sqrt(Math.pow(c[0].chartX-a.chartX,2)+Math.pow(c[0].chartY-a.chartY,2)):!1}q(h,!0)&&this.pinch(a)}else c&&this.reset();else 2===a.touches.length&&this.pinch(a)};l.prototype.zoomOption=function(a){var c=this.chart,f=c.options.chart,e=f.zoomType||\"\";c=c.inverted;/touch/.test(a.type)&&(e=q(f.pinchType,e));this.zoomX=a=/x/.test(e);\nthis.zoomY=e=/y/.test(e);this.zoomHor=a&&!c||e&&c;this.zoomVert=e&&!c||a&&c;this.hasZoom=a||e};return l}();k.Pointer=g;return k.Pointer});P(A,\"parts/MSPointer.js\",[A[\"parts/Globals.js\"],A[\"parts/Pointer.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){function v(){var q=[];q.item=function(r){return this[r]};y(z,function(r){q.push({pageX:r.pageX,pageY:r.pageY,target:r.target})});return q}function K(q,r,h,f){\"touch\"!==q.pointerType&&q.pointerType!==q.MSPOINTER_TYPE_TOUCH||!J[k.hoverChartIndex]||(f(q),\nf=J[k.hoverChartIndex].pointer,f[r]({type:h,target:q.currentTarget,preventDefault:D,touches:v()}))}var G=this&&this.__extends||function(){var q=function(r,h){q=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,a){f.__proto__=a}||function(f,a){for(var h in a)a.hasOwnProperty(h)&&(f[h]=a[h])};return q(r,h)};return function(r,h){function f(){this.constructor=r}q(r,h);r.prototype=null===h?Object.create(h):(f.prototype=h.prototype,new f)}}(),N=H.addEvent,M=H.css,y=H.objectEach,I=H.removeEvent,\nJ=k.charts,E=k.doc,D=k.noop,z={},t=!!k.win.PointerEvent;return function(q){function r(){return null!==q&&q.apply(this,arguments)||this}G(r,q);r.prototype.batchMSEvents=function(h){h(this.chart.container,t?\"pointerdown\":\"MSPointerDown\",this.onContainerPointerDown);h(this.chart.container,t?\"pointermove\":\"MSPointerMove\",this.onContainerPointerMove);h(E,t?\"pointerup\":\"MSPointerUp\",this.onDocumentPointerUp)};r.prototype.destroy=function(){this.batchMSEvents(I);q.prototype.destroy.call(this)};r.prototype.init=\nfunction(h,f){q.prototype.init.call(this,h,f);this.hasZoom&&M(h.container,{\"-ms-touch-action\":\"none\",\"touch-action\":\"none\"})};r.prototype.onContainerPointerDown=function(h){K(h,\"onContainerTouchStart\",\"touchstart\",function(f){z[f.pointerId]={pageX:f.pageX,pageY:f.pageY,target:f.currentTarget}})};r.prototype.onContainerPointerMove=function(h){K(h,\"onContainerTouchMove\",\"touchmove\",function(f){z[f.pointerId]={pageX:f.pageX,pageY:f.pageY};z[f.pointerId].target||(z[f.pointerId].target=f.currentTarget)})};\nr.prototype.onDocumentPointerUp=function(h){K(h,\"onDocumentTouchEnd\",\"touchend\",function(f){delete z[f.pointerId]})};r.prototype.setDOMEvents=function(){q.prototype.setDOMEvents.call(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(N)};return r}(g)});P(A,\"parts/Legend.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.animObject,K=g.css,G=g.defined,N=g.discardElement,M=g.find,y=g.fireEvent,I=g.format,J=g.isNumber,E=g.merge,D=g.pick,z=g.relativeLength,\nt=g.setAnimation,q=g.stableSort,r=g.syncTimeout;g=g.wrap;var h=k.isFirefox,f=k.marginNames,a=k.win,l=function(){function a(a,f){this.allItems=[];this.contentGroup=this.box=void 0;this.display=!1;this.group=void 0;this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0;this.options={};this.padding=0;this.pages=[];this.proximate=!1;this.scrollGroup=\nvoid 0;this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0;this.chart=a;this.init(a,f)}a.prototype.init=function(a,f){this.chart=a;this.setOptions(f);f.enabled&&(this.render(),H(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()}),this.proximate?this.unchartrender=H(this.chart,\"render\",function(){this.legend.proximatePositions();this.legend.positionItems()}):this.unchartrender&&this.unchartrender())};a.prototype.setOptions=function(a){var c=D(a.padding,\n8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=E(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop||0;this.itemMarginBottom=a.itemMarginBottom||0;this.padding=c;this.initialItemY=c-5;this.symbolWidth=D(a.symbolWidth,16);this.pages=[];this.proximate=\"proximate\"===a.layout&&!this.chart.inverted;this.baseline=void 0};a.prototype.update=function(a,f){var c=this.chart;this.setOptions(E(!0,this.options,a));this.destroy();c.isDirtyLegend=c.isDirtyBox=\n!0;D(f,!0)&&c.redraw();y(this,\"afterUpdate\")};a.prototype.colorizeItem=function(a,f){a.legendGroup[f?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\");if(!this.chart.styledMode){var c=this.options,e=a.legendItem,h=a.legendLine,m=a.legendSymbol,p=this.itemHiddenStyle.color;c=f?c.itemStyle.color:p;var l=f?a.color||p:p,r=a.options&&a.options.marker,q={fill:l};e&&e.css({fill:c,color:c});h&&h.attr({stroke:l});m&&(r&&m.isMarker&&(q=a.pointAttribs(),f||(q.stroke=q.fill=p)),m.attr(q))}y(this,\"afterColorizeItem\",\n{item:a,visible:f})};a.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()};a.prototype.positionItem=function(a){var c=this.options,f=c.symbolPadding;c=!c.rtl;var e=a._legendItemPos,h=e[0];e=e[1];var w=a.checkbox;if((a=a.legendGroup)&&a.element)a[G(a.translateY)?\"animate\":\"attr\"]({translateX:c?h:this.legendWidth-h-2*f-4,translateY:e});w&&(w.x=h,w.y=e)};a.prototype.destroyItem=function(a){var c=a.checkbox;[\"legendItem\",\"legendLine\",\n\"legendSymbol\",\"legendGroup\"].forEach(function(c){a[c]&&(a[c]=a[c].destroy())});c&&N(a.checkbox)};a.prototype.destroy=function(){function a(a){this[a]&&(this[a]=this[a].destroy())}this.getAllItems().forEach(function(c){[\"legendItem\",\"legendGroup\"].forEach(a,c)});\"clipRect up down pager nav box title group\".split(\" \").forEach(a,this);this.display=null};a.prototype.positionCheckboxes=function(){var a=this.group&&this.group.alignAttr,f=this.clipHeight||this.legendHeight,e=this.titleHeight;if(a){var h=\na.translateY;this.allItems.forEach(function(c){var m=c.checkbox;if(m){var p=h+e+m.y+(this.scrollOffset||0)+3;K(m,{left:a.translateX+c.checkboxOffset+m.x-20+\"px\",top:p+\"px\",display:this.proximate||p>h-6&&p<h+f-6?\"\":\"none\"})}},this)}};a.prototype.renderTitle=function(){var a=this.options,f=this.padding,e=a.title,h=0;e.text&&(this.title||(this.title=this.chart.renderer.label(e.text,f-3,f-4,null,null,null,a.useHTML,null,\"legend-title\").attr({zIndex:1}),this.chart.styledMode||this.title.css(e.style),this.title.add(this.group)),\ne.width||this.title.css({width:this.maxLegendWidth+\"px\"}),a=this.title.getBBox(),h=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:h}));this.titleHeight=h};a.prototype.setText=function(a){var c=this.options;a.legendItem.attr({text:c.labelFormat?I(c.labelFormat,a,this.chart):c.labelFormatter.call(a)})};a.prototype.renderItem=function(a){var c=this.chart,f=c.renderer,e=this.options,h=this.symbolWidth,w=e.symbolPadding,p=this.itemStyle,l=this.itemHiddenStyle,r=\"horizontal\"===e.layout?\nD(e.itemDistance,20):0,q=!e.rtl,d=a.legendItem,b=!a.series,n=!b&&a.series.drawLegendSymbol?a.series:a,x=n.options;x=this.createCheckboxForItem&&x&&x.showCheckbox;r=h+w+r+(x?20:0);var t=e.useHTML,g=a.options.className;d||(a.legendGroup=f.g(\"legend-item\").addClass(\"highcharts-\"+n.type+\"-series highcharts-color-\"+a.colorIndex+(g?\" \"+g:\"\")+(b?\" highcharts-series-\"+a.index:\"\")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=d=f.text(\"\",q?h+w:-w,this.baseline||0,t),c.styledMode||d.css(E(a.visible?\np:l)),d.attr({align:q?\"left\":\"right\",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=f.fontMetrics(c.styledMode?12:p.fontSize,d),this.baseline=this.fontMetrics.f+3+this.itemMarginTop,d.attr(\"y\",this.baseline)),this.symbolHeight=e.symbolHeight||this.fontMetrics.f,n.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,d,t));x&&!a.checkbox&&this.createCheckboxForItem&&this.createCheckboxForItem(a);this.colorizeItem(a,a.visible);!c.styledMode&&p.width||d.css({width:(e.itemWidth||\nthis.widthOption||c.spacingBox.width)-r+\"px\"});this.setText(a);c=d.getBBox();a.itemWidth=a.checkboxOffset=e.itemWidth||a.legendItemWidth||c.width+r;this.maxItemWidth=Math.max(this.maxItemWidth,a.itemWidth);this.totalItemWidth+=a.itemWidth;this.itemHeight=a.itemHeight=Math.round(a.legendItemHeight||c.height||this.symbolHeight)};a.prototype.layoutItem=function(a){var c=this.options,f=this.padding,e=\"horizontal\"===c.layout,h=a.itemHeight,w=this.itemMarginBottom,p=this.itemMarginTop,l=e?D(c.itemDistance,\n20):0,r=this.maxLegendWidth;c=c.alignColumns&&this.totalItemWidth>r?this.maxItemWidth:a.itemWidth;e&&this.itemX-f+c>r&&(this.itemX=f,this.lastLineHeight&&(this.itemY+=p+this.lastLineHeight+w),this.lastLineHeight=0);this.lastItemY=p+this.itemY+w;this.lastLineHeight=Math.max(h,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];e?this.itemX+=c:(this.itemY+=p+h+w,this.lastLineHeight=h);this.offsetWidth=this.widthOption||Math.max((e?this.itemX-f-(a.checkbox?0:l):c)+f,this.offsetWidth)};a.prototype.getAllItems=\nfunction(){var a=[];this.chart.series.forEach(function(c){var f=c&&c.options;c&&D(f.showInLegend,G(f.linkedTo)?!1:void 0,!0)&&(a=a.concat(c.legendItems||(\"point\"===f.legendType?c.data:c)))});y(this,\"afterGetAllItems\",{allItems:a});return a};a.prototype.getAlignment=function(){var a=this.options;return this.proximate?a.align.charAt(0)+\"tv\":a.floating?\"\":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)};a.prototype.adjustMargins=function(a,e){var c=this.chart,h=this.options,m=this.getAlignment();\nm&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(u,p){u.test(m)&&!G(a[p])&&(c[f[p]]=Math.max(c[f[p]],c.legend[(p+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][p]*h[p%2?\"x\":\"y\"]+D(h.margin,12)+e[p]+(c.titleOffset[p]||0)))})};a.prototype.proximatePositions=function(){var a=this.chart,f=[],e=\"left\"===this.options.align;this.allItems.forEach(function(c){var h=e;if(c.yAxis&&c.points){c.xAxis.options.reversed&&(h=!h);var m=M(h?c.points:c.points.slice(0).reverse(),function(a){return J(a.plotY)});\nh=this.itemMarginTop+c.legendItem.getBBox().height+this.itemMarginBottom;var p=c.yAxis.top-a.plotTop;c.visible?(m=m?m.plotY:c.yAxis.height,m+=p-.3*h):m=p+c.yAxis.height;f.push({target:m,size:h,item:c})}},this);k.distribute(f,a.plotHeight);f.forEach(function(c){c.item._legendItemPos[1]=a.plotTop-a.spacing[0]+c.pos})};a.prototype.render=function(){var a=this.chart,f=a.renderer,e=this.group,h=this.box,l=this.options,w=this.padding;this.itemX=w;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=\n0;this.widthOption=z(l.width,a.spacingBox.width-w);var p=a.spacingBox.width-2*w-l.x;-1<[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))&&(p/=2);this.maxLegendWidth=this.widthOption||p;e||(this.group=e=f.g(\"legend\").attr({zIndex:7}).add(),this.contentGroup=f.g().attr({zIndex:1}).add(e),this.scrollGroup=f.g().add(this.contentGroup));this.renderTitle();var C=this.getAllItems();q(C,function(a,d){return(a.options&&a.options.legendIndex||0)-(d.options&&d.options.legendIndex||0)});l.reversed&&C.reverse();\nthis.allItems=C;this.display=p=!!C.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;C.forEach(this.renderItem,this);C.forEach(this.layoutItem,this);C=(this.widthOption||this.offsetWidth)+w;var r=this.lastItemY+this.lastLineHeight+this.titleHeight;r=this.handleOverflow(r);r+=w;h||(this.box=h=f.rect().addClass(\"highcharts-legend-box\").attr({r:l.borderRadius}).add(e),h.isNew=!0);a.styledMode||h.attr({stroke:l.borderColor,\"stroke-width\":l.borderWidth||0,fill:l.backgroundColor||\n\"none\"}).shadow(l.shadow);0<C&&0<r&&(h[h.isNew?\"attr\":\"animate\"](h.crisp.call({},{x:0,y:0,width:C,height:r},h.strokeWidth())),h.isNew=!1);h[p?\"show\":\"hide\"]();a.styledMode&&\"none\"===e.getStyle(\"display\")&&(C=r=0);this.legendWidth=C;this.legendHeight=r;p&&this.align();this.proximate||this.positionItems();y(this,\"afterRender\")};a.prototype.align=function(a){void 0===a&&(a=this.chart.spacingBox);var c=this.chart,f=this.options,e=a.y;/(lth|ct|rth)/.test(this.getAlignment())&&0<c.titleOffset[0]?e+=c.titleOffset[0]:\n/(lbh|cb|rbh)/.test(this.getAlignment())&&0<c.titleOffset[2]&&(e-=c.titleOffset[2]);e!==a.y&&(a=E(a,{y:e}));this.group.align(E(f,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":f.verticalAlign}),!0,a)};a.prototype.handleOverflow=function(a){var c=this,f=this.chart,e=f.renderer,h=this.options,l=h.y,p=this.padding;l=f.spacingBox.height+(\"top\"===h.verticalAlign?-l:l)-p;var C=h.maxHeight,r,q=this.clipRect,d=h.navigation,b=D(d.animation,!0),n=d.arrowSize||12,x=this.nav,\nt=this.pages,g,k=this.allItems,z=function(b){\"number\"===typeof b?q.attr({height:b}):q&&(c.clipRect=q.destroy(),c.contentGroup.clip());c.contentGroup.div&&(c.contentGroup.div.style.clip=b?\"rect(\"+p+\"px,9999px,\"+(p+b)+\"px,0)\":\"auto\")},y=function(b){c[b]=e.circle(0,0,1.3*n).translate(n/2,n/2).add(x);f.styledMode||c[b].attr(\"fill\",\"rgba(0,0,0,0.0001)\");return c[b]};\"horizontal\"!==h.layout||\"middle\"===h.verticalAlign||h.floating||(l/=2);C&&(l=Math.min(l,C));t.length=0;a>l&&!1!==d.enabled?(this.clipHeight=\nr=Math.max(l-20-this.titleHeight-p,0),this.currentPage=D(this.currentPage,1),this.fullHeight=a,k.forEach(function(b,a){var d=b._legendItemPos[1],c=Math.round(b.legendItem.getBBox().height),f=t.length;if(!f||d-t[f-1]>r&&(g||d)!==t[f-1])t.push(g||d),f++;b.pageIx=f-1;g&&(k[a-1].pageIx=f-1);a===k.length-1&&d+c-t[f-1]>r&&d!==g&&(t.push(d),b.pageIx=f);d!==g&&(g=d)}),q||(q=c.clipRect=e.clipRect(0,p,9999,0),c.contentGroup.clip(q)),z(r),x||(this.nav=x=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol(\"triangle\",\n0,0,n,n).add(x),y(\"upTracker\").on(\"click\",function(){c.scroll(-1,b)}),this.pager=e.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),f.styledMode||this.pager.css(d.style),this.pager.add(x),this.down=e.symbol(\"triangle-down\",0,0,n,n).add(x),y(\"downTracker\").on(\"click\",function(){c.scroll(1,b)})),c.scroll(0),a=l):x&&(z(),this.nav=x.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a};a.prototype.scroll=function(a,f){var c=this,e=this.chart,h=this.pages,m=h.length,p=this.currentPage+\na;a=this.clipHeight;var l=this.options.navigation,q=this.pager,g=this.padding;p>m&&(p=m);0<p&&(\"undefined\"!==typeof f&&t(f,e),this.nav.attr({translateX:g,translateY:a+this.padding+7+this.titleHeight,visibility:\"visible\"}),[this.up,this.upTracker].forEach(function(a){a.attr({\"class\":1===p?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),q.attr({text:p+\"/\"+m}),[this.down,this.downTracker].forEach(function(a){a.attr({x:18+this.pager.getBBox().width,\"class\":p===m?\"highcharts-legend-nav-inactive\":\n\"highcharts-legend-nav-active\"})},this),e.styledMode||(this.up.attr({fill:1===p?l.inactiveColor:l.activeColor}),this.upTracker.css({cursor:1===p?\"default\":\"pointer\"}),this.down.attr({fill:p===m?l.inactiveColor:l.activeColor}),this.downTracker.css({cursor:p===m?\"default\":\"pointer\"})),this.scrollOffset=-h[p-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=p,this.positionCheckboxes(),f=v(D(f,e.renderer.globalAnimation,!0)),r(function(){y(c,\"afterScroll\",\n{currentPage:p})},f.duration||0))};return a}();(/Trident\\/7\\.0/.test(a.navigator&&a.navigator.userAgent)||h)&&g(l.prototype,\"positionItem\",function(a,c){var f=this,e=function(){c._legendItemPos&&a.call(f,c)};e();f.bubbleLegend||setTimeout(e)});k.Legend=l;return k.Legend});P(A,\"parts/Chart.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/MSPointer.js\"],A[\"parts/Pointer.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v,K,G){var N=G.addEvent,M=G.animate,y=G.animObject,I=G.attr,\nJ=G.createElement,E=G.css,D=G.defined,z=G.discardElement,t=G.erase,q=G.error,r=G.extend,h=G.find,f=G.fireEvent,a=G.getStyle,l=G.isArray,e=G.isFunction,c=G.isNumber,m=G.isObject,u=G.isString,L=G.merge,F=G.numberFormat,w=G.objectEach,p=G.pick,C=G.pInt,O=G.relativeLength,B=G.removeEvent,d=G.setAnimation,b=G.splat,n=G.syncTimeout,x=G.uniqueKey,Q=k.doc,R=k.Axis,X=k.defaultOptions,U=k.charts,V=k.marginNames,W=k.seriesTypes,A=k.win,Y=k.Chart=function(){this.getArgs.apply(this,arguments)};k.chart=function(b,\na,d){return new Y(b,a,d)};r(Y.prototype,{callbacks:[],getArgs:function(){var b=[].slice.call(arguments);if(u(b[0])||b[0].nodeName)this.renderTo=b.shift();this.init(b[0],b[1])},init:function(b,a){var d,c=b.series,n=b.plotOptions||{};f(this,\"init\",{args:arguments},function(){b.series=null;d=L(X,b);var h=d.chart||{};w(d.plotOptions,function(b,a){m(b)&&(b.tooltip=n[a]&&L(n[a].tooltip)||void 0)});d.tooltip.userOptions=b.chart&&b.chart.forExport&&b.tooltip.userOptions||b.tooltip;d.series=b.series=c;this.userOptions=\nb;var p=h.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=a;this.isResizing=0;this.options=d;this.axes=[];this.series=[];this.time=b.time&&Object.keys(b.time).length?new K(b.time):k.time;this.numberFormatter=h.numberFormatter||F;this.styledMode=h.styledMode;this.hasCartesianSeries=h.showAxes;var l=this;l.index=U.length;U.push(l);k.chartCount++;p&&w(p,function(b,a){e(b)&&N(l,a,b)});l.xAxis=[];l.yAxis=[];l.pointCount=l.colorCounter=l.symbolCounter=\n0;f(l,\"afterInit\");l.firstRender()})},initSeries:function(b){var a=this.options.chart;a=b.type||a.type||a.defaultSeriesType;var d=W[a];d||q(17,!0,this,{missingModuleFor:a});a=new d;a.init(this,b);return a},setSeriesData:function(){this.getSeriesOrderByLinks().forEach(function(b){b.points||b.data||!b.enabledDataSorting||b.setData(b.options.data,!1)})},getSeriesOrderByLinks:function(){return this.series.concat().sort(function(b,a){return b.linkedSeries.length||a.linkedSeries.length?a.linkedSeries.length-\nb.linkedSeries.length:0})},orderSeries:function(b){var a=this.series;for(b=b||0;b<a.length;b++)a[b]&&(a[b].index=b,a[b].name=a[b].getName())},isInsidePlot:function(b,a,d){var c=d?a:b;b=d?b:a;c={x:c,y:b,isInsidePlot:0<=c&&c<=this.plotWidth&&0<=b&&b<=this.plotHeight};f(this,\"afterIsInsidePlot\",c);return c.isInsidePlot},redraw:function(b){f(this,\"beforeRedraw\");var a=this.axes,c=this.series,e=this.pointer,n=this.legend,h=this.userOptions.legend,p=this.isDirtyLegend,l=this.hasCartesianSeries,m=this.isDirtyBox,\nx=this.renderer,u=x.isHidden(),w=[];this.setResponsive&&this.setResponsive(!1);d(this.hasRendered?b:!1,this);u&&this.temporaryDisplay();this.layOutTitles();for(b=c.length;b--;){var C=c[b];if(C.options.stacking){var F=!0;if(C.isDirty){var q=!0;break}}}if(q)for(b=c.length;b--;)C=c[b],C.options.stacking&&(C.isDirty=!0);c.forEach(function(b){b.isDirty&&(\"point\"===b.options.legendType?(b.updateTotals&&b.updateTotals(),p=!0):h&&(h.labelFormatter||h.labelFormat)&&(p=!0));b.isDirtyData&&f(b,\"updatedData\")});\np&&n&&n.options.enabled&&(n.render(),this.isDirtyLegend=!1);F&&this.getStacks();l&&a.forEach(function(b){b.updateNames();b.setScale()});this.getMargins();l&&(a.forEach(function(b){b.isDirty&&(m=!0)}),a.forEach(function(b){var a=b.min+\",\"+b.max;b.extKey!==a&&(b.extKey=a,w.push(function(){f(b,\"afterSetExtremes\",r(b.eventArgs,b.getExtremes()));delete b.eventArgs}));(m||F)&&b.redraw()}));m&&this.drawChartBox();f(this,\"predraw\");c.forEach(function(b){(m||b.isDirty)&&b.visible&&b.redraw();b.isDirtyData=\n!1});e&&e.reset(!0);x.draw();f(this,\"redraw\");f(this,\"render\");u&&this.temporaryDisplay(!0);w.forEach(function(b){b.call()})},get:function(b){function a(a){return a.id===b||a.options&&a.options.id===b}var d=this.series,c;var f=h(this.axes,a)||h(this.series,a);for(c=0;!f&&c<d.length;c++)f=h(d[c].points||[],a);return f},getAxes:function(){var a=this,d=this.options,c=d.xAxis=b(d.xAxis||{});d=d.yAxis=b(d.yAxis||{});f(this,\"getAxes\");c.forEach(function(b,a){b.index=a;b.isX=!0});d.forEach(function(b,a){b.index=\na});c.concat(d).forEach(function(b){new R(a,b)});f(this,\"afterGetAxes\")},getSelectedPoints:function(){var b=[];this.series.forEach(function(a){b=b.concat(a.getPointsCollection().filter(function(b){return p(b.selectedStaging,b.selected)}))});return b},getSelectedSeries:function(){return this.series.filter(function(b){return b.selected})},setTitle:function(b,a,d){this.applyDescription(\"title\",b);this.applyDescription(\"subtitle\",a);this.applyDescription(\"caption\",void 0);this.layOutTitles(d)},applyDescription:function(b,\na){var d=this,c=\"title\"===b?{color:\"#333333\",fontSize:this.options.isStock?\"16px\":\"18px\"}:{color:\"#666666\"};c=this.options[b]=L(!this.styledMode&&{style:c},this.options[b],a);var f=this[b];f&&a&&(this[b]=f=f.destroy());c&&!f&&(f=this.renderer.text(c.text,0,0,c.useHTML).attr({align:c.align,\"class\":\"highcharts-\"+b,zIndex:c.zIndex||4}).add(),f.update=function(a){d[{title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"}[b]](a)},this.styledMode||f.css(c.style),this[b]=f)},layOutTitles:function(b){var a=\n[0,0,0],d=this.renderer,c=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(b){var f=this[b],e=this.options[b],n=e.verticalAlign||\"top\";b=\"title\"===b?-3:\"top\"===n?a[0]+2:0;if(f){if(!this.styledMode)var h=e.style.fontSize;h=d.fontMetrics(h,f).b;f.css({width:(e.width||c.width+(e.widthAdjust||0))+\"px\"});var p=Math.round(f.getBBox(e.useHTML).height);f.align(r({y:\"bottom\"===n?h:b+h,height:p},e),!1,\"spacingBox\");e.floating||(\"top\"===n?a[0]=Math.ceil(a[0]+p):\"bottom\"===n&&(a[2]=Math.ceil(a[2]+\np)))}},this);a[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(a[0]+=this.options.title.margin);a[2]&&\"bottom\"===this.options.caption.verticalAlign&&(a[2]+=this.options.caption.margin);var e=!this.titleOffset||this.titleOffset.join(\",\")!==a.join(\",\");this.titleOffset=a;f(this,\"afterLayOutTitles\");!this.isDirtyBox&&e&&(this.isDirtyBox=this.isDirtyLegend=e,this.hasRendered&&p(b,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var b=this.options.chart,d=b.width;b=b.height;var c=\nthis.renderTo;D(d)||(this.containerWidth=a(c,\"width\"));D(b)||(this.containerHeight=a(c,\"height\"));this.chartWidth=Math.max(0,d||this.containerWidth||600);this.chartHeight=Math.max(0,O(b,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(b){var d=this.renderTo;if(b)for(;d&&d.style;)d.hcOrigStyle&&(E(d,d.hcOrigStyle),delete d.hcOrigStyle),d.hcOrigDetached&&(Q.body.removeChild(d),d.hcOrigDetached=!1),d=d.parentNode;else for(;d&&d.style;){Q.body.contains(d)||\nd.parentNode||(d.hcOrigDetached=!0,Q.body.appendChild(d));if(\"none\"===a(d,\"display\",!1)||d.hcOricDetached)d.hcOrigStyle={display:d.style.display,height:d.style.height,overflow:d.style.overflow},b={display:\"block\",overflow:\"hidden\"},d!==this.renderTo&&(b.height=0),E(d,b),d.offsetWidth||d.style.setProperty(\"display\",\"block\",\"important\");d=d.parentNode;if(d===Q.body)break}},setClassName:function(b){this.container.className=\"highcharts-container \"+(b||\"\")},getContainer:function(){var b=this.options,a=\nb.chart;var e=this.renderTo;var n=x(),h,p;e||(this.renderTo=e=a.renderTo);u(e)&&(this.renderTo=e=Q.getElementById(e));e||q(13,!0,this);var m=C(I(e,\"data-highcharts-chart\"));c(m)&&U[m]&&U[m].hasRendered&&U[m].destroy();I(e,\"data-highcharts-chart\",this.index);e.innerHTML=\"\";a.skipClone||e.offsetWidth||this.temporaryDisplay();this.getChartSize();m=this.chartWidth;var l=this.chartHeight;E(e,{overflow:\"hidden\"});this.styledMode||(h=r({position:\"relative\",overflow:\"hidden\",width:m+\"px\",height:l+\"px\",textAlign:\"left\",\nlineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\"},a.style));this.container=e=J(\"div\",{id:n},h,e);this._cursor=e.style.cursor;this.renderer=new (k[a.renderer]||k.Renderer)(e,m,l,null,a.forExport,b.exporting&&b.exporting.allowHTML,this.styledMode);d(void 0,this);this.setClassName(a.className);if(this.styledMode)for(p in b.defs)this.renderer.definition(b.defs[p]);else this.renderer.setStyle(a.style);this.renderer.chartIndex=this.index;f(this,\"afterGetContainer\")},getMargins:function(b){var a=\nthis.spacing,d=this.margin,c=this.titleOffset;this.resetMargins();c[0]&&!D(d[0])&&(this.plotTop=Math.max(this.plotTop,c[0]+a[0]));c[2]&&!D(d[2])&&(this.marginBottom=Math.max(this.marginBottom,c[2]+a[2]));this.legend&&this.legend.display&&this.legend.adjustMargins(d,a);f(this,\"getMargins\");b||this.getAxisMargins()},getAxisMargins:function(){var b=this,a=b.axisOffset=[0,0,0,0],d=b.colorAxis,c=b.margin,f=function(b){b.forEach(function(b){b.visible&&b.getOffset()})};b.hasCartesianSeries?f(b.axes):d&&\nd.length&&f(d);V.forEach(function(d,f){D(c[f])||(b[d]+=a[f])});b.setChartSize()},reflow:function(b){var d=this,c=d.options.chart,f=d.renderTo,e=D(c.width)&&D(c.height),h=c.width||a(f,\"width\");c=c.height||a(f,\"height\");f=b?b.target:A;if(!e&&!d.isPrinting&&h&&c&&(f===A||f===Q)){if(h!==d.containerWidth||c!==d.containerHeight)G.clearTimeout(d.reflowTimeout),d.reflowTimeout=n(function(){d.container&&d.setSize(void 0,void 0,!1)},b?100:0);d.containerWidth=h;d.containerHeight=c}},setReflow:function(b){var a=\nthis;!1===b||this.unbindReflow?!1===b&&this.unbindReflow&&(this.unbindReflow=this.unbindReflow()):(this.unbindReflow=N(A,\"resize\",function(b){a.options&&a.reflow(b)}),N(this,\"destroy\",this.unbindReflow))},setSize:function(b,a,c){var e=this,h=e.renderer;e.isResizing+=1;d(c,e);c=h.globalAnimation;e.oldChartHeight=e.chartHeight;e.oldChartWidth=e.chartWidth;\"undefined\"!==typeof b&&(e.options.chart.width=b);\"undefined\"!==typeof a&&(e.options.chart.height=a);e.getChartSize();e.styledMode||(c?M:E)(e.container,\n{width:e.chartWidth+\"px\",height:e.chartHeight+\"px\"},c);e.setChartSize(!0);h.setSize(e.chartWidth,e.chartHeight,c);e.axes.forEach(function(b){b.isDirty=!0;b.setScale()});e.isDirtyLegend=!0;e.isDirtyBox=!0;e.layOutTitles();e.getMargins();e.redraw(c);e.oldChartHeight=null;f(e,\"resize\");n(function(){e&&f(e,\"endResize\",null,function(){--e.isResizing})},y(c).duration||0)},setChartSize:function(b){var a=this.inverted,d=this.renderer,c=this.chartWidth,e=this.chartHeight,n=this.options.chart,h=this.spacing,\np=this.clipOffset,m,l,x,u;this.plotLeft=m=Math.round(this.plotLeft);this.plotTop=l=Math.round(this.plotTop);this.plotWidth=x=Math.max(0,Math.round(c-m-this.marginRight));this.plotHeight=u=Math.max(0,Math.round(e-l-this.marginBottom));this.plotSizeX=a?u:x;this.plotSizeY=a?x:u;this.plotBorderWidth=n.plotBorderWidth||0;this.spacingBox=d.spacingBox={x:h[3],y:h[0],width:c-h[3]-h[1],height:e-h[0]-h[2]};this.plotBox=d.plotBox={x:m,y:l,width:x,height:u};c=2*Math.floor(this.plotBorderWidth/2);a=Math.ceil(Math.max(c,\np[3])/2);d=Math.ceil(Math.max(c,p[0])/2);this.clipBox={x:a,y:d,width:Math.floor(this.plotSizeX-Math.max(c,p[1])/2-a),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(c,p[2])/2-d))};b||this.axes.forEach(function(b){b.setAxisSize();b.setAxisTranslation()});f(this,\"afterSetChartSize\",{skipAxes:b})},resetMargins:function(){f(this,\"resetMargins\");var b=this,a=b.options.chart;[\"margin\",\"spacing\"].forEach(function(d){var c=a[d],e=m(c)?c:[c,c,c,c];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(c,f){b[d][f]=\np(a[d+c],e[f])})});V.forEach(function(a,d){b[a]=p(b.margin[d],b.spacing[d])});b.axisOffset=[0,0,0,0];b.clipOffset=[0,0,0,0]},drawChartBox:function(){var b=this.options.chart,a=this.renderer,d=this.chartWidth,c=this.chartHeight,e=this.chartBackground,h=this.plotBackground,n=this.plotBorder,p=this.styledMode,m=this.plotBGImage,l=b.backgroundColor,x=b.plotBackgroundColor,u=b.plotBackgroundImage,w,C=this.plotLeft,r=this.plotTop,F=this.plotWidth,q=this.plotHeight,t=this.plotBox,g=this.clipRect,B=this.clipBox,\nO=\"animate\";e||(this.chartBackground=e=a.rect().addClass(\"highcharts-background\").add(),O=\"attr\");if(p)var k=w=e.strokeWidth();else{k=b.borderWidth||0;w=k+(b.shadow?8:0);l={fill:l||\"none\"};if(k||e[\"stroke-width\"])l.stroke=b.borderColor,l[\"stroke-width\"]=k;e.attr(l).shadow(b.shadow)}e[O]({x:w/2,y:w/2,width:d-w-k%2,height:c-w-k%2,r:b.borderRadius});O=\"animate\";h||(O=\"attr\",this.plotBackground=h=a.rect().addClass(\"highcharts-plot-background\").add());h[O](t);p||(h.attr({fill:x||\"none\"}).shadow(b.plotShadow),\nu&&(m?(u!==m.attr(\"href\")&&m.attr(\"href\",u),m.animate(t)):this.plotBGImage=a.image(u,C,r,F,q).add()));g?g.animate({width:B.width,height:B.height}):this.clipRect=a.clipRect(B);O=\"animate\";n||(O=\"attr\",this.plotBorder=n=a.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add());p||n.attr({stroke:b.plotBorderColor,\"stroke-width\":b.plotBorderWidth||0,fill:\"none\"});n[O](n.crisp({x:C,y:r,width:F,height:q},-n.strokeWidth()));this.isDirtyBox=!1;f(this,\"afterDrawChartBox\")},propFromSeries:function(){var b=\nthis,a=b.options.chart,d,c=b.options.series,e,f;[\"inverted\",\"angular\",\"polar\"].forEach(function(h){d=W[a.type||a.defaultSeriesType];f=a[h]||d&&d.prototype[h];for(e=c&&c.length;!f&&e--;)(d=W[c[e].type])&&d.prototype[h]&&(f=!0);b[h]=f})},linkSeries:function(){var b=this,a=b.series;a.forEach(function(b){b.linkedSeries.length=0});a.forEach(function(a){var d=a.options.linkedTo;u(d)&&(d=\":previous\"===d?b.series[a.index-1]:b.get(d))&&d.linkedParent!==a&&(d.linkedSeries.push(a),a.linkedParent=d,d.enabledDataSorting&&\na.setDataSortingOptions(),a.visible=p(a.options.visible,d.options.visible,a.visible))});f(this,\"afterLinkSeries\")},renderSeries:function(){this.series.forEach(function(b){b.translate();b.render()})},renderLabels:function(){var b=this,a=b.options.labels;a.items&&a.items.forEach(function(d){var c=r(a.style,d.style),e=C(c.left)+b.plotLeft,f=C(c.top)+b.plotTop+12;delete c.left;delete c.top;b.renderer.text(d.html,e,f).attr({zIndex:2}).css(c).add()})},render:function(){var b=this.axes,a=this.colorAxis,\nd=this.renderer,c=this.options,e=0,f=function(b){b.forEach(function(b){b.visible&&b.render()})};this.setTitle();this.legend=new g(this,c.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();c=this.plotWidth;b.some(function(b){if(b.horiz&&b.visible&&b.options.labels.enabled&&b.series.length)return e=21,!0});var h=this.plotHeight=Math.max(this.plotHeight-e,0);b.forEach(function(b){b.setScale()});this.getAxisMargins();var n=1.1<c/this.plotWidth;var p=1.05<h/this.plotHeight;\nif(n||p)b.forEach(function(b){(b.horiz&&n||!b.horiz&&p)&&b.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries?f(b):a&&a.length&&f(a);this.seriesGroup||(this.seriesGroup=d.g(\"series-group\").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.updateContainerScaling();this.hasRendered=!0},addCredits:function(b){var a=this;b=L(!0,this.options.credits,b);b.enabled&&!this.credits&&(this.credits=\nthis.renderer.text(b.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){b.href&&(A.location.href=b.href)}).attr({align:b.position.align,zIndex:8}),a.styledMode||this.credits.css(b.style),this.credits.add().align(b.position),this.credits.update=function(b){a.credits=a.credits.destroy();a.addCredits(b)})},updateContainerScaling:function(){var b=this.container;if(b.offsetWidth&&b.offsetHeight&&b.getBoundingClientRect){var a=b.getBoundingClientRect(),d=a.width/b.offsetWidth;\nb=a.height/b.offsetHeight;1!==d||1!==b?this.containerScaling={scaleX:d,scaleY:b}:delete this.containerScaling}},destroy:function(){var b=this,a=b.axes,d=b.series,c=b.container,e,h=c&&c.parentNode;f(b,\"destroy\");b.renderer.forExport?t(U,b):U[b.index]=void 0;k.chartCount--;b.renderTo.removeAttribute(\"data-highcharts-chart\");B(b);for(e=a.length;e--;)a[e]=a[e].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(e=d.length;e--;)d[e]=d[e].destroy();\"title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer\".split(\" \").forEach(function(a){var d=\nb[a];d&&d.destroy&&(b[a]=d.destroy())});c&&(c.innerHTML=\"\",B(c),h&&z(c));w(b,function(a,d){delete b[d]})},firstRender:function(){var b=this,a=b.options;if(!b.isReadyToRender||b.isReadyToRender()){b.getContainer();b.resetMargins();b.setChartSize();b.propFromSeries();b.getAxes();(l(a.series)?a.series:[]).forEach(function(a){b.initSeries(a)});b.linkSeries();b.setSeriesData();f(b,\"beforeRender\");v&&(b.pointer=k.hasTouch||!A.PointerEvent&&!A.MSPointerEvent?new v(b,a):new H(b,a));b.render();if(!b.renderer.imgCount&&\n!b.hasLoaded)b.onload();b.temporaryDisplay(!0)}},onload:function(){this.callbacks.concat([this.callback]).forEach(function(b){b&&\"undefined\"!==typeof this.index&&b.apply(this,[this])},this);f(this,\"load\");f(this,\"render\");D(this.index)&&this.setReflow(this.options.chart.reflow);this.hasLoaded=!0}})});P(A,\"parts/ScrollablePlotArea.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.createElement,K=g.pick,G=g.stop;g=k.Chart;\"\";H(g,\"afterSetChartSize\",function(g){var v=\nthis.options.chart.scrollablePlotArea,y=v&&v.minWidth;v=v&&v.minHeight;if(!this.renderer.forExport){if(y){if(this.scrollablePixelsX=y=Math.max(0,y-this.chartWidth)){this.plotWidth+=y;this.inverted?(this.clipBox.height+=y,this.plotBox.height+=y):(this.clipBox.width+=y,this.plotBox.width+=y);var I={1:{name:\"right\",value:y}}}}else v&&(this.scrollablePixelsY=y=Math.max(0,v-this.chartHeight))&&(this.plotHeight+=y,this.inverted?(this.clipBox.width+=y,this.plotBox.width+=y):(this.clipBox.height+=y,this.plotBox.height+=\ny),I={2:{name:\"bottom\",value:y}});I&&!g.skipAxes&&this.axes.forEach(function(g){I[g.side]?g.getPlotLinePath=function(){var y=I[g.side].name,D=this[y];this[y]=D-I[g.side].value;var z=k.Axis.prototype.getPlotLinePath.apply(this,arguments);this[y]=D;return z}:(g.setAxisSize(),g.setAxisTranslation())})}});H(g,\"render\",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});g.prototype.setUpScrolling=function(){var g=\nthis,k={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};this.scrollablePixelsX&&(k.overflowX=\"auto\");this.scrollablePixelsY&&(k.overflowY=\"auto\");this.scrollingContainer=v(\"div\",{className:\"highcharts-scrolling\"},k,this.renderTo);H(this.scrollingContainer,\"scroll\",function(){g.pointer&&delete g.pointer.chartPosition});this.innerContainer=v(\"div\",{className:\"highcharts-inner-container\"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=\nnull};g.prototype.moveFixedElements=function(){var g=this.container,k=this.fixedRenderer,y=\".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-scrollbar .highcharts-subtitle .highcharts-title\".split(\" \"),v;this.scrollablePixelsX&&!this.inverted?v=\".highcharts-yaxis\":this.scrollablePixelsX&&this.inverted?v=\".highcharts-xaxis\":\nthis.scrollablePixelsY&&!this.inverted?v=\".highcharts-xaxis\":this.scrollablePixelsY&&this.inverted&&(v=\".highcharts-yaxis\");y.push(v,v+\"-labels\");y.forEach(function(y){[].forEach.call(g.querySelectorAll(y),function(g){(g.namespaceURI===k.SVG_NS?k.box:k.box.parentNode).appendChild(g);g.style.pointerEvents=\"auto\"})})};g.prototype.applyFixed=function(){var g,M,y=!this.fixedDiv,I=this.options.chart.scrollablePlotArea;y?(this.fixedDiv=v(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",\npointerEvents:\"none\",zIndex:2},null,!0),this.renderTo.insertBefore(this.fixedDiv,this.renderTo.firstChild),this.renderTo.style.overflow=\"visible\",this.fixedRenderer=M=new k.Renderer(this.fixedDiv,this.chartWidth,this.chartHeight,null===(g=this.options.chart)||void 0===g?void 0:g.style),this.scrollableMask=M.path().attr({fill:this.options.chart.backgroundColor||\"#fff\",\"fill-opacity\":K(I.opacity,.85),zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),this.moveFixedElements(),H(this,\"afterShowResetZoom\",\nthis.moveFixedElements),H(this,\"afterLayOutTitles\",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);g=this.chartWidth+(this.scrollablePixelsX||0);M=this.chartHeight+(this.scrollablePixelsY||0);G(this.container);this.container.style.width=g+\"px\";this.container.style.height=M+\"px\";this.renderer.boxWrapper.attr({width:g,height:M,viewBox:[0,0,g,M].join(\" \")});this.chartBackground.attr({width:g,height:M});this.scrollingContainer.style.height=this.chartHeight+\"px\";y&&\n(I.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*I.scrollPositionX),I.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*I.scrollPositionY));M=this.axisOffset;y=this.plotTop-M[0]-1;I=this.plotLeft-M[3]-1;g=this.plotTop+this.plotHeight+M[2]+1;M=this.plotLeft+this.plotWidth+M[1]+1;var J=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),E=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);y=this.scrollablePixelsX?[[\"M\",0,y],[\"L\",this.plotLeft-\n1,y],[\"L\",this.plotLeft-1,g],[\"L\",0,g],[\"Z\"],[\"M\",J,y],[\"L\",this.chartWidth,y],[\"L\",this.chartWidth,g],[\"L\",J,g],[\"Z\"]]:this.scrollablePixelsY?[[\"M\",I,0],[\"L\",I,this.plotTop-1],[\"L\",M,this.plotTop-1],[\"L\",M,0],[\"Z\"],[\"M\",I,E],[\"L\",I,this.chartHeight],[\"L\",M,this.chartHeight],[\"L\",M,E],[\"Z\"]]:[[\"M\",0,0]];\"adjustHeight\"!==this.redrawTrigger&&this.scrollableMask.attr({d:y})}});P(A,\"parts/StackingAxis.js\",[A[\"parts/Utilities.js\"]],function(k){var g=k.addEvent,H=k.destroyObjectProperties,v=k.fireEvent,\nK=k.objectEach,G=k.pick,N=function(){function g(g){this.oldStacks={};this.stacks={};this.stacksTouched=0;this.axis=g}g.prototype.buildStacks=function(){var g=this.axis,k=g.series,J=G(g.options.reversedStacks,!0),E=k.length,D;if(!g.isXAxis){this.usePercentage=!1;for(D=E;D--;){var z=k[J?D:E-D-1];z.setStackedPoints()}for(D=0;D<E;D++)k[D].modifyStacks();v(g,\"afterBuildStacks\")}};g.prototype.cleanStacks=function(){if(!this.axis.isXAxis){if(this.oldStacks)var g=this.stacks=this.oldStacks;K(g,function(g){K(g,\nfunction(g){g.cumulative=g.total})})}};g.prototype.resetStacks=function(){var g=this,k=g.stacks;g.axis.isXAxis||K(k,function(k){K(k,function(y,D){y.touched<g.stacksTouched?(y.destroy(),delete k[D]):(y.total=null,y.cumulative=null)})})};g.prototype.renderStackTotals=function(){var g=this.axis.chart,k=g.renderer,v=this.stacks,E=this.stackTotalGroup=this.stackTotalGroup||k.g(\"stack-labels\").attr({visibility:\"visible\",zIndex:6}).add();E.translate(g.plotLeft,g.plotTop);K(v,function(g){K(g,function(g){g.render(E)})})};\nreturn g}();return function(){function k(){}k.compose=function(y){g(y,\"init\",k.onInit);g(y,\"destroy\",k.onDestroy)};k.onDestroy=function(){var g=this.stacking;if(g){var k=g.stacks;K(k,function(g,y){H(g);k[y]=null});g&&g.stackTotalGroup&&g.stackTotalGroup.destroy()}};k.onInit=function(){this.stacking||(this.stacking=new N(this))};return k}()});P(A,\"mixins/legend-symbol.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.merge,v=g.pick;k.LegendSymbolMixin={drawRectangle:function(g,\nk){var G=g.symbolHeight,M=g.options.squareSymbol;k.legendSymbol=this.chart.renderer.rect(M?(g.symbolWidth-G)/2:0,g.baseline-G+1,M?G:g.symbolWidth,G,v(g.options.symbolRadius,G/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(k.legendGroup)},drawLineMarker:function(g){var k=this.options,N=k.marker,M=g.symbolWidth,y=g.symbolHeight,I=y/2,J=this.chart.renderer,E=this.legendGroup;g=g.baseline-Math.round(.3*g.fontMetrics.b);var D={};this.chart.styledMode||(D={\"stroke-width\":k.lineWidth||0},k.dashStyle&&\n(D.dashstyle=k.dashStyle));this.legendLine=J.path([\"M\",0,g,\"L\",M,g]).addClass(\"highcharts-graph\").attr(D).add(E);N&&!1!==N.enabled&&M&&(k=Math.min(v(N.radius,I),I),0===this.symbol.indexOf(\"url\")&&(N=H(N,{width:y,height:y}),k=0),this.legendSymbol=N=J.symbol(this.symbol,M/2-k,g-k,2*k,2*k,N).addClass(\"highcharts-point\").add(E),N.isMarker=!0)}};return k.LegendSymbolMixin});P(A,\"parts/Point.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){\"\";var H=g.animObject,v=g.defined,K=g.erase,G=\ng.extend,N=g.fireEvent,M=g.format,y=g.getNestedProperty,I=g.isArray,J=g.isNumber,E=g.isObject,D=g.syncTimeout,z=g.pick,t=g.removeEvent,q=g.uniqueKey;g=function(){function g(){this.colorIndex=this.category=void 0;this.formatPrefix=\"point\";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected=!1;this.total=this.series=void 0;this.visible=!0;this.x=void 0}g.prototype.animateBeforeDestroy=function(){var h=this,f={x:h.startXPos,opacity:0},a,l=h.getGraphicalProps();l.singular.forEach(function(e){a=\n\"dataLabel\"===e;h[e]=h[e].animate(a?{x:h[e].startXPos,y:h[e].startYPos,opacity:0}:f)});l.plural.forEach(function(a){h[a].forEach(function(a){a.element&&a.animate(G({x:h.startXPos},a.startYPos?{x:a.startXPos,y:a.startYPos}:{}))})})};g.prototype.applyOptions=function(h,f){var a=this.series,l=a.options.pointValKey||a.pointValKey;h=g.prototype.optionsToObject.call(this,h);G(this,h);this.options=this.options?G(this.options,h):h;h.group&&delete this.group;h.dataLabels&&delete this.dataLabels;l&&(this.y=\ng.prototype.getNestedProperty.call(this,l));this.formatPrefix=(this.isNull=z(this.isValid&&!this.isValid(),null===this.x||!J(this.y)))?\"null\":\"point\";this.selected&&(this.state=\"select\");\"name\"in this&&\"undefined\"===typeof f&&a.xAxis&&a.xAxis.hasNames&&(this.x=a.xAxis.nameToX(this));\"undefined\"===typeof this.x&&a&&(this.x=\"undefined\"===typeof f?a.autoIncrement(this):f);return this};g.prototype.destroy=function(){function h(){if(f.graphic||f.dataLabel||f.dataLabels)t(f),f.destroyElements();for(m in f)f[m]=\nnull}var f=this,a=f.series,l=a.chart;a=a.options.dataSorting;var e=l.hoverPoints,c=H(f.series.chart.renderer.globalAnimation),m;f.legendItem&&l.legend.destroyItem(f);e&&(f.setState(),K(e,f),e.length||(l.hoverPoints=null));if(f===l.hoverPoint)f.onMouseOut();a&&a.enabled?(this.animateBeforeDestroy(),D(h,c.duration)):h();l.pointCount--};g.prototype.destroyElements=function(h){var f=this;h=f.getGraphicalProps(h);h.singular.forEach(function(a){f[a]=f[a].destroy()});h.plural.forEach(function(a){f[a].forEach(function(a){a.element&&\na.destroy()});delete f[a]})};g.prototype.firePointEvent=function(h,f,a){var l=this,e=this.series.options;(e.point.events[h]||l.options&&l.options.events&&l.options.events[h])&&l.importEvents();\"click\"===h&&e.allowPointSelect&&(a=function(a){l.select&&l.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});N(l,h,f,a)};g.prototype.getClassName=function(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+\n(\"undefined\"!==typeof this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")};g.prototype.getGraphicalProps=function(h){var f=this,a=[],l,e={singular:[],plural:[]};h=h||{graphic:1,dataLabel:1};h.graphic&&a.push(\"graphic\",\"shadowGroup\");h.dataLabel&&a.push(\"dataLabel\",\"dataLabelUpper\",\"connector\");for(l=a.length;l--;){var c=a[l];f[c]&&e.singular.push(c)}[\"dataLabel\",\n\"connector\"].forEach(function(a){var c=a+\"s\";h[a]&&f[c]&&e.plural.push(c)});return e};g.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}};g.prototype.getNestedProperty=function(h){if(h)return 0===h.indexOf(\"custom.\")?y(h,this.options):this[h]};g.prototype.getZone=function(){var h=this.series,f=h.zones;h=h.zoneAxis||\n\"y\";var a=0,l;for(l=f[a];this[h]>=l.value;)l=f[++a];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=l&&l.color&&!this.options.color?l.color:this.nonZonedColor;return l};g.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType};g.prototype.init=function(h,f,a){this.series=h;this.applyOptions(f,a);this.id=v(this.id)?this.id:q();this.resolveColor();h.chart.pointCount++;N(this,\"afterInit\");return this};g.prototype.optionsToObject=\nfunction(h){var f={},a=this.series,l=a.options.keys,e=l||a.pointArrayMap||[\"y\"],c=e.length,m=0,u=0;if(J(h)||null===h)f[e[0]]=h;else if(I(h))for(!l&&h.length>c&&(a=typeof h[0],\"string\"===a?f.name=h[0]:\"number\"===a&&(f.x=h[0]),m++);u<c;)l&&\"undefined\"===typeof h[m]||(0<e[u].indexOf(\".\")?g.prototype.setNestedProperty(f,h[m],e[u]):f[e[u]]=h[m]),m++,u++;else\"object\"===typeof h&&(f=h,h.dataLabels&&(a._hasPointLabels=!0),h.marker&&(a._hasPointMarkers=!0));return f};g.prototype.resolveColor=function(){var h=\nthis.series;var f=h.chart.options.chart.colorCount;var a=h.chart.styledMode;delete this.nonZonedColor;a||this.options.color||(this.color=h.color);h.options.colorByPoint?(a||(f=h.options.colors||h.chart.options.colors,this.color=this.color||f[h.colorCounter],f=f.length),a=h.colorCounter,h.colorCounter++,h.colorCounter===f&&(h.colorCounter=0)):a=h.colorIndex;this.colorIndex=z(this.colorIndex,a)};g.prototype.setNestedProperty=function(h,f,a){a.split(\".\").reduce(function(a,e,c,h){a[e]=h.length-1===c?\nf:E(a[e],!0)?a[e]:{};return a[e]},h);return h};g.prototype.tooltipFormatter=function(h){var f=this.series,a=f.tooltipOptions,l=z(a.valueDecimals,\"\"),e=a.valuePrefix||\"\",c=a.valueSuffix||\"\";f.chart.styledMode&&(h=f.chart.tooltip.styledModeFormat(h));(f.pointArrayMap||[\"y\"]).forEach(function(a){a=\"{point.\"+a;if(e||c)h=h.replace(RegExp(a+\"}\",\"g\"),e+a+\"}\"+c);h=h.replace(RegExp(a+\"}\",\"g\"),a+\":,.\"+l+\"f}\")});return M(h,{point:this,series:this.series},f.chart)};return g}();k.Point=g;return k.Point});P(A,\n\"parts/Series.js\",[A[\"mixins/legend-symbol.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){\"\";var K=v.addEvent,G=v.animObject,N=v.arrayMax,M=v.arrayMin,y=v.clamp,I=v.correctFloat,J=v.defined,E=v.erase,D=v.error,z=v.extend,t=v.find,q=v.fireEvent,r=v.getNestedProperty,h=v.isArray,f=v.isFunction,a=v.isNumber,l=v.isString,e=v.merge,c=v.objectEach,m=v.pick,u=v.removeEvent,L=v.seriesType,F=v.splat,w=v.syncTimeout,p=g.defaultOptions,C=g.defaultPlotOptions,O=g.seriesTypes,\nB=g.SVGElement,d=g.win;g.Series=L(\"line\",null,{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\"center\",formatter:function(){var b=this.series.chart.numberFormatter;return\"number\"!==typeof this.y?\n\"\":b(this.y,-1)},padding:5,style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"},{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",\ncolorCounter:0,cropShoulder:1,directTouch:!1,eventsToUnbind:[],isCartesian:!0,parallelArrays:[\"x\",\"y\"],pointClass:H,requireSorting:!0,sorted:!0,init:function(b,a){q(this,\"init\",{options:a});var d=this,e=b.series,h;this.eventOptions=this.eventOptions||{};d.chart=b;d.options=a=d.setOptions(a);d.linkedSeries=[];d.bindAxes();z(d,{name:a.name,state:\"\",visible:!1!==a.visible,selected:!0===a.selected});var n=a.events;c(n,function(b,a){f(b)&&d.eventOptions[a]!==b&&(f(d.eventOptions[a])&&u(d,a,d.eventOptions[a]),\nd.eventOptions[a]=b,K(d,a,b))});if(n&&n.click||a.point&&a.point.events&&a.point.events.click||a.allowPointSelect)b.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(b){d[b+\"Data\"]||(d[b+\"Data\"]=[])});d.isCartesian&&(b.hasCartesianSeries=!0);e.length&&(h=e[e.length-1]);d._i=m(h&&h._i,-1)+1;b.orderSeries(this.insert(e));a.dataSorting&&a.dataSorting.enabled?d.setDataSortingOptions():d.points||d.data||d.setData(a.data,!1);q(this,\"afterInit\")},is:function(b){return O[b]&&\nthis instanceof O[b]},insert:function(b){var d=this.options.index,c;if(a(d)){for(c=b.length;c--;)if(d>=m(b[c].options.index,b[c]._i)){b.splice(c+1,0,this);break}-1===c&&b.unshift(this);c+=1}else b.push(this);return m(c,b.length-1)},bindAxes:function(){var b=this,a=b.options,d=b.chart,c;q(this,\"bindAxes\",null,function(){(b.axisTypes||[]).forEach(function(e){d[e].forEach(function(d){c=d.options;if(a[e]===c.index||\"undefined\"!==typeof a[e]&&a[e]===c.id||\"undefined\"===typeof a[e]&&0===c.index)b.insert(d.series),\nb[e]=d,d.isDirty=!0});b[e]||b.optionalAxis===e||D(18,!0,d)})});q(this,\"afterBindAxes\")},updateParallelArrays:function(b,d){var c=b.series,e=arguments,f=a(d)?function(a){var e=\"y\"===a&&c.toYData?c.toYData(b):b[a];c[a+\"Data\"][d]=e}:function(b){Array.prototype[d].apply(c[b+\"Data\"],Array.prototype.slice.call(e,2))};c.parallelArrays.forEach(f)},hasData:function(){return this.visible&&\"undefined\"!==typeof this.dataMax&&\"undefined\"!==typeof this.dataMin||this.visible&&this.yData&&0<this.yData.length},autoIncrement:function(){var b=\nthis.options,a=this.xIncrement,d,c=b.pointIntervalUnit,e=this.chart.time;a=m(a,b.pointStart,0);this.pointInterval=d=m(this.pointInterval,b.pointInterval,1);c&&(b=new e.Date(a),\"day\"===c?e.set(\"Date\",b,e.get(\"Date\",b)+d):\"month\"===c?e.set(\"Month\",b,e.get(\"Month\",b)+d):\"year\"===c&&e.set(\"FullYear\",b,e.get(\"FullYear\",b)+d),d=b.getTime()-a);this.xIncrement=a+d;return a},setDataSortingOptions:function(){var b=this.options;z(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1});J(b.pointRange)||\n(b.pointRange=1)},setOptions:function(b){var a=this.chart,d=a.options,c=d.plotOptions,f=a.userOptions||{};b=e(b);a=a.styledMode;var h={plotOptions:c,userOptions:b};q(this,\"setOptions\",h);var l=h.plotOptions[this.type],u=f.plotOptions||{};this.userOptions=h.userOptions;f=e(l,c.series,f.plotOptions&&f.plotOptions[this.type],b);this.tooltipOptions=e(p.tooltip,p.plotOptions.series&&p.plotOptions.series.tooltip,p.plotOptions[this.type].tooltip,d.tooltip.userOptions,c.series&&c.series.tooltip,c[this.type].tooltip,\nb.tooltip);this.stickyTracking=m(b.stickyTracking,u[this.type]&&u[this.type].stickyTracking,u.series&&u.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:f.stickyTracking);null===l.marker&&delete f.marker;this.zoneAxis=f.zoneAxis;d=this.zones=(f.zones||[]).slice();!f.negativeColor&&!f.negativeFillColor||f.zones||(c={value:f[this.zoneAxis+\"Threshold\"]||f.threshold||0,className:\"highcharts-negative\"},a||(c.color=f.negativeColor,c.fillColor=f.negativeFillColor),d.push(c));d.length&&\nJ(d[d.length-1].value)&&d.push(a?{}:{color:this.color,fillColor:this.fillColor});q(this,\"afterSetOptions\",{options:f});return f},getName:function(){return m(this.options.name,\"Series \"+(this.index+1))},getCyclic:function(b,a,d){var c=this.chart,e=this.userOptions,f=b+\"Index\",h=b+\"Counter\",n=d?d.length:m(c.options.chart[b+\"Count\"],c[b+\"Count\"]);if(!a){var p=m(e[f],e[\"_\"+f]);J(p)||(c.series.length||(c[h]=0),e[\"_\"+f]=p=c[h]%n,c[h]+=1);d&&(a=d[p])}\"undefined\"!==typeof p&&(this[f]=p);this[b]=a},getColor:function(){this.chart.styledMode?\nthis.getCyclic(\"color\"):this.options.colorByPoint?this.options.color=null:this.getCyclic(\"color\",this.options.color||C[this.type].color,this.chart.options.colors)},getPointsCollection:function(){return(this.hasGroupedData?this.points:this.data)||[]},getSymbol:function(){this.getCyclic(\"symbol\",this.options.marker.symbol,this.chart.options.symbols)},findPointIndex:function(b,d){var c=b.id,e=b.x,f=this.points,h,n=this.options.dataSorting;if(c)var p=this.chart.get(c);else if(this.linkedParent||this.enabledDataSorting){var l=\nn&&n.matchByName?\"name\":\"index\";p=t(f,function(a){return!a.touched&&a[l]===b[l]});if(!p)return}if(p){var m=p&&p.index;\"undefined\"!==typeof m&&(h=!0)}\"undefined\"===typeof m&&a(e)&&(m=this.xData.indexOf(e,d));-1!==m&&\"undefined\"!==typeof m&&this.cropped&&(m=m>=this.cropStart?m-this.cropStart:m);!h&&f[m]&&f[m].touched&&(m=void 0);return m},drawLegendSymbol:k.drawLineMarker,updateData:function(b,d){var c=this.options,e=c.dataSorting,f=this.points,h=[],n,p,m,l=this.requireSorting,u=b.length===f.length,\nw=!0;this.xIncrement=null;b.forEach(function(b,d){var p=J(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};var w=p.x;if(p.id||a(w)){if(w=this.findPointIndex(p,m),-1===w||\"undefined\"===typeof w?h.push(b):f[w]&&b!==c.data[w]?(f[w].update(b,!1,null,!1),f[w].touched=!0,l&&(m=w+1)):f[w]&&(f[w].touched=!0),!u||d!==w||e&&e.enabled||this.hasDerivedData)n=!0}else h.push(b)},this);if(n)for(b=f.length;b--;)(p=f[b])&&!p.touched&&p.remove&&p.remove(!1,d);else!u||e&&e.enabled?w=!1:(b.forEach(function(b,\na){f[a].update&&b!==f[a].y&&f[a].update(b,!1,null,!1)}),h.length=0);f.forEach(function(b){b&&(b.touched=!1)});if(!w)return!1;h.forEach(function(b){this.addPoint(b,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=N(this.xData),this.autoIncrement());return!0},setData:function(b,d,c,e){var f=this,n=f.points,p=n&&n.length||0,u,w=f.options,x=f.chart,C=w.dataSorting,g=null,r=f.xAxis;g=w.turboThreshold;var F=this.xData,q=this.yData,t=(u=f.pointArrayMap)&&u.length,\nB=w.keys,k=0,O=1,z;b=b||[];u=b.length;d=m(d,!0);C&&C.enabled&&(b=this.sortData(b));!1!==e&&u&&p&&!f.cropped&&!f.hasGroupedData&&f.visible&&!f.isSeriesBoosting&&(z=this.updateData(b,c));if(!z){f.xIncrement=null;f.colorCounter=0;this.parallelArrays.forEach(function(b){f[b+\"Data\"].length=0});if(g&&u>g)if(g=f.getFirstValidPoint(b),a(g))for(c=0;c<u;c++)F[c]=this.autoIncrement(),q[c]=b[c];else if(h(g))if(t)for(c=0;c<u;c++)e=b[c],F[c]=e[0],q[c]=e.slice(1,t+1);else for(B&&(k=B.indexOf(\"x\"),O=B.indexOf(\"y\"),\nk=0<=k?k:0,O=0<=O?O:1),c=0;c<u;c++)e=b[c],F[c]=e[k],q[c]=e[O];else D(12,!1,x);else for(c=0;c<u;c++)\"undefined\"!==typeof b[c]&&(e={series:f},f.pointClass.prototype.applyOptions.apply(e,[b[c]]),f.updateParallelArrays(e,c));q&&l(q[0])&&D(14,!0,x);f.data=[];f.options.data=f.userOptions.data=b;for(c=p;c--;)n[c]&&n[c].destroy&&n[c].destroy();r&&(r.minRange=r.userMinRange);f.isDirty=x.isDirtyBox=!0;f.isDirtyData=!!n;c=!1}\"point\"===w.legendType&&(this.processData(),this.generatePoints());d&&x.redraw(c)},\nsortData:function(b){var a=this,d=a.options.dataSorting.sortKey||\"y\",c=function(b,a){return J(a)&&b.pointClass.prototype.optionsToObject.call({series:b},a)||{}};b.forEach(function(d,e){b[e]=c(a,d);b[e].index=e},this);b.concat().sort(function(b,a){b=r(d,b);a=r(d,a);return a<b?-1:a>b?1:0}).forEach(function(b,a){b.x=a},this);a.linkedSeries&&a.linkedSeries.forEach(function(a){var d=a.options,e=d.data;d.dataSorting&&d.dataSorting.enabled||!e||(e.forEach(function(d,f){e[f]=c(a,d);b[f]&&(e[f].x=b[f].x,e[f].index=\nf)}),a.setData(e,!1))});return b},getProcessedData:function(b){var a=this.xData,d=this.yData,c=a.length;var e=0;var f=this.xAxis,h=this.options;var p=h.cropThreshold;var m=b||this.getExtremesFromAll||h.getExtremesFromAll,l=this.isCartesian;b=f&&f.val2lin;h=!(!f||!f.logarithmic);var u=this.requireSorting;if(f){f=f.getExtremes();var w=f.min;var C=f.max}if(l&&this.sorted&&!m&&(!p||c>p||this.forceCrop))if(a[c-1]<w||a[0]>C)a=[],d=[];else if(this.yData&&(a[0]<w||a[c-1]>C)){e=this.cropData(this.xData,this.yData,\nw,C);a=e.xData;d=e.yData;e=e.start;var g=!0}for(p=a.length||1;--p;)if(c=h?b(a[p])-b(a[p-1]):a[p]-a[p-1],0<c&&(\"undefined\"===typeof r||c<r))var r=c;else 0>c&&u&&(D(15,!1,this.chart),u=!1);return{xData:a,yData:d,cropped:g,cropStart:e,closestPointRange:r}},processData:function(b){var a=this.xAxis;if(this.isCartesian&&!this.isDirty&&!a.isDirty&&!this.yAxis.isDirty&&!b)return!1;b=this.getProcessedData();this.cropped=b.cropped;this.cropStart=b.cropStart;this.processedXData=b.xData;this.processedYData=b.yData;\nthis.closestPointRange=this.basePointRange=b.closestPointRange},cropData:function(b,a,d,c,e){var f=b.length,h=0,n=f,p;e=m(e,this.cropShoulder);for(p=0;p<f;p++)if(b[p]>=d){h=Math.max(0,p-e);break}for(d=p;d<f;d++)if(b[d]>c){n=d+e;break}return{xData:b.slice(h,n),yData:a.slice(h,n),start:h,end:n}},generatePoints:function(){var b=this.options,a=b.data,d=this.data,c,e=this.processedXData,f=this.processedYData,h=this.pointClass,p=e.length,m=this.cropStart||0,l=this.hasGroupedData;b=b.keys;var u=[],w;d||\nl||(d=[],d.length=a.length,d=this.data=d);b&&l&&(this.options.keys=!1);for(w=0;w<p;w++){var C=m+w;if(l){var g=(new h).init(this,[e[w]].concat(F(f[w])));g.dataGroup=this.groupMap[w];g.dataGroup.options&&(g.options=g.dataGroup.options,z(g,g.dataGroup.options),delete g.dataLabels)}else(g=d[C])||\"undefined\"===typeof a[C]||(d[C]=g=(new h).init(this,a[C],e[w]));g&&(g.index=C,u[w]=g)}this.options.keys=b;if(d&&(p!==(c=d.length)||l))for(w=0;w<c;w++)w!==m||l||(w+=p),d[w]&&(d[w].destroyElements(),d[w].plotX=\nvoid 0);this.data=d;this.points=u;q(this,\"afterGeneratePoints\")},getXExtremes:function(b){return{min:M(b),max:N(b)}},getExtremes:function(b,d){var c=this.xAxis,e=this.yAxis,f=this.processedXData||this.xData,n=[],p=0,m=0;var l=0;var u=this.requireSorting?this.cropShoulder:0,w=e?e.positiveValuesOnly:!1,C;b=b||this.stackedYData||this.processedYData||[];e=b.length;c&&(l=c.getExtremes(),m=l.min,l=l.max);for(C=0;C<e;C++){var g=f[C];var r=b[C];var F=(a(r)||h(r))&&(r.length||0<r||!w);g=d||this.getExtremesFromAll||\nthis.options.getExtremesFromAll||this.cropped||!c||(f[C+u]||g)>=m&&(f[C-u]||g)<=l;if(F&&g)if(F=r.length)for(;F--;)a(r[F])&&(n[p++]=r[F]);else n[p++]=r}b={dataMin:M(n),dataMax:N(n)};q(this,\"afterGetExtremes\",{dataExtremes:b});return b},applyExtremes:function(){var b=this.getExtremes();this.dataMin=b.dataMin;this.dataMax=b.dataMax;return b},getFirstValidPoint:function(b){for(var a=null,d=b.length,c=0;null===a&&c<d;)a=b[c],c++;return a},translate:function(){this.processedXData||this.processData();this.generatePoints();\nvar b=this.options,d=b.stacking,c=this.xAxis,e=c.categories,f=this.enabledDataSorting,p=this.yAxis,l=this.points,u=l.length,w=!!this.modifyValue,C,g=this.pointPlacementToXValue(),r=!!g,F=b.threshold,t=b.startFromThreshold?F:0,B,k=this.zoneAxis||\"y\",O=Number.MAX_VALUE;for(C=0;C<u;C++){var z=l[C],L=z.x,D=z.y,v=z.low,E=d&&p.stacking&&p.stacking.stacks[(this.negStacks&&D<(t?0:F)?\"-\":\"\")+this.stackKey];p.positiveValuesOnly&&null!==D&&0>=D&&(z.isNull=!0);z.plotX=B=I(y(c.translate(L,0,0,0,1,g,\"flags\"===\nthis.type),-1E5,1E5));if(d&&this.visible&&E&&E[L]){var G=this.getStackIndicator(G,L,this.index);if(!z.isNull){var M=E[L];var H=M.points[G.key]}}h(H)&&(v=H[0],D=H[1],v===t&&G.key===E[L].base&&(v=m(a(F)&&F,p.min)),p.positiveValuesOnly&&0>=v&&(v=null),z.total=z.stackTotal=M.total,z.percentage=M.total&&z.y/M.total*100,z.stackY=D,this.irregularWidths||M.setOffset(this.pointXOffset||0,this.barW||0));z.yBottom=J(v)?y(p.translate(v,0,1,0,1),-1E5,1E5):null;w&&(D=this.modifyValue(D,z));z.plotY=\"number\"===typeof D&&\nInfinity!==D?y(p.translate(D,0,1,0,1),-1E5,1E5):void 0;z.isInside=this.isPointInside(z);z.clientX=r?I(c.translate(L,0,0,0,1,g)):B;z.negative=z[k]<(b[k+\"Threshold\"]||F||0);z.category=e&&\"undefined\"!==typeof e[z.x]?e[z.x]:z.x;if(!z.isNull&&!1!==z.visible){\"undefined\"!==typeof N&&(O=Math.min(O,Math.abs(B-N)));var N=B}z.zone=this.zones.length&&z.getZone();!z.graphic&&this.group&&f&&(z.isNew=!0)}this.closestPointRangePx=O;q(this,\"afterTranslate\")},getValidPoints:function(b,a,d){var c=this.chart;return(b||\nthis.points||[]).filter(function(b){return a&&!c.isInsidePlot(b.plotX,b.plotY,c.inverted)?!1:!1!==b.visible&&(d||!b.isNull)})},getClipBox:function(b,a){var d=this.options,c=this.chart,e=c.inverted,f=this.xAxis,h=f&&this.yAxis;b&&!1===d.clip&&h?b=e?{y:-c.chartWidth+h.len+h.pos,height:c.chartWidth,width:c.chartHeight,x:-c.chartHeight+f.len+f.pos}:{y:-h.pos,height:c.chartHeight,width:c.chartWidth,x:-f.pos}:(b=this.clipBox||c.clipBox,a&&(b.width=c.plotSizeX,b.x=0));return a?{width:b.width,x:b.x}:b},setClip:function(b){var a=\nthis.chart,d=this.options,c=a.renderer,e=a.inverted,f=this.clipBox,h=this.getClipBox(b),p=this.sharedClipKey||[\"_sharedClip\",b&&b.duration,b&&b.easing,h.height,d.xAxis,d.yAxis].join(),m=a[p],l=a[p+\"m\"];b&&(h.width=0,e&&(h.x=a.plotHeight+(!1!==d.clip?0:a.plotTop)));m?a.hasLoaded||m.attr(h):(b&&(a[p+\"m\"]=l=c.clipRect(e?a.plotSizeX+99:-99,e?-a.plotLeft:-a.plotTop,99,e?a.chartWidth:a.chartHeight)),a[p]=m=c.clipRect(h),m.count={length:0});b&&!m.count[this.index]&&(m.count[this.index]=!0,m.count.length+=\n1);if(!1!==d.clip||b)this.group.clip(b||f?m:a.clipRect),this.markerGroup.clip(l),this.sharedClipKey=p;b||(m.count[this.index]&&(delete m.count[this.index],--m.count.length),0===m.count.length&&p&&a[p]&&(f||(a[p]=a[p].destroy()),a[p+\"m\"]&&(a[p+\"m\"]=a[p+\"m\"].destroy())))},animate:function(b){var a=this.chart,d=G(this.options.animation);if(!a.hasRendered)if(b)this.setClip(d);else{var c=this.sharedClipKey;b=a[c];var e=this.getClipBox(d,!0);b&&b.animate(e,d);a[c+\"m\"]&&a[c+\"m\"].animate({width:e.width+99,\nx:e.x-(a.inverted?0:99)},d)}},afterAnimate:function(){this.setClip();q(this,\"afterAnimate\");this.finishedAnimating=!0},drawPoints:function(){var b=this.points,a=this.chart,d,c,e=this.options.marker,f=this[this.specialGroup]||this.markerGroup,h=this.xAxis,p=m(e.enabled,!h||h.isRadial?!0:null,this.closestPointRangePx>=e.enabledThreshold*e.radius);if(!1!==e.enabled||this._hasPointMarkers)for(d=0;d<b.length;d++){var l=b[d];var u=(c=l.graphic)?\"animate\":\"attr\";var w=l.marker||{};var C=!!l.marker;if((p&&\n\"undefined\"===typeof w.enabled||w.enabled)&&!l.isNull&&!1!==l.visible){var g=m(w.symbol,this.symbol);var r=this.markerAttribs(l,l.selected&&\"select\");this.enabledDataSorting&&(l.startXPos=h.reversed?-r.width:h.width);var F=!1!==l.isInside;c?c[F?\"show\":\"hide\"](F).animate(r):F&&(0<r.width||l.hasImage)&&(l.graphic=c=a.renderer.symbol(g,r.x,r.y,r.width,r.height,C?w:e).add(f),this.enabledDataSorting&&a.hasRendered&&(c.attr({x:l.startXPos}),u=\"animate\"));c&&\"animate\"===u&&c[F?\"show\":\"hide\"](F).animate(r);\nif(c&&!a.styledMode)c[u](this.pointAttribs(l,l.selected&&\"select\"));c&&c.addClass(l.getClassName(),!0)}else c&&(l.graphic=c.destroy())}},markerAttribs:function(b,a){var d=this.options,c=d.marker,e=b.marker||{},f=e.symbol||c.symbol,h=m(e.radius,c.radius);a&&(c=c.states[a],a=e.states&&e.states[a],h=m(a&&a.radius,c&&c.radius,h+(c&&c.radiusPlus||0)));b.hasImage=f&&0===f.indexOf(\"url\");b.hasImage&&(h=0);b={x:d.crisp?Math.floor(b.plotX)-h:b.plotX-h,y:b.plotY-h};h&&(b.width=b.height=2*h);return b},pointAttribs:function(b,\na){var d=this.options.marker,c=b&&b.options,e=c&&c.marker||{},f=this.color,h=c&&c.color,p=b&&b.color;c=m(e.lineWidth,d.lineWidth);var n=b&&b.zone&&b.zone.color;b=1;f=h||n||p||f;h=e.fillColor||d.fillColor||f;f=e.lineColor||d.lineColor||f;a=a||\"normal\";d=d.states[a];a=e.states&&e.states[a]||{};c=m(a.lineWidth,d.lineWidth,c+m(a.lineWidthPlus,d.lineWidthPlus,0));h=a.fillColor||d.fillColor||h;f=a.lineColor||d.lineColor||f;b=m(a.opacity,d.opacity,b);return{stroke:f,\"stroke-width\":c,fill:h,opacity:b}},destroy:function(b){var a=\nthis,e=a.chart,f=/AppleWebKit\\/533/.test(d.navigator.userAgent),h,p,l=a.data||[],m,u;q(a,\"destroy\");this.removeEvents(b);(a.axisTypes||[]).forEach(function(b){(u=a[b])&&u.series&&(E(u.series,a),u.isDirty=u.forceRedraw=!0)});a.legendItem&&a.chart.legend.destroyItem(a);for(p=l.length;p--;)(m=l[p])&&m.destroy&&m.destroy();a.points=null;v.clearTimeout(a.animationTimeout);c(a,function(b,a){b instanceof B&&!b.survive&&(h=f&&\"group\"===a?\"hide\":\"destroy\",b[h]())});e.hoverSeries===a&&(e.hoverSeries=null);\nE(e.series,a);e.orderSeries();c(a,function(d,c){b&&\"hcEvents\"===c||delete a[c]})},getGraphPath:function(b,a,d){var c=this,e=c.options,f=e.step,h,p=[],n=[],l;b=b||c.points;(h=b.reversed)&&b.reverse();(f={right:1,center:2}[f]||f&&3)&&h&&(f=4-f);b=this.getValidPoints(b,!1,!(e.connectNulls&&!a&&!d));b.forEach(function(h,m){var u=h.plotX,w=h.plotY,C=b[m-1];(h.leftCliff||C&&C.rightCliff)&&!d&&(l=!0);h.isNull&&!J(a)&&0<m?l=!e.connectNulls:h.isNull&&!a?l=!0:(0===m||l?m=[[\"M\",h.plotX,h.plotY]]:c.getPointSpline?\nm=[c.getPointSpline(b,h,m)]:f?(m=1===f?[[\"L\",C.plotX,w]]:2===f?[[\"L\",(C.plotX+u)/2,C.plotY],[\"L\",(C.plotX+u)/2,w]]:[[\"L\",u,C.plotY]],m.push([\"L\",u,w])):m=[[\"L\",u,w]],n.push(h.x),f&&(n.push(h.x),2===f&&n.push(h.x)),p.push.apply(p,m),l=!1)});p.xMap=n;return c.graphPath=p},drawGraph:function(){var b=this,a=this.options,d=(this.gappedPath||this.getGraphPath).call(this),c=this.chart.styledMode,e=[[\"graph\",\"highcharts-graph\"]];c||e[0].push(a.lineColor||this.color||\"#cccccc\",a.dashStyle);e=b.getZonesGraphs(e);\ne.forEach(function(e,f){var h=e[0],p=b[h],n=p?\"animate\":\"attr\";p?(p.endX=b.preventGraphAnimation?null:d.xMap,p.animate({d:d})):d.length&&(b[h]=p=b.chart.renderer.path(d).addClass(e[1]).attr({zIndex:1}).add(b.group));p&&!c&&(h={stroke:e[2],\"stroke-width\":a.lineWidth,fill:b.fillGraph&&b.color||\"none\"},e[3]?h.dashstyle=e[3]:\"square\"!==a.linecap&&(h[\"stroke-linecap\"]=h[\"stroke-linejoin\"]=\"round\"),p[n](h).shadow(2>f&&a.shadow));p&&(p.startX=d.xMap,p.isArea=d.isArea)})},getZonesGraphs:function(b){this.zones.forEach(function(a,\nd){d=[\"zone-graph-\"+d,\"highcharts-graph highcharts-zone-graph-\"+d+\" \"+(a.className||\"\")];this.chart.styledMode||d.push(a.color||this.color,a.dashStyle||this.options.dashStyle);b.push(d)},this);return b},applyZones:function(){var b=this,a=this.chart,d=a.renderer,c=this.zones,e,f,h=this.clips||[],p,l=this.graph,u=this.area,w=Math.max(a.chartWidth,a.chartHeight),C=this[(this.zoneAxis||\"y\")+\"Axis\"],g=a.inverted,r,F,q,t=!1,B,k;if(c.length&&(l||u)&&C&&\"undefined\"!==typeof C.min){var z=C.reversed;var O=\nC.horiz;l&&!this.showLine&&l.hide();u&&u.hide();var L=C.getExtremes();c.forEach(function(c,n){e=z?O?a.plotWidth:0:O?0:C.toPixels(L.min)||0;e=y(m(f,e),0,w);f=y(Math.round(C.toPixels(m(c.value,L.max),!0)||0),0,w);t&&(e=f=C.toPixels(L.max));r=Math.abs(e-f);F=Math.min(e,f);q=Math.max(e,f);C.isXAxis?(p={x:g?q:F,y:0,width:r,height:w},O||(p.x=a.plotHeight-p.x)):(p={x:0,y:g?q:F,width:w,height:r},O&&(p.y=a.plotWidth-p.y));g&&d.isVML&&(p=C.isXAxis?{x:0,y:z?F:q,height:p.width,width:a.chartWidth}:{x:p.y-a.plotLeft-\na.spacingBox.x,y:0,width:p.height,height:a.chartHeight});h[n]?h[n].animate(p):h[n]=d.clipRect(p);B=b[\"zone-area-\"+n];k=b[\"zone-graph-\"+n];l&&k&&k.clip(h[n]);u&&B&&B.clip(h[n]);t=c.value>L.max;b.resetZones&&0===f&&(f=void 0)});this.clips=h}else b.visible&&(l&&l.show(!0),u&&u.show(!0))},invertGroups:function(b){function a(){[\"group\",\"markerGroup\"].forEach(function(a){d[a]&&(c.renderer.isVML&&d[a].attr({width:d.yAxis.len,height:d.xAxis.len}),d[a].width=d.yAxis.len,d[a].height=d.xAxis.len,d[a].invert(d.isRadialSeries?\n!1:b))})}var d=this,c=d.chart;d.xAxis&&(d.eventsToUnbind.push(K(c,\"resize\",a)),a(),d.invertGroups=a)},plotGroup:function(b,a,d,c,e){var f=this[b],h=!f;h&&(this[b]=f=this.chart.renderer.g().attr({zIndex:c||.1}).add(e));f.addClass(\"highcharts-\"+a+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(J(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(f.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);f.attr({visibility:d})[h?\"attr\":\n\"animate\"](this.getPlotBox());return f},getPlotBox:function(){var b=this.chart,a=this.xAxis,d=this.yAxis;b.inverted&&(a=d,d=this.xAxis);return{translateX:a?a.left:b.plotLeft,translateY:d?d.top:b.plotTop,scaleX:1,scaleY:1}},removeEvents:function(b){b?this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(b){b()}),this.eventsToUnbind.length=0):u(this)},render:function(){var b=this,a=b.chart,d=b.options,c=!b.finishedAnimating&&a.renderer.isSVG&&G(d.animation).duration,e=b.visible?\"inherit\":\n\"hidden\",f=d.zIndex,h=b.hasRendered,p=a.seriesGroup,l=a.inverted;q(this,\"render\");var m=b.plotGroup(\"group\",\"series\",e,f,p);b.markerGroup=b.plotGroup(\"markerGroup\",\"markers\",e,f,p);c&&b.animate&&b.animate(!0);m.inverted=b.isCartesian||b.invertable?l:!1;b.drawGraph&&(b.drawGraph(),b.applyZones());b.visible&&b.drawPoints();b.drawDataLabels&&b.drawDataLabels();b.redrawPoints&&b.redrawPoints();b.drawTracker&&!1!==b.options.enableMouseTracking&&b.drawTracker();b.invertGroups(l);!1===d.clip||b.sharedClipKey||\nh||m.clip(a.clipRect);c&&b.animate&&b.animate();h||(b.animationTimeout=w(function(){b.afterAnimate()},c||0));b.isDirty=!1;b.hasRendered=!0;q(b,\"afterRender\")},redraw:function(){var b=this.chart,a=this.isDirty||this.isDirtyData,d=this.group,c=this.xAxis,e=this.yAxis;d&&(b.inverted&&d.attr({width:b.plotWidth,height:b.plotHeight}),d.animate({translateX:m(c&&c.left,b.plotLeft),translateY:m(e&&e.top,b.plotTop)}));this.translate();this.render();a&&delete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(b,\na){var d=this.xAxis,c=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?d.len-b.chartY+d.pos:b.chartX-d.pos,plotY:e?c.len-b.chartX+c.pos:b.chartY-c.pos},a,b)},buildKDTree:function(b){function a(b,c,e){var f;if(f=b&&b.length){var h=d.kdAxisArray[c%e];b.sort(function(b,a){return b[h]-a[h]});f=Math.floor(f/2);return{point:b[f],left:a(b.slice(0,f),c+1,e),right:a(b.slice(f+1),c+1,e)}}}this.buildingKdTree=!0;var d=this,c=-1<d.options.findNearestPointBy.indexOf(\"y\")?2:1;delete d.kdTree;\nw(function(){d.kdTree=a(d.getValidPoints(null,!d.directTouch),c,c);d.buildingKdTree=!1},d.options.kdNow||b&&\"touchstart\"===b.type?0:1)},searchKDTree:function(b,a,d){function c(b,a,d,n){var l=a.point,m=e.kdAxisArray[d%n],u=l;var w=J(b[f])&&J(l[f])?Math.pow(b[f]-l[f],2):null;var C=J(b[h])&&J(l[h])?Math.pow(b[h]-l[h],2):null;C=(w||0)+(C||0);l.dist=J(C)?Math.sqrt(C):Number.MAX_VALUE;l.distX=J(w)?Math.sqrt(w):Number.MAX_VALUE;m=b[m]-l[m];C=0>m?\"left\":\"right\";w=0>m?\"right\":\"left\";a[C]&&(C=c(b,a[C],d+1,\nn),u=C[p]<u[p]?C:l);a[w]&&Math.sqrt(m*m)<u[p]&&(b=c(b,a[w],d+1,n),u=b[p]<u[p]?b:u);return u}var e=this,f=this.kdAxisArray[0],h=this.kdAxisArray[1],p=a?\"distX\":\"dist\";a=-1<e.options.findNearestPointBy.indexOf(\"y\")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree(d);if(this.kdTree)return c(b,this.kdTree,a,a)},pointPlacementToXValue:function(){var b=this.options,d=b.pointRange,c=this.xAxis;b=b.pointPlacement;\"between\"===b&&(b=c.reversed?-.5:.5);return a(b)?b*m(d,c.pointRange):0},isPointInside:function(b){return\"undefined\"!==\ntypeof b.plotY&&\"undefined\"!==typeof b.plotX&&0<=b.plotY&&b.plotY<=this.yAxis.len&&0<=b.plotX&&b.plotX<=this.xAxis.len}});\"\"});P(A,\"parts/Stacking.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/StackingAxis.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=v.correctFloat,G=v.defined,N=v.destroyObjectProperties,M=v.format,y=v.pick;\"\";v=g.Chart;var I=g.Series,J=function(){function g(g,k,t,q,r){var h=g.chart.inverted;this.axis=g;this.isNegative=t;this.options=k=k||{};this.x=q;this.total=\nnull;this.points={};this.stack=r;this.rightCliff=this.leftCliff=0;this.alignOptions={align:k.align||(h?t?\"left\":\"right\":\"center\"),verticalAlign:k.verticalAlign||(h?\"middle\":t?\"bottom\":\"top\"),y:k.y,x:k.x};this.textAlign=k.textAlign||(h?t?\"right\":\"left\":\"center\")}g.prototype.destroy=function(){N(this,this.axis)};g.prototype.render=function(g){var k=this.axis.chart,t=this.options,q=t.format;q=q?M(q,this,k):t.formatter.call(this);this.label?this.label.attr({text:q,visibility:\"hidden\"}):(this.label=k.renderer.label(q,\nnull,null,t.shape,null,null,t.useHTML,!1,\"stack-labels\"),q={r:t.borderRadius||0,text:q,rotation:t.rotation,padding:y(t.padding,5),visibility:\"hidden\"},k.styledMode||(q.fill=t.backgroundColor,q.stroke=t.borderColor,q[\"stroke-width\"]=t.borderWidth,this.label.css(t.style)),this.label.attr(q),this.label.added||this.label.add(g));this.label.labelrank=k.plotHeight};g.prototype.setOffset=function(g,k,t,q,r){var h=this.axis,f=h.chart;q=h.translate(h.stacking.usePercentage?100:q?q:this.total,0,0,0,1);t=h.translate(t?\nt:0);t=G(q)&&Math.abs(q-t);g=y(r,f.xAxis[0].translate(this.x))+g;h=G(q)&&this.getStackBox(f,this,g,q,k,t,h);k=this.label;t=this.isNegative;g=\"justify\"===y(this.options.overflow,\"justify\");var a=this.textAlign;k&&h&&(r=k.getBBox(),q=k.padding,a=\"left\"===a?f.inverted?-q:q:\"right\"===a?r.width:f.inverted&&\"center\"===a?r.width/2:f.inverted?t?r.width+q:-q:r.width/2,t=f.inverted?r.height/2:t?-q:r.height,this.alignOptions.x=y(this.options.x,0),this.alignOptions.y=y(this.options.y,0),h.x-=a,h.y-=t,k.align(this.alignOptions,\nnull,h),f.isInsidePlot(k.alignAttr.x+a-this.alignOptions.x,k.alignAttr.y+t-this.alignOptions.y)?k.show():(k.alignAttr.y=-9999,g=!1),g&&I.prototype.justifyDataLabel.call(this.axis,k,this.alignOptions,k.alignAttr,r,h),k.attr({x:k.alignAttr.x,y:k.alignAttr.y}),y(!g&&this.options.crop,!0)&&((f=f.isInsidePlot(k.x-q+k.width,k.y)&&f.isInsidePlot(k.x+q,k.y))||k.hide()))};g.prototype.getStackBox=function(g,k,t,q,r,h,f){var a=k.axis.reversed,l=g.inverted,e=f.height+f.pos-(l?g.plotLeft:g.plotTop);k=k.isNegative&&\n!a||!k.isNegative&&a;return{x:l?k?q-f.right:q-h+f.pos-g.plotLeft:t+g.xAxis[0].transB-g.plotLeft,y:l?f.height-t-r:k?e-q-h:e-q,width:l?h:r,height:l?r:h}};return g}();v.prototype.getStacks=function(){var g=this,k=g.inverted;g.yAxis.forEach(function(g){g.stacking&&g.stacking.stacks&&g.hasVisibleSeries&&(g.stacking.oldStacks=g.stacking.stacks)});g.series.forEach(function(z){var t=z.xAxis&&z.xAxis.options||{};!z.options.stacking||!0!==z.visible&&!1!==g.options.chart.ignoreHiddenSeries||(z.stackKey=[z.type,\ny(z.options.stack,\"\"),k?t.top:t.left,k?t.height:t.width].join())})};H.compose(k);I.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var g=this.processedXData,k=this.processedYData,z=[],t=k.length,q=this.options,r=q.threshold,h=y(q.startFromThreshold&&r,0),f=q.stack;q=q.stacking;var a=this.stackKey,l=\"-\"+a,e=this.negStacks,c=this.yAxis,m=c.stacking.stacks,u=c.stacking.oldStacks,L,F;c.stacking.stacksTouched+=1;for(F=\n0;F<t;F++){var w=g[F];var p=k[F];var C=this.getStackIndicator(C,w,this.index);var O=C.key;var B=(L=e&&p<(h?0:r))?l:a;m[B]||(m[B]={});m[B][w]||(u[B]&&u[B][w]?(m[B][w]=u[B][w],m[B][w].total=null):m[B][w]=new J(c,c.options.stackLabels,L,w,f));B=m[B][w];null!==p?(B.points[O]=B.points[this.index]=[y(B.cumulative,h)],G(B.cumulative)||(B.base=O),B.touched=c.stacking.stacksTouched,0<C.index&&!1===this.singleStacks&&(B.points[O][0]=B.points[this.index+\",\"+w+\",0\"][0])):B.points[O]=B.points[this.index]=null;\n\"percent\"===q?(L=L?a:l,e&&m[L]&&m[L][w]?(L=m[L][w],B.total=L.total=Math.max(L.total,B.total)+Math.abs(p)||0):B.total=K(B.total+(Math.abs(p)||0))):B.total=K(B.total+(p||0));B.cumulative=y(B.cumulative,h)+(p||0);null!==p&&(B.points[O].push(B.cumulative),z[F]=B.cumulative)}\"percent\"===q&&(c.stacking.usePercentage=!0);this.stackedYData=z;c.stacking.oldStacks={}}};I.prototype.modifyStacks=function(){var g=this,k=g.stackKey,z=g.yAxis.stacking.stacks,t=g.processedXData,q,r=g.options.stacking;g[r+\"Stacker\"]&&\n[k,\"-\"+k].forEach(function(h){for(var f=t.length,a,l;f--;)if(a=t[f],q=g.getStackIndicator(q,a,g.index,h),l=(a=z[h]&&z[h][a])&&a.points[q.key])g[r+\"Stacker\"](l,a,f)})};I.prototype.percentStacker=function(g,k,z){k=k.total?100/k.total:0;g[0]=K(g[0]*k);g[1]=K(g[1]*k);this.stackedYData[z]=g[1]};I.prototype.getStackIndicator=function(g,k,z,t){!G(g)||g.x!==k||t&&g.key!==t?g={x:k,index:0,key:t}:g.index++;g.key=[z,k,g.index].join();return g};g.StackItem=J;return g.StackItem});P(A,\"parts/Dynamics.js\",[A[\"parts/Globals.js\"],\nA[\"parts/Point.js\"],A[\"parts/Time.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=v.addEvent,G=v.animate,N=v.createElement,M=v.css,y=v.defined,I=v.erase,J=v.error,E=v.extend,D=v.fireEvent,z=v.isArray,t=v.isNumber,q=v.isObject,r=v.isString,h=v.merge,f=v.objectEach,a=v.pick,l=v.relativeLength,e=v.setAnimation,c=v.splat,m=k.Axis;v=k.Chart;var u=k.Series,L=k.seriesTypes;k.cleanRecursively=function(a,c){var e={};f(a,function(f,h){if(q(a[h],!0)&&!a.nodeType&&c[h])f=k.cleanRecursively(a[h],c[h]),Object.keys(f).length&&\n(e[h]=f);else if(q(a[h])||a[h]!==c[h])e[h]=a[h]});return e};E(v.prototype,{addSeries:function(c,e,f){var h,p=this;c&&(e=a(e,!0),D(p,\"addSeries\",{options:c},function(){h=p.initSeries(c);p.isDirtyLegend=!0;p.linkSeries();h.enabledDataSorting&&h.setData(c.data,!1);D(p,\"afterAddSeries\",{series:h});e&&p.redraw(f)}));return h},addAxis:function(a,c,e,f){return this.createAxis(c?\"xAxis\":\"yAxis\",{axis:a,redraw:e,animation:f})},addColorAxis:function(a,c,e){return this.createAxis(\"colorAxis\",{axis:a,redraw:c,\nanimation:e})},createAxis:function(e,f){var p=this.options,l=\"colorAxis\"===e,u=f.redraw,w=f.animation;f=h(f.axis,{index:this[e].length,isX:\"xAxis\"===e});var d=l?new k.ColorAxis(this,f):new m(this,f);p[e]=c(p[e]||{});p[e].push(f);l&&(this.isDirtyLegend=!0,this.axes.forEach(function(b){b.series=[]}),this.series.forEach(function(b){b.bindAxes();b.isDirtyData=!0}));a(u,!0)&&this.redraw(w);return d},showLoading:function(c){var e=this,f=e.options,h=e.loadingDiv,l=f.loading,m=function(){h&&M(h,{left:e.plotLeft+\n\"px\",top:e.plotTop+\"px\",width:e.plotWidth+\"px\",height:e.plotHeight+\"px\"})};h||(e.loadingDiv=h=N(\"div\",{className:\"highcharts-loading highcharts-loading-hidden\"},null,e.container),e.loadingSpan=N(\"span\",{className:\"highcharts-loading-inner\"},null,h),K(e,\"redraw\",m));h.className=\"highcharts-loading\";e.loadingSpan.innerHTML=a(c,f.lang.loading,\"\");e.styledMode||(M(h,E(l.style,{zIndex:10})),M(e.loadingSpan,l.labelStyle),e.loadingShown||(M(h,{opacity:0,display:\"\"}),G(h,{opacity:l.style.opacity||.5},{duration:l.showDuration||\n0})));e.loadingShown=!0;m()},hideLoading:function(){var a=this.options,c=this.loadingDiv;c&&(c.className=\"highcharts-loading highcharts-loading-hidden\",this.styledMode||G(c,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){M(c,{display:\"none\"})}}));this.loadingShown=!1},propsRequireDirtyBox:\"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow\".split(\" \"),propsRequireReflow:\"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft\".split(\" \"),\npropsRequireUpdateSeries:\"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip\".split(\" \"),collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"zAxis\",\"series\"],update:function(e,m,p,u){var w=this,g={credits:\"addCredits\",title:\"setTitle\",subtitle:\"setSubtitle\",caption:\"setCaption\"},d,b,n,C=e.isResponsiveOptions,q=[];D(w,\"update\",{options:e});C||w.setResponsive(!1,!0);e=k.cleanRecursively(e,w.options);h(!0,w.userOptions,e);if(d=e.chart){h(!0,w.options.chart,d);\"className\"in\nd&&w.setClassName(d.className);\"reflow\"in d&&w.setReflow(d.reflow);if(\"inverted\"in d||\"polar\"in d||\"type\"in d){w.propFromSeries();var F=!0}\"alignTicks\"in d&&(F=!0);f(d,function(a,d){-1!==w.propsRequireUpdateSeries.indexOf(\"chart.\"+d)&&(b=!0);-1!==w.propsRequireDirtyBox.indexOf(d)&&(w.isDirtyBox=!0);C||-1===w.propsRequireReflow.indexOf(d)||(n=!0)});!w.styledMode&&\"style\"in d&&w.renderer.setStyle(d.style)}!w.styledMode&&e.colors&&(this.options.colors=e.colors);e.plotOptions&&h(!0,this.options.plotOptions,\ne.plotOptions);e.time&&this.time===k.time&&(this.time=new H(e.time));f(e,function(a,d){if(w[d]&&\"function\"===typeof w[d].update)w[d].update(a,!1);else if(\"function\"===typeof w[g[d]])w[g[d]](a);\"chart\"!==d&&-1!==w.propsRequireUpdateSeries.indexOf(d)&&(b=!0)});this.collectionsWithUpdate.forEach(function(b){if(e[b]){if(\"series\"===b){var d=[];w[b].forEach(function(b,c){b.options.isInternal||d.push(a(b.options.index,c))})}c(e[b]).forEach(function(a,c){(c=y(a.id)&&w.get(a.id)||w[b][d?d[c]:c])&&c.coll===\nb&&(c.update(a,!1),p&&(c.touched=!0));!c&&p&&w.collectionsWithInit[b]&&(w.collectionsWithInit[b][0].apply(w,[a].concat(w.collectionsWithInit[b][1]||[]).concat([!1])).touched=!0)});p&&w[b].forEach(function(b){b.touched||b.options.isInternal?delete b.touched:q.push(b)})}});q.forEach(function(b){b.remove&&b.remove(!1)});F&&w.axes.forEach(function(b){b.update({},!1)});b&&w.getSeriesOrderByLinks().forEach(function(b){b.chart&&b.update({},!1)},this);e.loading&&h(!0,w.options.loading,e.loading);F=d&&d.width;\nd=d&&d.height;r(d)&&(d=l(d,F||w.chartWidth));n||t(F)&&F!==w.chartWidth||t(d)&&d!==w.chartHeight?w.setSize(F,d,u):a(m,!0)&&w.redraw(u);D(w,\"afterUpdate\",{options:e,redraw:m,animation:u})},setSubtitle:function(a,c){this.applyDescription(\"subtitle\",a);this.layOutTitles(c)},setCaption:function(a,c){this.applyDescription(\"caption\",a);this.layOutTitles(c)}});v.prototype.collectionsWithInit={xAxis:[v.prototype.addAxis,[!0]],yAxis:[v.prototype.addAxis,[!1]],series:[v.prototype.addSeries]};E(g.prototype,{update:function(c,\ne,f,h){function p(){l.applyOptions(c);var h=b&&l.hasDummyGraphic;h=null===l.y?!h:h;b&&h&&(l.graphic=b.destroy(),delete l.hasDummyGraphic);q(c,!0)&&(b&&b.element&&c&&c.marker&&\"undefined\"!==typeof c.marker.symbol&&(l.graphic=b.destroy()),c&&c.dataLabels&&l.dataLabel&&(l.dataLabel=l.dataLabel.destroy()),l.connector&&(l.connector=l.connector.destroy()));n=l.index;d.updateParallelArrays(l,n);u.data[n]=q(u.data[n],!0)||q(c,!0)?l.options:a(c,u.data[n]);d.isDirty=d.isDirtyData=!0;!d.fixedBox&&d.hasCartesianSeries&&\n(m.isDirtyBox=!0);\"point\"===u.legendType&&(m.isDirtyLegend=!0);e&&m.redraw(f)}var l=this,d=l.series,b=l.graphic,n,m=d.chart,u=d.options;e=a(e,!0);!1===h?p():l.firePointEvent(\"update\",{options:c},p)},remove:function(a,c){this.series.removePoint(this.series.data.indexOf(this),a,c)}});E(u.prototype,{addPoint:function(c,e,f,h,l){var p=this.options,d=this.data,b=this.chart,n=this.xAxis;n=n&&n.hasNames&&n.names;var m=p.data,u=this.xData,w;e=a(e,!0);var g={series:this};this.pointClass.prototype.applyOptions.apply(g,\n[c]);var C=g.x;var r=u.length;if(this.requireSorting&&C<u[r-1])for(w=!0;r&&u[r-1]>C;)r--;this.updateParallelArrays(g,\"splice\",r,0,0);this.updateParallelArrays(g,r);n&&g.name&&(n[C]=g.name);m.splice(r,0,c);w&&(this.data.splice(r,0,null),this.processData());\"point\"===p.legendType&&this.generatePoints();f&&(d[0]&&d[0].remove?d[0].remove(!1):(d.shift(),this.updateParallelArrays(g,\"shift\"),m.shift()));!1!==l&&D(this,\"addPoint\",{point:g});this.isDirtyData=this.isDirty=!0;e&&b.redraw(h)},removePoint:function(c,\nf,h){var p=this,l=p.data,m=l[c],d=p.points,b=p.chart,n=function(){d&&d.length===l.length&&d.splice(c,1);l.splice(c,1);p.options.data.splice(c,1);p.updateParallelArrays(m||{series:p},\"splice\",c,1);m&&m.destroy();p.isDirty=!0;p.isDirtyData=!0;f&&b.redraw()};e(h,b);f=a(f,!0);m?m.firePointEvent(\"remove\",null,n):n()},remove:function(c,e,f,h){function p(){l.destroy(h);l.remove=null;d.isDirtyLegend=d.isDirtyBox=!0;d.linkSeries();a(c,!0)&&d.redraw(e)}var l=this,d=l.chart;!1!==f?D(l,\"remove\",null,p):p()},\nupdate:function(c,e){c=k.cleanRecursively(c,this.userOptions);D(this,\"update\",{options:c});var f=this,l=f.chart,m=f.userOptions,u=f.initialType||f.type,d=c.type||m.type||l.options.chart.type,b=!(this.hasDerivedData||c.dataGrouping||d&&d!==this.type||\"undefined\"!==typeof c.pointStart||c.pointInterval||c.pointIntervalUnit||c.keys),n=L[u].prototype,w,g=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"],r=[\"eventOptions\",\"navigatorSeries\",\"baseSeries\"],q=f.finishedAnimating&&{animation:!1},t=\n{};b&&(r.push(\"data\",\"isDirtyData\",\"points\",\"processedXData\",\"processedYData\",\"xIncrement\",\"_hasPointMarkers\",\"_hasPointLabels\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\"),!1!==c.visible&&r.push(\"area\",\"graph\"),f.parallelArrays.forEach(function(b){r.push(b+\"Data\")}),c.data&&(c.dataSorting&&E(f.options.dataSorting,c.dataSorting),this.setData(c.data,!1)));c=h(m,q,{index:\"undefined\"===typeof m.index?f.index:m.index,pointStart:a(m.pointStart,f.xData[0])},!b&&{data:f.options.data},c);b&&c.data&&(c.data=\nf.options.data);r=g.concat(r);r.forEach(function(b){r[b]=f[b];delete f[b]});f.remove(!1,null,!1,!0);for(w in n)f[w]=void 0;L[d||u]?E(f,L[d||u].prototype):J(17,!0,l,{missingModuleFor:d||u});r.forEach(function(b){f[b]=r[b]});f.init(l,c);if(b&&this.points){var F=f.options;!1===F.visible?(t.graphic=1,t.dataLabel=1):f._hasPointLabels||(d=F.marker,n=F.dataLabels,d&&(!1===d.enabled||\"symbol\"in d)&&(t.graphic=1),n&&!1===n.enabled&&(t.dataLabel=1));this.points.forEach(function(b){b&&b.series&&(b.resolveColor(),\nObject.keys(t).length&&b.destroyElements(t),!1===F.showInLegend&&b.legendItem&&l.legend.destroyItem(b))},this)}c.zIndex!==m.zIndex&&g.forEach(function(b){f[b]&&f[b].attr({zIndex:c.zIndex})});f.initialType=u;l.linkSeries();D(this,\"afterUpdate\");a(e,!0)&&l.redraw(b?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name=a;this.chart.isDirtyLegend=!0}});E(m.prototype,{update:function(c,e){var p=this.chart,l=c&&c.events||{};c=h(this.userOptions,c);p.options[this.coll].indexOf&&\n(p.options[this.coll][p.options[this.coll].indexOf(this.userOptions)]=c);f(p.options[this.coll].events,function(a,c){\"undefined\"===typeof l[c]&&(l[c]=void 0)});this.destroy(!0);this.init(p,E(c,{events:l}));p.isDirtyBox=!0;a(e,!0)&&p.redraw()},remove:function(c){for(var e=this.chart,f=this.coll,h=this.series,l=h.length;l--;)h[l]&&h[l].remove(!1);I(e.axes,this);I(e[f],this);z(e.options[f])?e.options[f].splice(this.options.index,1):delete e.options[f];e[f].forEach(function(a,d){a.options.index=a.userOptions.index=\nd});this.destroy();e.isDirtyBox=!0;a(c,!0)&&e.redraw()},setTitle:function(a,c){this.update({title:a},c)},setCategories:function(a,c){this.update({categories:a},c)}})});P(A,\"parts/AreaSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=g.parse,G=v.objectEach,N=v.pick;g=v.seriesType;var M=k.Series;g(\"area\",\"line\",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(g){var k=[],y=[],v=this.xAxis,D=this.yAxis,\nz=D.stacking.stacks[this.stackKey],t={},q=this.index,r=D.series,h=r.length,f=N(D.options.reversedStacks,!0)?1:-1,a;g=g||this.points;if(this.options.stacking){for(a=0;a<g.length;a++)g[a].leftNull=g[a].rightNull=void 0,t[g[a].x]=g[a];G(z,function(a,c){null!==a.total&&y.push(c)});y.sort(function(a,c){return a-c});var l=r.map(function(a){return a.visible});y.forEach(function(e,c){var m=0,u,g;if(t[e]&&!t[e].isNull)k.push(t[e]),[-1,1].forEach(function(m){var w=1===m?\"rightNull\":\"leftNull\",p=0,C=z[y[c+m]];\nif(C)for(a=q;0<=a&&a<h;)u=C.points[a],u||(a===q?t[e][w]=!0:l[a]&&(g=z[e].points[a])&&(p-=g[1]-g[0])),a+=f;t[e][1===m?\"rightCliff\":\"leftCliff\"]=p});else{for(a=q;0<=a&&a<h;){if(u=z[e].points[a]){m=u[1];break}a+=f}m=D.translate(m,0,1,0,1);k.push({isNull:!0,plotX:v.translate(e,0,0,0,1),x:e,plotY:m,yBottom:m})}})}return k},getGraphPath:function(g){var k=M.prototype.getGraphPath,y=this.options,v=y.stacking,D=this.yAxis,z,t=[],q=[],r=this.index,h=D.stacking.stacks[this.stackKey],f=y.threshold,a=Math.round(D.getThreshold(y.threshold));\ny=N(y.connectNulls,\"percent\"===v);var l=function(e,l,m){var u=g[e];e=v&&h[u.x].points[r];var p=u[m+\"Null\"]||0;m=u[m+\"Cliff\"]||0;u=!0;if(m||p){var C=(p?e[0]:e[1])+m;var k=e[0]+m;u=!!p}else!v&&g[l]&&g[l].isNull&&(C=k=f);\"undefined\"!==typeof C&&(q.push({plotX:c,plotY:null===C?a:D.getThreshold(C),isNull:u,isCliff:!0}),t.push({plotX:c,plotY:null===k?a:D.getThreshold(k),doCurve:!1}))};g=g||this.points;v&&(g=this.getStackPoints(g));for(z=0;z<g.length;z++){v||(g[z].leftCliff=g[z].rightCliff=g[z].leftNull=\ng[z].rightNull=void 0);var e=g[z].isNull;var c=N(g[z].rectPlotX,g[z].plotX);var m=N(g[z].yBottom,a);if(!e||y)y||l(z,z-1,\"left\"),e&&!v&&y||(q.push(g[z]),t.push({x:z,plotX:c,plotY:m})),y||l(z,z+1,\"right\")}z=k.call(this,q,!0,!0);t.reversed=!0;e=k.call(this,t,!0,!0);(m=e[0])&&\"M\"===m[0]&&(e[0]=[\"L\",m[1],m[2]]);e=z.concat(e);k=k.call(this,q,!1,y);e.xMap=z.xMap;this.areaPath=e;return k},drawGraph:function(){this.areaPath=[];M.prototype.drawGraph.apply(this);var g=this,k=this.areaPath,v=this.options,E=[[\"area\",\n\"highcharts-area\",this.color,v.fillColor]];this.zones.forEach(function(k,z){E.push([\"zone-area-\"+z,\"highcharts-area highcharts-zone-area-\"+z+\" \"+k.className,k.color||g.color,k.fillColor||v.fillColor])});E.forEach(function(y){var z=y[0],t=g[z],q=t?\"animate\":\"attr\",r={};t?(t.endX=g.preventGraphAnimation?null:k.xMap,t.animate({d:k})):(r.zIndex=0,t=g[z]=g.chart.renderer.path(k).addClass(y[1]).add(g.group),t.isArea=!0);g.chart.styledMode||(r.fill=N(y[3],K(y[2]).setOpacity(N(v.fillOpacity,.75)).get()));\nt[q](r);t.startX=k.xMap;t.shiftUnit=v.step?2:1})},drawLegendSymbol:H.drawRectangle});\"\"});P(A,\"parts/SplineSeries.js\",[A[\"parts/Utilities.js\"]],function(k){var g=k.pick;k=k.seriesType;k(\"spline\",\"line\",{},{getPointSpline:function(k,v,K){var G=v.plotX||0,N=v.plotY||0,M=k[K-1];K=k[K+1];if(M&&!M.isNull&&!1!==M.doCurve&&!v.isCliff&&K&&!K.isNull&&!1!==K.doCurve&&!v.isCliff){k=M.plotY||0;var y=K.plotX||0;K=K.plotY||0;var I=0;var J=(1.5*G+(M.plotX||0))/2.5;var E=(1.5*N+k)/2.5;y=(1.5*G+y)/2.5;var D=(1.5*\nN+K)/2.5;y!==J&&(I=(D-E)*(y-G)/(y-J)+N-D);E+=I;D+=I;E>k&&E>N?(E=Math.max(k,N),D=2*N-E):E<k&&E<N&&(E=Math.min(k,N),D=2*N-E);D>K&&D>N?(D=Math.max(K,N),E=2*N-D):D<K&&D<N&&(D=Math.min(K,N),E=2*N-D);v.rightContX=y;v.rightContY=D}v=[\"C\",g(M.rightContX,M.plotX,0),g(M.rightContY,M.plotY,0),g(J,G,0),g(E,N,0),G,N];M.rightContX=M.rightContY=void 0;return v}});\"\"});P(A,\"parts/AreaSplineSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(k,g,H){H=H.seriesType;var v=\nk.seriesTypes.area.prototype;H(\"areaspline\",\"spline\",k.defaultPlotOptions.area,{getStackPoints:v.getStackPoints,getGraphPath:v.getGraphPath,drawGraph:v.drawGraph,drawLegendSymbol:g.drawRectangle});\"\"});P(A,\"parts/ColumnSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Color.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){\"\";var K=g.parse,G=v.animObject,N=v.clamp,M=v.defined,y=v.extend,I=v.isNumber,J=v.merge,E=v.pick;g=v.seriesType;var D=k.Series;g(\"column\",\"line\",{borderRadius:0,\ngroupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},select:{color:\"#cccccc\",borderColor:\"#000000\"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:\"#ffffff\"},{cropShoulder:0,directTouch:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],negStacks:!0,init:function(){D.prototype.init.apply(this,arguments);var g=this,k=g.chart;\nk.hasRendered&&k.series.forEach(function(k){k.type===g.type&&(k.isDirty=!0)})},getColumnMetrics:function(){var g=this,k=g.options,q=g.xAxis,r=g.yAxis,h=q.options.reversedStacks;h=q.reversed&&!h||!q.reversed&&h;var f,a={},l=0;!1===k.grouping?l=1:g.chart.series.forEach(function(c){var e=c.yAxis,h=c.options;if(c.type===g.type&&(c.visible||!g.chart.options.chart.ignoreHiddenSeries)&&r.len===e.len&&r.pos===e.pos){if(h.stacking){f=c.stackKey;\"undefined\"===typeof a[f]&&(a[f]=l++);var m=a[f]}else!1!==h.grouping&&\n(m=l++);c.columnIndex=m}});var e=Math.min(Math.abs(q.transA)*(q.ordinal&&q.ordinal.slope||k.pointRange||q.closestPointRange||q.tickInterval||1),q.len),c=e*k.groupPadding,m=(e-2*c)/(l||1);k=Math.min(k.maxPointWidth||q.len,E(k.pointWidth,m*(1-2*k.pointPadding)));g.columnMetrics={width:k,offset:(m-k)/2+(c+((g.columnIndex||0)+(h?1:0))*m-e/2)*(h?-1:1)};return g.columnMetrics},crispCol:function(g,k,q,r){var h=this.chart,f=this.borderWidth,a=-(f%2?.5:0);f=f%2?.5:1;h.inverted&&h.renderer.isVML&&(f+=1);this.options.crisp&&\n(q=Math.round(g+q)+a,g=Math.round(g)+a,q-=g);r=Math.round(k+r)+f;a=.5>=Math.abs(k)&&.5<r;k=Math.round(k)+f;r-=k;a&&r&&(--k,r+=1);return{x:g,y:k,width:q,height:r}},translate:function(){var g=this,k=g.chart,q=g.options,r=g.dense=2>g.closestPointRange*g.xAxis.transA;r=g.borderWidth=E(q.borderWidth,r?0:1);var h=g.xAxis,f=g.yAxis,a=q.threshold,l=g.translatedThreshold=f.getThreshold(a),e=E(q.minPointLength,5),c=g.getColumnMetrics(),m=c.width,u=g.barW=Math.max(m,1+2*r),L=g.pointXOffset=c.offset,F=g.dataMin,\nw=g.dataMax;k.inverted&&(l-=.5);q.pointPadding&&(u=Math.ceil(u));D.prototype.translate.apply(g);g.points.forEach(function(c){var p=E(c.yBottom,l),r=999+Math.abs(p),q=m,d=c.plotX;r=N(c.plotY,-r,f.len+r);var b=c.plotX+L,n=u,x=Math.min(r,p),t=Math.max(r,p)-x;if(e&&Math.abs(t)<e){t=e;var z=!f.reversed&&!c.negative||f.reversed&&c.negative;I(a)&&I(w)&&c.y===a&&w<=a&&(f.min||0)<a&&F!==w&&(z=!z);x=Math.abs(x-l)>e?p-e:l-(z?e:0)}M(c.options.pointWidth)&&(q=n=Math.ceil(c.options.pointWidth),b-=Math.round((q-\nm)/2));c.barX=b;c.pointWidth=q;c.tooltipPos=k.inverted?[f.len+f.pos-k.plotLeft-r,h.len+h.pos-k.plotTop-(d||0)-L-n/2,t]:[b+n/2,r+f.pos-k.plotTop,t];c.shapeType=g.pointClass.prototype.shapeType||\"rect\";c.shapeArgs=g.crispCol.apply(g,c.isNull?[b,l,n,0]:[b,x,n,t])})},getSymbol:k.noop,drawLegendSymbol:H.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(g,k){var q=this.options,r=this.pointAttrToOptions||{};var h=r.stroke||\n\"borderColor\";var f=r[\"stroke-width\"]||\"borderWidth\",a=g&&g.color||this.color,l=g&&g[h]||q[h]||this.color||a,e=g&&g[f]||q[f]||this[f]||0;r=g&&g.options.dashStyle||q.dashStyle;var c=E(g&&g.opacity,q.opacity,1);if(g&&this.zones.length){var m=g.getZone();a=g.options.color||m&&(m.color||g.nonZonedColor)||this.color;m&&(l=m.borderColor||l,r=m.dashStyle||r,e=m.borderWidth||e)}k&&g&&(g=J(q.states[k],g.options.states&&g.options.states[k]||{}),k=g.brightness,a=g.color||\"undefined\"!==typeof k&&K(a).brighten(g.brightness).get()||\na,l=g[h]||l,e=g[f]||e,r=g.dashStyle||r,c=E(g.opacity,c));h={fill:a,stroke:l,\"stroke-width\":e,opacity:c};r&&(h.dashstyle=r);return h},drawPoints:function(){var g=this,k=this.chart,q=g.options,r=k.renderer,h=q.animationLimit||250,f;g.points.forEach(function(a){var l=a.graphic,e=!!l,c=l&&k.pointCount<h?\"animate\":\"attr\";if(I(a.plotY)&&null!==a.y){f=a.shapeArgs;l&&a.hasNewShapeType()&&(l=l.destroy());g.enabledDataSorting&&(a.startXPos=g.xAxis.reversed?-(f?f.width:0):g.xAxis.width);l||(a.graphic=l=r[a.shapeType](f).add(a.group||\ng.group))&&g.enabledDataSorting&&k.hasRendered&&k.pointCount<h&&(l.attr({x:a.startXPos}),e=!0,c=\"animate\");if(l&&e)l[c](J(f));if(q.borderRadius)l[c]({r:q.borderRadius});k.styledMode||l[c](g.pointAttribs(a,a.selected&&\"select\")).shadow(!1!==a.allowShadow&&q.shadow,null,q.stacking&&!q.borderRadius);l.addClass(a.getClassName(),!0)}else l&&(a.graphic=l.destroy())})},animate:function(g){var k=this,q=this.yAxis,r=k.options,h=this.chart.inverted,f={},a=h?\"translateX\":\"translateY\";if(g)f.scaleY=.001,g=N(q.toPixels(r.threshold),\nq.pos,q.pos+q.len),h?f.translateX=g-q.len:f.translateY=g,k.clipBox&&k.setClip(),k.group.attr(f);else{var l=k.group.attr(a);k.group.animate({scaleY:1},y(G(k.options.animation),{step:function(e,c){k.group&&(f[a]=l+c.pos*(q.pos-l),k.group.attr(f))}}))}},remove:function(){var g=this,k=g.chart;k.hasRendered&&k.series.forEach(function(k){k.type===g.type&&(k.isDirty=!0)});D.prototype.remove.apply(g,arguments)}});\"\"});P(A,\"parts/BarSeries.js\",[A[\"parts/Utilities.js\"]],function(k){k=k.seriesType;k(\"bar\",\"column\",\nnull,{inverted:!0});\"\"});P(A,\"parts/ScatterSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent;g=g.seriesType;var v=k.Series;g(\"scatter\",\"line\",{lineWidth:0,findNearestPointBy:\"xy\",jitter:{x:0,y:0},marker:{enabled:!0},tooltip:{headerFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <span style=\"font-size: 10px\"> {series.name}</span><br/>',pointFormat:\"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>\"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\n\"markerGroup\",\"dataLabelsGroup\"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&v.prototype.drawGraph.call(this)},applyJitter:function(){var g=this,k=this.options.jitter,v=this.points.length;k&&this.points.forEach(function(G,y){[\"x\",\"y\"].forEach(function(I,J){var E=\"plot\"+I.toUpperCase();if(k[I]&&!G.isNull){var D=g[I+\"Axis\"];var z=k[I]*D.transA;if(D&&!D.isLog){var t=Math.max(0,G[E]-z);D=Math.min(D.len,G[E]+z);J=1E4*Math.sin(y+J*v);G[E]=t+(D-t)*(J-Math.floor(J));\"x\"===I&&(G.clientX=\nG.plotX)}}})})}});H(v,\"afterTranslate\",function(){this.applyJitter&&this.applyJitter()});\"\"});P(A,\"mixins/centered-series.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.isNumber,v=g.pick,K=g.relativeLength,G=k.deg2rad;k.CenteredSeriesMixin={getCenter:function(){var g=this.options,k=this.chart,y=2*(g.slicedOffset||0),G=k.plotWidth-2*y,J=k.plotHeight-2*y,E=g.center,D=Math.min(G,J),z=g.size,t=g.innerSize||0;\"string\"===typeof z&&(z=parseFloat(z));\"string\"===typeof t&&(t=parseFloat(t));\ng=[v(E[0],\"50%\"),v(E[1],\"50%\"),v(z&&0>z?void 0:g.size,\"100%\"),v(t&&0>t?void 0:g.innerSize||0,\"0%\")];k.angular&&(g[3]=0);for(E=0;4>E;++E)z=g[E],k=2>E||2===E&&/%$/.test(z),g[E]=K(z,[G,J,D,g[2]][E])+(k?y:0);g[3]>g[2]&&(g[3]=g[2]);return g},getStartAndEndRadians:function(g,k){g=H(g)?g:0;k=H(k)&&k>g&&360>k-g?k:g+360;return{start:G*(g+-90),end:G*(k+-90)}}}});P(A,\"parts/PieSeries.js\",[A[\"parts/Globals.js\"],A[\"mixins/legend-symbol.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var K=\nv.addEvent,G=v.clamp,A=v.defined,M=v.fireEvent,y=v.isNumber,I=v.merge,J=v.pick,E=v.relativeLength,D=v.seriesType,z=v.setAnimation;v=k.CenteredSeriesMixin;var t=v.getStartAndEndRadians,q=k.noop,r=k.Series;D(\"pie\",\"line\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:\"fixedOffset\",crookDistance:\"70%\",distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,\ninactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],axisTypes:[],pointAttribs:k.seriesTypes.column.prototype.pointAttribs,animate:function(h){var f=this,a=f.points,l=f.startAngleRad;h||a.forEach(function(a){var c=a.graphic,\ne=a.shapeArgs;c&&e&&(c.attr({r:J(a.startR,f.center&&f.center[3]/2),start:l,end:l}),c.animate({r:e.r,start:e.start,end:e.end},f.options.animation))})},hasData:function(){return!!this.processedXData.length},updateTotals:function(){var h,f=0,a=this.points,l=a.length,e=this.options.ignoreHiddenPoint;for(h=0;h<l;h++){var c=a[h];f+=e&&!c.visible?0:c.isNull?0:c.y}this.total=f;for(h=0;h<l;h++)c=a[h],c.percentage=0<f&&(c.visible||!e)?c.y/f*100:0,c.total=f},generatePoints:function(){r.prototype.generatePoints.call(this);\nthis.updateTotals()},getX:function(h,f,a){var l=this.center,e=this.radii?this.radii[a.index]:l[2]/2;h=Math.asin(G((h-l[1])/(e+a.labelDistance),-1,1));return l[0]+(f?-1:1)*Math.cos(h)*(e+a.labelDistance)+(0<a.labelDistance?(f?-1:1)*this.options.dataLabels.padding:0)},translate:function(h){this.generatePoints();var f=0,a=this.options,l=a.slicedOffset,e=l+(a.borderWidth||0),c=t(a.startAngle,a.endAngle),g=this.startAngleRad=c.start;c=(this.endAngleRad=c.end)-g;var u=this.points,k=a.dataLabels.distance;\na=a.ignoreHiddenPoint;var r,w=u.length;h||(this.center=h=this.getCenter());for(r=0;r<w;r++){var p=u[r];var C=g+f*c;if(!a||p.visible)f+=p.percentage/100;var q=g+f*c;p.shapeType=\"arc\";p.shapeArgs={x:h[0],y:h[1],r:h[2]/2,innerR:h[3]/2,start:Math.round(1E3*C)/1E3,end:Math.round(1E3*q)/1E3};p.labelDistance=J(p.options.dataLabels&&p.options.dataLabels.distance,k);p.labelDistance=E(p.labelDistance,p.shapeArgs.r);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,p.labelDistance);q=(q+C)/2;q>1.5*Math.PI?\nq-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);p.slicedTranslation={translateX:Math.round(Math.cos(q)*l),translateY:Math.round(Math.sin(q)*l)};var B=Math.cos(q)*h[2]/2;var d=Math.sin(q)*h[2]/2;p.tooltipPos=[h[0]+.7*B,h[1]+.7*d];p.half=q<-Math.PI/2||q>Math.PI/2?1:0;p.angle=q;C=Math.min(e,p.labelDistance/5);p.labelPosition={natural:{x:h[0]+B+Math.cos(q)*p.labelDistance,y:h[1]+d+Math.sin(q)*p.labelDistance},\"final\":{},alignment:0>p.labelDistance?\"center\":p.half?\"right\":\"left\",connectorPosition:{breakAt:{x:h[0]+\nB+Math.cos(q)*C,y:h[1]+d+Math.sin(q)*C},touchingSliceAt:{x:h[0]+B,y:h[1]+d}}}}M(this,\"afterTranslate\")},drawEmpty:function(){var h=this.options;if(0===this.total){var f=this.center[0];var a=this.center[1];this.graph||(this.graph=this.chart.renderer.circle(f,a,0).addClass(\"highcharts-graph\").add(this.group));this.graph.animate({\"stroke-width\":h.borderWidth,cx:f,cy:a,r:this.center[2]/2,fill:h.fillColor||\"none\",stroke:h.color||\"#cccccc\"},this.options.animation)}else this.graph&&(this.graph=this.graph.destroy())},\nredrawPoints:function(){var h=this,f=h.chart,a=f.renderer,l,e,c,g,u=h.options.shadow;this.drawEmpty();!u||h.shadowGroup||f.styledMode||(h.shadowGroup=a.g(\"shadow\").attr({zIndex:-1}).add(h.group));h.points.forEach(function(m){var k={};e=m.graphic;if(!m.isNull&&e){g=m.shapeArgs;l=m.getTranslate();if(!f.styledMode){var w=m.shadowGroup;u&&!w&&(w=m.shadowGroup=a.g(\"shadow\").add(h.shadowGroup));w&&w.attr(l);c=h.pointAttribs(m,m.selected&&\"select\")}m.delayedRendering?(e.setRadialReference(h.center).attr(g).attr(l),\nf.styledMode||e.attr(c).attr({\"stroke-linejoin\":\"round\"}).shadow(u,w),m.delayedRendering=!1):(e.setRadialReference(h.center),f.styledMode||I(!0,k,c),I(!0,k,g,l),e.animate(k));e.attr({visibility:m.visible?\"inherit\":\"hidden\"});e.addClass(m.getClassName())}else e&&(m.graphic=e.destroy())})},drawPoints:function(){var h=this.chart.renderer;this.points.forEach(function(f){f.graphic&&f.hasNewShapeType()&&(f.graphic=f.graphic.destroy());f.graphic||(f.graphic=h[f.shapeType](f.shapeArgs).add(f.series.group),\nf.delayedRendering=!0)})},searchPoint:q,sortByAngle:function(h,f){h.sort(function(a,h){return\"undefined\"!==typeof a.angle&&(h.angle-a.angle)*f})},drawLegendSymbol:g.drawRectangle,getCenter:v.getCenter,getSymbol:q,drawGraph:null},{init:function(){H.prototype.init.apply(this,arguments);var h=this;h.name=J(h.name,\"Slice\");var f=function(a){h.slice(\"select\"===a.type)};K(h,\"select\",f);K(h,\"unselect\",f);return h},isValid:function(){return y(this.y)&&0<=this.y},setVisible:function(h,f){var a=this,l=a.series,\ne=l.chart,c=l.options.ignoreHiddenPoint;f=J(f,c);h!==a.visible&&(a.visible=a.options.visible=h=\"undefined\"===typeof h?!a.visible:h,l.options.data[l.data.indexOf(a)]=a.options,[\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"].forEach(function(c){if(a[c])a[c][h?\"show\":\"hide\"](!0)}),a.legendItem&&e.legend.colorizeItem(a,h),h||\"hover\"!==a.state||a.setState(\"\"),c&&(l.isDirty=!0),f&&e.redraw())},slice:function(h,f,a){var l=this.series;z(a,l.chart);J(f,!0);this.sliced=this.options.sliced=A(h)?h:!this.sliced;\nl.options.data[l.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(h){var f=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(f.x,f.y,f.r+h,f.r+h,{innerR:f.r-1,start:f.start,end:f.end})},connectorShapes:{fixedOffset:function(h,f,a){var l=f.breakAt;\nf=f.touchingSliceAt;return[[\"M\",h.x,h.y],a.softConnector?[\"C\",h.x+(\"left\"===h.alignment?-5:5),h.y,2*l.x-f.x,2*l.y-f.y,l.x,l.y]:[\"L\",l.x,l.y],[\"L\",f.x,f.y]]},straight:function(h,f){f=f.touchingSliceAt;return[[\"M\",h.x,h.y],[\"L\",f.x,f.y]]},crookedLine:function(h,f,a){f=f.touchingSliceAt;var l=this.series,e=l.center[0],c=l.chart.plotWidth,g=l.chart.plotLeft;l=h.alignment;var u=this.shapeArgs.r;a=E(a.crookDistance,1);c=\"left\"===l?e+u+(c+g-e-u)*(1-a):g+(e-u)*a;a=[\"L\",c,h.y];e=!0;if(\"left\"===l?c>h.x||c<\nf.x:c<h.x||c>f.x)e=!1;h=[[\"M\",h.x,h.y]];e&&h.push(a);h.push([\"L\",f.x,f.y]);return h}},getConnectorPath:function(){var h=this.labelPosition,f=this.series.options.dataLabels,a=f.connectorShape,l=this.connectorShapes;l[a]&&(a=l[a]);return a.call(this,{x:h.final.x,y:h.final.y,alignment:h.alignment},h.connectorPosition,f)}});\"\"});P(A,\"parts/DataLabels.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.animObject,v=g.arrayMax,A=g.clamp,G=g.defined,N=g.extend,M=g.fireEvent,y=g.format,\nI=g.isArray,J=g.merge,E=g.objectEach,D=g.pick,z=g.relativeLength,t=g.splat,q=g.stableSort;g=k.noop;var r=k.Series,h=k.seriesTypes;k.distribute=function(f,a,h){function e(a,c){return a.target-c.target}var c,l=!0,g=f,r=[];var t=0;var w=g.reducedLen||a;for(c=f.length;c--;)t+=f[c].size;if(t>w){q(f,function(a,c){return(c.rank||0)-(a.rank||0)});for(t=c=0;t<=w;)t+=f[c].size,c++;r=f.splice(c-1,f.length)}q(f,e);for(f=f.map(function(a){return{size:a.size,targets:[a.target],align:D(a.align,.5)}});l;){for(c=\nf.length;c--;)l=f[c],t=(Math.min.apply(0,l.targets)+Math.max.apply(0,l.targets))/2,l.pos=A(t-l.size*l.align,0,a-l.size);c=f.length;for(l=!1;c--;)0<c&&f[c-1].pos+f[c-1].size>f[c].pos&&(f[c-1].size+=f[c].size,f[c-1].targets=f[c-1].targets.concat(f[c].targets),f[c-1].align=.5,f[c-1].pos+f[c-1].size>a&&(f[c-1].pos=a-f[c-1].size),f.splice(c,1),l=!0)}g.push.apply(g,r);c=0;f.some(function(e){var f=0;if(e.targets.some(function(){g[c].pos=e.pos+f;if(\"undefined\"!==typeof h&&Math.abs(g[c].pos-g[c].target)>h)return g.slice(0,\nc+1).forEach(function(a){delete a.pos}),g.reducedLen=(g.reducedLen||a)-.1*a,g.reducedLen>.1*a&&k.distribute(g,a,h),!0;f+=g[c].size;c++}))return!0});q(g,e)};r.prototype.drawDataLabels=function(){function f(a,b){var d=b.filter;return d?(b=d.operator,a=a[d.property],d=d.value,\">\"===b&&a>d||\"<\"===b&&a<d||\">=\"===b&&a>=d||\"<=\"===b&&a<=d||\"==\"===b&&a==d||\"===\"===b&&a===d?!0:!1):!0}function a(a,b){var d=[],c;if(I(a)&&!I(b))d=a.map(function(a){return J(a,b)});else if(I(b)&&!I(a))d=b.map(function(b){return J(a,\nb)});else if(I(a)||I(b))for(c=Math.max(a.length,b.length);c--;)d[c]=J(a[c],b[c]);else d=J(a,b);return d}var h=this,e=h.chart,c=h.options,g=c.dataLabels,u=h.points,k,r=h.hasRendered||0,w=H(c.animation).duration,p=Math.min(w,200),C=!e.renderer.forExport&&D(g.defer,0<p),q=e.renderer;g=a(a(e.options.plotOptions&&e.options.plotOptions.series&&e.options.plotOptions.series.dataLabels,e.options.plotOptions&&e.options.plotOptions[h.type]&&e.options.plotOptions[h.type].dataLabels),g);M(this,\"drawDataLabels\");\nif(I(g)||g.enabled||h._hasPointLabels){var B=h.plotGroup(\"dataLabelsGroup\",\"data-labels\",C&&!r?\"hidden\":\"inherit\",g.zIndex||6);C&&(B.attr({opacity:+r}),r||setTimeout(function(){var a=h.dataLabelsGroup;a&&(h.visible&&B.show(!0),a[c.animation?\"animate\":\"attr\"]({opacity:1},{duration:p}))},w-p));u.forEach(function(d){k=t(a(g,d.dlOptions||d.options&&d.options.dataLabels));k.forEach(function(b,a){var p=b.enabled&&(!d.isNull||d.dataLabelOnNull)&&f(d,b),g=d.dataLabels?d.dataLabels[a]:d.dataLabel,l=d.connectors?\nd.connectors[a]:d.connector,m=D(b.distance,d.labelDistance),n=!g;if(p){var u=d.getLabelConfig();var w=D(b[d.formatPrefix+\"Format\"],b.format);u=G(w)?y(w,u,e):(b[d.formatPrefix+\"Formatter\"]||b.formatter).call(u,b);w=b.style;var k=b.rotation;e.styledMode||(w.color=D(b.color,w.color,h.color,\"#000000\"),\"contrast\"===w.color?(d.contrastColor=q.getContrast(d.color||h.color),w.color=!G(m)&&b.inside||0>m||c.stacking?d.contrastColor:\"#000000\"):delete d.contrastColor,c.cursor&&(w.cursor=c.cursor));var r={r:b.borderRadius||\n0,rotation:k,padding:b.padding,zIndex:1};e.styledMode||(r.fill=b.backgroundColor,r.stroke=b.borderColor,r[\"stroke-width\"]=b.borderWidth);E(r,function(b,a){\"undefined\"===typeof b&&delete r[a]})}!g||p&&G(u)?p&&G(u)&&(g?r.text=u:(d.dataLabels=d.dataLabels||[],g=d.dataLabels[a]=k?q.text(u,0,-9999,b.useHTML).addClass(\"highcharts-data-label\"):q.label(u,0,-9999,b.shape,null,null,b.useHTML,null,\"data-label\"),a||(d.dataLabel=g),g.addClass(\" highcharts-data-label-color-\"+d.colorIndex+\" \"+(b.className||\"\")+\n(b.useHTML?\" highcharts-tracker\":\"\"))),g.options=b,g.attr(r),e.styledMode||g.css(w).shadow(b.shadow),g.added||g.add(B),b.textPath&&!b.useHTML&&(g.setTextPath(d.getDataLabelPath&&d.getDataLabelPath(g)||d.graphic,b.textPath),d.dataLabelPath&&!b.textPath.enabled&&(d.dataLabelPath=d.dataLabelPath.destroy())),h.alignDataLabel(d,g,b,null,n)):(d.dataLabel=d.dataLabel&&d.dataLabel.destroy(),d.dataLabels&&(1===d.dataLabels.length?delete d.dataLabels:delete d.dataLabels[a]),a||delete d.dataLabel,l&&(d.connector=\nd.connector.destroy(),d.connectors&&(1===d.connectors.length?delete d.connectors:delete d.connectors[a])))})})}M(this,\"afterDrawDataLabels\")};r.prototype.alignDataLabel=function(f,a,h,e,c){var g=this,l=this.chart,k=this.isCartesian&&l.inverted,r=this.enabledDataSorting,w=D(f.dlBox&&f.dlBox.centerX,f.plotX,-9999),p=D(f.plotY,-9999),C=a.getBBox(),q=h.rotation,t=h.align,d=l.isInsidePlot(w,Math.round(p),k),b=\"justify\"===D(h.overflow,r?\"none\":\"justify\"),n=this.visible&&!1!==f.visible&&(f.series.forceDL||\nr&&!b||d||h.inside&&e&&l.isInsidePlot(w,k?e.x+1:e.y+e.height-1,k));var x=function(e){r&&g.xAxis&&!b&&g.setDataLabelStartPos(f,a,c,d,e)};if(n){var v=l.renderer.fontMetrics(l.styledMode?void 0:h.style.fontSize,a).b;e=N({x:k?this.yAxis.len-p:w,y:Math.round(k?this.xAxis.len-w:p),width:0,height:0},e);N(h,{width:C.width,height:C.height});q?(b=!1,w=l.renderer.rotCorr(v,q),w={x:e.x+h.x+e.width/2+w.x,y:e.y+h.y+{top:0,middle:.5,bottom:1}[h.verticalAlign]*e.height},x(w),a[c?\"attr\":\"animate\"](w).attr({align:t}),\nx=(q+720)%360,x=180<x&&360>x,\"left\"===t?w.y-=x?C.height:0:\"center\"===t?(w.x-=C.width/2,w.y-=C.height/2):\"right\"===t&&(w.x-=C.width,w.y-=x?0:C.height),a.placed=!0,a.alignAttr=w):(x(e),a.align(h,null,e),w=a.alignAttr);b&&0<=e.height?this.justifyDataLabel(a,h,w,C,e,c):D(h.crop,!0)&&(n=l.isInsidePlot(w.x,w.y)&&l.isInsidePlot(w.x+C.width,w.y+C.height));if(h.shape&&!q)a[c?\"attr\":\"animate\"]({anchorX:k?l.plotWidth-f.plotY:f.plotX,anchorY:k?l.plotHeight-f.plotX:f.plotY})}c&&r&&(a.placed=!1);n||r&&!b||(a.hide(!0),\na.placed=!1)};r.prototype.setDataLabelStartPos=function(f,a,h,e,c){var g=this.chart,l=g.inverted,k=this.xAxis,r=k.reversed,w=l?a.height/2:a.width/2;f=(f=f.pointWidth)?f/2:0;k=l?c.x:r?-w-f:k.width-w+f;c=l?r?this.yAxis.height-w+f:-w-f:c.y;a.startXPos=k;a.startYPos=c;e?\"hidden\"===a.visibility&&(a.show(),a.attr({opacity:0}).animate({opacity:1})):a.attr({opacity:1}).animate({opacity:0},void 0,a.hide);g.hasRendered&&(h&&a.attr({x:a.startXPos,y:a.startYPos}),a.placed=!0)};r.prototype.justifyDataLabel=function(f,\na,h,e,c,g){var l=this.chart,m=a.align,k=a.verticalAlign,w=f.box?0:f.padding||0;var p=h.x+w;if(0>p){\"right\"===m?(a.align=\"left\",a.inside=!0):a.x=-p;var r=!0}p=h.x+e.width-w;p>l.plotWidth&&(\"left\"===m?(a.align=\"right\",a.inside=!0):a.x=l.plotWidth-p,r=!0);p=h.y+w;0>p&&(\"bottom\"===k?(a.verticalAlign=\"top\",a.inside=!0):a.y=-p,r=!0);p=h.y+e.height-w;p>l.plotHeight&&(\"top\"===k?(a.verticalAlign=\"bottom\",a.inside=!0):a.y=l.plotHeight-p,r=!0);r&&(f.placed=!g,f.align(a,null,c));return r};h.pie&&(h.pie.prototype.dataLabelPositioners=\n{radialDistributionY:function(f){return f.top+f.distributeBox.pos},radialDistributionX:function(f,a,h,e){return f.getX(h<a.top+2||h>a.bottom-2?e:h,a.half,a)},justify:function(f,a,h){return h[0]+(f.half?-1:1)*(a+f.labelDistance)},alignToPlotEdges:function(f,a,h,e){f=f.getBBox().width;return a?f+e:h-f-e},alignToConnectors:function(f,a,h,e){var c=0,g;f.forEach(function(a){g=a.dataLabel.getBBox().width;g>c&&(c=g)});return a?c+e:h-c-e}},h.pie.prototype.drawDataLabels=function(){var f=this,a=f.data,h,e=\nf.chart,c=f.options.dataLabels||{},g=c.connectorPadding,u,q=e.plotWidth,t=e.plotHeight,w=e.plotLeft,p=Math.round(e.chartWidth/3),C,y=f.center,B=y[2]/2,d=y[1],b,n,x,z,E=[[],[]],I,H,A,M,K=[0,0,0,0],N=f.dataLabelPositioners,P;f.visible&&(c.enabled||f._hasPointLabels)&&(a.forEach(function(b){b.dataLabel&&b.visible&&b.dataLabel.shortened&&(b.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),b.dataLabel.shortened=!1)}),r.prototype.drawDataLabels.apply(f),a.forEach(function(b){b.dataLabel&&\n(b.visible?(E[b.half].push(b),b.dataLabel._pos=null,!G(c.style.width)&&!G(b.options.dataLabels&&b.options.dataLabels.style&&b.options.dataLabels.style.width)&&b.dataLabel.getBBox().width>p&&(b.dataLabel.css({width:Math.round(.7*p)+\"px\"}),b.dataLabel.shortened=!0)):(b.dataLabel=b.dataLabel.destroy(),b.dataLabels&&1===b.dataLabels.length&&delete b.dataLabels))}),E.forEach(function(a,p){var l=a.length,m=[],u;if(l){f.sortByAngle(a,p-.5);if(0<f.maxLabelDistance){var r=Math.max(0,d-B-f.maxLabelDistance);\nvar C=Math.min(d+B+f.maxLabelDistance,e.plotHeight);a.forEach(function(b){0<b.labelDistance&&b.dataLabel&&(b.top=Math.max(0,d-B-b.labelDistance),b.bottom=Math.min(d+B+b.labelDistance,e.plotHeight),u=b.dataLabel.getBBox().height||21,b.distributeBox={target:b.labelPosition.natural.y-b.top+u/2,size:u,rank:b.y},m.push(b.distributeBox))});r=C+u-r;k.distribute(m,r,r/5)}for(M=0;M<l;M++){h=a[M];x=h.labelPosition;b=h.dataLabel;A=!1===h.visible?\"hidden\":\"inherit\";H=r=x.natural.y;m&&G(h.distributeBox)&&(\"undefined\"===\ntypeof h.distributeBox.pos?A=\"hidden\":(z=h.distributeBox.size,H=N.radialDistributionY(h)));delete h.positionIndex;if(c.justify)I=N.justify(h,B,y);else switch(c.alignTo){case \"connectors\":I=N.alignToConnectors(a,p,q,w);break;case \"plotEdges\":I=N.alignToPlotEdges(b,p,q,w);break;default:I=N.radialDistributionX(f,h,H,r)}b._attr={visibility:A,align:x.alignment};P=h.options.dataLabels||{};b._pos={x:I+D(P.x,c.x)+({left:g,right:-g}[x.alignment]||0),y:H+D(P.y,c.y)-10};x.final.x=I;x.final.y=H;D(c.crop,!0)&&\n(n=b.getBBox().width,r=null,I-n<g&&1===p?(r=Math.round(n-I+g),K[3]=Math.max(r,K[3])):I+n>q-g&&0===p&&(r=Math.round(I+n-q+g),K[1]=Math.max(r,K[1])),0>H-z/2?K[0]=Math.max(Math.round(-H+z/2),K[0]):H+z/2>t&&(K[2]=Math.max(Math.round(H+z/2-t),K[2])),b.sideOverflow=r)}}}),0===v(K)||this.verifyDataLabelOverflow(K))&&(this.placeDataLabels(),this.points.forEach(function(a){P=J(c,a.options.dataLabels);if(u=D(P.connectorWidth,1)){var d;C=a.connector;if((b=a.dataLabel)&&b._pos&&a.visible&&0<a.labelDistance){A=\nb._attr.visibility;if(d=!C)a.connector=C=e.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\"+a.colorIndex+(a.className?\" \"+a.className:\"\")).add(f.dataLabelsGroup),e.styledMode||C.attr({\"stroke-width\":u,stroke:P.connectorColor||a.color||\"#666666\"});C[d?\"attr\":\"animate\"]({d:a.getConnectorPath()});C.attr(\"visibility\",A)}else C&&(a.connector=C.destroy())}}))},h.pie.prototype.placeDataLabels=function(){this.points.forEach(function(f){var a=f.dataLabel,h;a&&f.visible&&((h=a._pos)?\n(a.sideOverflow&&(a._attr.width=Math.max(a.getBBox().width-a.sideOverflow,0),a.css({width:a._attr.width+\"px\",textOverflow:(this.options.dataLabels.style||{}).textOverflow||\"ellipsis\"}),a.shortened=!0),a.attr(a._attr),a[a.moved?\"animate\":\"attr\"](h),a.moved=!0):a&&a.attr({y:-9999}));delete f.distributeBox},this)},h.pie.prototype.alignDataLabel=g,h.pie.prototype.verifyDataLabelOverflow=function(f){var a=this.center,h=this.options,e=h.center,c=h.minSize||80,g=null!==h.size;if(!g){if(null!==e[0])var u=\nMath.max(a[2]-Math.max(f[1],f[3]),c);else u=Math.max(a[2]-f[1]-f[3],c),a[0]+=(f[3]-f[1])/2;null!==e[1]?u=A(u,c,a[2]-Math.max(f[0],f[2])):(u=A(u,c,a[2]-f[0]-f[2]),a[1]+=(f[0]-f[2])/2);u<a[2]?(a[2]=u,a[3]=Math.min(z(h.innerSize||0,u),u),this.translate(a),this.drawDataLabels&&this.drawDataLabels()):g=!0}return g});h.column&&(h.column.prototype.alignDataLabel=function(f,a,h,e,c){var g=this.chart.inverted,l=f.series,k=f.dlBox||f.shapeArgs,q=D(f.below,f.plotY>D(this.translatedThreshold,l.yAxis.len)),w=\nD(h.inside,!!this.options.stacking);k&&(e=J(k),0>e.y&&(e.height+=e.y,e.y=0),k=e.y+e.height-l.yAxis.len,0<k&&k<e.height&&(e.height-=k),g&&(e={x:l.yAxis.len-e.y-e.height,y:l.xAxis.len-e.x-e.width,width:e.height,height:e.width}),w||(g?(e.x+=q?0:e.width,e.width=0):(e.y+=q?e.height:0,e.height=0)));h.align=D(h.align,!g||w?\"center\":q?\"right\":\"left\");h.verticalAlign=D(h.verticalAlign,g||w?\"middle\":q?\"top\":\"bottom\");r.prototype.alignDataLabel.call(this,f,a,h,e,c);h.inside&&f.contrastColor&&a.css({color:f.contrastColor})})});\nP(A,\"modules/overlapping-datalabels.src.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var H=g.addEvent,v=g.fireEvent,A=g.isArray,G=g.objectEach,N=g.pick;k=k.Chart;H(k,\"render\",function(){var g=[];(this.labelCollectors||[]).forEach(function(k){g=g.concat(k())});(this.yAxis||[]).forEach(function(k){k.stacking&&k.options.stackLabels&&!k.options.stackLabels.allowOverlap&&G(k.stacking.stacks,function(k){G(k,function(k){g.push(k.label)})})});(this.series||[]).forEach(function(k){var v=\nk.options.dataLabels;k.visible&&(!1!==v.enabled||k._hasPointLabels)&&(k.nodes||k.points).forEach(function(k){k.visible&&(A(k.dataLabels)?k.dataLabels:k.dataLabel?[k.dataLabel]:[]).forEach(function(v){var y=v.options;v.labelrank=N(y.labelrank,k.labelrank,k.shapeArgs&&k.shapeArgs.height);y.allowOverlap||g.push(v)})})});this.hideOverlappingLabels(g)});k.prototype.hideOverlappingLabels=function(g){var k=this,G=g.length,J=k.renderer,E,D,z,t=!1;var q=function(f){var a,h=f.box?0:f.padding||0,e=a=0,c;if(f&&\n(!f.alignAttr||f.placed)){var g=f.alignAttr||{x:f.attr(\"x\"),y:f.attr(\"y\")};var u=f.parentGroup;f.width||(a=f.getBBox(),f.width=a.width,f.height=a.height,a=J.fontMetrics(null,f.element).h);var k=f.width-2*h;(c={left:\"0\",center:\"0.5\",right:\"1\"}[f.alignValue])?e=+c*k:Math.round(f.x)!==f.translateX&&(e=f.x-f.translateX);return{x:g.x+(u.translateX||0)+h-e,y:g.y+(u.translateY||0)+h-a,width:f.width-2*h,height:f.height-2*h}}};for(D=0;D<G;D++)if(E=g[D])E.oldOpacity=E.opacity,E.newOpacity=1,E.absoluteBox=q(E);\ng.sort(function(f,a){return(a.labelrank||0)-(f.labelrank||0)});for(D=0;D<G;D++){var r=(q=g[D])&&q.absoluteBox;for(E=D+1;E<G;++E){var h=(z=g[E])&&z.absoluteBox;!r||!h||q===z||0===q.newOpacity||0===z.newOpacity||h.x>r.x+r.width||h.x+h.width<r.x||h.y>r.y+r.height||h.y+h.height<r.y||((q.labelrank<z.labelrank?q:z).newOpacity=0)}}g.forEach(function(f){if(f){var a=f.newOpacity;f.oldOpacity!==a&&(f.alignAttr&&f.placed?(f[a?\"removeClass\":\"addClass\"](\"highcharts-data-label-hidden\"),t=!0,f.alignAttr.opacity=\na,f[f.isOld?\"animate\":\"attr\"](f.alignAttr,null,function(){k.styledMode||f.css({pointerEvents:a?\"auto\":\"none\"});f.visibility=a?\"inherit\":\"hidden\";f.placed=!!a}),v(k,\"afterHideOverlappingLabel\")):f.attr({opacity:a}));f.isOld=!0}});t&&v(k,\"afterHideAllOverlappingLabels\")}});P(A,\"parts/Interaction.js\",[A[\"parts/Globals.js\"],A[\"parts/Legend.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,H,v){var A=v.addEvent,G=v.createElement,N=v.css,M=v.defined,y=v.extend,I=v.fireEvent,J=v.isArray,E=v.isFunction,\nD=v.isNumber,z=v.isObject,t=v.merge,q=v.objectEach,r=v.pick;v=k.Chart;var h=k.defaultOptions,f=k.defaultPlotOptions,a=k.hasTouch,l=k.Series,e=k.seriesTypes,c=k.svg;var m=k.TrackerMixin={drawTrackerPoint:function(){var c=this,e=c.chart,f=e.pointer,h=function(a){var c=f.getPointFromEvent(a);\"undefined\"!==typeof c&&(f.isDirectTouch=!0,c.onMouseOver(a))},g;c.points.forEach(function(a){g=J(a.dataLabels)?a.dataLabels:a.dataLabel?[a.dataLabel]:[];a.graphic&&(a.graphic.element.point=a);g.forEach(function(c){c.div?\nc.div.point=a:c.element.point=a})});c._hasTracking||(c.trackerGroups.forEach(function(g){if(c[g]){c[g].addClass(\"highcharts-tracker\").on(\"mouseover\",h).on(\"mouseout\",function(a){f.onTrackerMouseOut(a)});if(a)c[g].on(\"touchstart\",h);!e.styledMode&&c.options.cursor&&c[g].css(N).css({cursor:c.options.cursor})}}),c._hasTracking=!0);I(this,\"afterDrawTracker\")},drawTrackerGraph:function(){var e=this,f=e.options,h=f.trackByArea,g=[].concat(h?e.areaPath:e.graphPath),p=e.chart,l=p.pointer,m=p.renderer,k=p.options.tooltip.snap,\nd=e.tracker,b=function(b){if(p.hoverSeries!==e)e.onMouseOver()},n=\"rgba(192,192,192,\"+(c?.0001:.002)+\")\";d?d.attr({d:g}):e.graph&&(e.tracker=m.path(g).attr({visibility:e.visible?\"visible\":\"hidden\",zIndex:2}).addClass(h?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(e.group),p.styledMode||e.tracker.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:n,fill:h?n:\"none\",\"stroke-width\":e.graph.strokeWidth()+(h?0:2*k)}),[e.tracker,e.markerGroup].forEach(function(d){d.addClass(\"highcharts-tracker\").on(\"mouseover\",\nb).on(\"mouseout\",function(b){l.onTrackerMouseOut(b)});f.cursor&&!p.styledMode&&d.css({cursor:f.cursor});if(a)d.on(\"touchstart\",b)}));I(this,\"afterDrawTracker\")}};e.column&&(e.column.prototype.drawTracker=m.drawTrackerPoint);e.pie&&(e.pie.prototype.drawTracker=m.drawTrackerPoint);e.scatter&&(e.scatter.prototype.drawTracker=m.drawTrackerPoint);y(g.prototype,{setItemEvents:function(a,c,e){var f=this,h=f.chart.renderer.boxWrapper,g=a instanceof H,l=\"highcharts-legend-\"+(g?\"point\":\"series\")+\"-active\",\nm=f.chart.styledMode;(e?[c,a.legendSymbol]:[a.legendGroup]).forEach(function(d){if(d)d.on(\"mouseover\",function(){a.visible&&f.allItems.forEach(function(b){a!==b&&b.setState(\"inactive\",!g)});a.setState(\"hover\");a.visible&&h.addClass(l);m||c.css(f.options.itemHoverStyle)}).on(\"mouseout\",function(){f.chart.styledMode||c.css(t(a.visible?f.itemStyle:f.itemHiddenStyle));f.allItems.forEach(function(b){a!==b&&b.setState(\"\",!g)});h.removeClass(l);a.setState()}).on(\"click\",function(b){var d=function(){a.setVisible&&\na.setVisible();f.allItems.forEach(function(b){a!==b&&b.setState(a.visible?\"inactive\":\"\",!g)})};h.removeClass(l);b={browserEvent:b};a.firePointEvent?a.firePointEvent(\"legendItemClick\",b,d):I(a,\"legendItemClick\",b,d)})})},createCheckboxForItem:function(a){a.checkbox=G(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);A(a.checkbox,\"click\",function(c){I(a.series||a,\"checkboxClick\",{checked:c.target.checked,\nitem:a},function(){a.select()})})}});y(v.prototype,{showResetZoom:function(){function a(){c.zoomOut()}var c=this,e=h.lang,f=c.options.chart.resetZoomButton,g=f.theme,l=g.states,m=\"chart\"===f.relativeTo||\"spaceBox\"===f.relativeTo?null:\"plotBox\";I(this,\"beforeShowResetZoom\",null,function(){c.resetZoomButton=c.renderer.button(e.resetZoom,null,null,a,g,l&&l.hover).attr({align:f.position.align,title:e.resetZoomTitle}).addClass(\"highcharts-reset-zoom\").add().align(f.position,!1,m)});I(this,\"afterShowResetZoom\")},\nzoomOut:function(){I(this,\"selection\",{resetSelection:!0},this.zoom)},zoom:function(a){var c=this,e,f=c.pointer,h=!1,g=c.inverted?f.mouseDownX:f.mouseDownY;!a||a.resetSelection?(c.axes.forEach(function(a){e=a.zoom()}),f.initiated=!1):a.xAxis.concat(a.yAxis).forEach(function(a){var d=a.axis,b=c.inverted?d.left:d.top,p=c.inverted?b+d.width:b+d.height,l=d.isXAxis,m=!1;if(!l&&g>=b&&g<=p||l||!M(g))m=!0;f[l?\"zoomX\":\"zoomY\"]&&m&&(e=d.zoom(a.min,a.max),d.displayBtn&&(h=!0))});var l=c.resetZoomButton;h&&!l?\nc.showResetZoom():!h&&z(l)&&(c.resetZoomButton=l.destroy());e&&c.redraw(r(c.options.chart.animation,a&&a.animation,100>c.pointCount))},pan:function(a,c){var e=this,f=e.hoverPoints,h=e.options.chart,g=e.options.mapNavigation&&e.options.mapNavigation.enabled,l;c=\"object\"===typeof c?c:{enabled:c,type:\"x\"};h&&h.panning&&(h.panning=c);var m=c.type;I(this,\"pan\",{originalEvent:a},function(){f&&f.forEach(function(b){b.setState()});var d=[1];\"xy\"===m?d=[1,0]:\"y\"===m&&(d=[0]);d.forEach(function(b){var d=e[b?\n\"xAxis\":\"yAxis\"][0],c=d.options,f=d.horiz,h=a[f?\"chartX\":\"chartY\"];f=f?\"mouseDownX\":\"mouseDownY\";var p=e[f],u=(d.pointRange||0)/2,w=d.reversed&&!e.inverted||!d.reversed&&e.inverted?-1:1,r=d.getExtremes(),C=d.toValue(p-h,!0)+u*w;w=d.toValue(p+d.len-h,!0)-u*w;var q=w<C;p=q?w:C;C=q?C:w;var t=d.hasVerticalPanning(),B=d.panningState;d.series.forEach(function(a){if(t&&!b&&(!B||B.isDirty)){var d=a.getProcessedData(!0);a=a.getExtremes(d.yData,!0);B||(B={startMin:Number.MAX_VALUE,startMax:-Number.MAX_VALUE});\nD(a.dataMin)&&D(a.dataMax)&&(B.startMin=Math.min(a.dataMin,B.startMin),B.startMax=Math.max(a.dataMax,B.startMax))}});w=Math.min(k.pick(null===B||void 0===B?void 0:B.startMin,r.dataMin),u?r.min:d.toValue(d.toPixels(r.min)-d.minPixelPadding));u=Math.max(k.pick(null===B||void 0===B?void 0:B.startMax,r.dataMax),u?r.max:d.toValue(d.toPixels(r.max)+d.minPixelPadding));d.panningState=B;if(!c.ordinal){c=w-p;0<c&&(C+=c,p=w);c=C-u;0<c&&(C=u,p-=c);if(d.series.length&&p!==r.min&&C!==r.max&&b||B&&p>=w&&C<=u)d.setExtremes(p,\nC,!1,!1,{trigger:\"pan\"}),e.resetZoomButton||g||!m.match(\"y\")||(e.showResetZoom(),d.displayBtn=!1),l=!0;e[f]=h}});l&&e.redraw(!1);N(e.container,{cursor:\"move\"})})}});y(H.prototype,{select:function(a,c){var e=this,f=e.series,h=f.chart;this.selectedStaging=a=r(a,!e.selected);e.firePointEvent(a?\"select\":\"unselect\",{accumulate:c},function(){e.selected=e.options.selected=a;f.options.data[f.data.indexOf(e)]=e.options;e.setState(a&&\"select\");c||h.getSelectedPoints().forEach(function(a){var c=a.series;a.selected&&\na!==e&&(a.selected=a.options.selected=!1,c.options.data[c.data.indexOf(a)]=a.options,a.setState(h.hoverPoints&&c.options.inactiveOtherPoints?\"inactive\":\"\"),a.firePointEvent(\"unselect\"))})});delete this.selectedStaging},onMouseOver:function(a){var c=this.series.chart,e=c.pointer;a=a?e.normalize(a):e.getChartCoordinatesFromPoint(this,c.inverted);e.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent(\"mouseOut\");this.series.options.inactiveOtherPoints||(a.hoverPoints||\n[]).forEach(function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var a=this,c=t(a.series.options.point,a.options).events;a.events=c;q(c,function(c,e){E(c)&&A(a,e,c)});this.hasImportedEvents=!0}},setState:function(a,c){var e=this.series,h=this.state,g=e.options.states[a||\"normal\"]||{},l=f[e.type].marker&&e.options.marker,m=l&&!1===l.enabled,k=l&&l.states&&l.states[a||\"normal\"]||{},d=!1===k.enabled,b=e.stateMarkerGraphic,n=this.marker||{},u=\ne.chart,q=e.halo,t,v=l&&e.markerAttribs;a=a||\"\";if(!(a===this.state&&!c||this.selected&&\"select\"!==a||!1===g.enabled||a&&(d||m&&!1===k.enabled)||a&&n.states&&n.states[a]&&!1===n.states[a].enabled)){this.state=a;v&&(t=e.markerAttribs(this,a));if(this.graphic){h&&this.graphic.removeClass(\"highcharts-point-\"+h);a&&this.graphic.addClass(\"highcharts-point-\"+a);if(!u.styledMode){var z=e.pointAttribs(this,a);var D=r(u.options.chart.animation,g.animation);e.options.inactiveOtherPoints&&z.opacity&&((this.dataLabels||\n[]).forEach(function(a){a&&a.animate({opacity:z.opacity},D)}),this.connector&&this.connector.animate({opacity:z.opacity},D));this.graphic.animate(z,D)}t&&this.graphic.animate(t,r(u.options.chart.animation,k.animation,l.animation));b&&b.hide()}else{if(a&&k){h=n.symbol||e.symbol;b&&b.currentSymbol!==h&&(b=b.destroy());if(t)if(b)b[c?\"animate\":\"attr\"]({x:t.x,y:t.y});else h&&(e.stateMarkerGraphic=b=u.renderer.symbol(h,t.x,t.y,t.width,t.height).add(e.markerGroup),b.currentSymbol=h);!u.styledMode&&b&&b.attr(e.pointAttribs(this,\na))}b&&(b[a&&this.isInside?\"show\":\"hide\"](),b.element.point=this)}a=g.halo;g=(b=this.graphic||b)&&b.visibility||\"inherit\";a&&a.size&&b&&\"hidden\"!==g&&!this.isCluster?(q||(e.halo=q=u.renderer.path().add(b.parentGroup)),q.show()[c?\"animate\":\"attr\"]({d:this.haloPath(a.size)}),q.attr({\"class\":\"highcharts-halo highcharts-color-\"+r(this.colorIndex,e.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:g,zIndex:-1}),q.point=this,u.styledMode||q.attr(y({fill:this.color||e.color,\"fill-opacity\":a.opacity},\na.attributes))):q&&q.point&&q.point.haloPath&&q.animate({d:q.point.haloPath(0)},null,q.hide);I(this,\"afterSetState\")}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});y(l.prototype,{onMouseOver:function(){var a=this.chart,c=a.hoverSeries;a.pointer.setHoverChartIndex();if(c&&c!==this)c.onMouseOut();this.options.events.mouseOver&&I(this,\"mouseOver\");this.setState(\"hover\");a.hoverSeries=this},onMouseOut:function(){var a=this.options,\nc=this.chart,e=c.tooltip,f=c.hoverPoint;c.hoverSeries=null;if(f)f.onMouseOut();this&&a.events.mouseOut&&I(this,\"mouseOut\");!e||this.stickyTracking||e.shared&&!this.noSharedTooltip||e.hide();c.series.forEach(function(a){a.setState(\"\",!0)})},setState:function(a,c){var e=this,f=e.options,h=e.graph,g=f.inactiveOtherPoints,l=f.states,m=f.lineWidth,d=f.opacity,b=r(l[a||\"normal\"]&&l[a||\"normal\"].animation,e.chart.options.chart.animation);f=0;a=a||\"\";if(e.state!==a&&([e.group,e.markerGroup,e.dataLabelsGroup].forEach(function(b){b&&\n(e.state&&b.removeClass(\"highcharts-series-\"+e.state),a&&b.addClass(\"highcharts-series-\"+a))}),e.state=a,!e.chart.styledMode)){if(l[a]&&!1===l[a].enabled)return;a&&(m=l[a].lineWidth||m+(l[a].lineWidthPlus||0),d=r(l[a].opacity,d));if(h&&!h.dashstyle)for(l={\"stroke-width\":m},h.animate(l,b);e[\"zone-graph-\"+f];)e[\"zone-graph-\"+f].attr(l),f+=1;g||[e.group,e.markerGroup,e.dataLabelsGroup,e.labelBySeries].forEach(function(a){a&&a.animate({opacity:d},b)})}c&&g&&e.points&&e.setAllPointsToState(a)},setAllPointsToState:function(a){this.points.forEach(function(c){c.setState&&\nc.setState(a)})},setVisible:function(a,c){var e=this,f=e.chart,h=e.legendItem,g=f.options.chart.ignoreHiddenSeries,l=e.visible;var m=(e.visible=a=e.options.visible=e.userOptions.visible=\"undefined\"===typeof a?!l:a)?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(function(a){if(e[a])e[a][m]()});if(f.hoverSeries===e||(f.hoverPoint&&f.hoverPoint.series)===e)e.onMouseOut();h&&f.legend.colorizeItem(e,a);e.isDirty=!0;e.options.stacking&&f.series.forEach(function(a){a.options.stacking&&\na.visible&&(a.isDirty=!0)});e.linkedSeries.forEach(function(d){d.setVisible(a,!1)});g&&(f.isDirtyBox=!0);I(e,m);!1!==c&&f.redraw()},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=this.options.selected=\"undefined\"===typeof a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);I(this,a?\"select\":\"unselect\")},drawTracker:m.drawTrackerGraph})});P(A,\"parts/Responsive.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=\ng.find,v=g.isArray,K=g.isObject,G=g.merge,N=g.objectEach,M=g.pick,y=g.splat,I=g.uniqueKey;k=k.Chart;k.prototype.setResponsive=function(g,k){var v=this.options.responsive,z=[],t=this.currentResponsive;!k&&v&&v.rules&&v.rules.forEach(function(g){\"undefined\"===typeof g._id&&(g._id=I());this.matchResponsiveRule(g,z)},this);k=G.apply(0,z.map(function(g){return A(v.rules,function(k){return k._id===g}).chartOptions}));k.isResponsiveOptions=!0;z=z.toString()||void 0;z!==(t&&t.ruleIds)&&(t&&this.update(t.undoOptions,\ng,!0),z?(t=this.currentOptions(k),t.isResponsiveOptions=!0,this.currentResponsive={ruleIds:z,mergedOptions:k,undoOptions:t},this.update(k,g,!0)):this.currentResponsive=void 0)};k.prototype.matchResponsiveRule=function(g,k){var v=g.condition;(v.callback||function(){return this.chartWidth<=M(v.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=M(v.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=M(v.minWidth,0)&&this.chartHeight>=M(v.minHeight,0)}).call(this)&&k.push(g._id)};k.prototype.currentOptions=function(g){function k(g,\nq,r,h){var f;N(g,function(a,g){if(!h&&-1<D.collectionsWithUpdate.indexOf(g))for(a=y(a),r[g]=[],f=0;f<a.length;f++)q[g][f]&&(r[g][f]={},k(a[f],q[g][f],r[g][f],h+1));else K(a)?(r[g]=v(a)?[]:{},k(a,q[g]||{},r[g],h+1)):r[g]=\"undefined\"===typeof q[g]?null:q[g]})}var D=this,z={};k(g,this.options,z,0);return z}});P(A,\"masters/highcharts.src.js\",[A[\"parts/Globals.js\"]],function(k){return k});P(A,\"parts/NavigatorAxis.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=k.isTouchDevice,v=\ng.addEvent,K=g.correctFloat,G=g.defined,N=g.isNumber,M=g.pick,y=function(){function g(g){this.axis=g}g.prototype.destroy=function(){this.axis=void 0};g.prototype.toFixedRange=function(g,k,v,z){var t=this.axis,q=t.chart;q=q&&q.fixedRange;var r=(t.pointRange||0)/2;g=M(v,t.translate(g,!0,!t.horiz));k=M(z,t.translate(k,!0,!t.horiz));t=q&&(k-g)/q;G(v)||(g=K(g+r));G(z)||(k=K(k-r));.7<t&&1.3>t&&(z?g=k-q:k=g+q);N(g)&&N(k)||(g=k=void 0);return{min:g,max:k}};return g}();return function(){function g(){}g.compose=\nfunction(g){g.keepProps.push(\"navigatorAxis\");v(g,\"init\",function(){this.navigatorAxis||(this.navigatorAxis=new y(this))});v(g,\"zoom\",function(g){var k=this.chart.options,v=k.navigator,t=this.navigatorAxis,q=k.chart.pinchType,r=k.rangeSelector;k=k.chart.zoomType;this.isXAxis&&(v&&v.enabled||r&&r.enabled)&&(\"y\"===k?g.zoomed=!1:(!A&&\"xy\"===k||A&&\"xy\"===q)&&this.options.range&&(v=t.previousZoom,G(g.newMin)?t.previousZoom=[this.min,this.max]:v&&(g.newMin=v[0],g.newMax=v[1],t.previousZoom=void 0)));\"undefined\"!==\ntypeof g.zoomed&&g.preventDefault()})};g.AdditionsClass=y;return g}()});P(A,\"parts/ScrollbarAxis.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=g.addEvent,v=g.defined,K=g.pick;return function(){function g(){}g.compose=function(g,G){A(g,\"afterInit\",function(){var g=this;g.options&&g.options.scrollbar&&g.options.scrollbar.enabled&&(g.options.scrollbar.vertical=!g.horiz,g.options.startOnTick=g.options.endOnTick=!1,g.scrollbar=new G(g.chart.renderer,g.options.scrollbar,g.chart),\nA(g.scrollbar,\"changed\",function(y){var G=K(g.options&&g.options.min,g.min),E=K(g.options&&g.options.max,g.max),D=v(g.dataMin)?Math.min(G,g.min,g.dataMin):G,z=(v(g.dataMax)?Math.max(E,g.max,g.dataMax):E)-D;v(G)&&v(E)&&(g.horiz&&!g.reversed||!g.horiz&&g.reversed?(G=D+z*this.to,D+=z*this.from):(G=D+z*(1-this.from),D+=z*(1-this.to)),K(this.options.liveRedraw,k.svg&&!k.isTouchDevice&&!this.chart.isBoosting)||\"mouseup\"===y.DOMType||!v(y.DOMType)?g.setExtremes(D,G,!0,\"mousemove\"!==y.DOMType,y):this.setRange(this.from,\nthis.to))}))});A(g,\"afterRender\",function(){var g=Math.min(K(this.options.min,this.min),this.min,K(this.dataMin,this.min)),k=Math.max(K(this.options.max,this.max),this.max,K(this.dataMax,this.max)),G=this.scrollbar,E=this.axisTitleMargin+(this.titleOffset||0),D=this.chart.scrollbarsOffsets,z=this.options.margin||0;G&&(this.horiz?(this.opposite||(D[1]+=E),G.position(this.left,this.top+this.height+2+D[1]-(this.opposite?z:0),this.width,this.height),this.opposite||(D[1]+=z),E=1):(this.opposite&&(D[0]+=\nE),G.position(this.left+this.width+2+D[0]-(this.opposite?0:z),this.top,this.width,this.height),this.opposite&&(D[0]+=z),E=0),D[E]+=G.size+G.options.margin,isNaN(g)||isNaN(k)||!v(this.min)||!v(this.max)||this.min===this.max?G.setRange(0,1):(D=(this.min-g)/(k-g),g=(this.max-g)/(k-g),this.horiz&&!this.reversed||!this.horiz&&this.reversed?G.setRange(D,g):G.setRange(1-g,1-D)))});A(g,\"afterGetOffset\",function(){var g=this.horiz?2:1,k=this.scrollbar;k&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[g]+=\nk.size+k.options.margin)})};return g}()});P(A,\"parts/Scrollbar.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/ScrollbarAxis.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v){var H=v.addEvent,G=v.correctFloat,N=v.defined,M=v.destroyObjectProperties,y=v.fireEvent,I=v.merge,J=v.pick,E=v.removeEvent;v=g.defaultOptions;var D=g.hasTouch,z=g.isTouchDevice,t=g.swapXY=function(g,h){h&&g.forEach(function(f){for(var a=f.length,h,e=0;e<a;e+=2)h=f[e+1],\"number\"===typeof h&&(f[e+1]=f[e+2],f[e+2]=h)});return g},\nq=function(){function g(h,f,a){this._events=[];this.from=this.chartY=this.chartX=0;this.scrollbar=this.group=void 0;this.scrollbarButtons=[];this.scrollbarGroup=void 0;this.scrollbarLeft=0;this.scrollbarRifles=void 0;this.scrollbarStrokeWidth=1;this.to=this.size=this.scrollbarTop=0;this.track=void 0;this.trackBorderWidth=1;this.userOptions={};this.y=this.x=0;this.chart=a;this.options=f;this.renderer=a.renderer;this.init(h,f,a)}g.prototype.addEvents=function(){var h=this.options.inverted?[1,0]:[0,\n1],f=this.scrollbarButtons,a=this.scrollbarGroup.element,g=this.track.element,e=this.mouseDownHandler.bind(this),c=this.mouseMoveHandler.bind(this),m=this.mouseUpHandler.bind(this);h=[[f[h[0]].element,\"click\",this.buttonToMinClick.bind(this)],[f[h[1]].element,\"click\",this.buttonToMaxClick.bind(this)],[g,\"click\",this.trackClick.bind(this)],[a,\"mousedown\",e],[a.ownerDocument,\"mousemove\",c],[a.ownerDocument,\"mouseup\",m]];D&&h.push([a,\"touchstart\",e],[a.ownerDocument,\"touchmove\",c],[a.ownerDocument,\"touchend\",\nm]);h.forEach(function(a){H.apply(null,a)});this._events=h};g.prototype.buttonToMaxClick=function(h){var f=(this.to-this.from)*J(this.options.step,.2);this.updatePosition(this.from+f,this.to+f);y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMEvent:h})};g.prototype.buttonToMinClick=function(h){var f=G(this.to-this.from)*J(this.options.step,.2);this.updatePosition(G(this.from-f),G(this.to-f));y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMEvent:h})};g.prototype.cursorToScrollbarPosition=\nfunction(h){var f=this.options;f=f.minWidth>this.calculatedWidth?f.minWidth:0;return{chartX:(h.chartX-this.x-this.xOffset)/(this.barWidth-f),chartY:(h.chartY-this.y-this.yOffset)/(this.barWidth-f)}};g.prototype.destroy=function(){var h=this.chart.scroller;this.removeEvents();[\"track\",\"scrollbarRifles\",\"scrollbar\",\"scrollbarGroup\",\"group\"].forEach(function(f){this[f]&&this[f].destroy&&(this[f]=this[f].destroy())},this);h&&this===h.scrollbar&&(h.scrollbar=null,M(h.scrollbarButtons))};g.prototype.drawScrollbarButton=\nfunction(h){var f=this.renderer,a=this.scrollbarButtons,g=this.options,e=this.size;var c=f.g().add(this.group);a.push(c);c=f.rect().addClass(\"highcharts-scrollbar-button\").add(c);this.chart.styledMode||c.attr({stroke:g.buttonBorderColor,\"stroke-width\":g.buttonBorderWidth,fill:g.buttonBackgroundColor});c.attr(c.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:g.buttonBorderRadius},c.strokeWidth()));c=f.path(t([[\"M\",e/2+(h?-1:1),e/2-3],[\"L\",e/2+(h?-1:1),e/2+3],[\"L\",e/2+(h?2:-2),e/2]],g.vertical)).addClass(\"highcharts-scrollbar-arrow\").add(a[h]);\nthis.chart.styledMode||c.attr({fill:g.buttonArrowColor})};g.prototype.init=function(h,f,a){this.scrollbarButtons=[];this.renderer=h;this.userOptions=f;this.options=I(g.defaultOptions,f);this.chart=a;this.size=J(this.options.size,this.options.height);f.enabled&&(this.render(),this.addEvents())};g.prototype.mouseDownHandler=function(h){h=this.chart.pointer.normalize(h);h=this.cursorToScrollbarPosition(h);this.chartX=h.chartX;this.chartY=h.chartY;this.initPositions=[this.from,this.to];this.grabbedCenter=\n!0};g.prototype.mouseMoveHandler=function(h){var f=this.chart.pointer.normalize(h),a=this.options.vertical?\"chartY\":\"chartX\",g=this.initPositions||[];!this.grabbedCenter||h.touches&&0===h.touches[0][a]||(f=this.cursorToScrollbarPosition(f)[a],a=this[a],a=f-a,this.hasDragged=!0,this.updatePosition(g[0]+a,g[1]+a),this.hasDragged&&y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMType:h.type,DOMEvent:h}))};g.prototype.mouseUpHandler=function(h){this.hasDragged&&y(this,\"changed\",{from:this.from,\nto:this.to,trigger:\"scrollbar\",DOMType:h.type,DOMEvent:h});this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null};g.prototype.position=function(h,f,a,g){var e=this.options.vertical,c=0,l=this.rendered?\"animate\":\"attr\";this.x=h;this.y=f+this.trackBorderWidth;this.width=a;this.xOffset=this.height=g;this.yOffset=c;e?(this.width=this.yOffset=a=c=this.size,this.xOffset=f=0,this.barWidth=g-2*a,this.x=h+=this.options.margin):(this.height=this.xOffset=g=f=this.size,this.barWidth=a-2*g,this.y+=this.options.margin);\nthis.group[l]({translateX:h,translateY:this.y});this.track[l]({width:a,height:g});this.scrollbarButtons[1][l]({translateX:e?0:a-f,translateY:e?g-c:0})};g.prototype.removeEvents=function(){this._events.forEach(function(h){E.apply(null,h)});this._events.length=0};g.prototype.render=function(){var h=this.renderer,f=this.options,a=this.size,g=this.chart.styledMode,e;this.group=e=h.g(\"scrollbar\").attr({zIndex:f.zIndex,translateY:-99999}).add();this.track=h.rect().addClass(\"highcharts-scrollbar-track\").attr({x:0,\nr:f.trackBorderRadius||0,height:a,width:a}).add(e);g||this.track.attr({fill:f.trackBackgroundColor,stroke:f.trackBorderColor,\"stroke-width\":f.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=h.g().add(e);this.scrollbar=h.rect().addClass(\"highcharts-scrollbar-thumb\").attr({height:a,width:a,r:f.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=h.path(t([[\"M\",-3,a/4],[\"L\",-3,2*a/3],[\"M\",0,a/4],[\"L\",\n0,2*a/3],[\"M\",3,a/4],[\"L\",3,2*a/3]],f.vertical)).addClass(\"highcharts-scrollbar-rifles\").add(this.scrollbarGroup);g||(this.scrollbar.attr({fill:f.barBackgroundColor,stroke:f.barBorderColor,\"stroke-width\":f.barBorderWidth}),this.scrollbarRifles.attr({stroke:f.rifleColor,\"stroke-width\":1}));this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)};g.prototype.setRange=\nfunction(h,f){var a=this.options,g=a.vertical,e=a.minWidth,c=this.barWidth,m,k=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?\"attr\":\"animate\";if(N(c)){h=Math.max(h,0);var r=Math.ceil(c*h);this.calculatedWidth=m=G(c*Math.min(f,1)-r);m<e&&(r=(c-e+m)*h,m=e);e=Math.floor(r+this.xOffset+this.yOffset);c=m/2-.5;this.from=h;this.to=f;g?(this.scrollbarGroup[k]({translateY:e}),this.scrollbar[k]({height:m}),this.scrollbarRifles[k]({translateY:c}),this.scrollbarTop=e,\nthis.scrollbarLeft=0):(this.scrollbarGroup[k]({translateX:e}),this.scrollbar[k]({width:m}),this.scrollbarRifles[k]({translateX:c}),this.scrollbarLeft=e,this.scrollbarTop=0);12>=m?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0);!1===a.showFull&&(0>=h&&1<=f?this.group.hide():this.group.show());this.rendered=!0}};g.prototype.trackClick=function(h){var f=this.chart.pointer.normalize(h),a=this.to-this.from,g=this.y+this.scrollbarTop,e=this.x+this.scrollbarLeft;this.options.vertical&&f.chartY>\ng||!this.options.vertical&&f.chartX>e?this.updatePosition(this.from+a,this.to+a):this.updatePosition(this.from-a,this.to-a);y(this,\"changed\",{from:this.from,to:this.to,trigger:\"scrollbar\",DOMEvent:h})};g.prototype.update=function(h){this.destroy();this.init(this.chart.renderer,I(!0,this.options,h),this.chart)};g.prototype.updatePosition=function(h,f){1<f&&(h=G(1-G(f-h)),f=1);0>h&&(f=G(f-h),h=0);this.from=h;this.to=f};g.defaultOptions={height:z?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:void 0,\nmargin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:\"#cccccc\",barBorderWidth:1,barBorderColor:\"#cccccc\",buttonArrowColor:\"#333333\",buttonBackgroundColor:\"#e6e6e6\",buttonBorderColor:\"#cccccc\",buttonBorderWidth:1,rifleColor:\"#333333\",trackBackgroundColor:\"#f2f2f2\",trackBorderColor:\"#f2f2f2\",trackBorderWidth:1};return g}();g.Scrollbar||(v.scrollbar=I(!0,q.defaultOptions,v.scrollbar),g.Scrollbar=q,A.compose(k,q));return g.Scrollbar});P(A,\"parts/Navigator.js\",[A[\"parts/Axis.js\"],A[\"parts/Color.js\"],\nA[\"parts/Globals.js\"],A[\"parts/NavigatorAxis.js\"],A[\"parts/Scrollbar.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v,K,G){g=g.parse;var H=G.addEvent,M=G.clamp,y=G.correctFloat,I=G.defined,J=G.destroyObjectProperties,E=G.erase,D=G.extend,z=G.find,t=G.isArray,q=G.isNumber,r=G.merge,h=G.pick,f=G.removeEvent,a=G.splat;G=A.Chart;var l=A.defaultOptions,e=A.hasTouch,c=A.isTouchDevice,m=A.Series,u=function(a){for(var c=[],e=1;e<arguments.length;e++)c[e-1]=arguments[e];c=[].filter.call(c,q);if(c.length)return Math[a].apply(0,\nc)};var L=\"undefined\"===typeof A.seriesTypes.areaspline?\"line\":\"areaspline\";D(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:[\"navigator-handle\",\"navigator-handle\"],enabled:!0,lineWidth:1,backgroundColor:\"#f2f2f2\",borderColor:\"#999999\"},maskFill:g(\"#6685c2\").setOpacity(.3).get(),outlineColor:\"#cccccc\",outlineWidth:1,series:{type:L,fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:\"average\",enabled:!0,groupPixelWidth:2,smoothed:!0,units:[[\"millisecond\",\n[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1,2,3,4]],[\"week\",[1,2,3]],[\"month\",[1,3,6]],[\"year\",null]]},dataLabels:{enabled:!1,zIndex:2},id:\"highcharts-navigator-series\",className:\"highcharts-navigator-series\",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{overscroll:0,className:\"highcharts-navigator-xaxis\",tickLength:0,lineWidth:0,gridLineColor:\"#e6e6e6\",gridLineWidth:1,tickPixelInterval:200,labels:{align:\"left\",\nstyle:{color:\"#999999\"},x:3,y:-4},crosshair:!1},yAxis:{className:\"highcharts-navigator-yaxis\",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}});A.Renderer.prototype.symbols[\"navigator-handle\"]=function(a,c,e,f,h){a=h.width/2;c=Math.round(a/3)+.5;h=h.height||0;return[[\"M\",-a-1,.5],[\"L\",a,.5],[\"L\",a,h+.5],[\"L\",-a-1,h+.5],[\"L\",-a-1,.5],[\"M\",-c,4],[\"L\",-c,h-3],[\"M\",c-1,4],[\"L\",c-1,h-3]]};var F=function(){function g(a){this.zoomedMin=\nthis.zoomedMax=this.yAxis=this.xAxis=this.top=this.size=this.shades=this.rendered=this.range=this.outlineHeight=this.outline=this.opposite=this.navigatorSize=this.navigatorSeries=this.navigatorOptions=this.navigatorGroup=this.navigatorEnabled=this.left=this.height=this.handles=this.chart=this.baseSeries=void 0;this.init(a)}g.prototype.drawHandle=function(a,c,e,f){var d=this.navigatorOptions.handles.height;this.handles[c][f](e?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+\nparseInt(a,10)+.5-d)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-d/2-1)})};g.prototype.drawOutline=function(a,c,e,f){var d=this.navigatorOptions.maskInside,b=this.outline.strokeWidth(),h=b/2,g=b%2/2;b=this.outlineHeight;var p=this.scrollbarHeight||0,l=this.size,m=this.left-p,k=this.top;e?(m-=h,e=k+c+g,c=k+a+g,g=[[\"M\",m+b,k-p-g],[\"L\",m+b,e],[\"L\",m,e],[\"L\",m,c],[\"L\",m+b,c],[\"L\",m+b,k+l+p]],d&&g.push([\"M\",m+b,e-h],[\"L\",m+b,c+h])):(a+=m+p-g,c+=m+p-g,\nk+=h,g=[[\"M\",m,k],[\"L\",a,k],[\"L\",a,k+b],[\"L\",c,k+b],[\"L\",c,k],[\"L\",m+l+2*p,k]],d&&g.push([\"M\",a-h,k],[\"L\",c+h,k]));this.outline[f]({d:g})};g.prototype.drawMasks=function(a,c,e,f){var d=this.left,b=this.top,h=this.height;if(e){var g=[d,d,d];var p=[b,b+a,b+c];var m=[h,h,h];var l=[a,c-a,this.size-c]}else g=[d,d+a,d+c],p=[b,b,b],m=[a,c-a,this.size-c],l=[h,h,h];this.shades.forEach(function(a,b){a[f]({x:g[b],y:p[b],width:m[b],height:l[b]})})};g.prototype.renderElements=function(){var a=this,c=a.navigatorOptions,\ne=c.maskInside,f=a.chart,d=f.renderer,b,h={cursor:f.inverted?\"ns-resize\":\"ew-resize\"};a.navigatorGroup=b=d.g(\"navigator\").attr({zIndex:8,visibility:\"hidden\"}).add();[!e,e,!e].forEach(function(e,g){a.shades[g]=d.rect().addClass(\"highcharts-navigator-mask\"+(1===g?\"-inside\":\"-outside\")).add(b);f.styledMode||a.shades[g].attr({fill:e?c.maskFill:\"rgba(0,0,0,0)\"}).css(1===g&&h)});a.outline=d.path().addClass(\"highcharts-navigator-outline\").add(b);f.styledMode||a.outline.attr({\"stroke-width\":c.outlineWidth,\nstroke:c.outlineColor});c.handles.enabled&&[0,1].forEach(function(e){c.handles.inverted=f.inverted;a.handles[e]=d.symbol(c.handles.symbols[e],-c.handles.width/2-1,0,c.handles.width,c.handles.height,c.handles);a.handles[e].attr({zIndex:7-e}).addClass(\"highcharts-navigator-handle highcharts-navigator-handle-\"+[\"left\",\"right\"][e]).add(b);if(!f.styledMode){var g=c.handles;a.handles[e].attr({fill:g.backgroundColor,stroke:g.borderColor,\"stroke-width\":g.lineWidth}).css(h)}})};g.prototype.update=function(a){(this.series||\n[]).forEach(function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries});this.destroy();r(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)};g.prototype.render=function(a,c,e,f){var d=this.chart,b=this.scrollbarHeight,g,p=this.xAxis,m=p.pointRange||0;var l=p.navigatorAxis.fake?d.xAxis[0]:p;var k=this.navigatorEnabled,r,w=this.rendered;var u=d.inverted;var C=d.xAxis[0].minRange,t=d.xAxis[0].options.maxRange;if(!this.hasDragged||I(e)){a=y(a-m/2);c=y(c+m/2);if(!q(a)||!q(c))if(w)e=\n0,f=h(p.width,l.width);else return;this.left=h(p.left,d.plotLeft+b+(u?d.plotWidth:0));this.size=r=g=h(p.len,(u?d.plotHeight:d.plotWidth)-2*b);d=u?b:g+2*b;e=h(e,p.toPixels(a,!0));f=h(f,p.toPixels(c,!0));q(e)&&Infinity!==Math.abs(e)||(e=0,f=d);a=p.toValue(e,!0);c=p.toValue(f,!0);var B=Math.abs(y(c-a));B<C?this.grabbedLeft?e=p.toPixels(c-C-m,!0):this.grabbedRight&&(f=p.toPixels(a+C+m,!0)):I(t)&&y(B-m)>t&&(this.grabbedLeft?e=p.toPixels(c-t-m,!0):this.grabbedRight&&(f=p.toPixels(a+t+m,!0)));this.zoomedMax=\nM(Math.max(e,f),0,r);this.zoomedMin=M(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(e,f),0,r);this.range=this.zoomedMax-this.zoomedMin;r=Math.round(this.zoomedMax);e=Math.round(this.zoomedMin);k&&(this.navigatorGroup.attr({visibility:\"visible\"}),w=w&&!this.hasDragged?\"animate\":\"attr\",this.drawMasks(e,r,u,w),this.drawOutline(e,r,u,w),this.navigatorOptions.handles.enabled&&(this.drawHandle(e,0,u,w),this.drawHandle(r,1,u,w)));this.scrollbar&&(u?(u=this.top-b,l=this.left-b+(k||!l.opposite?0:\n(l.titleOffset||0)+l.axisTitleMargin),b=g+2*b):(u=this.top+(k?this.height:-b),l=this.left-b),this.scrollbar.position(l,u,d,b),this.scrollbar.setRange(this.zoomedMin/(g||1),this.zoomedMax/(g||1)));this.rendered=!0}};g.prototype.addMouseEvents=function(){var a=this,c=a.chart,f=c.container,h=[],d,b;a.mouseMoveHandler=d=function(b){a.onMouseMove(b)};a.mouseUpHandler=b=function(b){a.onMouseUp(b)};h=a.getPartsEvents(\"mousedown\");h.push(H(c.renderTo,\"mousemove\",d),H(f.ownerDocument,\"mouseup\",b));e&&(h.push(H(c.renderTo,\n\"touchmove\",d),H(f.ownerDocument,\"touchend\",b)),h.concat(a.getPartsEvents(\"touchstart\")));a.eventsToUnbind=h;a.series&&a.series[0]&&h.push(H(a.series[0].xAxis,\"foundExtremes\",function(){c.navigator.modifyNavigatorAxisExtremes()}))};g.prototype.getPartsEvents=function(a){var c=this,e=[];[\"shades\",\"handles\"].forEach(function(f){c[f].forEach(function(d,b){e.push(H(d.element,a,function(a){c[f+\"Mousedown\"](a,b)}))})});return e};g.prototype.shadesMousedown=function(a,c){a=this.chart.pointer.normalize(a);\nvar e=this.chart,f=this.xAxis,d=this.zoomedMin,b=this.left,h=this.size,g=this.range,m=a.chartX;e.inverted&&(m=a.chartY,b=this.top);if(1===c)this.grabbedCenter=m,this.fixedWidth=g,this.dragOffset=m-d;else{a=m-b-g/2;if(0===c)a=Math.max(0,a);else if(2===c&&a+g>=h)if(a=h-g,this.reversedExtremes){a-=g;var p=this.getUnionExtremes().dataMin}else var l=this.getUnionExtremes().dataMax;a!==d&&(this.fixedWidth=g,c=f.navigatorAxis.toFixedRange(a,a+g,p,l),I(c.min)&&e.xAxis[0].setExtremes(Math.min(c.min,c.max),\nMath.max(c.min,c.max),!0,null,{trigger:\"navigator\"}))}};g.prototype.handlesMousedown=function(a,c){this.chart.pointer.normalize(a);a=this.chart;var e=a.xAxis[0],f=this.reversedExtremes;0===c?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=f?e.min:e.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=f?e.max:e.min);a.fixedRange=null};g.prototype.onMouseMove=function(a){var e=this,f=e.chart,g=e.left,d=e.navigatorSize,b=e.range,m=e.dragOffset,l=f.inverted;\na.touches&&0===a.touches[0].pageX||(a=f.pointer.normalize(a),f=a.chartX,l&&(g=e.top,f=a.chartY),e.grabbedLeft?(e.hasDragged=!0,e.render(0,0,f-g,e.otherHandlePos)):e.grabbedRight?(e.hasDragged=!0,e.render(0,0,e.otherHandlePos,f-g)):e.grabbedCenter&&(e.hasDragged=!0,f<m?f=m:f>d+m-b&&(f=d+m-b),e.render(0,0,f-m,f-m+b)),e.hasDragged&&e.scrollbar&&h(e.scrollbar.options.liveRedraw,A.svg&&!c&&!this.chart.isBoosting)&&(a.DOMType=a.type,setTimeout(function(){e.onMouseUp(a)},0)))};g.prototype.onMouseUp=function(a){var c=\nthis.chart,e=this.xAxis,f=this.scrollbar,d=a.DOMEvent||a,b=c.inverted,h=this.rendered&&!this.hasDragged?\"animate\":\"attr\",g=Math.round(this.zoomedMax),m=Math.round(this.zoomedMin);if(this.hasDragged&&(!f||!f.hasDragged)||\"scrollbar\"===a.trigger){f=this.getUnionExtremes();if(this.zoomedMin===this.otherHandlePos)var l=this.fixedExtreme;else if(this.zoomedMax===this.otherHandlePos)var p=this.fixedExtreme;this.zoomedMax===this.size&&(p=this.reversedExtremes?f.dataMin:f.dataMax);0===this.zoomedMin&&(l=\nthis.reversedExtremes?f.dataMax:f.dataMin);e=e.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,l,p);I(e.min)&&c.xAxis[0].setExtremes(Math.min(e.min,e.max),Math.max(e.min,e.max),!0,this.hasDragged?!1:null,{trigger:\"navigator\",triggerOp:\"navigator-drag\",DOMEvent:d})}\"mousemove\"!==a.DOMType&&\"touchmove\"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null);this.navigatorEnabled&&(this.shades&&\nthis.drawMasks(m,g,b,h),this.outline&&this.drawOutline(m,g,b,h),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(m,0,b,h),this.drawHandle(g,1,b,h)))};g.prototype.removeEvents=function(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()};g.prototype.removeBaseSeriesEvents=function(){var a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&\na.forEach(function(a){f(a,\"updatedData\",this.updatedDataHandler)},this),a[0].xAxis&&f(a[0].xAxis,\"foundExtremes\",this.modifyBaseAxisExtremes))};g.prototype.init=function(a){var c=a.options,e=c.navigator,f=e.enabled,d=c.scrollbar,b=d.enabled;c=f?e.height:0;var g=b?d.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=c;this.scrollbarHeight=g;this.scrollbarEnabled=b;this.navigatorEnabled=f;this.navigatorOptions=e;this.scrollbarOptions=d;this.outlineHeight=c+g;this.opposite=\nh(e.opposite,!(f||!a.inverted));var m=this;f=m.baseSeries;d=a.xAxis.length;b=a.yAxis.length;var l=f&&f[0]&&f[0].xAxis||a.xAxis[0]||{options:{}};a.isDirtyBox=!0;m.navigatorEnabled?(m.xAxis=new k(a,r({breaks:l.options.breaks,ordinal:l.options.ordinal},e.xAxis,{id:\"navigator-x-axis\",yAxis:\"navigator-y-axis\",isX:!0,type:\"datetime\",index:d,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[g,0,-g,0],width:c}:{offsets:[0,\n-g,0,g],height:c})),m.yAxis=new k(a,r(e.yAxis,{id:\"navigator-y-axis\",alignTicks:!1,offset:0,index:b,isInternal:!0,zoomEnabled:!1},a.inverted?{width:c}:{height:c})),f||e.series.data?m.updateNavigatorSeries(!1):0===a.series.length&&(m.unbindRedraw=H(a,\"beforeRedraw\",function(){0<a.series.length&&!m.series&&(m.setBaseSeries(),m.unbindRedraw())})),m.reversedExtremes=a.inverted&&!m.xAxis.reversed||!a.inverted&&m.xAxis.reversed,m.renderElements(),m.addMouseEvents()):(m.xAxis={chart:a,navigatorAxis:{fake:!0},\ntranslate:function(b,d){var c=a.xAxis[0],e=c.getExtremes(),f=c.len-2*g,h=u(\"min\",c.options.min,e.dataMin);c=u(\"max\",c.options.max,e.dataMax)-h;return d?b*c/f+h:f*(b-h)/c},toPixels:function(a){return this.translate(a)},toValue:function(a){return this.translate(a,!0)}},m.xAxis.navigatorAxis.axis=m.xAxis,m.xAxis.navigatorAxis.toFixedRange=v.AdditionsClass.prototype.toFixedRange.bind(m.xAxis.navigatorAxis));a.options.scrollbar.enabled&&(a.scrollbar=m.scrollbar=new K(a.renderer,r(a.options.scrollbar,{margin:m.navigatorEnabled?\n0:10,vertical:a.inverted}),a),H(m.scrollbar,\"changed\",function(b){var d=m.size,c=d*this.to;d*=this.from;m.hasDragged=m.scrollbar.hasDragged;m.render(0,0,d,c);(a.options.scrollbar.liveRedraw||\"mousemove\"!==b.DOMType&&\"touchmove\"!==b.DOMType)&&setTimeout(function(){m.onMouseUp(b)})}));m.addBaseSeriesEvents();m.addChartEvents()};g.prototype.getUnionExtremes=function(a){var c=this.chart.xAxis[0],e=this.xAxis,f=e.options,d=c.options,b;a&&null===c.dataMin||(b={dataMin:h(f&&f.min,u(\"min\",d.min,c.dataMin,\ne.dataMin,e.min)),dataMax:h(f&&f.max,u(\"max\",d.max,c.dataMax,e.dataMax,e.max))});return b};g.prototype.setBaseSeries=function(a,c){var e=this.chart,f=this.baseSeries=[];a=a||e.options&&e.options.navigator.baseSeries||(e.series.length?z(e.series,function(a){return!a.options.isInternal}).index:0);(e.series||[]).forEach(function(d,b){d.options.isInternal||!d.options.showInNavigator&&(b!==a&&d.options.id!==a||!1===d.options.showInNavigator)||f.push(d)});this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,\nc)};g.prototype.updateNavigatorSeries=function(c,e){var g=this,m=g.chart,d=g.baseSeries,b,p,k=g.navigatorOptions.series,u,w={enableMouseTracking:!1,index:null,linkedTo:null,group:\"nav\",padXAxis:!1,xAxis:\"navigator-x-axis\",yAxis:\"navigator-y-axis\",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},q=g.series=(g.series||[]).filter(function(a){var b=a.baseSeries;return 0>d.indexOf(b)?(b&&(f(b,\"updatedData\",g.updatedDataHandler),delete b.navigatorSeries),a.chart&&a.destroy(),\n!1):!0});d&&d.length&&d.forEach(function(a){var c=a.navigatorSeries,f=D({color:a.color,visible:a.visible},t(k)?l.navigator.series:k);c&&!1===g.navigatorOptions.adaptToUpdatedData||(w.name=\"Navigator \"+d.length,b=a.options||{},u=b.navigatorOptions||{},p=r(b,w,f,u),p.pointRange=h(f.pointRange,u.pointRange,l.plotOptions[p.type||\"line\"].pointRange),f=u.data||f.data,g.hasNavigatorData=g.hasNavigatorData||!!f,p.data=f||b.data&&b.data.slice(0),c&&c.options?c.update(p,e):(a.navigatorSeries=m.initSeries(p),\na.navigatorSeries.baseSeries=a,q.push(a.navigatorSeries)))});if(k.data&&(!d||!d.length)||t(k))g.hasNavigatorData=!1,k=a(k),k.forEach(function(a,b){w.name=\"Navigator \"+(q.length+1);p=r(l.navigator.series,{color:m.series[b]&&!m.series[b].options.isInternal&&m.series[b].color||m.options.colors[b]||m.options.colors[0]},w,a);p.data=a.data;p.data&&(g.hasNavigatorData=!0,q.push(m.initSeries(p)))});c&&this.addBaseSeriesEvents()};g.prototype.addBaseSeriesEvents=function(){var a=this,c=a.baseSeries||[];c[0]&&\nc[0].xAxis&&H(c[0].xAxis,\"foundExtremes\",this.modifyBaseAxisExtremes);c.forEach(function(c){H(c,\"show\",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)});H(c,\"hide\",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!==this.navigatorOptions.adaptToUpdatedData&&c.xAxis&&H(c,\"updatedData\",this.updatedDataHandler);H(c,\"remove\",function(){this.navigatorSeries&&(E(a.series,this.navigatorSeries),I(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),\ndelete this.navigatorSeries)})},this)};g.prototype.getBaseSeriesMin=function(a){return this.baseSeries.reduce(function(a,c){return Math.min(a,c.xData?c.xData[0]:a)},a)};g.prototype.modifyNavigatorAxisExtremes=function(){var a=this.xAxis,c;\"undefined\"!==typeof a.getExtremes&&(!(c=this.getUnionExtremes(!0))||c.dataMin===a.min&&c.dataMax===a.max||(a.min=c.dataMin,a.max=c.dataMax))};g.prototype.modifyBaseAxisExtremes=function(){var a=this.chart.navigator,c=this.getExtremes(),e=c.dataMin,f=c.dataMax;c=\nc.max-c.min;var d=a.stickToMin,b=a.stickToMax,g=h(this.options.overscroll,0),m=a.series&&a.series[0],l=!!this.setExtremes;if(!this.eventArgs||\"rangeSelectorButton\"!==this.eventArgs.trigger){if(d){var k=e;var u=k+c}b&&(u=f+g,d||(k=Math.max(e,u-c,a.getBaseSeriesMin(m&&m.xData?m.xData[0]:-Number.MAX_VALUE))));l&&(d||b)&&q(k)&&(this.min=this.userMin=k,this.max=this.userMax=u)}a.stickToMin=a.stickToMax=null};g.prototype.updatedDataHandler=function(){var a=this.chart.navigator,c=this.navigatorSeries,e=\na.getBaseSeriesMin(this.xData[0]);a.stickToMax=a.reversedExtremes?0===Math.round(a.zoomedMin):Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=q(this.xAxis.min)&&this.xAxis.min<=e&&(!this.chart.fixedRange||!a.stickToMax);c&&!a.hasNavigatorData&&(c.options.pointStart=this.xData[0],c.setData(this.options.data,!1,null,!1))};g.prototype.addChartEvents=function(){this.eventsToUnbind||(this.eventsToUnbind=[]);this.eventsToUnbind.push(H(this.chart,\"redraw\",function(){var a=this.navigator,c=a&&(a.baseSeries&&\na.baseSeries[0]&&a.baseSeries[0].xAxis||this.xAxis[0]);c&&a.render(c.min,c.max)}),H(this.chart,\"getMargins\",function(){var a=this.navigator,c=a.opposite?\"plotTop\":\"marginBottom\";this.inverted&&(c=a.opposite?\"marginRight\":\"plotLeft\");this[c]=(this[c]||0)+(a.navigatorEnabled||!this.inverted?a.outlineHeight:0)+a.navigatorOptions.margin}))};g.prototype.destroy=function(){this.removeEvents();this.xAxis&&(E(this.chart.xAxis,this.xAxis),E(this.chart.axes,this.xAxis));this.yAxis&&(E(this.chart.yAxis,this.yAxis),\nE(this.chart.axes,this.yAxis));(this.series||[]).forEach(function(a){a.destroy&&a.destroy()});\"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered\".split(\" \").forEach(function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);[this.handles].forEach(function(a){J(a)},this)};return g}();A.Navigator||(A.Navigator=F,v.compose(k),H(G,\"beforeShowResetZoom\",function(){var a=this.options,e=a.navigator,f=a.rangeSelector;if((e&&\ne.enabled||f&&f.enabled)&&(!c&&\"x\"===a.chart.zoomType||c&&\"x\"===a.chart.pinchType))return!1}),H(G,\"beforeRender\",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new F(this)}),H(G,\"afterSetChartSize\",function(){var a=this.legend,c=this.navigator;if(c){var e=a&&a.options;var f=c.xAxis;var g=c.yAxis;var d=c.scrollbarHeight;this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+d,c.top=this.plotTop+d):(c.left=this.plotLeft+d,\nc.top=c.navigatorOptions.top||this.chartHeight-c.height-d-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&\"bottom\"===e.verticalAlign&&e.enabled&&!e.floating?a.legendHeight+h(e.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0));f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top=g.options.top=c.top,f.setAxisSize(),g.setAxisSize())}}),H(G,\"update\",function(a){var c=a.options.navigator||{},e=a.options.scrollbar||{};this.navigator||\nthis.scroller||!c.enabled&&!e.enabled||(r(!0,this.options.navigator,c),r(!0,this.options.scrollbar,e),delete a.options.navigator,delete a.options.scrollbar)}),H(G,\"afterUpdate\",function(a){this.navigator||this.scroller||!this.options.navigator.enabled&&!this.options.scrollbar.enabled||(this.scroller=this.navigator=new F(this),h(a.redraw,!0)&&this.redraw(a.animation))}),H(G,\"afterAddSeries\",function(){this.navigator&&this.navigator.setBaseSeries(null,!1)}),H(m,\"afterUpdate\",function(){this.chart.navigator&&\n!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}),G.prototype.callbacks.push(function(a){var c=a.navigator;c&&a.xAxis[0]&&(a=a.xAxis[0].getExtremes(),c.render(a.min,a.max))}));A.Navigator=F;return A.Navigator});P(A,\"parts/OrdinalAxis.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g,A){var v=A.addEvent,H=A.css,G=A.defined,N=A.pick,M=A.timeUnits;A=g.Chart;var y=g.Series,I=function(){function k(g){this.index={};this.axis=g}k.prototype.getExtendedPositions=\nfunction(){var k=this,v=k.axis,t=v.constructor.prototype,q=v.chart,r=v.series[0].currentDataGrouping,h=k.index,f=r?r.count+r.unitName:\"raw\",a=v.options.overscroll,l=v.getExtremes(),e;h||(h=k.index={});if(!h[f]){var c={series:[],chart:q,getExtremes:function(){return{min:l.dataMin,max:l.dataMax+a}},options:{ordinal:!0},ordinal:{},ordinal2lin:t.ordinal2lin,val2lin:t.val2lin};c.ordinal.axis=c;v.series.forEach(function(a){e={xAxis:c,xData:a.xData.slice(),chart:q,destroyGroupedData:g.noop,getProcessedData:g.Series.prototype.getProcessedData};\ne.xData=e.xData.concat(k.getOverscrollPositions());e.options={dataGrouping:r?{enabled:!0,forced:!0,approximation:\"open\",units:[[r.unitName,[r.count]]]}:{enabled:!1}};a.processData.apply(e);c.series.push(e)});v.beforeSetTickPositions.apply(c);h[f]=c.ordinal.positions}return h[f]};k.prototype.getGroupIntervalFactor=function(g,k,t){t=t.processedXData;var q=t.length,r=[];var h=this.groupIntervalFactor;if(!h){for(h=0;h<q-1;h++)r[h]=t[h+1]-t[h];r.sort(function(f,a){return f-a});r=r[Math.floor(q/2)];g=Math.max(g,\nt[0]);k=Math.min(k,t[q-1]);this.groupIntervalFactor=h=q*r/(k-g)}return h};k.prototype.getOverscrollPositions=function(){var g=this.axis,k=g.options.overscroll,t=this.overscrollPointsRange,q=[],r=g.dataMax;if(G(t))for(q.push(r);r<=g.dataMax+k;)r+=t,q.push(r);return q};k.prototype.postProcessTickInterval=function(g){var k=this.axis,t=this.slope;return t?k.options.breaks?k.closestPointRange||g:g/(t/k.closestPointRange):g};return k}(),J=function(){function g(){}g.compose=function(g,k,t){g.keepProps.push(\"ordinal\");\nvar q=g.prototype;q.beforeSetTickPositions=function(){var g=this.ordinal,h=[],f,a=!1,l=this.getExtremes(),e=l.min,c=l.max,m,k=this.isXAxis&&!!this.options.breaks;l=this.options.ordinal;var q=Number.MAX_VALUE,t=this.chart.options.chart.ignoreHiddenSeries,w;if(l||k){this.series.forEach(function(a,c){f=[];if(!(t&&!1===a.visible||!1===a.takeOrdinalPosition&&!k)&&(h=h.concat(a.processedXData),p=h.length,h.sort(function(a,b){return a-b}),q=Math.min(q,N(a.closestPointRange,q)),p)){for(c=0;c<p-1;)h[c]!==\nh[c+1]&&f.push(h[c+1]),c++;f[0]!==h[0]&&f.unshift(h[0]);h=f}a.isSeriesBoosting&&(w=!0)});w&&(h.length=0);var p=h.length;if(2<p){var C=h[1]-h[0];for(m=p-1;m--&&!a;)h[m+1]-h[m]!==C&&(a=!0);!this.options.keepOrdinalPadding&&(h[0]-e>C||c-h[h.length-1]>C)&&(a=!0)}else this.options.overscroll&&(2===p?q=h[1]-h[0]:1===p?(q=this.options.overscroll,h=[h[0],h[0]+q]):q=g.overscrollPointsRange);a?(this.options.overscroll&&(g.overscrollPointsRange=q,h=h.concat(g.getOverscrollPositions())),g.positions=h,C=this.ordinal2lin(Math.max(e,\nh[0]),!0),m=Math.max(this.ordinal2lin(Math.min(c,h[h.length-1]),!0),1),g.slope=c=(c-e)/(m-C),g.offset=e-C*c):(g.overscrollPointsRange=N(this.closestPointRange,g.overscrollPointsRange),g.positions=this.ordinal.slope=g.offset=void 0)}this.isOrdinal=l&&a;g.groupIntervalFactor=null};g.prototype.getTimeTicks=function(g,h,f,a,l,e,c){void 0===l&&(l=[]);void 0===e&&(e=0);var m=0,k,r,q={},w=[],p=-Number.MAX_VALUE,t=this.options.tickPixelInterval,v=this.chart.time,B=[];if(!this.options.ordinal&&!this.options.breaks||\n!l||3>l.length||\"undefined\"===typeof h)return v.getTimeTicks.apply(v,arguments);var d=l.length;for(k=0;k<d;k++){var b=k&&l[k-1]>f;l[k]<h&&(m=k);if(k===d-1||l[k+1]-l[k]>5*e||b){if(l[k]>p){for(r=v.getTimeTicks(g,l[m],l[k],a);r.length&&r[0]<=p;)r.shift();r.length&&(p=r[r.length-1]);B.push(w.length);w=w.concat(r)}m=k+1}if(b)break}r=r.info;if(c&&r.unitRange<=M.hour){k=w.length-1;for(m=1;m<k;m++)if(v.dateFormat(\"%d\",w[m])!==v.dateFormat(\"%d\",w[m-1])){q[w[m]]=\"day\";var n=!0}n&&(q[w[0]]=\"day\");r.higherRanks=\nq}r.segmentStarts=B;w.info=r;if(c&&G(t)){m=B=w.length;n=[];var x;for(v=[];m--;)k=this.translate(w[m]),x&&(v[m]=x-k),n[m]=x=k;v.sort();v=v[Math.floor(v.length/2)];v<.6*t&&(v=null);m=w[B-1]>f?B-1:B;for(x=void 0;m--;)k=n[m],B=Math.abs(x-k),x&&B<.8*t&&(null===v||B<.8*v)?(q[w[m]]&&!q[w[m+1]]?(B=m+1,x=k):B=m,w.splice(B,1)):x=k}return w};q.lin2val=function(g,h){var f=this.ordinal,a=f.positions;if(a){var l=f.slope,e=f.offset;f=a.length-1;if(h)if(0>g)g=a[0];else if(g>f)g=a[f];else{f=Math.floor(g);var c=g-\nf}else for(;f--;)if(h=l*f+e,g>=h){l=l*(f+1)+e;c=(g-h)/(l-h);break}return\"undefined\"!==typeof c&&\"undefined\"!==typeof a[f]?a[f]+(c?c*(a[f+1]-a[f]):0):g}return g};q.val2lin=function(g,h){var f=this.ordinal,a=f.positions;if(a){var l=a.length,e;for(e=l;e--;)if(a[e]===g){var c=e;break}for(e=l-1;e--;)if(g>a[e]||0===e){g=(g-a[e])/(a[e+1]-a[e]);c=e+g;break}h=h?c:f.slope*(c||0)+f.offset}else h=g;return h};q.ordinal2lin=q.val2lin;v(g,\"afterInit\",function(){this.ordinal||(this.ordinal=new I(this))});v(g,\"foundExtremes\",\nfunction(){this.isXAxis&&G(this.options.overscroll)&&this.max===this.dataMax&&(!this.chart.mouseIsDown||this.isInternal)&&(!this.eventArgs||this.eventArgs&&\"navigator\"!==this.eventArgs.trigger)&&(this.max+=this.options.overscroll,!this.isInternal&&G(this.userMin)&&(this.min+=this.options.overscroll))});v(g,\"afterSetScale\",function(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)});v(k,\"pan\",function(g){var h=this.xAxis[0],f=\nh.options.overscroll,a=g.originalEvent.chartX,l=this.options.chart&&this.options.chart.panning,e=!1;if(l&&\"y\"!==l.type&&h.options.ordinal&&h.series.length){var c=this.mouseDownX,m=h.getExtremes(),k=m.dataMax,r=m.min,q=m.max,w=this.hoverPoints,p=h.closestPointRange||h.ordinal&&h.ordinal.overscrollPointsRange;c=(c-a)/(h.translationSlope*(h.ordinal.slope||p));var t={ordinal:{positions:h.ordinal.getExtendedPositions()}};p=h.lin2val;var v=h.val2lin;if(!t.ordinal.positions)e=!0;else if(1<Math.abs(c)){w&&\nw.forEach(function(a){a.setState()});if(0>c){w=t;var B=h.ordinal.positions?h:t}else w=h.ordinal.positions?h:t,B=t;t=B.ordinal.positions;k>t[t.length-1]&&t.push(k);this.fixedRange=q-r;c=h.navigatorAxis.toFixedRange(null,null,p.apply(w,[v.apply(w,[r,!0])+c,!0]),p.apply(B,[v.apply(B,[q,!0])+c,!0]));c.min>=Math.min(m.dataMin,r)&&c.max<=Math.max(k,q)+f&&h.setExtremes(c.min,c.max,!0,!1,{trigger:\"pan\"});this.mouseDownX=a;H(this.container,{cursor:\"move\"})}}else e=!0;e||l&&/y/.test(l.type)?f&&(h.max=h.dataMax+\nf):g.preventDefault()});v(t,\"updatedData\",function(){var g=this.xAxis;g&&g.options.ordinal&&delete g.ordinal.index})};return g}();J.compose(k,A,y);return J});P(A,\"modules/broken-axis.src.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"parts/Stacking.js\"]],function(k,g,A,v){var H=A.addEvent,G=A.find,N=A.fireEvent,M=A.isArray,y=A.isNumber,I=A.pick,J=g.Series,E=function(){function g(g){this.hasBreaks=!1;this.axis=g}g.isInBreak=function(g,k){var q=g.repeat||Infinity,r=g.from,\nh=g.to-g.from;k=k>=r?(k-r)%q:q-(r-k)%q;return g.inclusive?k<=h:k<h&&0!==k};g.lin2Val=function(k){var t=this.brokenAxis;t=t&&t.breakArray;if(!t)return k;var q;for(q=0;q<t.length;q++){var r=t[q];if(r.from>=k)break;else r.to<k?k+=r.len:g.isInBreak(r,k)&&(k+=r.len)}return k};g.val2Lin=function(k){var t=this.brokenAxis;t=t&&t.breakArray;if(!t)return k;var q=k,r;for(r=0;r<t.length;r++){var h=t[r];if(h.to<=k)q-=h.len;else if(h.from>=k)break;else if(g.isInBreak(h,k)){q-=k-h.from;break}}return q};g.prototype.findBreakAt=\nfunction(g,k){return G(k,function(k){return k.from<g&&g<k.to})};g.prototype.isInAnyBreak=function(k,t){var q=this.axis,r=q.options.breaks,h=r&&r.length,f;if(h){for(;h--;)if(g.isInBreak(r[h],k)){var a=!0;f||(f=I(r[h].showPoints,!q.isXAxis))}var l=a&&t?a&&!f:a}return l};g.prototype.setBreaks=function(v,t){var q=this,r=q.axis,h=M(v)&&!!v.length;r.isDirty=q.hasBreaks!==h;q.hasBreaks=h;r.options.breaks=r.userOptions.breaks=v;r.forceRedraw=!0;r.series.forEach(function(f){f.isDirty=!0});h||r.val2lin!==g.val2Lin||\n(delete r.val2lin,delete r.lin2val);h&&(r.userOptions.ordinal=!1,r.lin2val=g.lin2Val,r.val2lin=g.val2Lin,r.setExtremes=function(f,a,h,e,c){if(q.hasBreaks){for(var g,l=this.options.breaks;g=q.findBreakAt(f,l);)f=g.to;for(;g=q.findBreakAt(a,l);)a=g.from;a<f&&(a=f)}k.prototype.setExtremes.call(this,f,a,h,e,c)},r.setAxisTranslation=function(f){k.prototype.setAxisTranslation.call(this,f);q.unitLength=null;if(q.hasBreaks){f=r.options.breaks||[];var a=[],h=[],e=0,c,m=r.userMin||r.min,u=r.userMax||r.max,\nt=I(r.pointRangePadding,0),v;f.forEach(function(a){c=a.repeat||Infinity;g.isInBreak(a,m)&&(m+=a.to%c-m%c);g.isInBreak(a,u)&&(u-=u%c-a.from%c)});f.forEach(function(e){p=e.from;for(c=e.repeat||Infinity;p-c>m;)p-=c;for(;p<m;)p+=c;for(v=p;v<u;v+=c)a.push({value:v,move:\"in\"}),a.push({value:v+(e.to-e.from),move:\"out\",size:e.breakSize})});a.sort(function(a,c){return a.value===c.value?(\"in\"===a.move?0:1)-(\"in\"===c.move?0:1):a.value-c.value});var w=0;var p=m;a.forEach(function(a){w+=\"in\"===a.move?1:-1;1===\nw&&\"in\"===a.move&&(p=a.value);0===w&&(h.push({from:p,to:a.value,len:a.value-p-(a.size||0)}),e+=a.value-p-(a.size||0))});r.breakArray=q.breakArray=h;q.unitLength=u-m-e+t;N(r,\"afterBreaks\");r.staticScale?r.transA=r.staticScale:q.unitLength&&(r.transA*=(u-r.min+t)/q.unitLength);t&&(r.minPixelPadding=r.transA*r.minPointOffset);r.min=m;r.max=u}});I(t,!0)&&r.chart.redraw()};return g}();g=function(){function g(){}g.compose=function(g,k){g.keepProps.push(\"brokenAxis\");var q=J.prototype;q.drawBreaks=function(g,\nh){var f=this,a=f.points,k,e,c,m;if(g&&g.brokenAxis&&g.brokenAxis.hasBreaks){var u=g.brokenAxis;h.forEach(function(h){k=u&&u.breakArray||[];e=g.isXAxis?g.min:I(f.options.threshold,g.min);a.forEach(function(a){m=I(a[\"stack\"+h.toUpperCase()],a[h]);k.forEach(function(f){if(y(e)&&y(m)){c=!1;if(e<f.from&&m>f.to||e>f.from&&m<f.from)c=\"pointBreak\";else if(e<f.from&&m>f.from&&m<f.to||e>f.from&&m>f.to&&m<f.from)c=\"pointInBreak\";c&&N(g,c,{point:a,brk:f})}})})})}};q.gappedPath=function(){var g=this.currentDataGrouping,\nh=g&&g.gapSize;g=this.options.gapSize;var f=this.points.slice(),a=f.length-1,k=this.yAxis,e;if(g&&0<a)for(\"value\"!==this.options.gapUnit&&(g*=this.basePointRange),h&&h>g&&h>=this.basePointRange&&(g=h),e=void 0;a--;)e&&!1!==e.visible||(e=f[a+1]),h=f[a],!1!==e.visible&&!1!==h.visible&&(e.x-h.x>g&&(e=(h.x+e.x)/2,f.splice(a+1,0,{isNull:!0,x:e}),k.stacking&&this.options.stacking&&(e=k.stacking.stacks[this.stackKey][e]=new v(k,k.options.stackLabels,!1,e,this.stack),e.total=0)),e=h);return this.getGraphPath(f)};\nH(g,\"init\",function(){this.brokenAxis||(this.brokenAxis=new E(this))});H(g,\"afterInit\",function(){\"undefined\"!==typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)});H(g,\"afterSetTickPositions\",function(){var g=this.brokenAxis;if(g&&g.hasBreaks){var h=this.tickPositions,f=this.tickPositions.info,a=[],k;for(k=0;k<h.length;k++)g.isInAnyBreak(h[k])||a.push(h[k]);this.tickPositions=a;this.tickPositions.info=f}});H(g,\"afterSetOptions\",function(){this.brokenAxis&&this.brokenAxis.hasBreaks&&\n(this.options.ordinal=!1)});H(k,\"afterGeneratePoints\",function(){var g=this.options.connectNulls,h=this.points,f=this.xAxis,a=this.yAxis;if(this.isDirty)for(var k=h.length;k--;){var e=h[k],c=!(null===e.y&&!1===g)&&(f&&f.brokenAxis&&f.brokenAxis.isInAnyBreak(e.x,!0)||a&&a.brokenAxis&&a.brokenAxis.isInAnyBreak(e.y,!0));e.visible=c?!1:!1!==e.options.visible}});H(k,\"afterRender\",function(){this.drawBreaks(this.xAxis,[\"x\"]);this.drawBreaks(this.yAxis,I(this.pointArrayMap,[\"y\"]))})};return g}();g.compose(k,\nJ);return g});P(A,\"masters/modules/broken-axis.src.js\",[],function(){});P(A,\"parts/DataGrouping.js\",[A[\"parts/DateTimeAxis.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Tooltip.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v,K){\"\";var G=K.addEvent,H=K.arrayMax,M=K.arrayMin,y=K.correctFloat,I=K.defined,J=K.error,E=K.extend,D=K.format,z=K.isNumber,t=K.merge,q=K.pick,r=g.Axis,h=g.defaultPlotOptions;K=g.Series;var f=g.approximations={sum:function(a){var c=a.length;if(!c&&a.hasNulls)var e=null;\nelse if(c)for(e=0;c--;)e+=a[c];return e},average:function(a){var c=a.length;a=f.sum(a);z(a)&&c&&(a=y(a/c));return a},averages:function(){var a=[];[].forEach.call(arguments,function(c){a.push(f.average(c))});return\"undefined\"===typeof a[0]?void 0:a},open:function(a){return a.length?a[0]:a.hasNulls?null:void 0},high:function(a){return a.length?H(a):a.hasNulls?null:void 0},low:function(a){return a.length?M(a):a.hasNulls?null:void 0},close:function(a){return a.length?a[a.length-1]:a.hasNulls?null:void 0},\nohlc:function(a,c,e,g){a=f.open(a);c=f.high(c);e=f.low(e);g=f.close(g);if(z(a)||z(c)||z(e)||z(g))return[a,c,e,g]},range:function(a,c){a=f.low(a);c=f.high(c);if(z(a)||z(c))return[a,c];if(null===a&&null===c)return null}},a=function(a,c,e,g){var h=this,d=h.data,b=h.options&&h.options.data,m=[],k=[],l=[],p=a.length,u=!!c,r=[],q=h.pointArrayMap,w=q&&q.length,v=[\"x\"].concat(q||[\"y\"]),C=0,F=0,y;g=\"function\"===typeof g?g:f[g]?f[g]:f[h.getDGApproximation&&h.getDGApproximation()||\"average\"];w?q.forEach(function(){r.push([])}):\nr.push([]);var A=w||1;for(y=0;y<=p&&!(a[y]>=e[0]);y++);for(y;y<=p;y++){for(;\"undefined\"!==typeof e[C+1]&&a[y]>=e[C+1]||y===p;){var D=e[C];h.dataGroupInfo={start:h.cropStart+F,length:r[0].length};var G=g.apply(h,r);h.pointClass&&!I(h.dataGroupInfo.options)&&(h.dataGroupInfo.options=t(h.pointClass.prototype.optionsToObject.call({series:h},h.options.data[h.cropStart+F])),v.forEach(function(a){delete h.dataGroupInfo.options[a]}));\"undefined\"!==typeof G&&(m.push(D),k.push(G),l.push(h.dataGroupInfo));F=\ny;for(D=0;D<A;D++)r[D].length=0,r[D].hasNulls=!1;C+=1;if(y===p)break}if(y===p)break;if(q)for(D=h.cropStart+y,G=d&&d[D]||h.pointClass.prototype.applyOptions.apply({series:h},[b[D]]),D=0;D<w;D++){var L=G[q[D]];z(L)?r[D].push(L):null===L&&(r[D].hasNulls=!0)}else D=u?c[y]:null,z(D)?r[0].push(D):null===D&&(r[0].hasNulls=!0)}return{groupedXData:m,groupedYData:k,groupMap:l}},l={approximations:f,groupData:a},e=K.prototype,c=e.processData,m=e.generatePoints,u={groupPixelWidth:2,dateTimeLabelFormats:{millisecond:[\"%A, %b %e, %H:%M:%S.%L\",\n\"%A, %b %e, %H:%M:%S.%L\",\"-%H:%M:%S.%L\"],second:[\"%A, %b %e, %H:%M:%S\",\"%A, %b %e, %H:%M:%S\",\"-%H:%M:%S\"],minute:[\"%A, %b %e, %H:%M\",\"%A, %b %e, %H:%M\",\"-%H:%M\"],hour:[\"%A, %b %e, %H:%M\",\"%A, %b %e, %H:%M\",\"-%H:%M\"],day:[\"%A, %b %e, %Y\",\"%A, %b %e\",\"-%A, %b %e, %Y\"],week:[\"Week from %A, %b %e, %Y\",\"%A, %b %e\",\"-%A, %b %e, %Y\"],month:[\"%B %Y\",\"%B\",\"-%B %Y\"],year:[\"%Y\",\"%Y\",\"-%Y\"]}},L={line:{},spline:{},area:{},areaspline:{},arearange:{},column:{groupPixelWidth:10},columnrange:{groupPixelWidth:10},\ncandlestick:{groupPixelWidth:10},ohlc:{groupPixelWidth:5}},F=g.defaultDataGroupingUnits=[[\"millisecond\",[1,2,5,10,20,25,50,100,200,500]],[\"second\",[1,2,5,10,15,30]],[\"minute\",[1,2,5,10,15,30]],[\"hour\",[1,2,3,4,6,8,12]],[\"day\",[1]],[\"week\",[1]],[\"month\",[1,3,6]],[\"year\",null]];e.getDGApproximation=function(){return this.is(\"arearange\")?\"range\":this.is(\"ohlc\")?\"ohlc\":this.is(\"column\")?\"sum\":\"average\"};e.groupData=a;e.processData=function(){var a=this.chart,f=this.options.dataGrouping,h=!1!==this.allowDG&&\nf&&q(f.enabled,a.options.isStock),g=this.visible||!a.options.chart.ignoreHiddenSeries,m,d=this.currentDataGrouping,b=!1;this.forceCrop=h;this.groupPixelWidth=null;this.hasProcessed=!0;h&&!this.requireSorting&&(this.requireSorting=b=!0);h=!1===c.apply(this,arguments)||!h;b&&(this.requireSorting=!1);if(!h){this.destroyGroupedData();h=f.groupAll?this.xData:this.processedXData;var l=f.groupAll?this.yData:this.processedYData,u=a.plotSizeX;a=this.xAxis;var r=a.options.ordinal,t=this.groupPixelWidth=a.getGroupPixelWidth&&\na.getGroupPixelWidth();if(t){this.isDirty=m=!0;this.points=null;b=a.getExtremes();var v=b.min;b=b.max;r=r&&a.ordinal&&a.ordinal.getGroupIntervalFactor(v,b,this)||1;t=t*(b-v)/u*r;u=a.getTimeTicks(k.AdditionsClass.prototype.normalizeTimeTickInterval(t,f.units||F),Math.min(v,h[0]),Math.max(b,h[h.length-1]),a.options.startOfWeek,h,this.closestPointRange);l=e.groupData.apply(this,[h,l,u,f.approximation]);h=l.groupedXData;r=l.groupedYData;var y=0;if(f.smoothed&&h.length){var z=h.length-1;for(h[z]=Math.min(h[z],\nb);z--&&0<z;)h[z]+=t/2;h[0]=Math.max(h[0],v)}for(z=1;z<u.length;z++)u.info.segmentStarts&&-1!==u.info.segmentStarts.indexOf(z)||(y=Math.max(u[z]-u[z-1],y));v=u.info;v.gapSize=y;this.closestPointRange=u.info.totalRange;this.groupMap=l.groupMap;if(I(h[0])&&h[0]<a.min&&g){if(!I(a.options.min)&&a.min<=a.dataMin||a.min===a.dataMin)a.min=Math.min(h[0],a.min);a.dataMin=Math.min(h[0],a.dataMin)}f.groupAll&&(f=this.cropData(h,r,a.min,a.max,1),h=f.xData,r=f.yData);this.processedXData=h;this.processedYData=\nr}else this.groupMap=null;this.hasGroupedData=m;this.currentDataGrouping=v;this.preventGraphAnimation=(d&&d.totalRange)!==(v&&v.totalRange)}};e.destroyGroupedData=function(){this.groupedData&&(this.groupedData.forEach(function(a,c){a&&(this.groupedData[c]=a.destroy?a.destroy():null)},this),this.groupedData.length=0)};e.generatePoints=function(){m.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};G(A,\"update\",function(){if(this.dataGroup)return J(24,!1,this.series.chart),\n!1});G(v,\"headerFormatter\",function(a){var c=this.chart,e=c.time,f=a.labelConfig,h=f.series,d=h.tooltipOptions,b=h.options.dataGrouping,g=d.xDateFormat,m=h.xAxis,k=d[(a.isFooter?\"footer\":\"header\")+\"Format\"];if(m&&\"datetime\"===m.options.type&&b&&z(f.key)){var l=h.currentDataGrouping;b=b.dateTimeLabelFormats||u.dateTimeLabelFormats;if(l)if(d=b[l.unitName],1===l.count)g=d[0];else{g=d[1];var r=d[2]}else!g&&b&&(g=this.getXDateFormat(f,d,m));g=e.dateFormat(g,f.key);r&&(g+=e.dateFormat(r,f.key+l.totalRange-\n1));h.chart.styledMode&&(k=this.styledModeFormat(k));a.text=D(k,{point:E(f.point,{key:g}),series:h},c);a.preventDefault()}});G(K,\"destroy\",e.destroyGroupedData);G(K,\"afterSetOptions\",function(a){a=a.options;var c=this.type,e=this.chart.options.plotOptions,f=h[c].dataGrouping,g=this.useCommonDataGrouping&&u;if(L[c]||g)f||(f=t(u,L[c])),a.dataGrouping=t(g,f,e.series&&e.series.dataGrouping,e[c].dataGrouping,this.userOptions.dataGrouping)});G(r,\"afterSetScale\",function(){this.series.forEach(function(a){a.hasProcessed=\n!1})});r.prototype.getGroupPixelWidth=function(){var a=this.series,c=a.length,e,f=0,h=!1,d;for(e=c;e--;)(d=a[e].options.dataGrouping)&&(f=Math.max(f,q(d.groupPixelWidth,u.groupPixelWidth)));for(e=c;e--;)(d=a[e].options.dataGrouping)&&a[e].hasProcessed&&(c=(a[e].processedXData||a[e].data).length,a[e].groupPixelWidth||c>this.chart.plotSizeX/f||c&&d.forced)&&(h=!0);return h?f:0};r.prototype.setDataGrouping=function(a,c){var e;c=q(c,!0);a||(a={forced:!1,units:null});if(this instanceof r)for(e=this.series.length;e--;)this.series[e].update({dataGrouping:a},\n!1);else this.chart.options.series.forEach(function(c){c.dataGrouping=a},!1);this.ordinal&&(this.ordinal.slope=void 0);c&&this.chart.redraw()};g.dataGrouping=l;\"\";return l});P(A,\"parts/OHLCSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,A){A=A.seriesType;var v=k.seriesTypes;A(\"ohlc\",\"column\",{lineWidth:1,tooltip:{pointFormat:'<span style=\"color:{point.color}\">\\u25cf</span> <b> {series.name}</b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},\nthreshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:[\"open\",\"high\",\"low\",\"close\"],toYData:function(g){return[g.open,g.high,g.low,g.close]},pointValKey:\"close\",pointAttrToOptions:{stroke:\"color\",\"stroke-width\":\"lineWidth\"},init:function(){v.column.prototype.init.apply(this,arguments);this.options.stacking=void 0},pointAttribs:function(g,k){k=v.column.prototype.pointAttribs.call(this,g,k);var A=this.options;delete k.fill;!g.options.color&&A.upColor&&g.open<g.close&&\n(k.stroke=A.upColor);return k},translate:function(){var g=this,k=g.yAxis,A=!!g.modifyValue,H=[\"plotOpen\",\"plotHigh\",\"plotLow\",\"plotClose\",\"yBottom\"];v.column.prototype.translate.apply(g);g.points.forEach(function(v){[v.open,v.high,v.low,v.close,v.low].forEach(function(y,G){null!==y&&(A&&(y=g.modifyValue(y)),v[H[G]]=k.toPixels(y,!0))});v.tooltipPos[1]=v.plotHigh+k.pos-g.chart.plotTop})},drawPoints:function(){var g=this,k=g.chart,v=function(g,k,v){var y=g[0];g=g[1];\"number\"===typeof y[2]&&(y[2]=Math.max(v+\nk,y[2]));\"number\"===typeof g[2]&&(g[2]=Math.min(v-k,g[2]))};g.points.forEach(function(A){var y=A.graphic,G=!y;if(\"undefined\"!==typeof A.plotY){y||(A.graphic=y=k.renderer.path().add(g.group));k.styledMode||y.attr(g.pointAttribs(A,A.selected&&\"select\"));var H=y.strokeWidth();var E=H%2/2;var D=Math.round(A.plotX)-E;var z=Math.round(A.shapeArgs.width/2);var t=[[\"M\",D,Math.round(A.yBottom)],[\"L\",D,Math.round(A.plotHigh)]];if(null!==A.open){var q=Math.round(A.plotOpen)+E;t.push([\"M\",D,q],[\"L\",D-z,q]);v(t,\nH/2,q)}null!==A.close&&(q=Math.round(A.plotClose)+E,t.push([\"M\",D,q],[\"L\",D+z,q]),v(t,H/2,q));y[G?\"attr\":\"animate\"]({d:t}).addClass(A.getClassName(),!0)}})},animate:null},{getClassName:function(){return g.prototype.getClassName.call(this)+(this.open<this.close?\" highcharts-point-up\":\" highcharts-point-down\")}});\"\"});P(A,\"parts/CandlestickSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=g.merge;g=g.seriesType;var v=k.defaultPlotOptions,K=k.seriesTypes;g(\"candlestick\",\n\"ohlc\",A(v.column,{states:{hover:{lineWidth:2}},tooltip:v.ohlc.tooltip,threshold:null,lineColor:\"#000000\",lineWidth:1,upColor:\"#ffffff\",stickyTracking:!0}),{pointAttribs:function(g,k){var v=K.column.prototype.pointAttribs.call(this,g,k),y=this.options,A=g.open<g.close,G=y.lineColor||this.color;v[\"stroke-width\"]=y.lineWidth;v.fill=g.options.color||(A?y.upColor||this.color:this.color);v.stroke=g.options.lineColor||(A?y.upLineColor||G:G);k&&(g=y.states[k],v.fill=g.color||v.fill,v.stroke=g.lineColor||\nv.stroke,v[\"stroke-width\"]=g.lineWidth||v[\"stroke-width\"]);return v},drawPoints:function(){var g=this,k=g.chart,v=g.yAxis.reversed;g.points.forEach(function(y){var A=y.graphic,G=!A;if(\"undefined\"!==typeof y.plotY){A||(y.graphic=A=k.renderer.path().add(g.group));g.chart.styledMode||A.attr(g.pointAttribs(y,y.selected&&\"select\")).shadow(g.options.shadow);var E=A.strokeWidth()%2/2;var D=Math.round(y.plotX)-E;var z=y.plotOpen;var t=y.plotClose;var q=Math.min(z,t);z=Math.max(z,t);var r=Math.round(y.shapeArgs.width/\n2);t=v?z!==y.yBottom:Math.round(q)!==Math.round(y.plotHigh);var h=v?Math.round(q)!==Math.round(y.plotHigh):z!==y.yBottom;q=Math.round(q)+E;z=Math.round(z)+E;E=[];E.push([\"M\",D-r,z],[\"L\",D-r,q],[\"L\",D+r,q],[\"L\",D+r,z],[\"Z\"],[\"M\",D,q],[\"L\",D,t?Math.round(v?y.yBottom:y.plotHigh):q],[\"M\",D,z],[\"L\",D,h?Math.round(v?y.plotHigh:y.yBottom):z]);A[G?\"attr\":\"animate\"]({d:E}).addClass(y.getClassName(),!0)}})}});\"\"});P(A,\"mixins/on-series.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){var A=\ng.defined,v=g.stableSort,K=k.seriesTypes;return{getPlotBox:function(){return k.Series.prototype.getPlotBox.call(this.options.onSeries&&this.chart.get(this.options.onSeries)||this)},translate:function(){K.column.prototype.translate.apply(this);var g=this,k=g.options,H=g.chart,y=g.points,I=y.length-1,J,E=k.onSeries;E=E&&H.get(E);k=k.onKey||\"y\";var D=E&&E.options.step,z=E&&E.points,t=z&&z.length,q=H.inverted,r=g.xAxis,h=g.yAxis,f=0,a;if(E&&E.visible&&t){f=(E.pointXOffset||0)+(E.barW||0)/2;H=E.currentDataGrouping;\nvar l=z[t-1].x+(H?H.totalRange:0);v(y,function(a,c){return a.x-c.x});for(k=\"plot\"+k[0].toUpperCase()+k.substr(1);t--&&y[I];){var e=z[t];H=y[I];H.y=e.y;if(e.x<=H.x&&\"undefined\"!==typeof e[k]){if(H.x<=l&&(H.plotY=e[k],e.x<H.x&&!D&&(a=z[t+1])&&\"undefined\"!==typeof a[k])){var c=(H.x-e.x)/(a.x-e.x);H.plotY+=c*(a[k]-e[k]);H.y+=c*(a.y-e.y)}I--;t++;if(0>I)break}}}y.forEach(function(a,c){a.plotX+=f;if(\"undefined\"===typeof a.plotY||q)0<=a.plotX&&a.plotX<=r.len?q?(a.plotY=r.translate(a.x,0,1,0,1),a.plotX=A(a.y)?\nh.translate(a.y,0,0,0,1):0):a.plotY=(r.opposite?0:g.yAxis.len)+r.offset:a.shapeArgs={};if((J=y[c-1])&&J.plotX===a.plotX){\"undefined\"===typeof J.stackIndex&&(J.stackIndex=0);var e=J.stackIndex+1}a.stackIndex=e});this.onSeries=E}}});P(A,\"parts/FlagsSeries.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"],A[\"mixins/on-series.js\"]],function(k,g,A){function v(g){q[g+\"pin\"]=function(h,f,a,k,e){var c=e&&e.anchorX;e=e&&e.anchorY;\"circle\"===g&&k>a&&(h-=Math.round((k-a)/2),a=k);var m=q[g](h,f,a,k);if(c&&e){var l=\nc;\"circle\"===g?l=h+a/2:(h=m[0],a=m[1],\"M\"===h[0]&&\"L\"===a[0]&&(l=(h[1]+a[1])/2));m.push([\"M\",l,f>e?f:f+k],[\"L\",c,e]);m=m.concat(q.circle(c-1,e-1,2,2))}return m}}var H=g.addEvent,G=g.defined,N=g.isNumber,M=g.merge,y=g.objectEach,I=g.seriesType,J=g.wrap;g=k.noop;var E=k.Renderer,D=k.Series,z=k.TrackerMixin,t=k.VMLRenderer,q=k.SVGRenderer.prototype.symbols;I(\"flags\",\"column\",{pointRange:0,allowOverlapX:!1,shape:\"flag\",stackDistance:12,textAlign:\"center\",tooltip:{pointFormat:\"{point.text}<br/>\"},threshold:null,\ny:-30,fillColor:\"#ffffff\",lineWidth:1,states:{hover:{lineColor:\"#000000\",fillColor:\"#ccd6eb\"}},style:{fontSize:\"11px\",fontWeight:\"bold\"}},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:[\"markerGroup\"],forceCrop:!0,init:D.prototype.init,pointAttribs:function(g,h){var f=this.options,a=g&&g.color||this.color,k=f.lineColor,e=g&&g.lineWidth;g=g&&g.fillColor||f.fillColor;h&&(g=f.states[h].fillColor,k=f.states[h].lineColor,e=f.states[h].lineWidth);return{fill:g||a,stroke:k||\na,\"stroke-width\":e||f.lineWidth||0}},translate:A.translate,getPlotBox:A.getPlotBox,drawPoints:function(){var g=this.points,h=this.chart,f=h.renderer,a=h.inverted,l=this.options,e=l.y,c,m=this.yAxis,u={},q=[];for(c=g.length;c--;){var t=g[c];var w=(a?t.plotY:t.plotX)>this.xAxis.len;var p=t.plotX;var v=t.stackIndex;var z=t.options.shape||l.shape;var B=t.plotY;\"undefined\"!==typeof B&&(B=t.plotY+e-(\"undefined\"!==typeof v&&v*l.stackDistance));t.anchorX=v?void 0:t.plotX;var d=v?void 0:t.plotY;var b=\"flag\"!==\nz;v=t.graphic;\"undefined\"!==typeof B&&0<=p&&!w?(v||(v=t.graphic=f.label(\"\",null,null,z,null,null,l.useHTML),h.styledMode||v.attr(this.pointAttribs(t)).css(M(l.style,t.style)),v.attr({align:b?\"center\":\"left\",width:l.width,height:l.height,\"text-align\":l.textAlign}).addClass(\"highcharts-point\").add(this.markerGroup),t.graphic.div&&(t.graphic.div.point=t),h.styledMode||v.shadow(l.shadow),v.isNew=!0),0<p&&(p-=v.strokeWidth()%2),z={y:B,anchorY:d},l.allowOverlapX&&(z.x=p,z.anchorX=t.anchorX),v.attr({text:t.options.title||\nl.title||\"A\"})[v.isNew?\"attr\":\"animate\"](z),l.allowOverlapX||(u[t.plotX]?u[t.plotX].size=Math.max(u[t.plotX].size,v.width):u[t.plotX]={align:b?.5:0,size:v.width,target:p,anchorX:p}),t.tooltipPos=[p,B+m.pos-h.plotTop]):v&&(t.graphic=v.destroy())}l.allowOverlapX||(y(u,function(a){a.plotX=a.anchorX;q.push(a)}),k.distribute(q,a?m.len:this.xAxis.len,100),g.forEach(function(a){var b=a.graphic&&u[a.plotX];b&&(a.graphic[a.graphic.isNew?\"attr\":\"animate\"]({x:b.pos+b.align*b.size,anchorX:a.anchorX}),G(b.pos)?\na.graphic.isNew=!1:(a.graphic.attr({x:-9999,anchorX:-9999}),a.graphic.isNew=!0))}));l.useHTML&&J(this.markerGroup,\"on\",function(a){return k.SVGElement.prototype.on.apply(a.apply(this,[].slice.call(arguments,1)),[].slice.call(arguments,1))})},drawTracker:function(){var g=this.points;z.drawTrackerPoint.apply(this);g.forEach(function(h){var f=h.graphic;f&&H(f.element,\"mouseover\",function(){0<h.stackIndex&&!h.raised&&(h._y=f.y,f.attr({y:h._y-8}),h.raised=!0);g.forEach(function(a){a!==h&&a.raised&&a.graphic&&\n(a.graphic.attr({y:a._y}),a.raised=!1)})})})},animate:function(g){g&&this.setClip()},setClip:function(){D.prototype.setClip.apply(this,arguments);!1!==this.options.clip&&this.sharedClipKey&&this.markerGroup.clip(this.chart[this.sharedClipKey])},buildKDTree:g,invertGroups:g},{isValid:function(){return N(this.y)||\"undefined\"===typeof this.y}});q.flag=function(g,h,f,a,k){var e=k&&k.anchorX||g;k=k&&k.anchorY||h;var c=q.circle(e-1,k-1,2,2);c.push([\"M\",e,k],[\"L\",g,h+a],[\"L\",g,h],[\"L\",g+f,h],[\"L\",g+f,h+\na],[\"L\",g,h+a],[\"Z\"]);return c};v(\"circle\");v(\"square\");E===t&&[\"circlepin\",\"flag\",\"squarepin\"].forEach(function(g){t.prototype.symbols[g]=q[g]});\"\"});P(A,\"parts/RangeSelector.js\",[A[\"parts/Globals.js\"],A[\"parts/Utilities.js\"]],function(k,g){function A(a){this.init(a)}var v=g.addEvent,K=g.createElement,G=g.css,N=g.defined,M=g.destroyObjectProperties,y=g.discardElement,I=g.extend,J=g.fireEvent,E=g.isNumber,D=g.merge,z=g.objectEach,t=g.pick,q=g.pInt,r=g.splat,h=k.Axis;g=k.Chart;var f=k.defaultOptions;\nI(f,{rangeSelector:{verticalAlign:\"top\",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputPosition:{align:\"right\",x:0,y:0},buttonPosition:{align:\"left\",x:0,y:0},labelStyle:{color:\"#666666\"}}});f.lang=D(f.lang,{rangeSelectorZoom:\"Zoom\",rangeSelectorFrom:\"From\",rangeSelectorTo:\"To\"});A.prototype={clickButton:function(a,f){var e=this.chart,c=this.buttonOptions[a],g=e.xAxis[0],k=e.scroller&&e.scroller.getUnionExtremes()||g||{},l=k.dataMin,q=k.dataMax,w=g&&Math.round(Math.min(g.max,\nt(q,g.max))),p=c.type;k=c._range;var C,y=c.dataGrouping;if(null!==l&&null!==q){e.fixedRange=k;y&&(this.forcedDataGrouping=!0,h.prototype.setDataGrouping.call(g||{chart:this.chart},y,!1),this.frozenStates=c.preserveDataGrouping);if(\"month\"===p||\"year\"===p)if(g){p={range:c,max:w,chart:e,dataMin:l,dataMax:q};var B=g.minFromRange.call(p);E(p.newMax)&&(w=p.newMax)}else k=c;else if(k)B=Math.max(w-k,l),w=Math.min(B+k,q);else if(\"ytd\"===p)if(g)\"undefined\"===typeof q&&(l=Number.MAX_VALUE,q=Number.MIN_VALUE,\ne.series.forEach(function(a){a=a.xData;l=Math.min(a[0],l);q=Math.max(a[a.length-1],q)}),f=!1),w=this.getYTDExtremes(q,l,e.time.useUTC),B=C=w.min,w=w.max;else{this.deferredYTDClick=a;return}else\"all\"===p&&g&&(B=l,w=q);B+=c._offsetMin;w+=c._offsetMax;this.setSelected(a);if(g)g.setExtremes(B,w,t(f,1),null,{trigger:\"rangeSelectorButton\",rangeSelectorButton:c});else{var d=r(e.options.xAxis)[0];var b=d.range;d.range=k;var n=d.min;d.min=C;v(e,\"load\",function(){d.range=b;d.min=n})}}},setSelected:function(a){this.selected=\nthis.options.selected=a},defaultButtons:[{type:\"month\",count:1,text:\"1m\"},{type:\"month\",count:3,text:\"3m\"},{type:\"month\",count:6,text:\"6m\"},{type:\"ytd\",text:\"YTD\"},{type:\"year\",count:1,text:\"1y\"},{type:\"all\",text:\"All\"}],init:function(a){var f=this,e=a.options.rangeSelector,c=e.buttons||[].concat(f.defaultButtons),g=e.selected,h=function(){var a=f.minInput,c=f.maxInput;a&&a.blur&&J(a,\"blur\");c&&c.blur&&J(c,\"blur\")};f.chart=a;f.options=e;f.buttons=[];f.buttonOptions=c;this.unMouseDown=v(a.container,\n\"mousedown\",h);this.unResize=v(a,\"resize\",h);c.forEach(f.computeButtonRange);\"undefined\"!==typeof g&&c[g]&&this.clickButton(g,!1);v(a,\"load\",function(){a.xAxis&&a.xAxis[0]&&v(a.xAxis[0],\"setExtremes\",function(c){this.max-this.min!==a.fixedRange&&\"rangeSelectorButton\"!==c.trigger&&\"updatedData\"!==c.trigger&&f.forcedDataGrouping&&!f.frozenStates&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this,f=this.chart,e=f.xAxis[0],c=Math.round(e.max-e.min),g=!e.hasVisibleSeries,h=f.scroller&&\nf.scroller.getUnionExtremes()||e,k=h.dataMin,q=h.dataMax;f=a.getYTDExtremes(q,k,f.time.useUTC);var r=f.min,p=f.max,t=a.selected,v=E(t),B=a.options.allButtonsEnabled,d=a.buttons;a.buttonOptions.forEach(function(b,f){var h=b._range,m=b.type,l=b.count||1,n=d[f],u=0,w=b._offsetMax-b._offsetMin;b=f===t;var C=h>q-k,y=h<e.minRange,z=!1,A=!1;h=h===c;(\"month\"===m||\"year\"===m)&&c+36E5>=864E5*{month:28,year:365}[m]*l-w&&c-36E5<=864E5*{month:31,year:366}[m]*l+w?h=!0:\"ytd\"===m?(h=p-r+w===c,z=!b):\"all\"===m&&(h=\ne.max-e.min>=q-k,A=!b&&v&&h);m=!B&&(C||y||A||g);l=b&&h||h&&!v&&!z||b&&a.frozenStates;m?u=3:l&&(v=!0,u=2);n.state!==u&&(n.setState(u),0===u&&t===f&&a.setSelected(null))})},computeButtonRange:function(a){var f=a.type,e=a.count||1,c={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(c[f])a._range=c[f]*e;else if(\"month\"===f||\"year\"===f)a._range=864E5*{month:30,year:365}[f]*e;a._offsetMin=t(a.offsetMin,0);a._offsetMax=t(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,\nf){var e=this.chart.options.rangeSelector,c=this.chart.time,g=this[a+\"Input\"];N(f)&&(g.previousValue=g.HCTime,g.HCTime=f);g.value=c.dateFormat(e.inputEditDateFormat||\"%Y-%m-%d\",g.HCTime);this[a+\"DateBox\"].attr({text:c.dateFormat(e.inputDateFormat||\"%b %e, %Y\",g.HCTime)})},showInput:function(a){var f=this.inputGroup,e=this[a+\"DateBox\"];G(this[a+\"Input\"],{left:f.translateX+e.x+\"px\",top:f.translateY+\"px\",width:e.width-2+\"px\",height:e.height-2+\"px\",border:\"2px solid silver\"})},hideInput:function(a){G(this[a+\n\"Input\"],{border:0,width:\"1px\",height:\"1px\"});this.setInputValue(a)},drawInput:function(a){function g(){var a=p.value,d=(r.inputDateParser||Date.parse)(a),b=c.xAxis[0],f=c.scroller&&c.scroller.xAxis?c.scroller.xAxis:b,g=f.dataMin;f=f.dataMax;d!==p.previousValue&&(p.previousValue=d,E(d)||(d=a.split(\"-\"),d=Date.UTC(q(d[0]),q(d[1])-1,q(d[2]))),E(d)&&(c.time.useUTC||(d+=6E4*(new Date).getTimezoneOffset()),w?d>e.maxInput.HCTime?d=void 0:d<g&&(d=g):d<e.minInput.HCTime?d=void 0:d>f&&(d=f),\"undefined\"!==\ntypeof d&&b.setExtremes(w?d:b.min,w?b.max:d,void 0,void 0,{trigger:\"rangeSelectorInput\"})))}var e=this,c=e.chart,h=c.renderer.style||{},u=c.renderer,r=c.options.rangeSelector,t=e.div,w=\"min\"===a,p,v,y=this.inputGroup;this[a+\"Label\"]=v=u.label(f.lang[w?\"rangeSelectorFrom\":\"rangeSelectorTo\"],this.inputGroup.offset).addClass(\"highcharts-range-label\").attr({padding:2}).add(y);y.offset+=v.width+5;this[a+\"DateBox\"]=u=u.label(\"\",y.offset).addClass(\"highcharts-range-input\").attr({padding:2,width:r.inputBoxWidth||\n90,height:r.inputBoxHeight||17,\"text-align\":\"center\"}).on(\"click\",function(){e.showInput(a);e[a+\"Input\"].focus()});c.styledMode||u.attr({stroke:r.inputBoxBorderColor||\"#cccccc\",\"stroke-width\":1});u.add(y);y.offset+=u.width+(w?10:0);this[a+\"Input\"]=p=K(\"input\",{name:a,className:\"highcharts-range-selector\",type:\"text\"},{top:c.plotTop+\"px\"},t);c.styledMode||(v.css(D(h,r.labelStyle)),u.css(D({color:\"#333333\"},h,r.inputStyle)),G(p,I({position:\"absolute\",border:0,width:\"1px\",height:\"1px\",padding:0,textAlign:\"center\",\nfontSize:h.fontSize,fontFamily:h.fontFamily,top:\"-9999em\"},r.inputStyle)));p.onfocus=function(){e.showInput(a)};p.onblur=function(){p===k.doc.activeElement&&g();e.hideInput(a);p.blur()};p.onchange=g;p.onkeypress=function(a){13===a.keyCode&&g()}},getPosition:function(){var a=this.chart,f=a.options.rangeSelector;a=\"top\"===f.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+f.buttonPosition.y,inputTop:a+f.inputPosition.y-10}},getYTDExtremes:function(a,f,e){var c=this.chart.time,g=new c.Date(a),\nh=c.get(\"FullYear\",g);e=e?c.Date.UTC(h,0,1):+new c.Date(h,0,1);f=Math.max(f||0,e);g=g.getTime();return{max:Math.min(a||g,g),min:f}},render:function(a,g){var e=this,c=e.chart,h=c.renderer,k=c.container,l=c.options,q=l.exporting&&!1!==l.exporting.enabled&&l.navigation&&l.navigation.buttonOptions,r=f.lang,p=e.div,v=l.rangeSelector,y=t(l.chart.style&&l.chart.style.zIndex,0)+1;l=v.floating;var B=e.buttons;p=e.inputGroup;var d=v.buttonTheme,b=v.buttonPosition,n=v.inputPosition,x=v.inputEnabled,z=d&&d.states,\nA=c.plotLeft,D=e.buttonGroup,E,G=e.options.verticalAlign,H=c.legend,I=H&&H.options,J=b.y,M=n.y,N=c.hasLoaded,P=N?\"animate\":\"attr\",T=0,S=0;if(!1!==v.enabled){e.rendered||(e.group=E=h.g(\"range-selector-group\").attr({zIndex:7}).add(),e.buttonGroup=D=h.g(\"range-selector-buttons\").add(E),e.zoomText=h.text(r.rangeSelectorZoom,0,15).add(D),c.styledMode||(e.zoomText.css(v.labelStyle),d[\"stroke-width\"]=t(d[\"stroke-width\"],0)),e.buttonOptions.forEach(function(a,b){B[b]=h.button(a.text,0,0,function(c){var d=\na.events&&a.events.click,f;d&&(f=d.call(a,c));!1!==f&&e.clickButton(b);e.isActive=!0},d,z&&z.hover,z&&z.select,z&&z.disabled).attr({\"text-align\":\"center\"}).add(D)}),!1!==x&&(e.div=p=K(\"div\",null,{position:\"relative\",height:0,zIndex:y}),k.parentNode.insertBefore(p,k),e.inputGroup=p=h.g(\"input-group\").add(E),p.offset=0,e.drawInput(\"min\"),e.drawInput(\"max\")));e.zoomText[P]({x:t(A+b.x,A)});var da=t(A+b.x,A)+e.zoomText.getBBox().width+5;e.buttonOptions.forEach(function(a,b){B[b][P]({x:da});da+=B[b].width+\nt(v.buttonSpacing,5)});A=c.plotLeft-c.spacing[3];e.updateButtonStates();q&&this.titleCollision(c)&&\"top\"===G&&\"right\"===b.align&&b.y+D.getBBox().height-12<(q.y||0)+q.height&&(T=-40);k=b.x-c.spacing[3];\"right\"===b.align?k+=T-A:\"center\"===b.align&&(k-=A/2);D.align({y:b.y,width:D.getBBox().width,align:b.align,x:k},!0,c.spacingBox);e.group.placed=N;e.buttonGroup.placed=N;!1!==x&&(T=q&&this.titleCollision(c)&&\"top\"===G&&\"right\"===n.align&&n.y-p.getBBox().height-12<(q.y||0)+q.height+c.spacing[0]?-40:0,\n\"left\"===n.align?k=A:\"right\"===n.align&&(k=-Math.max(c.axisOffset[1],-T)),p.align({y:n.y,width:p.getBBox().width,align:n.align,x:n.x+k-2},!0,c.spacingBox),q=p.alignAttr.translateX+p.alignOptions.x-T+p.getBBox().x+2,k=p.alignOptions.width,r=D.alignAttr.translateX+D.getBBox().x,A=D.getBBox().width+20,(n.align===b.align||r+A>q&&q+k>r&&J<M+p.getBBox().height)&&p.attr({translateX:p.alignAttr.translateX+(c.axisOffset[1]>=-T?0:-T),translateY:p.alignAttr.translateY+D.getBBox().height+10}),e.setInputValue(\"min\",\na),e.setInputValue(\"max\",g),e.inputGroup.placed=N);e.group.align({verticalAlign:G},!0,c.spacingBox);a=e.group.getBBox().height+20;g=e.group.alignAttr.translateY;\"bottom\"===G&&(H=I&&\"bottom\"===I.verticalAlign&&I.enabled&&!I.floating?H.legendHeight+t(I.margin,10):0,a=a+H-20,S=g-a-(l?0:v.y)-(c.titleOffset?c.titleOffset[2]:0)-10);if(\"top\"===G)l&&(S=0),c.titleOffset&&c.titleOffset[0]&&(S=c.titleOffset[0]),S+=c.margin[0]-c.spacing[0]||0;else if(\"middle\"===G)if(M===J)S=0>M?g+void 0:g;else if(M||J)S=0>M||\n0>J?S-Math.min(M,J):g-a+NaN;e.group.translate(v.x,v.y+Math.floor(S));!1!==x&&(e.minInput.style.marginTop=e.group.translateY+\"px\",e.maxInput.style.marginTop=e.group.translateY+\"px\");e.rendered=!0}},getHeight:function(){var a=this.options,f=this.group,e=a.y,c=a.buttonPosition.y,g=a.inputPosition.y;if(a.height)return a.height;a=f?f.getBBox(!0).height+13+e:0;f=Math.min(g,c);if(0>g&&0>c||0<g&&0<c)a+=Math.abs(f);return a},titleCollision:function(a){return!(a.options.title.text||a.options.subtitle.text)},\nupdate:function(a){var f=this.chart;D(!0,f.options.rangeSelector,a);this.destroy();this.init(f);f.rangeSelector.render()},destroy:function(){var a=this,f=a.minInput,e=a.maxInput;a.unMouseDown();a.unResize();M(a.buttons);f&&(f.onfocus=f.onblur=f.onchange=null);e&&(e.onfocus=e.onblur=e.onchange=null);z(a,function(c,e){c&&\"chart\"!==e&&(c.destroy?c.destroy():c.nodeType&&y(this[e]));c!==A.prototype[e]&&(a[e]=null)},this)}};h.prototype.minFromRange=function(){var a=this.range,f=a.type,e=this.max,c=this.chart.time,\ng=function(a,e){var g=\"year\"===f?\"FullYear\":\"Month\",h=new c.Date(a),k=c.get(g,h);c.set(g,h,k+e);k===c.get(g,h)&&c.set(\"Date\",h,0);return h.getTime()-a};if(E(a)){var h=e-a;var k=a}else h=e+g(e,-a.count),this.chart&&(this.chart.fixedRange=e-h);var q=t(this.dataMin,Number.MIN_VALUE);E(h)||(h=q);h<=q&&(h=q,\"undefined\"===typeof k&&(k=g(h,a.count)),this.newMax=Math.min(h+k,this.dataMax));E(e)||(h=void 0);return h};k.RangeSelector||(v(g,\"afterGetContainer\",function(){this.options.rangeSelector.enabled&&\n(this.rangeSelector=new A(this))}),v(g,\"beforeRender\",function(){var a=this.axes,f=this.rangeSelector;f&&(E(f.deferredYTDClick)&&(f.clickButton(f.deferredYTDClick),delete f.deferredYTDClick),a.forEach(function(a){a.updateNames();a.setScale()}),this.getAxisMargins(),f.render(),a=f.options.verticalAlign,f.options.floating||(\"bottom\"===a?this.extraBottomMargin=!0:\"middle\"!==a&&(this.extraTopMargin=!0)))}),v(g,\"update\",function(a){var f=a.options.rangeSelector;a=this.rangeSelector;var e=this.extraBottomMargin,\nc=this.extraTopMargin;f&&f.enabled&&!N(a)&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=new A(this));this.extraTopMargin=this.extraBottomMargin=!1;a&&(a.render(),f=f&&f.verticalAlign||a.options&&a.options.verticalAlign,a.options.floating||(\"bottom\"===f?this.extraBottomMargin=!0:\"middle\"!==f&&(this.extraTopMargin=!0)),this.extraBottomMargin!==e||this.extraTopMargin!==c)&&(this.isDirtyBox=!0)}),v(g,\"render\",function(){var a=this.rangeSelector;a&&!a.options.floating&&(a.render(),a=a.options.verticalAlign,\n\"bottom\"===a?this.extraBottomMargin=!0:\"middle\"!==a&&(this.extraTopMargin=!0))}),v(g,\"getMargins\",function(){var a=this.rangeSelector;a&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+=a),this.extraBottomMargin&&(this.marginBottom+=a))}),g.prototype.callbacks.push(function(a){function f(){e=a.xAxis[0].getExtremes();g=a.legend;k=null===c||void 0===c?void 0:c.options.verticalAlign;E(e.min)&&c.render(e.min,e.max);c&&g.display&&\"top\"===k&&k===g.options.verticalAlign&&(h=D(a.spacingBox),h.y=\"vertical\"===\ng.options.layout?a.plotTop:h.y+c.getHeight(),g.group.placed=!1,g.align(h))}var e,c=a.rangeSelector,g,h,k;if(c){var q=v(a.xAxis[0],\"afterSetExtremes\",function(a){c.render(a.min,a.max)});var r=v(a,\"redraw\",f);f()}v(a,\"destroy\",function(){c&&(r(),q())})}),k.RangeSelector=A)});P(A,\"parts/StockChart.js\",[A[\"parts/Axis.js\"],A[\"parts/Globals.js\"],A[\"parts/Point.js\"],A[\"parts/Utilities.js\"]],function(k,g,A,v){var H=v.addEvent,G=v.arrayMax,N=v.arrayMin,M=v.clamp,y=v.defined,I=v.extend,J=v.find,E=v.format,\nD=v.isNumber,z=v.isString,t=v.merge,q=v.pick,r=v.splat,h=g.Chart;v=g.Series;var f=g.SVGRenderer,a=v.prototype,l=a.init,e=a.processData,c=A.prototype.tooltipFormatter;g.StockChart=g.stockChart=function(a,c,e){var f=z(a)||a.nodeName,k=arguments[f?1:0],m=k,l=k.series,u=g.getOptions(),v,d=q(k.navigator&&k.navigator.enabled,u.navigator.enabled,!0);k.xAxis=r(k.xAxis||{}).map(function(a,c){return t({minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:\"justify\"},showLastLabel:!0},\nu.xAxis,u.xAxis&&u.xAxis[c],a,{type:\"datetime\",categories:null},d?{startOnTick:!1,endOnTick:!1}:null)});k.yAxis=r(k.yAxis||{}).map(function(a,c){v=q(a.opposite,!0);return t({labels:{y:-2},opposite:v,showLastLabel:!(!a.categories&&\"category\"!==a.type),title:{text:null}},u.yAxis,u.yAxis&&u.yAxis[c],a)});k.series=null;k=t({chart:{panning:{enabled:!0,type:\"x\"},pinchType:\"x\"},navigator:{enabled:d},scrollbar:{enabled:q(u.scrollbar.enabled,!0)},rangeSelector:{enabled:q(u.rangeSelector.enabled,!0)},title:{text:null},\ntooltip:{split:q(u.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1}},k,{isStock:!0});k.series=m.series=l;return f?new h(a,k,e):new h(k,c)};H(v,\"setOptions\",function(a){var c;this.chart.options.isStock&&(this.is(\"column\")||this.is(\"columnrange\")?c={borderWidth:0,shadow:!1}:this.is(\"scatter\")||this.is(\"sma\")||(c={marker:{enabled:!1,radius:2}}),c&&(a.plotOptions[this.type]=t(a.plotOptions[this.type],c)))});H(k,\"autoLabelAlign\",function(a){var c=this.chart,e=this.options;c=c._labelPanes=c._labelPanes||\n{};var f=this.options.labels;this.chart.options.isStock&&\"yAxis\"===this.coll&&(e=e.top+\",\"+e.height,!c[e]&&f.enabled&&(15===f.x&&(f.x=0),\"undefined\"===typeof f.align&&(f.align=\"right\"),c[e]=this,a.align=\"right\",a.preventDefault()))});H(k,\"destroy\",function(){var a=this.chart,c=this.options&&this.options.top+\",\"+this.options.height;c&&a._labelPanes&&a._labelPanes[c]===this&&delete a._labelPanes[c]});H(k,\"getPlotLinePath\",function(a){function c(a){var b=\"xAxis\"===a?\"yAxis\":\"xAxis\";a=e.options[b];return D(a)?\n[g[b][a]]:z(a)?[g.get(a)]:f.map(function(a){return a[b]})}var e=this,f=this.isLinked&&!this.series?this.linkedParent.series:this.series,g=e.chart,h=g.renderer,k=e.left,m=e.top,l,d,b,n,r=[],t=[],v=a.translatedValue,A=a.value,E=a.force;if(g.options.isStock&&!1!==a.acrossPanes&&\"xAxis\"===e.coll||\"yAxis\"===e.coll){a.preventDefault();t=c(e.coll);var G=e.isXAxis?g.yAxis:g.xAxis;G.forEach(function(a){if(y(a.options.id)?-1===a.options.id.indexOf(\"navigator\"):1){var b=a.isXAxis?\"yAxis\":\"xAxis\";b=y(a.options[b])?\ng[b][a.options[b]]:g[b][0];e===b&&t.push(a)}});var H=t.length?[]:[e.isXAxis?g.yAxis[0]:g.xAxis[0]];t.forEach(function(a){-1!==H.indexOf(a)||J(H,function(b){return b.pos===a.pos&&b.len===a.len})||H.push(a)});var I=q(v,e.translate(A,null,null,a.old));D(I)&&(e.horiz?H.forEach(function(a){var c;d=a.pos;n=d+a.len;l=b=Math.round(I+e.transB);\"pass\"!==E&&(l<k||l>k+e.width)&&(E?l=b=M(l,k,k+e.width):c=!0);c||r.push([\"M\",l,d],[\"L\",b,n])}):H.forEach(function(a){var c;l=a.pos;b=l+a.len;d=n=Math.round(m+e.height-\nI);\"pass\"!==E&&(d<m||d>m+e.height)&&(E?d=n=M(d,m,m+e.height):c=!0);c||r.push([\"M\",l,d],[\"L\",b,n])}));a.path=0<r.length?h.crispPolyLine(r,a.lineWidth||1):null}});f.prototype.crispPolyLine=function(a,c){for(var e=0;e<a.length;e+=2){var f=a[e],g=a[e+1];f[1]===g[1]&&(f[1]=g[1]=Math.round(f[1])-c%2/2);f[2]===g[2]&&(f[2]=g[2]=Math.round(f[2])+c%2/2)}return a};H(k,\"afterHideCrosshair\",function(){this.crossLabel&&(this.crossLabel=this.crossLabel.hide())});H(k,\"afterDrawCrosshair\",function(a){var c,e;if(y(this.crosshair.label)&&\nthis.crosshair.label.enabled&&this.cross){var f=this.chart,g=this.logarithmic,h=this.options.crosshair.label,k=this.horiz,m=this.opposite,l=this.left,d=this.top,b=this.crossLabel,n=h.format,r=\"\",t=\"inside\"===this.options.tickPosition,v=!1!==this.crosshair.snap,z=0,A=a.e||this.cross&&this.cross.e,D=a.point;a=this.min;var G=this.max;g&&(a=g.lin2log(a),G=g.lin2log(G));g=k?\"center\":m?\"right\"===this.labelAlign?\"right\":\"left\":\"left\"===this.labelAlign?\"left\":\"center\";b||(b=this.crossLabel=f.renderer.label(null,\nnull,null,h.shape||\"callout\").addClass(\"highcharts-crosshair-label\"+(this.series[0]&&\" highcharts-color-\"+this.series[0].colorIndex)).attr({align:h.align||g,padding:q(h.padding,8),r:q(h.borderRadius,3),zIndex:2}).add(this.labelGroup),f.styledMode||b.attr({fill:h.backgroundColor||this.series[0]&&this.series[0].color||\"#666666\",stroke:h.borderColor||\"\",\"stroke-width\":h.borderWidth||0}).css(I({color:\"#ffffff\",fontWeight:\"normal\",fontSize:\"11px\",textAlign:\"center\"},h.style)));k?(g=v?D.plotX+l:A.chartX,\nd+=m?0:this.height):(g=m?this.width+l:0,d=v?D.plotY+d:A.chartY);n||h.formatter||(this.dateTime&&(r=\"%b %d, %Y\"),n=\"{value\"+(r?\":\"+r:\"\")+\"}\");r=v?D[this.isXAxis?\"x\":\"y\"]:this.toValue(k?A.chartX:A.chartY);b.attr({text:n?E(n,{value:r},f):h.formatter.call(this,r),x:g,y:d,visibility:r<a||r>G?\"hidden\":\"visible\"});h=b.getBBox();if(k){if(t&&!m||!t&&m)d=b.y-h.height}else d=b.y-h.height/2;k?(c=l-h.x,e=l+this.width-h.x):(c=\"left\"===this.labelAlign?l:0,e=\"right\"===this.labelAlign?l+this.width:f.chartWidth);b.translateX<\nc&&(z=c-b.translateX);b.translateX+h.width>=e&&(z=-(b.translateX+h.width-e));b.attr({x:g+z,y:d,anchorX:k?g:this.opposite?0:f.chartWidth,anchorY:k?this.opposite?f.chartHeight:0:d+h.height/2})}});a.init=function(){l.apply(this,arguments);this.setCompare(this.options.compare)};a.setCompare=function(a){this.modifyValue=\"value\"===a||\"percent\"===a?function(c,e){var f=this.compareValue;return\"undefined\"!==typeof c&&\"undefined\"!==typeof f?(c=\"value\"===a?c-f:c/f*100-(100===this.options.compareBase?0:100),\ne&&(e.change=c),c):0}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};a.processData=function(a){var c,f=-1,g=!0===this.options.compareStart?0:1;e.apply(this,arguments);if(this.xAxis&&this.processedYData){var h=this.processedXData;var k=this.processedYData;var m=k.length;this.pointArrayMap&&(f=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||\"y\"));for(c=0;c<m-g;c++){var l=k[c]&&-1<f?k[c][f]:k[c];if(D(l)&&h[c+g]>=this.xAxis.min&&0!==l){this.compareValue=\nl;break}}}};H(v,\"afterGetExtremes\",function(a){a=a.dataExtremes;if(this.modifyValue&&a){var c=[this.modifyValue(a.dataMin),this.modifyValue(a.dataMax)];a.dataMin=N(c);a.dataMax=G(c)}});k.prototype.setCompare=function(a,c){this.isXAxis||(this.series.forEach(function(c){c.setCompare(a)}),q(c,!0)&&this.chart.redraw())};A.prototype.tooltipFormatter=function(a){var e=this.series.chart.numberFormatter;a=a.replace(\"{point.change}\",(0<this.change?\"+\":\"\")+e(this.change,q(this.series.tooltipOptions.changeDecimals,\n2)));return c.apply(this,[a])};H(v,\"render\",function(){var a=this.chart;if(!(a.is3d&&a.is3d()||a.polar)&&this.xAxis&&!this.xAxis.isRadial){var c=this.yAxis.len;if(this.xAxis.axisLine){var e=a.plotTop+a.plotHeight-this.yAxis.pos-this.yAxis.len,f=Math.floor(this.xAxis.axisLine.strokeWidth()/2);0<=e&&(c-=Math.max(f-e,0))}!this.clipBox&&this.animate?(this.clipBox=t(a.clipBox),this.clipBox.width=this.xAxis.len,this.clipBox.height=c):a[this.sharedClipKey]&&(a[this.sharedClipKey].animate({width:this.xAxis.len,\nheight:c}),a[this.sharedClipKey+\"m\"]&&a[this.sharedClipKey+\"m\"].animate({width:this.xAxis.len}))}});H(h,\"update\",function(a){a=a.options;\"scrollbar\"in a&&this.navigator&&(t(!0,this.options.scrollbar,a.scrollbar),this.navigator.update({},!1),delete a.scrollbar)})});P(A,\"masters/modules/stock.src.js\",[],function(){});P(A,\"masters/highstock.src.js\",[A[\"masters/highcharts.src.js\"]],function(k){k.product=\"Highstock\";return k});A[\"masters/highstock.src.js\"]._modules=A;return A[\"masters/highstock.src.js\"]});\n//# sourceMappingURL=highstock.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/highcharts/highstock.js\n// module id = 315\n// module chunks = 0"],"sourceRoot":""}