PageSourceSearch

https://smartadvisormatch.com/public/dist/3D75FA433675715846AED14B015C3847.js

js smartadvisormatch.com collected 2026-10-01 12:28:48 UTC 339,765 bytes, 1,905 lines download raw bytes

1/**
2 * Math related functionality from base.js off SA
3 */
4
5var smartasset = smartasset || {};
6smartasset.math = {
7    /**
8     * Get absolute value
9     */
10    getAbs: function (v)
11    {
12        var x = this.getInteger(v);
13        return Math.abs(x);
14    },
15    /**
16     * Get float value
17     */
18    getFloat: function (v)
19    {
20        if (typeof(v) === 'string' & v !== '')
21        {
22            // Replace all dollar signs, percent signs, and commas.
23            // "$5,000%" => "5000"
24            v = v.replace(/[$%,]/g, '');
25            var r = parseFloat(v, 10);
26            if (!isNaN(r))
27                return r;
28        }
29        if (typeof(v) === "number")
30        {
31            return parseFloat(v);
32        }
33
34        return 0;
35    },
36    /**
37     * Get integer value
38     */
39    getInteger: function (v)
40    {
41        if (v != null && typeof(v) == 'string' & v != "")
42        {
43            v = v.replace(/\$/, "");
44            v = v.replace(/,/g, "");
45            v = v.replace(/\..*/g, "");
46            var r = parseInt(v, 10);
47            if (!isNaN(r))
48                return r;
49        }
50        if (typeof(v) == "number")
51        {
52            return parseInt(v, 10);
53        }
54
55        return 0;
56    },
57    /**
58     * Commatoze number (add 1000s comma)
59     *
60     * @param {string} nStr
61     * @param {number=} decimals of decimals to display
62     * @param {boolean=} brackets negative brackets
63     * @param {string=} unit to use
64     * @returns {*}
65     */
66    commatoze: function (nStr, decimals, brackets, unit)
67    {
68        if (jQuery.type(unit) !== "string")
69        {
70            unit = "";
71        }
72
73        if (jQuery.type(decimals) !== "number")
74        {
75            decimals = 0;
76        }
77
78        if (jQuery.type(brackets) !== "boolean")
79        {
80            brackets = false;
81        }
82
83        // get float on the number
84        var num = this.getFloat(nStr);
85
86        // record whether the input is negative, for use later when we do the final formatting
87        var isNegative = (num < 0);
88
89        // strip away negatives, since we may want to replace with brackets in the final formatting
90        num = Math.abs(num);
91
92        num = num.toFixed(decimals);
93        nStr = num;
94
95        x = nStr.split('.');
96        x1 = x[0];
97        x2 = x.length > 1 ? '.' + x[1] : '';
98        if (x2 == "" && decimals > 0)
99        {
100            x2 = ".0";
101        }
102
103        var rgx = /(\d+)(\d{3})/;
104        while (rgx.test(x1))
105        {
106            x1 = x1.replace(rgx, '$1' + ',' + '$2');
107        }
108
109        // the final formatting
110        var numberWithUnit = unit + x1 + x2;
111        if (isNegative)
112        {
113            if (brackets)
114            {
115                return "(" + numberWithUnit + ")";
116            }
117            else
118            {
119                return "-" + numberWithUnit;
120            }
121        }
122
123        return numberWithUnit;
124    },
125    absv: function (x)
126    {
127        if (x == null)
128            return 0;
129
130        return Math.abs(x);
131    },
132    nearest: function (v, i)
133    {
134        if (i == null || isNaN(i))
135        {
136            i = 1000;
137        }
138
139        v = parseInt(v / i);
140        return v * i;
141    },
142    dollar: function (v)
143    {
144        return commatoze(Math.round(v));
145    },
146
147    /**
148     * Inflate a number using a given rate and number of periods
149     * @param {number} valueToInflate number to inflate
150     * @param {number} periods months or years to apply the inflation rate; valid range [0, MAX INT]
151     * @param {number} inflationRate inflation rate, where 2.0 is 2.0%
152     * @returns {number} inflated number
153     */
154    inflate: function(valueToInflate, periods, inflationRate)
155    {
156        // if periods are zero or invalid, return the original value
157        if (typeof periods !== 'number' || isNaN(periods) || periods <= 0)
158        {
159            return valueToInflate;
160        }
161        return valueToInflate * Math.pow(1 + (inflationRate / 100), periods);
162    },
163
164    /**
165     * Method to calculate a loan monthly repayment
166     *
167     * Assumes that all arguments are non-negative
168     *
169     * @param principal loan amount
170     * @param rate loan rate (e.g. 2.0 is 2.0%)
171     * @param term loan term in years
172     * @param prepayment loan prepayment, can be NULL
173     */
174    repayment: function(principal, rate, term, prepayment)
175    {
176        // checking if loan amount is zero
177        //
178        if (principal === 0)
179        {
180            return 0;
181        }
182
183        // checking if rate is zero - calculate accordingly
184        //
185        if (rate === 0)
186        {
187            return Math.min(principal, ((principal/term)/12)+prepayment);
188        }
189
190        // checking if prepayment was sent, if not set it to 0
191        //
192        if (prepayment === undefined || prepayment === null)
193        {
194            prepayment = 0;
195        }
196
197        rate = (rate/100) / 12;
198        term = term*12;
199        return Math.min(principal, (principal * (rate * Math.pow((1 + rate), term)) / (Math.pow((1 + rate), term) - 1) + prepayment));
200    },
201
202    /**
203     * Method to calculate the annual geo metrical mean of the rate
204     *
205     * @param rate loan rate (e.g. 2.0 is 2.0%)
206     */
207    annualGeoMean: function(rate)
208    {
209        rate = (rate/100);
210
211        return (-1)*(Math.pow((1-rate/12), 12))+1;
212    }
213
214};
215/**
216 * Firm Profile page
217 *
218 * This file contains all the JS related functionality for the Firm profile pages.
219 *
220 * @author eguanilo
221 */
222
223$(function()
224{
225    // caching html el
226    var $html = $('html,body');
227    // all things we deal with are a child of a firm profile.
228    var $firmProfile = $html.find('.js-firm_profile');
229
230    // Basic toggle fn grabbed from SA
231    // Generic toggler for expanding/collapsing details
232    var toggleDetails = function(triggerClass, contentClass, callbackFunction)
233    {
234        var $trigger = $(triggerClass),
235            $content = $trigger.parent().find(contentClass);
236        if ($trigger.hasClass('active'))
237        {
238            $trigger.removeClass('active');
239            $content.slideUp(250, callbackFunction);
240        }
241        else
242        {
243            $trigger.addClass('active');
244            $content.slideDown(250, callbackFunction);
245        }
246    };
247
248    // enable detail toggling for all profile detail items.
249    $firmProfile.find('.js-profile_expandable-trigger').click(function() {
250        toggleDetails(this, '.js-profile_expandable-content');
251    });
252
253    // Enable toggling for all checklists on lower viewports
254    // this handler also takes care of toggling a + or - icon located at a span element.
255    $firmProfile.find('.js-profile_subsection-column').find('.js-firm_profile-checklist-title').click(function(){
256        // caching things
257        var $this = $(this);
258        var $inlineIcon = $this.find('.js-fa');
259
260        // toggle only when the toggle icon is visible
261        if (!($inlineIcon.is(':hidden')))
262        {
263            toggleDetails($this, '.firm_profile-checklist');
264            if ($this.hasClass('active'))
265            {
266                $inlineIcon.removeClass('fa-plus')
267                           .addClass('fa-minus');
268            }
269            else
270            {
271                $inlineIcon.removeClass('fa-minus')
272                           .addClass('fa-plus');
273            }
274        }
275    });
276
277    // SAM's navigation bar height
278    var navHeight = 55;
279    // scroll to index functionality taken from smartreviews.
280    var scrollToElementById = function(destinationId)
281    {
282        var distanceFromTop = $('#' + destinationId).offset().top - navHeight;
283
284        $html.animate({scrollTop: distanceFromTop}, 200);
285    };
286
287    $firmProfile.find('.js-nav_button').click(function(e) {
288        e.preventDefault();
289        scrollToElementById($(this).attr('data-id'));
290    });
291
292    // start chart
293    var $typesOfClientsPieChart = $firmProfile.find('.js-types_of_client-pie_chart');
294
295    $typesOfClientsPieChart.highcharts({
296        chart: {
297            pinchType: '',
298            type: 'pie',
299            styledMode: true
300        },
301        tooltip: {
302            pointFormat: '<b>'+'{point.y}%</b>'
303        },
304        plotOptions: {
305            pie: {
306                allowPointSelect: true,
307                animation: false,
308                cursor: 'pointer',
309                dataLabels: {
310                    enabled: false
311                },
312                borderColor: null
313            }
314        },
315        credits: {
316            enabled: false
317        },
318        legend: {
319            enabled: false
320        },
321        title: {
322            text: ''
323        },
324        series: [{
325            type: 'pie',
326            data: [
327                ['High Net Worth Individuals', smartasset.math.getFloat($typesOfClientsPieChart.data('chart-high-net'))],
328                ['Other Individuals', smartasset.math.getFloat($typesOfClientsPieChart.data('chart-other'))],
329                ['Corporations', smartasset.math.getFloat($typesOfClientsPieChart.data('chart-corporations'))],
330                ['Charitable Organizations', smartasset.math.getFloat($typesOfClientsPieChart.data('chart-charitable-orgs'))]
331            ]
332        }]
333    });
334    // end chart
335});
336/*
337 Highcharts JS v6.0.7 (2018-02-16)
338
339 (c) 2009-2016 Torstein Honsi
340
341 License: www.highcharts.com/license
342*/
343(function(S,K){"object"===typeof module&&module.exports?module.exports=S.document?K(S):K:S.Highcharts=K(S)})("undefined"!==typeof window?window:this,function(S){var K=function(){var a="undefined"===typeof S?window:S,B=a.document,H=a.navigator&&a.navigator.userAgent||"",E=B&&B.createElementNS&&!!B.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,q=/(edge|msie|trident)/i.test(H)&&!a.opera,f=-1!==H.indexOf("Firefox"),l=-1!==H.indexOf("Chrome"),t=f&&4>parseInt(H.split("Firefox/")[1],
34410);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts",version:"6.0.7",deg2rad:2*Math.PI/360,doc:B,hasBidiBug:t,hasTouch:B&&void 0!==B.documentElement.ontouchstart,isMS:q,isWebKit:-1!==H.indexOf("AppleWebKit"),isFirefox:f,isChrome:l,isSafari:!l&&-1!==H.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(H),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:E,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},
345charts:[]}}();(function(a){a.timers=[];var B=a.charts,H=a.doc,E=a.win;a.error=function(q,f){q=a.isNumber(q)?"Highcharts error #"+q+": www.highcharts.com/errors/"+q:q;if(f)throw Error(q);E.console&&console.log(q)};a.Fx=function(a,f,l){this.options=f;this.elem=a;this.prop=l};a.Fx.prototype={dSetter:function(){var a=this.paths[0],f=this.paths[1],l=[],t=this.now,n=a.length,v;if(1===t)l=this.toD;else if(n===f.length&&1>t)for(;n--;)v=parseFloat(a[n]),l[n]=isNaN(v)?f[n]:t*parseFloat(f[n]-v)+v;else l=f;this.elem.attr("d",
346l,null,!0)},update:function(){var a=this.elem,f=this.prop,l=this.now,t=this.options.step;if(this[f+"Setter"])this[f+"Setter"]();else a.attr?a.element&&a.attr(f,l,null,!0):a.style[f]=l+this.unit;t&&t.call(a,l,this)},run:function(q,f,l){var t=this,n=t.options,v=function(a){return v.stopped?!1:t.step(a)},u=E.requestAnimationFrame||function(a){setTimeout(a,13)},c=function(){for(var b=0;b<a.timers.length;b++)a.timers[b]()||a.timers.splice(b--,1);a.timers.length&&u(c)};q===f?(delete n.curAnim[this.prop],
347n.complete&&0===a.keys(n.curAnim).length&&n.complete.call(this.elem)):(this.startTime=+new Date,this.start=q,this.end=f,this.unit=l,this.now=this.start,this.pos=0,v.elem=this.elem,v.prop=this.prop,v()&&1===a.timers.push(v)&&u(c))},step:function(q){var f=+new Date,l,t=this.options,n=this.elem,v=t.complete,u=t.duration,c=t.curAnim;n.attr&&!n.element?q=!1:q||f>=u+this.startTime?(this.now=this.end,this.pos=1,this.update(),l=c[this.prop]=!0,a.objectEach(c,function(a){!0!==a&&(l=!1)}),l&&v&&v.call(n),q=
348!1):(this.pos=t.easing((f-this.startTime)/u),this.now=this.start+(this.end-this.start)*this.pos,this.update(),q=!0);return q},initPath:function(q,f,l){function t(a){var c,h;for(e=a.length;e--;)c="M"===a[e]||"L"===a[e],h=/[a-zA-Z]/.test(a[e+3]),c&&h&&a.splice(e+1,0,a[e+1],a[e+2],a[e+1],a[e+2])}function n(a,c){for(;a.length<h;){a[0]=c[h-a.length];var b=a.slice(0,d);[].splice.apply(a,[0,0].concat(b));p&&(b=a.slice(a.length-d),[].splice.apply(a,[a.length,0].concat(b)),e--)}a[0]="M"}function v(a,c){for(var b=
349(h-a.length)/d;0<b&&b--;)k=a.slice().splice(a.length/r-d,d*r),k[0]=c[h-d-b*d],m&&(k[d-6]=k[d-2],k[d-5]=k[d-1]),[].splice.apply(a,[a.length/r,0].concat(k)),p&&b--}f=f||"";var u,c=q.startX,b=q.endX,m=-1<f.indexOf("C"),d=m?7:3,h,k,e;f=f.split(" ");l=l.slice();var p=q.isArea,r=p?2:1,I;m&&(t(f),t(l));if(c&&b){for(e=0;e<c.length;e++)if(c[e]===b[0]){u=e;break}else if(c[0]===b[b.length-c.length+e]){u=e;I=!0;break}void 0===u&&(f=[])}f.length&&a.isNumber(u)&&(h=l.length+u*r*d,I?(n(f,l),v(l,f)):(n(l,f),v(f,
350l)));return[f,l]}};a.Fx.prototype.fillSetter=a.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)};a.merge=function(){var q,f=arguments,l,t={},n=function(l,q){"object"!==typeof l&&(l={});a.objectEach(q,function(c,b){!a.isObject(c,!0)||a.isClass(c)||a.isDOMElement(c)?l[b]=q[b]:l[b]=n(l[b]||{},c)});return l};!0===f[0]&&(t=f[1],f=Array.prototype.slice.call(f,2));l=f.length;for(q=0;q<l;q++)t=n(t,f[q]);return t};a.pInt=function(a,
351f){return parseInt(a,f||10)};a.isString=function(a){return"string"===typeof a};a.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a};a.isObject=function(q,f){return!!q&&"object"===typeof q&&(!f||!a.isArray(q))};a.isDOMElement=function(q){return a.isObject(q)&&"number"===typeof q.nodeType};a.isClass=function(q){var f=q&&q.constructor;return!(!a.isObject(q,!0)||a.isDOMElement(q)||!f||!f.name||"Object"===f.name)};a.isNumber=function(a){return"number"===
352typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a};a.erase=function(a,f){for(var l=a.length;l--;)if(a[l]===f){a.splice(l,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(q,f,l){var t;a.isString(f)?a.defined(l)?q.setAttribute(f,l):q&&q.getAttribute&&(t=q.getAttribute(f)):a.defined(f)&&a.isObject(f)&&a.objectEach(f,function(a,l){q.setAttribute(l,a)});return t};a.splat=function(q){return a.isArray(q)?q:[q]};a.syncTimeout=function(a,f,l){if(f)return setTimeout(a,f,l);a.call(0,
353l)};a.extend=function(a,f){var l;a||(a={});for(l in f)a[l]=f[l];return a};a.pick=function(){var a=arguments,f,l,t=a.length;for(f=0;f<t;f++)if(l=a[f],void 0!==l&&null!==l)return l};a.css=function(q,f){a.isMS&&!a.svg&&f&&void 0!==f.opacity&&(f.filter="alpha(opacity\x3d"+100*f.opacity+")");a.extend(q.style,f)};a.createElement=function(q,f,l,t,n){q=H.createElement(q);var v=a.css;f&&a.extend(q,f);n&&v(q,{padding:0,border:"none",margin:0});l&&v(q,l);t&&t.appendChild(q);return q};a.extendClass=function(q,
354f){var l=function(){};l.prototype=new q;a.extend(l.prototype,f);return l};a.pad=function(a,f,l){return Array((f||2)+1-String(a).length).join(l||0)+a};a.relativeLength=function(a,f,l){return/%$/.test(a)?f*parseFloat(a)/100+(l||0):parseFloat(a)};a.wrap=function(a,f,l){var t=a[f];a[f]=function(){var a=Array.prototype.slice.call(arguments),v=arguments,u=this;u.proceed=function(){t.apply(u,arguments.length?arguments:v)};a.unshift(t);a=l.apply(this,a);u.proceed=null;return a}};a.formatSingle=function(q,
355f,l){var t=/\.([0-9])/,n=a.defaultOptions.lang;/f$/.test(q)?(l=(l=q.match(t))?l[1]:-1,null!==f&&(f=a.numberFormat(f,l,n.decimalPoint,-1<q.indexOf(",")?
355n.thousandsSep:""))):f=(l||a.time).dateFormat(q,f);return f};a.format=function(q,f,l){for(var t="{",n=!1,v,u,c,b,m=[],d;q;){t=q.indexOf(t);if(-1===t)break;v=q.slice(0,t);if(n){v=v.split(":");u=v.shift().split(".");b=u.length;d=f;for(c=0;c<b;c++)d&&(d=d[u[c]]);v.length&&(d=a.formatSingle(v.join(":"),d,l));m.push(d)}else m.push(v);q=q.slice(t+1);t=(n=
356!n)?"}":"{"}m.push(q);return m.join("")};a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(q,f,l,t,n){var v,u=q;l=a.pick(l,1);v=q/l;f||(f=n?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===t&&(1===l?f=a.grep(f,function(a){return 0===a%1}):.1>=l&&(f=[1/l])));for(t=0;t<f.length&&!(u=f[t],n&&u*l>=q||!n&&v<=(f[t]+(f[t+1]||f[t]))/2);t++);return u=a.correctFloat(u*l,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,f){var l=
357a.length,t,n;for(n=0;n<l;n++)a[n].safeI=n;a.sort(function(a,l){t=f(a,l);return 0===t?a.safeI-l.safeI:t});for(n=0;n<l;n++)delete a[n].safeI};a.arrayMin=function(a){for(var f=a.length,l=a[0];f--;)a[f]<l&&(l=a[f]);return l};a.arrayMax=function(a){for(var f=a.length,l=a[0];f--;)a[f]>l&&(l=a[f]);return l};a.destroyObjectProperties=function(q,f){a.objectEach(q,function(a,t){a&&a!==f&&a.destroy&&a.destroy();delete q[t]})};a.discardElement=function(q){var f=a.garbageBin;f||(f=a.createElement("div"));q&&f.appendChild(q);
358f.innerHTML=""};a.correctFloat=function(a,f){return parseFloat(a.toPrecision(f||14))};a.setAnimation=function(q,f){f.renderer.globalAnimation=a.pick(q,f.options.chart.animation,!0)};a.animObject=function(q){return a.isObject(q)?a.merge(q):{duration:q?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(q,f,l,t){q=+q||0;f=+f;var n=a.defaultOptions.lang,v=(q.toString().split(".")[1]||"").split("e")[0].length,u,
359c,b=q.toString().split("e");-1===f?f=Math.min(v,20):a.isNumber(f)?f&&b[1]&&0>b[1]&&(u=f+ +b[1],0<=u?(b[0]=(+b[0]).toExponential(u).split("e")[0],f=u):(b[0]=b[0].split(".")[0]||0,q=20>f?(b[0]*Math.pow(10,b[1])).toFixed(f):0,b[1]=0)):f=2;c=(Math.abs(b[1]?b[0]:q)+Math.pow(10,-Math.max(f,v)-1)).toFixed(f);v=String(a.pInt(c));u=3<v.length?v.length%3:0;l=a.pick(l,n.decimalPoint);t=a.pick(t,n.thousandsSep);q=(0>q?"-":"")+(u?v.substr(0,u)+t:"");q+=v.substr(u).replace(/(\d{3})(?=\d)/g,"$1"+t);f&&(q+=l+c.slice(-f));
360b[1]&&0!==+q&&(q+="e"+b[1]);return q};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(q,f,l){if("width"===f)return Math.min(q.offsetWidth,q.scrollWidth)-a.getStyle(q,"padding-left")-a.getStyle(q,"padding-right");if("height"===f)return Math.min(q.offsetHeight,q.scrollHeight)-a.getStyle(q,"padding-top")-a.getStyle(q,"padding-bottom");E.getComputedStyle||a.error(27,!0);if(q=E.getComputedStyle(q,void 0))q=q.getPropertyValue(f),a.pick(l,"opacity"!==f)&&(q=a.pInt(q));
361return q};a.inArray=function(q,f){return(a.indexOfPolyfill||Array.prototype.indexOf).call(f,q)};a.grep=function(q,f){return(a.filterPolyfill||Array.prototype.filter).call(q,f)};a.find=Array.prototype.find?function(a,f){return a.find(f)}:function(a,f){var l,t=a.length;for(l=0;l<t;l++)if(f(a[l],l))return a[l]};a.map=function(a,f){for(var l=[],t=0,n=a.length;t<n;t++)l[t]=f.call(a[t],a[t],t,a);return l};a.keys=function(q){return(a.keysPolyfill||Object.keys).call(void 0,q)};a.reduce=function(q,f,l){return(a.reducePolyfill||
362Array.prototype.reduce).call(q,f,l)};a.offset=function(a){var f=H.documentElement;a=a.parentElement?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(E.pageYOffset||f.scrollTop)-(f.clientTop||0),left:a.left+(E.pageXOffset||f.scrollLeft)-(f.clientLeft||0)}};a.stop=function(q,f){for(var l=a.timers.length;l--;)a.timers[l].elem!==q||f&&f!==a.timers[l].prop||(a.timers[l].stopped=!0)};a.each=function(q,f,l){return(a.forEachPolyfill||Array.prototype.forEach).call(q,f,l)};a.objectEach=function(a,
363f,l){for(var t in a)a.hasOwnProperty(t)&&f.call(l,a[t],t,a)};a.isPrototype=function(q){return q===a.Axis.prototype||q===a.Chart.prototype||q===a.Point.prototype||q===a.Series.prototype||q===a.Tick.prototype};a.addEvent=function(q,f,l){var t,n=q.addEventListener||a.addEventListenerPolyfill;t=a.isPrototype(q)?"protoEvents":"hcEvents";t=q[t]=q[t]||{};n&&n.call(q,f,l,!1);t[f]||(t[f]=[]);t[f].push(l);return function(){a.removeEvent(q,f,l)}};a.removeEvent=function(q,f,l){function t(c,b){var m=q.removeEventListener||
364a.removeEventListenerPolyfill;m&&m.call(q,c,b,!1)}function n(c){var b,m;
364q.nodeName&&(f?(b={},b[f]=!0):b=c,a.objectEach(b,function(a,h){if(c[h])for(m=c[h].length;m--;)t(h,c[h][m])}))}var v,u;a.each(["protoEvents","hcEvents"],function(c){var b=q[c];b&&(f?(v=b[f]||[],l?(u=a.inArray(l,v),-1<u&&(v.splice(u,1),b[f]=v),t(f,l)):(n(b),b[f]=[])):(n(b),q[c]={}))})};a.fireEvent=function(q,f,l,t){var n,v,u,c,b;l=l||{};H.createEvent&&(q.dispatchEvent||q.fireEvent)?(n=H.createEvent("Events"),n.initEvent(f,!0,!0),
365a.extend(n,l),q.dispatchEvent?q.dispatchEvent(n):q.fireEvent(f,n)):a.each(["protoEvents","hcEvents"],function(m){if(q[m])for(v=q[m][f]||[],u=v.length,l.target||a.extend(l,{preventDefault:function(){l.defaultPrevented=!0},target:q,type:f}),c=0;c<u;c++)(b=v[c])&&!1===b.call(q,l)&&l.preventDefault()});t&&!l.defaultPrevented&&t(l)};a.animate=function(q,f,l){var t,n="",v,u,c;a.isObject(l)||(c=arguments,l={duration:c[2],easing:c[3],complete:c[4]});a.isNumber(l.duration)||(l.duration=400);l.easing="function"===
366typeof l.easing?l.easing:Math[l.easing]||Math.easeInOutSine;l.curAnim=a.merge(f);a.objectEach(f,function(c,m){a.stop(q,m);u=new a.Fx(q,l,m);v=null;"d"===m?(u.paths=u.initPath(q,q.d,f.d),u.toD=f.d,t=0,v=1):q.attr?t=q.attr(m):(t=parseFloat(a.getStyle(q,m))||0,"opacity"!==m&&(n="px"));v||(v=c);v&&v.match&&v.match("px")&&(v=v.replace(/px/g,""));u.run(t,v,n)})};a.seriesType=function(q,f,l,t,n){var v=a.getOptions(),u=a.seriesTypes;v.plotOptions[q]=a.merge(v.plotOptions[f],l);u[q]=a.extendClass(u[f]||function(){},
367t);u[q].prototype.type=q;n&&(u[q].prototype.pointClass=a.extendClass(a.Point,n));return u[q]};a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),f=0;return function(){return"highcharts-"+a+"-"+f++}}();E.jQuery&&(E.jQuery.fn.highcharts=function(){var q=[].slice.call(arguments);if(this[0])return q[0]?(new (a[a.isString(q[0])?q.shift():"Chart"])(this[0],q[0],q[1]),this):B[a.attr(this[0],"data-highcharts-chart")]})})(K);(function(a){var B=a.each,H=a.isNumber,E=a.map,q=a.merge,f=a.pInt;
368a.Color=function(l){if(!(this instanceof a.Color))return new a.Color(l);this.init(l)};a.Color.prototype={parsers:[{regex:/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,parse:function(a){return[f(a[1]),f(a[2]),f(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[f(a[1]),f(a[2]),f(a[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(l){var f,
369n,v,u;if((this.input=l=this.names[l&&l.toLowerCase?l.toLowerCase():""]||l)&&l.stops)this.stops=E(l.stops,function(c){return new a.Color(c[1])});else if(l&&l.charAt&&"#"===l.charAt()&&(f=l.length,l=parseInt(l.substr(1),16),7===f?n=[(l&16711680)>>16,(l&65280)>>8,l&255,1]:4===f&&(n=[(l&3840)>>4|(l&3840)>>8,(l&240)>>4|l&240,(l&15)<<4|l&15,1])),!n)for(v=this.parsers.length;v--&&!n;)u=this.parsers[v],(f=u.regex.exec(l))&&(n=u.parse(f));this.rgba=n||[]},get:function(a){var l=this.input,n=this.rgba,v;this.stops?
370(v=q(l),v.stops=[].concat(v.stops),B(this.stops,function(n,c){v.stops[c]=[v.stops[c][0],n.get(a)]})):v=n&&H(n[0])?"rgb"===a||!a&&1===n[3]?"rgb("+n[0]+","+n[1]+","+n[2]+")":"a"===a?n[3]:"rgba("+n.join(",")+")":l;return v},brighten:function(a){var l,n=this.rgba;if(this.stops)B(this.stops,function(n){n.brighten(a)});else if(H(a)&&0!==a)for(l=0;3>l;l++)n[l]+=f(255*a),0>n[l]&&(n[l]=0),255<n[l]&&(n[l]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,f){var n=this.rgba,
371l=a.rgba;l.length&&n&&n.length?(a=1!==l[3]||1!==n[3],f=(a?"rgba(":"rgb(")+Math.round(l[0]+(n[0]-l[0])*(1-f))+","+Math.round(l[1]+(n[1]-l[1])*(1-f))+","+Math.round(l[2]+(n[2]-l[2])*(1-f))+(a?","+(l[3]+(n[3]-l[3])*(1-f)):"")+")"):f=a.input||"none";return f}};a.color=function(l){return new a.Color(l)}})(K);(function(a){var B,H,E=a.addEvent,q=a.animate,f=a.attr,l=a.charts,t=a.color,n=a.css,v=a.createElement,u=a.defined,c=a.deg2rad,b=a.destroyObjectProperties,m=a.doc,d=a.each,h=a.extend,k=a.erase,e=a.grep,
372p=a.hasTouch,r=a.inArray,I=a.isArray,z=a.isFirefox,M=a.isMS,D=a.isObject,C=a.isString,x=a.isWebKit,F=a.merge,A=a.noop,J=a.objectEach,G=a.pick,g=a.pInt,w=a.removeEvent,L=a.stop,P=a.svg,N=a.SVG_NS,O=a.symbolSizes,R=a.win;B=a.SVGElement=function(){return this};h(B.prototype,{opacity:1,SVG_NS:N,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(a,g){this.element="span"===g?v(g):m.createElementNS(this.SVG_NS,
373g);this.renderer=a},animate:function(y,g,c){g=a.animObject(G(g,this.renderer.globalAnimation,!0));0!==g.duration?(c&&(g.complete=c),q(this,y,g)):(this.attr(y,null,c),g.step&&g.step.call(this));return this},colorGradient:function(y,g,c){var w=this.renderer,h,b,e,k,p,Q,x,N,m,A,r=[],P;y.radialGradient?b="radialGradient":y.linearGradient&&(b="linearGradient");b&&(e=y[b],p=w.gradients,x=y.stops,A=c.radialReference,I(e)&&(y[b]=e={x1:e[0],y1:e[1],x2:e[2],y2:e[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===
374b&&A&&!u(e.gradientUnits)&&(k=e,e=F(e,w.getRadialAttr(A,k),{gradientUnits:"userSpaceOnUse"})),J(e,function(a,y){"id"!==y&&r.push(y,a)}),J(x,function(a){r.push(a)}),r=r.join(","),p[r]?A=p[r].attr("id"):(e.id=A=a.uniqueKey(),p[r]=Q=w.createElement(b).attr(e).add(w.defs),Q.radAttr=k,Q.stops=[],d(x,function(y){0===y[1].indexOf("rgba")?(h=a.color(y[1]),N=h.get("rgb"),m=h.get("a")):(N=y[1],m=1);y=w.createElement("stop").attr({offset:y[0],"stop-color":N,"stop-opacity":m}).add(Q);Q.stops.push(y)})),P="url("+
375w.url+"#"+A+")",c.setAttribute(g,P),c.gradient=r,y.toString=function(){return P})},applyTextOutline:function(y){var g=this.element,c,w,h,e,b;-1!==y.indexOf("contrast")&&(y=y.replace(/contrast/g,this.renderer.getContrast(g.style.fill)));y=y.split(" ");w=y[y.length-1];if((h=y[0])&&"none"!==h&&a.svg){this.fakeTS=!0;y=[].slice.call(g.getElementsByTagName("tspan"));this.ySetter=this.xSetter;h=h.replace(/(^[\d\.]+)(.*?)$/g,function(a,y,g){return 2*y+g});for(b=y.length;b--;)c=y[b],"highcharts-text-outline"===
376c.getAttribute("class")&&k(y,g.removeChild(c));e=g.firstChild;d(y,function(a,y){0===y&&(a.setAttribute("x",g.getAttribute("x")),y=g.getAttribute("y"),a.setAttribute("y",y||0),null===y&&g.setAttribute("y",0));a=a.cloneNode(1);f(a,{"class":"highcharts-text-outline",fill:w,stroke:w,"stroke-width":h,"stroke-linejoin":"round"});g.insertBefore(a,e)})}},attr:function(a,g,c,w){var y,h=this.element,b,e=this,d,k;"string"===typeof a&&void 0!==g&&(y=a,a={},a[y]=g);"string"===typeof a?e=(this[a+"Getter"]||this._defaultGetter).call(this,
377a,h):(J(a,function(y,g){d=!1;w||L(this,g);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(g)&&(b||(this.symbolAttr(a),b=!0),d=!0);!this.rotation||"x"!==g&&"y"!==g||(this.doTransform=!0);d||(k=this[g+"Setter"]||this._defaultSetter,k.call(this,y,g,h),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(g)&&this.updateShadows(g,y,k))},this),this.afterSetters());c&&c.call(this);return e},afterSetters:function(){this.doTransform&&(this.updateTransform(),
378this.doTransform=!1)},updateShadows:function(a,g,c){for(var y=this.shadows,w=y.length;w--;)c.call(y[w],"height"===a?Math.max(g-(y[w].cutHeight||0),0):"d"===a?this.d:g,a,y[w])},addClass:function(a,g){var y=this.attr("class")||"";-1===y.indexOf(a)&&(g||(a=(y+(y?" ":"")+a).replace("  "," ")),this.attr("class",a));return this},hasClass:function(a){return-1!==r(a,(this.attr("class")||"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var y=
379this;d("x y r start end width height innerR anchorX anchorY".split(" "),function(g){y[g]=G(a[g],y[g])});y.attr({d:y.renderer.symbols[y.symbolName](y.x,y.y,y.width,y.height,y)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,g){var y;g=g||a.strokeWidth||0;y=Math.round(g)%2/2;a.x=Math.floor(a.x||this.x||0)+y;a.y=Math.floor(a.y||this.y||0)+y;a.width=Math.floor((a.width||this.width||0)-2*y);a.height=Math.floor((a.height||this.height||0)-
3802*y);u(a.strokeWidth)&&(a.strokeWidth=g);return a},css:function(a){var y=this.styles,c={},w=this.element,b,e="",d,k=!y,p=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);y&&J(a,function(a,g){a!==y[g]&&(c[g]=a,k=!0)});k&&(y&&(a=h(y,c)),b=this.textWidth=a&&a.width&&"auto"!==a.width&&"text"===w.nodeName.toLowerCase()&&g(a.width),this.styles=a,b&&!P&&this.renderer.forExport&&delete a.width,w.namespaceURI===this.SVG_NS?(d=function(a,y){return"-"+y.toLowerCase()},J(a,function(a,y){-1===
381r(y,p)&&(e+=y.replace(/([A-Z])/g,d)+":"+a+";")}),e&&f(w,"style",e)):n(w,a),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline)));return this},strokeWidth:function(){return this["stroke-width"]||0},on:function(a,g){var y=this,c=y.element;p&&"click"===a?(c.ontouchstart=function(a){y.touchEventFired=Date.now();a.preventDefault();g.call(c,a)},c.onclick=function(a){(-1===R.navigator.userAgent.indexOf("Android")||1100<Date.now()-
382(y.touchEventFired||0))&&g.call(c,a)}):c["on"+a]=g;return this},setRadialReference:function(a){var y=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;y&&y.radAttr&&y.animate(this.renderer.getRadialAttr(a,y.radAttr));return this},translate:function(a,g){return this.attr({translateX:a,translateY:g})},invert:function(a){this.inverted=a;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,g=this.translateY||0,c=this.scaleX,w=this.scaleY,
383h=this.inverted,e=this.rotation,b=this.matrix,d=this.element;h&&(a+=this.width,g+=this.height);a=["translate("+a+","+g+")"];
383u(b)&&a.push("matrix("+b.join(",")+")");h?a.push("rotate(90) scale(-1,1)"):e&&a.push("rotate("+e+" "+G(this.rotationOriginX,d.getAttribute("x"),0)+" "+G(this.rotationOriginY,d.getAttribute("y")||0)+")");(u(c)||u(w))&&a.push("scale("+G(c,1)+" "+G(w,1)+")");a.length&&d.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},
384align:function(a,g,c){var y,w,h,e,d={};w=this.renderer;h=w.alignedObjects;var b,p;if(a){if(this.alignOptions=a,this.alignByTranslate=g,!c||C(c))this.alignTo=y=c||"renderer",k(h,this),h.push(this),c=null}else a=this.alignOptions,g=this.alignByTranslate,y=this.alignTo;c=G(c,w[y],w);y=a.align;w=a.verticalAlign;h=(c.x||0)+(a.x||0);e=(c.y||0)+(a.y||0);"right"===y?b=1:"center"===y&&(b=2);b&&(h+=(c.width-(a.width||0))/b);d[g?"translateX":"x"]=Math.round(h);"bottom"===w?p=1:"middle"===w&&(p=2);p&&(e+=(c.height-
385(a.height||0))/p);d[g?"translateY":"y"]=Math.round(e);this[this.placed?"animate":"attr"](d);this.placed=!0;this.alignAttr=d;return this},getBBox:function(a,g){var y,w=this.renderer,b,e=this.element,k=this.styles,p,x=this.textStr,N,m=w.cache,A=w.cacheKeys,F;g=G(g,this.rotation);b=g*c;p=k&&k.fontSize;u(x)&&(F=x.toString(),-1===F.indexOf("\x3c")&&(F=F.replace(/[0-9]/g,"0")),F+=["",g||0,p,k&&k.width,k&&k.textOverflow].join());F&&!a&&(y=m[F]);if(!y){if(e.namespaceURI===this.SVG_NS||w.forExport){try{(N=
386this.fakeTS&&function(a){d(e.querySelectorAll(".highcharts-text-outline"),function(y){y.style.display=a})})&&N("none"),y=e.getBBox?h({},e.getBBox()):{width:e.offsetWidth,height:e.offsetHeight},N&&N("")}catch(W){}if(!y||0>y.width)y={width:0,height:0}}else y=this.htmlGetBBox();w.isSVG&&(a=y.width,w=y.height,k&&"11px"===k.fontSize&&17===Math.round(w)&&(y.height=w=14),g&&(y.width=Math.abs(w*Math.sin(b))+Math.abs(a*Math.cos(b)),y.height=Math.abs(w*Math.cos(b))+Math.abs(a*Math.sin(b))));if(F&&0<y.height){for(;250<
387A.length;)delete m[A.shift()];m[F]||A.push(F);m[F]=y}}return y},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var y=this;y.animate({opacity:0}
387,{duration:a||150,complete:function(){y.attr({y:-9999})}})},add:function(a){var y=this.renderer,g=this.element,c;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;void 0!==this.textStr&&y.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)c=
388this.zIndexSetter();c||(a?a.element:y.box).appendChild(g);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var y=a.parentNode;y&&y.removeChild(a)},destroy:function(){var a=this,g=a.element||{},c=a.renderer.isSVG&&"SPAN"===g.nodeName&&a.parentGroup,w=g.ownerSVGElement,h=a.clipPath;g.onclick=g.onmouseout=g.onmouseover=g.onmousemove=g.point=null;L(a);h&&w&&(d(w.querySelectorAll("[clip-path],[CLIP-PATH]"),function(a){var g=a.getAttribute("clip-path"),y=h.element.id;(-1<g.indexOf("(#"+
389y+")")||-1<g.indexOf('("#'+y+'")'))&&a.removeAttribute("clip-path")}),a.clipPath=h.destroy());if(a.stops){for(w=0;w<a.stops.length;w++)a.stops[w]=a.stops[w].destroy();a.stops=null}a.safeRemoveChild(g);for(a.destroyShadows();c&&c.div&&0===c.div.childNodes.length;)g=c.parentGroup,a.safeRemoveChild(c.div),delete c.div,c=g;a.alignTo&&k(a.renderer.alignedObjects,a);J(a,function(g,y){delete a[y]});return null},shadow:function(a,g,c){var y=[],w,h,e=this.element,b,d,k,p;if(!a)this.destroyShadows();else if(!this.shadows){d=
390G(a.width,3);k=(a.opacity||.15)/d;p=this.parentInverted?"(-1,-1)":"("+G(a.offsetX,1)+", "+G(a.offsetY,1)+")";for(w=1;w<=d;w++)h=e.cloneNode(0),b=2*d+1-2*w,f(h,{isShadow:"true",stroke:a.color||"#000000","stroke-opacity":k*w,"stroke-width":b,transform:"translate"+p,fill:"none"}),c&&(f(h,"height",Math.max(f(h,"height")-b,0)),h.cutHeight=b),g?g.element.appendChild(h):e.parentNode&&e.parentNode.insertBefore(h,e),y.push(h);this.shadows=y}return this},destroyShadows:function(){d(this.shadows||[],function(a){this.safeRemoveChild(a)},
391this);this.shadows=void 0},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(a){a=G(this[a+"Value"],this[a],this.element?this.element.getAttribute(a):null,0);/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a));return a},dSetter:function(a,g,c){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[g]!==a&&(c.setAttribute(g,a),this[g]=a)},dashstyleSetter:function(a){var y,c=this["stroke-width"];"inherit"===
392c&&(c=1);if(a=a&&a.toLowerCase()){a=a.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(y=a.length;y--;)a[y]=g(a[y])*c;a=a.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",a)}},alignSetter:function(a){this.alignValue=a;this.element.setAttribute("text-anchor",{left:"start",center:"middle",
393right:"end"}[a])},opacitySetter:function(a,g,c){this[g]=a;c.setAttribute(g,a)},titleSetter:function(a){var g=this.element.getElementsByTagName("title")[0];g||(g=m.createElementNS(this.SVG_NS,"title"),this.element.appendChild(g));g.firstChild&&g.removeChild(g.firstChild);g.appendChild(m.createTextNode(String(G(a),"").replace(/<[^>]*>/g,"").replace(/&lt;/g,"\x3c").replace(/&gt;/g,"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},
394fillSetter:function(a,g,c){"string"===typeof a?c.setAttribute(g,a):a&&this.colorGradient(a,g,c)},visibilitySetter:function(a,g,c){"inherit"===a?c.removeAttribute(g):this[g]!==a&&c.setAttribute(g,a);this[g]=a},zIndexSetter:function(a,c){var w=this.renderer,y=this.parentGroup,h=(y||w).element||w.box,e,b=this.element,d,k,w=h===w.box;e=this.added;var p;u(a)&&(b.zIndex=a,a=+a,this[c]===a&&(e=!1),this[c]=a);if(e){(a=this.zIndex)&&y&&(y.handleZ=!0);c=h.childNodes;for(p=c.length-1;0<=p&&!d;p--)if(y=c[p],
395e=y.zIndex,k=!u(e),y!==b)if(0>a&&k&&!w&&!p)h.insertBefore(b,c[p]),d=!0;else if(g(e)<=a||k&&(!u(a)||0<=a))h.insertBefore(b,c[p+1]||null),d=!0;d||(h.insertBefore(b,c[w?3:0]||null),d=!0)}return d},_defaultSetter:function(a,g,c){c.setAttribute(g,a)}});B.prototype.yGetter=B.prototype.xGetter;B.prototype.translateXSetter=B.prototype.translateYSetter=B.prototype.rotationSetter=B.prototype.verticalAlignSetter=B.prototype.rotationOriginXSetter=B.prototype.rotationOriginYSetter=B.prototype.scaleXSetter=B.prototype.scaleYSetter=
396B.prototype.matrixSetter=function(a,g){this[g]=a;this.doTransform=!0};B.prototype["stroke-widthSetter"]=B.prototype.strokeSetter=function(a,g,c){this[g]=a;this.stroke&&this["stroke-width"]?(B.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===g&&0===a&&this.hasStroke&&(c.removeAttribute("stroke"),this.hasStroke=!1)};H=a.SVGRenderer=function(){this.init.apply(this,arguments)};h(H.prototype,{Element:B,SVG_NS:N,
397init:function(a,g,c,w,h,e){var y;w=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(w));y=w.element;a.appendChild(y);f(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&f(y,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=y;this.boxWrapper=w;this.alignedObjects=[];this.url=(z||x)&&m.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(m.createTextNode("Created with Highcharts 6.0.7"));
398this.defs=this.createElement("defs").add();this.allowHTML=e;this.forExport=h;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(g,c,!1);var b;z&&a.getBoundingClientRect&&(g=function(){n(a,{left:0,top:0});b=a.getBoundingClientRect();
398n(a,{left:Math.ceil(b.left)-b.left+"px",top:Math.ceil(b.top)-b.top+"px"})},g(),this.unSubPixelFix=E(R,"resize",g))},getStyle:function(a){return this.style=h({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},
399a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();b(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var g=new this.Element;g.init(this,a);return g},draw:A,getRadialAttr:function(a,g){return{cx:a[0]-a[2]/2+g.cx*a[2],cy:a[1]-
400a[2]/2+g.cy*a[2],r:g.r*a[2]}},getSpanWidth:function(a){return a.getBBox(!0).width},applyEllipsis:function(a,g,c,w){var h=a.rotation,y=c,b,e=0,d=c.length,k=function(a){g.removeChild(g.firstChild);a&&g.appendChild(m.createTextNode(a))},p;a.rotation=0;y=this.getSpanWidth(a,g);if(p=y>w){for(;e<=d;)b=Math.ceil((e+d)/2),y=c.substring(0,b)+"\u2026",k(y),y=this.getSpanWidth(a,g),e===d?e=d+1:y>w?d=b-1:e=b;0===d&&k("")}a.rotation=h;return p},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",
401'"':"\x26quot;"},buildText:function(a){var c=a.element,w=this,h=w.forExport,b=G(a.textStr,"").toString(),y=-1!==b.indexOf("\x3c"),k=c.childNodes,p,x,A,F,z=f(c,"x"),L=a.styles,O=a.textWidth,l=L&&L.lineHeight,D=L&&L.textOutline,C=L&&"ellipsis"===L.textOverflow,v=L&&"nowrap"===L.whiteSpace,u=L&&L.fontSize,M,t,I=k.length,L=O&&!a.added&&this.box,R=function(a){var h;h=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:u||w.style.fontSize||12;return l?g(l):w.fontMetrics(h,a.getAttribute("style")?a:c).h},
402q=function(a,g){J(w.escapes,function(c,w){g&&-1!==r(c,g)||(a=a.toString().replace(new RegExp(c,"g"),w))});return a};M=[b,C,v,l,D,u,O].join();if(M!==a.textCache){for(a.textCache=M;I--;)c.removeChild(k[I]);y||D||C||O||-1!==b.indexOf(" ")?(p=/<.*class="([^"]+)".*>/,x=/<.*style="([^"]+)".*>/,A=/<.*href="([^"]+)".*>/,L&&L.appendChild(c),b=y?b.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,
403"\x3c/span\x3e").split(/<br.*?>/g):[b],b=e(b,function(a){return""!==a}),d(b,function(g,b){var e,y=0;g=g.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");e=g.split("|||");d(e,function(g){if(""!==g||1===e.length){var d={},k=m.createElementNS(w.SVG_NS,"tspan"),r,L;p.test(g)&&(r=g.match(p)[1],f(k,"class",r));x.test(g)&&(L=g.match(x)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),f(k,"style",L));A.test(g)&&!h&&(f(k,"onclick",'location.href\x3d"'+g.match(A)[1]+
404'"'),f(k,"class","highcharts-anchor"),n(k,{cursor:"pointer"}));g=q(g.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==g){k.appendChild(m.createTextNode(g));y?d.dx=0:b&&null!==z&&(d.x=z);f(k,d);c.appendChild(k);!y&&t&&(!P&&h&&n(k,{display:"block"}),f(k,"dy",R(k)));if(O){d=g.replace(/([^\^])-/g,"$1- ").split(" ");r=1<e.length||b||1<d.length&&!v;var l=[],D,J=R(k),G=a.rotation;for(C&&(F=w.applyEllipsis(a,k,g,O));!C&&r&&(d.length||l.length);)a.rotation=0,D=w.getSpanWidth(a,k),g=D>O,void 0===F&&(F=g),
405g&&1!==d.length?(k.removeChild(k.firstChild),l.unshift(d.pop())):(d=l,l=[],d.length&&!v&&(k=m.createElementNS(N,"tspan"),f(k,{dy:J,x:z}),L&&f(k,"style",L),c.appendChild(k)),D>O&&(O=D)),d.length&&k.appendChild(m.createTextNode(d.join(" ").replace(/- /g,"-")));a.rotation=G}y++}}});t=t||c.childNodes.length}),F&&a.attr("title",q(a.textStr,["\x26lt;","\x26gt;"])),L&&L.removeChild(c),D&&a.applyTextOutline&&a.applyTextOutline(D)):c.appendChild(m.createTextNode(q(b)))}},getContrast:function(a){a=t(a).rgba;
406return 510<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,g,c,w,b,d,e,k,p){var y=this.label(a,g,c,p,null,null,null,null,"button"),x=0;y.attr(F({padding:8,r:2},b));var N,m,A,r;b=F({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},b);N=b.style;delete b.style;
406d=F(b,{fill:"#e6e6e6"},d);m=d.style;delete d.style;e=F(b,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},e);A=e.style;delete e.style;k=F(b,{style:{color:"#cccccc"}},
407k);r=k.style;delete k.style;E(y.element,M?"mouseover":"mouseenter",function(){3!==x&&y.setState(1)});E(y.element,M?"mouseout":"mouseleave",function(){3!==x&&y.setState(x)});y.setState=function(a){1!==a&&(y.state=x=a);y.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||0]);y.attr([b,d,e,k][a||0]).css([N,m,A,r][a||0])};y.attr(b).css(h({cursor:"default"},N));return y.on("click",function(a){3!==x&&w.call(y,a)})},crispLine:function(a,
408g){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-g%2/2);a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+g%2/2);return a},path:function(a){var g={fill:"none"};I(a)?g.d=a:D(a)&&h(g,a);return this.createElement("path").attr(g)},circle:function(a,g,c){a=D(a)?a:{x:a,y:g,r:c};g=this.createElement("circle");g.xSetter=g.ySetter=function(a,g,c){c.setAttribute("c"+g,a)};return g.attr(a)},arc:function(a,g,c,w,b,h){D(a)?(w=a,g=w.y,c=w.r,a=w.x):w={innerR:w,start:b,end:h};a=this.symbol("arc",a,g,c,c,w);a.r=c;return a},rect:function(a,
409g,c,w,b,h){b=D(a)?a.r:b;var d=this.createElement("rect");a=D(a)?a:void 0===a?{}:{x:a,y:g,width:Math.max(c,0),height:Math.max(w,0)};void 0!==h&&(a.strokeWidth=h,a=d.crisp(a));a.fill="none";b&&(a.r=b);d.rSetter=function(a,g,c){f(c,{rx:a,ry:a})};return d.attr(a)},setSize:function(a,g,c){var w=this.alignedObjects,b=w.length;this.width=a;this.height=g;for(this.boxWrapper.animate({width:a,height:g},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:G(c,!0)?
410void 0:0});b--;)w[b].align()},g:function(a){var g=this.createElement("g");return a?g.attr({"class":"highcharts-"+a}):g},image:function(a,g,c,w,b){var d={preserveAspectRatio:"none"};1<arguments.length&&h(d,{x:g,y:c,width:w,height:b});d=this.createElement("image").attr(d);d.element.setAttributeNS?d.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):d.element.setAttribute("hc-svg-href",a);return d},symbol:function(a,g,c,w,b,e){var k=this,p,y=/^url\((.*?)\)$/,x=y.test(a),N=!x&&(this.symbols[a]?
411a:"circle"),A=N&&this.symbols[N],F=u(g)&&A&&A.call(this.symbols,Math.round(g),Math.round(c),w,b,e),r,L;A?(p=this.path(F),p.attr("fill","none"),h(p,{symbolName:N,x:g,y:c,width:w,height:b}),e&&h(p,e)):x&&(r=a.match(y)[1],p=this.image(r),p.imgwidth=G(O[r]&&O[r].width,e&&e.width),p.imgheight=G(O[r]&&O[r].height,e&&e.height),L=function(){p.attr({width:p.width,height:p.height})},d(["width","height"],function(a){p[a+"Setter"]=function(a,g){var c={},w=this["img"+g],b="width"===g?"translateX":"translateY";
412this[g]=a;u(w)&&(this.element&&this.element.setAttribute(g,w),this.alignByTranslate||(c[b]=((this[g]||0)-w)/2,this.attr(c)))}}),u(g)&&p.attr({x:g,y:c}),p.isImg=!0,u(p.imgwidth)&&u(p.imgheight)?L():(p.attr({width:0,height:0}),v("img",{onload:function(){var a=l[k.chartIndex];0===this.width&&(n(this,{position:"absolute",top:"-999em"}),m.body.appendChild(this));O[r]={width:this.width,height:this.height};p.imgwidth=this.width;p.imgheight=this.height;p.element&&L();this.parentNode&&this.parentNode.removeChild(this);
413k.imgCount--;if(!k.imgCount&&a&&a.onload)a.onload()},src:r}),this.imgCount++));return p},symbols:{circle:function(a,g,c,w){return this.arc(a+c/2,g+w/2,c/2,w/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,g,c,w){return["M",a,g,"L",a+c,g,a+c,g+w,a,g+w,"Z"]},triangle:function(a,g,c,w){return["M",a+c/2,g,"L",a+c,g+w,a,g+w,"Z"]},"triangle-down":function(a,g,c,w){return["M",a,g,"L",a+c,g,a+c/2,g+w,"Z"]},diamond:function(a,g,c,w){return["M",a+c/2,g,"L",a+c,g+w/2,a+c/2,g+w,a,g+w/2,"Z"]},arc:function(a,
414g,c,w,b){var h=b.start,d=b.r||c,e=b.r||w||c,k=b.end-.001;c=b.innerR;w=G(b.open,.001>Math.abs(b.end-b.start-2*Math.PI));var p=Math.cos(h),y=Math.sin(h),x=Math.cos(k),k=Math.sin(k);b=.001>b.end-h-Math.PI?0:1;d=["M",a+d*p,g+e*y,"A",d,e,0,b,1,a+d*x,g+e*k];u(c)&&d.push(w?"M":"L",a+c*x,g+c*k,"A",c,c,0,b,0,a+c*p,g+c*y);d.push(w?"":"Z");return d},callout:function(a,g,c,w,b){var h=Math.min(b&&b.r||0,c,w),d=h+6,e=b&&b.anchorX;b=b&&b.anchorY;var k;k=["M",a+h,g,"L",a+c-h,g,"C",a+c,g,a+c,g,a+c,g+h,"L",a+c,g+w-
415h,"C",a+c,g+w,a+c,g+w,a+c-h,g+w,"L",a+h,g+w,"C",a,g+w,a,g+w,a,g+w-h,"L",a,g+h,"C",a,g,a,g,a+h,g];e&&e>c?b>g+d&&b<g+w-d?k.splice(13,3,"L",a+c,b-6,a+c+6,b,a+c,b+6,a+c,g+w-h):k.splice(13,3,"L",a+c,w/2,e,b,a+c,w/2,a+c,g+w-h):e&&0>e?b>g+d&&b<g+w-d?k.splice(33,3,"L",a,b+6,a-6,b,a,b-6,a,g+h):k.splice(33,3,"L",a,w/2,e,b,a,w/2,a,g+h):b&&b>w&&e>a+d&&e<a+c-d?k.splice(23,3,"L",e+6,g+w,e,g+w+6,e-6,g+w,a+h,g+w):b&&0>b&&e>a+d&&e<a+c-d&&k.splice(3,3,"L",e-6,g,e,g-6,e+6,g,c-h,g);return k}},clipRect:function(g,c,w,
416b){var h=a.uniqueKey(),d=this.createElement("clipPath").attr({id:h}).add(this.defs);g=this.rect(g,c,w,b,0).add(d);g.id=h;g.clipPath=d;g.count=0;return g},text:function(a,g,c,w){var b={};if(w&&(this.allowHTML||!this.forExport))return this.html(a,g,c);b.x=Math.round(g||0);c&&(b.y=Math.round(c));if(a||0===a)b.text=a;a=this.createElement("text").attr(b);w||(a.xSetter=function(a,g,c){var w=c.getElementsByTagName("tspan"),b,h=c.getAttribute(g),d;for(d=0;d<w.length;d++)b=w[d],b.getAttribute(g)===h&&b.setAttribute(g,
417a);c.setAttribute(g,a)});return a},fontMetrics:function(a,c){a=a||c&&c.style&&c.style.fontSize||this.style&&this.style.fontSize;a=/px/.test(a)?g(a):/em/.test(a)?parseFloat(a)*(c?this.fontMetrics(null,c.parentNode).f:16):12;c=24>a?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a,g,w){var b=a;g&&w&&(b=Math.max(b*Math.cos(g*c),4));return{x:-a/3*Math.sin(g*c),y:b}},label:function(g,c,b,e,k,p,x,N,m){var A=this,r=A.g("button"!==m&&"label"),y=r.text=A.text("",0,0,x).attr({zIndex:1}),
418L,P,z=0,O=3,l=0,n,D,f,J,C,G={},v,M,t=/^url\((.*?)\)$/.test(e),I=t,R,q,Q,T;m&&r.addClass("highcharts-"+m);I=t;R=function(){return(v||0)%2/2};q=function(){var a=y.element.style,g={};P=(void 0===n||void 0===D||C)&&u(y.textStr)&&y.getBBox();r.width=(n||P.width||0)+2*O+l;r.height=(D||P.height||0)+2*O;M=O+A.fontMetrics(a&&a.fontSize,y).b;I&&(L||(r.box=L=A.symbols[e]||t?A.symbol(e):A.rect(),L.addClass(("button"===m?"":"highcharts-label-box")+(m?" highcharts-"+m+"-box":"")),L.add(r),a=R(),g.x=a,g.y=(N?-M:
4190)+a),g.width=Math.round(r.width),g.height=Math.round(r.height),L.attr(h(g,G)),G={})};Q=function(){var a=l+O,g;g=N?0:M;u(n)&&P&&("center"===C||"right"===C)&&(a+={center:.5,right:1}[C]*(n-P.width));if(a!==y.x||g!==y.y)y.attr("x",a),void 0!==g&&y.attr("y",g);y.x=a;y.y=g};T=function(a,g){L?L.attr(a,g):G[a]=g};r.onAdd=function(){y.add(r);r.attr({text:g||0===g?g:"",x:c,y:b});L&&u(k)&&r.attr({anchorX:k,anchorY:p})};r.widthSetter=function(g){n=a.isNumber(g)?g:null};r.heightSetter=function(a){D=a};r["text-alignSetter"]=
420function(a){C=a};r.paddingSetter=function(a){u(a)&&a!==O&&(O=r.padding=a,Q())};r.paddingLeftSetter=function(a){u(a)&&a!==l&&(l=a,Q())};r.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,P&&r.attr({x:f}))};r.textSetter=function(a){void 0!==a&&y.textSetter(a);q();Q()};r["stroke-widthSetter"]=function(a,g){a&&(I=!0);v=this["stroke-width"]=a;T(g,a)};r.strokeSetter=r.fillSetter=r.rSetter=function(a,g){"r"!==g&&("fill"===g&&a&&(I=!0),r[g]=a);T(g,a)};r.anchorXSetter=function(a,g){k=r.anchorX=
421a;T(g,Math.round(a)-R()-f)};r.anchorYSetter=function(a,g){p=r.anchorY=a;T(g,a-J)};r.xSetter=function(a){r.x=a;z&&(a-=z*((n||P.width)+2*O));f=Math.round(a);r.attr("translateX",f)};r.ySetter=function(a){J=r.y=Math.round(a);r.attr("translateY",J)};var U=r.css;return h(r,{css:function(a){if(a){var g={};a=F(a);d(r.textProps,function(c){void 0!==a[c]&&(g[c]=a[c],delete a[c])});y.css(g)}return U.call(r,a)},getBBox:function(){return{width:P.width+2*O,height:P.height+2*O,x:P.x-O,y:P.y-O}},shadow:function(a){a&&
422(q(),L&&L.shadow(a));return r},destroy:function(){w(r.element,"mouseenter");w(r.element,"mouseleave");y&&(y=y.destroy());L&&(L=L.destroy());B.prototype.destroy.call(r);r=A=q=Q=T=null}})}});a.Renderer=H})(K);(function(a){var B=a.attr,H=a.createElement,E=a.css,q=a.defined,f=a.each,l=a.extend,t=a.isFirefox,n=a.isMS,v=a.isWebKit,u=a.pick,c=a.pInt,b=a.SVGRenderer,m=a.win,d=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var c=this.element;if(c=a&&"SPAN"===c.tagName&&a.width)delete a.width,this.textWidth=
423c,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);E(this.element,a);return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,d=this.translateX||0,p=this.translateY||0,r=this.x||0,m=this.y||0,z=this.textAlign||"left",l={left:0,center:.5,right:1}[z],n=this.styles,
424C=n&&n.whiteSpace;E(b,{marginLeft:d,marginTop:p});this.shadows&&f(this.shadows,function(a){E(a,{marginLeft:d+1,marginTop:p+1})});this.inverted&&f(b.childNodes,function(c){a.invertChild(c,b)});if("SPAN"===b.tagName){var n=this.rotation,x=this.textWidth&&c(this.textWidth),F=[n,z,b.innerHTML,this.textWidth,this.textAlign].join(),A;(A=x!==this.oldTextWidth)&&!(A=x>this.oldTextWidth)&&((A=this.textPxLength)||(E(b,{width:"",whiteSpace:C||"nowrap"}),A=b.offsetWidth),A=A>x);A&&/[ \-]/.test(b.textContent||
425b.innerText)&&(E(b,{width:x+"px",display:"block",whiteSpace:C||"normal"}),this.oldTextWidth=x);F!==this.cTT&&(C=a.fontMetrics(b.style.fontSize).b,q(n)&&n!==(this.oldRotation||0)&&this.setSpanRotation(n,l,C),this.get
425SpanCorrection(this.textPxLength||b.offsetWidth,C,l,n,z));E(b,{left:r+(this.xCorr||0)+"px",top:m+(this.yCorr||0)+"px"});this.cTT=F;this.oldRotation=n}}else this.alignOnAdd=!0},setSpanRotation:function(a,c,b){var d={},e=this.renderer.getTransformKey();d[e]=d.transform="rotate("+a+"deg)";
426d[e+(t?"Origin":"-origin")]=d.transformOrigin=100*c+"% "+b+"px";E(this.element,d)},getSpanCorrection:function(a,c,b){this.xCorr=-a*b;this.yCorr=-c}});l(b.prototype,{getTransformKey:function(){return n&&!/Edge/.test(m.navigator.userAgent)?"-ms-transform":v?"-webkit-transform":t?"MozTransform":m.opera?"-o-transform":""},html:function(a,c,b){var e=this.createElement("span"),h=e.element,k=e.renderer,m=k.isSVG,n=function(a,c){f(["opacity","visibility"],function(b){d(a,b+"Setter",function(a,b,e,d){a.call(this,
427b,e,d);c[e]=b})})};e.textSetter=function(a){a!==h.innerHTML&&delete this.bBox;this.textStr=a;h.innerHTML=u(a,"");e.doTransform=!0};m&&n(e,e.element.style);e.xSetter=e.ySetter=e.alignSetter=e.rotationSetter=function(a,c){"align"===c&&(c="textAlign");e[c]=a;e.doTransform=!0};e.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};e.attr({text:a,x:Math.round(c),y:Math.round(b)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});
428h.style.whiteSpace="nowrap";e.css=e.htmlCss;m&&(e.add=function(a){var c,b=k.box.parentNode,d=[];if(this.parentGroup=a){if(c=a.div,!c){for(;a;)d.push(a),a=a.parentGroup;f(d.reverse(),function(a){function h(g,c){a[c]=g;"translateX"===c?k.left=g+"px":k.top=g+"px";a.doTransform=!0}var k,g=B(a.element,"class");g&&(g={className:g});c=a.div=a.div||H("div",g,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},
429c||b);k=c.style;l(a,{classSetter:function(a){return function(g){this.element.setAttribute("class",g);a.className=g}}(c),on:function(){d[0].div&&e.on.apply({element:d[0].div},arguments);return a},translateXSetter:h,translateYSetter:h});n(a,k)})}}else c=b;c.appendChild(h);e.added=!0;e.alignOnAdd&&e.htmlUpdateTransform();return e});return e}})})(K);(function(a){var B=a.defined,H=a.each,E=a.extend,q=a.merge,f=a.pick,l=a.timeUnits,t=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},
430update:function(n){var l=f(n&&n.useUTC,!0),u=this;this.options=n=q(!0,this.options||{},n);this.Date=n.Date||t.Date;this.timezoneOffset=(this.useUTC=l)&&n.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(l&&!n.getTimezoneOffset&&!n.timezone))||this.timezoneOffset?(this.get=function(a,b){var c=b.getTime(),d=c-u.getTimezoneOffset(b);b.setTime(d);a=b["getUTC"+a]();b.setTime(c);return a},this.set=function(c,b,m){var d;if(-1!==a.inArray(c,["Milliseconds","Seconds",
431"Minutes"]))b["set"+c](m);else d=u.getTimezoneOffset(b),d=b.getTime()-d,b.setTime(d),b["setUTC"+c](m),c=u.getTimezoneOffset(b),d=b.getTime()+c,b.setTime(d)}):l?(this.get=function(a,b){return b["getUTC"+a]()},this.set=function(a,b,m){return b["setUTC"+a](m)}):(this.get=function(a,b){return b["get"+a]()},this.set=function(a,b,m){return b["set"+a](m)})},makeTime:function(l,v,u,c,b,m){var d,h,k;this.useUTC?(d=this.Date.UTC.apply(0,arguments),h=this.getTimezoneOffset(d),d+=h,k=this.getTimezoneOffset(d),
432h!==k?d+=k-h:h-36E5!==this.getTimezoneOffset(d-36E5)||a.isSafari||(d-=36E5)):d=(new this.Date(l,v,f(u,1),f(c,0),f(b,0),f(m,0))).getTime();return d},timezoneOffsetFunction:function(){var l=this,f=this.options,u=t.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(f.timezone){if(u)return function(a){return 6E4*-u.tz(a,f.timezone).utcOffset()};a.error(25)}return this.useUTC&&f.getTimezoneOffset?function(a){return 6E4*f.getTimezoneOffset(a)}:function(){return 6E4*
433(l.timezoneOffset||0)}},dateFormat:function(l,f,u){if(!a.defined(f)||isNaN(f))return a.defaultOptions.lang.invalidDate||"";l=a.pick(l,"%Y-%m-%d %H:%M:%S");var c=this,b=new this.Date(f),m=this.get("Hours",b),d=this.get("Day",b),h=this.get("Date",b),k=this.get("Month",b),e=this.get("FullYear",b),p=a.defaultOptions.lang,r=p.weekdays,n=p.shortWeekdays,z=a.pad,b=a.extend({a:n?n[d]:r[d].substr(0,3),A:r[d],d:z(h),e:z(h,2," "),w:d,b:p.shortMonths[k],B:p.months[k],m:z(k+1),y:e.toString().substr(2,2),Y:e,H:z(m),
434k:m,I:z(m%12||12),l:m%12||12,M:z(c.get("Minutes",b)),p:12>m?"AM":"PM",P:12>m?"am":"pm",S:z(b.getSeconds()),L:z(Math.round(f%1E3),3)},a.dateFormats);a.objectEach(b,function(a,b){for(;-1!==l.indexOf("%"+b);)l=l.replace("%"+b,"function"===typeof a?a.call(c,f):a)});return u?l.substr(0,1).toUpperCase()+l.substr(1):l},getTimeTicks:function(a,v,u,c){var b=this,m=[],d={},h,k=new b.Date(v),e=a.unitRange,p=a.count||1,r;if(B(v)){b.set("Milliseconds",k,e>=l.second?0:p*Math.floor(b.get("Milliseconds",k)/p));e>=
435l.second&&b.set("Seconds",k,e>=l.minute?0:p*Math.floor(b.get("Seconds",k)/p));e>=l.minute&&b.set("Minutes",k,e>=l.hour?0:p*Math.floor(b.get("Minutes",k)/p));e>=l.hour&&b.set("Hours",k,e>=l.day?0:p*Math.floor(b.get("Hours",k)/p));e>=l.day&&b.set("Date",k,e>=l.month?1:p*Math.floor(b.get("Date",k)/p));e>=l.month&&(b.set("Month",k,e>=l.year?0:p*Math.floor(b.get("Month",k)/p)),h=b.get("FullYear",k));e>=l.year&&b.set("FullYear",k,h-h%p);e===l.week&&b.set("Date",k,b.get("Date",k)-b.get("Day",k)+f(c,1));
436h=b.get("FullYear",k);c=b.get("Month",k);var n=b.get("Date",k),z=b.get("Hours",k);v=k.getTime();b.variableTimezone&&(r=u-v>4*l.month||b.getTimezoneOffset(v)!==b.getTimezoneOffset(u));k=k.getTime();for(v=1;k<u;)m.push(k),k=e===l.year?b.makeTime(h+v*p,0):e===l.month?b.makeTime(h,c+v*p):!r||e!==l.day&&e!==l.week?r&&e===l.hour&&1<
436p?b.makeTime(h,c,n,z+v*p):k+e*p:b.makeTime(h,c,n+v*p*(e===l.day?1:7)),v++;m.push(k);e<=l.hour&&1E4>m.length&&H(m,function(a){0===a%18E5&&"000000000"===b.dateFormat("%H%M%S%L",
437a)&&(d[a]="day")})}m.info=E(a,{higherRanks:d,totalRange:e*p});return m}}})(K);(function(a){var B=a.color,H=a.merge;a.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
438weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},
439title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},
440shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",
441day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,backgroundColor:B("#f7f7f7").setOpacity(.85).get(),borderWidth:1,headerFormat:'\x3cspan style\x3d"font-size: 10px"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e',pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e',shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",
442whiteSpace:"nowrap"}},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};a.setOptions=function(B){a.defaultOptions=H(!0,a.defaultOptions,B);a.time.update(H(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(H(a.defaultOptions.global,
443a.defaultOptions.time));a.dateFormat=function(B,q,f){return a.time.dateFormat(B,q,f)}})(K);(function(a){var B=a.correctFloat,H=a.defined,E=a.destroyObjectProperties,q=a.isNumber,f=a.merge,l=a.pick,t=a.deg2rad;a.Tick=function(a,l,f,c){this.axis=a;this.pos=l;this.type=f||"";this.isNewLabel=this.isNew=!0;f||c||this.addLabel()};a.Tick.prototype={addLabel:function(){var a=this.axis,v=a.options,u=a.chart,c=a.categories,b=a.names,m=this.pos,d=v.labels,h=a.tickPositions,k=m===h[0],e=m===h[h.length-1],b=c?
444l(c[m],b[m],m):m,c=this.label,h=h.info,p;a.isDatetimeAxis&&h&&(p=v.dateTimeLabelFormats[h.higherRanks[m]||h.unitName]);this.isFirst=k;this.isLast=e;v=a.labelFormatter.call({axis:a,chart:u,isFirst:k,isLast:e,dateTimeLabelFormat:p,value:a.isLog?B(a.lin2log(b)):b,pos:m});if(H(c))c&&c.attr({text:v});else{if(this.label=c=H(v)&&d.enabled?u.renderer.text(v,0,0,d.useHTML).css(f(d.style)).add(a.labelGroup):null)c.textPxLength=c.getBBox().width;this.rotation=0}},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?
445"height":"width"]:0},handleOverflow:function(a){var f=this.axis,n=f.options.labels,c=a.x,b=f.chart.chartWidth,m=f.chart.spacing,d=l(f.labelLeft,Math.min(f.pos,m[3])),m=l(f.labelRight,Math.max(f.isRadial?
4450:f.pos+f.len,b-m[1])),h=this.label,k=this.rotation,e={left:0,center:.5,right:1}[f.labelAlign||h.attr("align")],p=h.getBBox().width,r=f.getSlotWidth(),I=r,z=1,M,D={};if(k||!1===n.overflow)0>k&&c-e*p<d?M=Math.round(c/Math.cos(k*t)-d):0<k&&c+e*p>m&&(M=Math.round((b-c)/Math.cos(k*t)));else if(b=c+(1-
446e)*p,c-e*p<d?I=a.x+I*(1-e)-d:b>m&&(I=m-a.x+I*e,z=-1),I=Math.min(r,I),I<r&&"center"===f.labelAlign&&(a.x+=z*(r-I-e*(r-Math.min(p,I)))),p>I||f.autoRotation&&(h.styles||{}).width)M=I;M&&(D.width=M,(n.style||{}).textOverflow||(D.textOverflow="ellipsis"),h.css(D))},getPosition:function(l,f,u,c){var b=this.axis,m=b.chart,d=c&&m.oldChartHeight||m.chartHeight;return{x:l?a.correctFloat(b.translate(f+u,null,null,c)+b.transB):b.left+b.offset+(b.opposite?(c&&m.oldChartWidth||m.chartWidth)-b.right-b.left:0),y:l?
447d-b.bottom+b.offset-(b.opposite?b.height:0):a.correctFloat(d-b.translate(f+u,null,null,c)-b.transB)}},getLabelPosition:function(a,l,f,c,b,m,d,h){var k=this.axis,e=k.transA,p=k.reversed,r=k.staggerLines,n=k.tickRotCorr||{x:0,y:0},z=b.y,u=c||k.reserveSpaceDefault?0:-k.labelOffset*("center"===k.labelAlign?.5:1);H(z)||(z=0===k.side?f.rotation?-8:-f.getBBox().height:2===k.side?n.y+8:Math.cos(f.rotation*t)*(n.y-f.getBBox(!1,0).height/2));a=a+b.x+u+n.x-(m&&c?m*e*(p?-1:1):0);l=l+z-(m&&!c?m*e*(p?1:-1):0);
448r&&(f=d/(h||1)%r,k.opposite&&(f=r-f-1),l+=k.labelOffset/r*f);return{x:a,y:Math.round(l)}},getMarkPath:function(a,l,f,c,b,m){return m.crispLine(["M",a,l,"L",a+(b?0:-f),l+(b?f:0)],c)},renderGridLine:function(a,l,f){var c=this.axis,b=c.options,m=this.gridLine,d={},h=this.pos,k=this.type,e=c.tickmarkOffset,p=c.chart.renderer,r=k?k+"Grid":"grid",n=b[r+"LineWidth"],z=b[r+"LineColor"],b=b[r+"LineDashStyle"];m||(d.stroke=z,d["stroke-width"]=n,b&&(d.dashstyle=b),k||(d.zIndex=1),a&&(d.opacity=0),this.gridLine=
449m=p.path().attr(d).addClass("highcharts-"+(k?k+"-":"")+"grid-line").add(c.gridGroup));if(!a&&m&&(a=c.getPlotLinePath(h+e,m.strokeWidth()*f,a,!0)))m[this.isNew?"attr":"animate"]({d:a,opacity:l})},renderMark:function(a,f,u){var c=this.axis,b=c.options,m=c.chart.renderer,d=this.type,h=d?d+"Tick":"tick",k=c.tickSize(h),e=this.mark,p=!e,r=a.x;a=a.y;var n=l(b[h+"Width"],!d&&c.isXAxis?1:0),b=b[h+"Color"];k&&(c.opposite&&(k[0]=-k[0]),p&&(this.mark=e=m.path().addClass("highcharts-"+(d?d+"-":"")+"tick").add(c.axisGroup),
450e.attr({stroke:b,"stroke-width":n})),e[p?"attr":"animate"]({d:this.getMarkPath(r,a,k[0],e.strokeWidth()*u,c.horiz,m),opacity:f}))},renderLabel:function(a,f,u,c){var b=this.axis,m=b.horiz,d=b.options,h=this.label,k=d.labels,e=k.step,b=b.tickmarkOffset,p=!0,r=a.x;a=a.y;h&&q(r)&&(h.xy=a=this.getLabelPosition(r,a,h,m,k,b,c,e),this.isFirst&&!this.isLast&&!l(d.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(d.showLastLabel,1)?p=!1:!m||k.step||k.rotation||f||0===u||this.handleOverflow(a),e&&c%e&&(p=!1),
451p&&q(a.y)?(a.opacity=u,h[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(h.attr("y",-9999),this.isNewLabel=!0))},render:function(f,t,u){var c=this.axis,b=c.horiz,m=this.getPosition(b,this.pos,c.tickmarkOffset,t),d=m.x,h=m.y,c=b&&d===c.pos+c.len||!b&&h===c.pos?-1:1;u=l(u,1);this.isActive=!0;this.renderGridLine(t,u,c);this.renderMark(m,u,c);this.renderLabel(m,t,u,f);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){E(this,this.axis)}}})(K);var V=function(a){var B=a.addEvent,
452H=a.animObject,E=a.arrayMax,q=a.arrayMin,f=a.color,l=a.correctFloat,t=a.defaultOptions,n=a.defined,v=a.deg2rad,u=a.destroyObjectProperties,c=a.each,b=a.extend,m=a.fireEvent,d=a.format,h=a.getMagnitude,k=a.grep,e=a.inArray,p=a.isArray,r=a.isNumber,I=a.isString,z=a.merge,M=a.normalizeTickInterval,D=a.objectEach,C=a.pick,x=a.removeEvent,F=a.splat,A=a.syncTimeout,J=a.Tick,G=function(){this.init.apply(this,arguments)};a.extend(G.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",
453second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",
454lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},
455defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var g=c.isX,b=this;b.chart=a;b.horiz=a.inverted&&!b.isZAxis?!g:g;b.isXAxis=g;b.coll=b.coll||(g?"xAxis":"yAxis");b.opposite=c.opposite;b.side=c.side||(b.horiz?b.opposite?0:2:b.opposite?1:3);b.setOptions(c);var w=this.options,d=w.type;b.labelFormatter=w.labels.formatter||
456b.defaultLabelFormatter;b.userOptions=c;b.minPixelPadding=0;b.reversed=w.reversed;b.visible=!1!==w.visible;b.zoomEnabled=!1!==w.zoomEnabled;b.hasNames="category"===d||!0===w.categories;b.categories=w.categories||b.hasNames;b.names||(b.names=[],b.names.keys={});b.plotLinesAndBandsGroups={};b.isLog="logarithmic"===d;b.isDatetimeAxis="datetime"===d;b.positiveValuesOnly=b.isLog&&!b.allowNegativeLog;b.isLinked=n(w.linkedTo);b.ticks={};b.labelEdge=[];b.minorTicks={};b.plotLinesAndBands=[];b.alternateBands=
457{};b.len=0;b.minRange=b.userMinRange=w.minRange||w.maxZoom;b.range=w.range;b.offset=w.offset||0;b.stacks={};b.oldStacks={};b.stacksTouched=0;b.max=null;b.min=null;b.crosshair=C(w.crosshair,F(a.options.tooltip.crosshairs)[g?0:1],!1);c=b.options.events;-1===e(b,a.axes)&&(g?a.axes.splice(a.xAxis.length,0,b):a.axes.push(b),a[b.coll].push(b));b.series=b.series||[];a.inverted&&!b.isZAxis&&g&&void 0===b.reversed&&(b.reversed=!0);D(c,function(a,g){B(b,g,a)});b.lin2log=w.linearToLogConverter||b.lin2log;b.isLog&&
458(b.val2lin=b.log2lin,b.lin2val=b.lin2log)},setOptions:function(a){this.options=z(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],z(t[this.coll],a))},defaultLabelFormatter:function(){var g=this.axis,c=this.value,b=g.chart.time,e=g.categories,h=this.dateTimeLabelFormat,k=t.lang,p=k.numericSymbol
458s,k=k.numericSymbolMagnitude||1E3,x=p&&p.length,r,m=g.options.labels.format,
459g=g.isLog?Math.abs(c):g.tickInterval;if(m)r=d(m,this,b);else if(e)r=c;else if(h)r=b.dateFormat(h,c);else if(x&&1E3<=g)for(;x--&&void 0===r;)b=Math.pow(k,x+1),g>=b&&0===10*c%b&&null!==p[x]&&0!==c&&(r=a.numberFormat(c/b,-1)+p[x]);void 0===r&&(r=1E4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,""));return r},getSeriesExtremes:function(){var a=this,b=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();c(a.series,
460function(g){if(g.visible||!b.options.chart.ignoreHiddenSeries){var c=g.options,w=c.threshold,d;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=w&&(w=null);if(a.isXAxis)c=g.xData,c.length&&(g=q(c),d=E(c),r(g)||g instanceof Date||(c=k(c,r),g=q(c),d=E(c)),c.length&&(a.dataMin=Math.min(C(a.dataMin,c[0],g),g),a.dataMax=Math.max(C(a.dataMax,c[0],d),d)));else if(g.getExtremes(),d=g.dataMax,g=g.dataMin,n(g)&&n(d)&&(a.dataMin=Math.min(C(a.dataMin,g),g),a.dataMax=Math.max(C(a.dataMax,d),d)),n(w)&&(a.threshold=
461w),!c.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})},translate:function(a,c,b,d,e,h){var g=this.linkedParent||this,w=1,k=0,p=d?g.oldTransA:g.transA;d=d?g.oldMin:g.min;var x=g.minPixelPadding;e=(g.isOrdinal||g.isBroken||g.isLog&&e)&&g.lin2val;p||(p=g.transA);b&&(w*=-1,k=g.len);g.reversed&&(w*=-1,k-=w*(g.sector||g.len));c?(a=(a*w+k-x)/p+d,e&&(a=g.lin2val(a))):(e&&(a=g.val2lin(a)),a=r(d)?w*(a-d)*p+k+w*x+(r(h)?p*h:0):void 0);return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,
462null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a-(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,c,b,d,e){var g=this.chart,w=this.left,h=this.top,k,p,x=b&&g.oldChartHeight||g.chartHeight,m=b&&g.oldChartWidth||g.chartWidth,N;k=this.transB;var A=function(a,g,c){if(a<g||a>c)d?a=Math.min(Math.max(g,a),c):N=!0;return a};e=C(e,this.translate(a,null,null,b));e=Math.min(Math.max(-1E5,e),1E5);a=b=Math.round(e+k);k=p=Math.round(x-e-k);r(e)?this.horiz?(k=h,p=x-this.bottom,
463a=b=A(a,w,w+this.width)):(a=w,b=m-this.right,k=p=A(k,h,h+this.height)):(N=!0,d=!1);return N&&!d?null:g.renderer.crispLine(["M",a,k,"L",b,p],c||1)},getLinearTickPositions:function(a,c,b){var g,w=l(Math.floor(c/a)*a);b=l(Math.ceil(b/a)*a);var d=[],e;l(w+a)===w&&(e=20);if(this.single)return[c];for(c=w;c<=b;){d.push(c);c=l(c+a,e);if(c===g)break;g=c}return d},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?C(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},
464getMinorTickPositions:function(){var a=this,b=a.options,d=a.tickPositions,e=a.minorTickInterval,h=[],k=a.pointRangePadding||0,p=a.min-k,k=a.max+k,x=k-p;if(x&&x/e<a.len/3)if(a.isLog)c(this.paddedTicks,function(g,c,b){c&&h.push.apply(h,a.getLogTickPositions(e,b[c-1],b[c],!0))});else if(a.isDatetimeAxis&&"auto"===this.getMinorTickInterval())h=h.concat(a.getTimeTicks(a.normalizeTimeTickInterval(e),p,k,b.startOfWeek));else for(b=p+(d[0]-p)%e;b<=k&&b!==h[0];b+=e)h.push(b);0!==h.length&&a.trimTicks(h);return h},
465adjustForMinRange:function(){var a=this.options,b=this.min,d=this.max,e,h,k,p,x,r,m,A;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(n(a.min)||n(a.max)?this.minRange=null:(c(this.series,function(a){r=a.xData;for(p=m=a.xIncrement?1:r.length-1;0<p;p--)if(x=r[p]-r[p-1],void 0===k||x<k)k=x}),this.minRange=Math.min(5*k,this.dataMax-this.dataMin)));d-b<this.minRange&&(h=this.dataMax-this.dataMin>=this.minRange,A=this.minRange,e=(A-d+b)/2,e=[b-e,C(a.min,b-e)],h&&(e[2]=this.isLog?this.log2lin(this.dataMin):
466this.dataMin),b=E(e),d=[b+A,C(a.max,b+A)],h&&(d[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),d=q(d),d-b<A&&(e[0]=d-A,e[1]=C(a.min,d-A),b=E(e)));this.min=b;this.max=d},getClosest:function(){var a;this.categories?a=1:c(this.series,function(g){var c=g.closestPointRange,b=g.visible||!g.chart.options.chart.ignoreHiddenSeries;!g.noSharedTooltip&&n(c)&&b&&(a=n(a)?Math.min(a,c):c)});return a},nameToX:function(a){var g=p(this.categories),c=g?this.categories:this.names,b=a.options.x,d;a.series.requireSorting=
467!1;n(b)||(b=!1===this.options.uniqueNames?a.series.autoIncrement():g?e(a.name,c):C(c.keys[a.name],-1));-1===b?g||(d=c.length):d=b;void 0!==d&&(this.names[d]=a.name,this.names.keys[a.name]=d);return d},updateNames:function(){var g=this,b=this.names;0<b.length&&(c(a.keys(b.keys),function(a){delete b.keys[a]}),b.length=0,this.minRange=this.userMinRange,c(this.series||[],function(a){a.xIncrement=null;if(!a.points||a.isDirtyData)a.processData(),a.generatePoints();c(a.points,function(c,b){var d;c.options&&
468(d=g.nameToX(c),void 0!==d&&d!==c.x&&(c.x=d,a.xData[b]=d))})}))},setAxisTranslation:function(a){var g=this,b=g.max-g.min,d=g.axisPointRange||0,e,h=0,k=0,p=g.linkedParent,x=!!g.categories,r
468=g.transA,m=g.isXAxis;if(m||x||d)e=g.getClosest(),p?(h=p.minPointOffset,k=p.pointRangePadding):c(g.series,function(a){var c=x?1:m?C(a.options.pointRange,e,0):g.axisPointRange||0;a=a.options.pointPlacement;d=Math.max(d,c);g.single||(h=Math.max(h,I(a)?0:c/2),k=Math.max(k,"on"===a?0:c))}),p=g.ordinalSlope&&e?g.ordinalSlope/
469e:1,g.minPointOffset=h*=p,g.pointRangePadding=k*=p,g.pointRange=Math.min(d,b),m&&(g.closestPointRange=e);a&&(g.oldTransA=r);g.translationSlope=g.transA=r=g.options.staticScale||g.len/(b+k||1);g.transB=g.horiz?g.left:g.bottom;g.minPixelPadding=r*h},minFromRange:function(){return this.max-this.range},setTickInterval:function(g){var b=this,d=b.chart,e=b.options,k=b.isLog,p=b.log2lin,x=b.isDatetimeAxis,A=b.isXAxis,F=b.isLinked,f=e.maxPadding,z=e.minPadding,D=e.tickInterval,J=e.tickPixelInterval,G=b.categories,
470u=b.threshold,t=b.softThreshold,v,q,I,B;x||G||F||this.getTickAmount();I=C(b.userMin,e.min);B=C(b.userMax,e.max);F?(b.linkedParent=d[b.coll][e.linkedTo],d=b.linkedParent.getExtremes(),b.min=C(d.min,d.dataMin),b.max=C(d.max,d.dataMax),e.type!==b.linkedParent.options.type&&a.error(11,1)):(!t&&n(u)&&(b.dataMin>=u?(v=u,z=0):b.dataMax<=u&&(q=u,f=0)),b.min=C(I,v,b.dataMin),b.max=C(B,q,b.dataMax));k&&(b.positiveValuesOnly&&!g&&0>=Math.min(b.min,C(b.dataMin,b.min))&&a.error(10,1),b.min=l(p(b.min),15),b.max=
471l(p(b.max),15));b.range&&n(b.max)&&(b.userMin=b.min=I=Math.max(b.dataMin,b.minFromRange()),b.userMax=B=b.max,b.range=null);m(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(G||b.axisPointRange||b.usePercentage||F)&&n(b.min)&&n(b.max)&&(p=b.max-b.min)&&(!n(I)&&z&&(b.min-=p*z),!n(B)&&f&&(b.max+=p*f));r(e.softMin)&&!r(b.userMin)&&(b.min=Math.min(b.min,e.softMin));r(e.softMax)&&!r(b.userMax)&&(b.max=Math.max(b.max,e.softMax));r(e.floor)&&(b.min=Math.max(b.min,e.floor));r(e.ceiling)&&
472(b.max=Math.min(b.max,e.ceiling));t&&n(b.dataMin)&&(u=u||0,!n(I)&&b.min<u&&b.dataMin>=u?b.min=u:!n(B)&&b.max>u&&b.dataMax<=u&&(b.max=u));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:F&&!D&&J===b.linkedParent.options.tickPixelInterval?D=b.linkedParent.tickInterval:C(D,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,G?1:(b.max-b.min)*J/Math.max(b.len,J));A&&!g&&c(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&
473b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!D&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));g=C(e.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!D&&b.tickInterval<g&&(b.tickInterval=g);x||k||D||(b.tickInterval=M(b.tickInterval,null,h(b.tickInterval),C(e.allowDecimals,!(.5<b.tickInterval&&5>b.tickInterval&&1E3<b.max&&9999>b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());
474this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions;b=this.getMinorTickInterval();var d=a.tickPositioner,e=a.startOnTick,h=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===b&&this.tickInterval?this.tickInterval/5:b;this.single=this.min===this.max&&n(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=b=c&&c.slice();
475!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()],b[0]===b[1]&&(b.length=1)),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.paddedTicks=b.slice(0);
476this.trimTicks(b,e,h);this.isLinked||(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),c||d||this.adjustTickAmount())},trimTicks:function(a,b,c){var g=a[0],d=a[a.length-1],e=this.minPointOffset||0;if(!this.isLinked){if(b&&-Infinity!==g)this.min=g;else for(;this.min-e>a[0];)a.shift();if(c)this.max=d;else for(;this.max+e<a[a.length-1];)a.pop();0===a.length&&n(g)&&!this.options.tickPositions&&a.push((d+g)/2)}},alignToOthers:function(){var a={},b,d=this.options;!1===this.chart.options.chart.alignTicks||
477!1===d.alignTicks||this.isLog||c(this.chart[this.coll],function(g){var c=g.options,c=[g.horiz?c.left:c.top,c.width,c.height,c.pane].join();g.series.length&&(a[c]?b=!0:a[c]=1)});return b},getTickAmount:function(){var a=this.options,b=a.tickAmount,c=a.tickPixelInterval;!n(a.tickInterval)&&this.len<c&&!this.isRadial&&!this.isLog&&a.startOnTick&&a.endOnTick&&(b=2);!b&&this.alignToOthers()&&(b=Math.ceil(this.len/c)+1);4>b&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=
478this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,e=b&&b.length,h=C(this.threshold,this.softThreshold?0:null);
478if(this.hasData()){if(e<c){for(;b.length<c;)b.length%2||this.min===h?b.push(l(b[b.length-1]+a)):b.unshift(l(b[0]-a));this.transA*=(e-1)/(c-1);this.min=b[0];this.max=b[b.length-1]}else e>c&&(this.tickInterval*=2,this.setTickPositions());if(n(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0<a&&a<c-1)&&b.splice(a,1);this.finalTickAmt=void 0}}},setScale:function(){var a,
479b;this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();b=this.len!==this.oldAxisLength;c(this.series,function(b){if(b.isDirtyData||b.isDirty||b.xAxis.isDirty)a=!0});b||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||
480(this.isDirty=b||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks();m(this,"afterSetScale")},setExtremes:function(a,d,e,h,k){var g=this,p=g.chart;e=C(e,!0);c(g.series,function(a){delete a.kdTree});k=b(k,{min:a,max:d});m(g,"setExtremes",k,function(){g.userMin=a;g.userMax=d;g.eventArgs=k;e&&p.redraw(h)})},zoom:function(a,b){var g=this.dataMin,c=this.dataMax,d=this.options,e=Math.min(g,C(d.min,g)),d=Math.max(c,C(d.max,c));if(a!==this.min||b!==this.max)this.allowZoomOutside||
481(n(g)&&(a<e&&(a=e),a>d&&(a=d)),n(c)&&(b<e&&(b=e),b>d&&(b=d))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var b=this.chart,c=this.options,d=c.offsets||[0,0,0,0],e=this.horiz,h=this.width=Math.round(a.relativeLength(C(c.width,b.plotWidth-d[3]+d[1]),b.plotWidth)),k=this.height=Math.round(a.relativeLength(C(c.height,b.plotHeight-d[0]+d[2]),b.plotHeight)),p=this.top=Math.round(a.relativeLength(C(c.top,b.plotTop+d[0]),b.plotHeight,
482b.plotTop)),c=this.left=Math.round(a.relativeLength(C(c.left,b.plotLeft+d[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-k-p;this.right=b.chartWidth-h-c;this.len=Math.max(e?h:k,0);this.pos=e?c:p},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?l(b(this.min)):this.min,max:a?l(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log,g=b?c(this.min):this.min,b=b?c(this.max):
483this.max;null===a?a=g:g>a?a=g:b<a&&(a=b);return this.translate(a,0,1,0,1)},autoLabelAlign:function(a){a=(C(a,0)-90*this.side+720)%360;return 15<a&&165>a?"right":195<a&&345>a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],g=C(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(g&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,g]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,
484this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,d=this.tickInterval,e=d,h=this.len/(((this.categories?1:0)+this.max-this.min)/d),k,p=a.rotation,x=this.labelMetrics(),r,m=Number.MAX_VALUE,A,F=function(a){a/=h||1;a=1<a?Math.ceil(a):1;return a*d};b?(A=!a.staggerLines&&!a.step&&(n(p)?[p]:h<C(a.autoRotationLimit,80)&&a.autoRotation))&&c(A,function(a){var b;if(a===p||a&&-90<=a&&90>=a)r=F(Math.abs(x.h/Math.sin(v*a))),b=r+Math.abs(a/360),b<m&&(m=b,k=a,e=r)}):
485a.step||(e=F(x.h));this.autoRotation=A;this.labelRotation=C(k,p);return e},getSlotWidth:function(){var a=this.chart,b=this.horiz,c=this.options.labels,d=Math.max(this.tickPositions.length-(this.categories?0:1),1),e=a.margin[3];return b&&2>(c.step||0)&&!c.rotation&&(this.staggerLines||1)*this.len/d||!b&&(c.style&&parseInt(c.style.width,10)||e&&e-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,d=this.tickPositions,e=this.ticks,h=this.options.labels,k=this.horiz,
486p=this.getSlotWidth(),x=Math.max(1,Math.round(p-2*(h.padding||5))),r={},m=this.labelMetrics(),A=h.style&&h.style.textOverflow,F,l,f=0,z;I(h.rotation)||(r.rotation=h.rotation||0);c(d,function(a){(a=e[a])&&a.label&&a.label.textPxLength>f&&(f=a.label.textPxLength)});this.maxLabelLength=f;if(this.autoRotation)f>x&&f>m.h?r.rotation=this.labelRotation:this.labelRotation=0;else if(p&&(F=x,!A))for(l="clip",x=d.length;!k&&x--;)if(z=d[x],z=e[z].label)z.styles&&"ellipsis"===z.styles.textOverflow?z.css({textOverflow:"clip"}):
487z.textPxLength>p&&z.css({width:p+"px"}),z.getBBox().height>this.len/d.length-(m.h-m.f)&&(z.specificTextOverflow="ellipsis");r.rotation&&(F=f>
487.5*a.chartHeight?.33*a.chartHeight:a.chartHeight,A||(l="ellipsis"));if(this.labelAlign=h.align||this.autoLabelAlign(this.labelRotation))r.align=this.labelAlign;c(d,function(a){var b=(a=e[a])&&a.label;b&&(b.attr(r),!F||h.style&&h.style.width||!(F<b.textPxLength||"SPAN"===b.element.tagName)||b.css({width:F,textOverflow:b.specificTextOverflow||l}),delete b.specificTextOverflow,
488a.rotation=r.rotation)});this.tickRotCorr=b.rotCorr(m.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||n(this.min)&&n(this.max)&&this.tickPositions&&0<this.tickPositions.length},addTitle:function(a){var b=this.chart.renderer,c=this.horiz,g=this.opposite,d=this.options.title,e;this.axisTitle||((e=d.textAlign)||(e=(c?{low:"left",middle:"center",high:"right"}:{low:g?"right":"left",middle:"center",high:g?"left":"right"})[d.align]),this.axisTitle=b.text(d.text,0,
4890,d.useHTML).attr({zIndex:7,rotation:d.rotation||0,align:e}).addClass("highcharts-axis-title").css(z(d.style)).add(this.axisGroup),this.axisTitle.isNew=!0);d.style.width||this.isRadial||this.axisTitle.css({width:this.len});this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new J(this,a)},getOffset:function(){var a=this,b=a.chart,d=b.renderer,e=a.options,h=a.tickPositions,k=a.ticks,p=a.horiz,x=a.side,r=b.inverted&&!a.isZAxis?[1,0,3,2][x]:x,m,A,
490F=0,l,f=0,z=e.title,J=e.labels,G=0,u=b.axisOffset,b=b.clipOffset,t=[-1,1,1,-1][x],v=e.className,M=a.axisParent,q=this.tickSize("tick");m=a.hasData();a.showAxis=A=m||C(e.showEmpty,!0);a.staggerLines=a.horiz&&J.staggerLines;a.axisGroup||(a.gridGroup=d.g("grid").attr({zIndex:e.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(v||"")).add(M),a.axisGroup=d.g("axis").attr({zIndex:e.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(v||"")).add(M),a.labelGroup=d.g("axis-labels").attr({zIndex:J.zIndex||
4917}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(v||"")).add(M));m||a.isLinked?(c(h,function(b,c){a.generateTick(b,c)}),a.renderUnsquish(),a.reserveSpaceDefault=0===x||2===x||{1:"left",3:"right"}[x]===a.labelAlign,C(J.reserveSpace,"center"===a.labelAlign?!0:null,a.reserveSpaceDefault)&&c(h,function(a){G=Math.max(k[a].getLabelSize(),G)}),a.staggerLines&&(G*=a.staggerLines),a.labelOffset=G*(a.opposite?-1:1)):D(k,function(a,b){a.destroy();delete k[b]});z&&z.text&&!1!==z.enabled&&(a.addTitle(A),
492A&&!1!==z.reserveSpace&&(a.titleOffset=F=a.axisTitle.getBBox()[p?"height":"width"],l=z.offset,f=n(l)?0:C(z.margin,p?5:10)));a.renderLine();a.offset=t*C(e.offset,u[x]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};d=0===x?-a.labelMetrics().h:2===x?a.tickRotCorr.y:0;f=Math.abs(G)+f;G&&(f=f-d+t*(p?C(J.y,a.tickRotCorr.y+8*t):J.x));a.axisTitleMargin=C(l,f);u[x]=Math.max(u[x],a.axisTitleMargin+F+t*a.offset,f,m&&h.length&&q?q[0]+t*a.offset:0);e=e.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[r]=Math.max(b[r],
493e)},getLinePath:function(a){var b=this.chart,c=this.opposite,g=this.offset,d=this.horiz,e=this.left+(c?this.width:0)+g,g=b.chartHeight-this.bottom-(c?this.height:0)+g;c&&(a*=-1);return b.renderer.crispLine(["M",d?this.left:e,d?g:this.top,"L",d?b.chartWidth-this.right:e,d?g:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,
494zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,h=a?b:c,k=this.opposite,p=this.offset,x=e.x||0,r=e.y||0,m=this.axisTitle,A=this.chart.renderer.fontMetrics(e.style&&e.style.fontSize,m),m=Math.max(m.getBBox(null,0).height-A.h-1,0),d={low:h+(a?0:d),middle:h+d/2,high:h+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(k?-1:1)*this.axisTitleMargin+[-m,m,A.f,-m][this.side];return{x:a?d+x:b+(k?this.width:0)+p+x,y:a?b+r-(k?this.height:0)+p:
495d+r}},renderMinorTick:function(a){var b=this.chart.hasRendered&&r(this.oldMin),c=this.minorTicks;c[a]||(c[a]=new J(this,a,"minor"));b&&c[a].isNew&&c[a].render(null,!0);c[a].render(null,!1,1)},renderTick:function(a,b){var c=this.isLinked,g=this.ticks,d=this.chart.hasRendered&&r(this.oldMin);if(!c||a>=this.min&&a<=this.max)g[a]||(g[a]=new J(this,a)),d&&g[a].isNew&&g[a].render(b,!0,.1),g[a].render(b)},render:function(){var b=this,d=b.chart,e=b.options,h=b.isLog,k=b.lin2log,p=b.isLinked,x=b.tickPositions,
496m=b.axisTitle,F=b.ticks,l=b.minorTicks,f=b.alternateBands,z=e.stackLabels,G=e.alternateGridColor,n=b.tickmarkOffset,u=b.axisLine,C=b.showAxis,t=H(d.renderer.globalAnimation),v,M;b.labelEdge.length=0;b.overlap=!1;c([F,l,f],function(a){D(a,function(a){a.isActive=!1})});if(b.hasData()||p)b.minorTickInterval&&!b.categories&&c(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),x.length&&(c(x,function(a,c){b.renderTick(a,c)}),n&&(0===b.min||b.single)&&(F[-1]||(F[-1]=new J(b,-1,null,!0)),F[-1
496].render(-1))),
497G&&c(x,function(c,e){M=void 0!==x[e+1]?x[e+1]+n:b.max-n;0===e%2&&c<b.max&&M<=b.max+(d.polar?-n:n)&&(f[c]||(f[c]=new a.PlotLineOrBand(b)),v=c+n,f[c].options={from:h?k(v):v,to:h?k(M):M,color:G},f[c].render(),f[c].isActive=!0)}),b._addedPlotLB||(c((e.plotLines||[]).concat(e.plotBands||[]),function(a){b.addPlotBandOrLine(a)}),b._addedPlotLB=!0);c([F,l,f],function(a){var b,c=[],e=t.duration;D(a,function(a,b){a.isActive||(a.render(b,!1,0),a.isActive=!1,c.push(b))});A(function(){for(b=c.length;b--;)a[c[b]]&&
498!a[c[b]].isActive&&(a[c[b]].destroy(),delete a[c[b]])},a!==f&&d.hasRendered&&e?e:0)});u&&(u[u.isPlaced?"animate":"attr"]({d:this.getLinePath(u.strokeWidth())}),u.isPlaced=!0,u[C?"show":"hide"](!0));m&&C&&(e=b.getTitlePosition(),r(e.y)?(m[m.isNew?"attr":"animate"](e),m.isNew=!1):(m.attr("y",-9999),m.isNew=!0));z&&z.enabled&&b.renderStackTotals();b.isDirty=!1},redraw:function(){this.visible&&(this.render(),c(this.plotLinesAndBands,function(a){a.render()}));c(this.series,function(a){a.isDirty=!0})},
499keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(a){var b=this,d=b.stacks,g=b.plotLinesAndBands,h;a||x(b);D(d,function(a,b){u(a);d[b]=null});c([b.ticks,b.minorTicks,b.alternateBands],function(a){u(a)});if(g)for(a=g.length;a--;)g[a].destroy();c("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(a){b[a]&&(b[a]=b[a].destroy())});for(h in b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[h]=b.plotLinesAndBandsGroups[h].destroy();
500D(b,function(a,c){-1===e(c,b.keepProps)&&delete b[c]})},drawCrosshair:function(a,b){var c,d=this.crosshair,e=C(d.snap,!0),g,h=this.cross;a||(a=this.cross&&this.cross.e);this.crosshair&&!1!==(n(b)||!e)?(e?n(b)&&(g=this.isXAxis?b.plotX:this.len-b.plotY):g=a&&(this.horiz?a.chartX-this.pos:this.len-a.chartY+this.pos),n(g)&&(c=this.getPlotLinePath(b&&(this.isXAxis?b.x:C(b.stackY,b.y)),null,null,null,g)||null),n(c)?(b=this.categories&&!this.isRadial,h||(this.cross=h=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+
501(b?"category ":"thin ")+d.className).attr({zIndex:C(d.zIndex,2)}).add(),h.attr({stroke:d.color||(b?f("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":C(d.width,1)}).css({"pointer-events":"none"}),d.dashStyle&&h.attr({dashstyle:d.dashStyle})),h.show().attr({d:c}),b&&!d.width&&h.attr({"stroke-width":this.transA}),this.cross.e=a):this.hideCrosshair()):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}});return a.Axis=G}(K);(function(a){var B=a.Axis,H=a.getMagnitude,
502E=a.normalizeTickInterval,q=a.timeUnits;B.prototype.getTimeTicks=function(){return this.chart.time.getTimeTicks.apply(this.chart.time,arguments)};B.prototype.normalizeTimeTickInterval=function(a,l){var f=l||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];l=f[f.length-1];var n=q[l[0]],v=l[1],u;for(u=0;
502u<f.length&&!(l=f[u],n=q[l[0]],v=l[1],f[u+1]&&a<=(n*
503v[v.length-1]+q[f[u+1][0]])/2);u++);n===q.year&&a<5*n&&(v=[1,2,5]);a=E(a/n,v,"year"===l[0]?Math.max(H(a/n),1):1);return{unitRange:n,count:a,unitName:l[0]}}})(K);(function(a){var B=a.Axis,H=a.getMagnitude,E=a.map,q=a.normalizeTickInterval,f=a.pick;B.prototype.getLogTickPositions=function(a,t,n,v){var l=this.options,c=this.len,b=this.lin2log,m=this.log2lin,d=[];v||(this._minorAutoInterval=null);if(.5<=a)a=Math.round(a),d=this.getLinearTickPositions(a,t,n);else if(.08<=a)for(var c=Math.floor(t),h,k,
504e,p,r,l=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];c<n+1&&!r;c++)for(k=l.length,h=0;h<k&&!r;h++)e=m(b(c)*l[h]),e>t&&(!v||p<=n)&&void 0!==p&&d.push(p),p>n&&(r=!0),p=e;else t=b(t),n=b(n),a=v?this.getMinorTickInterval():l.tickInterval,a=f("auto"===a?null:a,this._minorAutoInterval,l.tickPixelInterval/(v?5:1)*(n-t)/((v?c/this.tickPositions.length:c)||1)),a=q(a,null,H(a)),d=E(this.getLinearTickPositions(a,t,n),m),v||(this._minorAutoInterval=a/5);v||(this.tickInterval=a);return d};B.prototype.log2lin=
505function(a){return Math.log(a)/Math.LN10};B.prototype.lin2log=function(a){return Math.pow(10,a)}})(K);(function(a,B){var H=a.arrayMax,E=a.arrayMin,q=a.defined,f=a.destroyObjectProperties,l=a.each,t=a.erase,n=a.merge,v=a.pick;a.PlotLineOrBand=function(a,c){this.axis=a;c&&(this.options=c,this.id=c.id)};a.PlotLineOrBand.prototype={render:function(){var f=this,c=f.axis,b=c.horiz,m=f.options,d=m.label,h=f.label,k=m.to,e=m.from,p=m.value,r=q(e)&&q(k),l=q(p),z=f.svgElem,t=!z,D=[],C=m.color,x=v(m.zIndex,
5060),F=m.events,D={"class":"highcharts-plot-"+(r?"band ":"line ")+(m.className||"")},A={},J=c.chart.renderer,G=r?"bands":"lines",g=c.log2lin;c.isLog&&(e=g(e),k=g(k),p=g(p));l?(D={stroke:C,"stroke-width":m.width},m.dashStyle&&(D.dashstyle=m.dashStyle)):r&&(C&&(D.fill=C),m.borderWidth&&(D.stroke=m.borderColor,D["stroke-width"]=m.borderWidth));A.zIndex=x;G+="-"+x;(C=c.plotLinesAndBandsGroups[G])||(c.plotLinesAndBandsGroups[G]=C=J.g("plot-"+G).attr(A).add());t&&(f.svgElem=z=J.path().attr(D).add(C));if(l)D=
507c.getPlotLinePath(p,z.strokeWidth());else if(r)D=c.getPlotBandPath(e,k,m);else return;t&&D&&D.length?(z.attr({d:D}),F&&a.objectEach(F,function(a,b){z.on(b,function(a){F[b].apply(f,[a])})})):z&&(D?(z.show(),z.animate({d:D})):(z.hide(),h&&(f.label=h=h.destroy())));d&&q(d.text)&&D&&D.length&&0<c.width&&0<c.height&&!D.flat?(d=n({align:b&&r&&"center",x:b?!r&&4:10,verticalAlign:!b&&r&&"middle",y:b?r?16:10:r?6:-4,rotation:b&&!r&&90},d),this.renderLabel(d,D,r,x)):h&&h.hide();return f},renderLabel:function(a,
508c,b,m){var d=this.label,h=this.axis.chart.renderer;d||(d={align:a.textAlign||a.align,rotation:a.rotation,"class":"highcharts-plot-"+(b?"band":"line")+"-label "+(a.className||"")},d.zIndex=m,this.label=d=h.text(a.text,0,0,a.useHTML).attr(d).add(),d.css(a.style));m=c.xBounds||[c[1],c[4],b?c[6]:c[1]];c=c.yBounds||[c[2],c[5],b?c[7]:c[2]];b=E(m);h=E(c);d.align(a,!1,{x:b,y:h,width:H(m)-b,height:H(c)-h});d.show()},destroy:function(){t(this.axis.plotLinesAndBands,this);delete this.axis;f(this)}};a.extend(B.prototype,
509{getPlotBandPath:function(a,c){var b=this.getPlotLinePath(c,null,null,!0),m=this.getPlotLinePath(a,null,null,!0),d=[],h=this.horiz,k=1,e;a=a<this.min&&c<this.min||a>this.max&&c>this.max;if(m&&b)for(a&&(e=m.toString()===b.toString(),k=0),a=0;a<m.length;a+=6)h&&b[a+1]===m[a+1]?(b[a+1]+=k,b[a+4]+=k):h||b[a+2]!==m[a+2]||(b[a+2]+=k,b[a+5]+=k),d.push("M",m[a+1],m[a+2],"L",m[a+4],m[a+5],b[a+4],b[a+5],b[a+1],b[a+2],"z"),d.flat=e;return d},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},
510addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(f,c){var b=(new a.PlotLineOrBand(this,f)).render(),m=this.userOptions;b&&(c&&(m[c]=m[c]||[],m[c].push(f)),this.plotLinesAndBands.push(b));return b},removePlotBandOrLine:function(a){for(var c=this.plotLinesAndBands,b=this.options,m=this.userOptions,d=c.length;d--;)c[d].id===a&&c[d].destroy();l([b.plotLines||[],m.plotLines||[],b.plotBands||[],m.plotBands||[]],function(b){for(d=b.length;d--;)b[d].id===a&&
511t(b,b[d])})}
511,removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})})(K,V);(function(a){var B=a.each,H=a.extend,E=a.format,q=a.isNumber,f=a.map,l=a.merge,t=a.pick,n=a.splat,v=a.syncTimeout,u=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,b){this.chart=a;this.options=b;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=b.split&&!a.inverted;this.shared=b.shared||this.split},
512cleanSplit:function(a){B(this.chart.series,function(b){var c=b&&b.tt;c&&(!c.isActive||a?b.tt=c.destroy():c.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,b=this.options;this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,b.shape||"callout",null,null,b.useHTML,null,"tooltip").attr({padding:b.padding,r:b.borderRadius}),this.label.attr({fill:b.backgroundColor,"stroke-width":b.borderWidth}).css(b.style).shadow(b.shadow)),this.label.attr({zIndex:8}).add());return this.label},
513update:function(a){this.destroy();l(!0,this.chart.options.tooltip.userOptions,a);this.init(this.chart,l(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());
513this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,b,m,d){var c=this,k=c.now,e=!1!==c.options.animation&&!c.isHidden&&(1<Math.abs(a-k.x)||1<Math.abs(b-k.y)),p=c.followPointer||1<c.len;H(k,{x:e?(2*k.x+a)/
5143:a,y:e?(k.y+b)/2:b,anchorX:p?void 0:e?(2*k.anchorX+m)/3:m,anchorY:p?void 0:e?(k.anchorY+d)/2:d});c.getLabel().attr(k);e&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){c&&c.move(a,b,m,d)},32))},hide:function(a){var b=this;clearTimeout(this.hideTimer);a=t(a,this.options.hideDelay,500);this.isHidden||(this.hideTimer=v(function(){b.getLabel()[a?"fadeOut":"hide"]();b.isHidden=!0},a))},getAnchor:function(a,b){var c,d=this.chart,h=d.inverted,k=d.plotTop,e=d.plotLeft,p=0,r=
5150,l,z;a=n(a);c=a[0].tooltipPos;this.followPointer&&b&&(void 0===b.chartX&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY-k]);c||(B(a,function(a){l=a.series.yAxis;z=a.series.xAxis;p+=a.plotX+(!h&&z?z.left-e:0);r+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!h&&l?l.top-k:0)}),p/=a.length,r/=a.length,c=[h?d.plotWidth-r:p,this.shared&&!h&&1<a.length&&b?b.chartY-k:h?d.plotHeight-p:r]);return f(c,Math.round)},getPosition:function(a,b,m){var c=this.chart,h=this.distance,k={},e=c.inverted&&
516m.h||0,p,r=["y",c.chartHeight,b,m.plotY+c.plotTop,c.plotTop,c.plotTop+c.plotHeight],f=["x",c.chartWidth,a,m.plotX+c.plotLeft,c.plotLeft,c.plotLeft+c.plotWidth],l=!this.followPointer&&t(m.ttBelow,!c.inverted===!!m.negative),n=function(a,b,c,d,g,p){var x=c<d-h,r=d+h+c<b,m=d-h-c;d+=h;if(l&&r)k[a]=d;else if(!l&&x)k[a]=m;else if(x)k[a]=Math.min(p-c,0>m-e?m:m-e);else if(r)k[a]=Math.max(g,d+e+c>b?d:d+e);else return!1},D=function(a,b,c,d){var e;d<h||d>b-h?e=!1:k[a]=d<c/2?1:d>b-c/2?b-c-2:d-c/2;return e},C=
517function(a){var b=r;r=f;f=b;p=a},x=function(){!1!==n.apply(0,r)?!1!==D.apply(0,f)||p||(C(!0),x()):p?k.x=k.y=0:(C(!0),x())};(c.inverted||1<this.len)&&C();x();return k},defaultFormatter:function(a){var b=this.points||n(this),c;c=[a.tooltipFooterHeaderFormatter(b[0])];c=c.concat(a.bodyFormatter(b));c.push(a.tooltipFooterHeaderFormatter(b[0],!0));return c},refresh:function(a,b){var c,d=this.options,h,k=a,e,p={},r=[];c=d.formatter||this.defaultFormatter;var p=this.shared,f;d.enabled&&(clearTimeout(this.hideTimer),
518this.followPointer=n(k)[0].series.tooltipOptions.followPointer,e=this.getAnchor(k,b),b=e[0],h=e[1],!p||k.series&&k.series.noSharedTooltip?p=k.getLabelConfig():(B(k,function(a){a.setState("hover");r.push(a.getLabelConfig())}),p={x:k[0].category,y:k[0].y},p.points=r,k=k[0]),this.len=r.length,p=c.call(p,this),f=k.series,this.distance=t(f.tooltipOptions.distance,16),!1===p?this.hide():(c=this.getLabel(),this.isHidden&&c.attr({opacity:1}).show(),this.split?this.renderSplit(p,n(a)):(d.style.width||c.css({width:this.chart.spacingBox.width}),
519c.attr({text:p&&p.join?p.join(""):p}),c.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+t(k.colorIndex,f.colorIndex)),c.attr({stroke:d.borderColor||k.color||f.color||"#666666"}),this.updatePosition({plotX:b,plotY:h,negative:k.negative,ttBelow:k.ttBelow,h:e[2]||0})),this.isHidden=!1))},renderSplit:function(c,b){var m=this,d=[],h=this.chart,k=h.renderer,e=!0,p=this.options,r=0,f=this.getLabel();a.isString(c)&&(c=[!1,c]);B(c.slice(0,b.length+1),function(a,c){if(!1!==a){c=b[c-1]||
520{isHeader:!0,plotX:b[0].plotX};var l=c.series||m,z=l.tt,x=c.series||{},F="highcharts-color-"+t(c.colorIndex,x.colorIndex,"none");z||(l.tt=z=k.label(null,null,null,"callout",null,null,p.useHTML).addClass("highcharts-tooltip-box "+F).attr({padding:p.padding,r:p.borderRadius,fill:p.backgroundColor,stroke:p.borderColor||c.color||x.color||"#333333","stroke-width":p.borderWidth}).add(f));z.isActive=!0;z.attr({text:a});z.css(p.style).shadow(p.shadow);a=z.getBBox();x=a.width+z.strokeWidth();c.isHeader?(r=
521a.height,x=Math.max(0,Math.min(c.plotX+h.plotLeft-x/2,h.chartWidth-x))):x=c.plotX+h.plotLeft-t(p.distance,16)-x;0>x&&(e=!1);a=(c.series&&c.series.yAxis&&c.series.yAxis.pos)+(c.plotY||0);a-=h.plotTop;d.push({target:c.isHeader?h.plotHeight+r:a,rank:c.isHeader?1:0,size:l.tt.getBBox().height+1,point:c,x:x,tt:z})}});this.cleanSplit();a.distribute(d,h.plotHeight+r);B(d,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:e||b.isHeader?a.x:b.plotX+h.plotLeft+t(p.distance,
52216),y:a.pos+h.plotTop,anchorX:b.isHeader?b.plotX+h.plotLeft:b.plotX+c.xAxis.pos,anchorY:b.isHeader?a.pos+h.plotTop-15:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var b=this.chart,c=this.getLabel(),c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);
522this.move(Math.round(c.x),Math.round(c.y||0),a.plotX+b.plotLeft,a.plotY+b.plotTop)},getDateFormat:function(a,b,m,d){var c=this.chart.time,k=c.dateFormat("%m-%d %H:%M:%S.%L",b),e,p,r={millisecond:15,second:12,minute:9,hour:6,
523day:3},f="millisecond";for(p in u){if(a===u.week&&+c.dateFormat("%w",b)===m&&"00:00:00.000"===k.substr(6)){p="week";break}if(u[p]>a){p=f;break}if(r[p]&&k.substr(r[p])!=="01-01 00:00:00.000".substr(r[p]))break;"week"!==p&&(f=p)}p&&(e=d[p]);return e},getXDateFormat:function(a,b,m){b=b.dateTimeLabelFormats;var c=m&&m.closestPointRange;return(c?this.getDateFormat(c,a.x,m.options.startOfWeek,b):b.day)||b.year},tooltipFooterHeaderFormatter:function(a,b){b=b?"footer":"header";var c=a.series,d=c.tooltipOptions,
524h=d.xDateFormat,k=c.xAxis,e=k&&"datetime"===k.options.type&&q(a.key),p=d[b+"Format"];e&&!h&&(h=this.getXDateFormat(a,d,k));e&&h&&B(a.point&&a.point.tooltipDateKeys||["key"],function(a){p=p.replace("{point."+a+"}","{point."+a+":"+h+"}")});return E(p,{point:a,series:c},this.chart.time)},bodyFormatter:function(a){return f(a,function(a){var b=a.series.tooltipOptions;return(b[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,b[(a.point.formatPrefix||"point")+"Format"])})}}})(K);
525(function(a){var B=a.addEvent,H=a.attr,E=a.charts,q=a.color,f=a.css,l=a.defined,t=a.each,n=a.extend,v=a.find,u=a.fireEvent,c=a.isNumber,b=a.isObject,m=a.offset,d=a.pick,h=a.splat,k=a.Tooltip;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};k&&(a.tooltip=new k(a,b.tooltip),this.followTouchMove=d(b.tooltip.followTouchMove,!0));this.setDOMEvents()},
526zoomOption:function(a){var b=this.chart,c=b.options.chart,e=c.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(e=d(c.pinchType,e));this.zoomX=a=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=a&&!b||e&&b;this.zoomVert=e&&!b||a&&b;this.hasZoom=a||e},normalize:function(a,b){var c;c=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));return n(a,{chartX:Math.round(c.pageX-b.left),chartY:Math.round(c.pageY-b.top)})},getCoordinates:function(a){var b=
527{xAxis:[],yAxis:[]};t(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,c,d){var e;t(a,function(a){var h=!(a.noSharedTooltip&&c)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(d,h);if((h=b(a,!0))&&!(h=!b(e,!0)))var h=e.distX-a.distX,k=e.dist-a.dist,p=(a.series.group&&a.series.group.zIndex)-(e.series.group&&e.series.group.zIndex),h=0<(0!==h&&c?h:0!==k?k:0!==p?p:e.series.index>
528a.series.index?-1:1);h&&(e=a)});return e},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var c=a.series,e=c.xAxis,c=c.yAxis,h=d(a.clientX,a.plotX);if(e&&c)return b?{chartX:e.len+e.pos-h,chartY:c.len+c.pos-a.plotY}:{chartX:h+e.pos,chartY:a.plotY+c.pos}},getHoverData:function(c,h,k,f,m,l,n){var e,x=[],p=n&&n.isBoosting;f=!(!f||!c);n=h&&!h.stickyTracking?[h]:a.grep(k,function(a){return a.visible&&!(!m&&a.directTouch)&&
529d(a.options.enableMouseTracking,!0)&&a.stickyTracking});h=(e=f?c:this.findNearestKDPoint(n,m,l))&&e.series;e&&(m&&!h.noSharedTooltip?(n=a.grep(k,function(a){return a.visible&&!(!m&&a.directTouch)&&d(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),t(n,function(a){var c=v(a.points,function(a){return a.x===e.x&&!a.isNull});b(c)&&(p&&(c=a.getPoint(c)),x.push(c))})):x.push(e));return{hoverPoint:e,hoverSeries:h,hoverPoints:x}},runPointActions:function(b,c){var e=this.chart,h=e.tooltip&&e.tooltip.options.enabled?
530e.tooltip:void 0,k=h?h.shared:!1,p=c||e.hoverPoint,f=p&&p.series||e.hoverSeries,f=this.getHoverData(p,f,e.series,!!c||f&&f.directTouch&&this.isDirectTouch,k,b,{isBoosting:e.isBoosting}),m,p=f.hoverPoint;m=f.hoverPoints;c=(f=f.hoverSeries)&&f.tooltipOptions.followPointer;k=k&&f&&!f.noSharedTooltip;if(p&&(p!==e.hoverPoint||h&&h.isHidden)){t(e.hoverPoints||[],function(b){-1===a.inArray(b,m)&&b.setState()});t(m||[],function(a){a.setState("hover")});if(e.hoverSeries!==f)f.onMouseOver();e.hoverPoint&&e.hoverPoint.firePointEvent("mouseOut");
531if(!p.series)return;p.firePointEvent("mouseOver");e.hoverPoints=m;e.hoverPoint=p;h&&h.refresh(k?m:p,b)}else c&&h&&!h.isHidden&&(p=h.getAnchor([{}],b),h.updatePosition({plotX:p[0],plotY:p[1]}));this.unDocMouseMove||(this.unDocMouseMove=B(e.container.ownerDocument,"mousemove",function(b){var c=E[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));t(e.axes,function(c){var e=d(c.crosshair.snap,!0),h=e?a.find(m,function(a){return a.series[c.coll]===c}):void 0;h||!e?c.drawCrosshair(b,h):c.hideCrosshair()})},
532reset:function(a,b){var c=this.chart,d=c.hoverSeries,e=c.hoverPoint,k=c.hoverPoints,p=c.tooltip,f=p&&p.shared?k:e;a&&f&&t(h(f),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)p&&f&&(p.refresh(f),e&&(e.setState(e.state,!0),t(c.axes,function(a){a.crosshair&&a.drawCrosshair(null,e)})));else{if(e)e.onMouseOut();k&&t(k,function(a){a.setState()});if(d)d.onMouseOut();p&&p.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());t(c.axes,function(a){a.hideCrosshair()});this.hoverX=
533c.hoverPoints=c.hoverPoint=null}},scaleGroups:function(a,b){var c=this.chart,d;t(c.series,function(e){d=a||e.getPlotBox();e.xAxis&&e.xAxis.zoomEnabled&&e.group&&(e.group.attr(d),e.markerGroup&&(e.markerGroup.attr(d),e.markerGroup.clip(b?c.clipRect:null)),e.dataLabelsGroup&&e.dataLabelsGroup.attr(d))});c.clipRect.attr(b||c.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=
534this.chart,c=b.options.chart,d=a.chartX,e=a.chartY,h=this.zoomHor,k=this.zoomVert,f=b.plotLeft,x=b.plotTop,m=b.plotWidth,A=b.plotHeight,l,n=this.selectionMarker,g=this.mouseDownX,w=this.mouseDownY,t=c.panKey&&a[c.panKey+"Key"];n&&n.touch||(d<f?d=f:d>f+m&&(d=f+m),e<x?e=x:e>x+A&&(e=x+A),this.hasDragged=Math.sqrt(Math.pow(g-d,2)+Math.pow(w-e,2)),10<this.hasDragged&&(l=b.isInsidePlot(g-f,w-x),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&l&&!t&&!n&&(this.selectionMarker=n=b.renderer.rect(f,x,h?1:m,
535k?1:A,0).attr({fill:c.selectionMarkerFill||q("#335cad").setOpacity(.25).get(),"class":"highcharts-selection-marker",zIndex:7}).add()),n&&h&&(d-=g,n.attr({width:Math.abs(d),x:(0<d?0:d)+g})),n&&k&&(d=e-w,n.attr({height:Math.abs(d),y:(0<d?0:d)+w})),l&&!n&&c.panning&&b.pan(a,c.panning)))},drop:function(a){var b=this,d=this.chart,e=this.hasPinched;if(this.selectionMarker){var h={originalEvent:a,xAxis:[],yAxis:[]},k=this.selectionMarker,m=k.attr?k.attr("x"):k.x,C=k.attr?k.attr("y"):k.y,x=k.attr?k.attr("width"):
536k.width,F=k.attr?k.attr("height"):k.height,A;if(this.hasDragged||e)t(d.axes,function(c){if(c.zoomEnabled&&l(c.min)&&(e||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var d=c.horiz,g="touchend"===a.type?c.minPixelPadding:0,k=c.toValue((d?m:C)+g),d=c.toValue((d?m+x:C+F)-g);h[c.coll].push({axis:c,min:Math.min(k,d),max:Math.max(k,d)});A=!0}}),A&&u(d,"selection",h,function(a){d.zoom(n(a,e?{animation:!1}:null))});c(d.index)&&(this.selectionMarker=this.selectionMarker.destroy());e&&this.scaleGroups()}d&&c(d.index)&&
537(f(d.container,{cursor:d._cursor}),d.cancelClick=10<this.hasDragged,d.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(a){a=this.normalize(a);2!==a.button&&(this.zoomOption(a),a.preventDefault&&a.preventDefault(),this.dragStart(a))},onDocumentMouseUp:function(b){E[a.hoverChartIndex]&&E[a.hoverChartIndex].pointer.drop(b)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition;a=this.normalize(a,c);!c||this.inClass(a.target,"highcharts-tracker")||
538b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)||this.reset()},onContainerMouseLeave:function(b){var c=E[a.hoverChartIndex];c&&(b.relatedTarget||b.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=null)},onContainerMouseMove:function(b){var c=this.chart;l(a.hoverChartIndex)&&E[a.hoverChartIndex]&&E[a.hoverChartIndex].mouseIsDown||(a.hoverChartIndex=c.index);b=this.normalize(b);b.returnValue=!1;"mousedown"===c.mouseIsDown&&this.drag(b);!this.inClass(b.target,"highcharts-tracker")&&!c.isInsidePlot(b.chartX-
539c.plotLeft,b.chartY-c.plotTop)||c.openMenu||this.runPointActions(b)},inClass:function(a,b){for(var c;a;){if(c=H(a,"class")){if(-1!==c.indexOf(b))return!0;
539if(-1!==c.indexOf("highcharts-container"))return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;a=a.relatedTarget||a.toElement;this.isDirectTouch=!1;if(!(!b||!a||b.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+b.index)&&this.inClass(a,"highcharts-tracker")))b.onMouseOut()},
540onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop;a=this.normalize(a);b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(u(c.series,"click",n(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(n(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&u(b,"click",a)))},setDOMEvents:function(){var b=this,c=b.chart.container,d=c.ownerDocument;c.onmousedown=function(a){b.onContainerMouseDown(a)};c.onmousemove=function(a){b.onContainerMouseMove(a)};
541c.onclick=function(a){b.onContainerClick(a)};this.unbindContainerMouseLeave=B(c,"mouseleave",b.onContainerMouseLeave);a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=B(d,"mouseup",b.onDocumentMouseUp));a.hasTouch&&(c.ontouchstart=function(a){b.onContainerTouchStart(a)},c.ontouchmove=function(a){b.onContainerTouchMove(a)},a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=B(d,"touchend",b.onDocumentTouchEnd)))},destroy:function(){var b=this;b.unDocMouseMove&&b.unDocMouseMove();this.unbindContainerMouseLeave();
542a.chartCount||(a.unbindDocumentMouseUp&&(a.unbindDocumentMouseUp=a.unbindDocumentMouseUp()),a.unbindDocumentTouchEnd&&(a.unbindDocumentTouchEnd=a.unbindDocumentTouchEnd()));clearInterval(b.tooltipTimeout);a.objectEach(b,function(a,c){b[c]=null})}}})(K);(function(a){var B=a.charts,H=a.each,E=a.extend,q=a.map,f=a.noop,l=a.pick;E(a.Pointer.prototype,{pinchTranslate:function(a,f,l,q,c,b){this.zoomHor&&this.pinchTranslateDirection(!0,a,f,l,q,c,b);this.zoomVert&&this.pinchTranslateDirection(!1,a,f,l,q,
543c,b)},pinchTranslateDirection:function(a,f,l,q,c,b,m,d){var h=this.chart,k=a?"x":"y",e=a?"X":"Y",p="chart"+e,r=a?"width":"height",n=h["plot"+(a?"Left":"Top")],z,t,D=d||1,C=h.inverted,x=h.bounds[a?"h":"v"],F=1===f.length,A=f[0][p],J=l[0][p],G=!F&&f[1][p],g=!F&&l[1][p],w;l=function(){!F&&20<Math.abs(A-G)&&(D=d||Math.abs(J-g)/Math.abs(A-G));t=(n-J)/D+A;z=h["plot"+(a?"Width":"Height")]/D};l();f=t;f<x.min?(f=x.min,w=!0):f+z>x.max&&(f=x.max-z,w=!0);w?(J-=.8*(J-m[k][0]),F||(g-=.8*(g-m[k][1])),l()):m[k]=
544[J,g];C||(b[k]=t-n,b[r]=z);b=C?1/D:D;c[r]=z;c[k]=f;q[C?a?"scaleY":"scaleX":"scale"+e]=D;q["translate"+e]=b*n+(J-b*A)},pinch:function(a){var n=this,t=n.chart,u=n.pinchDown,c=a.touches,b=c.length,m=n.lastValidTouch,d=n.hasZoom,h=n.selectionMarker,k={},e=1===b&&(n.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||n.runChartClick),p={};1<b&&(n.initiated=!0);d&&n.initiated&&!e&&a.preventDefault();q(c,function(a){return n.normalize(a)});"touchstart"===a.type?(H(c,function(a,b){u[b]={chartX:a.chartX,
545chartY:a.chartY}}),m.x=[u[0].chartX,u[1]&&u[1].chartX],m.y=[u[0].chartY,u[1]&&u[1].chartY],H(t.axes,function(a){if(a.zoomEnabled){var b=t.bounds[a.horiz?"h":"v"],c=a.minPixelPadding,d=a.toPixels(l(a.options.min,a.dataMin)),e=a.toPixels(l(a.options.max,a.dataMax)),h=Math.max(d,e);b.min=Math.min(a.pos,Math.min(d,e)-c);b.max=Math.max(a.pos+a.len,h+c)}}),n.res=!0):n.followTouchMove&&1===b?this.runPointActions(n.normalize(a)):u.length&&(h||(n.selectionMarker=h=E({destroy:f,touch:!0},t.plotBox)),n.pinchTranslate(u,
546c,k,h,p,m),n.hasPinched=d,n.scaleGroups(k,p),n.res&&(n.res=!1,this.reset(!1,0)))},touch:function(f,n){var t=this.chart,q,c;if(t.index!==a.hoverChartIndex)this.onContainerMouseLeave({relatedTarget:!0});a.hoverChartIndex=t.index;1===f.touches.length?(f=this.normalize(f),(c=t.isInsidePlot(f.chartX-t.plotLeft,f.chartY-t.plotTop))&&!t.openMenu?(n&&this.runPointActions(f),"touchmove"===f.type&&(n=this.pinchDown,q=n[0]?4<=Math.sqrt(Math.pow(n[0].chartX-f.chartX,2)+Math.pow(n[0].chartY-f.chartY,2)):!1),l(q,
547!0)&&this.pinch(f)):n&&this.reset()):2===f.touches.length&&this.pinch(f)},onContainerTouchStart:function(a){this.zoomOption(a);this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(f){B[a.hoverChartIndex]&&B[a.hoverChartIndex].pointer.drop(f)}})})(K);(function(a){var B=a.addEvent,H=a.charts,E=a.css,q=a.doc,f=a.extend,l=a.noop,t=a.Pointer,n=a.removeEvent,v=a.win,u=a.wrap;if(!a.hasTouch&&(v.PointerEvent||v.MSPointerEvent)){var c={},b=!!v.PointerEvent,m=function(){var b=
548[];b.item=function(a){return this[a]};a.objectEach(c,function(a){b.push({pageX:a.pageX,pageY:a.pageY,target:a.target})});return b},d=function(b,c,d,f){"touch"!==b.pointerType&&b.pointerType!==b.MSPOINTER_TYPE_TOUCH||!H[a.hoverChartIndex]||(f(b),f=H[a.hoverChartIndex].pointer,f[c]({type:d,target:b.currentTarget,preventDefault:l,touches:m()}))};f(t.prototype,{onContainerPointerDown:function(a){d(a,"onContainerTouchStart","touchstart",function(a){c[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},
549onContainerPointerMove:function(a){d(a,"onContainerTouchMove","touchmove",function(a){c[a.pointerId]={pageX:a.pageX,pageY:a.pageY};c[a.pointerId].target||(c[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){d(a,"onDocumentTouchEnd","touchend",function(a){delete c[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,b?"pointerdown":"MSPointerDown",this.onContainerPointerDown);a(this.chart.container,b?"pointermove":"MSPointerMove",this.onContainerPointerMove);a(q,b?
550"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});u(t.prototype,"init",function(a,b,c){a.call(this,b,c);this.hasZoom&&E(b.container,{"-ms-touch-action":"none","touch-action":"none"})});u(t.prototype,"setDOMEvents",function(a){a.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(B)});u(t.prototype,"destroy",function(a){this.batchMSEvents(n);a.call(this)})}})(K);(function(a){var B=a.addEvent,H=a.css,E=a.discardElement,q=a.defined,f=a.each,l=a.isFirefox,t=a.marginNames,n=a.merge,
551v=a.pick,u=a.setAnimation,c=a.stableSort,b=a.win,m=a.wrap;
551a.Legend=function(a,b){this.init(a,b)};a.Legend.prototype={init:function(a,b){this.chart=a;this.setOptions(b);b.enabled&&(this.render(),B(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(a){var b=v(a.padding,8);this.options=a;this.itemStyle=a.itemStyle;this.itemHiddenStyle=n(this.itemStyle,a.itemHiddenStyle);this.itemMarginTop=a.itemMarginTop||0;this.padding=b;this.initialItemY=b-5;this.itemHeight=
552this.maxItemWidth=0;this.symbolWidth=v(a.symbolWidth,16);this.pages=[]},update:function(a,b){var c=this.chart;this.setOptions(n(!0,this.options,a));this.destroy();c.isDirtyLegend=c.isDirtyBox=!0;v(b,!0)&&c.redraw()},colorizeItem:function(a,b){a.legendGroup[b?"removeClass":"addClass"]("highcharts-legend-item-hidden");var c=this.options,d=a.legendItem,h=a.legendLine,f=a.legendSymbol,m=this.itemHiddenStyle.color,c=b?c.itemStyle.color:m,l=b?a.color||m:m,n=a.options&&a.options.marker,D={fill:l};d&&d.css({fill:c,
553color:c});h&&h.attr({stroke:l});f&&(n&&f.isMarker&&(D=a.pointAttribs(),b||(D.stroke=D.fill=m)),f.attr(D))},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,f=d[0],d=d[1],m=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?f:this.legendWidth-f-2*c-4,d);m&&(m.x=f,m.y=d)},destroyItem:function(a){var b=a.checkbox;f(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&E(a.checkbox)},destroy:function(){function a(a){this[a]&&
554(this[a]=this[a].destroy())}f(this.getAllItems(),function(b){f(["legendItem","legendGroup"],a,b)});f("clipRect up down pager nav box title group".split(" "),a,this);this.display=null},positionCheckboxes:function(){var a=this.group&&this.group.alignAttr,b,c=this.clipHeight||this.legendHeight,e=this.titleHeight;a&&(b=a.translateY,f(this.allItems,function(d){var h=d.checkbox,k;h&&(k=b+e+h.y+(this.scrollOffset||0)+3,H(h,{left:a.translateX+d.checkboxOffset+h.x-20+"px",top:k+"px",display:k>b-6&&k<b+c-6?
555"":"none"}))},this))},renderTitle:function(){var a=this.options,b=this.padding,c=a.title,e=0;c.text&&(this.title||(this.title=this.chart.renderer.label(c.text,b-3,b-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}).css(c.style).add(this.group)),a=this.title.getBBox(),e=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:e}));this.titleHeight=e},setText:function(b){var c=this.options;b.legendItem.attr({text:c.labelFormat?a.format(c.labelFormat,b,this.chart.time):c.labelFormatter.call(b)})},
556renderItem:function(a){var b=this.chart,c=b.renderer,d=this.options,f="horizontal"===d.layout,m=this.symbolWidth,l=d.symbolPadding,z=this.itemStyle,q=this.itemHiddenStyle,D=this.padding,C=f?v(d.itemDistance,20):0,x=!d.rtl,F=d.width,A=d.itemMarginBottom||0,J=this.itemMarginTop,G=a.legendItem,g=!a.series,w=!g&&a.series.drawLegendSymbol?a.series:a,t=w.options,u=this.createCheckboxForItem&&t&&t.showCheckbox,t=m+l+C+(u?20:0),N=d.useHTML,O=a.options.className;G||(a.legendGroup=c.g("legend-item").addClass("highcharts-"+
557w.type+"-series highcharts-color-"+a.colorIndex+(O?" "+O:"")+(g?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=G=c.text("",x?m+l:-l,this.baseline||0,N).css(n(a.visible?z:q)).attr({align:x?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(m=z.fontSize,this.fontMetrics=c.fontMetrics(m,G),this.baseline=this.fontMetrics.f+3+J,G.attr("y",this.baseline)),this.symbolHeight=d.symbolHeight||this.fontMetrics.f,w.drawLegendSymbol(this,a),this.setItemEvents&&
558this.setItemEvents(a,G,N),u&&this.createCheckboxForItem(a));this.colorizeItem(a,a.visible);z.width||G.css({width:(d.itemWidth||d.width||b.spacingBox.width)-t});this.setText(a);c=G.getBBox();z=a.checkboxOffset=d.itemWidth||a.legendItemWidth||c.width+t;this.itemHeight=c=Math.round(a.legendItemHeight||c.height||this.symbolHeight);f&&this.itemX-D+z>(F||b.spacingBox.width-2*D-d.x)&&(this.itemX=D,this.itemY+=J+this.lastLineHeight+A,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,z);
559this.lastItemY=J+this.itemY+A;this.lastLineHeight=Math.max(c,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=z:(this.itemY+=J+c+A,this.lastLineHeight=c);this.offsetWidth=F||Math.max((f?this.itemX-D-(a.checkbox?0:C):z)+D,this.offsetWidth)},getAllItems:function(){var a=[];f(this.chart.series,function(b){var c=b&&b.options;b&&v(c.showInLegend,q(c.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendT
559ype?b.data:b)))});return a},getAlignment:function(){var a=
560this.options;return a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,b){var c=this.chart,d=this.options,h=this.getAlignment();h&&f([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(e,k){e.test(h)&&!q(a[k])&&(c[t[k]]=Math.max(c[t[k]],c.legend[(k+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][k]*d[k%2?"x":"y"]+v(d.margin,12)+b[k]+(0===k?c.titleOffset+c.options.title.margin:0)))})},render:function(){var a=this,b=a.chart,k=b.renderer,
561e=a.group,m,l,t,z,q=a.box,D=a.options,C=a.padding;a.itemX=C;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=k.g("legend").attr({zIndex:7}).add(),a.contentGroup=k.g().attr({zIndex:1}).add(e),a.scrollGroup=k.g().add(a.contentGroup));a.renderTitle();m=a.getAllItems();c(m,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});D.reversed&&m.reverse();a.allItems=m;a.display=l=!!m.length;a.lastLineHeight=0;f(m,function(b){a.renderItem(b)});t=
562(D.width||a.offsetWidth)+C;z=a.lastItemY+a.lastLineHeight+a.titleHeight;z=a.handleOverflow(z);z+=C;q||(a.box=q=k.rect().addClass("highcharts-legend-box").attr({r:D.borderRadius}).add(e),q.isNew=!0);q.attr({stroke:D.borderColor,"stroke-width":D.borderWidth||0,fill:D.backgroundColor||"none"}).shadow(D.shadow);0<t&&0<z&&(q[q.isNew?"attr":"animate"](q.crisp.call({},{x:0,y:0,width:t,height:z},q.strokeWidth())),q.isNew=!1);q[l?"show":"hide"]();a.legendWidth=t;a.legendHeight=z;f(m,function(b){a.positionItem(b)});
563l&&(k=b.spacingBox,/(lth|ct|rth)/.test(a.getAlignment())&&(k=n(k,{y:k.y+b.titleOffset+b.options.title.margin})),e.align(n(D,{width:t,height:z}),!0,k));b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,m=this.options,l=m.y,n=this.padding,c=c.spacingBox.height+("top"===m.verticalAlign?-l:l)-n,l=m.maxHeight,z,q=this.clipRect,D=m.navigation,t=v(D.animation,!0),x=D.arrowSize||12,F=this.nav,A=this.pages,J,G=this.allItems,g=function(a){"number"===typeof a?
564q.attr({height:a}):q&&(b.clipRect=q.destroy(),b.contentGroup.clip());b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+n+"px,9999px,"+(n+a)+"px,0)":"auto")};"horizontal"!==m.layout||"middle"===m.verticalAlign||m.floating||(c/=2);l&&(c=Math.min(c,l));A.length=0;a>c&&!1!==D.enabled?(this.clipHeight=z=Math.max(c-20-this.titleHeight-n,0),this.currentPage=v(this.currentPage,1),this.fullHeight=a,f(G,function(a,b){var c=a._legendItemPos[1],d=Math.round(a.legendItem.getBBox().height),g=A.length;
565if(!g||c-A[g-1]>z&&(J||c)!==A[g-1])A.push(J||c),g++;a.pageIx=g-1;J&&(G[b-1].pageIx=g-1);b===G.length-1&&c+d-A[g-1]>z&&(A.push(c),a.pageIx=g);c!==J&&(J=c)}),q||(q=b.clipRect=d.clipRect(0,n,9999,0),b.contentGroup.clip(q)),g(z),F||(this.nav=F=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,x,x).on("click",function(){b.scroll(-1,t)}).add(F),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation").css(D.style).add(F),this.down=d.symbol("triangle-down",0,0,x,x).on("click",
566function(){b.scroll(1,t)}).add(F)),b.scroll(0),a=c):F&&(g(),this.nav=F.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,b){var c=this.pages,d=c.length;a=this.currentPage+a;var h=this.clipHeight,f=this.options.navigation,m=this.pager,l=this.padding;a>d&&(a=d);0<a&&(void 0!==b&&u(b,this.chart),this.nav.attr({translateX:l,translateY:h+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({"class":1===a?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),
567m.attr({text:a+"/"+d}),this.down.attr({x:18+this.pager.getBBox().width,"class":a===d?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.up.attr({fill:1===a?f.inactiveColor:f.activeColor}).css({cursor:1===a?"default":"pointer"}),this.down.attr({fill:a===d?f.inactiveColor:f.activeColor}).css({cursor:a===d?"default":"pointer"}),this.scrollOffset=-c[a-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=a,this.positionCheckboxes())}};a.LegendSymbolMixin=
568{drawRectangle:function(a,b){var c=a.symbolHeight,d=a.options.squareSymbol;
568b.legendSymbol=this.chart.renderer.rect(d?(a.symbolWidth-c)/2:0,a.baseline-c+1,d?c:a.symbolWidth,c,v(a.options.symbolRadius,c/2)).addClass("highcharts-point").attr({zIndex:3}).add(b.legendGroup)},drawLineMarker:function(a){var b=this.options,c=b.marker,d=a.symbolWidth,f=a.symbolHeight,m=f/2,l=this.chart.renderer,z=this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b);var q;q={"stroke-width":b.lineWidth||0};b.dashStyle&&
569(q.dashstyle=b.dashStyle);this.legendLine=l.path(["M",0,a,"L",d,a]).addClass("highcharts-graph").attr(q).add(z);c&&!1!==c.enabled&&(b=Math.min(v(c.radius,m),m),0===this.symbol.indexOf("url")&&(c=n(c,{width:f,height:f}),b=0),this.legendSymbol=c=l.symbol(this.symbol,d/2-b,a-b,2*b,2*b,c).addClass("highcharts-point").add(z),c.isMarker=!0)}};(/Trident\/7\.0/.test(b.navigator.userAgent)||l)&&m(a.Legend.prototype,"positionItem",function(a,b){var c=this,d=function(){b._legendItemPos&&a.call(c,b)};d();setTimeout(d)})})(K);
570(function(a){var B=a.addEvent,H=a.animate,E=a.animObject,q=a.attr,f=a.doc,l=a.Axis,t=a.createElement,n=a.defaultOptions,v=a.discardElement,u=a.charts,c=a.css,b=a.defined,m=a.each,d=a.extend,h=a.find,k=a.fireEvent,e=a.grep,p=a.isNumber,r=a.isObject,I=a.isString,z=a.Legend,M=a.marginNames,D=a.merge,C=a.objectEach,x=a.Pointer,F=a.pick,A=a.pInt,J=a.removeEvent,G=a.seriesTypes,g=a.splat,w=a.syncTimeout,L=a.win,P=a.Chart=function(){this.getArgs.apply(this,arguments)};a.chart=function(a,b,c){return new P(a,
571b,c)};d(P.prototype,{callbacks:[],getArgs:function(){var a=[].slice.call(arguments);if(I(a[0])||a[0].nodeName)this.renderTo=a.shift();this.init(a[0],a[1])},init:function(b,c){var g,d,e=b.series,h=b.plotOptions||{};b.series=null;g=D(n,b);for(d in g.plotOptions)g.plotOptions[d].tooltip=h[d]&&D(h[d].tooltip)||void 0;g.tooltip.userOptions=b.chart&&b.chart.forExport&&b.tooltip.userOptions||b.tooltip;g.series=b.series=e;this.userOptions=b;d=g.chart;e=d.events;this.margin=[];this.spacing=[];this.bounds=
572{h:{},v:{}};this.labelCollectors=[];this.callback=c;this.isResizing=0;this.options=g;this.axes=[];this.series=[];this.time=b.time&&a.keys(b.time).length?new a.Time(b.time):a.time;this.hasCartesianSeries=d.showAxes;var k=this;k.index=u.length;u.push(k);a.chartCount++;e&&C(e,function(a,b){B(k,b,a)});k.xAxis=[];k.yAxis=[];k.pointCount=k.colorCounter=k.symbolCounter=0;k.firstRender()},initSeries:function(b){var c=this.options.chart;(c=G[b.type||c.type||c.defaultSeriesType])||a.error(17,!0);c=new c;c.init(this,
573b);return c},orderSeries:function(a){var b=this.series;for(a=a||0;a<b.length;a++)b[a]&&(b[a].index=a,b[a].name=b[a].getName())},isInsidePlot:function(a,b,c){var g=c?b:a;a=c?a:b;return 0<=g&&g<=this.plotWidth&&0<=a&&a<=this.plotHeight},redraw:function(b){var c=this.axes,g=this.series,e=this.pointer,h=this.legend,f=this.isDirtyLegend,x,l,p=this.hasCartesianSeries,A=this.isDirtyBox,F,n=this.renderer,w=n.isHidden(),r=[];this.setResponsive&&this.setResponsive(!1);a.setAnimation(b,this);w&&this.temporaryDisplay();
574this.layOutTitles();for(b=g.length;b--;)if(F=g[b],F.options.stacking&&(x=!0,F.isDirty)){l=!0;break}if(l)for(b=g.length;b--;)F=g[b],F.options.stacking&&(F.isDirty=!0);m(g,function(a){a.isDirty&&"point"===a.options.legendType&&(a.updateTotals&&a.updateTotals(),f=!0);a.isDirtyData&&k(a,"updatedData")});f&&h.options.enabled&&(h.render(),this.isDirtyLegend=!1);x&&this.getStacks();p&&m(c,function(a){a.updateNames();a.setScale()});this.getMargins();p&&(m(c,function(a){a.isDirty&&(A=!0)}),m(c,function(a){var b=
575a.min+","+a.max;a.extKey!==b&&(a.extKey=b,r.push(function(){k(a,"afterSetExtremes",d(a.eventArgs,a.getExtremes()));delete a.eventArgs}));(A||x)&&a.redraw()}));A&&this.drawChartBox();k(this,"predraw");m(g,function(a){(A||a.isDirty)&&a.visible&&a.redraw();a.isDirtyData=!1});e&&e.reset(!0);n.draw();k(this,"redraw");k(this,"render");w&&this.temporaryDisplay(!0);m(r,function(a){a.call()})},get:function(a){function b(b){return b.id===a||b.options&&b.options.id===a}var c,g=this.series,d;c=h(this.axes,b)||
576h(this.series,b);for(d=0;!c&&d<g.length;d++)c=h(g[d].points||[],b);return c},getAxes:function(){var a=this,b=this.options,c=b.xAxis=g(b.xAxis||{}),b=b.yAxis=g(b.yAxis||{});k(this,"beforeGetAxes");m(c,function(a,b){a.index=b;a.isX=!0});m(b,function(a,b){a.index=b});c=c.concat(b);m(c,function(b){new l(a,b)})},getSelectedPoints:function(){var a=[];m(this.series,function(b){a=a.concat(e(b.data||[],function(a){return a.selected}))});return a},getSelectedSeries:function(){return e(this.series,function(a){return a.selected})},
577setTitle:function(a,b,c){var g=this,d=g.options,e;e=d.title=D({style:{color:"#333333",fontSize:d.isStock?"16px":"18px"}},d.title,a);d=d.subtitle=D({style:{color:"#666666"}},d.subtitle,b);
577m([["title",a,e],["subtitle",b,d]],function(a,b){var c=a[0],d=g[c],e=a[1];a=a[2];d&&e&&(g[c]=d=d.destroy());a&&!d&&(g[c]=g.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,"class":"highcharts-"+c,zIndex:a.zIndex||4}).add(),g[c].update=function(a){g.setTitle(!b&&a,b&&a)},g[c].css(a.style))});g.layOutTitles(c)},
578layOutTitles:function(a){var b=0,c,g=this.renderer,e=this.spacingBox;m(["title","subtitle"],function(a){var c=this[a],h=this.options[a];a="title"===a?-3:h.verticalAlign?0:b+2;var k;c&&(k=h.style.fontSize,k=g.fontMetrics(k,c).b,c.css({width:(h.width||e.width+h.widthAdjust)+"px"}).align(d({y:a+k},h),!1,"spacingBox"),h.floating||h.verticalAlign||(b=Math.ceil(b+c.getBBox(h.useHTML).height)))},this);c=this.titleOffset!==b;this.titleOffset=b;!this.isDirtyBox&&c&&(this.isDirtyBox=c,this.hasRendered&&F(a,
579!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var c=this.options.chart,g=c.width,c=c.height,d=this.renderTo;b(g)||(this.containerWidth=a.getStyle(d,"width"));b(c)||(this.containerHeight=a.getStyle(d,"height"));this.chartWidth=Math.max(0,g||this.containerWidth||600);this.chartHeight=Math.max(0,a.relativeLength(c,this.chartWidth)||(1<this.containerHeight?this.containerHeight:400))},temporaryDisplay:function(b){var c=this.renderTo;if(b)for(;c&&c.style;)c.hcOrigStyle&&(a.css(c,c.hcOrigStyle),
580delete c.hcOrigStyle),c.hcOrigDetached&&(f.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style;){f.body.contains(c)||c.parentNode||(c.hcOrigDetached=!0,f.body.appendChild(c));if("none"===a.getStyle(c,"display",!1)||c.hcOricDetached)c.hcOrigStyle={display:c.style.display,height:c.style.height,overflow:c.style.overflow},b={display:"block",overflow:"hidden"},c!==this.renderTo&&(b.height=0),a.css(c,b),c.offsetWidth||c.style.setProperty("display","block","important");c=c.parentNode;
581if(c===f.body)break}},setClassName:function(a){this.container.className="highcharts-container "+(a||"")},getContainer:function(){var b,c=this.options,g=c.chart,e,h;b=this.renderTo;var k=a.uniqueKey(),x;b||(this.renderTo=b=g.renderTo);I(b)&&(this.renderTo=b=f.getElementById(b));b||a.error(13,!0);e=A(q(b,"data-highcharts-chart"));p(e)&&u[e]&&u[e].hasRendered&&u[e].destroy();q(b,"data-highcharts-chart",this.index);b.innerHTML="";g.skipClone||b.offsetWidth||this.temporaryDisplay();this.getChartSize();
582e=this.chartWidth;h=this.chartHeight;x=d({position:"relative",overflow:"hidden",width:e+"px",height:h+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},g.style);this.container=b=t("div",{id:k},x,b);this._cursor=b.style.cursor;this.renderer=new (a[g.renderer]||a.Renderer)(b,e,h,null,g.forExport,c.exporting&&c.exporting.allowHTML);this.setClassName(g.className);this.renderer.setStyle(g.style);this.renderer.chartIndex=this.index},getMargins:function(a){var c=
583this.spacing,g=this.margin,d=this.titleOffset;this.resetMargins();d&&!b(g[0])&&(this.plotTop=Math.max(this.plotTop,d+this.options.title.margin+c[0]));this.legend&&this.legend.display&&this.legend.adjustMargins(g,c);this.extraMargin&&(this[this.extraMargin.type]=(this[this.extraMargin.type]||0)+this.extraMargin.value);this.adjustPlotArea&&this.adjustPlotArea();a||this.getAxisMargins()},getAxisMargins:function(){var a=this,c=a.axisOffset=[0,0,0,0],g=a.margin;a.hasCartesianSeries&&m(a.axes,function(a){a.visible&&
584a.getOffset()});m(M,function(d,e){b(g[e])||(a[d]+=c[e])});a.setChartSize()},reflow:function(c){var g=this,d=g.options.chart,e=g.renderTo,h=b(d.width)&&b(d.height),k=d.width||a.getStyle(e,"width"),d=d.height||a.getStyle(e,"height"),e=c?c.target:L;if(!h&&!g.isPrinting&&k&&d&&(e===L||e===f)){if(k!==g.containerWidth||d!==g.containerHeight)clearTimeout(g.reflowTimeout),g.reflowTimeout=w(function(){g.container&&g.setSize(void 0,void 0,!1)},c?100:0);g.containerWidth=k;g.containerHeight=d}},initReflow:function(){var a=
585this,b;b=B(L,"resize",function(b){a.reflow(b)});B(a,"destroy",b)},setSize:function(b,g,d){var e=this,h=e.renderer;e.isResizing+=1;a.setAnimation(d,e);e.oldChartHeight=e.chartHeight;e.oldChartWidth=e.chartWidth;void 0!==b&&(e.options.chart.width=b);void 0!==g&&(e.options.chart.height=g);e.getChartSize();b=h.globalAnimation;(b?H:c)(e.container,{width:e.chartWidth+"px",height:e.chartHeight+"px"},b);e.setChartSize(!0);h.setSize(e.chartWidth,e.chartHeight,d);m(e.axes,function(a){a.isDirty=!0;a.setScale()});
586e.isDirtyLegend=!0;e.isDirtyBox=!0;e.layOutTitles();e.getMargins();e.redraw(d);e.oldChartHeight=null;k(e,"resize");w(function(){e&&k(e,"endResize",null,function(){--e.isResizing})},E(b).duration)},setChartSize:function(a){var b=this.inverted,c=this.renderer,g=this.chartWidth,d=this.chartHe
586ight,e=this.options.chart,h=this.spacing,k=this.clipOffset,f,x,l,p;this.plotLeft=f=Math.round(this.plotLeft);this.plotTop=x=Math.round(this.plotTop);this.plotWidth=l=Math.max(0,Math.round(g-f-this.marginRight));
587this.plotHeight=p=Math.max(0,Math.round(d-x-this.marginBottom));this.plotSizeX=b?p:l;this.plotSizeY=b?l:p;this.plotBorderWidth=e.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:h[3],y:h[0],width:g-h[3]-h[1],height:d-h[0]-h[2]};this.plotBox=c.plotBox={x:f,y:x,width:l,height:p};g=2*Math.floor(this.plotBorderWidth/2);b=Math.ceil(Math.max(g,k[3])/2);c=Math.ceil(Math.max(g,k[0])/2);this.clipBox={x:b,y:c,width:Math.floor(this.plotSizeX-Math.max(g,k[1])/2-b),height:Math.max(0,Math.floor(this.plotSizeY-
588Math.max(g,k[2])/2-c))};a||m(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this,b=a.options.chart;m(["margin","spacing"],function(c){var g=b[c],d=r(g)?g:[g,g,g,g];m(["Top","Right","Bottom","Left"],function(g,e){a[c][e]=F(b[c+g],d[e])})});m(M,function(b,c){a[b]=F(a.margin[c],a.spacing[c])});a.axisOffset=[0,0,0,0];a.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,g=this.chartHeight,d=this.chartBackground,
589e=this.plotBackground,h=this.plotBorder,f,x=this.plotBGImage,m=a.backgroundColor,l=a.plotBackgroundColor,p=a.plotBackgroundImage,A,F=this.plotLeft,n=this.plotTop,w=this.plotWidth,r=this.plotHeight,z=this.plotBox,G=this.clipRect,J=this.clipBox,q="animate";d||(this.chartBackground=d=b.rect().addClass("highcharts-background").add(),q="attr");f=a.borderWidth||0;A=f+(a.shadow?8:0);m={fill:m||"none"};if(f||d["stroke-width"])m.stroke=a.borderColor,m["stroke-width"]=f;d.attr(m).shadow(a.shadow);d[q]({x:A/
5902,y:A/2,width:c-A-f%2,height:g-A-f%2,r:a.borderRadius});q="animate";e||(q="attr",this.plotBackground=e=b.rect().addClass("highcharts-plot-background").add());e[q](z);e.attr({fill:l||"none"}).shadow(a.plotShadow);p&&(x?x.animate(z):this.plotBGImage=b.image(p,F,n,w,r).add());G?G.animate({width:J.width,height:J.height}):this.clipRect=b.clipRect(J);q="animate";h||(q="attr",this.plotBorder=h=b.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());h.attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth||
5910,fill:"none"});h[q](h.crisp({x:F,y:n,width:w,height:r},-h.strokeWidth()));this.isDirtyBox=!1;k(this,"afterDrawChartBox")},propFromSeries:function(){var a=this,b=a.options.chart,c,g=a.options.series,d,e;m(["inverted","angular","polar"],function(h){c=G[b.type||b.defaultSeriesType];e=b[h]||c&&c.prototype[h];for(d=g&&g.length;!e&&d--;)(c=G[g[d].type])&&c.prototype[h]&&(e=!0);a[h]=e})},linkSeries:function(){var a=this,b=a.series;m(b,function(a){a.linkedSeries.length=0});m(b,function(b){var c=b.options.linkedTo;
592I(c)&&(c=":previous"===c?a.series[b.index-1]:a.get(c))&&c.linkedParent!==b&&(c.linkedSeries.push(b),b.linkedParent=c,b.visible=F(b.options.visible,c.options.visible,b.visible))})},renderSeries:function(){m(this.series,function(a){a.translate();a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&m(b.items,function(c){var g=d(b.style,c.style),e=A(g.left)+a.plotLeft,h=A(g.top)+a.plotTop+12;delete g.left;delete g.top;a.renderer.text(c.html,e,h).attr({zIndex:2}).css(g).add()})},
593render:function(){var a=this.axes,b=this.renderer,c=this.options,g,d,e;this.setTitle();this.legend=new z(this,c.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();c=this.plotWidth;g=this.plotHeight=Math.max(this.plotHeight-21,0);m(a,function(a){a.setScale()});this.getAxisMargins();d=1.1<c/this.plotWidth;e=1.05<g/this.plotHeight;if(d||e)m(a,function(a){(a.horiz&&d||!a.horiz&&e)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries&&m(a,
594function(a){a.visible&&a.render()});this.seriesGroup||(this.seriesGroup=b.g("series-group").attr({zIndex:3}).add());this.renderSeries();this.renderLabels();this.addCredits();this.setResponsive&&this.setResponsive();this.hasRendered=!0},addCredits:function(a){var b=this;a=D(!0,this.options.credits,a);a.enabled&&!this.credits&&(this.credits=this.renderer.text(a.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){a.href&&(L.location.href=a.href)}).attr({align:a.position.align,
595zIndex:8}).css(a.style).add().align(a.position),this.credits.update=function(a){b.credits=b.credits.destroy();b.addCredits(a)})},destroy:function(){var b=this,c=b.axes,g=b.series,d=b.container,e,h=d&&d.parentNode;k(b,"destroy");b.renderer.forExport?a.erase(u,b):u[b.index]=void 0;a.chartCount--;b.renderTo.removeAttribute("data-highcharts-chart");J(b);for(e=c.length;e--;)c[e]=c[e].destroy();this.scroller&&this.scroller.destroy&&this.scroller.destroy();for(e=g.length;e--;)g[e]=g[e].destroy();
595m("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),
596function(a){var c=b[a];c&&c.destroy&&(b[a]=c.destroy())});d&&(d.innerHTML="",J(d),h&&v(d));C(b,function(a,c){delete b[c]})},firstRender:function(){var a=this,b=a.options;if(!a.isReadyToRender||a.isReadyToRender()){a.getContainer();k(a,"init");a.resetMargins();a.setChartSize();a.propFromSeries();a.getAxes();m(b.series||[],function(b){a.initSeries(b)});a.linkSeries();k(a,"beforeRender");x&&(a.pointer=new x(a,b));a.render();if(!a.renderer.imgCount&&a.onload)a.onload();a.temporaryDisplay(!0)}},onload:function(){m([this.callback].concat(this.callbacks),
597function(a){a&&void 0!==this.index&&a.apply(this,[this])},this);k(this,"load");k(this,"render");b(this.index)&&!1!==this.options.chart.reflow&&this.initReflow();this.onload=null}})})(K);(function(a){var B,H=a.each,E=a.extend,q=a.erase,f=a.fireEvent,l=a.format,t=a.isArray,n=a.isNumber,v=a.pick,u=a.removeEvent;a.Point=B=function(){};a.Point.prototype={init:function(a,b,m){this.series=a;this.color=a.color;this.applyOptions(b,m);a.options.colorByPoint?(b=a.options.colors||a.chart.options.colors,this.color=
598this.color||b[a.colorCounter],b=b.length,m=a.colorCounter,a.colorCounter++,a.colorCounter===b&&(a.colorCounter=0)):m=a.colorIndex;this.colorIndex=v(this.colorIndex,m);a.chart.pointCount++;f(this,"afterInit");return this},applyOptions:function(a,b){var c=this.series,d=c.options.pointValKey||c.pointValKey;a=B.prototype.optionsToObject.call(this,a);E(this,a);this.options=this.options?E(this.options,a):a;a.group&&delete this.group;d&&(this.y=this[d]);this.isNull=v(this.isValid&&!this.isValid(),null===
599this.x||!n(this.y,!0));this.selected&&(this.state="select");"name"in this&&void 0===b&&c.xAxis&&c.xAxis.hasNames&&(this.x=c.xAxis.nameToX(this));void 0===this.x&&c&&(this.x=void 0===b?c.autoIncrement(this):b);return this},optionsToObject:function(a){var b={},c=this.series,d=c.options.keys,h=d||c.pointArrayMap||["y"],k=h.length,e=0,f=0;if(n(a)||null===a)b[h[0]]=a;else if(t(a))for(!d&&a.length>k&&(c=typeof a[0],"string"===c?b.name=a[0]:"number"===c&&(b.x=a[0]),e++);f<k;)d&&void 0===a[e]||(b[h[f]]=a[e]),
600e++,f++;else"object"===typeof a&&(b=a,a.dataLabels&&(c._hasPointLabels=!0),a.marker&&(c._hasPointMarkers=!0));return b},getClassName:function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",
601""):"")},getZone:function(){var a=this.series,b=a.zones,a=a.zoneAxis||"y",f=0,d;for(d=b[f];this[a]>=d.value;)d=b[++f];d&&d.color&&!this.options.color&&(this.color=d.color);return d},destroy:function(){var a=this.series.chart,b=a.hoverPoints,f;a.pointCount--;b&&(this.setState(),q(b,this),b.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)u(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(f in this)this[f]=null},destroyElements:function(){for(var a=
602["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],b,f=6;f--;)b=a[f],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var b=this.series,c=b.tooltipOptions,d=v(c.valueDecimals,""),h=c.valuePrefix||"",k=c.valueSuffix||"";H(b.pointArrayMap||["y"],
603function(b){b="{point."+b;if(h||k)a=a.replace(b+"}",h+b+"}"+k);a=a.replace(b+"}",b+":,."+d+"f}")});return l(a,{point:this,series:this.series},b.chart.time)},firePointEvent:function(a,b,m){var c=this,h=this.series.options;(h.point.events[a]||c.options&&c.options.events&&c.options.events[a])&&this.importEvents();"click"===a&&h.allowPointSelect&&(m=function(a){c.select&&c.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});f(this,a,b,m)},visible:!0}})(K);(function(a){var B=a.addEvent,H=a.animObject,E=a.arrayMax,
604q=a.arrayMin,f=a.correctFloat,l=a.defaultOptions,t=a.defaultPlotOptions,n=a.defined,v=a.each,u=a.erase,c=a.extend,b=a.fireEvent,m=a.grep,d=a.isArray,h=a.isNumber,k=a.isString,e=a.merge,p=a.objectEach,r=a.pick,I=a.removeEvent,z=a.splat,M=a.SVGElement,D=a.syncTimeout,C=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},
605enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},
606select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var d=this,e,h=a.series,g;d.chart=a;d.options=b=d.setOptions(b);d.linkedSeries=[];d.bindAxes();c(d,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});e=b.events;p(e,function(a,b){B(d,b,a)});if(e&&e.click||b.point&&b.point.events&&
607b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;d.getColor();d.getSymbol();v(d.parallelArrays,function(a){d[a+"Data"]=[]});d.setData(b.data,!1);d.isCartesian&&(a.hasCartesianSeries=!0);h.length&&(g=h[h.length-1]);d._i=r(g&&g._i,-1)+1;a.orderSeries(this.insert(h))},insert:function(a){var b=this.options.index,c;if(h(b)){for(c=a.length;c--;)if(b>=r(a[c].options.index,a[c]._i)){a.splice(c+1,0,this);break}-1===c&&a.unshift(this);c+=1}else a.push(this);return r(c,a.length-1)},bindAxes:function(){var b=
608this,c=b.options,d=b.chart,e;v(b.axisTypes||[],function(h){v(d[h],function(a){e=a.options;if(c[h]===e.index||void 0!==c[h]&&c[h]===e.id||void 0===c[h]&&0===e.index)b.insert(a.series),b[h]=a,a.isDirty=!0});b[h]||b.optionalAxis===h||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,d=arguments,e=h(b)?function(g){var d="y"===g&&c.toYData?c.toYData(a):a[g];c[g+"Data"][b]=d}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(d,2))};v(c.parallelArrays,e)},autoIncrement:function(){var a=
609this.options,b=this.xIncrement,c,d=a.pointIntervalUnit,e=this.chart.time,b=r(b,a.pointStart,0);this.pointInterval=c=r(this.pointInterval,a.pointInterval,1);d&&(a=new e.Date(b),"day"===d?e.set("Date",a,e.get("Date",a)+c):"month"===d?e.set("Month",a,e.get("Month",a)+c):"year"===d&&e.set("FullYear",a,e.get("FullYear",a)+c),c=a.getTime()-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options,d=c.plotOptions,h=(b.userOptions||{}).plotOptions||{},g=d[this.type];this.userOptions=
610a;b=e(g,d.series,a);this.tooltipOptions=e(l.tooltip,l.plotOptions.series&&l.plotOptions.series.tooltip,l.plotOptions[this.type].tooltip,c.tooltip.userOptions,d.series&&d.series.tooltip,d[this.type].tooltip,a.tooltip);this.stickyTracking=r(a.stickyTracking,h[this.type]&&h[this.type].stickyTracking,h.series&&h.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:b.stickyTracking);null===g.marker&&delete b.marker;this.zoneAxis=b.zoneAxis;a=this.zones=(b.zones||[]).slice();!b.negativeColor&&
611!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+"Threshold"]||b.threshold||0,className:"highcharts-negative",color:b.negativeColor,fillColor:b.negativeFillColor});a.length&&n(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return b},getName:function(){return this.name||"Series "+(this.index+1)},getCyclic:function(a,b,c){var d,e=this.chart,g=this.userOptions,h=a+"Index",k=a+"Counter",f=c?c.length:r(e.options.chart[a+"Count"],e[a+"Count"]);b||(d=r(g[h],g["_"+h]),
612n(d)||(e.series.length||(e[k]=0),g["_"+h]=d=e[k]%f,e[k]+=1),c&&(b=c[d]));void 0!==d&&(this[h]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||t[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(b,c,e,f){var m=this,g=m.points,l=g&&g.length||0,x,p=m.options,F=
613m.chart,n=null,A=m.xAxis,z=p.turboThreshold,q=this.xData,D=this.yData,t=(x=m.pointArrayMap)&&x.length;b=b||[];x=b.length;c=r(c,!0);
613if(!1!==f&&x&&l===x&&!m.cropped&&!m.hasGroupedData&&m.visible)v(b,function(a,b){g[b].update&&a!==p.data[b]&&g[b].update(a,!1,null,!1)});else{m.xIncrement=null;m.colorCounter=0;v(this.parallelArrays,function(a){m[a+"Data"].length=0});if(z&&x>z){for(e=0;null===n&&e<x;)n=b[e],e++;if(h(n))for(e=0;e<x;e++)q[e]=this.autoIncrement(),D[e]=b[e];else if(d(n))if(t)for(e=0;e<x;e++)n=
614b[e],q[e]=n[0],D[e]=n.slice(1,t+1);else for(e=0;e<x;e++)n=b[e],q[e]=n[0],D[e]=n[1];else a.error(12)}else for(e=0;e<x;e++)void 0!==b[e]&&(n={series:m},m.pointClass.prototype.applyOptions.apply(n,[b[e]]),m.updateParallelArrays(n,e));D&&k(D[0])&&a.error(14,!0);m.data=[];m.options.data=m.userOptions.data=b;for(e=l;e--;)g[e]&&g[e].destroy&&g[e].destroy();A&&(A.minRange=A.userMinRange);m.isDirty=F.isDirtyBox=!0;m.isDirtyData=!!g;e=!1}"point"===p.legendType&&(this.processData(),this.generatePoints());c&&
615F.redraw(e)},processData:function(b){var c=this.xData,d=this.yData,e=c.length,h;h=0;var g,k,f=this.xAxis,m,l=this.options;m=l.cropThreshold;var x=this.getExtremesFromAll||l.getExtremesFromAll,p=this.isCartesian,l=f&&f.val2lin,n=f&&f.isLog,r=this.requireSorting,z,q;if(p&&!this.isDirty&&!f.isDirty&&!this.yAxis.isDirty&&!b)return!1;f&&(b=f.getExtremes(),z=b.min,q=b.max);if(p&&this.sorted&&!x&&(!m||e>m||this.forceCrop))if(c[e-1]<z||c[0]>q)c=[],d=[];else if(c[0]<z||c[e-1]>q)h=this.cropData(this.xData,
616this.yData,z,q),c=h.xData,d=h.yData,h=h.start,g=!0;for(m=c.length||1;--m;)e=n?l(c[m])-l(c[m-1]):c[m]-c[m-1],0<e&&(void 0===k||e<k)?k=e:0>e&&r&&(a.error(15),r=!1);this.cropped=g;this.cropStart=h;this.processedXData=c;this.processedYData=d;this.closestPointRange=k},cropData:function(a,b,c,d){var e=a.length,g=0,h=e,k=r(this.cropShoulder,1),f;for(f=0;f<e;f++)if(a[f]>=c){g=Math.max(0,f-k);break}for(c=f;c<e;c++)if(a[c]>d){h=c+k;break}return{xData:a.slice(g,h),yData:b.slice(g,h),start:g,end:h}},generatePoints:function(){var a=
617this.options,b=a.data,c=this.data,d,e=this.processedXData,g=this.processedYData,h=this.pointClass,k=e.length,f=this.cropStart||0,m,l=this.hasGroupedData,a=a.keys,p,n=[],r;c||l||(c=[],c.length=b.length,c=this.data=c);a&&l&&(this.options.keys=!1);for(r=0;r<k;r++)m=f+r,l?(p=(new h).init(this,[e[r]].concat(z(g[r]))),p.dataGroup=this.groupMap[r]):(p=c[m])||void 0===b[m]||(c[m]=p=(new h).init(this,b[m],e[r])),p&&(p.index=m,n[r]=p);this.options.keys=a;if(c&&(k!==(d=c.length)||l))for(r=0;r<d;r++)r!==f||l||
618(r+=k),c[r]&&(c[r].destroyElements(),c[r].plotX=void 0);this.data=c;this.points=n},getExtremes:function(a){var b=this.yAxis,c=this.processedXData,e,k=[],g=0;e=this.xAxis.getExtremes();var f=e.min,m=e.max,l,p,x,n;a=a||this.stackedYData||this.processedYData||[];e=a.length;for(n=0;n<e;n++)if(p=c[n],x=a[n],l=(h(x,!0)||d(x))&&(!b.positiveValuesOnly||x.length||0<x),p=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(c[n+1]||p)>=f&&(c[n-1]||p)<=m,l&&p)if(l=x.length)for(;l--;)"number"===
619typeof x[l]&&(k[g++]=x[l]);else k[g++]=x;this.dataMin=q(k);this.dataMax=E(k)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,c=a.stacking,e=this.xAxis,d=e.categories,k=this.yAxis,g=this.points,m=g.length,l=!!this.modifyValue,p=a.pointPlacement,z="between"===p||h(p),q=a.threshold,D=a.startFromThreshold?q:0,t,C,v,u,M=Number.MAX_VALUE;"between"===p&&(p=.5);h(p)&&(p*=r(a.pointRange||e.pointRange));for(a=0;a<m;a++){var I=g[a],B=I.x,E=I.y;C=I.low;var H=
620c&&k.stacks[(this.negStacks&&E<(D?0:q)?"-":"")+this.stackKey],K;k.positiveValuesOnly&&null!==E&&0>=E&&(I.isNull=!0);I.plotX=t=f(Math.min(Math.max(-1E5,e.translate(B,0,0,0,1,p,"flags"===this.type)),1E5));c&&this.visible&&!I.isNull&&H&&H[B]&&(u=this.getStackIndicator(u,B,this.index),K=H[B],E=K.points[u.key],C=E[0],E=E[1],C===D&&u.key===H[B].base&&(C=r(q,k.min)),k.positiveValuesOnly&&0>=C&&(C=null),I.total=I.stackTotal=K.total,I.percentage=K.total&&I.y/K.total*100,I.stackY=E,K.setOffset(this.pointXOffset||
6210,this.barW||0));I.yBottom=n(C)?Math.min(Math.max(-1E5,k.translate(C,0,1,0,1)),1E5):null;l&&(E=this.modifyValue(E,I));I.plotY=C="number"===typeof E&&Infinity!==E?Math.min(Math.max(-1E5,k.translate(E,0,1,0,1)),1E5):void 0;I.isInside=void 0!==C&&0<=C&&C<=k.len&&0<=t&&t<=e.len;I.clientX=z?f(e.translate(B,0,0,0,1,p)):t;I.negative=I.y<(q||0);I.category=d&&void 0!==d[I.x]?d[I.x]:I.x;I.isNull||(void 0!==v&&(M=Math.min(M,Math.abs(t-v))),v=t);I.zone=this.zones.length&&I.getZone()}this.closestPointRangePx=
622M;b(this,"afterTranslate")},getValidPoints:function(a,b){var c=this.chart;return m(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,e=b.renderer,d=b.inverted,g=this.clipBox,h=g||b.clipBox,k=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,h.height,c.xAxis,c.yAxis].join(),f=b[k],m=b[k+"m"];f||(a&&(h.width=0,d&&(h.x=b.plotSizeX),b[k+"m"]=m=e.clipRect(d?b.plotSizeX+99:-99,d?-b.plotLeft:
623-b.plotTop,99,d?b.chartWidth:b.chartHeight)),b[k]=f=e.clipRect(h),f.count={length:0});a&&!f.count[this.index]&&(f.count[this.index]=!0,f.count.length+=1);!1!==c.clip&&(this.group.clip(a||g?f:b.clipRect),this.markerGroup.clip(m),this.sharedClipKey=k);a||(f.count[this.index]&&(delete f.count[this.index],--f.count.length),0===f.count.length&&k&&b[k]&&(g||(b[k]=b[k].destroy()),b[k+"m"]&&(b[k+"m"]=b[k+"m"].destroy())))},animate:function(a){var b=this.chart,c=H(this.options.animation),e;a?this.setClip(c):
624(e=this.sharedClipKey,(a=b[e])&&a.animate({width:b.plotSizeX,x:0},c),b[e+"m"]&&b[e+"m"].animate({width:b.plotSizeX+99,x:0},c),this.animate=null)},afterAnimate:function(){this.setClip();b(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,e,d,g,h=this.options.marker,k,f,m,l=this[this.specialGroup]||this.markerGroup,p,n=r(h.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=h.enabledThreshold*h.radius);if(!1!==h.enabled||this._hasPointMarkers)for(c=
6250;c<a.length;c++)e=a[c],g=e.graphic,k=e.marker||{},f=!!e.marker,d=n&&void 0===k.enabled||k.enabled,m=e.isInside,d&&!e.isNull?(d=r(k.symbol,this.symbol),p=this.markerAttribs(e,e.selected&&"select"),g?g[m?"show":"hide"](!0).animate(p):m&&(0<p.width||e.hasImage)&&(e.graphic=g=b.renderer.symbol(d,p.x,p.y,p.width,p.height,f?k:h).add(l)),g&&g.attr(this.pointAttribs(e,e.selected&&"select")),g&&g.addClass(e.getClassName(),!0)):g&&(e.graphic=g.destroy())},markerAttribs:function(a,b){var c=this.options.marker,
626e=a.marker||{}
626,d=e.symbol||c.symbol,g=r(e.radius,c.radius);b&&(c=c.states[b],b=e.states&&e.states[b],g=r(b&&b.radius,c&&c.radius,g+(c&&c.radiusPlus||0)));a.hasImage=d&&0===d.indexOf("url");a.hasImage&&(g=0);a={x:Math.floor(a.plotX)-g,y:a.plotY-g};g&&(a.width=a.height=2*g);return a},pointAttribs:function(a,b){var c=this.options.marker,e=a&&a.options,d=e&&e.marker||{},g=this.color,h=e&&e.color,k=a&&a.color,e=r(d.lineWidth,c.lineWidth);a=a&&a.zone&&a.zone.color;g=h||a||k||g;a=d.fillColor||c.fillColor||
627g;g=d.lineColor||c.lineColor||g;b&&(c=c.states[b],b=d.states&&d.states[b]||{},e=r(b.lineWidth,c.lineWidth,e+r(b.lineWidthPlus,c.lineWidthPlus,0)),a=b.fillColor||c.fillColor||a,g=b.lineColor||c.lineColor||g);return{stroke:g,"stroke-width":e,fill:a}},destroy:function(){var a=this,c=a.chart,e=/AppleWebKit\/533/.test(C.navigator.userAgent),d,h,g=a.data||[],k,f;b(a,"destroy");I(a);v(a.axisTypes||[],function(b){(f=a[b])&&f.series&&(u(f.series,a),f.isDirty=f.forceRedraw=!0)});a.legendItem&&a.chart.legend.destroyItem(a);
628for(h=g.length;h--;)(k=g[h])&&k.destroy&&k.destroy();a.points=null;clearTimeout(a.animationTimeout);p(a,function(a,b){a instanceof M&&!a.survive&&(d=e&&"group"===b?"hide":"destroy",a[d]())});c.hoverSeries===a&&(c.hoverSeries=null);u(c.series,a);c.orderSeries();p(a,function(b,c){delete a[c]})},getGraphPath:function(a,b,c){var e=this,d=e.options,g=d.step,h,k=[],f=[],m;a=a||e.points;(h=a.reversed)&&a.reverse();(g={right:1,center:2}[g]||g&&3)&&h&&(g=4-g);!d.connectNulls||b||c||(a=this.getValidPoints(a));
629v(a,function(h,l){var p=h.plotX,x=h.plotY,r=a[l-1];(h.leftCliff||r&&r.rightCliff)&&!c&&(m=!0);h.isNull&&!n(b)&&0<l?m=!d.connectNulls:h.isNull&&!b?m=!0:(0===l||m?l=["M",h.plotX,h.plotY]:e.getPointSpline?l=e.getPointSpline(a,h,l):g?(l=1===g?["L",r.plotX,x]:2===g?["L",(r.plotX+p)/2,r.plotY,"L",(r.plotX+p)/2,x]:["L",p,r.plotY],l.push("L",p,x)):l=["L",p,x],f.push(h.x),g&&f.push(h.x),k.push.apply(k,l),m=!1)});k.xMap=f;return e.graphPath=k},drawGraph:function(){var a=this,b=this.options,c=(this.gappedPath||
630this.getGraphPath).call(this),e=[["graph","highcharts-graph",b.lineColor||this.color,b.dashStyle]];v(this.zones,function(c,d){e.push(["zone-graph-"+d,"highcharts-graph highcharts-zone-graph-"+d+" "+(c.className||""),c.color||a.color,c.dashStyle||b.dashStyle])});v(e,function(e,d){var g=e[0],h=a[g];h?(h.endX=a.preventGraphAnimation?null:c.xMap,h.animate({d:c})):c.length&&(a[g]=a.chart.renderer.path(c).addClass(e[1]).attr({zIndex:1}).add(a.group),h={stroke:e[2],"stroke-width":b.lineWidth,fill:a.fillGraph&&
631a.color||"none"},e[3]?h.dashstyle=e[3]:"square"!==b.linecap&&(h["stroke-linecap"]=h["stroke-linejoin"]="round"),h=a[g].attr(h).shadow(2>d&&b.shadow));h&&(h.startX=c.xMap,h.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,e=this.zones,d,g,h=this.clips||[],k,f=this.graph,m=this.area,l=Math.max(b.chartWidth,b.chartHeight),p=this[(this.zoneAxis||"y")+"Axis"],n,z,q=b.inverted,D,t,C,u,M=!1;e.length&&(f||m)&&p&&void 0!==p.min&&(z=p.reversed,D=p.horiz,f&&f.hide(),m&&m.hide(),
632n=p.getExtremes(),v(e,function(e,x){d=z?D?b.plotWidth:0:D?0:p.toPixels(n.min);d=Math.min(Math.max(r(g,d),0),l);g=Math.min(Math.max(Math.round(p.toPixels(r(e.value,n.max),!0)),0),l);M&&(d=g=p.toPixels(n.max));t=Math.abs(d-g);C=Math.min(d,g);u=Math.max(d,g);p.isXAxis?(k={x:q?u:C,y:0,width:t,height:l},D||(k.x=b.plotHeight-k.x)):(k={x:0,y:q?u:C,width:l,height:t},D&&(k.y=b.plotWidth-k.y));q&&c.isVML&&(k=p.isXAxis?{x:0,y:z?C:u,height:k.width,width:b.chartWidth}:{x:k.y-b.plotLeft-b.spacingBox.x,y:0,width:k.height,
633height:b.chartHeight});h[x]?h[x].animate(k):(h[x]=c.clipRect(k),f&&a["zone-graph-"+x].clip(h[x]),m&&a["zone-area-"+x].clip(h[x]));M=e.value>n.max}),this.clips=h)},invertGroups:function(a){function b(){v(["group","markerGroup"],function(b){c[b]&&(e.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,e=c.chart,d;c.xAxis&&(d=B(e,"resize",b),B(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,e,d){var g=
634this[a],h=!g;h&&(this[a]=g=this.chart.renderer.g().attr({zIndex:e||.1}).add(d));g.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.t
634ype+"-series "+(n(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(g.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);g.attr({visibility:c})[h?"attr":"animate"](this.getPlotBox());return g},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);
635return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,c=a.chart,e,d=a.options,h=!!a.animate&&c.renderer.isSVG&&H(d.animation).duration,g=a.visible?"inherit":"hidden",k=d.zIndex,f=a.hasRendered,m=c.seriesGroup,l=c.inverted;e=a.plotGroup("group","series",g,k,m);a.markerGroup=a.plotGroup("markerGroup","markers",g,k,m);h&&a.animate(!0);e.inverted=a.isCartesian?l:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();
636a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(l);!1===d.clip||a.sharedClipKey||f||e.clip(c.clipRect);h&&a.animate();f||(a.animationTimeout=D(function(){a.afterAnimate()},h));a.isDirty=!1;a.hasRendered=!0;b(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,c=this.group,e=this.xAxis,d=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:r(e&&e.left,a.plotLeft),
637translateY:r(d&&d.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,e=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:d?e.len-a.chartX+e.pos:a.chartY-e.pos},b)},buildKDTree:function(){function a(c,e,d){var g,h;if(h=c&&c.length)return g=b.kdAxisArray[e%d],c.sort(function(a,b){return a[g]-b[g]}),h=Math.floor(h/2),{point:c[h],left:a(c.slice(0,
638h),e+1,d),right:a(c.slice(h+1),e+1,d)}}this.buildingKdTree=!0;var b=this,c=-1<b.options.findNearestPointBy.indexOf("y")?2:1;delete b.kdTree;D(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c);b.buildingKdTree=!1},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,k,f){var m=b.point,l=e.kdAxisArray[k%f],p,r,z=m;r=n(a[d])&&n(m[d])?Math.pow(a[d]-m[d],2):null;p=n(a[g])&&n(m[g])?Math.pow(a[g]-m[g],2):null;p=(r||0)+(p||0);m.dist=n(p)?Math.sqrt(p):Number.MAX_VALUE;m.distX=n(r)?
639Math.sqrt(r):Number.MAX_VALUE;l=a[l]-m[l];p=0>l?"left":"right";r=0>l?"right":"left";b[p]&&(p=c(a,b[p],k+1,f),z=p[h]<z[h]?p:m);b[r]&&Math.sqrt(l*l)<z[h]&&(a=c(a,b[r],k+1,f),z=a[h]<z[h]?a:z);return z}var e=this,d=this.kdAxisArray[0],g=this.kdAxisArray[1],h=b?"distX":"dist";b=-1<e.options.findNearestPointBy.indexOf("y")?2:1;this.kdTree||this.buildingKdTree||this.buildKDTree();if(this.kdTree)return c(a,this.kdTree,b,b)}})})(K);(function(a){var B=a.Axis,H=a.Chart,E=a.correctFloat,q=a.defined,f=a.destroyObjectProperties,
640l=a.each,t=a.format,n=a.objectEach,v=a.pick,u=a.Series;a.StackItem=function(a,b,f,d,h){var c=a.chart.inverted;this.axis=a;this.isNegative=f;this.options=b;this.x=d;this.total=null;this.points={};this.stack=h;this.rightCliff=this.leftCliff=0;
640this.alignOptions={align:b.align||(c?f?"left":"right":"center"),verticalAlign:b.verticalAlign||(c?"middle":f?"bottom":"top"),y:v(b.y,c?4:f?14:-6),x:v(b.x,c?f?-6:6:0)};this.textAlign=b.textAlign||(c?f?"right":"left":"center")};a.StackItem.prototype={destroy:function(){f(this,
641this.axis)},render:function(a){var b=this.axis.chart,c=this.options,d=c.format,d=d?t(d,this,b.time):c.formatter.call(this);this.label?this.label.attr({text:d,visibility:"hidden"}):this.label=b.renderer.text(d,null,null,c.useHTML).css(c.style).attr({align:this.textAlign,rotation:c.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,h=c.translate(c.usePercentage?100:this.total,0,0,0,1),c=c.translate(0),c=Math.abs(h-c);a=d.xAxis[0].translate(this.x)+a;h=this.getStackBox(d,
642this,a,h,b,c);if(b=this.label)b.align(this.alignOptions,null,h),h=b.alignAttr,b[!1===this.options.crop||d.isInsidePlot(h.x,h.y)?"show":"hide"](!0)},getStackBox:function(a,b,f,d,h,k){var c=b.axis.reversed,m=a.inverted;a=a.plotHeight;b=b.isNegative&&!c||!b.isNegative&&c;return{x:m?b?d:d-k:f,y:m?a-f-h:b?a-d-k:a-d,width:m?k:h,height:m?h:k}}};H.prototype.getStacks=function(){var a=this;l(a.yAxis,function(a){a.stacks&&a.hasVisibleSeries&&(a.oldStacks=a.stacks)});l(a.series,function(b){!b.options.stacking||
643!0!==b.visible&&!1!==a.options.chart.ignoreHiddenSeries||(b.stackKey=b.type+v(b.options.stack,""))})};B.prototype.buildStacks=function(){var a=this.series,b=v(this.options.reversedStacks,!0),f=a.length,d;if(!this.isXAxis){this.usePercentage=!1;for(d=f;d--;)a[b?d:f-d-1].setStackedPoints();for(d=0;d<f;d++)a[d].modifyStacks()}};B.prototype.renderStackTotals=function(){var a=this.chart,b=a.renderer,f=this.stacks,d=this.stackTotalGroup;d||(this.stackTotalGroup=d=b.g("stack-labels").attr({visibility:"visible",
644zIndex:6}).add());d.translate(a.plotLeft,a.plotTop);n(f,function(a){n(a,function(a){a.render(d)})})};B.prototype.resetStacks=function(){var a=this,b=a.stacks;a.isXAxis||n(b,function(b){n(b,function(c,h){c.touched<a.stacksTouched?(c.destroy(),delete b[h]):(c.total=null,c.cumulative=null)})})};B.prototype.cleanStacks=function(){var a;this.isXAxis||(this.oldStacks&&(a=this.stacks=this.oldStacks),n(a,function(a){n(a,function(a){a.cumulative=a.total})}))};u.prototype.setStackedPoints=function(){if(this.options.stacking&&
645(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var c=this.processedXData,b=this.processedYData,f=[],d=b.length,h=this.options,k=h.threshold,e=v(h.startFromThreshold&&k,0),l=h.stack,h=h.stacking,n=this.stackKey,t="-"+n,z=this.negStacks,u=this.yAxis,D=u.stacks,C=u.oldStacks,x,F,A,J,G,g,w;u.stacksTouched+=1;for(G=0;G<d;G++)g=c[G],w=b[G],x=this.getStackIndicator(x,g,this.index),J=x.key,A=(F=z&&w<(e?0:k))?t:n,D[A]||(D[A]={}),D[A][g]||(C[A]&&C[A][g]?(D[A][g]=C[A][g],D[A][g].total=
646null):D[A][g]=new a.StackItem(u,u.options.stackLabels,F,g,l)),A=D[A][g],null!==w?(A.points[J]=A.points[this.index]=[v(A.cumulative,e)],q(A.cumulative)||(A.base=J),A.touched=u.stacksTouched,0<x.index&&!1===this.singleStacks&&(A.points[J][0]=A.points[this.index+","+g+",0"][0])):A.points[J]=A.points[this.index]=null,"percent"===h?(F=F?n:t,z&&D[F]&&D[F][g]?(F=D[F][g],A.total=F.total=Math.max(F.total,A.total)+Math.abs(w)||0):A.total=E(A.total+(Math.abs(w)||0))):A.total=E(A.total+(w||0)),A.cumulative=v(A.cumulative,
647e)+(w||0),null!==w&&(A.points[J].push(A.cumulative),f[G]=A.cumulative);"percent"===h&&(u.usePercentage=!0);this.stackedYData=f;u.oldStacks={}}};u.prototype.modifyStacks=function(){var a=this,b=a.stackKey,f=a.yAxis.stacks,d=a.processedXData,h,k=a.options.stacking;a[k+"Stacker"]&&l([b,"-"+b],function(b){for(var c=d.length,e,l;c--;)if(e=d[c],h=a.getStackIndicator(h,e,a.index,b),l=(e=f[b]&&f[b][e])&&e.points[h.key])a[k+"Stacker"](l,e,c)})};u.prototype.percentStacker=function(a,b,f){b=b.total?100/b.total:
6480;a[0]=E(a[0]*b);a[1]=E(a[1]*b);this.stackedYData[f]=a[1]};u.prototype.getStackIndicator=function(a,b,f,d){!q(a)||a.x!==b||d&&a.key!==d?a={x:b,index:0,key:d}:a.index++;a.key=[f,b,a.index].join();return a}})(K);(function(a){var B=a.addEvent,H=a.animate,E=a.Axis,q=a.createElement,f=a.css,l=a.defined,t=a.each,n=a.erase,v=a.extend,u=a.fireEvent,c=a.inArray,b=a.isNumber,m=a.isObject,d=a.isArray,h=a.merge,k=a.objectEach,e=a.pick,p=a.Point,r=a.Series,I=a.seriesTypes,z=a.setAnimation,M=a.splat;v(a.Chart.prototype,
649{addSeries:function(a,b,c){var d,h=this;a&&(b=e(b,!0),u(h,"addSeries",{options:a}
649,function(){d=h.initSeries(a);h.isDirtyLegend=!0;h.linkSeries();b&&h.redraw(c)}));return d},addAxis:function(a,b,c,d){var k=b?"xAxis":"yAxis",f=this.options;a=h(a,{index:this[k].length,isX:b});b=new E(this,a);f[k]=M(f[k]||{});f[k].push(a);e(c,!0)&&this.redraw(d);return b},showLoading:function(a){var b=this,c=b.options,e=b.loadingDiv,d=c.loading,h=function(){e&&f(e,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+
650"px",height:b.plotHeight+"px"})};e||(b.loadingDiv=e=q("div",{className:"highcharts-loading highcharts-loading-hidden"},null,b.container),b.loadingSpan=q("span",{className:"highcharts-loading-inner"},null,e),B(b,"redraw",h));e.className="highcharts-loading";b.loadingSpan.innerHTML=a||c.lang.loading;f(e,v(d.style,{zIndex:10}));f(b.loadingSpan,d.labelStyle);b.loadingShown||(f(e,{opacity:0,display:""}),H(e,{opacity:d.style.opacity||.5},{duration:d.showDuration||0}));b.loadingShown=!0;h()},hideLoading:function(){var a=
651this.options,b=this.loadingDiv;b&&(b.className="highcharts-loading highcharts-loading-hidden",H(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){f(b,{display:"none"})}}));this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft borderRadius plotBackgroun
651dColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),
652propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" "),update:function(a,d,f){var p=this,m={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},n=a.chart,r,g,z=[];if(n){h(!0,p.options.chart,n);"className"in n&&p.setClassName(n.className);if("inverted"in n||"polar"in n)p.propFromSeries(),r=!0;"alignTicks"in n&&(r=!0);k(n,function(a,b){-1!==c("chart."+b,p.propsRequireUpdateSeries)&&(g=!0);-1!==c(b,p.propsRequireDirtyBox)&&
653(p.isDirtyBox=!0)});"style"in n&&p.renderer.setStyle(n.style)}a.colors&&(this.options.colors=a.colors);a.plotOptions&&h(!0,this.options.plotOptions,a.plotOptions);k(a,function(a,b){if(p[b]&&"function"===typeof p[b].update)p[b].update(a,!1);else if("function"===typeof p[m[b]])p[m[b]](a);"chart"!==b&&-1!==c(b,p.propsRequireUpdateSeries)&&(g=!0)});t("xAxis yAxis zAxis series colorAxis pane".split(" "),function(b){a[b]&&(t(M(a[b]),function(a,c){(c=l(a.id)&&p.get(a.id)||p[b][c])&&c.coll===b&&(c.update(a,
654!1),f&&(c.touched=!0));if(!c&&f)if("series"===b)p.addSeries(a,!1).touched=!0;else if("xAxis"===b||"yAxis"===b)p.addAxis(a,"xAxis"===b,!1).touched=!0}),f&&t(p[b],function(a){a.touched?delete a.touched:z.push(a)}))});t(z,function(a){a.remove(!1)});r&&t(p.axes,function(a){a.update({},!1)});g&&t(p.series,function(a){a.update({},!1)});a.loading&&h(!0,p.options.loading,a.loading);r=n&&n.width;n=n&&n.height;b(r)&&r!==p.chartWidth||b(n)&&n!==p.chartHeight?p.setSize(r,n):e(d,!0)&&p.redraw()},setSubtitle:function(a){this.setTitle(void 0,
655a)}});v(p.prototype,{update:function(a,b,c,d){function h(){k.applyOptions(a);null===k.y&&g&&(k.graphic=g.destroy());m(a,!0)&&(g&&g.element&&a&&a.marker&&void 0!==a.marker.symbol&&(k.graphic=g.destroy()),a&&a.dataLabels&&k.dataLabel&&(k.dataLabel=k.dataLabel.destroy()),k.connector&&(k.connector=k.connector.destroy()));p=k.index;f.updateParallelArrays(k,p);n.data[p]=m(n.data[p],!0)||m(a,!0)?k.options:a;f.isDirty=f.isDirtyData=!0;!f.fixedBox&&f.hasCartesianSeries&&(l.isDirtyBox=!0);"point"===n.legendType&&
656(l.isDirtyLegend=!0);b&&l.redraw(c)}var k=this,f=k.series,g=k.graphic,p,l=f.chart,n=f.options;b=e(b,!0);!1===d?h():k.firePointEvent("update",{options:a},h)},remove:function(a,b){this.series.removePoint(c(this,this.series.data),a,b)}});v(r.prototype,{addPoint:function(a,b,c,d){var h=this.options,k=this.data,f=this.chart,g=this.xAxis,g=g&&g.hasNames&&g.names,p=h.data,l,m,n=this.xData,r,z;b=e(b,!0);l={series:this};this.pointClass.prototype.applyOptions.apply(l,[a]);z=l.x;r=n.length;if(this.requireSorting&&
657z<n[r-1])for(m=!0;r&&n[r-1]>z;)r--;this.updateParallelArrays(l,"splice",r,0,0);this.updateParallelArrays(l,r);g&&l.name&&(g[z]=l.name);p.splice(r,0,a);m&&(this.data.splice(r,0,null),this.processData());"point"===h.legendType&&this.generatePoints();c&&(k[0]&&k[0].remove?k[0].remove(!1):(k.shift(),this.updateParallelArrays(l,"shift"),p.shift()));this.isDirtyData=this.isDirty=!0;b&&f.redraw(d)},removePoint:function(a,b,c){var d=this,h=d.data,k=h[a],f=d.points,g=d.chart,p=function(){f&&f.length===h.length&&
658f.splice(a,1);h.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(k||{series:d},"splice",a,1);k&&k.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&g.redraw()};z(c,g);b=e(b,!0);k?k.firePointEvent("remove",null,p):p()},remove:function(a,b,c){function d(){h.destroy();k.isDirtyLegend=k.isDirtyBox=!0;k.linkSeries();e(a,!0)&&k.redraw(b)}var h=this,k=h.chart;!1!==c?u(h,"remove",null,d):d()},update:function(a,b){var c=this,d=c.chart,k=c.userOptions,f=c.oldType||c.type,p=a.type||k.type||d.options.chart.type,
659g=I[f].prototype,l,m=["group","markerGroup","dataLabelsGroup"],n=["navigatorSeries","baseSeries"],r=c.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(a).toString())return this.setData(a.data,b);n=m.concat(n);t(n,function(a){n[a]=c[a];delete c[a]});a=h(k,r,{index:c.index,pointStart:c.xData[0]},{data:c.options.data},a);c.remove(!1,null,!1);for(l in g)c[l]=void 0;v(c,I[p||f].prototype);t(n,function(a){c[a]=n[a]});c.init(d,a);a.zIndex!==k.zIndex&&t(m,function(b){c[b]&&c[b].attr({zIndex:a.zIndex})});
660c.oldType=f;d.linkSeries();e(b,!0)&&d.redraw(!1)}});v(E.prototype,{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,v(a,{events:void 0}));c.isDirtyBox=!0;e(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,h=this.series,k=h.length;k--;)h[k]&&h[k].remove(!1);n(b.axes,this);n(b[c],this);d(b.options[c])?b.options[c].splice(this.options.index,1):delete b.options[c];t(b[c],function(a,b){a.options.index=
661b});this.destroy();b.isDirtyBox=!0;e(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})})(K);(function(a){var B=a.color,H=a.each,E=a.map,q=a.pick,f=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0}
661,{singleStacks:!1,getStackPoints:function(f){var l=[],t=[],u=this.xAxis,c=this.yAxis,b=c.stacks[this.stackKey],m={},d=this.index,h=c.series,k=h.length,e,p=q(c.options.reversedStacks,!0)?1:-1,r;f=f||this.points;
662if(this.options.stacking){for(r=0;r<f.length;r++)f[r].leftNull=f[r].rightNull=null,m[f[r].x]=f[r];a.objectEach(b,function(a,b){null!==a.total&&t.push(b)});t.sort(function(a,b){return a-b});e=E(h,function(){return this.visible});H(t,function(a,h){var f=0,n,z;if(m[a]&&!m[a].isNull)l.push(m[a]),H([-1,1],function(c){var f=1===c?"rightNull":"leftNull",l=0,q=b[t[h+c]];if(q)for(r=d;0<=r&&r<k;)n=q.points[r],n||(r===d?m[a][f]=!0:e[r]&&(z=b[a].points[r])&&(l-=z[1]-z[0])),r+=p;m[a][1===c?"rightCliff":"leftCliff"]=
663l});else{for(r=d;0<=r&&r<k;){if(n=b[a].points[r]){f=n[1];break}r+=p}f=c.translate(f,0,1,0,1);l.push({isNull:!0,plotX:u.translate(a,0,0,0,1),x:a,plotY:f,yBottom:f})}})}return l},getGraphPath:function(a){var l=f.prototype.getGraphPath,t=this.options,u=t.stacking,c=this.yAxis,b,m,d=[],h=[],k=this.index,e,p=c.stacks[this.stackKey],r=t.threshold,I=c.getThreshold(t.threshold),z,t=t.connectNulls||"percent"===u,M=function(b,f,l){var m=a[b];b=u&&p[m.x].points[k];var n=m[l+"Null"]||0;l=m[l+"Cliff"]||0;var z,
664q,m=!0;l||n?(z=(n?b[0]:b[1])+l,q=b[0]+l,m=!!n):!u&&a[f]&&a[f].isNull&&(z=q=r);void 0!==z&&(h.push({plotX:e,plotY:null===z?I:c.getThreshold(z),isNull:m,isCliff:!0}),d.push({plotX:e,plotY:null===q?I:c.getThreshold(q),doCurve:!1}))};a=a||this.points;u&&(a=this.getStackPoints(a));for(b=0;b<a.length;b++)if(m=a[b].isNull,e=q(a[b].rectPlotX,a[b].plotX),z=q(a[b].yBottom,I),!m||t)t||M(b,b-1,"left"),m&&!u&&t||(h.push(a[b]),d.push({x:b,plotX:e,plotY:z})),t||M(b,b+1,"right");b=l.call(this,h,!0,!0);d.reversed=
665!0;m=l.call(this,d,!0,!0);m.length&&(m[0]="L");m=b.concat(m);l=l.call(this,h,!1,t);m.xMap=b.xMap;this.areaPath=m;return l},drawGraph:function(){this.areaPath=[];f.prototype.drawGraph.apply(this);var a=this,l=this.areaPath,v=this.options,u=[["area","highcharts-area",this.color,v.fillColor]];H(this.zones,function(c,b){u.push(["zone-area-"+b,"highcharts-area highcharts-zone-area-"+b+" "+c.className,c.color||a.color,c.fillColor||v.fillColor])});H(u,function(c){var b=c[0],f=a[b];f?(f.endX=a.preventGraphAnimation?
666null:l.xMap,f.animate({d:l})):(f=a[b]=a.chart.renderer.path(l).addClass(c[1]).attr({fill:q(c[3],B(c[2]).setOpacity(q(v.fillOpacity,.75)).get()),zIndex:0}).add(a.group),f.isArea=!0);f.startX=l.xMap;f.shiftUnit=v.step?2:1})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})})(K);(function(a){var B=a.pick;a=a.seriesType;a("spline","line",{},{getPointSpline:function(a,E,q){var f=E.plotX,l=E.plotY,t=a[q-1];q=a[q+1];var n,v,u,c;if(t&&!t.isNull&&!1!==t.doCurve&&!E.isCliff&&q&&!q.isNull&&!1!==q.doCurve&&
667!E.isCliff){a=t.plotY;u=q.plotX;q=q.plotY;var b=0;n=(1.5*f+t.plotX)/2.5;v=(1.5*l+a)/2.5;u=(1.5*f+u)/2.5;c=(1.5*l+q)/2.5;u!==n&&(b=(c-v)*(u-f)/(u-n)+l-c);v+=b;c+=b;v>a&&v>l?(v=Math.max(a,l),c=2*l-v):v<a&&v<l&&(v=Math.min(a,l),c=2*l-v);c>q&&c>l?(c=Math.max(q,l),v=2*l-c):c<q&&c<l&&(c=Math.min(q,l),v=2*l-c);E.rightContX=u;E.rightContY=c}E=["C",B(t.rightContX,t.plotX),B(t.rightContY,t.plotY),B(n,f),B(v,l),f,l];t.rightContX=t.rightContY=null;return E}})})(K);(function(a){var B=a.seriesTypes.area.prototype,
668H=a.seriesType;H("areaspline","spline",a.defaultPlotOptions.area,{getStackPoints:B.getStackPoints,getGraphPath:B.getGraphPath,drawGraph:B.drawGraph,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})})(K);(function(a){var B=a.animObject,H=a.color,E=a.each,q=a.extend,f=a.isNumber,l=a.merge,t=a.pick,n=a.Series,v=a.seriesType,u=a.svg;v("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1},
669select:{color:"#cccccc",borderColor:"#000000"}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){n.prototype.init.apply(this,arguments);var a=this,b=a.chart;b.hasRendered&&E(b.series,function(b){b.type===a.type&&(b.isDirty=!0)})},getColumnMetrics:function(){var a=this,b=a.options,f=a.xAxis,
670d=a.yAxis,h=f.reversed,k,e={},l=0;!1===b.grouping?l=1:E(a.chart.series,function(b){var c=b.options,h=b.yAxis,f;b.type!==a.type||!b.visible&&a.chart.options.chart.ignoreHiddenSeries||d.len!==h.len||d.pos!==h.pos||(c.stacking?(k=b.stackKey,void 0===e[k]&&(e[k]=l++),f=e[k]):!1!==c.grouping&&(f=l++),b.columnIndex=f)});var n=Math.min(Math.abs(f.transA)*(f.ordinalSlope||b.pointRange||f.closestPointRange||f.tickInterval||1),f.len),q=n*b.groupPadding,z=(n-2*q)/(l||1),b=Math.min(b.maxPointWidth||f.len,t(b.pointWidth,
671z*(1-2*b.pointPadding)));a.columnMetrics={width:b,offset:(z-b)/2+(q+((a.columnIndex||0)+(h?1:0))*z-n/2)*(h?-1:1)};return a.columnMetrics},crispCol:function(a,b,f,d){var c=this.chart,k=this.borderWidth,e=-(k%2?.5:0),k=k%2?.5:1;c.inverted&&c.renderer.isVML&&(k+=1);this.options.crisp&&(f=Math.round(a+f)+e,a=Math.round(a)+e,f-=a);d=Math.round(b+d)+k;e=.5>=Math.abs(b)&&.5<d;b=Math.round(b)+k;d-=b;e&&d&&(--b,d+=1);return{x:a,y:b,width:f,height:d}},translate:function(){var a=this,b=a.chart,f=a.options,d=
672a.dense=2>a.closestPointRange*a.xAxis.transA,d=a.borderWidth=t(f.borderWidth,d?0:1),h=a.yAxis,k=f.threshold,e=a.translatedThreshold=h.getThreshold(k),l=t(f.minPointLength,5),r=a.getColumnMetrics(),q=r.width,z=a.barW=Math.max(q,1+2*d),u=a.pointXOffset=r.offset;b.inverted&&(e-=.5);f.pointPadding&&(z=Math.ceil(z));n.prototype.translate.apply(a);E(a.points,function(c){var d=t(c.yBottom,e),f=999+Math.abs(d),f=Math.min(Math.max(-f,c.plotY),h.len+f),p=c.plotX+u,m=z,n=Math.min(f,d),r,g=Math.max(f,d)-n;l&&
673Math.abs(g)<l&&(g=l,r=!h.reversed&&!c.negative||h.reversed&&c.negative,c.y===k&&a.dataMax<=k&&h.min<k&&(r=!r),n=Math.abs(n-e)>l?d-l:e-(r?l:0));c.barX=p;c.pointWidth=q;c.tooltipPos=b.inverted?[h.len+h.pos-b.plotLeft-f,a.xAxis.len-p-m/2,g]:[p+m/2,f+h.pos-b.plotTop,g];c.shapeType="rect";c.shapeArgs=a.crispCol.apply(a,c.isNull?[p,e,m,0]:[p,n,m,g])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},
674pointAttribs:function(a,b){var c=this.options,d,h=this.pointAttrToOptions||{};d=h.stroke||"borderColor";var f=h["stroke-width"]||"borderWidth",e=a&&a.color||this.color,p=a&&a[d]||c[d]||this.color||e,n=a&&a[f]||c[f]||this[f]||0,h=c.dashStyle;a&&this.zones.length&&(e=a.getZone(),e=a.options.color||e&&e.color||this.color);b&&(a=l(c.states[b],a.options.states&&a.options.states[b]||{}),b=a.brightness,e=a.color||void 0!==b&&H(e).brighten(a.brightness).get()||e,p=a[d]||p,n=a[f]||n,h=a.dashStyle||h);d={fill:e,
675stroke:p,"stroke-width":n};
675h&&(d.dashstyle=h);return d},drawPoints:function(){var a=this,b=this.chart,m=a.options,d=b.renderer,h=m.animationLimit||250,k;E(a.points,function(c){var e=c.graphic;if(f(c.plotY)&&null!==c.y){k=c.shapeArgs;if(e)e[b.pointCount<h?"animate":"attr"](l(k));else c.graphic=e=d[c.shapeType](k).add(c.group||a.group);m.borderRadius&&e.attr({r:m.borderRadius});e.attr(a.pointAttribs(c,c.selected&&"select")).shadow(m.shadow,null,m.stacking&&!m.borderRadius);e.addClass(c.getClassName(),
676!0)}else e&&(c.graphic=e.destroy())})},animate:function(a){var b=this,c=this.yAxis,d=b.options,h=this.chart.inverted,f={},e=h?"translateX":"translateY",l;u&&(a?(f.scaleY=.001,a=Math.min(c.pos+c.len,Math.max(c.pos,c.toPixels(d.threshold))),h?f.translateX=a-c.len:f.translateY=a,b.group.attr(f)):(l=b.group.attr(e),b.group.animate({scaleY:1},q(B(b.options.animation),{step:function(a,d){f[e]=l+d.pos*(c.pos-l);b.group.attr(f)}})),b.animate=null))},remove:function(){var a=this,b=a.chart;b.hasRendered&&E(b.series,
677function(b){b.type===a.type&&(b.isDirty=!0)});n.prototype.remove.apply(a,arguments)}})})(K);(function(a){a=a.seriesType;a("bar","column",null,{inverted:!0})})(K);(function(a){var B=a.Series;a=a.seriesType;a("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cspan style\x3d"font-size: 0.85em"\x3e {series.name}\x3c/span\x3e\x3cbr/\x3e',pointFormat:"x: \x3cb\x3e{point.x}\x3c/b\x3e\x3cbr/\x3ey: \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e"}},
678{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&B.prototype.drawGraph.call(this)}})})(K);(function(a){var B=a.deg2rad,H=a.isNumber,E=a.pick,q=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var a=this.options,l=this.chart,t=2*(a.slicedOffset||0),n=l.plotWidth-2*t,l=l.plotHeight-2*t,v=a.center,v=[E(v[0],"50%"),E(v[1],"50%"),a.size||"100%",a.innerSize||0],u=Math.min(n,
679l),c,b;for(c=0;4>c;++c)b=v[c],a=2>c||2===c&&/%$/.test(b),v[c]=q(b,[n,l,u,v[2]][c])+(a?t:0);v[3]>v[2]&&(v[3]=v[2]);return v},getStartAndEndRadians:function(a,l){a=H(a)?a:0;l=H(l)&&l>a&&360>l-a?l:a+360;return{start:B*(a+-90),end:B*(l+-90)}}}})(K);(function(a){var B=a.addEvent,H=a.CenteredSeriesMixin,E=a.defined,q=a.each,f=a.extend,l=H.getStartAndEndRadians,t=a.inArray,n=a.noop,v=a.pick,u=a.Point,c=a.Series,b=a.seriesType,m=a.setAnimation;b("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,
680enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var b=this,
681c=b.points,d=b.startAngleRad;a||(q(c,function(a){var c=a.graphic,e=a.shapeArgs;c&&(c.attr({r:a.startR||b.center[3]/2,start:d,end:d}),c.animate({r:e.r,start:e.start,end:e.end},b.options.animation))}),b.animate=null)},updateTotals:function(){var a,b=0,c=this.points,e=c.length,f,l=this.options.ignoreHiddenPoint;for(a=0;a<e;a++)f=c[a],b+=l&&!f.visible?0:f.isNull?0:f.y;this.total=b;for(a=0;a<e;a++)f=c[a],f.percentage=0<b&&(f.visible||!l)?f.y/b*100:0,f.total=b},generatePoints:function(){c.prototype.generatePoints.call(this);
682this.updateTotals()},translate:function(a){this.generatePoints();var b=0,c=this.options,e=c.slicedOffset,d=e+(c.borderWidth||0),f,m,n,q=l(c.startAngle,c.endAngle),t=this.startAngleRad=q.start,q=(this.endAngleRad=q.end)-t,u=this.points,x,F=c.dataLabels.distance,c=c.ignoreHiddenPoint,A,B=u.length,G;a||(this.center=a=this.getCenter());this.getX=function(b,c,e){n=Math.asin(Math.min((b-a[1])/(a[2]/2+e.labelDistance),1));return a[0]+(c?-1:1)*Math.cos(n)*(a[2]/2+e.labelDistance)};for(A=0;A<B;A++){G=u[A];
683G.labelDistance=v(G.options.dataLabels&&G.options.dataLabels.distance,F);this.maxLabelDistance=Math.max(this.maxLabelDistance||0,G.labelDistance);f=t+b*q;if(!c||G.visible)b+=G.percentage/100;m=t+b*q;G.shapeType="arc";G.shapeArgs={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1E3*f)/1E3,end:Math.round(1E3*m)/1E3};n=(m+f)/2;n>1.5*Math.PI?n-=2*Math.PI:n<-Math.PI/2&&(n+=2*Math.PI);G.slicedTranslation={translateX:Math.round(Math.cos(n)*e),translateY:Math.round(Math.sin(n)*e)};m=Math.cos(n)*a[2]/
6842;x=Math.sin(n)*a[2]/2;G.tooltipPos=[a[0]+.7*m,a[1]+.7*x];G.half=n<-Math.PI/2||n>Math.PI/2?1:0;G.angle=n;
684f=Math.min(d,G.labelDistance/5);G.labelPos=[a[0]+m+Math.cos(n)*G.labelDistance,a[1]+x+Math.sin(n)*G.labelDistance,a[0]+m+Math.cos(n)*f,a[1]+x+Math.sin(n)*f,a[0]+m,a[1]+x,0>G.labelDistance?"center":G.half?"right":"left",n]}},drawGraph:null,drawPoints:function(){var a=this,b=a.chart.renderer,c,e,l,m,n=a.options.shadow;n&&!a.shadowGroup&&(a.shadowGroup=b.g("shadow").add(a.group));q(a.points,function(d){e=
685d.graphic;if(d.isNull)e&&(d.graphic=e.destroy());else{m=d.shapeArgs;c=d.getTranslate();var h=d.shadowGroup;n&&!h&&(h=d.shadowGroup=b.g("shadow").add(a.shadowGroup));h&&h.attr(c);l=a.pointAttribs(d,d.selected&&"select");e?e.setRadialReference(a.center).attr(l).animate(f(m,c)):(d.graphic=e=b[d.shapeType](m).setRadialReference(a.center).attr(c).add(a.group),d.visible||e.attr({visibility:"hidden"}),e.attr(l).attr({"stroke-linejoin":"round"}).shadow(n,h));e.addClass(d.getClassName())}})},searchPoint:n,
686sortByAngle:function(a,b){a.sort(function(a,c){return void 0!==a.angle&&(c.angle-a.angle)*b})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:H.getCenter,getSymbol:n},{init:function(){u.prototype.init.apply(this,arguments);var a=this,b;a.name=v(a.name,"Slice");b=function(b){a.slice("select"===b.type)};B(a,"select",b);B(a,"unselect",b);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,b){var c=this,e=c.series,d=e.chart,h=e.options.ignoreHiddenPoint;
687b=v(b,h);a!==c.visible&&(c.visible=c.options.visible=a=void 0===a?!c.visible:a,e.options.data[t(c,e.data)]=c.options,q(["graphic","dataLabel","connector","shadowGroup"],function(b){if(c[b])c[b][a?"show":"hide"](!0)}),c.legendItem&&d.legend.colorizeItem(c,a),a||"hover"!==c.state||c.setState(""),h&&(e.isDirty=!0),b&&d.redraw())},slice:function(a,b,c){var e=this.series;m(c,e.chart);v(b,!0);this.sliced=this.options.sliced=E(a)?a:!this.sliced;e.options.data[t(this,e.data)]=this.options;this.graphic.animate(this.getTranslate());
688this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var b=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(b.x,b.y,b.r+a,b.r+a,{innerR:this.shapeArgs.r-1,start:b.start,end:b.end})}})})(K);(function(a){var B=a.addEvent,H=a.arrayMax,E=a.defined,q=a.each,f=a.extend,l=a.format,t=a.map,n=a.merge,v=a.noop,u=a.pick,c=a.relativeLength,b=
689a.Series,m=a.seriesTypes,d=a.stableSort;a.distribute=function(a,b){function c(a,b){return a.target-b.target}var f,h=!0,k=a,l=[],m;m=0;for(f=a.length;f--;)m+=a[f].size;if(m>b){d(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(m=f=0;m<=b;)m+=a[f].size,f++;l=a.splice(f-1,a.length)}d(a,c);for(a=t(a,function(a){return{size:a.size,targets:[a.target],align:u(a.align,.5)}});h;){for(f=a.length;f--;)h=a[f],m=(Math.min.apply(0,h.targets)+Math.max.apply(0,h.targets))/2,h.pos=Math.min(Math.max(0,m-h.size*
690h.align),b-h.size);f=a.length;for(h=!1;f--;)0<f&&a[f-1].pos+a[f-1].size>a[f].pos&&(a[f-1].size+=a[f].size,a[f-1].targets=a[f-1].targets.concat(a[f].targets),a[f-1].align=.5,a[f-1].pos+a[f-1].size>b&&(a[f-1].pos=b-a[f-1].size),a.splice(f,1),h=!0)}f=0;q(a,function(a){var b=0;q(a.targets,function(){k[f].pos=a.pos+b;b+=k[f].size;f++})});k.push.apply(k,l);d(k,c)};b.prototype.drawDataLabels=function(){function b(a,b){var c=b.filter;return c?(b=c.operator,a=a[c.property],c=c.value,"\x3e"===b&&a>c||"\x3c"===
691b&&a<c||"\x3e\x3d"===b&&a>=c||"\x3c\x3d"===b&&a<=c||"\x3d\x3d"===b&&a==c||"\x3d\x3d\x3d"===b&&a===c?!0:!1):!0}var c=this,e=c.chart,d=c.options,f=d.dataLabels,m=c.points,z,t,v=c.hasRendered||0,C,x,F=u(f.defer,!!d.animation),A=e.renderer;if(f.enabled||c._hasPointLabels)c.dlProcessOptions&&c.dlProcessOptions(f),x=c.plotGroup("dataLabelsGroup","data-labels",F&&!v?"hidden":"visible",f.zIndex||6),F&&(x.attr({opacity:+v}),v||B(c,"afterAnimate",function(){c.visible&&x.show(!0);x[d.animation?"animate":"attr"]({opacity:1},
692{duration:200})})),t=f,q(m,function(h){var k,g=h.dataLabel,m,p,q=h.connector,r=!g,v;z=h.dlOptions||h.options&&h.options.dataLabels;(k=u(z&&z.enabled,t.enabled)&&!h.isNull)&&(k=!0===b(h,z||f));k&&(f=n(t,z),m=h.getLabelConfig(),v=f[h.formatPrefix+"Format"]||f.format,C=E(v)?l(v,m,e.time):(f[h.formatPrefix+"Formatter"]||f.formatter).call(m,f),v=f.style,m=f.rotation,v.color=u(f.color,v.color,c.color,"#000000"),"contrast"===v.color&&(h.c
692ontrastColor=A.getContrast(h.color||c.color),v.color=f.inside||0>u(h.labelDistance,
693f.distance)||d.stacking?h.contrastColor:"#000000"),d.cursor&&(v.cursor=d.cursor),p={fill:f.backgroundColor,stroke:f.borderColor,"stroke-width":f.borderWidth,r:f.borderRadius||0,rotation:m,padding:f.padding,zIndex:1},a.objectEach(p,function(a,b){void 0===a&&delete p[b]}));!g||k&&E(C)?k&&E(C)&&(g?p.text=C:(g=h.dataLabel=m?A.text(C,0,-9999).addClass("highcharts-data-label"):A.label(C,0,-9999,f.shape,null,null,f.useHTML,null,"data-label"),g.addClass(" highcharts-data-label-color-"+h.colorIndex+" "+(f.className||
694"")+(f.useHTML?"highcharts-tracker":""))),g.attr(p),g.css(v).shadow(f.shadow),g.added||g.add(x),c.alignDataLabel(h,g,f,null,r)):(h.dataLabel=g=g.destroy(),q&&(h.connector=q.destroy()))});a.fireEvent(this,"afterDrawDataLabels")};b.prototype.alignDataLabel=function(a,b,c,d,l){var e=this.chart,h=e.inverted,k=u(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),m=u(a.plotY,-9999),n=b.getBBox(),p,q=c.rotation,r=c.align,t=this.visible&&(a.series.forceDL||e.isInsidePlot(k,Math.round(m),h)||d&&e.isInsidePlot(k,h?d.x+
6951:d.y+d.height-1,h)),v="justify"===u(c.overflow,"justify");if(t&&(p=c.style.fontSize,p=e.renderer.fontMetrics(p,b).b,d=f({x:h?this.yAxis.len-m:k,y:Math.round(h?this.xAxis.len-k:m),width:0,height:0},d),f(c,{width:n.width,height:n.height}),q?(v=!1,k=e.renderer.rotCorr(p,q),k={x:d.x+c.x+d.width/2+k.x,y:d.y+c.y+{top:0,middle:.5,bottom:1}[c.verticalAlign]*d.height},b[l?"attr":"animate"](k).attr({align:r}),m=(q+720)%360,m=180<m&&360>m,"left"===r?k.y-=m?n.height:0:"center"===r?(k.x-=n.width/2,k.y-=n.height/
6962):"right"===r&&(k.x-=n.width,k.y-=m?0:n.height)):(b.align(c,null,d),k=b.alignAttr),v?a.isLabelJustified=this.justifyDataLabel(b,c,k,n,d,l):u(c.crop,!0)&&(t=e.isInsidePlot(k.x,k.y)&&e.isInsidePlot(k.x+n.width,k.y+n.height)),c.shape&&!q))b[l?"attr":"animate"]({anchorX:h?e.plotWidth-a.plotY:a.plotX,anchorY:h?e.plotHeight-a.plotX:a.plotY});t||(b.attr({y:-9999}),b.placed=!1)};b.prototype.justifyDataLabel=function(a,b,c,d,f,l){var e=this.chart,h=b.align,k=b.verticalAlign,m,n,p=a.box?0:a.padding||0;m=c.x+
697p;0>m&&("right"===h?b.align="left":b.x=-m,n=!0);m=c.x+d.width-p;m>e.plotWidth&&("left"===h?b.align="right":b.x=e.plotWidth-m,n=!0);m=c.y+p;0>m&&("bottom"===k?b.verticalAlign="top":b.y=-m,n=!0);m=c.y+d.height-p;m>e.plotHeight&&("top"===k?b.verticalAlign="bottom":b.y=e.plotHeight-m,n=!0);n&&(a.placed=!l,a.align(b,null,f));return n};m.pie&&(m.pie.prototype.drawDataLabels=function(){var c=this,d=c.data,e,f=c.chart,l=c.options.dataLabels,m=u(l.connectorPadding,10),n=u(l.connectorWidth,1),t=f.plotWidth,
698v=f.plotHeight,C,x=c.center,F=x[2]/2,A=x[1],B,G,g,w,L=[[],[]],P,N,O,K,y=[0,0,0,0];c.visible&&(l.enabled||c._hasPointLabels)&&(q(d,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),b.prototype.drawDataLabels.apply(c),q(d,function(a){a.dataLabel&&a.visible&&(L[a.half].push(a),a.dataLabel._pos=null)}),q(L,function(b,d){var h,k,n=b.length,p=[],r;if(n)for(c.sortByAngle(b,d-.5),0<c.maxLabelDistance&&
699(h=Math.max(0,A-F-c.maxLabelDistance),k=Math.min(A+F+c.maxLabelDistance,f.plotHeight),q(b,function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,A-F-a.labelDistance),a.bottom=Math.min(A+F+a.labelDistance,f.plotHeight),r=a.dataLabel.getBBox().height||21,a.positionsIndex=p.push({target:a.labelPos[1]-a.top+r/2,size:r,rank:a.y})-1)}),a.distribute(p,k+r-h)),K=0;K<n;K++)e=b[K],k=e.positionsIndex,g=e.labelPos,B=e.dataLabel,O=!1===e.visible?"hidden":"inherit",N=h=g[1],p&&E(p[k])&&(void 0===p[k].pos?
700O="hidden":(w=p[k].size,N=e.top+p[k].pos)),delete e.positionIndex,P=l.justify?x[0]+(d?-1:1)*(F+e.labelDistance):c.getX(N<e.top+2||N>e.bottom-2?h:N,d,e),B._attr={visibility:O,align:g[6]},B._pos={x:P+l.x+({left:m,right:-m}[g[6]]||0),y:N+l.y-10},g.x=P,g.y=N,u(l.crop,!0)&&(G=B.getBBox().width,h=null,P-G<m?(h=Math.round(G-P+m),y[3]=Math.max(h,y[3])):P+G>t-m&&(h=Math.round(P+G-t+m),y[1]=Math.max(h,y[1])),0>N-w/2?y[0]=Math.max(Math.round(-N+w/2),y[0]):N+w/2>v&&(y[2]=Math.max(Math.round(N+w/2-v),y[2])),B.sideOverflow=
701h)}),0===H(y)||this.verifyDataLabelOverflow(y))&&(this.placeDataLabels(),n&&q(this.points,function(a){var b;
701C=a.connector;if((B=a.dataLabel)&&B._pos&&a.visible&&0<a.labelDistance){O=B._attr.visibility;if(b=!C)a.connector=C=f.renderer.path().addClass("highcharts-data-label-connector  highcharts-color-"+a.colorIndex).add(c.dataLabelsGroup),C.attr({"stroke-width":n,stroke:l.connectorColor||a.color||"#666666"});C[b?"attr":"animate"]({d:c.connectorPath(a.labelPos)});C.attr("visibility",O)}else C&&(a.connector=
702C.destroy())}))},m.pie.prototype.connectorPath=function(a){var b=a.x,c=a.y;return u(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),c,"C",b,c,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",b+("left"===a[6]?5:-5),c,"L",a[2],a[3],"L",a[4],a[5]]},m.pie.prototype.placeDataLabels=function(){q(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.sideOverflow&&(b._attr.width=b.getBBox().width-b.sideOverflow,b.css({width:b._attr.width+"px",textOverflow:"ellipsis"}),
703b.shortened=!0),b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))},this)},m.pie.prototype.alignDataLabel=v,m.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,e=this.options,d=e.center,f=e.minSize||80,h,l=null!==e.size;l||(null!==d[0]?h=Math.max(b[2]-Math.max(a[1],a[3]),f):(h=Math.max(b[2]-a[1]-a[3],f),b[0]+=(a[3]-a[1])/2),null!==d[1]?h=Math.max(Math.min(h,b[2]-Math.max(a[0],a[2])),f):(h=Math.max(Math.min(h,b[2]-a[0]-a[2]),f),b[1]+=(a[0]-a[2])/2),h<
704b[2]?(b[2]=h,b[3]=Math.min(c(e.innerSize||0,h),h),this.translate(b),this.drawDataLabels&&this.drawDataLabels()):l=!0);return l});m.column&&(m.column.prototype.alignDataLabel=function(a,c,d,f,l){var e=this.chart.inverted,h=a.series,k=a.dlBox||a.shapeArgs,m=u(a.below,a.plotY>u(this.translatedThreshold,h.yAxis.len)),p=u(d.inside,!!this.options.stacking);k&&(f=n(k),0>f.y&&(f.height+=f.y,f.y=0),k=f.y+f.height-h.yAxis.len,0<k&&(f.height-=k),e&&(f={x:h.yAxis.len-f.y-f.height,y:h.xAxis.len-f.x-f.width,width:f.height,
705height:f.width}),p||(e?(f.x+=m?0:f.width,f.width=0):(f.y+=m?f.height:0,f.height=0)));d.align=u(d.align,!e||p?"center":m?"right":"left");d.verticalAlign=u(d.verticalAlign,e||p?"middle":m?"top":"bottom");b.prototype.alignDataLabel.call(this,a,c,d,f,l);a.isLabelJustified&&a.contrastColor&&a.dataLabel.css({color:a.contrastColor})})})(K);(function(a){var B=a.Chart,H=a.each,E=a.objectEach,q=a.pick;a=a.addEvent;a(B.prototype,"render",function(){var a=[];H(this.labelCollectors||[],function(f){a=a.concat(f())});
706H(this.yAxis||[],function(f){f.options.stackLabels&&!f.options.stackLabels.allowOverlap&&E(f.stacks,function(f){E(f,function(f){a.push(f.label)})})});H(this.series||[],function(f){var l=f.options.dataLabels,n=f.dataLabelCollections||["dataLabel"];(l.enabled||f._hasPointLabels)&&!l.allowOverlap&&f.visible&&H(n,function(l){H(f.points,function(f){f[l]&&(f[l].labelrank=q(f.labelrank,f.shapeArgs&&f.shapeArgs.height),a.push(f[l]))})})});this.hideOverlappingLabels(a)});B.prototype.hideOverlappingLabels=
707function(a){var f=a.length,q,n,v,u,c,b,m,d,h,k=function(a,b,c,d,f,h,k,l){return!(f>a+c||f+k<a||h>b+d||h+l<b)};for(n=0;n<f;n++)if(q=a[n])q.oldOpacity=q.opacity,q.newOpacity=1,q.width||(v=q.getBBox(),q.width=v.width,q.height=v.height);a.sort(function(a,b){return(b.labelrank||0)-(a.labelrank||0)});for(n=0;n<f;n++)for(v=a[n],q=n+1;q<f;++q)if(u=a[q],v&&u&&v!==u&&v.placed&&u.placed&&0!==v.newOpacity&&0!==u.newOpacity&&(c=v.alignAttr,b=u.alignAttr,m=v.parentGroup,d=u.parentGroup,h=2*(v.box?0:v.padding||
7080),c=k(c.x+m.translateX,c.y+m.translateY,v.width-h,v.height-h,b.x+d.translateX,b.y+d.translateY,u.width-h,u.height-h)))(v.labelrank<u.labelrank?v:u).newOpacity=0;H(a,function(a){var b,c;a&&(c=a.newOpacity,a.oldOpacity!==c&&a.placed&&(c?a.show(!0):b=function(){a.hide()},a.alignAttr.opacity=c,a[a.isOld?"animate":"attr"](a.alignAttr,null,b)),a.isOld=!0)})}})(K);(function(a){var B=a.addEvent,H=a.Chart,E=a.createElement,q=a.css,f=a.defaultOptions,l=a.defaultPlotOptions,t=a.each,n=a.extend,v=a.fireEvent,
709u=a.hasTouch,c=a.inArray,b=a.isObject,m=a.Legend,d=a.merge,h=a.pick,k=a.Point,e=a.Series,p=a.seriesTypes,r=a.svg,I;I=a.TrackerMixin={drawTrackerPoint:function(){var a=this,b=a.chart.pointer,c=function(a){var c=b.getPointFromEvent(a);void 0!==c&&(b.isDirectTouch=!0,c.onMouseOver(a))};t(a.points,function(a){a.graphic&&(a.graphic.element.point=a);a.dataLabel&&(a.dataLabel.div?a.dataLabel.div.point=a:a.dataLabel.element.point=a)});a._hasTracking||(t(a.trackerGroups,function(d){if(a[d]){a[d].addClass("highcharts-tracker").on("mouseover",
710c).on("mouseout",function(a){b.onTrackerMouseOut(a)});if(u)a[d].on("touchstart",c);a.options.cursor&&a[d].css(q).css({cursor:a.options.cursor})}}),a._hasTracking=!0);v(this,"afterDrawTracker")},drawTrackerGraph:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,h=f.pointer,k=f.renderer,l=f.options.tooltip.snap,g=a.tracker,m,n=function(){if(f.hoverSeries!==a)a.onMouseOver()},p="rgba(192,192,192,"+(r?.0001:.002)+")";if(e&&!c)for(m=e+1;m--;)"M"===
711d[m]&&d.splice(m+1,0,d[m+1]-l,d[m+2],"L"),(m&&"M"===d[m]||m===e)&&d.splice(m,0,"L",d[m-2]+l,d[m-1]);g?g.attr({d:d}):a.graph&&(a.tracker=k.path(d).attr({"stroke-linejoin":"round",visibility:a.visible?"visible":"hidden",stroke:p,fill:c?p:"none","stroke-width":a.graph.strokeWidth()+(c?0:2*l),zIndex:2}).add(a.group),t([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",n).on("mouseout",function(a){h.onTrackerMouseOut(a)});b.cursor&&a.css({cursor:b.cursor});if(u)a.on("touchstart",
712n)}));v(this,"afterDrawTracker")}};p.column&&(p.column.prototype.drawTracker=I.drawTrackerPoint);p.pie&&(p.pie.prototype.drawTracker=I.drawTrackerPoint);p.scatter&&(p.scatter.prototype.drawTracker=I.drawTrackerPoint);n(m.prototype,{setItemEvents:function(a,b,c){var e=this,f=e.chart.renderer.boxWrapper,h="highcharts-legend-"+(a instanceof k?"point":"series")+"-active";(c?b:a.legendGroup).on("mouseover",function(){a.setState("hover");f.addClass(h);b.css(e.options.itemHoverStyle)}
712).on("mouseout",function(){b.css(d(a.visible?
713e.itemStyle:e.itemHiddenStyle));f.removeClass(h);a.setState()}).on("click",function(b){var c=function(){a.setVisible&&a.setVisible()};f.removeClass(h);b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):v(a,"legendItemClick",b,c)})},createCheckboxForItem:function(a){a.checkbox=E("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);B(a.checkbox,"click",function(b){v(a.series||a,"checkboxClick",{checked:b.target.checked,
714item:a},function(){a.select()})})}});f.legend.itemStyle.cursor="pointer";n(H.prototype,{showResetZoom:function(){function a(){b.zoomOut()}var b=this,c=f.lang,d=b.options.chart.resetZoomButton,e=d.theme,h=e.states,k="chart"===d.relativeTo?null:"plotBox";v(this,"beforeShowResetZoom",null,function(){b.resetZoomButton=b.renderer.button(c.resetZoom,null,null,a,e,h&&h.hover).attr({align:d.position.align,title:c.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(d.position,!1,k)})},zoomOut:function(){var a=
715this;v(a,"selection",{resetSelection:!0}
715,function(){a.zoom()})},zoom:function(a){var c,d=this.pointer,e=!1,f;!a||a.resetSelection?(t(this.axes,function(a){c=a.zoom()}),d.initiated=!1):t(a.xAxis.concat(a.yAxis),function(a){var b=a.axis;d[b.isXAxis?"zoomX":"zoomY"]&&(c=b.zoom(a.min,a.max),b.displayBtn&&(e=!0))});f=this.resetZoomButton;e&&!f?this.showResetZoom():!e&&b(f)&&(this.resetZoomButton=f.destroy());c&&this.redraw(h(this.options.chart.animation,a&&a.animation,100>this.pointCount))},pan:function(a,
716b){var c=this,d=c.hoverPoints,e;d&&t(d,function(a){a.setState()});t("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",h=c[d],g=(b.pointRange||0)/2,k=b.getExtremes(),l=b.toValue(h-f,!0)+g,m=b.toValue(h+b.len-f,!0)-g,n=m<l,h=n?m:l,l=n?l:m,m=Math.min(k.dataMin,g?k.min:b.toValue(b.toPixels(k.min)-b.minPixelPadding)),g=Math.max(k.dataMax,g?k.max:b.toValue(b.toPixels(k.max)+b.minPixelPadding)),n=m-h;0<n&&(l+=n,h=m);n=l-g;0<n&&(l=
717g,h-=n);b.series.length&&h!==k.min&&l!==k.max&&(b.setExtremes(h,l,!1,!1,{trigger:"pan"}),e=!0);c[d]=f});e&&c.redraw(!1);q(c.container,{cursor:"move"})}});n(k.prototype,{select:function(a,b){var d=this,e=d.series,f=e.chart;a=h(a,!d.selected);d.firePointEvent(a?"select":"unselect",{accumulate:b},function(){d.selected=d.options.selected=a;e.options.data[c(d,e.data)]=d.options;d.setState(a&&"select");b||t(f.getSelectedPoints(),function(a){a.selected&&a!==d&&(a.selected=a.options.selected=!1,e.options.data[c(a,
718e.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})},onMouseOver:function(a){var b=this.series.chart,c=b.pointer;a=a?c.normalize(a):c.getChartCoordinatesFromPoint(this,b.inverted);c.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent("mouseOut");t(a.hoverPoints||[],function(a){a.setState()});a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var b=this,c=d(b.series.options.point,b.options).events;b.events=c;a.objectEach(c,
719function(a,c){B(b,c,a)});this.hasImportedEvents=!0}},setState:function(a,b){var c=Math.floor(this.plotX),d=this.plotY,e=this.series,f=e.options.states[a||"normal"]||{},k=l[e.type].marker&&e.options.marker,m=k&&!1===k.enabled,p=k&&k.states&&k.states[a||"normal"]||{},g=!1===p.enabled,q=e.stateMarkerGraphic,r=this.marker||{},t=e.chart,u=e.halo,z,B=k&&e.markerAttribs;a=a||"";if(!(a===this.state&&!b||this.selected&&"select"!==a||!1===f.enabled||a&&(g||m&&!1===p.enabled)||a&&r.states&&r.states[a]&&!1===
720r.states[a].enabled)){B&&(z=e.markerAttribs(this,a));if(this.graphic)this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),this.graphic.animate(e.pointAttribs(this,a),h(t.options.chart.animation,f.animation)),z&&this.graphic.animate(z,h(t.options.chart.animation,p.animation,k.animation)),q&&q.hide();else{if(a&&p){k=r.symbol||e.symbol;q&&q.currentSymbol!==k&&(q=q.destroy());if(q)q[b?"animate":"attr"]({x:z.x,y:z.y});else k&&(e.stateMarkerGraphic=
721q=t.renderer.symbol(k,z.x,z.y,z.width,z.height).add(e.markerGroup),q.currentSymbol=k);q&&q.attr(e.pointAttribs(this,a))}q&&(q[a&&t.isInsidePlot(c,d,t.inverted)?"show":"hide"](),q.element.point=this)}(c=f.halo)&&c.size?(u||(e.halo=u=t.renderer.path().add((this.graphic||q).parentGroup)),u.show()[b?"animate":"attr"]({d:this.haloPath(c.size)}),u.attr({"class":"highcharts-halo highcharts-color-"+h(this.colorIndex,e.colorIndex)}),u.point=this,u.attr(n({fill:this.color||e.color,"fill-opacity":c.opacity,
722zIndex:-1},c.attributes))):u&&u.point&&u.point.haloPath&&u.animate({d:u.point.haloPath(0)},null,u.hide);this.state=a;v(this,"afterSetState")}},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}});n(e.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&v(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=
723this.chart,c=b.tooltip,d=b.hoverPoint;b.hoverSeries=null;if(d)d.onMouseOut();this&&a.events.mouseOut&&v(this,"mouseOut");!c||this.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide();this.setState()},setState:function(a){var b=this,c=b.options,d=b.graph,e=c.states,f=c.lineWidth,c=0;a=a||"";if(b.state!==a&&(t([b.group,b.markerGroup,b.dataLabelsGroup],function(c){c&&(b.state&&c.removeClass("highcharts-series-"+b.state),a&&c.addClass("highcharts-series-"+a))}),b.state=a,!e[a]||!1!==e[a].enabled)&&
724(a&&(f=e[a].lineWidth||f+(e[a].lineWidthPlus||0)),d&&!d.dashstyle))for(f={"stroke-width":f},d.animate(f,h(e[a||"normal"]&&e[a||"normal"].animation,b.chart.options.chart.animation));b["zone-graph-"+c];)b["zone-graph-"+c].attr(f),c+=1},setVisible:function(a,b){var c=this,d=c.chart,e=c.legendItem,f,h=d.options.chart.ignoreHiddenSeries,k=c.visible;f=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!k:a)?"show":"hide";t(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(a){if
724(c[a])c[a][f]()});
725if(d.hoverSeries===c||(d.hoverPoint&&d.hoverPoint.series)===c)c.onMouseOut();e&&d.legend.colorizeItem(c,a);c.isDirty=!0;c.options.stacking&&t(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)});t(c.linkedSeries,function(b){b.setVisible(a,!1)});h&&(d.isDirtyBox=!0);!1!==b&&d.redraw();v(c,f)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=void 0===a?!this.selected:a;this.checkbox&&(this.checkbox.checked=a);v(this,a?"select":
726"unselect")},drawTracker:I.drawTrackerGraph})})(K);(function(a){var B=a.Chart,H=a.each,E=a.inArray,q=a.isArray,f=a.isObject,l=a.pick,t=a.splat;B.prototype.setResponsive=function(f){var l=this.options.responsive,n=[],c=this.currentResponsive;l&&l.rules&&H(l.rules,function(b){void 0===b._id&&(b._id=a.uniqueKey());this.matchResponsiveRule(b,n,f)},this);var b=a.merge.apply(0,a.map(n,function(b){return a.find(l.rules,function(a){return a._id===b}).chartOptions})),n=n.toString()||void 0;n!==(c&&c.ruleIds)&&
727(c&&this.update(c.undoOptions,f),n?(this.currentResponsive={ruleIds:n,mergedOptions:b,undoOptions:this.currentOptions(b)},this.update(b,f)):this.currentResponsive=void 0)};B.prototype.matchResponsiveRule=function(a,f){var n=a.condition;(n.callback||function(){return this.chartWidth<=l(n.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=l(n.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=l(n.minWidth,0)&&this.chartHeight>=l(n.minHeight,0)}).call(this)&&f.push(a._id)};B.prototype.currentOptions=function(l){function n(c,
728b,l,d){var h;a.objectEach(c,function(a,c){if(!d&&-1<E(c,["series","xAxis","yAxis"]))for(a=t(a),l[c]=[],h=0;h<a.length;h++)b[c][h]&&(l[c][h]={},n(a[h],b[c][h],l[c][h],d+1));else f(a)?(l[c]=q(a)?[]:{},n(a,b[c]||{},l[c],d+1)):l[c]=b[c]||null})}var u={};n(l,this.options,u,0);return u}})(K);return K});
729/*
730 Highmaps JS v6.0.7 (2018-02-16)
731 Highmaps as a plugin for Highcharts or Highstock.
732
733 (c) 2011-2017 Torstein Honsi
734
735 License: www.highcharts.com/license
736*/
737(function(w){"object"===typeof module&&module.exports?module.exports=w:w(Highcharts)})(function(w){(function(a){var h=a.Axis,q=a.each,g=a.pick;a=a.wrap;a(h.prototype,"getSeriesExtremes",function(a){var e=this.isXAxis,x,t,h=[],f;e&&q(this.series,function(a,b){a.useMapGeometry&&(h[b]=a.xData,a.xData=[])});a.call(this);e&&(x=g(this.dataMin,Number.MAX_VALUE),t=g(this.dataMax,-Number.MAX_VALUE),q(this.series,function(a,b){a.useMapGeometry&&(x=Math.min(x,g(a.minX,x)),t=Math.max(t,g(a.maxX,t)),a.xData=h[b],
738f=!0)}),f&&(this.dataMin=x,this.dataMax=t))});a(h.prototype,"setAxisTranslation",function(a){var l=this.chart,e=l.plotWidth/l.plotHeight,l=l.xAxis[0],g;a.call(this);"yAxis"===this.coll&&void 0!==l.transA&&q(this.series,function(a){a.preserveAspectRatio&&(g=!0)});if(g&&(this.transA=l.transA=Math.min(this.transA,l.transA),a=e/((l.max-l.min)/(this.max-this.min)),a=1>a?this:l,e=(a.max-a.min)*a.transA,a.pixelPadding=a.len-e,a.minPixelPadding=a.pixelPadding/2,e=a.fixTo)){e=e[1]-a.toValue(e[0],!0);e*=a.transA;
739if(Math.abs(e)>a.minPixelPadding||a.min===a.dataMin&&a.max===a.dataMax)e=0;a.minPixelPadding-=e}});a(h.prototype,"render",function(a){a.call(this);this.fixTo=null})})(w);(function(a){var h=a.Axis,q=a.Chart,g=a.color,e,l=a.each,x=a.extend,t=a.isNumber,u=a.Legend,f=a.LegendSymbolMixin,c=a.noop,b=a.merge,n=a.pick,r=a.wrap;a.ColorAxis||(e=a.ColorAxis=function(){this.init.apply(this,arguments)},x(e.prototype,h.prototype),x(e.prototype,{defaultColorAxisOptions:{lineWidth:0,minPadding:0,maxPadding:0,gridLineWidth:1,
740tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{overflow:"justify",rotation:0},minColor:"#e6ebf5",maxColor:"#003399",tickLength:5,showInLegend:!0},keepProps:["legendGroup","legendItemHeight","legendItemWidth","legendItem","legendSymbol"].concat(h.prototype.keepProps),init:function(a,m){var d="vertical"!==a.options.legend.layout,k;this.coll="colorAxis";k=b(this.defaultColorAxisOptions,{side:d?2:1,reversed:!d},m,{opposite:!d,
741showEmpty:!1,title:null,visible:a.options.legend.enabled});h.prototype.init.call(this,a,k);m.dataClasses&&this.initDataClasses(m);this.initStops();this.horiz=d;this.zoomEnabled=!1;this.defaultLegendLength=200},initDataClasses:function(a){var k=this.chart,d,p=0,v=k.options.chart.colorCount,c=this.options,f=a.dataClasses.length;this.dataClasses=d=[];this.legendItems=[];l(a.dataClasses,function(a,m){a=b(a);d.push(a);a.color||("category"===c.dataClassColor?(m=k.options.colors,v=m.length,a.color=m[p],
742a.colorIndex=p,p++,p===v&&(p=0)):a.color=g(c.minColor).tweenTo(g(c.maxColor),2>f?.5:m/(f-1)))})},setTickPositions:function(){if(!this.dataClasses)return h.prototype.setTickPositions.call(this)},initStops:function(){this.stops=this.options.stops||[[0,this.options.minColor],[1,this.options.maxColor]];l(this.stops,function(a){a.color=g(a[1])})},setOptions:function(a){h.prototype.setOptions.call(this,a);this.options.crosshair=this.options.marker},setAxisSize:function(){var a=this.legendSymbol,m=this.chart,
743d=m.options.legend||{},p,b;a?(this.left=d=a.attr("x"),this.top=p=a.attr("y"),this.width=b=a.attr("width"),this.height=a=a.attr("height"),this.right=m.chartWidth-d-b,this.bottom=m.chartHeight-p-a,this.len=this.horiz?b:a,this.pos=this.horiz?d:p):this.len=(this.horiz?d.symbolWi
743dth:d.symbolHeight)||this.defaultLegendLength},normalizedValue:function(a){this.isLog&&(a=this.val2lin(a));return 1-(this.max-a)/(this.max-this.min||1)},toColor:function(a,m){var d=this.stops,p,k,b=this.dataClasses,c,f;if(b)for(f=
744b.length;f--;){if(c=b[f],p=c.from,d=c.to,(void 0===p||a>=p)&&(void 0===d||a<=d)){k=c.color;m&&(m.dataClass=f,m.colorIndex=c.colorIndex);break}}else{a=this.normalizedValue(a);for(f=d.length;f--&&!(a>d[f][0]););p=d[f]||d[f+1];d=d[f+1]||p;a=1-(d[0]-a)/(d[0]-p[0]||1);k=p.color.tweenTo(d.color,a)}return k},getOffset:function(){var a=this.legendGroup,b=this.chart.axisOffset[this.side];a&&(this.axisParent=a,h.prototype.getOffset.call(this),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),
745this.chart.axisOffset[this.side]=b)},setLegendColor:function(){var a,b=this.reversed;a=b?1:0;b=b?0:1;a=this.horiz?[a,0,b,0]:[0,b,0,a];this.legendColor={linearGradient:{x1:a[0],y1:a[1],x2:a[2],y2:a[3]},stops:this.stops}},drawLegendSymbol:function(a,b){var d=a.padding,p=a.options,k=this.horiz,c=n(p.symbolWidth,k?this.defaultLegendLength:12),m=n(p.symbolHeight,k?12:this.defaultLegendLength),f=n(p.labelPadding,k?16:30),p=n(p.itemDistance,10);this.setLegendColor();b.legendSymbol=this.chart.renderer.rect(0,
746a.baseline-11,c,m).attr({zIndex:1}).add(b.legendGroup);this.legendItemWidth=c+d+(k?p:f);this.legendItemHeight=m+d+(k?f:0)},setState:function(a){l(this.series,function(b){b.setState(a)})},visible:!0,setVisible:c,getSeriesExtremes:function(){var a=this.series,b=a.length;this.dataMin=Infinity;for(this.dataMax=-Infinity;b--;)void 0!==a[b].valueMin&&(this.dataMin=Math.min(this.dataMin,a[b].valueMin),this.dataMax=Math.max(this.dataMax,a[b].valueMax))},drawCrosshair:function(a,b){var d=b&&b.plotX,p=b&&b.plotY,
747c,k=this.pos,f=this.len;b&&(c=this.toPixels(b[b.series.colorKey]),c<k?c=k-2:c>k+f&&(c=k+f+2),b.plotX=c,b.plotY=this.len-c,h.prototype.drawCrosshair.call(this,a,b),b.plotX=d,b.plotY=p,this.cross&&!this.cross.addedToColorAxis&&this.legendGroup&&(this.cross.addClass("highcharts-coloraxis-marker").add(this.legendGroup),this.cross.addedToColorAxis=!0,this.cross.attr({fill:this.crosshair.color})))},getPlotLinePath:function(a,b,d,p,c){return t(c)?this.horiz?["M",c-4,this.top-6,"L",c+4,this.top-6,c,this.top,
748"Z"]:["M",this.left,c,"L",this.left-6,c+6,this.left-6,c-6,"Z"]:h.prototype.getPlotLinePath.call(this,a,b,d,p)},update:function(a,c){var d=this.chart,p=d.legend;l(this.series,function(a){a.isDirtyData=!0});a.dataClasses&&p.allItems&&(l(p.allItems,function(a){a.isDataClass&&a.legendGroup&&a.legendGroup.destroy()}),d.isDirtyLegend=!0);d.options[this.coll]=b(this.userOptions,a);h.prototype.update.call(this,a,c);this.legendItem&&(this.setLegendColor(),p.colorizeItem(this,!0))},remove:function(){this.legendItem&&
749this.chart.legend.destroyItem(this);h.prototype.remove.call(this)},getDataClassLegendSymbols:function(){var b=this,m=this.chart,d=this.legendItems,p=m.options.legend,v=p.valueDecimals,n=p.valueSuffix||"",r;d.length||l(this.dataClasses,function(p,k){var e=!0,y=p.from,g=p.to;r="";void 0===y?r="\x3c ":void 0===g&&(r="\x3e ");void 0!==y&&(r+=a.numberFormat(y,v)+n);void 0!==y&&void 0!==g&&(r+=" - ");void 0!==g&&(r+=a.numberFormat(g,v)+n);d.push(x({chart:m,name:r,options:{},drawLegendSymbol:f.drawRectangle,
750visible:!0,setState:c,isDataClass:!0,setVisible:function(){e=this.visible=!e;l(b.series,function(a){l(a.points,function(a){a.dataClass===k&&a.setVisible(e)})});m.legend.colorizeItem(this,e)}},p))});return d},name:""}),l(["fill","stroke"],function(b){a.Fx.prototype[b+"Setter"]=function(){this.elem.attr(b,g(this.start).tweenTo(g(this.end),this.pos),null,!0)}}),r(q.prototype,"getAxes",function(a){var b=this.options.colorAxis;a.call(this);this.colorAxis=[];b&&new e(this,b)}),r(u.prototype,"getAllItems",
751function(a){var b=[],d=this.chart.colorAxis[0];d&&d.options&&(d.options.showInLegend&&(d.options.dataClasses?b=b.concat(d.getDataClassLegendSymbols()):b.push(d)),l(d.series,function(a){a.options.showInLegend=!1}));return b.concat(a.call(this))}),r(u.prototype,"colorizeItem",function(a,b,d){a.call(this,b,d);d&&b.legendColor&&b.legendSymbol.attr({fill:b.legendColor})}),r(u.prototype,"update",function(a){a.apply(this,[].slice.call(arguments,1
751));this.chart.colorAxis[0]&&this.chart.colorAxis[0].update({},
752arguments[2])}))})(w);(function(a){var h=a.defined,q=a.each,g=a.noop,e=a.seriesTypes;a.colorPointMixin={isValid:function(){return null!==this.value&&Infinity!==this.value&&-Infinity!==this.value},setVisible:function(a){var e=this,l=a?"show":"hide";q(["graphic","dataLabel"],function(a){if(e[a])e[a][l]()})},setState:function(e){a.Point.prototype.setState.call(this,e);this.graphic&&this.graphic.attr({zIndex:"hover"===e?1:0})}};a.colorSeriesMixin={pointArrayMap:["value"],axisTypes:["xAxis","yAxis","colorAxis"],
753optionalAxis:"colorAxis",trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:g,parallelArrays:["x","y","value"],colorKey:"value",pointAttribs:e.column.prototype.pointAttribs,translateColors:function(){var a=this,e=this.options.nullColor,g=this.colorAxis,h=this.colorKey;q(this.data,function(f){var c=f[h];if(c=f.options.color||(f.isNull?e:g&&void 0!==c?g.toColor(c,f):f.color||a.color))f.color=c})},colorAttribs:function(a){var e={};h(a.color)&&(e[this.colorProp||"fill"]=a.color);return e}}})(w);
754(function(a){function h(a){a&&(a.preventDefault&&a.preventDefault(),a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)}function q(a){this.init(a)}var g=a.addEvent,e=a.Chart,l=a.doc,x=a.each,t=a.extend,u=a.merge,f=a.pick,c=a.wrap;q.prototype.init=function(a){this.chart=a;a.mapNavButtons=[]};q.prototype.update=function(b){var c=this.chart,e=c.options.mapNavigation,k,m,d,p,v,l=function(a){this.handler.call(c,a);h(a)},y=c.mapNavButtons;b&&(e=c.options.mapNavigation=u(c.options.mapNavigation,b));
755for(;y.length;)y.pop().destroy();f(e.enableButtons,e.enabled)&&!c.renderer.forExport&&a.objectEach(e.buttons,function(a,b){k=u(e.buttonOptions,a);m=k.theme;m.style=u(k.theme.style,k.style);p=(d=m.states)&&d.hover;v=d&&d.select;a=c.renderer.button(k.text,0,0,l,m,p,v,0,"zoomIn"===b?"topbutton":"bottombutton").addClass("highcharts-map-navigation").attr({width:k.width,height:k.height,title:c.options.lang[b],padding:k.padding,zIndex:5}).add();a.handler=k.onclick;a.align(t(k,{width:a.width,height:2*a.height}),
756null,k.alignTo);g(a.element,"dblclick",h);y.push(a)});this.updateEvents(e)};q.prototype.updateEvents=function(a){var b=this.chart;f(a.enableDoubleClickZoom,a.enabled)||a.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||g(b.container,"dblclick",function(a){b.pointer.onContainerDblClick(a)}):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick());f(a.enableMouseWheelZoom,a.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||g(b.container,void 0===l.onmousewheel?"DOMMouseScroll":
757"mousewheel",function(a){b.pointer.onContainerMouseWheel(a);h(a);return!1}):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())};t(e.prototype,{fitToBox:function(a,c){x([["x","width"],["y","height"]],function(b){var k=b[0];b=b[1];a[k]+a[b]>c[k]+c[b]&&(a[b]>c[b]?(a[b]=c[b],a[k]=c[k]):a[k]=c[k]+c[b]-a[b]);a[b]>c[b]&&(a[b]=c[b]);a[k]<c[k]&&(a[k]=c[k])});return a},mapZoom:function(a,c,e,k,m){var d=this.xAxis[0],b=d.max-d.min,v=f(c,d.min+b/2),l=b*a,b=this.yAxis[0],g=b.max-b.min,n=f(e,
758b.min+g/2),g=g*a,v=this.fitToBox({x:v-l*(k?(k-d.pos)/d.len:.5),y:n-g*(m?(m-b.pos)/b.len:.5),width:l,height:g},{x:d.dataMin,y:b.dataMin,width:d.dataMax-d.dataMin,height:b.dataMax-b.dataMin}),l=v.x<=d.dataMin&&v.width>=d.dataMax-d.dataMin&&v.y<=b.dataMin&&v.height>=b.dataMax-b.dataMin;k&&(d.fixTo=[k-d.pos,c]);m&&(b.fixTo=[m-b.pos,e]);void 0===a||l?(d.setExtremes(void 0,void 0,!1),b.setExtremes(void 0,void 0,!1)):(d.setExtremes(v.x,v.x+v.width,!1),b.setExtremes(v.y,v.y+v.height,!1));this.redraw()}});
759c(e.prototype,"render",function(a){this.mapNavigation=new q(this);this.mapNavigation.update();a.call(this)})})(w);(function(a){var h=a.extend,q=a.pick,g=a.Pointer;a=a.wrap;h(g.prototype,{onContainerDblClick:function(a){var e=this.chart;a=this.normalize(a);e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(a.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop)&&e.mapZoom(.5,e.xAxis[0].toValue(a.chartX),e.yAxis[0].toValue(a.chartY),
760a.chartX,a.chartY)},onContainerMouseWheel:function(a){var e=this.chart,g;a=this.normalize(a);g=a.detail||-(a.wheelDelta/120);e.isInsidePlot(a.chartX-e.plotLeft,a.chartY-e.plotTop)&&e.mapZoom(Math.pow(e.options.mapNavigation.mouseWheelSensitivity,g),e.xAxis[0].toValue(a.chartX),e.yAxis[0].toValue(a.chartY),a.chartX,a.chartY)}});a(g.prototype,"zoomOption",function(a){var e=this.chart.options.mapNavigation;q(e.enableTouchZoom,e.enabled)&&(this.chart.options.chart.pinchType="xy");a.apply(this,[].slice.call(arguments,
7611))});a(g.prototype,"pinchTranslate",function(a,g,q,h,u,f,c){a.call(this,g,q,h,u,f,c);"map"===this.chart.options.chart.type&&this.hasZoom&&(a=h.scaleX>h.scaleY,this.pinchTranslateDirection(!a,g,q,h,u,f,c,a?h.scaleX:h.scaleY))})})(w);(function(a){var h=a.colorPointMixin,q=a.each,g=a.extend,e=a.isNumber,l=a.map,x=a.merge,t=a.noop,u=a.pick,f=a.isArray,c=a.Point,b=a.Series,n=a.seriesType,r=a.seriesTypes,k=a.splat,m=void 0!==a.doc.documentElement.style.vectorEffect;n("map","scatter",{allAreas:!0,animation:!1,
762nullColor:"#f7f7f7",borderColor:"#cccccc",borderWidth:1,marker:null,stickyTracking:!1,joinBy:"hc-key",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}\x3cbr/\x3e"},states:{normal:{animation:!0},hover:{halo:null,brightness:.2},select:{color:"#cccccc"}}},x(a.colorSeriesMixin,{type:"map",getExtremesFromAll:!0,useMapGeometry:!0,forceDL:!0,searchPoint:t,
763directTouch:!0,preserveAspectRatio:!0,pointArrayMap:["value"],getBox:function(d){var b=Number.MAX_VALUE,c=-b,k=b,f=-b,m=b,g=b,n=this.xAxis,l=this.yAxis,r;q(d||[],function(d){if(d.path){"string"===typeof d.path&&(d.path=a.splitPath(d.path));var p=d.path||[],v=p.length,n=!1,l=-b,h=b,y=-b,q=b,A=d.properties;if(!d._foundBox){for(;v--;)e(p[v])&&(n?(l=Math.max(l,p[v]),h=Math.min(h,p[v])):(y=Math.max(y,p[v]),q=Math.min(q,p[v])),n=!n);d._midX=h+(l-h)*u(d.middleX,A&&A["hc-middle-x"],.5);d._midY=q+(y-q)*u(d.middleY,
764A&&A["hc-middle-y"],.5);d._maxX=l;d._minX=h;d._maxY=y;d._minY=q;d.labelrank=u(d.labelrank,(l-h)*(y-q));d._foundBox=!0}c=Math.max(c,d._maxX);k=Math.min(k,d._minX);f=Math.max(f,d._maxY);m=Math.min(m,d._minY);g=Math.min(d._maxX-d._minX,d._maxY-d._minY,g);r=!0}});r&&(this.minY=Math.min(m,u(this.minY,b)),this.maxY=Math.max(f,u(this.maxY,-b)),this.minX=Math.min(k,u(this.minX,b)),this.maxX=Math.max(c,u(this.maxX,-b)),n&&void 0===n.options.minRange&&(n.minRange=Math.min(5*g,(this.maxX-this.minX)/5,n.minRange||
765b)),l&&void 0===l.options.minRange&&(l.minRange=Math.min(5*g,(this.maxY-this.minY)/5,l.minRange||b)))},getExtremes:function(){b.prototype.getExtremes.call(this,this.valueData);this.chart.hasRendered&&this.isDirtyData&&this.getBox(this.options.data);this.valueMin=this.dataMin;this.valueMax=this.dataMax;this.dataMin=this.minY;this.dataMax=this.maxY},translatePath:function(a){var d=!1,b=this.xAxis,c=this.yAxis,k=b.min,f=b.transA,b=b.minPixelPadding,m=c.min,g=c.transA,c=c.minPixelPadding,n,l=[];
765if(a)for(n=
766a.length;n--;)e(a[n])?(l[n]=d?(a[n]-k)*f+b:(a[n]-m)*g+c,d=!d):l[n]=a[n];return l},setData:function(d,c,m,g){var p=this.options,v=this.chart.options.chart,n=v&&v.map,h=p.mapData,r=p.joinBy,u=null===r,B=p.keys||this.pointArrayMap,t=[],w={},z=this.chart.mapTransforms;!h&&n&&(h="string"===typeof n?a.maps[n]:n);u&&(r="_i");r=this.joinBy=k(r);r[1]||(r[1]=r[0]);d&&q(d,function(a,b){var c=0;if(e(a))d[b]={value:a};else if(f(a)){d[b]={};!p.keys&&a.length>B.length&&"string"===typeof a[0]&&(d[b]["hc-key"]=a[0],
767++c);for(var k=0;k<B.length;++k,++c)B[k]&&(d[b][B[k]]=a[c])}u&&(d[b]._i=b)});this.getBox(d);(this.chart.mapTransforms=z=v&&v.mapTransforms||h&&h["hc-transform"]||z)&&a.objectEach(z,function(a){a.rotation&&(a.cosAngle=Math.cos(a.rotation),a.sinAngle=Math.sin(a.rotation))});if(h){"FeatureCollection"===h.type&&(this.mapTitle=h.title,h=a.geojson(h,this.type,this));this.mapData=h;this.mapMap={};for(z=0;z<h.length;z++)v=h[z],n=v.properties,v._i=z,r[0]&&n&&n[r[0]]&&(v[r[0]]=n[r[0]]),w[v[r[0]]]=v;this.mapMap=
768w;d&&r[1]&&q(d,function(a){w[a[r[1]]]&&t.push(w[a[r[1]]])});p.allAreas?(this.getBox(h),d=d||[],r[1]&&q(d,function(a){t.push(a[r[1]])}),t="|"+l(t,function(a){return a&&a[r[0]]}).join("|")+"|",q(h,function(a){r[0]&&-1!==t.indexOf("|"+a[r[0]]+"|")||(d.push(x(a,{value:null})),g=!1)})):this.getBox(t)}b.prototype.setData.call(this,d,c,m,g)},drawGraph:t,drawDataLabels:t,doFullTranslate:function(){return this.isDirtyData||this.chart.isResizing||this.chart.renderer.isVML||!this.baseTrans},translate:function(){var a=
769this,b=a.xAxis,c=a.yAxis,k=a.doFullTranslate();a.generatePoints();q(a.data,function(d){d.plotX=b.toPixels(d._midX,!0);d.plotY=c.toPixels(d._midY,!0);k&&(d.shapeType="path",d.shapeArgs={d:a.translatePath(d.path)})});a.translateColors()},pointAttribs:function(a,b){a=r.column.prototype.pointAttribs.call(this,a,b);m?a["vector-effect"]="non-scaling-stroke":a["stroke-width"]="inherit";return a},drawPoints:function(){var a=this,b=a.xAxis,c=a.yAxis,k=a.group,f=a.chart,e=f.renderer,n,g,h,l,t=this.baseTrans,
770u,x,z,w,G;a.transformGroup||(a.transformGroup=e.g().attr({scaleX:1,scaleY:1}).add(k),a.transformGroup.survive=!0);a.doFullTranslate()?(f.hasRendered&&q(a.points,function(b){b.shapeArgs&&(b.shapeArgs.fill=a.pointAttribs(b,b.state).fill)}),a.group=a.transformGroup,r.column.prototype.drawPoints.apply(a),a.group=k,q(a.points,function(a){a.graphic&&(a.name&&a.graphic.addClass("highcharts-name-"+a.name.replace(/ /g,"-").toLowerCase()),a.properties&&a.properties["hc-key"]&&a.graphic.addClass("highcharts-key-"+
771a.properties["hc-key"].toLowerCase()))}),this.baseTrans={originX:b.min-b.minPixelPadding/b.transA,originY:c.min-c.minPixelPadding/c.transA+(c.reversed?0:c.len/c.transA),transAX:b.transA,transAY:c.transA},this.transformGroup.animate({translateX:0,translateY:0,scaleX:1,scaleY:1})):(n=b.transA/t.transAX,g=c.transA/t.transAY,h=b.toPixels(t.originX,!0),l=c.toPixels(t.originY,!0),.99<n&&1.01>n&&.99<g&&1.01>g&&(g=n=1,h=Math.round(h),l=Math.round(l)),u=this.transformGroup,f.renderer.globalAnimation?(x=u.attr("translateX"),
772z=u.attr("translateY"),w=u.attr("scaleX"),G=u.attr("scaleY"),u.attr({animator:0}).animate({animator:1},{step:function(a,b){u.attr({translateX:x+(h-x)*b.pos,translateY:z+(l-z)*b.pos,scaleX:w+(n-w)*b.pos,scaleY:G+(g-G)*b.pos})}})):u.attr({translateX:h,translateY:l,scaleX:n,scaleY:g}));m||a.group.element.setAttribute("stroke-width",a.options[a.pointAttrToOptions&&a.pointAttrToOptions["stroke-width"]||"borderWidth"]/(n||1));this.drawMapDataLabels()},drawMapDataLabels:function(){b.prototype.drawDataLabels.call(this);
773this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)},render:function(){var a=this,c=b.prototype.render;a.chart.renderer.isVML&&3E3<a.data.length?setTimeout(function(){c.call(a)}):c.call(a)},animate:function(a){var b=this.options.animation,d=this.group,c=this.xAxis,k=this.yAxis,f=c.pos,m=k.pos;this.chart.renderer.isSVG&&(!0===b&&(b={duration:1E3}),a?d.attr({translateX:f+c.len/2,translateY:m+k.len/2,scaleX:.001,scaleY:.001}):(d.animate({translateX:f,translateY:m,scaleX:1,scaleY:1},
774b),this.animate=null))},animateDrilldown:function(a){var b=this.chart.plotBox,d=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],c=d.bBox,k=this.chart.options.drilldown.animation;a||(a=Math.min(c.width/b.width,c.height/b.height),d.shapeArgs={scaleX:a,scaleY:a,translateX:c.x,translateY:c.y},q(this.points,function(a){a.graphic&&a.graphic.attr(d.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},k)}),this.animate=null)},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,
775animateDrillupFrom:function(a){r.column.prototype.animateDrillupFrom.call(this,a)},animateDrillupTo:function(a){r.column.prototype.animateDrillupTo.call(this,a)}}
775),g({applyOptions:function(a,b){a=c.prototype.applyOptions.call(this,a,b);b=this.series;var d=b.joinBy;b.mapData&&((d=void 0!==a[d[1]]&&b.mapMap[a[d[1]]])?(b.xyFromShape&&(a.x=d._midX,a.y=d._midY),g(a,d)):a.value=a.value||null);return a},onMouseOver:function(a){clearTimeout(this.colorInterval);if(null!==this.value||this.series.options.nullInteraction)c.prototype.onMouseOver.call(this,
776a);else this.series.onMouseOut(a)},zoomTo:function(){var a=this.series;a.xAxis.setExtremes(this._minX,this._maxX,!1);a.yAxis.setExtremes(this._minY,this._maxY,!1);a.chart.redraw()}},h))})(w);(function(a){var h=a.seriesType,q=a.seriesTypes;h("mapline","map",{lineWidth:1,fillColor:"none"},{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(a,e){a=q.map.prototype.pointAttribs.call(this,a,e);a.fill=this.options.fillColor;return a},drawLegendSymbol:q.line.prototype.drawLegendSymbol})})(w);
777(function(a){var h=a.merge,q=a.Point;a=a.seriesType;a("mappoint","scatter",{dataLabels:{enabled:!0,formatter:function(){return this.point.name},crop:!1,defer:!1,overflow:!1,style:{color:"#000000"}}},{type:"mappoint",forceDL:!0},{applyOptions:function(a,e){a=void 0!==a.lat&&void 0!==a.lon?h(a,this.series.chart.fromLatLonToPoint(a)):a;return q.prototype.applyOptions.call(this,a,e)}})})(w);(function(a){var h=a.arrayMax,q=a.arrayMin,g=a.Axis,e=a.color,l=a.each,x=a.isNumber,t=a.noop,u=a.pick,f=a.pInt,
778c=a.Point,b=a.Series,n=a.seriesType,r=a.seriesTypes;n("bubble","scatter",{dataLabels:{formatter:function(){return this.point.z},inside:!0,verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:"circle"},minSize:8,maxSize:"20%",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0,zoneAxis:"z"},{pointArrayMap:["y","z"],parallelArrays:["x","y","z"],
779trackerGroups:["group","dataLabelsGroup"],specialGroup:"group",bubblePadding:!0,zoneAxis:"z",directTouch:!0,pointAttribs:function(a,c){var d=this.options.marker.fillOpacity;a=b.prototype.pointAttribs.call(this,a,c);1!==d&&(a.fill=e(a.fill).setOpacity(d).get("rgba"));return a},getRadii:function(a,b,c,f){var d,k,m,p=this.zData,n=[],e=this.options,h="width"!==e.sizeBy,g=e.zThreshold,r=b-a;k=0;for(d=p.length;k<d;k++)m=p[k],e.sizeByAbsoluteValue&&null!==m&&(m=Math.abs(m-g),b=Math.max(b-g,Math.abs(a-g)),
780a=0),null===m?m=null:m<a?m=c/2-1:(m=0<r?(m-a)/r:.5,h&&0<=m&&(m=Math.sqrt(m)),m=Math.ceil(c+m*(f-c))/2),n.push(m);this.radii=n},animate:function(a){var b=this.options.animation;a||(l(this.points,function(a){var c=a.graphic,d;c&&c.width&&(d={x:c.x,y:c.y,width:c.width,height:c.height},c.attr({x:a.plotX,y:a.plotY,width:1,height:1}),c.animate(d,b))}),this.animate=null)},translate:function(){var b,c=this.data,d,f,e=this.radii;r.scatter.prototype.translate.call(this);for(b=c.length;b--;)d=c[b],f=e?e[b]:
7810,x(f)&&f>=this.minPxSize/2?(d.marker=a.extend(d.marker,{radius:f,width:2*f,height:2*f}),d.dlBox={x:d.plotX-f,y:d.plotY-f,width:2*f,height:2*f}):d.shapeArgs=d.plotY=d.dlBox=void 0},alignDataLabel:r.column.prototype.alignDataLabel,buildKDTree:t,applyZones:t},{haloPath:function(a){return c.prototype.haloPath.call(this,0===a?0:(this.marker?this.marker.radius||0:0)+a)},ttBelow:!1});g.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,e=0,n=b,g=this.isXAxis,r=g?"xData":"yData",t=this.min,
782w={},H=Math.min(c.plotWidth,c.plotHeight),A=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-t,C=b/E,F=[];l(this.series,function(b){var d=b.options;!b.bubblePadding||!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),g&&(l(["minSize","maxSize"],function(a){var b=d[a],c=/%$/.test(b),b=f(b);w[a]=c?H*b/100:b}),b.minPxSize=w.minSize,b.maxPxSize=Math.max(w.maxSize,w.minSize),b=b.zData,b.length&&(A=u(d.zMin,Math.min(A,Math.max(q(b),!1===d.displayNegative?d.zThreshold:-Number.MAX_VALUE))),
783D=u(d.zMax,Math.max(D,h(b))))))});l(F,function(b){var c=b[r],d=c.length,f;g&&b.getRadii(A,D,b.minPxSize,b.maxPxSize);if(0<E)for(;d--;)x(c[d])&&a.dataMin<=c[d]&&c[d]<=a.dataMax&&(f=b.radii[d],e=Math.min((c[d]-t)*C-f,e),n=Math.max((c[d]-t)*C+f,n))});F.length&&0<E&&!this.isLog&&(n-=b,C*=(b+e-n)/b,l([["min","userMin",e],["max","userMax",n]],function(b){void 0===u(a.options[b[0]],a[b[1]])&&(a[b[0]]+=b[2]/C)}))}})(w);(function(a){var h=a.merge,q=a.Point,g=a.seriesType,e=a.seriesTypes;e.bubble&&g("mapbubble",
784"bubble",{animationLimit:500,tooltip:{pointFormat:"{point.name}: {point.z}"}},{xyFromShape:!0,type:"mapbubble",pointArrayMap:["z"],getMapData:e.map.prototype.getMapData,getBox:e.map.prototype.getBox,setData:e.map.prototype.setData},{applyOptions:function(a,g){return a&&void 0!==a.lat&&void 0!==a.lon?q.prototype.applyOptions.call(this,h(a,this.series.chart.fromLatLonToPoint(a)),g):e.map.prototype.pointClass.prototype.applyOptions.call(this,a,g)},isValid:function(){return"number"===typeof this.z},ttBelow:!1})})(w);
785(function(a){var h=a.colorPointMixin,q=a.each,g=a.merge,e=a.noop,l=a.pick,w=a.Series,t=a.seriesType,u=a.seriesTypes;t("heatmap","scatter",{animation:!1,borderWidth:0,nullColor:"#f7f7f7",dataLabels:{formatter:function(){return this.point.value},inside:!0,verticalAlign:"middle",crop:!1,overflow:!1,padding:0},marker:null,pointRange:null,tooltip:{pointFormat:"{point.x}, {point.y}: {point.value}\x3cbr/\x3e"},states:{hover:{halo:!1,brightness:.2}}},g(a.colorSeriesMixin,{pointArrayMap:["y","value"],hasPointSpecificOptions:!0,
786getExtremesFromAll:!0,directTouch:!0,init:function(){var a;
786u.scatter.prototype.init.apply(this,arguments);a=this.options;a.pointRange=l(a.pointRange,a.colsize||1);this.yAxis.axisPointRange=a.rowsize||1},translate:function(){var a=this.options,c=this.xAxis,b=this.yAxis,e=a.pointPadding||0,g=function(a,b,c){return Math.min(Math.max(b,a),c)};this.generatePoints();q(this.points,function(f){var n=(a.colsize||1)/2,d=(a.rowsize||1)/2,k=g(Math.round(c.len-c.translate(f.x-n,0,1,0,1)),-c.len,2*c.len),n=g(Math.round(c.len-
787c.translate(f.x+n,0,1,0,1)),-c.len,2*c.len),h=g(Math.round(b.translate(f.y-d,0,1,0,1)),-b.len,2*b.len),d=g(Math.round(b.translate(f.y+d,0,1,0,1)),-b.len,2*b.len),r=l(f.pointPadding,e);f.plotX=f.clientX=(k+n)/2;f.plotY=(h+d)/2;f.shapeType="rect";f.shapeArgs={x:Math.min(k,n)+r,y:Math.min(h,d)+r,width:Math.abs(n-k)-2*r,height:Math.abs(d-h)-2*r}});this.translateColors()},drawPoints:function(){u.column.prototype.drawPoints.call(this);q(this.points,function(a){a.graphic.attr(this.colorAttribs(a))},this)},
788animate:e,getBox:e,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,alignDataLabel:u.column.prototype.alignDataLabel,getExtremes:function(){w.prototype.getExtremes.call(this,this.valueData);this.valueMin=this.dataMin;this.valueMax=this.dataMax;w.prototype.getExtremes.call(this)}}),a.extend({haloPath:function(a){if(!a)return[];var c=this.shapeArgs;return["M",c.x-a,c.y-a,"L",c.x-a,c.y+c.height+a,c.x+c.width+a,c.y+c.height+a,c.x+c.width+a,c.y-a,"Z"]}},h))})(w);(function(a){function h(a,c){var b,f,
789e,k=!1,m=a.x,d=a.y;a=0;for(b=c.length-1;a<c.length;b=a++)f=c[a][1]>d,e=c[b][1]>d,f!==e&&m<(c[b][0]-c[a][0])*(d-c[a][1])/(c[b][1]-c[a][1])+c[a][0]&&(k=!k);return k}var q=a.Chart,g=a.each,e=a.extend,l=a.format,w=a.merge,t=a.win,u=a.wrap;q.prototype.transformFromLatLon=function(f,c){if(void 0===t.proj4)return a.error(21),{x:0,y:null};f=t.proj4(c.crs,[f.lon,f.lat]);var b=c.cosAngle||c.rotation&&Math.cos(c.rotation),e=c.sinAngle||c.rotation&&Math.sin(c.rotation);f=c.rotation?[f[0]*b+f[1]*e,-f[0]*e+f[1]*
790b]:f;return{x:((f[0]-(c.xoffset||0))*(c.scale||1)+(c.xpan||0))*(c.jsonres||1)+(c.jsonmarginX||0),y:(((c.yoffset||0)-f[1])*(c.scale||1)+(c.ypan||0))*(c.jsonres||1)-(c.jsonmarginY||0)}};q.prototype.transformToLatLon=function(f,c){if(void 0===t.proj4)a.error(21);else{f={x:((f.x-(c.jsonmarginX||0))/(c.jsonres||1)-(c.xpan||0))/(c.scale||1)+(c.xoffset||0),y:((-f.y-(c.jsonmarginY||0))/(c.jsonres||1)+(c.ypan||0))/(c.scale||1)+(c.yoffset||0)};var b=c.cosAngle||c.rotation&&Math.cos(c.rotation),e=c.sinAngle||
791c.rotation&&Math.sin(c.rotation);c=t.proj4(c.crs,"WGS84",c.rotation?{x:f.x*b+f.y*-e,y:f.x*e+f.y*b}:f);return{lat:c.y,lon:c.x}}};q.prototype.fromPointToLatLon=function(f){var c=this.mapTransforms,b;if(c){for(b in c)if(c.hasOwnProperty(b)&&c[b].hitZone&&h({x:f.x,y:-f.y},c[b].hitZone.coordinates[0]))return this.transformToLatLon(f,c[b]);return this.transformToLatLon(f,c["default"])}a.error(22)};q.prototype.fromLatLonToPoint=function(f){var c=this.mapTransforms,b,e;if(!c)return a.error(22),{x:0,y:null};
792for(b in c)if(c.hasOwnProperty(b)&&c[b].hitZone&&(e=this.transformFromLatLon(f,c[b]),h({x:e.x,y:-e.y},c[b].hitZone.coordinates[0])))return e;return this.transformFromLatLon(f,c["default"])};a.geojson=function(a,c,b){var f=[],h=[],k=function(a){var b,c=a.length;h.push("M");for(b=0;b<c;b++)1===b&&h.push("L"),h.push(a[b][0],-a[b][1])};c=c||"map";g(a.features,function(a){var b=a.geometry,n=b.type,b=b.coordinates;a=a.properties;var m;h=[];"map"===c||"mapbubble"===c?("Polygon"===n?(g(b,k),h.push("Z")):
793"MultiPolygon"===n&&(g(b,function(a){g(a,k)}),h.push("Z")),h.length&&(m={path:h})):"mapline"===c?("LineString"===n?k(b):"MultiLineString"===n&&g(b,k),h.length&&(m={path:h})):"mappoint"===c&&"Point"===n&&(m={x:b[0],y:-b[1]});m&&f.push(e(m,{name:a.name||a.NAME,properties:a}))});b&&a.copyrightShort&&(b.chart.mapCredits=l(b.chart.options.credits.mapText,{geojson:a}),b.chart.mapCreditsFull=l(b.chart.options.credits.mapTextFull,{geojson:a}));return f};u(q.prototype,"addCredits",function(a,c){c=w(!0,this.options.credits,
794c);this.mapCredits&&(c.href=null);a.call(this,c);this.credits&&this.mapCreditsFull&&this.credits.attr({title:this.mapCreditsFull})})})(w);(function(a){function h(a,c,e,f,h,d,g,l){return["M",a+h,c,"L",a+e-d,c,"C",a+e-d/2,c,a+e,c+d/2,a+e,c+d,"L",a+e,c+f-g,"C",a+e,c+f-g/2,a+e-g/2,c+f,a+e-g,c+f,"L",a+l,c+f,"C",a+l/2,c+f,a,c+f-l/2,a,c+f-l,"L",a,c+h,"C",a,c+h/2,a+h/2,c,a+h,c,"Z"]}var q=a.Chart,g=a.defaultOptions,e=a.each,l=a.extend,w=a.merge,t=a.pick,u=a.Renderer,f=a.SVGRenderer,c=a.VMLRenderer;l(g.lang,
795{zoomIn:"Zoom in",zoomOut:"Zoom out"});g.mapNavigation={buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{fontSize:"15px",fontWeight:"bold"},theme:{"stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1};a.splitPath=function(a){var b;a=a.replace(/([A-Za-z])/g," $1 ");a=a.replace(/^\s*/,"").replace(/\s*$/,
796"");a=a.split(/[ ,]+/);for(b=0;b<a.length;b++)/[a-zA-Z]/.test(a[b])||(a[b]=parseFloat(a[b]));return a};a.maps={};f.prototype.symbols.topbutton=function(a,c,e,f,g){return h(a-1,c-1,e,f,g.r,g.r,0,0)};f.prototype.symbols.bottombutton=function(a,c,e,f,g){return h(a-1,c-1,e,f,0,0,g.r,g.r)};u===c&&e(["topbutton","bottombutton"],function(a){c.prototype.symbols[a]=f.prototype.symbols[a]});a.Map=a.mapChart=function(b,c,e){var f="string"===typeof b||b.nodeName,g=arguments[f?1:0],d={endOnTick:!1,visible:!1,
797minPadding:0,maxPadding:0,startOnTick:!1},h,l=a.getOptions().credits;h=g.series;g.series=null;g=w({chart:{panning:"xy",type:"map"},credits:{mapText:t(l.mapText,' \u00a9 \x3ca href\x3d"{geojson.copyrightUrl}"\x3e{geojson.copyrightShort}\x3c/a\x3e'),mapTextFull:t(l.mapTextFull,"{geojson.copyright}")},tooltip:{followTouchMove:!1},xAxis:d,yAxis:w(d,{reversed:!0})},g,{chart:{inverted:!1,alignTicks:!1}});g.series=h;return f?new q(b,g,e):new q(g,c)}})(w)});
798Highcharts.maps["countries/us/us-all"] = {"title":"United States of America","version":"1.1.2","type":"FeatureCollection","copyright":"Copyright (c) 2015 Highsoft AS, Based on data from Natural Earth","copyrightShort":"Natural Earth","copyrightUrl":"http://www.naturalearthdata.com","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:EPSG:102004"}},"hc-transform":{"default":{"crs":"+proj=lcc +lat_1=33 +lat_2=45 +lat_0=39 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs","scale":0.
798000151481324748,"jsonres":15.5,"jsonmarginX":-999,"jsonmarginY":9851.0,"xoffset":-2361356.09818,"yoffset":1398996.77886},"us-all-hawaii":{"xpan":190,"ypan":417,"hitZone":{"type":"Polygon","coordinates":[[[1747,3920],[3651,2950],[3651,-999],[1747,-999],[1747,3920]]]},"crs":"+proj=aea +lat_1=8 +lat_2=18 +lat_0=13 +lon_0=-157 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs","scale":0.000123090941806,"jsonres":15.5,"jsonmarginX":-999,"jsonmarginY":9851.0,"xoffset":-338610.47557,"yoffset":1022754.31736},"us-all-alaska":{"rotation":-0.0174532925199,"xpan":5,"ypan":357,"hitZone":{"type":"Polygon","coordinates":[[[-999,5188],[-707,5188],[1747,3920],[1747,-999],[-999,-999],[-999,5188]]]},"crs":"+proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs","scale":5.84397059179e-05,"jsonres":15.5,"jsonmarginX":-999,"jsonmarginY":9851.0,"xoffset":-1566154.00853,"yoffset":1992671.14918}},
799
800"features":[{"type":"Feature","id":"US.MA","properties":{"hc-group":"admin1","hc-middle-x":0.36,"hc-middle-y":0.47,"hc-key":"us-ma","hc-a2":"MA","labelrank":"0","hasc":"US.MA","woe-id":"2347580","state-fips":"25","fips":"US25","postal-code":"MA","name":"Massachusetts","country":"United States of America","region":"Northeast","longitude":"-71.99930000000001","woe-name":"Massachusetts","latitude":"42.3739","
800woe-label":"Massachusetts, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9430,7889],[9476,7878],[9436,7864],[9417,7844],[9430,7889]]],[[[9314,7915],[9312,7927],[9304,7921],[9278,7938],[9254,7990],[9177,7968],[8997,7925],[8860,7896],[8853,7901],[8856,8080],[8922,8096],[9005,8115],[9005,8115],[9222,8166],[9242,8201],[9300,8236],[9318,8197],[9357,8186],[9312,8147],[9299,8081],[9324,8091],[9365,8074],[9428,7985],[9483,7974],[9525,8007],[9501,8067],[9535,8028],[9549,7982],[9504,7965],[9420,7906],[9411,7955],[9371,7921],[9373,7898],[9339,7878],[9327,7915],[9314,7915]]]]}},{"type":"Feature","id":"US.WA","properties":{"hc-group":"admin1","hc-middle-x":0.56,"hc-middle-y":0.52,"hc-key":"us-wa","hc-a2":"WA","labelrank":"0","hasc":"US.WA","woe-id":"2347606","state-fips":"53","fips":"US53","postal-code":"WA","name":"Washington","country":"United States of America","region":"West","longitude":"-120.361","woe-name":"Washington","latitude":"47.4865","woe-label":"Washington, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77,9797],[-56,9768],[-91,9757],[-86,9712],[-136,9751],[-111,9756],[-77,9797]]],[[[-52,9689],[-85,9658],[-66,9645],[-43,9568],[-77,9588],[-74,9635],[-89,9664],[-52,9690],[-60,9697],[-61,9737],[-31,9701],[-12,9731],[-9,9774],[-33,9788],[-46,9839],[-32,9851],[926,9593],[767,8925],[779,8870],[774,8822],[398,8914],[378,8905],[289,8922],[163,8905],[94,8923],[38,8914],[-10,8925],[-22,8950],[-113,8979],[-207,8965],[-283,9014],[-271,9096],[-280,9134],[-321,9167],[-357,9171],[-365,9207],[-400,9226],[-436,9219],[-460,9259],[-436,9333],[-441,9279],[-416,9297],[-401,9347],[-434,9357],[-429,9395],[-369,9396],[-424,943
8006],[-424,9523],[-410,9624],[-433,9678],[-428,9749],[-385,9790],[-313,9713],[-183,9655],[-161,9666],[-146,9623],[-100,9637],[-95,9567],[-135,9518],[-77,9566],[-112,9491],[-89,9426],[-154,9433],[-175,9394],[-167,9449],[-222,9394],[-157,9376],[-124,9418],[-82,9426],[-82,9476],[-66,9527],[-18,9570],[-37,9644],[-24,9661],[-52,9689]]]]}},{"type":"Feature","id":"US.CA","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.67,"hc-key":"us-ca","hc-a2":"CA","labelrank":"0","hasc":"US.CA","woe-id":"2347563","state-fips":"6","fips":"US06","postal-code":"CA","name":"California","country":"United States of America","region":"West","longitude":"-119.591","woe-name":"California","latitude":"36.7496","woe-label":"California, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[-833,8186],[-50,7955],[-253,7203],[32,6779],[261,6430],[593,5936],[620,5788],[660,5730],[598,5702],[559,5661],[555,5605],[510,5537],[489,5536],[476,5452],[519,5416],[492,5355],[451,5357],[-76,5426],[-69,5467],[-95,5476],[-84,5583],[-110,5649],[-224,5792],[-276,5799],[-265,5822],[-284,5881],[-342,5885],[-417,5946],[-422,5975],[-484,6035],[-539,6046],[-588,6077],[-659,6091],[-686,6135],[-647,6273],[-691,6316],[-672,6333],[-720,6428],[-742,6442],[-793,6601],[-820,6637],[-816,6709],[-775,6726],[-761,6756],[-778,6807],[-821,6819],[-855,6888],[-842,6929],[-853,6979],[-833,7041],[-810,7042],[-816,6985],[-764,6931],[-772,6991],[-797,7030],[-787,7089],[-738,7083],[-782,7126],[-806,7122],[-833,7050],[-892,7126],[-903,7243],[-983,7395],[-967,7420],[-969,7507],[-943,7553],[-936,7629],[-964,7712],[-999,7766],[-993,7813],[-890,7943],[-849,8038],[-844,8118],[-860,8134],[-833,8186]]]}},{"type":"Feature","id":"US.OR","properties":{"hc-group":"admin1","hc-middle-x":0.47,"hc-middle-y":0.52,"hc-key":"us-or","hc-a2":"OR","labelrank":"0","hasc":"US.OR","woe-id":"2347596","state-fips":"41","fips":"US41","postal-code":"OR","name":"Oregon","country":"United States of America","region":"West","longitude":"-120.386","woe-name":"Oregon","latitude":"43.8333","woe-label":"Oregon, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[-50,7955],[-833,8186],[-851,8223],[-847,8281],[-817,8362],[-827,8415],[-793,8455],[-756,8527],[-714,8570],[-672,8648],[-594,8829],[-582,8877],[-494,9051],[-493,9108],[-468,9158],[-460,9216],[-396,9192],[-367,9202],[-359,9169],[-321,9167],[-280,9134],[-271,9096],[-283,9014],[-207,8965],[-113,8979],[-22,8950],[-10,8925],[38,8914],[94,8923],[163,8905],[289,8922],[378,8905],[398,8914],[774,8822],[785,8775],[821,8744],[823,8698],[776,8646],[718,8545],[624,8450],[615,8403],[662,8361],[616,8265],[510,7813],[-50,7955]]]}},{"type":"Feature","id":"US.WI","properties":{"hc-group":"admin1","hc-middle-x":0.41,"hc-middle-y":0.38,"hc-key":"us-wi","hc-a2":"WI","labelrank":"0","hasc":"US.WI","woe-id":"2347608","state-fips":"55","fips":"US55","postal-code":"WI","name":"Wisconsin","country":"United States of America","region":"Midwest","longitude":"-89.5831","woe-name":"Wisconsin","latitude":"44.3709","woe-label":"Wisconsin, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[6206,8297],[6197,8237],[6159,8156],[6136,8180],[6161,8249],[6206,8297]]],[[[5575,7508],[5561,7544],[5494,7563],[5465,7670],[5479,7702],[5445,7758],[5431,7866],[5405,7892],[5360,7903],[5273,7994],[5217,8029],[5181,8035],[5136,8072],[5146,8117],[5144,8214],[5158,8253],[5117,8285],[5116,8322],[5147,8375],[5220,8422],[5214,8573],[5245,8603],[5303,8589],[5410,8635],[5449,8660],[5489,8656],[5481,8617],[5508,8583],[5554,8572],[5588,8553],[5611,8510],[5795,8473],[5849,8447],[5968,8437],[5993,8394],[6045,8372],[6042,8286],[6080,8287],[6071,8242],[6096,8224],[6058,8180],[6028,8078],[6049,8076],[6099,8156],[6129,8170],[6153,8151],[6124,8019],[6136,7996],[6101,7916],[6110,7860],[6082,7742],[6089,7679],[6116,7626],[6119,7543],[5780,7519],[5606,7509],[5575,7508]]]]}},{"type":"Feature","id":"US.ME","properties":{"hc-group":"admin1","hc-middle-x":0.43,"hc-middle-y":0.40,"hc-key":"us-me","hc-a2":"ME","labelrank":"0","hasc":"US.ME","woe-id":"2347578","state-fips":"23","fips":"US23","postal-code":"ME","name":"Maine","country":"United States of America","region":"Northeast","longitude":"-69.1973","woe-name":"Maine","latitude":"45.148","woe-label":"Maine, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9623,8727],[9643,8763],[9665,8747],[9641,8690],[9623,8727]]],[[[9225,8399],[9079,8830],[9115,8824],[9130,8917],[9168,8971],[9177,9035],[9160,9
800062],[9160,9140],[9176,9161],[9166,9236],[9238,9459],[9272,9467],[9292,9423],[9319,9415],[9428,9491],[9519,9435],[9630,9097],[9697,9099],[9717,9017],[9747,8995],[9778,9009],[9851,8939],[9818,8875],[9789,8883],[9784,8851],[9706,8811],[9712,8773],[9690,8747],[9669,8782],[9611,8766],[9590,8707],[9615,8647],[9554,8716],[9552,8761],[9517,8719],[9529,8622],[9505,8581],[9483,8586],[9467,8544],[9433,8531],[9420,8493],[9387,8524],[9346,8471],[9362,8439],[9314,8347],[9298,8291],[9235,8354],[9225,8399]]]]}},{"type":"Feature","id":"US.MI","properties":{"hc-group":"admin1","hc-middle-x":0.71,"hc-middle-y":0.67,"hc-key":"us-mi","hc-a2":"MI","labelrank":"0","hasc":"US.MI","woe-id":"2347581","state-fips":"26","fips":"US26","postal-code":"MI","name":"Michigan","country":"United States of America","region":"Midwest","longitude":"-84.9479","woe-name":"Michigan","latitude":"43.4343","woe-label":"Michigan, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[6802,8561],[6808,8523],[6764,8521],[6774,8565],[6802,8561]]],[[[5863,9010],[5834,8966],[5759,8913],[5758,8947],[5863,9010]]],[[[6976,7443],[6815,7415],[6718,7400],[6716,7416],[6323,7372],[6364,7423],[6399,7509],[6417,7630],[6409,7695],[6330,7861],[6345,7903],[6322,7979],[6361,8059],[6352,8141],[6381,8159],[6381,8204],[6423,8217],[6453,8283],[6469,8252],[6460,8196],[6479,8180],[6501,8221],[6497,8298],[6533,8342],[6567,8348],[6542,8410],[6593,8461],[6646,8436],[6627,8469],[6669,8467],[6654,8434],[6698,8433],[6726,8400],[6837,8377],[6863,8359],[6884,8307],[6860,8285],[6902,8213],[6903,8115],[6872,8094],[6868,8040],[6821,8014],[6824,7934],[6868,7920],[6900,7950],[6937,8030],[6993,8059],[7042,8027],[7097,7866],[7128,7802],[7124,7704],[7066,7697],[7061,7631],[7021,7590],[7008,7500],[6976,7443]]],[[[5874,8741],[5900,8700],[5901,8651],[5938,8693],[6017,8689],[6049,8673],[6107,8596],[6174,8609],[6192,8589],[6244,8596],[6318,8663],[6430,8674],[6485,8705],[6529,8713],[6518,8645],[6560,8631],[6591,8646],[6609,8627],[6633,8653],[6688,8665],[6692,8589],[6745,8536],[6723,8521],[6631,8516],[6606,8530],[6598,8476],[6541,8514],[6480,8529],[6444,8521],[6426,8490],[6320,8470],[6302,8429],[6244,8388],[6264,8448],[6227,8437],[6192,8395],[6185,8444],[6096,8224],[6071,8242],[6080,8287],[6042,8286],[6045,8372],[5993,8394],[5968,8437],[5849,8447],[5795,8473],[5611,8510],[5588,8553],[5554,8572],[5623,8604],[5661,8642],[5731,8656],[5776,8696],[5805,8702],[5860,8764],[5868,8750],[5893,8802],[5958,8837],[6017,8829],[5931,8757],[5903,8703],[5900,8738],[5874,8741]]]]}},{"type":"Feature","id":"US.NV","properties":{"hc-group":"admin1","hc-middle-x":0.46,"hc-middle-y":0.38,"hc-key":"us-nv","hc-a2":"NV","labelrank":"0","hasc":"US.NV","woe-id":"2347587","state-fips":"32","fips":"US32","postal-code":"NV","name":"Nevada","country":"United States of America","region":"West","longitude":"-117.02","woe-name":"Nevada","latitude":"39.4299","woe-label":"Nevada, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[-50,7955],[510,7813],[897,7727],[1073,7690],[929,6975],[818,6420],[777,6221],[752,6180],[669,6227],[631,6217],[631,6159],[611,6068],[614,5982],[593,5936],[261,6430],[32,6779],[-253,7203],[-50,7955]]]}},{"type":"Feature","id":"US.NM","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.50,"hc-key":"us-nm","hc-a2":"NM","labelrank":"0","hasc":"US.NM","woe-id":"2347590","state-fips":"35","fips":"US35","postal-code":"NM","name":"New Mexico","country":"United States of America","region":"West","longitude":"-106.024","woe-name":"New Mexico","latitude":"34.5002","woe-label":"New Mexico, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[1841,6242],[3091,6104],[3083,6007],[3081,5975],[3072,5970],[2976,4810],[2181,4887],[2208,4823],[1830,4873],[1815,4756],[1630,4782],[1736,5514],[1841,6242]]]}},{"type":"Feature","id":"US.CO","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.50,"hc-key":"us-co","hc-a2":"CO","labelrank":"0","hasc":"US.CO","woe-id":"2347564","state-fips":"8","fips":"US08","postal-code":"CO","name":"Colorado","country":"United States of America","region":"West","longitude":"-105.543","woe-name":"Colorado","latitude":"38.9998","woe-label":"Colorado, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[3091,6104],[1841,6242],[1966,7108],[1990,7269],[2964,7155],[3357,7124],[3339,6866],[3329,6696],[3290,6089],[3091,6104]]]}},{"type":"Feature","id":"US.WY","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.50,"hc-key":"us-wy","hc-a2":"WY","labelrank":"0","hasc":"US.WY","woe-id":"2347609","state-fips":"56","fips":"US56","postal-code":"WY","name":"Wyoming","country":"United States of America","region":"West","longitude":"-107.552","woe-name":"Wyoming","latitude":"42.9999","woe-label":"Wyoming, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[2964,7155],[1990,7269],[1600,7329],[1643,7585],[1677,7785],[1750,8226],[1772,8355],[3056,8191],[3019,7770],[3010,7672],[3002,7575],[2964,7155]]]}},{"type":"Feature","id":"US.KS","properties":{"hc-group":"admin1","hc-middle-x":0.30,"hc-middle-y":0.49,"hc-key":"us-ks","hc-a2":"KS","labelrank":"0","hasc":"US.KS","woe-id":"2347575","state-fips":"20","fips":"US20","postal-code":"KS","name":"Kansas","country":"United States of America","region":"Midwest","longitude":"-98.3309","woe-name":"Kansas","latitude":"38.5","woe-label":"Kansas, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[3339,6866],[4682,6826],[4769,6780],[4726,6705],[4767,6667],[4781,6624],[4824,6600],[4833,6050],[3290,6089],[3329,6696],[3339,6866]]]}},{"type":"Feature","id":"US.NE","properties":{"hc-group":"admin1","hc-middle-x":0.43,"hc-middle-y":0.50,"hc-key":"us-ne","hc-a2":"NE","labelrank":"0","hasc":"US.NE","woe-id":"2347586","state-fips":"31","fips":"US31","postal-code":"NE","name":"Nebraska","country":"United States of America","region":"Midwest","longitude":"-99.68550000000001","woe-name":"Nebraska","latitude":"41.5002","woe-label":"Nebraska, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[4682,6826],[3339,6866],[3357,7124],[2964,7155],[3002,7575],[3010,7672],[4071,7611],[4148,7558],[4194,7574],[4297,7577],[4330,7551],[4409,7521],[4453,7479],[4469,7474],[4478,7398],[4515,7341],[4533,7291],[4529,7228],[4559,7206],[4571,7165],[4579,7031],[4592,6986],[4592,6981],[4592,6981],[4591,6981],[4591,6981],[4619,6915],[4682,6826]]]}},{"type":"Feature","id":"US.OK","properties":{"hc-group":"admin1","hc-middle-x":0.78,"hc-middle-y":0.52,"hc-key":"us-ok","hc-a2":"OK","labelrank":"0","hasc":"US.OK","woe-id":"2347595","state-fips":"40","fips":"US40","postal-code":"OK","name":"Oklahoma","country":"United States of America","region":"South","longitude":"-97.1309","woe-name":"Oklahoma","latitude":"35.452","woe-label":"Oklahoma, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[3290,6089],[4833,6050],[4833,6017],[4835,5920],[4877,5632],[4875,5180],[4790,5207],[4714,5260],[4685,5235],[4632,5257],[4595,5233],[4559,5242],[4474,5191],[4405,5248],[4360,5237],[4347,5258],[43
80012,5234],[4304,5199],[4283,5247],[4248,5227],[4181,5268],[4121,5246],[4093,5310],[4007,5296],[3908,5334],[3856,5341],[3842,5388],[3753,5388],[3686,5437],[3707,5936],[3081,5975],[3083,6007],[3091,6104],[3290,6089]]]}},{"type":"Feature","id":"US.MO","properties":{"hc-group":"admin1","hc-middle-x":0.48,"hc-middle-y":0.51,"hc-key":"us-mo","hc-a2":"MO","labelrank":"0","hasc":"US.MO","woe-id":"2347584","state-fips":"29","fips":"US29","postal-code":"MO","name":"Missouri","country":"United States of America","region":"Midwest","longitude":"-92.446","woe-name":"Missouri","latitude":"38.5487","woe-label":"Missouri, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[4835,5920],[4833,6017],[4833,6050],[4824,6600],[4781,6624],[4767,6667],[4726,6705],[4769,6780],[4682,6826],[4619,6915],[4591,6981],[4591,6981],[4592,6981],[4846,6977],[5120,6985],[5389,7006],[5449,6947],[5449,6947],[5449,6947],[5436,6893],[5454,6813],[5475,6774],[5540,6711],[5588,6679],[5616,6596],[5642,6567],[5672,6592],[5735,6561],[5692,6420],[5752,6350],[5792,6336],[5873,6276],[5898,6211],[5886,6165],[5918,6121],[5975,6097],[5976,6033],[5956,5988],[5932,6005],[5921,5968],[5911,5955],[5907,5967],[5890,5980],[5893,5966],[5901,5936],[5869,5898],[5888,5872],[5868,5834],[5731,5821],[5790,5904],[5767,5957],[4835,5920]]]}},{"type":"Feature","id":"US.IL","properties":{"hc-group":"admin1","hc-middle-x":0.56,"hc-middle-y":0.45,"hc-key":"us-il","hc-a2":"IL","labelrank":"0","hasc":"US.IL","woe-id":"2347572","state-fips":"17","fips":"US17","postal-code":"IL","name":"Illinois","country":"United States of America","region":"Midwest","longitude":"-89.1991","woe-name":"Illinois","latitude":"39.946","woe-label":"Illinois, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6119,7543],[6121,7488],[6192,7351],[6247,6739],[6226,6674],[6254,6638],[6266,6585],[6244,6520],[6222,6503],[6194,6422],[6176,6404],[6179,6328],[6159,6283],[6171,6241],[6102,6218],[6105,6131],[6015,6162],[5987,6157],[5962,6117],[5975,6097],[5918,6121],[5886,6165],[5898,6211],[5873,6276],[5792,6336],[5752,6350],[5692,6420],[5735,6561],[5672,6592],[5642,6567],[5616,6596],[5588,6679],[5540,6711],[5475,6774],[5454,6813],[5436,6893],[5449,6947],[5449,6947],[5449,6947],[5458,7004],[5496,7020],[5535,7098],[5536,7132],[5509,7160],[5523,7224],[5579,7232],[5646,7276],[5671,7332],[5672,7411],[5625,7441],[5575,7508],[5575,7508],[5606,7509],[5848,7523],[6119,7543]]]}},{"type":"Feature","id":"US.IN","properties":{"hc-group":"admin1","hc-middle-x":0.49,"hc-middle-y":0.43,"hc-key":"us-in","hc-a2":"IN","labelrank":"0","hasc":"US.IN","woe-id":"2347573","state-fips":"18","fips":"US18","postal-code":"IN","name":"Indiana","country":"United States of America","region":"Midwest","longitude":"-86.1396","woe-name":"Indiana","latitude":"39.8874","woe-label":"Indiana, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6192,7351],[6239,7329],[6323,7372],[6716,7416],[6718,7400],[6732,7296],[6797,6730],[6792,6683],[6808,6651],[6737,6617],[6682,6619],[6693,6572],[6657,6540],[6652,6507],[6622,6498],[6608,6438],[6583,6411],[6531,6450],[6485,6413],[6485,6390],[6444,6379],[6426,6401],[6359,6356],[6303,6376],[6269,6350],[6209,6363],[6179,6328],[6176,6404],[6194,6422],[6222,6503],[6244,6520],[6266,6585],[6254,6638],[6226,6674],[6247,6739],[6192,7351]]]}},{"type":"Feature","id":"US.VT","properties":{"hc-group":"admin1","hc-middle-x":0.42,"hc-middle-y":0.43,"hc-key":"us-vt","hc-a2":"VT","labelrank":"0","hasc":"US.VT","woe-id":"2347604","state-fips":"50","fips":"US50","postal-code":"
800VT","name":"Vermont","country":"United States of America","region":"Northeast","longitude":"-72.7317","woe-name":"Vermont","latitude":"44.0886","woe-label":"Vermont, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[8922,8096],[8856,8080],[8807,8284],[8772,8287],[8772,8328],[8740,8402],[8748,8453],[8739,8514],[8720,8537],[8695,8646],[8811,8677],[9024,8736],[9020,8661],[9045,8629],[9033,8585],[8978,8526],[8986,8490],[8981,8392],[8964,8320],[8979,8261],[8979,8148],[9005,8115],[9005,8115],[8922,8096]]]}},{"type":"Feature","id":"US.AR","properties":{"hc-group":"admin1","hc-middle-x":0.47,"hc-middle-y":0.43,"hc-key":"us-ar","hc-a2":"AR","labelrank":"0","hasc":"US.AR","woe-id":"2347562","state-fips":"5","fips":"US05","postal-code":"AR","name":"Arkansas","country":"United States of America","region":"South","longitude":"-92.14279999999999","woe-name":"Arkansas","latitude":"34.7563","woe-label":"Arkansas, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[4975,5016],[4971,5157],[4910,5157],[4875,5180],[4877,5632],[4835,5920],[5767,5957],[5790,5904],[5731,5821],[5868,5834],[5871,5791],[5827,5763],[5835,5714],[5798,5670],[5802,5602],[5762,5567],[5770,5547],[5730,5520],[5706,5470],[5709,5414],[5635,5340],[5647,5309],[5609,5297],[5620,5250],[5583,5215],[5607,5162],[5598,5120],[5618,5077],[5605,5041],[5563,5038],[4975,5016]]]}},{"type":"Feature","id":"US.TX","properties":{"hc-group":"admin1","hc-middle-x":0.69,"hc-middle-y":0.52,"hc-key":"us-tx","hc-a2":"TX","labelrank":"0","hasc":"US.TX","woe-id":"2347602","state-fips":"48","fips":"US48","postal-code":"TX","name":"Texas","country":"United States of America","region":"South","longitude":"-98.7607","woe-name":"Texas","latitude":"31.131","woe-label":"Texas, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[4875,5180],[4910,5157],[4971,5157],[4975,5016],[4980,4752],[5033,4679],[5031,4646],[5105,4506],[5093,4447],[5059,4380],[5065,4253],[5047,4228],[5018,4172],[5032,4146],[4989,4147],[4854,4084],[4875,4116],[4831,4102],[4842,4162],[4778,4141],[4769,4106],[4839,4052],[4789,4023],[4801,4063],[4739,3976],[4638,3901],[4557,3881],[4544,3857],[4451,3804],[4448,3787],[4381,3749],[4308,3672],[4340,3735],[4307,3756],[4261,3721],[4306,3712],[4263,3655],[4221,3658],[4249,3617],[4213,3527],[4195,3545],[4141,3510],[4206,3511],[4178,3442],[4232,3206],[4272,3164],[4203,3135],[4114,3192],[4013,3198],[3979,3230],[3915,3245],[3878,3279],[3810,3292],[3795,3375],[3727,3467],[3715,3534],[3721,3603],[3677,3628],[3595,3762],[3548,3801],[3525,3881],[3477,3970],[3469,4021],[3393,4097],[3411,4119],[3365,4132],[3310,4204],[3150,4220],[3103,4248],[3082,4218],[3018,4214],[2959,4096],[2967,4083],[2896,4024],[2861,4031],[2754,4113],[2695,4134],[2651,4187],[2595,4230],[2567,4305],[2573,4370],[2512,4503],[2437,4557],[2309,4714],[2275,4731],[2239,4806],[2208,4823],[2181,4887],[2976,4810],[3072,5970],[3081,5975],[3707,5936],[3686,5437],[3753,5388],[3842,5388],[3856,5341],[3908,5334],[4007,5296],[4093,5310],[4121,5246],[4181,5268],[4248,5227],[4283,5247],[4304,5199],[4312,5234],[4347,5258],[4360,5237],[4405,5248],[4474,5191],[4559,5242],[4595,5233],[4632,5257],[4685,5235],[4714,5260],[4790,5207],[4875,5180]]],[[[4269,3610],[4220,3493],[4219,3420],[4245,3297],[4214,3394],[4222,3530],[4269,3610]]]]}},{"type":"Feature","id":"US.RI","properties":{"hc-group":"admin1","hc-middle-x":0.55,"hc-middle-y":0.78,"hc-key":"us-ri","hc-a2":"RI","labelrank":"0","hasc":"US.RI","woe-id":"2347598","state-fips":"44","fips":"US44","postal-code":"RI","name":"Rhode Island","country":"United States of America","region":"Northeast","longitude":"-71.5082","woe-name":"Rhode Island","latitude":"41.6242","woe-label":"Rhode Island, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[9339,7878],[9325,7871],[9314,7915],[9327,7915],[9339,7878]]],[[[9177,7968],[9254,7990],[9278,7938],[9304,7921],[9320,7866],[9285,7851],[9279,7822],[9216,7790],[9212,7845],[9177,7968]]]]}},{"type":"Feature","id":"US.AL","properties":{"hc-group":"admin1","hc-middle-x":0.47,"hc-middle-y":0.42,"hc-key":"us-al","hc-a2":"AL","labelrank":"0","hasc":"US.AL","woe-id":"2347559","state-fips":"1","fips":"US01","postal-code":"AL","name":"Alabama","country":"United States of America","region":"South","longitude":"-86.7184","woe-name":"Alabama","latitude":"32.8551","woe-label":"Alabama, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6487,4443],[6440,4378],[6291,4361],[6336,4375],[6317,4398],[6267,4399],[6216,4788],[6236,5574],[6215,5600],[6213,5603],[6762,5652],[6912,5135],[6947,5053],[6998,4970],[6970,4930],[6958,4846],[6990,4774],[6983,4704],[7015,4637],[6436,4574],[6431,4541],[6487,4486],[6487,4443]]]}},{"type":"Feature","id":"US.MS","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.48,"hc-key":"us-ms","hc-a2":"MS","labelrank":"0","hasc":"US.MS","woe-id":"2347583","state-fips":"28","fips":"US28","postal-code":"MS","name":"Mississippi","country":"United States of America","region":"South","longitude":"-89.71890000000001","woe-name":"Mississippi","latitude":"32.8657","woe-label":"Mississippi, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6267,4399],[6164,4396],[6059,4360],[6017,4328],[5936,4451],[5955,4536],[5523,4510],[5540,4526],[5522,4581],[5545,4585],[5545,4642],[5565,4662],[5584,4738],[5636,4781],[5670,4868],[5629,4895],[5611,4977],[5627,5018],[5605,5041],[5618,5077],[5598,5120],[5607,5162],[5583,5215],[5620,5250],[5609,5297],[5647,5309],[5635,5340],[5709,5414],[5706,5470],[5730,5520],[5770,5547],[5762,5567],[6122,5592],[6215,5600],[6236,5574],[6216,4788],[6267,4399]]]}},{"type":"Feature","id":"US.NC","properties":{"hc-group":"admin1","hc-middle-x":0.62,"hc-middle-y":0.50,"hc-key":"us-nc","hc-a2":"NC","labelrank":"0","hasc":"US.NC","woe-id":"2347592","state-fips":"37","fips":"US37","postal-code":"NC","name":"North Carolina","country":"United States of America","region":"South","longitude":"-78.866","woe-name":"North Carolina","latitude":"35.6152","woe-label":"North Carolina, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[8716,6394],[8720,6381],[8694,6389],[8694,6389],[8704,6391],[8705,6390],[8709,6392],[8712,6393],[8716,6394]]],[[[8727,6396],[8756,6332],[8852,6203],[8782,6278],[8722,6395],[8724,6396],[8727,6396]]],[[[7532,6183],[7623,6187],[7858,6219],[8691,6388],[8768,6281],[8670,6318],[8707,6291],[8620,6230],[8584,6234],[8581,6204],[8719,6244],[8742,6161],[8737,6222],[8760,6252],[8795,6220],[8797,6153],[8772,6164],[8750,6091],[8709,6073],[8638,6097],[8638,6070],[8551,6078],[8664,6053],[8635,6009],[8661,6003],[8610,5957],[8551,5988],[8590,5949],[8631,5940],[8676,5955],[8686,5995],[8721,5956],[8670,5890],[856
8005,5865],[8469,5764],[8443,5714],[8432,5616],[8368,5624],[8302,5600],[8029,5790],[7791,5756],[7782,5790],[7714,5830],[7457,5802],[7290,5724],[7210,5711],[7034,5685],[7038,5756],[7073,5762],[7085,5807],[7131,5847],[7188,5859],[7269,5928],[7298,5973],[7352,6010],[7365,5989],[7437,6050],[7464,6038],[7490,6093],[7523,6123],[7532,6183]]]]}},{"type":"Feature","id":"US.VA","properties":{"hc-group":"admin1","hc-middle-x":0.64,"hc-middle-y":0.54,"hc-key":"us-va","hc-a2":"VA","labelrank":"0","hasc":"US.VA","woe-id":"2347605","state-fips":"51","fips":"US51","postal-code":"VA","name":"Virginia","country":"United States of America","region":"South","longitude":"-78.2431","woe-name":"Virginia","latitude":"37.7403","woe-label":"Virginia, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[8722,6395],[8696,6432],[8704,6391],[8694,6389],[8694,6389],[8686,6398],[8691,6388],[7858,6219],[7623,6187],[7532,6183],[7472,6170],[7116,6120],[7221,6173],[7268,6217],[7309,6294],[7363,6332],[7431,6411],[7470,6351],[7530,6341],[7567,6378],[7595,6360],[7649,6382],[7664,6419],[7690,6412],[7773,6459],[7767,6505],[7840,6674],[7857,6759],[7932,6729],[7974,6848],[7998,6837],[8048,6900],[8072,6952],[8076,7028],[8188,6969],[8198,7020],[8256,7009],[8251,6984],[8341,6945],[8347,6939],[8353,6939],[8367,6892],[8334,6870],[8323,6802],[8347,6786],[8385,6812],[8429,6763],[8484,6768],[8507,6740],[8571,6721],[8572,6647],[8536,6648],[8499,6683],[8431,6711],[8532,6636],[8597,6606],[8561,6578],[8558,6548],[8577,6545],[8611,6494],[8586,6478],[8526,6534],[8449,6533],[8518,6510],[8580,6459],[8619,6482],[8679,6482],[8727,6396],[8724,6396],[8722,6395]],[[8558,6548],[8552,6548],[8552,6548],[8552,6548],[8484,6605],[8532,6551],[8552,6548],[8552,6548],[8552,6548],[8557,6544],[8558,6548]]],[[[8709,6392],[8713,6400],[8716,6394],[8712,6393],[8709,6392]]],[[[8765,6797],[8756,6760],[8761,6796],[8765,6797]]],[[[8688,6764],[8691,6772],[8739,6789],[8726,6737],[8674,6599],[8696,6561],[8678,6528],[8652,6583],[8652,6652],[8688,6764]]]]}},{"type":"Feature","id":"US.IA","properties":{"hc-group":"admin1","hc-middle-x":0.35,"hc-middle-y":0.49,"hc-key":"us-ia","hc-a2":"IA","labelrank":"0","hasc":"US.IA","woe-id":"2347574","state-fips":"19","fips":"US19","postal-code":"IA","name":"Iowa","country":"United States of America","region":"Midwest","longitude":"-93.3891","woe-name":"Iowa","latitude":"42.0423","woe-label":"Iowa, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[5575,7508],[5625,7441],[5672,7411],[5671,7332],[5646,7276],[5579,7232],[5523,7224],[5509,7160],[5536,7132],[5535,7098],[5496,7020],[5458,7004],[5449,6947],[5449,6947],[5449,6947],[5389,7006],[5120,6985],[4846,6977],[4592,6981],[4591,6981],[4579,7031],[4571,7165],[4559,7206],[4529,7228],[4533,7291],[4515,7341],[4478,7398],[4469,7474],[4453,7479],[4423,7540],[4459,7636],[4438,7663],[4433,7734],[4459,7735],[5137,7745],[5445,7758],[5479,7702],[5465,7670],[5494,7563],[5561,7544],[5577,7513],[5575,7508],[5575,7508]]]}},{"type":"Feature","id":"US.MD","properties":{"hc-group":"admin1","hc-middle-x":0.61,"hc-middle-y":0.27,"hc-key":"us-md","hc-a2":"MD","labelrank":"0","hasc":"US.MD","woe-id":"2347579","state-fips":"24","fips":"US24","postal-code":"MD","name":"Maryland","country":"United States of America","region":"South","longitude":"-77.0454","woe-name":"Maryland","latitude":"39.3874","woe-label":"Maryland, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[8761,6796],[8769,6819],[8765,6797],[8761,6796]]],[[[8779,6915],[8779,6884],[8777,6914],[8777,6914],[8779,6915]]],[[[8739,6789],[8691,6772],[8688,6764],[8647,6746],[8650,6806],[8590,6833],[8592,6815],[8525,6862],[8581,6899],[8555,6926],[8511,6936],[8544,6974],[8512,6986],[8496,7036],[8530,7108],[8537,7165],[8497,7093],[8472,7099],[8469,7056],[8432,7052],[8471,7014],[8458,6959],[8483,6868],[8513,6820],[8462,6849],[8543,6778],[8548,6753],[8491,6782],[8433,6785],[8382,6834],[8354,6797],[8335,6827],[8370,6891],[8367,6916],[8385,6943],[8341,6945],[8251,6984],[8256,7009],[8198,7020],[8162,7087],[8101,7099],[8046,7067],[8043,7043],[8000,7038],[7977,7057],[7949,7003],[7928,7007],[7857,6922],[7835,7053],[8176,7119],[8559,7201],[8650,6887],[8771,6913],[8770,6856],[8753,6848],[8739,6789]]]]}},{"type":"Feature","id":"US.DE","properties":{"hc-group":"admin1","hc-middle-x":0.91,"hc-middle-y":0.77,"hc-key":"us-de","hc-a2":"DE","labelrank":"0","hasc":"US.DE","woe-id":"2347566","state-fips":"10","fips":"US10","postal-code":"DE","name":"Delaware","country":"United States of America","region":"South","longitude":"-75.41119999999999","woe-name":"Delaware","latitude":"38.8657","woe-label":"Delaware, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[8777,6914],[8771,6915],[8771,6913],[8650,6887],[8559,7201],[8589,7239],[8625,7239],[8601,7183],[8613,7145],[8652,7114],[8675,7051],[8735,6995],[8751,6999],[8779,6915],[8777,6914],[8777,6914]]]}},{"type":"Feature","id":"US.PA","properties":{"hc-group":"admin1","hc-middle-x":0.50,"hc-middle-y":0.49,"hc-key":"us-p
800a","hc-a2":"PA","labelrank":"0","hasc":"US.PA","woe-id":"2347597","state-fips":"42","fips":"US42","postal-code":"PA","name":"Pennsylvania","country":"United States of America","region":"Northeast","longitude":"-77.60939999999999","woe-name":"Pennsylvania","latitude":"40.8601","woe-label":"Pennsylvania, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[8611,7549],[8632,7530],[8615,7490],[8627,7443],[8646,7444],[8739,7361],[8691,7310],[8673,7276],[8625,7239],[8589,7239],[8559,7201],[8176,7119],[7835,7053],[7630,7017],[7589,7253],[7589,7253],[7530,7595],[7556,7610],[7662,7693],[7674,7625],[8514,7797],[8573,7765],[8588,7712],[8673,7663],[8673,7663],[8611,7549]]]}},{"type":"Feature","id":"US.NJ","properties":{"hc-group":"admin1","hc-middle-x":0.68,"hc-middle-y":0.64,"hc-key":"us-nj","hc-a2":"NJ","labelrank":"0","hasc":"US.NJ","woe-id":"2347589","state-fips":"34","fips":"US34","postal-code":"NJ","name":"New Jersey","country":"United States of America","region":"Northeast","longitude":"-74.4653","woe-name":"New Jersey","latitude":"40.0449","woe-label":"New Jersey, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[8611,7549],[8673,7663],[8759,7635],[8846,7608],[8840,7532],[8810,7504],[8805,7466],[8866,7456],[8875,7438],[8886,7281],[8853,7228],[8849,7172],[8812,7122],[8784,7047],[8766,7040],[8769,7097],[8716,7095],[8623,7151],[8610,7186],[8624,7231],[8676,7269],[8691,7310],[8739,7361],[8646,7444],[8627,7443],[8615,7490],[8632,7530],[8611,7549]]]}},{"type":"Feature","id":"US.NY","properties":{"hc-group":"admin1","hc-middle-x":0.54,"hc-middle-y":0.49,"hc-key":"us-ny","hc-a2":"NY","labelrank":"0","hasc":"US.NY","woe-id":"2347591","state-fips":"36","fips":"US36","postal-code":"NY","name":"New York","country":"United States of America","region":"Northeast","longitude":"-75.32420000000001","woe-name":"New York","latitude":"43.1988","woe-label":"New York, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[8673,7663],[8588,7712],[8573,7765],[8514,7797],[7674,7625],[7662,7693],[7763,7795],[7803,7872],[7754,7932],[7747,7976],[7812,8010],[7918,8040],[7988,8041],[8031,8026],[8061,8043],[8133,8055],[8180,8080],[8224,8141],[8264,8164],[8243,8232],[8257,8274],[8225,8259],[8202,8296],[8230,8345],[8280,8379],[8297,8437],[8358,8526],[8422,8581],[8453,8585],[8695,8646],[8720,8537],[8739,8514],[8748,8453],[8740,8402],[8772,8328],[8772,8287],[8807,8284],[8856,8080],[8853,7901],[8860,7896],[8896,7702],[8912,7685],[8874,7645],[8896,7623],[8881,7575],[8930,7617],[8982,7620],[9002,7641],[9094,7671],[9134,7722],[9173,7697],[9177,7721],[9184,7702],[9231,7730],[9141,7649],[9083,7619],[9032,7570],[8936,7519],[8857,7498],[8812,7468],[8814,7503],[8840,7506],[8858,7554],[8843,7544],[8846,7608],[8759,7635],[8695,7656],[8673,7663],[8673,7663]]]}},{"type":"Feature","id":"US.ID","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.75,"hc-key":"us-id","hc-a2":"ID","labelrank":"0","hasc":"US.ID","woe-id":"2347571","state-fips":"16","fips":"US16","postal-code":"ID","name":"Idaho","country":"United States of America","region":"West","longitude":"-114.133","woe-name":"Idaho","latitude":"43.7825","woe-label":"Idaho, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[926,9593],[1093,9555],[1036,9301],[1076,9210],[1061,9142],[1117,9085],[1172,8979],[1170,8959],[1219,8896],[1258,8897],[1253,8859],[1219,8796],[1204,8727],[1211,8698],[1177,8675],[1167,8620],[1200,8590],[1278,8630],[1303,8596],[1303,8522],[1338,8434],[1326,8419],[1347,8377],[1374,8375],[1391,8331],[1392,8280],[1415,8254],[1451,8281],[1508,8261],[1536,8282],[1614,8258],[1671,8261],[1686,8296],[1713,8295],[1750,8226],[1677,7785],[1643,7585],[1393,7629],[1073,7690],[897,7727],[510,7813],[616,8265],[662,8361],[615,8403],[624,8450],[718,8545],[776,8646],[823,8698],[821,8744],[785,8775],[774,8822],[779,8870],[767,8925],[926,9593]]]}},{"type":"Feature","id":"US.SD","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.44,"hc-key":"us-sd","hc-a2":"SD","labelrank":"0","hasc":"US.SD","woe-id":"2347600","state-fips":"46","fips":"US46","postal-code":"SD","name":"South Dakota","country":"United States of America","region":"Midwest","longitude":"-100.255","woe-name":"South Dakota","latitude":"44.4711","woe-label":"South Dakota, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[3010,7672],[3019,7770],[3056,8191],[3059,8191],[3080,8436],[4231,8374],[4444,8372],[4429,8325],[4387,8283],[4419,8232],[4462,8203],[4459,7735],[4433,7734],[4438,7663],[4459,7636],[4423,7540],[4453,7479],[4409,7521],[4330,7551],[4297,7577],[4194,7574],[4148,7558],[4071,7611],[3010,7672]]]}},{"type":"Feature","id":"US.CT","properties":{"hc-group":"admin1","hc-middle-x":0.48,"hc-middle-y":0.50,"hc-key":"us-ct","hc-a2":"CT","labelrank":"0","hasc":"US.CT","woe-id":"2347565","state-fips":"9","fips":"US09","postal-code":"CT","name":"Connecticut","country":"United States of America","region":"Northeast","longitude":"-72.7594","woe-name":"Connecticut","latitude":"41.6486","woe-label":"Connecticut, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[9216,7790],[9204,7796],[9095,7743],[9023,7721],[8972,7689],[8896,7623],[8874,7645],[8912,7685],[8896,7702],[8860,7896],[8997,7925],[9177,7968],[9212,7845],[9216,7790]]]}},{"type":"Feature","id":"US.NH","properties":{"hc-group":"admin1","hc-middle-x":0.38,"hc-middle-y":0.57,"hc-key":"us-nh","hc-a2":"NH","labelrank":"0","hasc":"US.NH","woe-id":"2347588","state-fips":"33","fips":"US33","postal-code":"NH","name":"New Hampshire","country":"United States of America","region":"Northeast","longitude":"-71.6301","woe-name":"New Hampshire","latitude":"43.5993","woe-label":"New Hampshire, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[9298,8291],[9306,8288],[9300,8236],[9242,8201],[9222,8166],[9005,8115],[9005,8115],[8979,8148],[8979,8261],[8964,8320],[8981,8392],[8986,8490],[8978,8526],[9033,8585],[9045,8629],[9020,8661],[9024,8736],[9036,8814],[9079,8830],[9225,8399],[9235,8354],[9298,8291]]]}},{"type":"Feature","id":"US.KY","properties":{"hc-group":"admin1","hc-middle-x":0.65,"hc-middle-y":0.50,"hc-key":"us-ky","hc-a2":"KY","labelrank":"0","hasc":"US.KY","woe-id":"2347576","state-fips":"21","fips":"US21","postal-code":"KY","name":"Kentucky","country":"United States of America","region":"South","longitude":"-85.5729","woe-name":"Kentucky","latitude":"37.3994","woe-label":"Kentucky, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[5893,5966],[5890,5980],[5907,5967],[5893,5966]]],[[[5921,5968],[5932,6005],[5956,5988],[5976,6033],[5975,6097],[5962,6117],[5987,6157],[6015,6162],[6105,6131],[6102,6218],[6171,6241],[6159,6283],[6179,6328],[6209,6363],[6269,6350],[6303,6376],[6359,6356],[6426,6401],[6444,6379],[6485,6390],[6485,6413],[6531,6450],[6583,6411],[6608,6438],[6622,6498],[6652,6507],[6657,6540],[6693,6572],[6682,6619],[6737,6617],[6808,6651],[6792,6683],[6797,6730],[6873,6741],[6900,6725],[6933,6672],[7001,6669],[7036,6641],[7069,6664],[7119,6643],[7198,6692],[7216,6653],[7270,6617],[7270,6617],[7270,6617],[7272,6548],[7358,6439],[7431,6411],[7363,6332],[7309,6294],[7268,6217],[7221,6173],[7116,6120],[7104,6113],[6814,6086],[6751,6077],[6516,6061],[6250,6032],[6200,6040],[6210,5991],[5921,5968]]],[[[7270,6617],[7271,6617],[7270,6617],[7270,6617],[7270,6617],[7270,6617]]]]}},{"type":"Feature","id":"US.OH","properties":{"hc-group":"admin1","hc-middle-x":0.45,"hc-middle-y":0.53,"hc-key":"us-oh","hc-a2":"OH","labelrank":"0","hasc":"US.OH","woe-id":"2347594","state-fips":"39","fips":"US39","postal-code":"OH","name":"Ohio","country":"United States of America","region":"Midwest","longitude":"-82.67189999999999","woe-name":"Ohio","latitude":"40.0924","woe-label":"Ohio, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6718,7400],[6815,7415],[6976,7443],[7095,7408],[7082,7394],[7173,7383],[7258,7426],[7329,7440],[7383,7503],[7530,7595],[7589,7253],[7561,7233],[7587,7158],[7558,7018],[7564,6981],[7504,6911],[7454,6903],[7419,6863],[7399,6809],[7416,6775],[7391,6755],[7354,6783],[7333,6723],[7346,6679],[7321,6631],[7271,6617],[7270,6617],[7216,6653],[7198,6692],[7119,6643],[7069,6664],[7036,6641],[7001,6669],[6933,6672],[6900,6725],[6873,6741],[6797,6730],[6732,7296],[6718,7400]]]}},{"type":"Feature","id":"US.TN","properties":{"hc-group":"admin1","hc-middle-x":0.43,"hc-middle-y":0.54,"hc-key":"us-tn","hc-a2":"TN","labelrank":"0","hasc":"US.TN","woe-id":"2347601","state-fips":"47","fips":"US47","postal-code":"TN","name":"Tennessee","country":"United States of America","region":"South","longitude":"-86.3415","woe-name":"Tennessee","latitude":"35.7514","woe-label":"Tennessee, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6215,5600],[6122,5592],[5762,5567],[5802,5602],[5798,5670],[5835,5714],[5827,5
800763],[5871,5791],[5868,5834],[5888,5872],[5869,5898],[5901,5936],[5893,5966],[5907,5967],[5911,5955],[5921,5968],[6210,5991],[6200,6040],[6250,6032],[6516,6061],[6751,6077],[6814,6086],[7104,6113],[7116,6120],[7472,6170],[7532,6183],[7523,6123],[7490,6093],[7464,6038],[7437,6050],[7365,5989],[7352,6010],[7298,5973],[7269,5928],[7188,5859],[7131,5847],[7085,5807],[7073,5762],[7038,5756],[7034,5685],[6918,5671],[6762,5652],[6213,5603],[6215,5600]]]}},{"type":"Feature","id":"US.WV","properties":{"hc-group":"admin1","hc-middle-x":0.35,"hc-middle-y":0.56,"hc-key":"us-wv","hc-a2":"WV","labelrank":"0","hasc":"US.WV","woe-id":"2347607","state-fips":"54","fips":"US54","postal-code":"WV","name":"West Virginia","country":"United States of America","region":"South","longitude":"-80.7128","woe-name":"West Virginia","latitude":"38.6422","woe-label":"West Virginia, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[7270,6617],[7271,6617],[7321,6631],[7346,6679],[7333,6723],[7354,6783],[7391,6755],[7416,6775],[7399,6809],[7419,6863],[7454,6903],[7504,6911],[7564,6981],[7558,7018],[7587,7158],[7561,7233],[7589,7253],[7630,7017],[7835,7053],[7857,6922],[7928,7007],[7949,7003],[7977,7057],[8000,7038],[8043,7043],[8046,7067],[8101,7099],[8162,7087],[8198,7020],[8188,6969],[8076,7028],[8072,6952],[8048,6900],[7998,6837],[7974,6848],[7932,6729],[7857,6759],[7840,6674],[7767,6505],[7773,6459],[7690,6412],[7664,6419],[7649,6382],[7595,6360],[7567,6378],[7530,6341],[7470,6351],[7431,6411],[7358,6439],[7272,6548],[7270,6617],[7270,6617],[7270,6617],[7270,6617],[7270,6617]]]}},{"type":"Feature","id":"US.DC","properties":{"hc-group":"admin1","hc-middle-x":0.57,"hc-middle-y":0.14,"hc-key":"us-dc","hc-a2":"DC","labelrank":"9","hasc":"US.DC","woe-id":"2347567","state-fips":"11","fips":"US11","postal-code":"DC","name":"District of Columbia","country":"United States of America","region":"South","longitude":"-77.01130000000001","woe-name":"District of Columbia","latitude":"38.8922","woe-label":"District of Columbia, US, United States","type":"Federal District"},"geometry":{"type":"Polygon","coordinates":[[[8367,6916],[8366,6929],[8353,6939],[8347,6939],[8341,6945],[8385,6943],[8367,6916]]]}},{"type":"Feature","id":"US.LA","properties":{"hc-group":"admin1","hc-middle-x":0.34,"hc-middle-y":0.46,"hc-key":"us-la","hc-a2":"LA","labelrank":"0","hasc":"US.LA","woe-id":"2347577","state-fips":"22","fips":"US22","postal-code":"LA","name":"Louisiana","country":"United States of America","region":"South","longitude":"-91.9991","woe-name":"Louisiana","latitude":"30.5274","woe-label":"Louisiana, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6017,4328],[5915,4340],[5856,4368],[5812,4302],[5834,4283],[5904,4280],[5937,4313],[5992,4313],[5957,4259],[6001,4245],[6035,4298],[6067,4259],[5982,4181],[6027,4123],[6107,4114],[6148,4081],[6125,4035],[6070,4042],[6042,4077],[5966,4094],[5980,4115],[5902,4141],[5913,4064],[5876,4028],[5860,4066],[5811,4082],[5780,4036],[5724,4031],[5620,4068],[5631,4121],[5569,4128],[5532,4184],[5493,4173],[5494,4203],[5430,4175],[5437,4145],[5478,4154],[5526,4139],[5500,4112],[5431,4136],[5399,4121],[5305,4135],[5186,4176],[5128,4173],[5042,4153],[5047,4228],[5065,4253],[5059,4380],[5093,4447],[5105,4506],[5031,4646],[5033,4679],[4980,4752],[4975,5016],[5563,5038],[5605,5041],[5627,5018],[5611,4977],[5629,4895],[5670,4868],[5636,4781],[5584,4738],[5565,4662],[5545,4642],[5545,4585],[5522,4581],[5540,4526],[5523,4510],[5955,4536],[5936,4451],[6017,4328]]]}},{"type":"Feature","id":"US.FL","properties":{"hc-group":"admin1","hc-middle-x":0.77,"hc-middle-y":0.50,"hc-key":"us-fl","hc-a2":"FL","labelrank":"0","hasc":"US.FL","woe-id":"2347568","state-fips":"12","fips":"US12","postal-code":"FL","name":"Florida","country":"United States of America","region":"South","longitude":"-81.6228","woe-name":"Florida","latitude":"28.1568","woe-label":"Florida, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[6487,4443],[6487,4486],[6431,4541],[6436,4574],[7015,4637],[7055,4568],[7649,4609],[7670,4559],[7699,4566],[7687,4660],[7713,4686],[7808,4673],[7822,4672],[7849,4570],[7908,4430],[8008,4269],[8125,4130],[8113,4109],[8144,4012],[8198,3936],[8297,3758],[8321,3651],[8331,3476],[8302,3361],[8313,3273],[8270,3209],[8291,3273],[8273,3290],[8230,3255],[8194,3260],[8141,3234],[8115,3258],[8115,3303],[8070,3379],[7979,3429],[7953,3420],[7907,3543],[7846,3536],[7839,3654],[7796,3674],[7819,3634],[7779,3640],[7675,3779],[7722,3884],[7712,3915],[7671,3899],[7670,3851],[7622,3872],[7618,3966],[7635,4045],[7626,4157],[7576,4229],[7525,4222],[7473,4277],[7425,4302],[7349,4395],[7265,4433],[7186,4403],[7198,4370],[7162,4370],[7148,4336],[7067,4277],[6979,4284],[6986,4316],[6958,4349],[6892,4391],[6798,4429],[6694,4444],[6468,4388],[6505,4431],[6487,4443]]]}},{"type":"Feature","id":"US.GA","properties":{"hc-group":"admin1","hc-middle-x":0.43,"hc-middle-y":0.52,"hc-key":"us-ga","hc-a2":"GA","labelrank":"0","hasc":"US.GA","woe-id":"2347569","state-fips":"13","fips":"US13","postal-code":"GA","name":"Georgia","country":"United States of America","region":"South","longitude":"-83.4078","woe-name":"Georgia","latitude":"32.8547","woe-label":"Georgia, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[7713,4686],[7687,4660],[7699,4566],[7670,4559],[7649,4609],[7055,4568],[7015,4637],[6983,4704],[6990,4774],[6958,4846],[6970,4930],[6998,4970],[6947,5053],[6912,5135],[6762,5652],[6918,5671],[7034,5685],[7210,5711],[7290,5724],[7249,5641],[7323,5596],[7364,5593],[7401,5526],[7444,5475],[7523,5430],[7538,5402],[7600,5369],[7606,5340],[7651,5293],[7708,5272],[7750,5169],[7800,5140],[7844,5042],[7887,5035],[7901,5029],[7811,4893],[7836,4826],[7798,4798],[7817,4730],[7808,4673],[7713,4686]]]}},{"type":"Feature","id":"US.SC","properties":{"hc-group":"admin1","hc-middle-x":0.54,"hc-middle-y":0.35,"hc-key":"us-sc","hc-a2":"SC","labelrank":"0","hasc":"US.SC","woe-id":"2347599","state-fips":"45","fips":"US45","postal-code":"SC","name":"South Carolina","country":"United States of America","region":"South","longitude":"-80.6471","woe-name":"South Carolina","latitude":"33.8578","woe-label":"South Carolina, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[8302,5600],[8236,5523],[8205,5458],[8206,5396],[8173,5348],[8140,5346],[8131,5311],[8056,5219],[7989,5173],[7913,5166],[7971,5149],[7887,5035],[7844,5042],[7800,5140],[7750,5169],[7708,5272],[7651,5293],[7606,5340],[7600,5369],[7538,5402],[7
800523,5430],[7444,5475],[7401,5526],[7364,5593],[7323,5596],[7249,5641],[7290,5724],[7457,5802],[7714,5830],[7782,5790],[7791,5756],[8029,5790],[8302,5600]]]}},{"type":"Feature","id":"US.MN","properties":{"hc-group":"admin1","hc-middle-x":0.38,"hc-middle-y":0.60,"hc-key":"us-mn","hc-a2":"MN","labelrank":"0","hasc":"US.MN","woe-id":"2347582","state-fips":"27","fips":"US27","postal-code":"MN","name":"Minnesota","country":"United States of America","region":"Midwest","longitude":"-93.364","woe-name":"Minnesota","latitude":"46.0592","woe-label":"Minnesota, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[4333,9174],[4688,9173],[4690,9272],[4748,9253],[4770,9125],[4791,9104],[4854,9085],[4916,9083],[4938,9052],[4984,9060],[5024,9084],[5073,9082],[5132,9063],[5181,8985],[5194,9006],[5240,9014],[5304,8955],[5351,8941],[5438,8996],[5463,8964],[5570,8974],[5607,8949],[5668,8950],[5592,8895],[5514,8864],[5432,8802],[5349,8700],[5245,8603],[5214,8573],[5220,8422],[5147,8375],[5116,8322],[5117,8285],[5158,8253],[5144,8214],[5146,8117],[5136,8072],[5181,8035],[5217,8029],[5273,7994],[5360,7903],[5405,7892],[5431,7866],[5445,7758],[5137,7745],[4459,7735],[4462,8203],[4419,8232],[4387,8283],[4429,8325],[4444,8372],[4436,8472],[4402,8555],[4409,8628],[4397,8650],[4394,8777],[4347,8957],[4343,9053],[4353,9083],[4333,9174]]]}},{"type":"Feature","id":"US.MT","properties":{"hc-group":"admin1","hc-middle-x":0.55,"hc-middle-y":0.53,"hc-key":"us-mt","hc-a2":"MT","labelrank":"0","hasc":"US.MT","woe-id":"2347585","state-fips":"30","fips":"US30","postal-code":"MT","name":"Montana","country":"United States of America","region":"West","longitude":"-110.044","woe-name":"Montana","latitude":"46.9965","woe-label":"Montana, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[1093,9555],[1689,9433],[3150,9234],[3084,8486],[3080,8436],[3059,8191],[3056,8191],[1772,8355],[1750,8226],[1713,8295],[1686,8296],[1671,8261],[1614,8258],[1536,8282],[1508,8261],[1451,8281],[1415,8254],[1392,8280],[1391,8331],[1374,8375],[1347,837
8007],[1326,8419],[1338,8434],[1303,8522],[1303,8596],[1278,8630],[1200,8590],[1167,8620],[1177,8675],[1211,8698],[1204,8727],[1219,8796],[1253,8859],[1258,8897],[1219,8896],[1170,8959],[1172,8979],[1117,9085],[1061,9142],[1076,9210],[1036,9301],[1093,9555]]]}},{"type":"Feature","id":"US.ND","properties":{"hc-group":"admin1","hc-middle-x":0.47,"hc-middle-y":0.50,"hc-key":"us-nd","hc-a2":"ND","labelrank":"0","hasc":"US.ND","woe-id":"2347593","state-fips":"38","fips":"US38","postal-code":"ND","name":"North Dakota","country":"United States of America","region":"Midwest","longitude":"-100.302","woe-name":"North Dakota","latitude":"47.4675","woe-label":"North Dakota, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[3080,8436],[3084,8486],[3150,9234],[3468,9209],[4333,9174],[4353,9083],[4343,9053],[4347,8957],[4394,8777],[4397,8650],[4409,8628],[4402,8555],[4436,8472],[4444,8372],[4231,8374],[3080,8436]]]}},{"type":"Feature","id":"US.AZ","properties":{"hc-group":"admin1","hc-middle-x":0.51,"hc-middle-y":0.45,"hc-key":"us-az","hc-a2":"AZ","labelrank":"0","hasc":"US.AZ","woe-id":"2347561","state-fips":"4","fips":"US04","postal-code":"AZ","name":"Arizona","country":"United States of America","region":"West","longitude":"-111.935","woe-name":"Arizona","latitude":"34.3046","woe-label":"Arizona, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[1630,4782],[1196,4850],[1092,4906],[418,5307],[451,5357],[492,5355],[519,5416],[476,5452],[489,5536],[510,5537],[555,5605],[559,5661],[598,5702],[660,5730],[620,5788],[593,5936],[614,5982],[611,6068],[631,6159],[631,6217],[669,6227],[752,6180],[777,6221],[818,6420],[1488,6297],[1841,6242],[1736,5514],[1630,4782]]]}},{"type":"Feature","id":"US.UT","properties":{"hc-group":"admin1","hc-middle-x":0.52,"hc-middle-y":0.59,"hc-key":"us-ut","hc-a2":"UT","labelrank":"0","hasc":"US.UT","woe-id":"2347603","state-fips":"49","fips":"US49","postal-code":"UT","name":"Utah","country":"United States of America","region":"West","longitude":"-111.544","woe-name":"Utah","latitude":"39.5007","woe-label":"Utah, US, United States","type":"State"},"geometry":{"type":"Polygon","coordinates":[[[1841,6242],[1488,6297],[818,6420],[929,6975],[1073,7690],[1393,7629],[1643,7585],[1600,7329],[1990,7269],[1966,7108],[1841,6242]]]}},{"type":"Feature","id":"US.HI","properties":{"hc-group":"admin1","hc-middle-x":0.87,"hc-middle-y":0.79,"hc-key":"us-hi","hc-a2":"HI","labelrank":"0","hasc":"US.HI","woe-id":"2347570","state-fips":"15","fips":"US15","postal-code":"HI","name":"Hawaii","country":"United States of America","region":"West","longitude":"-157.999","woe-name":"Hawaii","latitude":"21.4919","woe-label":"Hawaii, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[2871.1,2945.9],[2875.2,2942.7],[2879.9,2943.9],[2887.0,2943.5],[2908.4,2936.0],[2926.2,2927.0],[2959.3,2906.2],[2969.8,2895.8],[2975.6,2888.1],[2975.6,2868.8],[2976.2,2860.2],[2981.8,2860.4],[2989.5,2864.1],[2995.3,2860.2],[2998.0,2855.8],[2997.4,2846.7],[3000.1,2841.1],[3003.5,2836.0],[3013.7,2826.7],[3024.4,2822.1],[3028.7,2818.5],[3031.0,2814.1],[3030.4,2808.4],[3019.0,2794.3],[3010.1,2790.9],[2997.5,2778.6],[2988.9,2776.0],[2988.6,2773.6],[2981.4,2771.8],[2975.3,2767.2],[2953.3,2760.6],[2944.8,2762.6],[2939.9,2762.7],[2935.5,2761.3],[2924.6,2753.9],[2920.9,2749.4],[2913.7,2747.3],[2906.4,2742.2],[2896.2,2736.4],[2893.2,2735.4],[2884.5,2727.0],[2883.0,2723.6],[2883.3,2715.9],[2873.3,2705.7],[2870.1,2696.8],[2867.2,2693.6],[2858.8,2686.4],[2857.0,2687.4],[2857.1,2692.0],[2852.9,2695.4],[2844.7,2699.6],[2830.0,2708.8],[2817.8,2712.1],[2815.1,2719.8],[2812.5,2720.6],[2810.9,2726.2],[2809.3,2735.1],[2811.5,2745.8],[2816.0,2776.4],[2815.6,2781.7],[2812.9,2786.6],[2805.6,2807.3],[2801.6,2814.3],[2802.1,2818.9],[2799.7,2823.2],[2796.3,2833.9],[2792.8,2839.1],[2789.8,2841.4],[2785.4,2846.6],[2780.6,2859.9],[2784.8,2870.8],[2795.1,2879.5],[2796.2,2883.5],[2799.0,2885.8],[2807.4,2888.9],[2813.4,2898.4],[2817.9,2906.3],[2822.3,2911.4],[2825.4,2911.5],[2827.7,2920.9],[2826.3,2924.9],[2822.9,2928.1],[2815.9,2938.7],[2813.0,2947.9],[2812.4,2962.2],[2816.2,2969.6],[2818.8,2972.0],[2826.0,2972.0],[2844.7,2968.0],[2850.0,2958.0],[2857.7,2955.0],[2862.8,2952.2],[2866.3,2948.0],[2871.1,2945.9]]],[[[2685.2,3028.0],[2683.1,3024.1],[2677.4,3024.1],[2672.1,3025.0],[2662.7,3023.0],[2656.2,3022.3],[2651.9,3026.6],[2654.3,3029.7],[2658.6,3033.4],[2670.2,3040.4],[2675.5,3042.3],[2679.6,3041.9],[2684.7,3036.2],[2682.1,3030.0],[2685.2,3028.0]]],[[[2609.3,3070.6],[2599.6,3070.
8001],[2595.6,3075.8],[2594.6,3080.7],[2594.3,3089.5],[2593.6,3094.0],[2590.2,3096.0],[2581.9,3099.3],[2579.4,3103.3],[2581.0,3107.7],[2585.7,3110.1],[2594.0,3111.1],[2613.5,3108.3],[2622.3,3100.4],[2628.7,3093.1],[2631.3,3086.9],[2630.0,3083.4],[2625.7,3076.7],[2616.7,3072.6],[2609.3,3070.6]]],[[[2673.9,3132.2],[2675.6,3130.2],[2683.4,3127.1],[2684.3,3124.4],[2686.7,3123.7],[2687.2,3118.4],[2690.0,3115.9],[2695.5,3106.3],[2699.0,3106.6],[2701.3,3109.2],[2705.1,3109.1],[2716.1,3110.5],[2722.5,3115.1],[2725.7,3116.2],[2732.1,3116.5],[2743.2,3114.2],[2746.4,3112.2],[2747.4,3109.8],[2752.3,3104.5],[2758.6,3099.6],[2758.8,3097.7],[2762.9,3098.7],[2765.5,3096.6],[2767.9,3092.2],[2774.8,3091.2],[2781.6,3088.0],[2791.4,3084.8],[2795.9,3075.7],[2794.9,3067.4],[2791.3,3060.7],[2786.3,3059.3],[2782.2,3053.3],[2776.8,3053.2],[2766.0,3047.7],[2754.9,3048.2],[2751.2,3048.0],[2731.5,3038.5],[2721.5,3040.8],[2718.9,3040.1],[2710.5,3039.7],[2704.9,3044.9],[2701.6,3049.9],[2703.3,3051.3],[2703.4,3055.1],[2701.8,3068.9],[2700.2,3072.7],[2700.3,3077.0],[2699.0,3080.5],[2694.8,3083.7],[2688.7,3082.3],[2687.7,3079.4],[2685.2,3078.9],[2679.4,3082.6],[2675.0,3083.4],[2670.7,3086.1],[2667.9,3085.8],[2660.5,3094.3],[2655.0,3101.5],[2654.7,3106.1],[2652.7,3108.6],[2654.7,3118.8],[2656.5,3123.8],[2658.6,3127.1],[2661.1,3127.3],[2664.7,3132.0],[2668.7,3131.6],[2672.3,3133.2],[2673.9,3132.2]]],[[[2542.4,3172.8],[2550.3,3172.5],[2552.8,3171.9],[2554.4,3169.4],[2557.4,3169.4],[2586.4,3165.0],[2594.1,3164.7],[2596.9,3170.6],[2598.9,3171.1],[2601.5,3167.6],[2602.5,3163.6],[2612.6,3161.0],[2622.6,3161.3],[2627.0,3161.9],[2631.9,3163.6],[2637.2,3163.5],[2642.1,3162.2],[2644.1,3162.6],[2646.1,3160.1],[2650.7,3159.2],[2646.9,3152.3],[2640.8,3146.4],[2633.3,3142.2],[2625.8,3139.1],[2618.1,3137.5],[2610.3,3138.3],[2602.5,3139.8],[2587.1,3143.9],[2577.6,3147.2],[2554.7,3145.6],[2547.6,3144.5],[2537.6,3144.7],[2533.7,3146.2],[2531.4,3149.3],[2531.3,3153.2],[2535.1,3159.1],[2538.7,3160.4],[2541.9,3164.2],[2542.9,3168.2],[2540.2,3172.9],[2542.4,3172.8]]],[[[2414.1,3252.1],[2415.3,3248.5],[2417.5,3247.3],[2418.6,3243.6],[2422.1,3243.3],[2425.5,3238.6],[2425.5,3233.8],[2422.8,3232.6],[2424.3,3223.3],[2428.6,3221.7],[2432.0,3216.6],[2435.0,3215.5],[2437.4,3213.2],[2440.6,3217.4],[2437.6,3219.4],[2437.9,3221.8],[2440.1,3222.8],[2448.0,3221.2],[2445.1,3218.3],[2444.8,3211.6],[2448.1,3209.6],[2451.4,3205.2],[2450.5,3202.8],[2453.3,3197.1],[2461.8,3192.0],[2463.0,3190.8],[2453.8,3181.6],[2451.7,3180.9],[2451.1,3184.2],[2449.4,3185.6],[2439.8,3183.8],[2433.5,3180.0],[2429.0,3180.6],[2426.4,3184.7],[2416.6,3189.1],[2413.7,3194.2],[2413.7,3196.2],[2409.6,3193.0],[2411.6,3190.7],[2403.3,3190.2],[2404.6,3191.8],[2399.9,3193.0],[2399.1,3199.7],[2405.5,3202.8],[2406.3,3204.6],[2400.6,3208.2],[2398.9,3204.7],[2394.5,3208.7],[2395.9,3202.7],[2394.8,3202.0],[2388.7,3207.1],[2390.1,3203.7],[2397.6,3196.7],[2396.6,3193.5],[2393.0,3192.0],[2373.9,3188.4],[2369.7,3190.8],[2368.0,3197.9],[2365.9,3203.5],[2361.4,3209.6],[2357.7,3211.5],[2356.8,3217.1],[2355.5,3220.1],[2349.9,3224.5],[2347.5,3228.2],[2347.2,3238.6],[2345.9,3240.5],[2337.4,3247.6],[2345.9,3249.6],[2354.3,3250.0],[2368.8,3249.7],[2370.5,3253.5],[2374.1,3255.5],[2379.9,3260.1],[2379.6,3261.3],[2382.9,3267.5],[2390.2,3273.8],[2396.5,3275.6],[2400.5,3274.5],[2406.2,3268.8],[2409.8,3262.0],[2408.9,3258.2],[2414.1,3252.1]]],[[[1955.8,3294.7],[1953.2,3293.9],[1948.4,3296.6],[1946.0,3304.1],[1946.6,3308.8],[1948.8,3313.7],[1956.7,3321.5],[1963.0,3326.1],[1971.1,3330.6],[1973.3,3335.9],[1973.1,3339.8],[1976.7,3341.3],[1980.1,3341.2],[1983.8,3339.7],[1985.5,3336.0],[1981.3,3331.1],[1979.8,3326.6],[1981.2,3321.0],[1978.5,3317.4],[1972.1,3314.3],[1968.3,3313.2],[1961.2,3308.2],[1959.7,3305.0],[1955.8,3294.7]]],[[[2117.8,3386.1],[2120.7,3384.6],[2123.8,3384.8],[2127.6,3382.7],[2129.1,3379.5],[2132.9,3376.7],[2134.9,3369.7],[2136.6,3368.7],[2136.1,3360.5],[2134.2,3358.0],[2131.3,3350.1],[2128.4,3348.5],[2128.0,3342.6],[2128.8,3334.9],[2128.0,3329.3],[2123.0,3328.3],[2125.2,3324.9],[2121.7,3323.7],[2118.3,3320.9],[2116.9,3318.4],[2109.4,3313.0],[2107.3,3310.8],[2098.5,3314.0],[2089.0,3314.5],[2078.6,3316.4],[2076.9,3318.0],[2074.0,3315.9],[2073.1,3317.6],[2068.2,3320.6],[2065.1,3326.1],[2062.8,3326.7],[2060.0,3329.4],[2056.1,3330.0],[2050.6,3332.5],[2043.4,3334.4],[2041.2,3340.1],[2038.1,3343.0],[2038.3,3352.8],[2040.3,3353.5],[2048.5,3363.0],[2049.2,3368.3],[2052.4,3371.8],[2062.1,3374.2],[2067.8,3377.5],[2071.4,3380.6],[2076.1,3382.7],[2077.8,3384.8],[2086.0,3386.8],[2088.1,3384.2],[2095.7,3382.1],[2095.7,3385.2],[2099.3,3386.6],[2107.5,3385.9],[2111.6,3384.7],[2115.5,3387.5],[2117.8,3386.1]]]]}},{"type":"Feature","id":"US.AK","properties":{"hc-group":"admin1","hc-middle-x":0.53,"hc-middle-y":0.33,"hc-key":"us-ak","hc-a2":"AK","labelrank":"0","hasc":"US.AK","woe-id":"2347560","state-fips":"2","fips":"US02","postal-code":"AK","name":"Alaska","country":"United States of America","region":"West","longitude":"-151.604","woe-name":"Alaska","latitude":"65.3609","woe-label":"Alaska, US, United States","type":"State"},"geometry":{"type":"MultiPolygon","coordinates":[[[[322,4275],[321,4280],[339,4292],[360,4283],[392,4281],[424,4297],[443,4318],[478,4297],[476,4285],[459,4279],[461,4263],[472,4263],[490,4288],[507,4272],[503,4256],[519,4248],[528,4258],[548,4257],[582,4240],[564,4217],[594,4212],[584,4202],[611,4198],[655,4200],[684,4194],[704,4174],[712,4178],[723,4165],[746,4156],[788,4155],[808,4136],[832,4134],[851,4144],[877,4147],[901,4136],[913,4120],[929,4117],[943,4100],[957,4101],[989,3159],[1039,3148],[1057,3163],[1084,3166],[1081,3138],[1107,3121],[1113,3108],[1167,3060],[1180,3028],[1208,3
800055],[1220,3056],[1229,3102],[1271,3127],[1297,3104],[1295,3091],[1335,3059],[1347,3039],[1367,3031],[1397,3002],[1477,2890],[1491,2875],[1490,2858],[1504,2853],[1511,2833],[1523,2836],[1613,2802],[1622,2783],[1617,2766],[1636,2722],[1622,2680],[1606,2663],[1592,2664],[1577,2702],[1585,2718],[1577,2755],[1555,2778],[1526,2764],[1520,2723],[1499,2746],[1510,2753],[1513,2796],[1473,2829],[1468,2844],[1424,2880],[1406,2878],[1414,2903],[1397,2917],[1390,2938],[1366,2963],[1364,2998],[1355,2976],[1348,2979],[1354,2974],[1334,2977],[1331,2984],[1344,2982],[1324,2991],[1283,3075],[1286,3041],[1310,2985],[1307,2971],[1288,2985],[1264,2982],[1266,2998],[1249,3031],[1245,3018],[1199,3046],[1202,3028],[1224,3026],[1254,2995],[1255,2977],[1229,2976],[1225,2963],[1169,2999],[1134,3041],[1085,3062],[1050,3083],[1069,3102],[1060,3119],[1025,3098],[969,3113],[977,3128],[953,3122],[899,3136],[842,3125],[826,3141],[792,3157],[802,3194],[788,3179],[783,3158],[761,3173],[742,3174],[759,3196],[727,3195],[706,3205],[716,3212],[705,3227],[679,3222],[658,3229],[636,3221],[637,3247],[620,3199],[631,3213],[642,3184],[628,3167],[614,3132],[576,3140],[552,3130],[545,3108],[537,3114],[509,3089],[521,3115],[493,3078],[478,3071],[455,3077],[433,3070],[426,3086],[455,3099],[483,3126],[457,3115],[438,3133],[464,3170],[478,3204],[473,3223],[491,3228],[524,3249],[543,3235],[554,3240],[588,3228],[544,3260],[549,3268],[527,3271],[524,3284],[490,3256],[469,3252],[424,3205],[428,3196],[407,3182],[408,3170],[377,3133],[343,3131],[339,3114],[317,3109],[309,3075],[334,3075],[352,3048],[305,3020],[308,3008],[287,2998],[271,2977],[246,2981],[222,2955],[212,2964],[200,2941],[186,2947],[152,2925],[163,2924],[146,2893],[133,2901],[107,2879],[96,2891],[89,2869],[73,2877],[24,2852],[40,2842],[7,2817],[-44,2808],[-61,2821],[-118,2794],[-130,2803],[-155,2792],[-167,2799],[-155,2816],[-167,2823],[-200,2781],[-223,2772],[-230,2808],[-252,2775],[-262,2795],[-286,2772],[-278,2800],[-223,2823],[-171,2853],[-115,2850],[-113,2838],[-84,2825],[-99,2845],[-80,2870],[-38,2892],[12,2907],[27,2896],[31,2922],[57,2946],[97,2964],[126,3051],[154,3072],[156,3089],[95,3074],[79,3099],[90,3123],[60,3099],[61,3072],[44,3066],[28,3121],[8,3111],[-6,3123],[-7,3147],[-37,3132],[-62,3132],[-69,3120],[-112,3131],[-85,3135],[-82,3162],[-87,3191],[-63,3208],[-76,3277],[-72,3305],[-89,3269],[-149,3267],[-172,3278],[-167,3295],[-184,3332],[-198,3342],[-212,3370],[-166,3383],[-134,3368],[-125,3345],[-109,3358],[-131,3376],[-161,3385],[-185,3401],[-173,3407],[-186,3433],[-191,3419],[-205,3460],[-194,3469],[-211,3484],[-189,3485],[-198,3504],[-175,3498],[-170,3526],[-130,3555],[-118,3553],[-108,3582],[-85,3606],[-61,3612],[-46,3602],[-34,3577],[-22,3576],[7,3591],[28,3609],[31,3600],[76,3594],[100,3613],[106,3664],[92,3688],[125,3701],[117,3734],[102,3721],[73,3725],[45,3711],[20,3709],[8,3729],[-28,3742],[-59,3740],[-101,3771],[-108,3789],[-98,3804],[-111,3837],[-95,3829],[-73,3837],[-119,3868],[-138,3897],[-124,3909],[-95,3914],[-87,3908],[-68,3921],[-2,3935],[36,3937],[67,3929],[47,3893],[52,3877],[111,3858],[119,3845],[140,3868],[162,3859],[147,3882],[128,3880],[135,3893],[119,3943],[132,3945],[139,3923],[133,3914],[145,3887],[163,3891],[175,3870],[196,3867],[201,3879],[179,3900],[152,3894],[142,3915],[154,3949],[129,3950],[86,3976],[89,4000],[86,4032],[55,4092],[40,4106],[27,4135],[45,4151],[57,4180],[76,4171],[124,4160],[156,4170],[182,4190],[189,4216],[201,4233],[224,4253],[229,4246],[253,4268],[256,4258],[287,4258],[317,4277],[322,4275]],[[322,4275],[323,4272],[323,4272],[323,4272],[311,4248],[326,4263],[323,4272],[323,4272],[323,4272],[324,4274],[322,4275]]],[[[-905,2721],[-922,2724],[-904,2733],[-898,2724],[-905,2721]]],[[[-739,2715],[-724,2712],[-729,2702],[-734,2709],[-739,2715]]],[[[-645,2693],[-651,2700],[-684,2693],[-643,2725],[-634,2718],[-623,2738],[-597,2740],[-595,2719],[-626,2714],[-645,2693]]],[[[-439,2748],[-458,2742],[-469,2755],[-457,2762],[-439,2748]]],[[[-268,2722],[-267,2733],[-255,2724],[-252,2715],[-268,2722]]],[[[-303,2804],[-293,2800],[-290,2768],[-309,2757],[-338,2767],[-359,2754],[-385,2761],[-386,2779],[-369,2783],[-354,2800],[-335,2796],[-303,2804]]],[[[-59,2737],[-58,2733],[-70,2740],[-62,2746],[-59,2737]]],[[[1485,2651],[1482,2635],[1455,2672],[1458,2688],[1473,2659],[1485,2651]]],[[[1568,2687],[1567,2665],[1547,2678],[1548,2705],[1568,2687]]],[[[-81,2759],[-83,2747],[-107,2735],[-88,2750],[-81,2759]]],[[[-100,2783],[-114,2781],[-119,2759],[-135,2762],[-131,2784],[-100,2783]]],[[[1530,2716],[1542,2706],[1538,2690],[1528,2711],[1530,2716]]],[[[1427,2708],[1429,2706],[1439,2711],[1430,2683],[1427,2708]]],[[[1439,2743],[1430,2731],[1420,2735],[1421,2742],[1439,2743]]],[[[1555,2775],[1573,2753],[1578,2721],[1569,2699],[1529,2721],[1537,2731],[1531,2760],[1555,2775]]],[[[1408,2747],[1414,2765],[1435,2776],[1437,2763],[1408,2747]]],[[[1480,2788],[1503,2783],[1494,2762],[1468,2778],[1475,2803],[1480,2788]]],[[[1467,2811],[1469,2795],[1445,2798],[1451,2810],[1467,2811]]],[[[1495,2807],[1510,2793],[1504,2784],[1485,2797],[1482,2819],[1495,2807]]],[[[253,2834],[251,2826],[235,2816],[239,2829],[253,2834]]],[[[276,2825],[279,2820],[259,2824],[263,2832],[276,2825]]],[[[1448,2845],[1470,2828],[1458,2816],[1449,2816],[1448,2845]]],[[[333,2880],[345,2878],[321,2864],[319,2872],[333,2880]]],[[[1295,2870],[1295,2846],[1283,2843],[1288,2862],[1295,2870]]],[[[1246,2943],[1241,2926],[1234,2942],[1237,2951],[1246,2943]
800]],[[[345,2973],[360,2960],[353,2961],[333,2971],[345,2973]]],[[[370,2989],[380,3007],[393,2992],[407,2995],[413,2978],[404,2970],[365,2959],[347,2974],[353,2990],[370,2989]]],[[[389,3006],[380,3014],[397,3021],[396,3012],[389,3006]]],[[[-42,3112],[-58,3105],[-53,3120],[-31,3126],[-42,3112]]],[[[643,3141],[641,3133],[628,3129],[639,3150],[643,3141]]],[[[683,3167],[692,3162],[662,3126],[639,3113],[651,3133],[678,3156],[683,3167]]],[[[-250,3366],[-233,3350],[-243,3328],[-239,3312],[-272,3312],[-294,3323],[-315,3350],[-321,3371],[-293,3362],[-286,3369],[-250,3366]]],[[[712,3177],[732,3173],[708,3154],[714,3166],[712,3177]]],[[[655,3184],[659,3177],[651,3159],[646,3171],[655,3184]]],[[[-553,3496],[-557,3490],[-570,3515],[-566,3524],[-553,3496]]],[[[735,3177],[725,3175],[725,3181],[752,3187],[735,3177]]],[[[-478,2741],[-509,2724],[-476,2727],[-492,2716],[-574,2704],[-597,2711],[-551,2713],[-526,2758],[-501,2752],[-507,2737],[-487,2749],[-478,2741]]],[[[1452,2689],[1461,2728],[1438,2724],[1443,2751],[1435,2778],[1419,2778],[1414,2794],[1439,2796],[1449,2769],[1468,2766],[1516,2700],[1532,2652],[1522,2641],[1495,2679],[1475,2669],[1476,2693],[1452,2689]]],[[[1292,2882],[1302,2902],[1330,2883],[1354,2825],[1358,2769],[1323,2816],[1325,2832],[1311,2830],[1320,2852],[1308,2856],[1308,2872],[1292,2882]]],[[[362,2955],[355,2938],[381,2954],[386,2936],[380,2918],[395,2917],[382,2900],[349,2913],[366,2899],[363,2889],[337,2894],[303,2868],[278,2838],[275,2849],[298,2883],[281,2883],[271,2862],[256,2873],[259,2892],[247,2904],[253,2919],[284,2939],[295,2933],[298,2909],[306,2934],[302,2950],[318,2956],[321,2936],[329,2963],[348,2946],[340,2965],[362,2955]]],[[[1277,2920],[1294,2891],[1278,2884],[1270,2906],[1243,2925],[1247,2941],[1271,2972],[1321,2953],[1323,2931],[1299,2928],[1309,2919],[1325,2926],[1333,2899],[1320,2896],[1277,2920]]],[[[1355,2884],[1341,2912],[1326,2962],[1314,2989],[1331,2969],[1358,2968],[1379,2937],[1376,2926],[1357,2961],[1361,2939],[1379,2919],[1383,2888],[1350,2853],[1347,2875],[1355,2884]]],[[[-347,3767],[-339,3759],[-322,3764],[-307,3758],[-307,3734],[-290,3713],[-256,3692],[-266,3681],[-286,3692],[-315,3679],[-313,3698],[-337,3738],[-353,3750],[-371,3746],[-381,3757],[-379,3773],[-362,3796],[-362,3776],[-347,3767]]],[[[1402,2834],[1394,2792],[1400,2779],[1385,2761],[1377,2790],[1389,2804],[1373,2811],[1364,2838],[1379,2842],[1395,2828],[1402,2835],[1401,2839],[1383,2863],[1396,2866],[1441,2858],[1445,2825],[1422,2845],[1441,2817],[1439,2809],[1410,2805],[1402,2834]]]]}},{"type":"Feature","properties":{"hc-group":"__separator_lines__"},"geometry":{"type":"MultiLineString","coordinates":[[[-707,5188],[3651,2950]],[[1747,2584],[1747,3799]]]}}]}
801/**
802 * Created by ainsogna on 11/24/14.
803 */
804
805// set up the smartasset.charts object
806//
807var smartasset = smartasset || {};
808smartasset.charts = smartasset.charts || (function(){
809
810    /**
811     * Colors from the "Style Guide V2" Google spreadsheet.
812     * DO NOT modify these
813     *
814     * @type {string}
815     */
816    var DK_BLUE       = "#004962";
817    var DK_BLUE_2     = "#136488";
818    var DK_BLUE_3     = "#00496e";
819    var LT_BLUE       = "#20a7e2";
820    var LT_BLUE_2     = "#63c1eb";
821    var MED_BLUE      = "#1F84AD";
822    var TW_BLUE       = "#2d708e";
823    var LT_YELLOW     = "#fccd03";
824    var MED_YELLOW    = "#f9b719";
825    var DK_YELLOW     = "#e59e10";
826    var ORANGE        = "#e48f25";
827    var LT_GREEN      = "#7bc366";
828    var MED_GREEN     = "#54ba6c";
829    var MED_GREEN_2   = "#43aa59";
830    var GREEN         = "#05ad79";
831    var GREEN_2       = "#77c345";
832    var DK_GREEN      = "#09926a";
833    var DK_GRAY       = "#333";
834    var MED_GRAY      = "#8c8c8c";
835    var MED_GRAY2     = "#a0a0a0";
836    var LT_GRAY       = "#bcbcbc";
837    var LT_GRAY_2     = "#cccccc";
838    var LT_GRAY_3     = "#e8e8e8";
839    var LT_GRAY_4     = "#f9f9f9";
840
841    /**
842     * Custom colors
843     */
844    var CUSTOM_GREY_1 = "#333333";
845    var CUSTOM_GREY_2 = "#bbbbbb";
846    var CUSTOM_GREY_3 = "#d8d8d8";
847
848    /**
849     * Opacity (for fill colors) must be in rgba format
850     */
851    var LT_BLUE_FILL  = "rgba(32, 167, 226, 0.7)";
852    var GRAY_FILL     = "rgba(233, 233, 233, 0.4)";
853
854    /**
855     * Fill colors for the 401(k) Calculator
856     */
857    var FOUROHONE_FILL_1  = "rgba(32, 167, 226, 0.6)";
858    var FOUROHONE_FILL_2  = "rgba(123, 195, 102, 0.6)";
859    var FOUROHONE_FILL_3  = "rgba(252, 205, 3, 0.6)";
860
861    /**
862     * Standard colors
863     *
864     * @type {string}
865     */
866    var WHITE         = "#ffffff";
867    var BLACK         = "#000000";
868
869    /**
870     * Standard fonts
871     */
872    var FONT_STACK = "'Open Sans', sans-serif";
873
874    /**
875     * Global chart options
876     * SA-9955 -- Update Highcharts library
877     */
878    var initialize = function()
879    {
880        if (typeof Highcharts !== "undefined")
881        {
882            // Enable comma separators in tooltips
883            Highcharts.setOptions({
884                lang: { thousandsSep: ',' }
885            });
886        }
887    };
888
889    /**
890     * A simple bar chart, comparing two values.
891     */
892    var ComparisonBarChart = function(divId, leftTitle, rightTitle, leftColor, right
892Color, customOptions)
893    {
894        ///////////////////////////////////////////////////////////////////////////
895        // private variables
896        ///////////////////////////////////////////////////////////////////////////
897
898        var DIV_ID = divId,
899            LEFT_TITLE = leftTitle,
900            RIGHT_TITLE = rightTitle,
901            LEFT_COLOR = leftColor,
902            RIGHT_COLOR = rightColor,
903            CUSTOM_OPTIONS = customOptions;
904
905        var defaultOptions = {
906            chart: {
907                pinchType: "",
908                type: 'column',
909                spacingLeft: 0,
910                spacingRight: 0
911            },
912            colors: [
913                LEFT_COLOR,
914                RIGHT_COLOR
915            ],
916            subtitle: {
917                text: null
918            },
919            xAxis: {
920                tickLength: 0,
921                lineColor: CUSTOM_GREY_2,
922                title: {
923                    text: null
924                },
925                labels: {
926                    useHTML: true,
927                    enabled: true,
928                    x: smartasset.overrides.chartXOffset || 0,
929                    align: 'center',
930                    style: {
931                        fontFamily: smartasset.overrides.chartFont || FONT_STACK,
932                        fontSize: "16px",
933                        textAlign: "center",
934                        color: DK_GRAY
935                    }
936                }
937            },
938            tooltip: {
939                useHTML: true,
940                style: {
941                    color: CUSTOM_GREY_1,
942                    fontSize: '12px'
943                },
944                pointFormat: '<b>$'+'{point.y}</b>'
945            },
946            yAxis: {
947                title: {
948                    text: null
949                },
950                offset: 35,
951                tickPixelInterval: 50,
952                minorGridLineColor: LT_GRAY_2,
953                majorGridLineColor: LT_GRAY_2,
954                gridLineColor: LT_GRAY_2,
955                labels: {
956                    formatter: function()
957                    {
958                        return smartasset.charts.dollarFormatter(this.value);
959                    },
960                    align: 'left',
961                    x: 0,
962                    y: 2,
963                    style: {
964                        color: LT_GRAY,
965                        fontFamily: smartasset.overrides.chartFont || FONT_STACK
966                    },
967                    enabled: true
968                }
969            },
970            plotOptions: {
971                column: {
972                    groupPadding: 0,
973                    pointPadding: 0.1
974                }
975            },
976            credits: {
977                enabled: false
978            },
979            legend: {
980                enabled: false
981            },
982            title: {
983                text: ''
984            },
985            series: [{
986                type: 'column',
987                data: [
988                    {name: LEFT_TITLE, y:1, color: LEFT_COLOR},
989                    {name: RIGHT_TITLE, y:1, color: RIGHT_COLOR}
990                ]
991            }]
992        };
993
994        ///////////////////////////////////////////////////////////////////////////
995        // public methods
996        ///////////////////////////////////////////////////////////////////////////
997
998        /**
999         * Create the bar chart, with standard options
1000         */
1001        this.start = function()
1002        {
1003            $.extend(true, defaultOptions, CUSTOM_OPTIONS);
1004            $("#"+DIV_ID).highcharts(defaultOptions);
1005        };
1006
1007        /**
1008         * Set the left and right bar values
1009         *
1010         * @param leftValue
1011         * @param rightValue
1012         */
1013        this.setBarValues = function(leftValue, rightValue)
1014        {
1015            var series = [
1016                {name:LEFT_TITLE, y: Math.round(leftValue), color:LEFT_COLOR},
1017                {name:RIGHT_TITLE, y: Math.round(rightValue), color:RIGHT_COLOR}
1018            ];
1019
1020            $("#"+DIV_ID).highcharts().series[0].setData(series, true);
1021        };
1022
1023        this.reflow = function()
1024        {
1025            $("#"+DIV_ID).highcharts().reflow();
1026        };
1027
1028        ///////////////////////////////////////////////////////////////////////////
1029        // private methods
1030        ///////////////////////////////////////////////////////////////////////////
1031    };
1032
1033    /**
1034     * Format dollar labels
1035     *
1036     * @param value
1037     * @returns {string}
1038     */
1039    var dollarFormatter = function(value)
1040    {
1041        var res = "";
1042        var v = value < 0;
1043        var i = Math.abs(value);
1044        if (i >= 1000000)
1045        {
1046            res = "$" + i/1000000 + "M";
1047        }
1048        else if (i >= 1000)
1049        {
1050            res = "$" + i/1000 + "k";
1051        }
1052        else
1053        {
1054            res = "$" + i;
1055        }
1056
1057        if (v)
1058        {
1059            return "-"+res;
1060        }
1061        return res;
1062    };
1063
1064    var drawVerticalLine = function(chart, point, color)
1065    {
1066        var line;
1067        if (chart != null && point != null)
1068        {
1069            line = chart.renderer.path(['M', chart.plotLeft + point.plotX, chart.plotTop, 'V', chart.plotTop + chart.plotHeight])
1070                .attr({
1071                    'stroke-width': 1,
1072                    stroke: color,
1073                    zIndex: 5
1074                })
1075                .add();
1076        }
1077
1078        return line;
1079    };
1080
1081    var createChartOptions = function()
1082    {
1083        return {
1084            chart: {
1085                type: "series",
1086                spacingLeft: 0,
1087                spacingRight: 0,
1088                pinchType: ""
1089            },
1090            subtitle: {
1091                text: null
1092            },
1093            xAxis: {
1094                tickLength: 0,
1095                tickInterval: 5,
1096                lineColor: LT_GRAY,
1097                crosshairs: true,
1098                title: {
1099                    text: "Age",
1100                    style: {
1101                        color: LT_GRAY,
1102                        fontFamily: smartasset.overrides.chartFont || FONT_STACK,
1103                        fontSize: 13
1104                    }
1105                },
1106                labels: {
1107                    useHTML: true,
1108                    formatter: function()
1109                    {
1110                        return this.value;
1111                    },
1112                    enabled: true,
1113                    style: {
1114                        color: "#bbbbbb",
1115                        fontFamily: smartasset.overrides.chartFont || FONT_STACK
1116                    }
1117                }
1118            },
1119            tooltip: {
1120                backgroundColor: "rgba(255,255,255,1)",
1121                zIndex: 1000,
1122                label: {
1123                    attr: {
1124                        zIndex: 1000
1125                    }
1126                }
1127            },
1128            yAxis: {
1129                title: {
1130                    text: null
1131                },
1132                showLastLabel: true,
1133                opposite: false,
1134                offset: 35,
1135                tickPixelInterval: 50,
1136                minorGridLineColor: LT_GRAY_3,
1137                majorGridLineColor: LT_GRAY_3,
1138                gridLineColor: LT_GRAY_3,
1139                labels: {
1140                    formatter: function()
1141                    {
1142                        return smartasset.charts.dollarFormatter(this.value);
1143                    },
1144                    align: "left",
1145                    x: 0,
1146                    y: -2,
1147                    style: {
1148                        color: LT_GRAY,
1149                        fontFamily: smartasset.overrides.chartFont || FONT_STACK
1150                    },
1151                    enabled: true
1152                }
1153            },
1154            plotOptions: {
1155                series: {
1156                    marker: {
1157                        enabled: false
1158                    }
1159                }
1160            },
1161            credits: {
1162                enabled: false
1163            },
1164            legend: {
1165                enabled: false
1166            },
1167            title: {
1168                text: "",
1169                align: 'left',
1170                style: {
1171                    color: DK_GRAY,
1172                    fontFamily: smartasset.overrides.chartFont || FONT_STACK,
1173                    fontSize: 14,
1174                    fontWeight: 500
1175                }
1176            },
1177            series: []
1178        };
1179    };
1180
1181    var createAreaSeriesDefinition = function(seriesName, seriesColor, seriesFillColor)
1182    {
1183        return {
1184            name: seriesName,
1185            color: seriesColor,
1186            fillColor: seriesFillColor,
1187            type: "area",
1188            data: [0],
1189            marker: {
1190                lineWidth: 2,
1191                radius: 4,
1192                symbol: "circle"
1193            }
1194        };
1195    };
1196
1197    var createColumnSeriesDefinition = function(seriesName, seriesColor)
1198    {
1199        return {
1200            name: seriesName,
1201            color: seriesColor,
1202            type: "column",
1203            data: [0]
1204        };
1205    };
1206
1207
1208    var createLineSeriesDefinition = function(seriesName, seriesColor)
1209    {
1210        return {
1211            name: seriesName,
1212            color: seriesColor,
1213            type: "line",
1214            data: [0],
1215            marker: {
1216                lineWidth: 2,
1217                radius: 4,
1218                symbol: "circle"
1219            }
1220        };
1221    };
1222    
1223    initialize();
1224    
1225    return {
1226        DK_BLUE       : DK_BLUE       ,
1227        DK_BLUE_2     : DK_BLUE_2     ,
1228        DK_BLUE_3     : DK_BLUE_3     ,
1229        LT_BLUE       : LT_BLUE       ,
1230        LT_BLUE_2     : LT_BLUE_2     ,
1231        MED_BLUE      : MED_BLUE      ,
1232        TW_BLUE       : TW_BLUE       ,
1233        LT_YELLOW     : LT_YELLOW     ,
1234        MED_YELLOW    : MED_YELLOW    ,
1235        DK_YELLOW     : DK_YELLOW     ,
1236        ORANGE        : ORANGE        ,
1237        LT_GREEN      : LT_GREEN      ,
1238        MED_GREEN     : MED_GREEN     ,
1239        MED_GREEN_2   : MED_GREEN_2   ,
1240        GREEN         : GREEN         ,
1241        GREEN_2       : GREEN_2       ,
1242        DK_GREEN      : DK_GREEN      ,
1243        DK_GRAY       : DK_GRAY       ,
1244        MED_GRAY      : MED_GRAY      ,
1245        MED_GRAY2     : MED_GRAY2     ,
1246        LT_GRAY       : LT_GRAY       ,
1247        LT_GRAY_2     : LT_GRAY_2     ,
1248        LT_GRAY_3     : LT_GRAY_3     ,
1249        LT_GRAY_4     : LT_GRAY_4     ,
1250
1251        CUSTOM_GREY_1 : CUSTOM_GREY_1 ,
1252        CUSTOM_GREY_2 : CUSTOM_GREY_2 ,
1253        CUSTOM_GREY_3 : CUSTOM_GREY_3 ,
1254
1255        LT_BLUE_FILL  : LT_BLUE_FILL  ,
1256        GRAY_FILL     : GRAY_FILL     ,
1257
1258        FOUROHONE_FILL_1  : FOUROHONE_FILL_1,
1259        FOUROHONE_FILL_2  : FOUROHONE_FILL_2,
1260        FOUROHONE_FILL_3  : FOUROHONE_FILL_3,
1261
1262        WHITE         : WHITE         ,
1263        BLACK         : BLACK         ,
1264
1265        FONT_STACK    : FONT_STACK,
1266
1267        ComparisonBarChart : ComparisonBarChart,
1268        dollarFormatter : dollarFormatter,
1269        drawVerticalLine : drawVerticalLine,
1270        createChartOptions : createChartOptions,
1271        createAreaSeriesDefinition : createAreaSeriesDefinition,
1272        createColumnSeriesDefinition : createColumnSeriesDefinition,
1273        createLineSeriesDefinition : createLineSeriesDefinition
1274    };
1275    
1276})();
1277/**
1278 * Profile page
1279 *
1280 * This file contains all the common JS related functionality for both advisor and firm profile pages.
1281 *
1282 * @author eguanilo
1283 */
1284
1285$(function()
1286{
1287    // caching profile jQuery element
1288    var $profile = $('.js-profile');
1289
1290    var initMaps = function()
1291    {
1292        // Office location google maps rendering
1293       var $officeMaps = $profile.find('.office_map');
1294       var geocoder = new google.maps.Geocoder();
1295       var googleMap;
1296       var $mapEl;
1297
1298       $officeMaps.each(function(index, mapEl)
1299       {
1300           // caching the jQuery element for the map element
1301           $mapEl = $(mapEl);
1302
1303           // initialize the map and store the instance
1304           googleMap = new google.maps.Map(mapEl, {
1305               zoom: 16,
1306               options: {
1307                   gestureHandling: 'none',
1308                   disableDefaultUI: true,
1309                   clickableIcons: false
1310               }
1311            });
1312
1313           // fetch the lat / len coordinates from the address data attribute
1314           // show the map with the address marker if successful
1315           geocoder.geocode({address: $mapEl.attr('data-address')}, function(results, status)
1316           {
1317               if (status === google.maps.GeocoderStatus.OK)
1318               {
1319                   googleMap.setCenter(results[0].geometry.location);
1320
1321                   new google.maps.Marker({
1322                       map     : googleMap,
1323                       position: results[0].geometry.location
1324                   });
1325
1326                   $mapEl.show();
1327               }
1328           });
1329       });
1330    };
1331
1332    initMaps();
1333});
1334/**
1335 * Port of SA's mobile navigation, this is scaled down as there is only one
1336 * level of nesting required for the meganav.
1337 */
1338
1339$(function()
1340{
1341    // Initialize the navigation menu.
1342    (function initializeMenu() {
1343
1344        var $headerButtons = $('#header .buttons'),
1345            $navCategories = $headerButtons.find('.nav-categories'),
1346            $body = $(document.body),
1347            isAnimating = false,
1348            currentYPosition = null;
1349
1350        // Get all the main category links after the mobile sections have been appended.
1351        var $navCategoryLinks = $navCategories.find('> ul > li.has-sub:not(.nav-more) > a:not(.js-static-link)');
1352
1353        // Mobile: Append mobile category titles to the DOM, using the regular link titles.
1354        $navCategoryLinks.each(function() {
1355            var linkText = $(this).text();
1356            if (linkText)
1357            {
1358                $(this).parent().prepend("<h4 class=\"mobile-menu-category-title js-hidden\">" + linkText + "</h4>");
1359            }
1360        });
1361
1362        // Mobile: Navigate to a sub-category on clicking a main category link.
1363        $navCategoryLinks.click(function(e) {
1364
1365            // Since these links can be clicked on desktop, check if on tablet size and below.
1366            // NOTE: There is no screen width check in the other click event listeners, because those elements should only appear on mobile/tablet.
1367            if ($(document).width() <= 1120)
1368            {
1369                // Do not not go to the default link URL.
1370                e.preventDefault();
1371
1372                if (isAnimating) return;
1373                isAnimating = true;
1374
1375                var $this = $(this);
1376
1377                $navCategories.removeClass('overflowed');
1378                $navCategories.children('ul').toggleClass('offscreen');
1379
1380                $this.siblings('.nav-sub-container').addClass('mobile-category-active overflowed');
1381                $this.siblings('.mobile-menu-category-title').removeClass('js-hidden');
1382
1383                setTimeout(function () {
1384                    isAnimating = false;
1385                }, 500);
1386            }
1387        });
1388
1389        // Mobile: Navigate back to main categories on clicking the top titles in the sub menus.
1390        $navCategories.find('.mobile-menu-category-title').click(function() {
1391            if (!isAnimating)
1392            {
1393                var $this = $(this);
1394
1395                isAnimating = true;
1396
1397                $navCategories.children('ul').removeClass('offscreen');
1398                $navCategories.addClass('overflowed');
1399
1400                setTimeout (function() {
1401                    $this.siblings('.nav-sub-container').removeClass('mobile-category-active');
1402                    $this.addClass('js-hidden');
1403                    isAnimating = false;
1404                }, 500);
1405            }
1406        });
1407
1408        // Mobile: Toggle the mobile menu on clicking the hamburger button, the mobile close button, or the mobile overlay (area outside the menu).
1409        $('.header-mobile-menu-button, .mobile-menu-close-button, #mobile-menu-overlay').on('click', function () {
1410
1411            // Don't do anything if animating.
1412            if (isAnimating) return;
1413
1414            var menuIsActive = $headerButtons.hasClass('mobile-menu-active');
1415
1416            $('#mobile-menu-overlay').toggle();
1417            isAnimating = true;
1418
1419            // If menu is open, close it.
1420            if (menuIsActive)
1421            {
1422                $headerButtons.removeClass('mobile-menu-active');
1423
1424                // Let the body scroll.
1425                window.requestAnimationFrame(function()
1426                {
1427                    // Add a 'mobile-menu-open' class to the body to make it non-scrollable.
1428                    $body.removeClass('mobile-menu-open')
1429                        .css({
1430                            top: ''
1431                        });
1432
1433                    window.scrollTo({
1434                        top: currentYPosition,
1435                        behavior: 'instant'
1436                    });
1437                });
1438
1439                setTimeout(function() {
1440                    // Reset elements after the menu has finished closing.
1441                    $headerButtons.removeClass('mobile-menu-visible');
1442                    $navCategories.children('ul').removeClass('offscreen');
1443                    $navCategories.find('.nav-sub-container').removeClass('mobile-category-active');
1444                }, 500);
1445            }
1446            else
1447            {
1448                // Toggle the visibility of the mobile menu, then scroll it into view.
1449                $headerButtons.addClass('mobile-menu-visible');
1450                setTimeout(function() {
1451                    $headerButtons.addClass('mobile-menu-active');
1452                }, 10);
1453
1454                window.requestAnimationFrame(function()
1455                {
1456                    // recording the current window position
1457                    currentYPosition = window.scrollY;
1458                    // Add a 'mobile-menu-open' class to the body to make it non-scrollable.
1459                    $body.addClass('mobile-menu-open')
1460                        .css({
1461                            top: currentYPosition * -1 + 'px'
1462                        });
1463                });
1464
1465                // Making the menu scrollable since this class was possibly removed.
1466                $navCategories.addClass('overflowed');
1467            }
1468
1469            setTimeout(function() {
1470                isAnimating = false;
1471            }, 500);
1472        });
1473    })();
1474});
1475/**
1476 * Code for display logic for ads controlled by Appconfig (currently in Captivate only)
1477 * (to be removed once we serve ads through DFP etc)
1478 */
1479var smartasset = smartasset || {};
1480
1481smartasset.riklami = smartasset.riklami || {};
1482
1483/**
1484 * Flag to disable all DFP calls
1485 * Can be set in Captivate Admin to turn off DFP calls for a certain partner API key
1486 */
1487smartasset.riklami.disableDFPRiklami = smartasset.riklami.disableDFPRiklami === undefined ? false : smartasset.riklami.disableDFPRiklami;
1488
1489/**
1490 * Flag to mark the listener as initialized
1491 */
1492smartasset.riklami.riklamiReporterInitialized = false;
1493
1494/**
1495 * initialize code to make calls to DFP to fill all ads
1496 */
1497smartasset.riklami.initDFPRiklami = function() {
1498
1499    // Grab the riklami to render
1500    var riklamiToRender = $('.js-riklam[data-riklam-init="false"]');
1501
1502    // Check if ads are disabled
1503    if (smartasset.riklami.disableDFPRiklami !== true) {
1504
1505        // Initialize render listener
1506        smartasset.riklami.initRiklamiReporter();
1507
1508        riklamiToRender.each(function(index, ele){
1509
1510            var thisRiklam = $(ele),
1511                riklamSettings =
1512                {
1513                    // Grab the values from the attributes of the element
1514                    rendered: false,
1515                    id: thisRiklam.attr('id'),
1516                    appMode: thisRiklam.data('riklam-app-mode'),
1517                    targetingSet: thisRiklam.data('riklam-targeting-set'),
1518                    pos: thisRiklam.data('riklam-position'),
1519                    unit: thisRiklam.data('riklam-unit') + smartasset.riklami.adUnit,
1520                    group: thisRiklam.data('riklam-group'),
1521                    size: thisRiklam.data('riklam-size'),
1522                    isAdhesion: thisRiklam.data('riklam-is-adhesion'),
1523
1524                     // Declare parameters used for captivate targeting.
1525                    apiWidget: thisRiklam.data('riklam-api-widget'),
1526
1527                    // Declare parameters used for onsite targeting.
1528                    pageType: thisRiklam.data('riklam-page-type'),
1529                    pageGroup: thisRiklam.data('riklam-page-group'),
1530                    pageGroupNew: thisRiklam.data('riklam-page-group-new'),
1531                    pageKey: thisRiklam.data('riklam-page-key'),
1532                    ref: thisRiklam.data('riklam-ref'),
1533                    utmSrc: thisRiklam.data('riklam-utm-src'),
1534                    utmMed: thisRiklam.data('riklam-utm-med'),
1535                    utmCamp: thisRiklam.data('riklam-utm-camp'),
1536                    utmTerm: thisRiklam.data('riklam-utm-term'),
1537                    utmCont: thisRiklam.data('riklam-utm-cont'),
1538                    ucr: thisRiklam.data('riklam-ucr'),
1539                    reloadable: thisRiklam.data('riklam-reloadable'),
1540                    loadInView: thisRiklam.data('riklam-load-in-view'),
1541
1542                    // Declare parameters used for blog targeting.
1543                    bgId: thisRiklam.data('riklam-bg-id'),
1544                    bgCategory: thisRiklam.data('riklam-bg-category'),
1545                    bgCategories: thisRiklam.data('riklam-bg-categories'),
1546                    bgPageUrl: thisRiklam.data('riklam-bg-page-url'),
1547                    bgRetire: thisRiklam.data('riklam-bg-retire')
1548                };
1549
1550            // Set the riklam to be initialized prior to pushing to googletag
1551            thisRiklam.attr('data-riklam-init', true);
1552
1553            // Define and render this ricklam
1554            smartasset.riklami.initRiklamiRenderer(thisRiklam, riklamSettings);
1555        });
1556    }
1557    else {
1558        // If ads are turned off, hide them
1559        riklamiToRender.addClass('js-hidden');
1560    }
1561};
1562
1563/**
1564 * The ad units in SAM are based on the window location's slug
1565 * the window.location.pathname must have 2 or more tokens in order to assume
1566 * there is an eligible result.
1567 *
1568 * @return {String} the ad unit, or empty string if the criteria is unmet
1569 */
1570smartasset.riklami.getAdUnitBasedOnSlug = function()
1571{
1572    var urlPaths = window.location.pathname.split('/');
1573
1574    return (urlPaths.length > 1) ? urlPaths[1] : '';
1575};
1576
1577smartasset.riklami.adUnit = smartasset.riklami.getAdUnitBasedOnSlug();
1578
1579/**
1580 * Attempts to render a riklam if in view. Otherwise, a resize handler and onScroll/interactionPageView hooks are added
1581 */
1582smartasset.riklami.initRiklamiRenderer = function(thisRiklam, riklamSettings)
1583{
1584    // Render the slot
1585    smartasset.riklami.checkAndRenderRiklam(thisRiklam, riklamSettings);
1586
1587    // If not already rendered, add a resize handler and interactionPageView hook to try again
1588    if (!riklamSettings.rendered)
1589    {
1590        $(window).resize(function()
1591        {
1592            smartasset.riklami.checkAndRenderRiklam(thisRiklam, riklamSettings);
1593        });
1594    }
1595};
1596
1597/**
1598 * Checks if the riklam is ready to be rendered and calls the render method
1599 */
1600smartasset.riklami.checkAndRenderRiklam = function(thisRiklam, riklamSettings)
1601{
1602    // Check that the advert has not yet been rendered. If it's a riklamSettings.loadInView advert it must also be in view
1603    if (!riklamSettings.rendered && (!riklamSettings.loadInView || smartasset.page.isInView('#'+riklamSettings.id)))
1604    {
1605        // Check that the element is not set to display: none; (meaning that it is ready to be rendered)
1606        if (thisRiklam.is(':visible'))
1607        {
1608            smartasset.riklami.renderRiklam(riklamSettings);
1609        }
1610    }
1611};
1612
1613/**
1614 * Function to define, target and render a riklam. This should be called ONLY ONCE per riklam.
1615 */
1616smartasset.riklami.renderRiklam = function(riklamSettings)
1617{
1618    googletag.cmd.push(function()
1619    {
1620        // Decide size
1621        if (riklamSettings.size === 'responsive')
1622        {
1623            var isNarrow = $(window).outerWidth() > 496;
1624            riklamSettings.size = isNarrow ? [[300, 250]] : [[300, 50]];
1625        }
1626
1627        // Define Slot
1628        var riklam;
1629        if (riklamSettings.isAdhesion)
1630        {
1631            // Adhesion Slot
1632            riklam = googletag.defineOutOfPageSlot(riklamSettings.unit, riklamSettings.id).addService(googletag.pubads());
1633        }
1634        else
1635        {
1636            // Normal Slot
1637            riklam = googletag.defineSlot(riklamSettings.unit, riklamSettings.size, riklamSettings.id).addService(googletag.pubads());
1638        }
1639
1640        // Targeting fields for all sets
1641        riklam.setTargeting('app_mode', riklamSettings.appMode);
1642        riklam.setTargeting('position', riklamSettings.pos);
1643
1644        // Set targeting fields
1645        if (riklamSettings.targetingSet === 'onsite')
1646        {
1647            riklam.setTargeting("page_type", riklamSettings.pageType);
1648            riklam.setTargeting("page_group", riklamSettings.pageGroup);
1649            riklam.setTargeting("page_group_new", riklamSettings.pageGroupNew);
1650            riklam.setTargeting("page_key", riklamSettings.pageKey);
1651            riklam.setTargeting("ref", riklamSettings.ref);
1652            riklam.setTargeting("utm_src", riklamSettings.utmSrc);
1653            riklam.setTargeting("utm_med", riklamSettings.utmMed);
1654            riklam.setTargeting("utm_camp", riklamSettings.utmCamp);
1655            riklam.setTargeting("utm_term", riklamSettings.utmTerm);
1656            riklam.setTargeting("utm_cont", riklamSettings.utmCont);
1657
1658            if (riklamSettings.ucr)
1659            {
1660                riklam.setTargeting("ucr", riklamSettings.ucr);
1661            }
1662
1663            // Blog parameters
1664            if (riklamSettings.bgId !== undefined)
1665            {
1666                riklam.setTargeting("bg_id", riklamSettings.bgId);
1667                riklam.setTargeting("bg_category", riklamSettings.bgCategory);
1668                riklam.setTargeting("bg_categories", riklamSettings.bgCategories);
1669                riklam.setTargeting("bg_retire", riklamSettings.bgRetire);
1670
1671                googletag.pubads().set("page_url", riklamSettings.bgPageUrl);
1672            }
1673        }
1674        else
1675        {
1676            // Default is 'captivate'
1677            riklam.setTargeting('widget', smartasset.page.widget);
1678            riklam.setTargeting('api_widget', riklamSettings.apiWidget);
1679            riklam.setTargeting('api', smartasset.page.widgetId);
1680            riklam.setTargeting('ca_page_group', riklamSettings.group);
1681            riklam.setTargeting('width', isNarrow ? 'narrow' : 'wide');
1682        }
1683
1684        // Render Riklami
1685        googletag.display(riklamSettings.id);
1686        riklamSettings.rendered = true;
1687    });
1688};
1689
1690/**
1691 * initialize code to listen for rendered adverts and add a
1692 * ".riklam-rendered-[position]" class to the html element
1693 */
1694smartasset.riklami.initRiklamiReporter = function() {
1695
1696    if (!smartasset.riklami.riklamiReporterInitialized) {
1697
1698        googletag.cmd.push(function() {
1699
1700            // Subscribe to DFP 'slotRenderEnded' event
1701            googletag.pubads().addEventListener('slotRenderEnded', function (event) {
1702                var isEmpty = event.isEmpty,
1703                    positionArray = event.slot.getTargeting('position'),
1704                    position = positionArray.length ? positionArray[0] : '';
1705
1706                console.log('-Riklam Rendered-\n', 'Position:', position, 'Is Empty:', isEmpty, 'Event:', event);
1707
1708                if (!isEmpty) {
1709                    // Add class to root element when riklam is rendered
1710                    $('html').addClass('riklam-rendered-' + position);
1711                }
1712            });
1713        });
1714
1715        smartasset.riklami.riklamiReporterInitialized = true;
1716    }
1717};
1718// All tracking related functionality is contained here
1719// mostly ported from SA. tweaked here and there
1720var smartasset = smartasset || {};
1721
1722smartasset.analytics = smartasset.analytics || {};
1723
1724/**
1725 * Initialize mixpanel link tracking
1726 */
1727smartasset.analytics.initializeTracking = function()
1728{
1729    // track the page view
1730    smartasset.analytics.trackPageView(true);
1731
1732    // track the page view in facebook
1733    smartasset.analytics.facebookTrack('ViewContent');
1734};
1735
1736/**
1737 * Track page view on MixPanel and GA
1738 * @param noReferer -- boolean. Set to TRUE if you do not want to override the referer
1739 */
1740smartasset.analytics.trackPageView = function(noReferer)
1741{
1742    if ($.type(noReferer) !== "boolean")
1743    {
1744        noReferer = false;
1745    }
1746
1747    if (IS_DEV)
1748    {
1749        console.log("Tracking page-view // noReferer: " + noReferer);
1750    }
1751
1752    // send Google "pageview", a custom Google event
1753    if (typeof ga === 'function')
1754    {
1755        if (!noReferer)
1756        {
1757            var url = prefixUrl(smartasset.page.originalUrl);
1758            ga('set', 'referrer', url);
1759        }
1760
1761        // "pageview", "page", and "title" are Google Analytics keywords
1762        ga('send', 'pageview', {
1763            'page': window.location.pathname,
1764            'title': document.title
1765        });
1766
1767        if (IS_DEV)
1768        {
1769            console.log('PageView Track: ', window.location.pathname);
1770        }
1771
1772        // Broadcast our "Page Loaded" event to all services
1773        smartasset.analytics.track('Page Loaded');
1774    }
1775};
1776
1777/**
1778 * Facebook tracking
1779 * @param label: custom id to send to FB for tracking
1780 * @param customData: a custom object sent with specifications about the event
1781 */
1782
1783smartasset.analytics.facebookTrack = function(label, customData)
1784{
1785    // First check if the facebook tracker is instantiated
1786    if (typeof fbq === 'function' && $.type(label) === 'string')
1787    {
1788        // Set the event type
1789        var eventType;
1790        if (label === 'ViewContent')
1791        {
1792            eventType = 'track';
1793        }
1794        else
1795        {
1796            eventType = 'trackCustom';
1797        }
1798
1799        // Check if there is custom data
1800        if ($.type(customData) !== 'object')
1801        {
1802            customData = {};
1803        }
1804
1805        // Include UTM Campaign params
1806        var queryParams = $.queryParams();
1807
1808        customData.utmsource = queryParams.utm_source ? queryParams.utm_source : undefined;
1809        customData.utmcampaign = queryParams.utm_campaign ? queryParams.utm_campaign : undefined;
1810        customData.utmmedium = queryParams.utm_medium ? queryParams.utm_medium : undefined;
1811        customData.utmcontent = queryParams.utm_content ? queryParams.utm_content : undefined;
1812        customData.utmterm = queryParams.utm_term ? queryParams.utm_term : undefined;
1813
1814        // Track the event
1815        fbq(eventType, label, customData);
1816
1817        if (IS_DEV) {
1818            console.log('Facebook Track: ' + label, customData);
1819        }
1820    }
1821};
1822
1823/**
1824 * Event Tracker
1825 * @param mpEvent: name of the MP event
1826 * @param mpParams: additional optional items to include in the MP event
1827 */
1828smartasset.analytics.eventTrack = function(mpEvent, mpParams)
1829{
1830    if ($.type(mpEvent) === 'string')
1831    {
1832        // Track in Google Analytics (GA) and Mixpanel (MP)
1833        if ($.type(mpParams) !== 'object')
1834        {
1835            mpParams = {};
1836        }
1837
1838        smartasset.analytics.track(mpEvent, mpParams);
1839    }
1840};
1841
1842/**
1843 * PLEASE READ NOTES IN THE CODE ON HOW TO USE THIS!
1844 * track("eventName", { value: 4, color: "Blue"})
1845 *
1846 * @param {string} eventKey
1847 * @param {Object=} data optional object with parameters for the event.
1848 * @param {boolean} skipMixpanel if true, skips sending data to Mixpanel
1849 */
1850smartasset.analytics.track = function(eventKey, data, skipMixpanel)
1851{
1852    var skipGoogleAnalytics = false,
1853        eventsToSkipInGA = ['Page Loaded'];
1854
1855    if (eventsToSkipInGA.indexOf(eventKey) !== -1)
1856    {
1857        skipGoogleAnalytics = true;
1858    }
1859
1860    // Omit events from MP
1861    if (typeof skipMixpanel !== 'boolean')
1862    {
1863        skipMixpanel = false;
1864    }
1865
1866    if (IS_DEV)
1867    {
1868        console.log('Tracking Event: ', eventKey, data);
1869    }
1870
1871    // instantiate a copy of the data parameter that we can mutate
1872    var properties = (typeof data === 'object') ? data : {};
1873
1874    // avoid logging an invalid key
1875    if (!eventKey || typeof eventKey !== 'string')
1876    {
1877        console.error('Error - key is invalid');
1878        return;
1879    }
1880
1881    properties.page = window.location.pathname;
1882
1883    // Raise an event within the window. This is useful for detecting
1884    // events in other code.
1885    // NOTE: replace "createEvent" with CustomEvent when we deprecate IE8
1886    if (document.createEvent && document.dispatchEvent)
1887    {
1888        var evt = document.createEvent('Event');
1889        evt.initEvent(eventKey, true, true);
1890        document.dispatchEvent(evt);
1891    }
1892
1893    // Send event to Mixpanel
1894    if (!skipMixpanel && typeof mixpanel === "object" && typeof mixpanel.track === 'function')
1895    {
1896        mixpanel.track(eventKey, properties);
1897    }
1898
1899    // Send event to Google Analytics
1900    if (!skipGoogleAnalytics && typeof ga === 'function')
1901    {
1902        ga('send', 'event', eventKey, eventKey, properties);
1903    }
1904};
1905

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