{"version":3,"sources":["webpack:///./node_modules/chart.js/node_modules/moment/locale/it-ch.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/km.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/eo.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/lt.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/nn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ms.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/lb.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/me.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tr.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sv.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/az.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/gd.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/it.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/uk.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fr.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-ie.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/is.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ky.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ta.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ro.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/vi.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-il.js","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/si.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ss.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sq.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/pt.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/gl.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/yo.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/mn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fy.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/cs.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/mr.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/el.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/bo.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/se.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fi.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/pa-in.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/eu.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/kk.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tzl.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/de-ch.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sl.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/my.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-au.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/mt.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/es-us.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ru.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/mi.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/et.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/da.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/id.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/bn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/be.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sk.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sw.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/cy.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ja.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/bg.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/dv.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/af.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tlh.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sr.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/th.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/de.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/mk.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/nl-be.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/hu.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/lv.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/bm.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/te.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-nz.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tzm.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ku.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/uz.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ga.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/gu.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/pl.js","webpack:///./node_modules/chart.js/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/chart.js/node_modules/moment/locale/bs.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/nl.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ka.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tg.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ms-my.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fo.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ca.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/es-do.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/lo.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/de-at.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/sd.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ko.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/hi.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ne.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fa.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/hr.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/he.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-ca.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/cv.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/hy-am.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/tet.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/nb.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///src/hqapp/Views/HQ/Reports/CumulativeChart.vue","webpack:///./src/hqapp/Views/HQ/Reports/CumulativeChart.vue","webpack:///./src/hqapp/Views/HQ/Reports/CumulativeChart.vue?dd7d","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-gb.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/br.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/kn.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/es.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ur.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/ml.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/en-SG.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/pt-br.js","webpack:///./node_modules/chart.js/node_modules/moment/moment.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/jv.js","webpack:///./node_modules/chart.js/node_modules/moment/locale/fr-ca.js"],"names":["global","factory","this","moment","itCh","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","day","sameElse","relativeTime","future","s","test","past","ss","m","mm","h","hh","d","dd","M","MM","y","yy","dayOfMonthOrdinalParse","ordinal","week","dow","doy","symbolMap","numberMap","km","weekdaysParseExact","meridiemParse","isPM","input","meridiem","hour","minute","isLower","preparse","string","replace","match","postformat","zhHk","l","ll","lll","llll","meridiemHour","hm","number","period","eo","charAt","toLowerCase","hours","minutes","units","translateSeconds","withoutSuffix","key","isFuture","translateSingular","forms","special","translate","result","lt","format","standalone","isFormat","nn","ms","processRelativeTime","processFutureTime","substr","indexOf","eifelerRegelAppliesToNumber","processPastTime","parseInt","isNaN","lastDigit","firstDigit","lb","monthsParseExact","translator","words","correctGrammaticalCase","wordKey","length","me","lastWeekDays","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","tr","a","b","c","sv","output","az","gd","it","plural","word","num","relativeTimeWithPlural","weekdaysCaseReplace","slice","concat","nounCase","processHoursFunction","str","uk","call","fr","enIe","n","is","0","40","ky","ta","separator","ro","vi","enIl","module","exports","e","createCommonjsModule","fn","getCjsExportFromNamespace","hasOwnProperty","colorName","conversions","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","Error","Object","defineProperty","value","comparativeDistance","x","Math","pow","r","g","min","max","delta","rdif","gdif","bdif","v","diff","diffc","w","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","val","i","smin","lmin","hi","floor","f","p","q","t","sl","vmin","wh","bl","ratio","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","args","arguments","round","ansi","color","mult","rem","integer","toString","toUpperCase","substring","colorString","map","char","join","grayscale","hue","chroma","pure","mg","buildGraph","graph","models","keys","len","parent","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","from","to","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","undefined","Array","prototype","wrapRounded","forEach","routes","routeModels","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","rgba","per","hexAlpha","parseFloat","scale","alpha","hsla","vals","hexDouble","reverseNames","name","Color","obj","valid","values","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","type","source","target","prop","console","error","spaces","maxes","getValues","space","capped","chans","sname","index","svalues","window","chartjsColor","helpers","noop","uid","id","isNullOrUndef","isArray","isObject","isFinite","Number","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","thisArg","apply","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","options","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","assign","dst","src","inherits","extensions","ChartElement","constructor","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","array","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","size","cornerRadius","rad","save","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","resolve","inputs","context","info","cacheable","exports$2","_factorize","push","sort","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","overrideTextDirection","direction","original","canvas","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","helpers_rtl","helpers$1","easing","math","interpolate","start","view","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","get","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","enumerable","method","base","res","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","dataset","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","data","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","destroy","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","update","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","end","mode","offset","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","label","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","listItemSpan","list","document","createElement","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","text","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","config","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","filter","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controller_scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","pos","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","params","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","props","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","getContext","platform_dom","platform_dom$1","__proto__","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createDiv","cls","el","className","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","targetNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptor","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","String","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","parse","startOf","endOf","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","sample","arr","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","ceil","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","widestLabelSize","highestLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","getMin","time","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","gomLatn","frCh","si","sq","arTn","gl","yo","mn","monthsShortWithDots","monthsShortWithoutDots","fy","monthsParse","monthsRegex","cs","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","relativeTimeMr","mr","isFunction","Function","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","bo","srCyrl","se","numbersPast","numbersFuture","verbalNumber","fi","paIn","eu","kk","tzl","deCh","tzmLatn","my","enAu","mt","monthsShortDot","esUs","ru","mi","ugCn","et","da","bn","arDz","be","sk","sw","pluralForm","plurals","pluralize","u","ar","ja","bg","last2Digits","dv","af","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","tlh","zhCn","sr","th","de","mk","arKw","xPseudo","nlBe","weekEndings","hu","relativeTimeWithSingular","relativeSeconds","lv","bm","te","enNz","tlPh","tzm","ku","uz","zhTw","ga","gu","monthsNominative","monthsSubjective","pl","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","bs","nl","ka","12","13","tg","msMy","fo","ca","esDo","deAt","days","sd","uzLatn","ko","token","isUpper","ne","he","enCa","cv","affix","exec","hyAm","arLy","arSa","tet","nb","arMa","generateChart","chartId","chartType","styles","class","cssClasses","attrs","ref","default","methods","addPlugin","$data","renderChart","$refs","beforeDestroy","chartOptions","staticRenderFns","component","enGb","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","br","kn","es","ur","ml","enSG","ptBr","hookCallback","some","hooks","setHookCallback","isObjectEmpty","getOwnPropertyNames","isUndefined","isDate","hasOwnProp","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","deprecations","deprecateSimple","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","_calendar","defaultLongDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","invalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","func","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","lastIndex","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","mod","modMonth","MONTHS_IN_FORMAT","defaultLocaleMonths","localeMonths","_months","defaultLocaleMonthsShort","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","defaultMonthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","localeWeekdays","_weekdays","defaultLocaleWeekdaysShort","localeWeekdaysShort","_weekdaysShort","defaultLocaleWeekdaysMin","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","defaultWeekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","localeMeridiem","globalLocale","getSetHour","baseConfig","locales","localeFamilies","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","curWeek","gg","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","weeks","isoWeek","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","dur","isAdding","invalid","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","zone","suffix","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","unix","toObject","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","isoWeekYear","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","parseMs","getSetMillisecond","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","abs$1","toISOString$1","Y","D","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","jv","frCa"],"mappings":"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ACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAA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","file":"js/report.1c79bd79.js","sourcesContent":["//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var itCh = moment.defineLocale('it-ch', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 }, 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","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhHk = moment.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (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 : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eo = moment.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (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 [je] LT',\n lastDay : '[Hieraŭ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaŭ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 ? forms(key)[0] : (isFuture ? forms(key)[1] : 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 result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Šiandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[Praėjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieš %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein månad',\n MM : '%d månader',\n y : 'eit år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ms = moment.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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, 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 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime,\n mm : '%d Minutten',\n h : processRelativeTime,\n hh : '%d Stonnen',\n d : processRelativeTime,\n dd : '%d Deeg',\n M : processRelativeTime,\n MM : '%d Méint',\n y : processRelativeTime,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //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 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : 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 number + ' ' + translator.correctGrammaticalCase(number, wordKey);\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 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (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) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'några sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en månad',\n MM : '%d månader',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gələn həftə] dddd [saat] LT',\n lastDay : '[dünən] LT',\n lastWeek : '[keçən həftə] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s əvvəl',\n s : 'birneçə saniyə',\n ss : '%d saniyə',\n m : 'bir dəqiqə',\n mm : '%d dəqiqə',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM : function (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) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months : months,\n monthsShort : monthsShort,\n monthsParseExact : true,\n weekdays : weekdays,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-màireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var it = moment.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\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 it;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n 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 }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n var 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 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY р.',\n LLL : 'D MMMM YYYY р., HH:mm',\n LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'місяць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fr = moment.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIe = moment.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\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 result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\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 result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\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 monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[í dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[í gær kl.] LT',\n lastWeek : '[síðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s síðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн саат] LT',\n nextDay : '[Эртең саат] LT',\n nextWeek : 'dddd [саат] LT',\n lastDay : '[Кечээ саат] LT',\n lastWeek : '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече секунд',\n ss : '%d секунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир саат',\n hh : '%d саат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 }, 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 monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இன்று] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேற்று] LT',\n lastWeek : '[கடந்த வாரம்] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இல்',\n past : '%s முன்',\n s : 'ஒரு சில விநாடிகள்',\n ss : '%d விநாடிகள்',\n m : 'ஒரு நிமிடம்',\n mm : '%d நிமிடங்கள்',\n h : 'ஒரு மணி நேரம்',\n hh : '%d மணி நேரம்',\n d : 'ஒரு நாள்',\n dd : '%d நாட்கள்',\n M : 'ஒரு மாதம்',\n MM : '%d மாதங்கள்',\n y : 'ஒரு வருடம்',\n yy : '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal : function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\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 monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural,\n m : 'un minut',\n mm : relativeTimeWithPlural,\n h : 'o oră',\n hh : relativeTimeWithPlural,\n d : 'o zi',\n dd : relativeTimeWithPlural,\n M : 'o lună',\n MM : relativeTimeWithPlural,\n y : 'un an',\n yy : relativeTimeWithPlural\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var vi = moment.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (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 rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tới',\n past : '%s trước',\n s : 'vài giây',\n ss : '%d giây' ,\n m : 'một phút',\n mm : '%d phút',\n h : 'một giờ',\n hh : '%d giờ',\n d : 'một ngày',\n dd : '%d ngày',\n M : 'một tháng',\n MM : '%d tháng',\n y : 'một năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIl = moment.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enIl;\n\n})));\n","/*!\n * Chart.js v2.9.3\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace. all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge({}, [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked | meta.stack\n\t\t\t// | found | not found | undefined\n\t\t\t// false | x | x | x\n\t\t\t// true | | x |\n\t\t\t// undefined | | x | x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights. This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\treturn layout.horizontal ? newWidth !== chartArea.w : newHeight !== chartArea.h;\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\n * DOM element rendering detection\\n * https://davidwalsh.name/detect-node-insertion\\n */\\n@keyframes chartjs-render-animation {\\n\\tfrom { opacity: 0.99; }\\n\\tto { opacity: 1; }\\n}\\n\\n.chartjs-render-monitor {\\n\\tanimation: chartjs-render-animation 0.001s;\\n}\\n\\n/*\\n * DOM element resizing detection\\n * https://github.com/marcj/css-element-queries\\n */\\n.chartjs-size-monitor,\\n.chartjs-size-monitor-expand,\\n.chartjs-size-monitor-shrink {\\n\\tposition: absolute;\\n\\tdirection: ltr;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\toverflow: hidden;\\n\\tpointer-events: none;\\n\\tvisibility: hidden;\\n\\tz-index: -1;\\n}\\n\\n.chartjs-size-monitor-expand > div {\\n\\tposition: absolute;\\n\\twidth: 1000000px;\\n\\theight: 1000000px;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.chartjs-size-monitor-shrink > div {\\n\\tposition: absolute;\\n\\twidth: 200%;\\n\\theight: 200%;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the