From 9f1204605f8a22ce87d797cb4d1f6ad580835a2d Mon Sep 17 00:00:00 2001 From: Maxime Date: Fri, 3 Jul 2015 15:48:14 +0000 Subject: [PATCH] Working checkpoint before classifying Viz --- app.py | 76 +++++- requirements.txt | 7 +- static/highcharts.js | 325 ++++++++++++++++++++++++ static/tux_panoramix.png | Bin 0 -> 74514 bytes templates/panoramix/base.html | 4 +- templates/panoramix/datasource.html | 29 ++- templates/panoramix/viz_highcharts.html | 25 ++ templates/panoramix/viz_table.html | 8 + 8 files changed, 448 insertions(+), 26 deletions(-) create mode 100644 static/highcharts.js create mode 100644 static/tux_panoramix.png create mode 100644 templates/panoramix/viz_highcharts.html create mode 100644 templates/panoramix/viz_table.html diff --git a/app.py b/app.py index 1145b5dc4c699..e47609a95a298 100644 --- a/app.py +++ b/app.py @@ -2,20 +2,43 @@ from pydruid.utils.filters import Dimension from dateutil.parser import parse from datetime import datetime, timedelta -from flask import Flask, render_template, request +from flask import Flask, render_template, request, flash from flask_bootstrap import Bootstrap import json from wtforms import Form, SelectMultipleField, SelectField, TextField import pandas as pd +from pandas_highcharts.core import serialize + pd.set_option('display.max_colwidth', -1) ROW_LIMIT = 10000 PORT = 8088 +CHART_ARGS = { + 'figsize': (None, 700), + 'title': None, +} query = client.PyDruid("http://10.181.47.80:8080", 'druid/v2') app = Flask(__name__) Bootstrap(app) + +class BaseViz(object): + template = "panoramix/datasource.html" + def __init__(self): + pass + + def form_class(self): + pass + + +viz_types = { + 'table': 'Table', + 'line': 'Time Series - Line', + 'bar': 'Time Series - Bar', + 'bar_distro': 'Distribution - Bar', +} + def latest_metadata(datasource): max_time = query.time_boundary(datasource=datasource)[0]['result']['maxTime'] max_time = parse(max_time) @@ -47,6 +70,8 @@ def datasource(datasource): except: pass class QueryForm(Form): + viz_type = SelectField( + 'Viz', choices=[v for v in viz_types.items()]) groupby = SelectMultipleField( 'Group by', choices=[(m, m) for m in sorted(metadata.keys())]) granularity = SelectField( @@ -63,6 +88,7 @@ class QueryForm(Form): groupby = request.args.getlist("groupby") or [] granularity = request.args.get("granularity") + metric = "count" limit = int(request.args.get("limit", ROW_LIMIT)) or ROW_LIMIT since = request.args.get("since", "all") from_dttm = (datetime.now() - since_l[since]).isoformat() @@ -81,7 +107,6 @@ class QueryForm(Form): else: break i += 1 - print filters results=[] results = query.groupby( @@ -89,33 +114,64 @@ class QueryForm(Form): granularity=granularity or 'all', intervals=from_dttm + '/' + datetime.now().isoformat(), dimensions=groupby, - aggregations={"count": client.doublesum("count")}, - filter=filters, + aggregations={"count": client.doublesum(metric)}, + #filter=filters, limit_spec={ "type": "default", "limit": limit, "columns": [{ - "dimension" : "count", + "dimension" : metric, "direction" : "descending", },], }, ) + viz_type = request.args.get("viz_type", "table") + + chart_js = None + table = None df = query.export_pandas() - if df is not None and not df.empty: + template = 'panoramix/viz_highcharts.html' + if df is None or df.empty: + flash("No data", "error") + elif viz_type == "table": + template = 'panoramix/viz_table.html' df = df.sort(df.columns[0], ascending=False) if granularity == 'all': del df['timestamp'] table = df.to_html( classes=["table", "table-striped", 'table-bordered'], index=False) - else: - table = None + elif viz_type == "line": + df = df.pivot_table( + index="timestamp", + columns=[ + col for col in df.columns if col not in ["timestamp", metric]], + values=[metric]) + chart_js = serialize( + df, render_to="chart", kind="line", **CHART_ARGS) + elif viz_type == "bar": + df = df.pivot_table( + index="timestamp", + columns=[ + col for col in df.columns if col not in ["timestamp", metric]], + values=[metric]) + chart_js = serialize(df, render_to="chart", kind="bar", **CHART_ARGS) + elif viz_type == "bar_distro": + df = df.pivot_table( + index=[ + col for col in df.columns if col not in ["timestamp", metric]], + values=[metric]) + df = df.sort(metric, ascending=False) + chart_js = serialize(df, render_to="chart", kind="bar", **CHART_ARGS) return render_template( - 'panoramix/datasource.html', + template, table=table, + verbose_viz_type=viz_types[viz_type], + viz_type=viz_type, datasource=datasource, + chart_js=chart_js, latest_metadata=json.dumps( metadata, sort_keys=True, @@ -124,7 +180,7 @@ class QueryForm(Form): results, sort_keys=True, indent=2), - form=QueryForm(request.args), + form=QueryForm(request.args, id="queryform"), ) if __name__ == '__main__': diff --git a/requirements.txt b/requirements.txt index a73765944ca7e..e1e0740235121 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ -pydruid -python-dateutil flask +flask-bootstrap pandas +pandas-highcharts +pydruid +python-dateutil wtforms -flask-bootstrap diff --git a/static/highcharts.js b/static/highcharts.js new file mode 100644 index 0000000000000..1075c639fe741 --- /dev/null +++ b/static/highcharts.js @@ -0,0 +1,325 @@ +/* + Highcharts JS v4.1.7 (2015-06-26) + + (c) 2009-2014 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(){function z(){var a,b=arguments,c,d={},e=function(a,b){var c,d;typeof a!=="object"&&(a={});for(d in b)b.hasOwnProperty(d)&&(c=b[d],a[d]=c&&typeof c==="object"&&Object.prototype.toString.call(c)!=="[object Array]"&&d!=="renderTo"&&typeof c.nodeType!=="number"?e(a[d]||{},c):b[d]);return a};b[0]===!0&&(d=b[1],b=Array.prototype.slice.call(b,2));c=b.length;for(a=0;a-1?h.thousandsSep:""))):e=Oa(f,e)}j.push(e);a=a.slice(c+1);c=(d=!d)?"}":"{"}j.push(a);return j.join("")}function pb(a){return W.pow(10,V(W.log(a)/W.LN10))}function qb(a,b,c,d,e){var f,g=a,c=p(c,1);f=a/c;b||(b=[1,2,2.5,5,10],d===!1&&(c=== +1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d=a||!e&&f<=(b[d]+(b[d+1]||b[d]))/2)break;g*=c;return g}function rb(a,b){var c=a.length,d,e;for(e=0;ec&&(c=a[b]);return c}function Qa(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(), +delete a[c]}function Ra(a){fb||(fb=$(Ka));a&&fb.appendChild(a);fb.innerHTML=""}function la(a,b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;K.console&&console.log(c)}function ea(a){return parseFloat(a.toPrecision(14))}function Sa(a,b){za=p(a,b.animation)}function Db(){var a=T.global,b=a.useUTC,c=b?"getUTC":"get",d=b?"setUTC":"set";Aa=a.Date||window.Date;ob=b&&a.timezoneOffset;eb=b&&a.getTimezoneOffset;gb=function(a,c,d,h,i,j){var k;b?(k=Aa.UTC.apply(0,arguments),k+= +Wa(k)):k=(new Aa(a,c,p(d,1),p(h,0),p(i,0),p(j,0))).getTime();return k};sb=c+"Minutes";tb=c+"Hours";ub=c+"Day";Xa=c+"Date";Ya=c+"Month";Za=c+"FullYear";Eb=d+"Milliseconds";Fb=d+"Seconds";Gb=d+"Minutes";Hb=d+"Hours";vb=d+"Date";wb=d+"Month";xb=d+"FullYear"}function Q(){}function Ta(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;!c&&!d&&this.addLabel()}function Ib(a,b,c,d,e){var f=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.total=null;this.points={};this.stack= +e;this.alignOptions={align:b.align||(f?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(f?"middle":c?"bottom":"top"),y:p(b.y,f?4:c?14:-6),x:p(b.x,f?c?-6:6:0)};this.textAlign=b.textAlign||(f?c?"right":"left":"center")}var y,B=document,K=window,W=Math,r=W.round,V=W.floor,ta=W.ceil,u=W.max,C=W.min,O=W.abs,X=W.cos,aa=W.sin,ma=W.PI,ha=ma*2/360,Ba=navigator.userAgent,Jb=K.opera,ya=/(msie|trident)/i.test(Ba)&&!Jb,hb=B.documentMode===8,ib=/AppleWebKit/.test(Ba),La=/Firefox/.test(Ba),Kb=/(Mobile|Android|Windows Phone)/.test(Ba), +Ca="http://www.w3.org/2000/svg",ca=!!B.createElementNS&&!!B.createElementNS(Ca,"svg").createSVGRect,Ob=La&&parseInt(Ba.split("Firefox/")[1],10)<4,fa=!ca&&!ya&&!!B.createElement("canvas").getContext,$a,ab,Lb={},yb=0,fb,T,Oa,za,zb,E,na=function(){return y},Y=[],bb=0,Ka="div",P="none",Pb=/^[0-9]+$/,jb=["plotTop","marginRight","marginBottom","plotLeft"],Qb="stroke-width",Aa,gb,ob,eb,sb,tb,ub,Xa,Ya,Za,Eb,Fb,Gb,Hb,vb,wb,xb,M={},A;A=K.Highcharts=K.Highcharts?la(16,!0):{};A.seriesTypes=M;var x=A.extend=function(a, +b){var c;a||(a={});for(c in b)a[c]=b[c];return a},p=A.pick=function(){var a=arguments,b,c,d=a.length;for(b=0;b3?c.length%3:0;return e+(g?c.substr(0,g)+d:"")+c.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(f?b+O(a-c).toFixed(f).slice(2):"")};zb={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,j=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+ +1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&(j(b),j(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f&&b.length===c.length)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift=0;if(b.length)for(a=c.length;b.length{point.key}
',pointFormat:'\u25CF {series.name}: {point.y}
', +shadow:!0,snap:Kb?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var ba=T.plotOptions,U=ba.line;Db();var Ub=/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*\)/,Vb=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/, +Wb=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,oa=function(a){var b=[],c,d;(function(a){a&&a.stops?d=Ua(a.stops,function(a){return oa(a[1])}):(c=Ub.exec(a))?b=[D(c[1]),D(c[2]),D(c[3]),parseFloat(c[4],10)]:(c=Vb.exec(a))?b=[D(c[1],16),D(c[2],16),D(c[3],16),1]:(c=Wb.exec(a))&&(b=[D(c[1]),D(c[2]),D(c[3]),1])})(a);return{get:function(c){var f;d?(f=z(a),f.stops=[].concat(f.stops),o(d,function(a,b){f.stops[b]=[f.stops[b][0],a.get(c)]})):f=b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+ +b[1]+","+b[2]+")":c==="a"?b[3]:"rgba("+b.join(",")+")":a;return f},brighten:function(a){if(d)o(d,function(b){b.brighten(a)});else if(ra(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=D(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},rgba:b,setOpacity:function(a){b[3]=a;return this},raw:a}};Q.prototype={opacity:1,textProps:"fontSize,fontWeight,fontFamily,fontStyle,color,lineHeight,width,textDecoration,textShadow".split(","),init:function(a,b){this.element=b==="span"?$(b):B.createElementNS(Ca,b); +this.renderer=a},animate:function(a,b,c){b=p(b,za,!0);db(this);if(b){b=z(b,{});if(c)b.complete=c;mb(this,a,b)}else this.attr(a),c&&c();return this},colorGradient:function(a,b,c){var d=this.renderer,e,f,g,h,i,j,k,l,m,n,v=[];a.linearGradient?f="linearGradient":a.radialGradient&&(f="radialGradient");if(f){g=a[f];h=d.gradients;j=a.stops;m=c.radialReference;Ha(g)&&(a[f]=g={x1:g[0],y1:g[1],x2:g[2],y2:g[3],gradientUnits:"userSpaceOnUse"});f==="radialGradient"&&m&&!q(g.gradientUnits)&&(g=z(g,{cx:m[0]-m[2]/ +2+g.cx*m[2],cy:m[1]-m[2]/2+g.cy*m[2],r:g.r*m[2],gradientUnits:"userSpaceOnUse"}));for(n in g)n!=="id"&&v.push(n,g[n]);for(n in j)v.push(j[n]);v=v.join(",");h[v]?a=h[v].attr("id"):(g.id=a="highcharts-"+yb++,h[v]=i=d.createElement(f).attr(g).add(d.defs),i.stops=[],o(j,function(a){a[1].indexOf("rgba")===0?(e=oa(a[1]),k=e.get("rgb"),l=e.get("a")):(k=a[1],l=1);a=d.createElement("stop").attr({offset:a[0],"stop-color":k,"stop-opacity":l}).add(i);i.stops.push(a)}));c.setAttribute(b,"url("+d.url+"#"+a+")")}}, +applyTextShadow:function(a){var b=this.element,c,d=a.indexOf("contrast")!==-1,e={},f=this.renderer.forExport||b.style.textShadow!==y&&!ya;if(d)e.textShadow=a=a.replace(/contrast/g,this.renderer.getContrast(b.style.fill));if(ib)e.textRendering="geometricPrecision";f?L(b,e):(this.fakeTS=!0,this.ySetter=this.xSetter,c=[].slice.call(b.getElementsByTagName("tspan")),o(a.split(/\s?,\s?/g),function(a){var d=b.firstChild,e,f,a=a.split(" ");e=a[a.length-1];(f=a[a.length-2])&&o(c,function(a,c){var g;c===0&& +(a.setAttribute("x",b.getAttribute("x")),c=b.getAttribute("y"),a.setAttribute("y",c||0),c===null&&b.setAttribute("y",0));g=a.cloneNode(1);J(g,{"class":"highcharts-text-shadow",fill:e,stroke:e,"stroke-opacity":1/u(D(f),3),"stroke-width":f,"stroke-linejoin":"round"});b.insertBefore(g,d)})}))},attr:function(a,b){var c,d,e=this.element,f,g=this,h;typeof a==="string"&&b!==y&&(c=a,a={},a[c]=b);if(typeof a==="string")g=(this[a+"Getter"]||this._defaultGetter).call(this,a,e);else{for(c in a){d=a[c];h=!1;this.symbolName&& +/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(c)&&(f||(this.symbolAttr(a),f=!0),h=!0);if(this.rotation&&(c==="x"||c==="y"))this.doTransform=!0;h||(this[c+"Setter"]||this._defaultSetter).call(this,d,c,e);this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(c)&&this.updateShadows(c,d)}if(this.doTransform)this.updateTransform(),this.doTransform=!1}return g},updateShadows:function(a,b){for(var c=this.shadows,d=c.length;d--;)c[d].setAttribute(a,a==="height"?u(b-(c[d].cutHeight|| +0),0):a==="d"?this.d:b)},addClass:function(a){var b=this.element,c=J(b,"class")||"";c.indexOf(a)===-1&&J(b,"class",c+" "+a);return this},symbolAttr:function(a){var b=this;o("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(c){b[c]=p(a[c],b[c])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":P)},crisp:function(a){var b,c={},d,e=a.strokeWidth||this.strokeWidth||0; +d=r(e)%2/2;a.x=V(a.x||this.x||0)+d;a.y=V(a.y||this.y||0)+d;a.width=V((a.width||this.width||0)-2*d);a.height=V((a.height||this.height||0)-2*d);a.strokeWidth=e;for(b in a)this[b]!==a[b]&&(this[b]=c[b]=a[b]);return c},css:function(a){var b=this.styles,c={},d=this.element,e,f,g="";e=!b;if(a&&a.color)a.fill=a.color;if(b)for(f in a)a[f]!==b[f]&&(c[f]=a[f],e=!0);if(e){e=this.textWidth=a&&a.width&&d.nodeName.toLowerCase()==="text"&&D(a.width)||this.textWidth;b&&(a=x(b,c));this.styles=a;e&&(fa||!ca&&this.renderer.forExport)&& +delete a.width;if(ya&&!ca)L(this.element,a);else{b=function(a,b){return"-"+b.toLowerCase()};for(f in a)g+=f.replace(/([A-Z])/g,b)+":"+a[f]+";";J(d,"style",g)}e&&this.added&&this.renderer.buildText(this)}return this},on:function(a,b){var c=this,d=c.element;ab&&a==="click"?(d.ontouchstart=function(a){c.touchEventFired=Aa.now();a.preventDefault();b.call(d,a)},d.onclick=function(a){(Ba.indexOf("Android")===-1||Aa.now()-(c.touchEventFired||0)>1100)&&b.call(d,a)}):d["on"+a]=b;return this},setRadialReference:function(a){this.element.radialReference= +a;return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(){this.inverted=!0;this.updateTransform();return this},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=this.scaleX,d=this.scaleY,e=this.inverted,f=this.rotation,g=this.element;e&&(a+=this.attr("width"),b+=this.attr("height"));a=["translate("+a+","+b+")"];e?a.push("rotate(90) scale(-1,1)"):f&&a.push("rotate("+f+" "+(g.getAttribute("x")||0)+" "+(g.getAttribute("y")||0)+")"); +(q(c)||q(d))&&a.push("scale("+p(c,1)+" "+p(d,1)+")");a.length&&g.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){var d,e,f,g,h={};e=this.renderer;f=e.alignedObjects;if(a){if(this.alignOptions=a,this.alignByTranslate=b,!c||Da(c))this.alignTo=d=c||"renderer",ja(f,this),f.push(this),c=null}else a=this.alignOptions,b=this.alignByTranslate,d=this.alignTo;c=p(c,e[d],e);d=a.align;e=a.verticalAlign;f=(c.x||0)+(a.x|| +0);g=(c.y||0)+(a.y||0);if(d==="right"||d==="center")f+=(c.width-(a.width||0))/{right:1,center:2}[d];h[b?"translateX":"x"]=r(f);if(e==="bottom"||e==="middle")g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1);h[b?"translateY":"y"]=r(g);this[this.placed?"animate":"attr"](h);this.placed=!0;this.alignAttr=h;return this},getBBox:function(a){var b,c=this.renderer,d,e=this.rotation,f=this.element,g=this.styles,h=e*ha;d=this.textStr;var i,j=f.style,k,l;d!==y&&(l=["",e||0,g&&g.fontSize,f.style.width].join(","), +l=d===""||Pb.test(d)?"num:"+d.toString().length+l:d+l);l&&!a&&(b=c.cache[l]);if(!b){if(f.namespaceURI===Ca||c.forExport){try{k=this.fakeTS&&function(a){o(f.querySelectorAll(".highcharts-text-shadow"),function(b){b.style.display=a})},La&&j.textShadow?(i=j.textShadow,j.textShadow=""):k&&k(P),b=f.getBBox?x({},f.getBBox()):{width:f.offsetWidth,height:f.offsetHeight},i?j.textShadow=i:k&&k("")}catch(m){}if(!b||b.width<0)b={width:0,height:0}}else b=this.htmlGetBBox();if(c.isSVG){a=b.width;d=b.height;if(ya&& +g&&g.fontSize==="11px"&&d.toPrecision(3)==="16.9")b.height=d=14;if(e)b.width=O(d*aa(h))+O(a*X(h)),b.height=O(d*X(h))+O(a*aa(h))}c.cache[l]=b}return b},show:function(a){a&&this.element.namespaceURI===Ca?this.element.removeAttribute("visibility"):this.attr({visibility:a?"inherit":"visible"});return this},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.attr({y:-9999})}})},add:function(a){var b=this.renderer, +c=this.element,d;if(a)this.parentGroup=a;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)d=this.zIndexSetter();d||(a?a.element:b.box).appendChild(c);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d=a.renderer.isSVG&&b.nodeName==="SPAN"&&a.parentGroup,e,f;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point= +null;db(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(f=0;f]*>/g,"")))},textSetter:function(a){if(a!==this.textStr)delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this)},fillSetter:function(a,b,c){typeof a==="string"?c.setAttribute(b,a):a&&this.colorGradient(a,b,c)},zIndexSetter:function(a,b){var c=this.renderer,d=this.parentGroup,c=(d||c).element||c.box,e,f,g=this.element,h;e=this.added;var i;q(a)&&(g.setAttribute(b,a),a=+a,this[b]===a&&(e=!1),this[b]=a);if(e){if((a=this.zIndex)&&d)d.handleZ=!0;d=c.childNodes;for(i=0;i< +d.length&&!h;i++)if(e=d[i],f=J(e,"zIndex"),e!==g&&(D(f)>a||!q(a)&&q(f)))c.insertBefore(g,e),h=!0;h||c.appendChild(g)}return h},_defaultSetter:function(a,b,c){c.setAttribute(b,a)}};Q.prototype.yGetter=Q.prototype.xGetter;Q.prototype.translateXSetter=Q.prototype.translateYSetter=Q.prototype.rotationSetter=Q.prototype.verticalAlignSetter=Q.prototype.scaleXSetter=Q.prototype.scaleYSetter=function(a,b){this[b]=a;this.doTransform=!0};Q.prototype["stroke-widthSetter"]=Q.prototype.strokeSetter=function(a, +b,c){this[b]=a;if(this.stroke&&this["stroke-width"])this.strokeWidth=this["stroke-width"],Q.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0;else if(b==="stroke-width"&&a===0&&this.hasStroke)c.removeAttribute("stroke"),this.hasStroke=!1};var ua=function(){this.init.apply(this,arguments)};ua.prototype={Element:Q,init:function(a,b,c,d,e){var f=location,g,d=this.createElement("svg").attr({version:"1.1"}).css(this.getStyle(d)); +g=d.element;a.appendChild(g);a.innerHTML.indexOf("xmlns")===-1&&J(g,"xmlns",Ca);this.isSVG=!0;this.box=g;this.boxWrapper=d;this.alignedObjects=[];this.url=(La||ib)&&B.getElementsByTagName("base").length?f.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(B.createTextNode("Created with Highcharts 4.1.7"));this.defs=this.createElement("defs").add();this.forExport=e;this.gradients={};this.cache={};this.setSize(b,c,!1);var h; +if(La&&a.getBoundingClientRect)this.subPixelFix=b=function(){L(a,{left:0,top:0});h=a.getBoundingClientRect();L(a,{left:ta(h.left)-h.left+"px",top:ta(h.top)-h.top+"px"})},b(),H(K,"resize",b)},getStyle:function(a){return this.style=x({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();Qa(this.gradients|| +{});this.gradients=null;if(a)this.defs=a.destroy();this.subPixelFix&&Z(K,"resize",this.subPixelFix);return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:function(){},buildText:function(a){for(var b=a.element,c=this,d=c.forExport,e=p(a.textStr,"").toString(),f=e.indexOf("<")!==-1,g=b.childNodes,h,i,j=J(b,"x"),k=a.styles,l=a.textWidth,m=k&&k.lineHeight,n=k&&k.textShadow,v=k&&k.textOverflow==="ellipsis",s=g.length,S=l&&!a.added&&this.box,N=function(a){return m? +D(m):c.fontMetrics(/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:k&&k.fontSize||c.style.fontSize||12,a).h},t=function(a){return a.replace(/</g,"<").replace(/>/g,">")};s--;)b.removeChild(g[s]);!f&&!n&&!v&&e.indexOf(" ")===-1?b.appendChild(B.createTextNode(t(e))):(h=/<.*style="([^"]+)".*>/,i=/<.*href="(http[^"]+)".*>/,S&&S.appendChild(b),e=f?e.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,'').replace(//g, +"").split(//g):[e],e[e.length-1]===""&&e.pop(),o(e,function(e,f){var g,m=0,e=e.replace(//g,"|||");g=e.split("|||");o(g,function(e){if(e!==""||g.length===1){var n={},s=B.createElementNS(Ca,"tspan"),p;h.test(e)&&(p=e.match(h)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),J(s,"style",p));i.test(e)&&!d&&(J(s,"onclick",'location.href="'+e.match(i)[1]+'"'),L(s,{cursor:"pointer"}));e=t(e.replace(/<(.|\n)*?>/g,"")||" ");if(e!==" "){s.appendChild(B.createTextNode(e)); +if(m)n.dx=0;else if(f&&j!==null)n.x=j;J(s,n);b.appendChild(s);!m&&f&&(!ca&&d&&L(s,{display:"block"}),J(s,"dy",N(s)));if(l){for(var n=e.replace(/([^\^])-/g,"$1- ").split(" "),o=g.length>1||f||n.length>1&&k.whiteSpace!=="nowrap",S,w,q,u=[],y=N(s),r=1,x=a.rotation,z=e,C=z.length;(o||v)&&(n.length||u.length);)a.rotation=0,S=a.getBBox(!0),q=S.width,!ca&&c.forExport&&(q=c.measureSpanWidth(s.firstChild.data,a.styles)),S=q>l,w===void 0&&(w=S),v&&w?(C/=2,z===""||!S&&C<0.5?n=[]:(S&&(w=!0),z=e.substring(0,z.length+ +(S?-1:1)*ta(C)),n=[z+(l>3?"…":"")],s.removeChild(s.firstChild))):!S||n.length===1?(n=u,u=[],n.length&&(r++,s=B.createElementNS(Ca,"tspan"),J(s,{dy:y,x:j}),p&&J(s,"style",p),b.appendChild(s)),q>l&&(l=q)):(s.removeChild(s.firstChild),u.unshift(n.pop())),n.length&&s.appendChild(B.createTextNode(n.join(" ").replace(/- /g,"-")));w&&a.attr("title",a.textStr);a.rotation=x}m++}}})}),S&&S.removeChild(b),n&&a.applyTextShadow&&a.applyTextShadow(n))},getContrast:function(a){a=oa(a).rgba;return a[0]+a[1]+a[2]> +384?"#000000":"#FFFFFF"},button:function(a,b,c,d,e,f,g,h,i){var j=this.label(a,b,c,i,null,null,null,null,"button"),k=0,l,m,n,v,s,p,a={x1:0,y1:0,x2:0,y2:1},e=z({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:a,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},e);n=e.style;delete e.style;f=z(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#FFF"],[1,"#ACF"]]}},f);v=f.style;delete f.style;g=z(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#9BD"],[1,"#CDF"]]}},g); +s=g.style;delete g.style;h=z(e,{style:{color:"#CCC"}},h);p=h.style;delete h.style;H(j.element,ya?"mouseover":"mouseenter",function(){k!==3&&j.attr(f).css(v)});H(j.element,ya?"mouseout":"mouseleave",function(){k!==3&&(l=[e,f,g][k],m=[n,v,s][k],j.attr(l).css(m))});j.setState=function(a){(j.state=k=a)?a===2?j.attr(g).css(s):a===3&&j.attr(h).css(p):j.attr(e).css(n)};return j.on("click",function(){k!==3&&d.call(j)}).attr(e).css(x({cursor:"default"},n))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]= +r(a[1])-b%2/2);a[2]===a[5]&&(a[2]=a[5]=r(a[2])+b%2/2);return a},path:function(a){var b={fill:P};Ha(a)?b.d=a:da(a)&&x(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=da(a)?a:{x:a,y:b,r:c};b=this.createElement("circle");b.xSetter=function(a){this.element.setAttribute("cx",a)};b.ySetter=function(a){this.element.setAttribute("cy",a)};return b.attr(a)},arc:function(a,b,c,d,e,f){if(da(a))b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;a=this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d|| +0,start:e||0,end:f||0});a.r=c;return a},rect:function(a,b,c,d,e,f){var e=da(a)?a.r:e,g=this.createElement("rect"),a=da(a)?a:a===y?{}:{x:a,y:b,width:u(c,0),height:u(d,0)};if(f!==y)a.strokeWidth=f,a=g.crisp(a);if(e)a.r=e;g.rSetter=function(a){J(this.element,{rx:a,ry:a})};return g.attr(a)},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[p(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g"); +return q(a)?b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:P};arguments.length>1&&x(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(r(b),r(c),d,e,f),i=/^url\((.*?)\)$/,j,k;if(h)g=this.path(h),x(g,{symbolName:a,x:b,y:c,width:d,height:e}), +f&&x(g,f);else if(i.test(a))k=function(a,b){a.element&&(a.attr({width:b[0],height:b[1]}),a.alignByTranslate||a.translate(r((d-b[0])/2),r((e-b[1])/2)))},j=a.match(i)[1],a=Lb[j]||f&&f.width&&f.height&&[f.width,f.height],g=this.image(j).attr({x:b,y:c}),g.isImg=!0,a?k(g,a):(g.attr({width:0,height:0}),$("img",{onload:function(){k(g,Lb[j]=[this.width,this.height])},src:j}));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/ +2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-0.001,d=e.innerR,h=e.open,i=X(f),j=aa(f),k=X(g),g=aa(g),e=e.end-fc&&e>b+g&&eb+g&&ed&&h>a+g&&ha+g&&hm&&/[ \-]/.test(b.textContent||b.innerText))L(b,{width:m+"px",display:"block",whiteSpace:j&&j.whiteSpace||"normal"}),i=m;this.getSpanCorrection(i,l,h,k,g)}L(b,{left:e+(this.xCorr||0)+"px",top:f+(this.yCorr||0)+"px"});if(ib)l=b.offsetHeight;this.cTT=n}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,c){var d={},e=ya?"-ms-transform":ib?"-webkit-transform":La?"MozTransform":Jb?"-o-transform":"";d[e]=d.transform="rotate("+a+"deg)"; +d[e+(La?"Origin":"-origin")]=d.transformOrigin=b*100+"% "+c+"px";L(this.element,d)},getSpanCorrection:function(a,b,c){this.xCorr=-a*c;this.yCorr=-b}});x(ua.prototype,{html:function(a,b,c){var d=this.createElement("span"),e=d.element,f=d.renderer;d.textSetter=function(a){a!==e.innerHTML&&delete this.bBox;e.innerHTML=this.textStr=a};d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,b){b==="align"&&(b="textAlign");d[b]=a;d.htmlUpdateTransform()};d.attr({text:a,x:r(b),y:r(c)}).css({position:"absolute", +fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});e.style.whiteSpace="nowrap";d.css=d.htmlCss;if(f.isSVG)d.add=function(a){var b,c=f.box.parentNode,j=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)j.push(a),a=a.parentGroup;o(j.reverse(),function(a){var d,e=J(a.element,"class");e&&(e={className:e});b=a.div=a.div||$(Ka,e,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px"},b||c);d=b.style;x(a,{translateXSetter:function(b,c){d.left=b+"px";a[c]=b;a.doTransform= +!0},translateYSetter:function(b,c){d.top=b+"px";a[c]=b;a.doTransform=!0},visibilitySetter:function(a,b){d[b]=a}})})}}else b=c;b.appendChild(e);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d};return d}});if(!ca&&!fa){F={init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],d=["position: ","absolute",";"],e=b===Ka;(b==="shape"||e)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",e?"hidden":"visible");c.push(' style="',d.join(""),'"/>');if(b)c=e||b==="span"||b==="img"? +c.join(""):a.prepVML(c),this.element=$(c);this.renderer=a},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();return this},updateTransform:Q.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=X(a*ha),c=aa(a*ha);L(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11=",b, +", M12=",-c,", M21=",c,", M22=",b,", sizingMethod='auto expand')"].join(""):P})},getSpanCorrection:function(a,b,c,d,e){var f=d?X(d*ha):1,g=d?aa(d*ha):0,h=p(this.elemHeight,this.element.offsetHeight),i;this.xCorr=f<0&&-a;this.yCorr=g<0&&-h;i=f*g<0;this.xCorr+=g*b*(i?1-c:c);this.yCorr-=f*b*(d?i?c:1-c:1);e&&e!=="left"&&(this.xCorr-=a*c*(f<0?-1:1),d&&(this.yCorr-=h*c*(g<0?-1:1)),L(this.element,{textAlign:e}))},pathToVML:function(a){for(var b=a.length,c=[];b--;)if(ra(a[b]))c[b]=r(a[b]*10)-5;else if(a[b]=== +"Z")c[b]="x";else if(c[b]=a[b],a.isArc&&(a[b]==="wa"||a[b]==="at"))c[b+5]===c[b+7]&&(c[b+7]+=a[b+7]>a[b+5]?1:-1),c[b+6]===c[b+8]&&(c[b+8]+=a[b+8]>a[b+6]?1:-1);return c.join(" ")||"x"},clip:function(a){var b=this,c;a?(c=a.members,ja(c,b),c.push(b),b.destroyClip=function(){ja(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),a={clip:hb?"inherit":"rect(auto)"});return b.css(a)},css:Q.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Ra(a)},destroy:function(){this.destroyClip&&this.destroyClip(); +return Q.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=K.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length;if(c===9||c===11)a[c-4]=a[c-2]=D(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e,f=this.element,g=this.renderer,h,i=f.style,j,k=f.path,l,m,n,v;k&&typeof k.value!=="string"&&(k="x");m=k;if(a){n=p(a.width,3);v=(a.opacity||0.15)/n;for(e=1;e<=3;e++){l=n*2+1-2*e;c&&(m=this.cutOffPath(k.value, +l+0.5));j=[''];h=$(g.prepVML(j),null,{left:D(i.left)+p(a.offsetX,1),top:D(i.top)+p(a.offsetY,1)});if(c)h.cutOff=l+1;j=[''];$(g.prepVML(j),null,null,h);b?b.element.appendChild(h):f.parentNode.insertBefore(h,f);d.push(h)}this.shadows=d}return this},updateShadows:na,setAttr:function(a,b){hb?this.element[a]=b:this.element.setAttribute(a, +b)},classSetter:function(a){this.element.className=a},dashstyleSetter:function(a,b,c){(c.getElementsByTagName("stroke")[0]||$(this.renderer.prepVML([""]),null,null,c))[b]=a||"solid";this[b]=a},dSetter:function(a,b,c){var d=this.shadows,a=a||[];this.d=a.join&&a.join(" ");c.path=a=this.pathToVML(a);if(d)for(c=d.length;c--;)d[c].path=d[c].cutOff?this.cutOffPath(a,d[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var d=c.nodeName;if(d==="SPAN")c.style.color=a;else if(d!=="IMG")c.filled= +a!==P,this.setAttr("fillcolor",this.renderer.color(a,c,b,this))},opacitySetter:na,rotationSetter:function(a,b,c){c=c.style;this[b]=c[b]=a;c.left=-r(aa(a*ha)+1)+"px";c.top=r(X(a*ha))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor",this.renderer.color(a,c,b))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a;this[b]=a;ra(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){a==="inherit"&&(a="visible");this.shadows&& +o(this.shadows,function(c){c.style[b]=a});c.nodeName==="DIV"&&(a=a==="hidden"?"-999em":0,hb||(c.style[b]=a?"visible":"hidden"),b="top");c.style[b]=a},xSetter:function(a,b,c){this[b]=a;b==="x"?b="left":b==="y"&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}};A.VMLElement=F=ka(Q,F);F.prototype.ySetter=F.prototype.widthSetter=F.prototype.heightSetter=F.prototype.xSetter;var Na={Element:F,isIE8:Ba.indexOf("MSIE 8.0")>-1,init:function(a, +b,c,d){var e;this.alignedObjects=[];d=this.createElement(Ka).css(x(this.getStyle(d),{position:"relative"}));e=d.element;a.appendChild(d.element);this.isVML=!0;this.box=e;this.boxWrapper=d;this.cache={};this.setSize(b,c,!1);if(!B.namespaces.hcv){B.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{B.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){B.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}}, +isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement(),f=da(a);return x(e,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:d)-1,getCSS:function(a){var b=a.element,c=b.nodeName,a=a.inverted,d=this.top-(c==="shape"?b.offsetTop:0),e=this.left,b=e+this.width,f=d+this.height,d={clip:"rect("+r(a?e:d)+"px,"+r(a?f:b)+"px,"+r(a?b:f)+"px,"+r(a?d:e)+"px)"};!a&&hb&&c==="DIV"&&x(d,{width:b+"px",height:f+"px"});return d}, +updateClipping:function(){o(e.members,function(a){a.element&&a.css(e.getCSS(a))})}})},color:function(a,b,c,d){var e=this,f,g=/^rgba/,h,i,j=P;a&&a.linearGradient?i="gradient":a&&a.radialGradient&&(i="pattern");if(i){var k,l,m=a.linearGradient||a.radialGradient,n,v,s,p,N,t="",a=a.stops,w,ga=[],q=function(){h=[''];$(e.prepVML(h),null,null,b)};n=a[0];w=a[a.length-1];n[0]>0&&a.unshift([0,n[1]]); +w[0]<1&&a.push([1,w[1]]);o(a,function(a,b){g.test(a[1])?(f=oa(a[1]),k=f.get("rgb"),l=f.get("a")):(k=a[1],l=1);ga.push(a[0]*100+"% "+k);b?(s=l,p=k):(v=l,N=k)});if(c==="fill")if(i==="gradient")c=m.x1||m[0]||0,a=m.y1||m[1]||0,n=m.x2||m[2]||0,m=m.y2||m[3]||0,t='angle="'+(90-W.atan((m-a)/(n-c))*180/ma)+'"',q();else{var j=m.r,u=j*2,y=j*2,r=m.cx,x=m.cy,C=b.radialReference,z,j=function(){C&&(z=d.getBBox(),r+=(C[0]-z.x)/z.width-0.5,x+=(C[1]-z.y)/z.height-0.5,u*=C[2]/z.width,y*=C[2]/z.height);t='src="'+T.global.VMLRadialGradientURL+ +'" size="'+u+","+y+'" origin="0.5,0.5" position="'+r+","+x+'" color2="'+N+'" ';q()};d.added?j():d.onAdd=j;j=p}else j=k}else if(g.test(a)&&b.tagName!=="IMG")f=oa(a),h=["<",c,' opacity="',f.get("a"),'"/>'],$(this.prepVML(h),null,null,b),j=f.get("rgb");else{j=b.getElementsByTagName(c);if(j.length)j[0].opacity=1,j[0].type="solid";j=a}return j},prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'): +a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","1&&f.attr({x:b,y:c,width:d,height:e});return f},createElement:function(a){return a==="rect"?this.symbol(a):ua.prototype.createElement.call(this,a)},invertChild:function(a,b){var c=this,d=b.style,e=a.tagName==="IMG"&&a.style;L(a,{flip:"x",left:D(d.width)-(e?D(e.top):1),top:D(d.height)-(e?D(e.left):1),rotation:-90});o(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c|| +d,c=e.innerR,d=X(f),i=aa(f),j=X(g),k=aa(g);if(g-f===0)return["x"];f=["wa",a-h,b-h,a+h,b+h,a+h*d,b+h*i,a+h*j,b+h*k];e.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*j,b+c*k,a+c*d,b+c*i,"x","e");f.isArc=!0;return f},circle:function(a,b,c,d,e){e&&(c=d=2*e.r);e&&e.isCircle&&(a-=c/2,b-=d/2);return["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},rect:function(a,b,c,d,e){return ua.prototype.symbols[!q(e)||!e.r?"square":"callout"].call(0,a,b,c,d,e)}}};A.VMLRenderer=F=function(){this.init.apply(this, +arguments)};F.prototype=z(ua.prototype,Na);$a=F}ua.prototype.measureSpanWidth=function(a,b){var c=B.createElement("span"),d;d=B.createTextNode(a);c.appendChild(d);L(c,b);this.box.appendChild(c);d=c.offsetWidth;Ra(c);return d};var Mb;if(fa)A.CanVGRenderer=F=function(){Ca="http://www.w3.org/1999/xhtml"},F.prototype.symbols={},Mb=function(){function a(){var a=b.length,d;for(d=0;d0&&c+i*j>e&&(m=r((d-c)/X(h*ha)));else if(d=c+ +(1-i)*j,c-i*je&&(k=e-a.x+k*i,l=-1),k=C(b.slotWidth,k),kk||b.autoRotation&&g.styles.width)m=k;if(m){n.width=m;if(!b.options.labels.style.textOverflow)n.textOverflow="ellipsis";g.css(n)}},getPosition:function(a,b,c,d){var e=this.axis,f=e.chart,g=d&&f.oldChartHeight||f.chartHeight;return{x:a?e.translate(b+c,null,null,d)+e.transB:e.left+e.offset+(e.opposite?(d&&f.oldChartWidth||f.chartWidth)- +e.right-e.left:0),y:a?g-e.bottom+e.offset-(e.opposite?e.height:0):g-e.translate(b+c,null,null,d)-e.transB}},getLabelPosition:function(a,b,c,d,e,f,g,h){var i=this.axis,j=i.transA,k=i.reversed,l=i.staggerLines,m=i.tickRotCorr||{x:0,y:0},c=p(e.y,m.y+(i.side===2?8:-(c.getBBox().height/2))),a=a+e.x+m.x-(f&&d?f*j*(k?-1:1):0),b=b+c-(f&&!d?f*j*(k?1:-1):0);l&&(b+=g/(h||1)%l*(i.labelOffset/l));return{x:a,y:r(b)}},getMarkPath:function(a,b,c,d,e,f){return f.crispLine(["M",a,b,"L",a+(e?0:-c),b+(e?c:0)],d)},render:function(a, +b,c){var d=this.axis,e=d.options,f=d.chart.renderer,g=d.horiz,h=this.type,i=this.label,j=this.pos,k=e.labels,l=this.gridLine,m=h?h+"Grid":"grid",n=h?h+"Tick":"tick",v=e[m+"LineWidth"],s=e[m+"LineColor"],o=e[m+"LineDashStyle"],N=e[n+"Length"],m=e[n+"Width"]||0,t=e[n+"Color"],w=e[n+"Position"],n=this.mark,ga=k.step,q=!0,u=d.tickmarkOffset,r=this.getPosition(g,j,u,b),x=r.x,r=r.y,z=g&&x===d.pos+d.len||!g&&r===d.pos?-1:1,c=p(c,1);this.isActive=!0;if(v){j=d.getPlotLinePath(j+u,v*z,b,!0);if(l===y){l={stroke:s, +"stroke-width":v};if(o)l.dashstyle=o;if(!h)l.zIndex=1;if(b)l.opacity=0;this.gridLine=l=v?f.path(j).attr(l).add(d.gridGroup):null}if(!b&&l&&j)l[this.isNew?"attr":"animate"]({d:j,opacity:c})}if(m&&N)w==="inside"&&(N=-N),d.opposite&&(N=-N),h=this.getMarkPath(x,r,N,m*z,g,f),n?n.animate({d:h,opacity:c}):this.mark=f.path(h).attr({stroke:t,"stroke-width":m,opacity:c}).add(d.axisGroup);if(i&&!isNaN(x))i.xy=r=this.getLabelPosition(x,r,i,g,k,u,a,ga),this.isFirst&&!this.isLast&&!p(e.showFirstLabel,1)||this.isLast&& +!this.isFirst&&!p(e.showLastLabel,1)?q=!1:g&&!d.isRadial&&!k.step&&!k.rotation&&!b&&c!==0&&this.handleOverflow(r),ga&&a%ga&&(q=!1),q&&!isNaN(r.y)?(r.opacity=c,i[this.isNew?"attr":"animate"](r),this.isNew=!1):i.attr("y",-9999)},destroy:function(){Qa(this,this.axis)}};A.PlotLineOrBand=function(a,b){this.axis=a;if(b)this.options=b,this.id=b.id};A.PlotLineOrBand.prototype={render:function(){var a=this,b=a.axis,c=b.horiz,d=a.options,e=d.label,f=a.label,g=d.width,h=d.to,i=d.from,j=q(i)&&q(h),k=d.value, +l=d.dashStyle,m=a.svgElem,n=[],v,s=d.color,p=d.zIndex,o=d.events,t={},w=b.chart.renderer;b.isLog&&(i=Ea(i),h=Ea(h),k=Ea(k));if(g){if(n=b.getPlotLinePath(k,g),t={stroke:s,"stroke-width":g},l)t.dashstyle=l}else if(j){n=b.getPlotBandPath(i,h,d);if(s)t.fill=s;if(d.borderWidth)t.stroke=d.borderColor,t["stroke-width"]=d.borderWidth}else return;if(q(p))t.zIndex=p;if(m)if(n)m.animate({d:n},null,m.onGetPath);else{if(m.hide(),m.onGetPath=function(){m.show()},f)a.label=f=f.destroy()}else if(n&&n.length&&(a.svgElem= +m=w.path(n).attr(t).add(),o))for(v in d=function(b){m.on(b,function(c){o[b].apply(a,[c])})},o)d(v);if(e&&q(e.text)&&n&&n.length&&b.width>0&&b.height>0){e=z({align:c&&j&&"center",x:c?!j&&4:10,verticalAlign:!c&&j&&"middle",y:c?j?16:10:j?6:-4,rotation:c&&!j&&90},e);if(!f){t={align:e.textAlign||e.align,rotation:e.rotation};if(q(p))t.zIndex=p;a.label=f=w.text(e.text,0,0,e.useHTML).attr(t).css(e.style).add()}b=[n[1],n[4],j?n[6]:n[1]];j=[n[2],n[5],j?n[7]:n[2]];n=Pa(b);c=Pa(j);f.align(e,!1,{x:n,y:c,width:Fa(b)- +n,height:Fa(j)-c});f.show()}else f&&f.hide();return a},destroy:function(){ja(this.axis.plotLinesAndBands,this);delete this.axis;Qa(this)}};var va=A.Axis=function(){this.init.apply(this,arguments)};va.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#D8D8D8",labels:{enabled:!0,style:{color:"#606060",cursor:"default",fontSize:"11px"},x:0,y:15},lineColor:"#C0D0E0", +lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#707070"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8,y:3},lineWidth:0,maxPadding:0.05, +minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return A.numberFormat(this.total,-1)},style:z(ba.line.dataLabels.style,{color:"#000000"})}},defaultLeftAxisOptions:{labels:{x:-15,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0,y:null},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0,y:-15},title:{rotation:0}}, +init:function(a,b){var c=b.isX;this.horiz=a.inverted?!c:c;this.coll=(this.isXAxis=c)?"xAxis":"yAxis";this.opposite=b.opposite;this.side=b.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(b);var d=this.options,e=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.zoomEnabled=d.zoomEnabled!==!1;this.categories=d.categories||e==="category";this.names=this.names||[];this.isLog= +e==="logarithmic";this.isDatetimeAxis=e==="datetime";this.isLinked=q(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.min=this.max=null;this.crosshair=p(d.crosshair,sa(a.options.tooltip.crosshairs)[c?0:1],!1);var f,d=this.options.events;Ma(this,a.axes)===-1&&(c&&!this.isColorAxis?a.axes.splice(a.xAxis.length, +0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];if(a.inverted&&c&&this.reversed===y)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in d)H(this,f,d[f]);if(this.isLog)this.val2lin=Ea,this.lin2val=ia},setOptions:function(a){this.options=z(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],z(T[this.coll], +a))},defaultLabelFormatter:function(){var a=this.axis,b=this.value,c=a.categories,d=this.dateTimeLabelFormat,e=T.lang.numericSymbols,f=e&&e.length,g,h=a.options.labels.format,a=a.isLog?b:a.tickInterval;if(h)g=Ja(h,this);else if(c)g=b;else if(d)g=Oa(d,b);else if(f&&a>=1E3)for(;f--&&g===y;)c=Math.pow(1E3,f+1),a>=c&&b*10%c===0&&e[f]!==null&&(g=A.numberFormat(b/c,-1)+e[f]);g===y&&(g=O(b)>=1E4?A.numberFormat(b,-1):A.numberFormat(b,-1,y,""));return g},getSeriesExtremes:function(){var a=this,b=a.chart;a.hasVisibleSeries= +!1;a.dataMin=a.dataMax=a.ignoreMinPadding=a.ignoreMaxPadding=null;a.buildStacks&&a.buildStacks();o(a.series,function(c){if(c.visible||!b.options.chart.ignoreHiddenSeries){var d;d=c.options.threshold;var e;a.hasVisibleSeries=!0;a.isLog&&d<=0&&(d=null);if(a.isXAxis){if(d=c.xData,d.length)a.dataMin=C(p(a.dataMin,d[0]),Pa(d)),a.dataMax=u(p(a.dataMax,d[0]),Fa(d))}else{c.getExtremes();e=c.dataMax;c=c.dataMin;if(q(c)&&q(e))a.dataMin=C(p(a.dataMin,c),c),a.dataMax=u(p(a.dataMax,e),e);if(q(d))if(a.dataMin>= +d)a.dataMin=d,a.ignoreMinPadding=!0;else if(a.dataMaxc)d?a=C(u(b,a),c):m=!0;return a},e=p(e,this.translate(a,null,null,c)),a=c=r(e+i);i=j=r(k-e-i);isNaN(e)?m=!0:this.horiz?(i=h,j=k-this.bottom,a=c=n(a, +g,g+this.width)):(a=g,c=l-this.right,i=j=n(i,h,h+this.height));return m&&!d?null:f.renderer.crispLine(["M",a,i,"L",c,j],b||1)},getLinearTickPositions:function(a,b,c){var d,e=ea(V(b/a)*a),f=ea(ta(c/a)*a),g=[];if(b===c&&ra(b))return[b];for(b=e;b<=f;){g.push(b);b=ea(b+a);if(b===d)break;d=b}return g},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,c=this.minorTickInterval,d=[],e,f=this.min;e=this.max;var g=e-f;if(g&&g/c=this.minRange,f,g,h,i,j;if(this.isXAxis&&this.minRange===y&&!this.isLog)q(a.min)||q(a.max)?this.minRange=null:(o(this.series,function(a){i=a.xData;for(g=j=a.xIncrement?1: +i.length-1;g>0;g--)if(h=i[g]-i[g-1],f===y||hc&&(h=0);d=u(d,h);b.single||(f=u(f,Da(j)?0:h/2),g=u(g,j==="on"?0:h));!a.noSharedTooltip&&q(v)&&(e=q(e)?C(e,v):v)}),h=b.ordinalSlope&&e?b.ordinalSlope/e:1,b.minPointOffset=f*=h,b.pointRangePadding=g*=h,b.pointRange=C(d,c),k)b.closestPointRange=e;if(a)b.oldTransA=j;b.translationSlope=b.transA=j=b.len/(c+g||1);b.transB=b.horiz?b.left:b.bottom;b.minPixelPadding= +j*f},setTickInterval:function(a){var b=this,c=b.chart,d=b.options,e=b.isLog,f=b.isDatetimeAxis,g=b.isXAxis,h=b.isLinked,i=d.maxPadding,j=d.minPadding,k=d.tickInterval,l=d.tickPixelInterval,m=b.categories;!f&&!m&&!h&&this.getTickAmount();h?(b.linkedParent=c[b.coll][d.linkedTo],c=b.linkedParent.getExtremes(),b.min=p(c.min,c.dataMin),b.max=p(c.max,c.dataMax),d.type!==b.linkedParent.options.type&&la(11,1)):(b.min=p(b.userMin,d.min,b.dataMin),b.max=p(b.userMax,d.max,b.dataMax));if(e)!a&&C(b.min,p(b.dataMin, +b.min))<=0&&la(10,1),b.min=ea(Ea(b.min)),b.max=ea(Ea(b.max));if(b.range&&q(b.max))b.userMin=b.min=u(b.min,b.max-b.range),b.userMax=b.max,b.range=null;b.beforePadding&&b.beforePadding();b.adjustForMinRange();if(!m&&!b.axisPointRange&&!b.usePercentage&&!h&&q(b.min)&&q(b.max)&&(c=b.max-b.min)){if(!q(d.min)&&!q(b.userMin)&&j&&(b.dataMin<0||!b.ignoreMinPadding))b.min-=c*j;if(!q(d.max)&&!q(b.userMax)&&i&&(b.dataMax>0||!b.ignoreMaxPadding))b.max+=c*i}if(ra(d.floor))b.min=u(b.min,d.floor);if(ra(d.ceiling))b.max= +C(b.max,d.ceiling);b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!k&&l===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:p(k,this.tickAmount?(b.max-b.min)/u(this.tickAmount-1,1):void 0,m?1:(b.max-b.min)*l/u(b.len,l));g&&!a&&o(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval); +if(b.pointRange)b.tickInterval=u(b.pointRange,b.tickInterval);a=p(d.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);if(!k&&b.tickInterval0.5&&b.tickInterval<5&&b.max>1E3&&b.max<9999)),!!this.tickAmount);if(!this.tickAmount&&this.len)b.tickInterval=b.unsquish();this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner, +e=a.startOnTick,f=a.endOnTick,g;this.tickmarkOffset=this.categories&&a.tickmarkPlacement==="between"&&this.tickInterval===1?0.5:0;this.minorTickInterval=a.minorTickInterval==="auto"&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();if(!b&&(this.tickPositions=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),d&&(d=d.apply(this,[this.min,this.max]))))this.tickPositions=b=d;if(!this.isLinked)this.trimTicks(b,e,f),this.min===this.max&&q(this.min)&&!this.tickAmount&&(g=!0,this.min-=0.5,this.max+=0.5),this.single=g,!c&&!d&&this.adjustTickAmount()},trimTicks:function(a,b,c){var d=a[0],e=a[a.length-1],f=this.minPointOffset||0;b?this.min=d:this.min-f>d&&a.shift();c?this.max=e:this.max+fc&&(this.tickInterval*=2,this.setTickPositions());if(q(d)){for(a=c=b.length;a--;)(d===3&&a%2===1||d<=2&&a>0&&a=u(d,p(e.max,d))&&(b=y));this.displayBtn=a!==y||b!==y;this.setExtremes(a, +b,!1,y,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,e=p(b.width,a.plotWidth-c+(b.offsetRight||0)),f=p(b.height,a.plotHeight),g=p(b.top,a.plotTop),b=p(b.left,a.plotLeft+c),c=/%$/;c.test(f)&&(f=parseFloat(f)/100*a.plotHeight);c.test(g)&&(g=parseFloat(g)/100*a.plotHeight+a.plotTop);this.left=b;this.top=g;this.width=e;this.height=f;this.bottom=a.chartHeight-f-g;this.right=a.chartWidth-e-b;this.len=u(d?e:f,0);this.pos=d?b:g},getExtremes:function(){var a= +this.isLog;return{min:a?ea(ia(this.min)):this.min,max:a?ea(ia(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?ia(this.min):this.min,b=b?ia(this.max):this.max;a===null?a=b<0?b:c:c>a?a=c:b15&&a<165?"right":a>195&&a<345?"left":"center"},unsquish:function(){var a=this.ticks,b=this.options.labels, +c=this.horiz,d=this.tickInterval,e=d,f=this.len/(((this.categories?1:0)+this.max-this.min)/d),g,h=b.rotation,i=this.chart.renderer.fontMetrics(b.style.fontSize,a[0]&&a[0].label),j,k=Number.MAX_VALUE,l,m=function(a){a/=f||1;a=a>1?ta(a):1;return a*d};c?(l=q(h)?[h]:f=-90&&a<=90)j=m(O(i.h/aa(ha*a))),b=j+O(a/360),bm)m=a.labelLength}), +m>j&&m>g.h?k.rotation=this.labelRotation:this.labelRotation=0;else if(i&&(l={width:j+"px"},!h)){l.textOverflow="clip";for(i=c.length;!f&&i--;)if(j=c[i],j=d[j].label)if(j.styles.textOverflow==="ellipsis"&&j.css({textOverflow:"clip"}),j.getBBox().height>this.len/c.length-(g.h-g.f))j.specCss={textOverflow:"ellipsis"}}if(k.rotation&&(l={width:(m>a.chartHeight*0.5?a.chartHeight*0.33:a.chartHeight)+"px"},!h))l.textOverflow="ellipsis";this.labelAlign=k.align=e.align||this.autoLabelAlign(this.labelRotation); +o(c,function(a){var b=(a=d[a])&&a.label;if(b)l&&b.css(z(l,b.specCss)),delete b.specCss,b.attr(k),a.rotation=k.rotation});this.tickRotCorr=b.rotCorr(g.b,this.labelRotation||0,this.side===2)},hasData:function(){return this.hasVisibleSeries||q(this.min)&&q(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,i=b.inverted?[1,0,3,2][h]:h,j,k,l=0,m,n=0,v=d.title,s=d.labels,S=0,N=b.axisOffset,b=b.clipOffset,t=[-1, +1,1,-1][h],w;j=a.hasData();a.showAxis=k=j||p(d.showEmpty,!0);a.staggerLines=a.horiz&&s.staggerLines;if(!a.axisGroup)a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).add(),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).add(),a.labelGroup=c.g("axis-labels").attr({zIndex:s.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels").add();if(j||a.isLinked){if(o(e,function(b){f[b]?f[b].addLabel():f[b]=new Ta(a,b)}),a.renderUnsquish(),o(e,function(b){if(h===0||h===2||{1:"left",3:"right"}[h]=== +a.labelAlign)S=u(f[b].getLabelSize(),S)}),a.staggerLines)S*=a.staggerLines,a.labelOffset=S}else for(w in f)f[w].destroy(),delete f[w];if(v&&v.text&&v.enabled!==!1){if(!a.axisTitle)a.axisTitle=c.text(v.text,0,0,v.useHTML).attr({zIndex:7,rotation:v.rotation||0,align:v.textAlign||{low:"left",middle:"center",high:"right"}[v.align]}).addClass("highcharts-"+this.coll.toLowerCase()+"-title").css(v.style).add(a.axisGroup),a.axisTitle.isNew=!0;if(k)l=a.axisTitle.getBBox()[g?"height":"width"],m=v.offset,n= +q(m)?0:p(v.margin,g?5:10);a.axisTitle[k?"show":"hide"]()}a.offset=t*p(d.offset,N[h]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=h===2?a.tickRotCorr.y:0;g=S+n+(S&&t*(g?p(s.y,a.tickRotCorr.y+8):s.x)-c);a.axisTitleMargin=p(m,g);N[h]=u(N[h],a.axisTitleMargin+l+t*a.offset,g);l=V(d.lineWidth/2)*2;d.offset&&(l=u(0,l-d.offset));b[i]=u(b[i],l)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&& +(a*=-1);return b.renderer.crispLine(["M",e?this.left:f,e?d:this.top,"L",e?b.chartWidth-this.right:f,e?d:b.chartHeight-this.bottom],a)},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite,h=this.offset,i=e.x||0,j=e.y||0,k=D(e.style.fontSize||12),d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(this.side===2?k:0);return{x:a?d+i:b+(g?this.width:0)+h+i,y:a?b+j-(g? +this.height:0)+h:d+j}},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.isLog,f=a.isLinked,g=a.tickPositions,h=a.axisTitle,i=a.ticks,j=a.minorTicks,k=a.alternateBands,l=d.stackLabels,m=d.alternateGridColor,n=a.tickmarkOffset,v=d.lineWidth,s,p=b.hasRendered&&q(a.oldMin)&&!isNaN(a.oldMin),N=a.showAxis,t,w;a.labelEdge.length=0;a.overlap=!1;o([i,j,k],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||f){a.minorTickInterval&&!a.categories&&o(a.getMinorTickPositions(),function(b){j[b]|| +(j[b]=new Ta(a,b,"minor"));p&&j[b].isNew&&j[b].render(null,!0);j[b].render(null,!1,1)});if(g.length&&(o(g,function(b,c){if(!f||b>=a.min&&b<=a.max)i[b]||(i[b]=new Ta(a,b)),p&&i[b].isNew&&i[b].render(c,!0,0.1),i[b].render(c)}),n&&(a.min===0||a.single)))i[-1]||(i[-1]=new Ta(a,-1,null,!0)),i[-1].render(-1);m&&o(g,function(b,c){if(c%2===0&&b=E.second?0:k*V(i.getMilliseconds()/k));if(j>=E.second)i[Fb](j>=E.minute?0:k*V(i.getSeconds()/k));if(j>=E.minute)i[Gb](j>=E.hour?0:k*V(i[sb]()/k));if(j>=E.hour)i[Hb](j>= +E.day?0:k*V(i[tb]()/k));if(j>=E.day)i[vb](j>=E.month?1:k*V(i[Xa]()/k));j>=E.month&&(i[wb](j>=E.year?0:k*V(i[Ya]()/k)),h=i[Za]());j>=E.year&&(h-=h%k,i[xb](h));if(j===E.week)i[vb](i[Xa]()-i[ub]()+p(d,1));b=1;if(ob||eb)i=i.getTime(),i=new Aa(i+Wa(i));h=i[Za]();for(var d=i.getTime(),l=i[Ya](),m=i[Xa](),n=(E.day+(g?Wa(i):i.getTimezoneOffset()*6E4))%E.day;d=0.5)a=r(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=V(b),h,i,j,k,l,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];fb&&(!d||k<=c)&&k!==y&&g.push(k),k>c&&(l=!0), +k=j}else if(b=ia(b),c=ia(c),a=e[d?"minorTickInterval":"tickInterval"],a=p(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=qb(a,null,pb(a)),g=Ua(this.getLinearTickPositions(a,b,c),Ea),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g};var Nb=A.Tooltip=function(){this.init.apply(this,arguments)};Nb.prototype={init:function(a,b){var c=b.borderWidth,d=b.style,e=D(d.padding);this.chart=a;this.options=b;this.crosshairs= +[];this.now={x:0,y:0};this.isHidden=!0;this.label=a.renderer.label("",0,0,b.shape||"callout",null,null,b.useHTML,null,"tooltip").attr({padding:e,fill:b.backgroundColor,"stroke-width":c,r:b.borderRadius,zIndex:8}).css(d).css({padding:0}).add().attr({y:-9999});fa||this.label.shadow(b.shadow);this.shared=b.shared},destroy:function(){if(this.label)this.label=this.label.destroy();clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,b,c,d){var e=this,f=e.now,g=e.options.animation!== +!1&&!e.isHidden&&(O(a-f.x)>1||O(b-f.y)>1),h=e.followPointer||e.len>1;x(f,{x:g?(2*f.x+a)/3:a,y:g?(f.y+b)/2:b,anchorX:h?y:g?(2*f.anchorX+c)/3:c,anchorY:h?y:g?(f.anchorY+d)/2:d});e.label.attr(f);if(g)clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32)},hide:function(a){var b=this;clearTimeout(this.hideTimer);if(!this.isHidden)this.hideTimer=setTimeout(function(){b.label.fadeOut();b.isHidden=!0},p(a,this.options.hideDelay,500))},getAnchor:function(a,b){var c, +d=this.chart,e=d.inverted,f=d.plotTop,g=d.plotLeft,h=0,i=0,j,k,a=sa(a);c=a[0].tooltipPos;this.followPointer&&b&&(b.chartX===y&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY-f]);c||(o(a,function(a){j=a.series.yAxis;k=a.series.xAxis;h+=a.plotX+(!e&&k?k.left-g:0);i+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&j?j.top-f:0)}),h/=a.length,i/=a.length,c=[e?d.plotWidth-i:h,this.shared&&!e&&a.length>1&&b?b.chartY-f:e?d.plotHeight-h:i]);return Ua(c,r)},getPosition:function(a,b,c){var d=this.chart, +e=this.distance,f={},g=c.h||0,h,i=["y",d.chartHeight,b,c.plotY+d.plotTop],j=["x",d.chartWidth,a,c.plotX+d.plotLeft],k=p(c.ttBelow,d.inverted&&!c.negative||!d.inverted&&c.negative),l=function(a,b,c,d){var h=cb?d:d+g;else return!1},m=function(a,b,c,d){if(db-e)return!1;else f[a]=db-c/2?b-c-2:d-c/2},n=function(a){var b=i;i=j;j=b;h=a},v=function(){l.apply(0,i)!==!1?m.apply(0,j)=== +!1&&!h&&(n(!0),v()):h?f.x=f.y=0:(n(!0),v())};(d.inverted||this.len>1)&&n();v();return f},defaultFormatter:function(a){var b=this.points||sa(this),c;c=[a.tooltipFooterHeaderFormatter(b[0])];c=c.concat(a.bodyFormatter(b));c.push(a.tooltipFooterHeaderFormatter(b[0],!0));return c.join("")},refresh:function(a,b){var c=this.chart,d=this.label,e=this.options,f,g,h,i={},j,k=[];j=e.formatter||this.defaultFormatter;var i=c.hoverPoints,l,m=this.shared;clearTimeout(this.hideTimer);this.followPointer=sa(a)[0].series.tooltipOptions.followPointer; +h=this.getAnchor(a,b);f=h[0];g=h[1];m&&(!a.series||!a.series.noSharedTooltip)?(c.hoverPoints=a,i&&o(i,function(a){a.setState()}),o(a,function(a){a.setState("hover");k.push(a.getLabelConfig())}),i={x:a[0].category,y:a[0].y},i.points=k,this.len=k.length,a=a[0]):i=a.getLabelConfig();j=j.call(i,this);i=a.series;this.distance=p(i.tooltipOptions.distance,16);j===!1?this.hide():(this.isHidden&&(db(d),d.attr("opacity",1).show()),d.attr({text:j}),l=e.borderColor||a.color||i.color||"#606060",d.attr({stroke:l}), +this.updatePosition({plotX:f,plotY:g,negative:a.negative,ttBelow:a.ttBelow,h:h[2]||0}),this.isHidden=!1);I(c,"tooltipRefresh",{text:j,x:f+c.plotLeft,y:g+c.plotTop,borderColor:l})},updatePosition:function(a){var b=this.chart,c=this.label,c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);this.move(r(c.x),r(c.y||0),a.plotX+b.plotLeft,a.plotY+b.plotTop)},getXDateFormat:function(a,b,c){var d,b=b.dateTimeLabelFormats,e=c&&c.closestPointRange,f,g={millisecond:15,second:12,minute:9, +hour:6,day:3},h,i="millisecond";if(e){h=Oa("%m-%d %H:%M:%S.%L",a.x);for(f in E){if(e===E.week&&+Oa("%w",a.x)===c.options.startOfWeek&&h.substr(6)==="00:00:00.000"){f="week";break}else if(E[f]>e){f=i;break}else if(g[f]&&h.substr(g[f])!=="01-01 00:00:00.000".substr(g[f]))break;f!=="week"&&(i=f)}f&&(d=b[f])}else d=b.day;return d||b.year},tooltipFooterHeaderFormatter:function(a,b){var c=b?"footer":"header",d=a.series,e=d.tooltipOptions,f=e.xDateFormat,g=d.xAxis,h=g&&g.options.type==="datetime"&&ra(a.key), +c=e[c+"Format"];h&&!f&&(f=this.getXDateFormat(a,e,g));h&&f&&(c=c.replace("{point.key}","{point.key:"+f+"}"));return Ja(c,{point:a,series:d})},bodyFormatter:function(a){return Ua(a,function(a){var c=a.series.tooltipOptions;return(c.pointFormatter||a.point.tooltipFormatter).call(a.point,c.pointFormat)})}};var pa;ab=B.documentElement.ontouchstart!==y;var Va=A.Pointer=function(a,b){this.init(a,b)};Va.prototype={init:function(a,b){var c=b.chart,d=c.events,e=fa?"":c.zoomType,c=a.inverted,f;this.options= +b;this.chart=a;this.zoomX=f=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=f&&!c||e&&c;this.zoomVert=e&&!c||f&&c;this.hasZoom=f||e;this.runChartClick=d&&!!d.click;this.pinchDown=[];this.lastValidTouch={};if(A.Tooltip&&b.tooltip.enabled)a.tooltip=new Nb(a,b.tooltip),this.followTouchMove=p(b.tooltip.followTouchMove,!0);this.setDOMEvents()},normalize:function(a,b){var c,d,a=a||window.event,a=Tb(a);if(!a.target)a.target=a.srcElement;d=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]: +a;if(!b)this.chartPosition=b=Sb(this.chart.container);d.pageX===y?(c=u(a.x,a.clientX-b.left),d=a.y):(c=d.pageX-b.left,d=d.pageY-b.top);return x(a,{chartX:r(c),chartY:r(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};o(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},runPointActions:function(a){var b=this.chart,c=b.series,d=b.tooltip,e=d?d.shared:!1,f=b.hoverPoint,g=b.hoverSeries,h,i=b.chartWidth,j,k,l=[],m, +n;if(!e&&!g)for(h=0;hh+j&&(d=h+j);ei+k&&(e=i+k);this.hasDragged=Math.sqrt(Math.pow(m-d,2)+Math.pow(n-e,2));if(this.hasDragged>10){l=b.isInsidePlot(m-h,n-i);if(b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&l&&!v&&!this.selectionMarker)this.selectionMarker= +b.renderer.rect(h,i,f?1:j,g?1:k,0).attr({fill:c.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();this.selectionMarker&&f&&(d-=m,this.selectionMarker.attr({width:O(d),x:(d>0?0:d)+m}));this.selectionMarker&&g&&(d=e-n,this.selectionMarker.attr({height:O(d),y:(d>0?0:d)+n}));l&&!this.selectionMarker&&c.panning&&b.pan(a,c.panning)}},drop:function(a){var b=this,c=this.chart,d=this.hasPinched;if(this.selectionMarker){var e={xAxis:[],yAxis:[],originalEvent:a.originalEvent||a},f=this.selectionMarker, +g=f.attr?f.attr("x"):f.x,h=f.attr?f.attr("y"):f.y,i=f.attr?f.attr("width"):f.width,j=f.attr?f.attr("height"):f.height,k;if(this.hasDragged||d)o(c.axes,function(c){if(c.zoomEnabled&&q(c.min)&&(d||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var f=c.horiz,n=a.type==="touchend"?c.minPixelPadding:0,v=c.toValue((f?g:h)+n),f=c.toValue((f?g+i:h+j)-n);e[c.coll].push({axis:c,min:C(v,f),max:u(v,f)});k=!0}}),k&&I(c,"selection",e,function(a){c.zoom(x(a,d?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy(); +d&&this.scaleGroups()}if(c)L(c.container,{cursor:c._cursor}),c.cancelClick=this.hasDragged>10,c.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]},onContainerMouseDown:function(a){a=this.normalize(a);a.preventDefault&&a.preventDefault();this.dragStart(a)},onDocumentMouseUp:function(a){Y[pa]&&Y[pa].pointer.drop(a)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition,a=this.normalize(a,c);c&&!this.inClass(a.target,"highcharts-tracker")&&!b.isInsidePlot(a.chartX-b.plotLeft, +a.chartY-b.plotTop)&&this.reset()},onContainerMouseLeave:function(){var a=Y[pa];if(a)a.pointer.reset(),a.pointer.chartPosition=null},onContainerMouseMove:function(a){var b=this.chart;pa=b.index;a=this.normalize(a);a.returnValue=!1;b.mouseIsDown==="mousedown"&&this.drag(a);(this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop))&&!b.openMenu&&this.runPointActions(a)},inClass:function(a,b){for(var c;a;){if(c=J(a,"class"))if(c.indexOf(b)!==-1)return!0;else if(c.indexOf("highcharts-container")!== +-1)return!1;a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries,c=(a=a.relatedTarget||a.toElement)&&a.point&&a.point.series;if(b&&!b.options.stickyTracking&&!this.inClass(a,"highcharts-tooltip")&&c!==b)b.onMouseOut()},onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop,a=this.normalize(a);a.originalEvent=a;b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(I(c.series,"click",x(a,{point:c})),b.hoverPoint&&c.firePointEvent("click", +a)):(x(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&I(b,"click",a)))},setDOMEvents:function(){var a=this,b=a.chart.container;b.onmousedown=function(b){a.onContainerMouseDown(b)};b.onmousemove=function(b){a.onContainerMouseMove(b)};b.onclick=function(b){a.onContainerClick(b)};H(b,"mouseleave",a.onContainerMouseLeave);bb===1&&H(B,"mouseup",a.onDocumentMouseUp);if(ab)b.ontouchstart=function(b){a.onContainerTouchStart(b)},b.ontouchmove=function(b){a.onContainerTouchMove(b)},bb===1&& +H(B,"touchend",a.onDocumentTouchEnd)},destroy:function(){var a;Z(this.chart.container,"mouseleave",this.onContainerMouseLeave);bb||(Z(B,"mouseup",this.onDocumentMouseUp),Z(B,"touchend",this.onDocumentTouchEnd));clearInterval(this.tooltipTimeout);for(a in this)this[a]=null}};x(A.Pointer.prototype,{pinchTranslate:function(a,b,c,d,e,f){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,a,b,c,d,e,f);(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,a,b,c,d,e,f)},pinchTranslateDirection:function(a, +b,c,d,e,f,g,h){var i=this.chart,j=a?"x":"y",k=a?"X":"Y",l="chart"+k,m=a?"width":"height",n=i["plot"+(a?"Left":"Top")],v,s,p=h||1,o=i.inverted,t=i.bounds[a?"h":"v"],w=b.length===1,q=b[0][l],u=c[0][l],r=!w&&b[1][l],y=!w&&c[1][l],x,c=function(){!w&&O(q-r)>20&&(p=h||O(u-y)/O(q-r));s=(n-u)/p+q;v=i["plot"+(a?"Width":"Height")]/p};c();b=s;bt.max&&(b=t.max-v,x=!0);x?(u-=0.8*(u-g[j][0]),w||(y-=0.8*(y-g[j][1])),c()):g[j]=[u,y];o||(f[j]=s-n,f[m]=v);f=o?1/p:p;e[m]=v;e[j]=b;d[o?a?"scaleY": +"scaleX":"scale"+k]=p;d["translate"+k]=f*n+(u-f*q)},pinch:function(a){var b=this,c=b.chart,d=b.pinchDown,e=a.touches,f=e.length,g=b.lastValidTouch,h=b.hasZoom,i=b.selectionMarker,j={},k=f===1&&(b.inClass(a.target,"highcharts-tracker")&&c.runTrackerClick||b.runChartClick),l={};if(f>1)b.initiated=!0;h&&b.initiated&&!k&&a.preventDefault();Ua(e,function(a){return b.normalize(a)});if(a.type==="touchstart")o(e,function(a,b){d[b]={chartX:a.chartX,chartY:a.chartY}}),g.x=[d[0].chartX,d[1]&&d[1].chartX],g.y= +[d[0].chartY,d[1]&&d[1].chartY],o(c.axes,function(a){if(a.zoomEnabled){var b=c.bounds[a.horiz?"h":"v"],d=a.minPixelPadding,e=a.toPixels(p(a.options.min,a.dataMin)),f=a.toPixels(p(a.options.max,a.dataMax)),g=C(e,f),e=u(e,f);b.min=C(a.pos,g-d);b.max=u(a.pos+a.len,e+d)}}),b.res=!0;else if(d.length){if(!i)b.selectionMarker=i=x({destroy:na},c.plotBox);b.pinchTranslate(d,e,j,i,l,g);b.hasPinched=h;b.scaleGroups(j,l);if(!h&&b.followTouchMove&&f===1)this.runPointActions(b.normalize(a));else if(b.res)b.res= +!1,this.reset(!1,0)}},touch:function(a,b){var c=this.chart;pa=c.index;a.touches.length===1?(a=this.normalize(a),c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&!c.openMenu?(b&&this.runPointActions(a),this.pinch(a)):b&&this.reset()):a.touches.length===2&&this.pinch(a)},onContainerTouchStart:function(a){this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(a){Y[pa]&&Y[pa].pointer.drop(a)}});if(K.PointerEvent||K.MSPointerEvent){var wa={},Bb=!!K.PointerEvent, +Xb=function(){var a,b=[];b.item=function(a){return this[a]};for(a in wa)wa.hasOwnProperty(a)&&b.push({pageX:wa[a].pageX,pageY:wa[a].pageY,target:wa[a].target});return b},Cb=function(a,b,c,d){a=a.originalEvent||a;if((a.pointerType==="touch"||a.pointerType===a.MSPOINTER_TYPE_TOUCH)&&Y[pa])d(a),d=Y[pa].pointer,d[b]({type:c,target:a.currentTarget,preventDefault:na,touches:Xb()})};x(Va.prototype,{onContainerPointerDown:function(a){Cb(a,"onContainerTouchStart","touchstart",function(a){wa[a.pointerId]={pageX:a.pageX, +pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){Cb(a,"onContainerTouchMove","touchmove",function(a){wa[a.pointerId]={pageX:a.pageX,pageY:a.pageY};if(!wa[a.pointerId].target)wa[a.pointerId].target=a.currentTarget})},onDocumentPointerUp:function(a){Cb(a,"onDocumentTouchEnd","touchend",function(a){delete wa[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,Bb?"pointerdown":"MSPointerDown",this.onContainerPointerDown);a(this.chart.container,Bb?"pointermove": +"MSPointerMove",this.onContainerPointerMove);a(B,Bb?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});cb(Va.prototype,"init",function(a,b,c){a.call(this,b,c);this.hasZoom&&L(b.container,{"-ms-touch-action":P,"touch-action":P})});cb(Va.prototype,"setDOMEvents",function(a){a.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(H)});cb(Va.prototype,"destroy",function(a){this.batchMSEvents(Z);a.call(this)})}var nb=A.Legend=function(a,b){this.init(a,b)};nb.prototype={init:function(a, +b){var c=this,d=b.itemStyle,e=b.itemMarginTop||0;this.options=b;if(b.enabled)c.itemStyle=d,c.itemHiddenStyle=z(d,b.itemHiddenStyle),c.itemMarginTop=e,c.padding=d=p(b.padding,8),c.initialItemX=d,c.initialItemY=d-5,c.maxItemWidth=0,c.chart=a,c.itemHeight=0,c.symbolWidth=p(b.symbolWidth,16),c.pages=[],c.render(),H(c.chart,"endResize",function(){c.positionCheckboxes()})},colorizeItem:function(a,b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color: +g,h=b?a.legendColor||a.color||"#CCC":g,g=a.options&&a.options.marker,i={fill:h},j;d&&d.css({fill:c,color:c});e&&e.attr({stroke:h});if(f){if(g&&f.isMarker)for(j in i.stroke=h,g=a.convertAttribs(g),g)d=g[j],d!==y&&(i[j]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;o(["legendItem","legendLine", +"legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&Ra(a.checkbox)},destroy:function(){var a=this.group,b=this.box;if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(a){var b=this.group.alignAttr,c,d=this.clipHeight||this.legendHeight;if(b)c=b.translateY,o(this.allItems,function(e){var f=e.checkbox,g;f&&(g=c+f.y+(a||0)+3,L(f,{left:b.translateX+e.checkboxOffset+f.x-20+"px",top:g+"px",display:g>c-6&&g(m||b.chartWidth-2*j-s-d.x))this.itemX=s,this.itemY+=v+this.lastLineHeight+n,this.lastLineHeight=0;this.maxItemWidth=u(this.maxItemWidth,f);this.lastItemY=v+this.itemY+n;this.lastLineHeight=u(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];e?this.itemX+=f:(this.itemY+=v+g+n,this.lastLineHeight=g);this.offsetWidth=m||u((e?this.itemX-s-k:f)+j,this.offsetWidth)},getAllItems:function(){var a=[];o(this.chart.series,function(b){var c=b.options;if(p(c.showInLegend,!q(c.linkedTo)? +y:!1,!0))a=a.concat(b.legendItems||(c.legendType==="point"?b.data:b))});return a},adjustMargins:function(a,b){var c=this.chart,d=this.options,e=d.align[0]+d.verticalAlign[0]+d.layout[0];this.display&&!d.floating&&o([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,g){f.test(e)&&!q(a[g])&&(c[jb[g]]=u(c[jb[g]],c.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*d[g%2?"x":"y"]+p(d.margin,12)+b[g]))})},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f, +g,h,i=a.box,j=a.options,k=a.padding,l=j.borderWidth,m=j.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup);a.renderTitle();e=a.getAllItems();rb(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});j.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;a.lastLineHeight=0; +o(e,function(b){a.renderItem(b)});g=(j.width||a.offsetWidth)+k;h=a.lastItemY+a.lastLineHeight+a.titleHeight;h=a.handleOverflow(h);h+=k;if(l||m){if(i){if(g>0&&h>0)i[i.isNew?"attr":"animate"](i.crisp({width:g,height:h})),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,j.borderRadius,l||0).attr({stroke:j.borderColor,"stroke-width":l||0,fill:m||P}).add(d).shadow(j.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;o(e,function(b){a.positionItem(b)});f&&d.align(x({width:g,height:h},j),!0, +"spacingBox");b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h,i=this.clipRect,j=e.navigation,k=p(j.animation,!0),l=j.arrowSize||12,m=this.nav,n=this.pages,v=this.padding,s,q=this.allItems,N=function(a){i.attr({height:a});if(b.contentGroup.div)b.contentGroup.div.style.clip="rect("+v+"px,9999px,"+(v+a)+"px,0)"};e.layout==="horizontal"&&(f/=2); +g&&(f=C(f,g));n.length=0;if(a>f){this.clipHeight=h=u(f-20-this.titleHeight-v,0);this.currentPage=p(this.currentPage,1);this.fullHeight=a;o(q,function(a,b){var c=a._legendItemPos[1],d=r(a.legendItem.getBBox().height),e=n.length;if(!e||c-n[e-1]>h&&(s||c)!==n[e-1])n.push(s||c),e++;b===q.length-1&&c+d-n[e-1]>h&&n.push(c);c!==s&&(s=c)});if(!i)i=b.clipRect=d.clipRect(0,v,9999,0),b.contentGroup.clip(i);N(h);if(!m)this.nav=m=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,l,l).on("click", +function(){b.scroll(-1,k)}).add(m),this.pager=d.text("",15,10).css(j.style).add(m),this.down=d.symbol("triangle-down",0,0,l,l).on("click",function(){b.scroll(1,k)}).add(m);b.scroll(0);a=f}else if(m)N(c.chartHeight),m.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0;return a},scroll:function(a,b){var c=this.pages,d=c.length,e=this.currentPage+a,f=this.clipHeight,g=this.options.navigation,h=g.activeColor,g=g.inactiveColor,i=this.pager,j=this.padding;e>d&&(e=d);if(e>0)b!==y&&Sa(b,this.chart), +this.nav.attr({translateX:j,translateY:f+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:e===1?g:h}).css({cursor:e===1?"default":"pointer"}),i.attr({text:e+"/"+d}),this.down.attr({x:18+this.pager.getBBox().width,fill:e===d?g:h}).css({cursor:e===d?"default":"pointer"}),c=-c[e-1]+this.initialItemY,this.scrollGroup.animate({translateY:c}),this.currentPage=e,this.positionCheckboxes(c)}};Na=A.LegendSymbolMixin={drawRectangle:function(a,b){var c=a.options.symbolHeight||a.fontMetrics.f; +b.legendSymbol=this.chart.renderer.rect(0,a.baseline-c+1,a.symbolWidth,c,a.options.symbolRadius||0).attr({zIndex:3}).add(b.legendGroup)},drawLineMarker:function(a){var b=this.options,c=b.marker,d;d=a.symbolWidth;var e=this.chart.renderer,f=this.legendGroup,a=a.baseline-r(a.fontMetrics.b*0.3),g;if(b.lineWidth){g={"stroke-width":b.lineWidth};if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M",0,a,"L",d,a]).attr(g).add(f)}if(c&&c.enabled!==!1)b=c.radius,this.legendSymbol=d=e.symbol(this.symbol, +d/2-b,a-b,2*b,2*b).add(f),d.isMarker=!0}};(/Trident\/7\.0/.test(Ba)||La)&&cb(nb.prototype,"positionItem",function(a,b){var c=this,d=function(){b._legendItemPos&&a.call(c,b)};d();setTimeout(d)});F=A.Chart=function(){this.init.apply(this,arguments)};F.prototype={callbacks:[],init:function(a,b){var c,d=a.series;a.series=null;c=z(T,a);c.series=a.series=d;this.userOptions=a;d=c.chart;this.margin=this.splashArray("margin",d);this.spacing=this.splashArray("spacing",d);var e=d.events;this.bounds={h:{},v:{}}; +this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;var f=this,g;f.index=Y.length;Y.push(f);bb++;d.reflow!==!1&&H(f,"load",function(){f.initReflow()});if(e)for(g in e)H(f,g,e[g]);f.xAxis=[];f.yAxis=[];f.animation=fa?!1:p(d.animation,!0);f.pointCount=f.colorCounter=f.symbolCounter=0;f.firstRender()},initSeries:function(a){var b=this.options.chart;(b=M[a.type||b.type||b.defaultSeriesType])||la(17,!0);b=new b;b.init(this,a);return b},isInsidePlot:function(a, +b,c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},redraw:function(a){var b=this.axes,c=this.series,d=this.pointer,e=this.legend,f=this.isDirtyLegend,g,h,i=this.hasCartesianSeries,j=this.isDirtyBox,k=c.length,l=k,m=this.renderer,n=m.isHidden(),p=[];Sa(a,this);n&&this.cloneRenderTo();for(this.layOutTitles();l--;)if(a=c[l],a.options.stacking&&(g=!0,a.isDirty)){h=!0;break}if(h)for(l=k;l--;)if(a=c[l],a.options.stacking)a.isDirty=!0;o(c,function(a){a.isDirty&&a.options.legendType=== +"point"&&(a.updateTotals&&a.updateTotals(),f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;g&&this.getStacks();if(i&&!this.isResizing)this.maxTicks=null,o(b,function(a){a.setScale()});this.getMargins();i&&(o(b,function(a){a.isDirty&&(j=!0)}),o(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes=!1,p.push(function(){I(a,"afterSetExtremes",x(a.eventArgs,a.getExtremes()));delete a.eventArgs});(j||g)&&a.redraw()}));j&&this.drawChartBox();o(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian|| +a.xAxis)&&a.redraw()});d&&d.reset(!0);m.draw();I(this,"redraw");n&&this.cloneRenderTo(!0);o(p,function(a){a.call()})},get:function(a){var b=this.axes,c=this.series,d,e;for(d=0;d19?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Ra(b),delete this.renderToClone):(c&& +c.parentNode===this.renderTo&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),L(b,{position:"absolute",top:"-9999px",display:"block"}),b.style.setProperty&&b.style.setProperty("display","block","important"),B.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+yb++;if(Da(a))this.renderTo=a=B.getElementById(a);a||la(13,!0);c=D(J(a,"data-highcharts-chart"));!isNaN(c)&&Y[c]&&Y[c].hasRendered&& +Y[c].destroy();J(a,"data-highcharts-chart",this.index);a.innerHTML="";!b.skipClone&&!a.offsetWidth&&this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;this.container=a=$(Ka,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},x({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},b.style),this.renderToClone||a);this._cursor=a.style.cursor;this.renderer= +b.forExport?new ua(a,c,d,b.style,!0):new $a(a,c,d,b.style);fa&&this.renderer.create(this,a,c,d);this.renderer.chartIndex=this.index},getMargins:function(a){var b=this.spacing,c=this.margin,d=this.titleOffset;this.resetMargins();if(d&&!q(c[0]))this.plotTop=u(this.plotTop,d+this.options.title.margin+b[0]);this.legend.adjustMargins(c,b);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);a||this.getAxisMargins()},getAxisMargins:function(){var a= +this,b=a.axisOffset=[0,0,0,0],c=a.margin;a.hasCartesianSeries&&o(a.axes,function(a){a.getOffset()});o(jb,function(d,e){q(c[e])||(a[d]+=b[e])});a.setChartSize()},reflow:function(a){var b=this,c=b.options.chart,d=b.renderTo,e=c.width||kb(d,"width"),f=c.height||kb(d,"height"),c=a?a.target:K,d=function(){if(b.container)b.setSize(e,f,!1),b.hasUserSize=null};if(!b.hasUserSize&&!b.isPrinting&&e&&f&&(c===K||c===B)){if(e!==b.containerWidth||f!==b.containerHeight)clearTimeout(b.reflowTimeout),a?b.reflowTimeout= +setTimeout(d,100):d();b.containerWidth=e;b.containerHeight=f}},initReflow:function(){var a=this,b=function(b){a.reflow(b)};H(K,"resize",b);H(a,"destroy",function(){Z(K,"resize",b)})},setSize:function(a,b,c){var d=this,e,f,g;d.isResizing+=1;g=function(){d&&I(d,"endResize",null,function(){d.isResizing-=1})};Sa(c,d);d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;if(q(a))d.chartWidth=e=u(0,r(a)),d.hasUserSize=!!e;if(q(b))d.chartHeight=f=u(0,r(b));(za?mb:L)(d.container,{width:e+"px",height:f+ +"px"},za);d.setChartSize(!0);d.renderer.setSize(e,f,c);d.maxTicks=null;o(d.axes,function(a){a.isDirty=!0;a.setScale()});o(d.series,function(a){a.isDirty=!0});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.layOutTitles();d.getMargins();d.redraw(c);d.oldChartHeight=null;I(d,"resize");za===!1?g():setTimeout(g,za&&za.duration||500)},setChartSize:function(a){var b=this.inverted,c=this.renderer,d=this.chartWidth,e=this.chartHeight,f=this.options.chart,g=this.spacing,h=this.clipOffset,i,j,k,l;this.plotLeft=i=r(this.plotLeft); +this.plotTop=j=r(this.plotTop);this.plotWidth=k=u(0,r(d-i-this.marginRight));this.plotHeight=l=u(0,r(e-j-this.marginBottom));this.plotSizeX=b?l:k;this.plotSizeY=b?k:l;this.plotBorderWidth=f.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:e-g[0]-g[2]};this.plotBox=c.plotBox={x:i,y:j,width:k,height:l};d=2*V(this.plotBorderWidth/2);b=ta(u(d,h[3])/2);c=ta(u(d,h[0])/2);this.clipBox={x:b,y:c,width:V(this.plotSizeX-u(d,h[1])/2-b),height:u(0,V(this.plotSizeY-u(d,h[2])/ +2-c))};a||o(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this;o(jb,function(b,c){a[b]=p(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,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,j=a.backgroundColor,k=a.plotBackgroundColor,l=a.plotBackgroundImage,m=a.plotBorderWidth|| +0,n,p=this.plotLeft,o=this.plotTop,q=this.plotWidth,u=this.plotHeight,t=this.plotBox,w=this.clipRect,r=this.clipBox;n=i+(a.shadow?8:0);if(i||j)if(e)e.animate(e.crisp({width:c-n,height:d-n}));else{e={fill:j||P};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(n/2,n/2,c-n,d-n,a.borderRadius,i).attr(e).addClass("highcharts-background").add().shadow(a.shadow)}if(k)f?f.animate(t):this.plotBackground=b.rect(p,o,q,u,0).attr({fill:k}).add().shadow(a.plotShadow);if(l)h?h.animate(t): +this.plotBGImage=b.image(l,p,o,q,u).add();w?w.animate({width:r.width,height:r.height}):this.clipRect=b.clipRect(r);if(m)g?g.animate(g.crisp({x:p,y:o,width:q,height:u,strokeWidth:-m})):this.plotBorder=b.rect(p,o,q,u,0,-m).attr({stroke:a.plotBorderColor,"stroke-width":m,fill:P,zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;o(["inverted","angular","polar"],function(g){c=M[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g]; +for(e=d&&d.length;!f&&e--;)(c=M[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},linkSeries:function(){var a=this,b=a.series;o(b,function(a){a.linkedSeries.length=0});o(b,function(b){var d=b.options.linkedTo;if(Da(d)&&(d=d===":previous"?a.series[b.index-1]:a.get(d)))d.linkedSeries.push(b),b.linkedParent=d})},renderSeries:function(){o(this.series,function(a){a.translate();a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&o(b.items,function(c){var d=x(b.style,c.style),e=D(d.left)+ +a.plotLeft,f=D(d.top)+a.plotTop+12;delete d.left;delete d.top;a.renderer.text(c.html,e,f).attr({zIndex:2}).css(d).add()})},render:function(){var a=this.axes,b=this.renderer,c=this.options,d,e,f,g;this.setTitle();this.legend=new nb(this,c.legend);this.getStacks();this.getMargins(!0);this.setChartSize();d=this.plotWidth;e=this.plotHeight-=13;o(a,function(a){a.setScale()});this.getAxisMargins();f=d/this.plotWidth>1.1;g=e/this.plotHeight>1.1;if(f||g)this.maxTicks=null,o(a,function(a){(a.horiz&&f||!a.horiz&& +g)&&a.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries&&o(a,function(a){a.render()});if(!this.seriesGroup)this.seriesGroup=b.g("series-group").attr({zIndex:3}).add();this.renderSeries();this.renderLabels();this.showCredits(c.credits);this.hasRendered=!0},showCredits:function(a){if(a.enabled&&!this.credits)this.credits=this.renderer.text(a.text,0,0).on("click",function(){if(a.href)location.href=a.href}).attr({align:a.position.align,zIndex:8}).css(a.style).add().align(a.position)}, +destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;I(a,"destroy");Y[a.index]=y;bb--;a.renderTo.removeAttribute("data-highcharts-chart");Z(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();o("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())});if(d)d.innerHTML= +"",Z(d),f&&Ra(d);for(e in a)delete a[e]},isReadyToRender:function(){var a=this;return!ca&&K==K.top&&B.readyState!=="complete"||fa&&!K.canvg?(fa?Mb.push(function(){a.firstRender()},a.options.global.canvasToolsURL):B.attachEvent("onreadystatechange",function(){B.detachEvent("onreadystatechange",a.firstRender);B.readyState==="complete"&&a.firstRender()}),!1):!0},firstRender:function(){var a=this,b=a.options,c=a.callback;if(a.isReadyToRender()){a.getContainer();I(a,"init");a.resetMargins();a.setChartSize(); +a.propFromSeries();a.getAxes();o(b.series||[],function(b){a.initSeries(b)});a.linkSeries();I(a,"beforeRender");if(A.Pointer)a.pointer=new Va(a,b);a.render();a.renderer.draw();c&&c.apply(a,[a]);o(a.callbacks,function(b){a.index!==y&&b.apply(a,[a])});I(a,"load");a.cloneRenderTo(!0)}},splashArray:function(a,b){var c=b[a],c=da(c)?c:[c,c,c,c];return[p(b[a+"Top"],c[0]),p(b[a+"Right"],c[1]),p(b[a+"Bottom"],c[2]),p(b[a+"Left"],c[3])]}};var Yb=A.CenteredSeriesMixin={getCenter:function(){var a=this.options, +b=this.chart,c=2*(a.slicedOffset||0),d=b.plotWidth-2*c,b=b.plotHeight-2*c,e=a.center,e=[p(e[0],"50%"),p(e[1],"50%"),a.size||"100%",a.innerSize||0],f=C(d,b),g,h;for(g=0;g<4;++g)h=e[g],a=g<2||g===2&&/%$/.test(h),e[g]=(/%$/.test(h)?[d,b,f,e[2]][g]*parseFloat(h)/100:parseFloat(h))+(a?c:0);return e}},Ga=function(){};Ga.prototype={init:function(a,b,c){this.series=a;this.color=a.color;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint&&(b=a.options.colors||a.chart.options.colors,this.color= +this.color||b[a.colorCounter++],a.colorCounter===b.length))a.colorCounter=0;a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=c.options.pointValKey||c.pointValKey,a=Ga.prototype.optionsToObject.call(this,a);x(this,a);this.options=this.options?x(this.options,a):a;if(d)this.y=this[d];if(this.x===y&&c)this.x=b===y?c.autoIncrement():b;return this},optionsToObject:function(a){var b={},c=this.series,d=c.options.keys,e=d||c.pointArrayMap||["y"],f=e.length,g=0,h=0;if(typeof a=== +"number"||a===null)b[e[0]]=a;else if(Ha(a)){if(!d&&a.length>f){c=typeof a[0];if(c==="string")b.name=a[0];else if(c==="number")b.x=a[0];g++}for(;ha+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&& +b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=z(e,c.series,a);this.tooltipOptions=z(T.tooltip,T.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);e.marker===null&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();if((c.negativeColor||c.negativeFillColor)&&!c.zones)a.push({value:c[this.zoneAxis+ +"Threshold"]||c.threshold||0,color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&q(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});return c},getCyclic:function(a,b,c){var d=this.userOptions,e="_"+a+"Index",f=a+"Counter";b||(q(d[e])?b=d[e]:(d[e]=b=this.chart[f]%c.length,this.chart[f]+=1),b=c[b]);this[a]=b},getColor:function(){this.options.colorByPoint||this.getCyclic("color",this.options.color||ba[this.type].color,this.chart.options.colors)},getSymbol:function(){var a= +this.options.marker;this.getCyclic("symbol",a.symbol,this.chart.options.symbols);if(/^url/.test(this.symbol))a.radius=0},drawLegendSymbol:Na.drawLineMarker,setData:function(a,b,c,d){var e=this,f=e.points,g=f&&f.length||0,h,i=e.options,j=e.chart,k=null,l=e.xAxis,m=l&&!!l.categories,n=i.turboThreshold,v=this.xData,s=this.yData,q=(h=e.pointArrayMap)&&h.length,a=a||[];h=a.length;b=p(b,!0);if(d!==!1&&h&&g===h&&!e.cropped&&!e.hasGroupedData&&e.visible)o(a,function(a,b){f[b].update&&f[b].update(a,!1,null, +!1)});else{e.xIncrement=null;e.pointRange=m?1:i.pointRange;e.colorCounter=0;o(this.parallelArrays,function(a){e[a+"Data"].length=0});if(n&&h>n){for(c=0;k===null&&ci||this.forceCrop))if(b[d-1]m)b=[],c=[];else if(b[0]m)e=this.cropData(this.xData,this.yData,l,m),b=e.xData,c=e.yData,e=e.start,f=!0;for(i=b.length-1;i>=0;i--)d=b[i]-b[i-1],d>0&&(g===y||d=c){f=u(0,i-h);break}for(;id){g=i+h;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,h=this.cropStart||0,i,j=this.hasGroupedData,k,l=[],m;if(!b&&!j)b=[],b.length=a.length,b=this.data=b;for(m=0;m0),j=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped|| +(c[l+1]||j)>=g&&(c[l-1]||j)<=h,i&&j)if(i=k.length)for(;i--;)k[i]!==null&&(e[f++]=k[i]);else e[f++]=k;this.dataMin=Pa(e);this.dataMax=Fa(e)},translate:function(){this.processedXData||this.processData();this.generatePoints();for(var a=this.options,b=a.stacking,c=this.xAxis,d=c.categories,e=this.yAxis,f=this.points,g=f.length,h=!!this.modifyValue,i=a.pointPlacement,j=i==="between"||ra(i),k=a.threshold,l=a.startFromThreshold?k:0,m,n,v,o=Number.MAX_VALUE,a=0;a=0&&n<=e.len&&m>=0&&m<=c.len;r.clientX=j?c.translate(x,0,0,0,1):m;r.negative=r.y<(k||0);r.category=d&&d[r.x]!==y?d[r.x]:r.x;a&&(o=C(o,O(m-v)));v=m}this.closestPointRangePx=o;this.getSegments()},setClip:function(a){var b=this.chart,c=b.renderer,d=b.inverted,e=this.clipBox,f=e||b.clipBox,g=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,f.height].join(","),h=b[g],i=b[g+"m"];if(!h){if(a)f.width= +0,b[g+"m"]=i=c.clipRect(-99,d?-b.plotLeft:-b.plotTop,99,d?b.chartWidth:b.chartHeight);b[g]=h=c.clipRect(f)}a&&(h.count+=1);if(this.options.clip!==!1)this.group.clip(a||e?h:b.clipRect),this.markerGroup.clip(i),this.sharedClipKey=g;a||(h.count-=1,h.count<=0&&g&&b[g]&&(e||(b[g]=b[g].destroy()),b[g+"m"]&&(b[g+"m"]=b[g+"m"].destroy())))},animate:function(a){var b=this.chart,c=this.options.animation,d;if(c&&!da(c))c=ba[this.type].animation;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX}, +c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip();I(this,"afterAnimate")},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,i,j,k,l=this.options.marker,m=this.pointAttr[""],n,v,o,r=this.markerGroup,q=p(l.enabled,this.xAxis.isRadial,this.closestPointRangePx>2*l.radius);if(l.enabled!==!1||this._hasPointMarkers)for(f=b.length;f--;)if(g=b[f],d=V(g.plotX),e=g.plotY,k=g.graphic,n=g.marker||{},v=!!g.marker,a=q&&n.enabled===y|| +n.enabled,o=g.isInside,a&&e!==y&&!isNaN(e)&&g.y!==null)if(a=g.pointAttr[g.selected?"select":""]||m,h=a.r,i=p(n.symbol,this.symbol),j=i.indexOf("url")===0,k)k[o?"show":"hide"](!0).animate(x({x:d-h,y:e-h},k.symbolName?{width:2*h,height:2*h}:{}));else{if(o&&(h>0||j))g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h,v?n:l).attr(a).add(r)}else if(k)g.graphic=k.destroy()},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=p(a[g],b[f], +c[f],d[f]);return h},getAttribs:function(){var a=this,b=a.options,c=ba[a.type].marker?b.marker:b,d=c.states,e=d.hover,f,g=a.color,h=a.options.negativeColor;f={stroke:g,fill:g};var i=a.points||[],j,k=[],l,m=a.pointAttrToOptions;l=a.hasPointSpecificOptions;var n=c.lineColor,p=c.fillColor;j=b.turboThreshold;var s=a.zones,r=a.zoneAxis||"y",u;b.marker?(e.radius=e.radius||c.radius+e.radiusPlus,e.lineWidth=e.lineWidth||c.lineWidth+e.lineWidthPlus):(e.color=e.color||oa(e.color||g).brighten(e.brightness).get(), +e.negativeColor=e.negativeColor||oa(e.negativeColor||h).brighten(e.brightness).get());k[""]=a.convertAttribs(c,f);o(["hover","select"],function(b){k[b]=a.convertAttribs(d[b],k[""])});a.pointAttr=k;g=i.length;if(!j||g=f.value;)f=s[++l];j.color=j.fillColor=f.color}l=b.colorByPoint||j.color;if(j.options)for(u in m)q(c[m[u]])&&(l=!0);if(l){c=c||{};l=[];d=c.states||{};f=d.hover= +d.hover||{};if(!b.marker)f.color=f.color||!j.options.color&&e[j.negative&&h?"negativeColor":"color"]||oa(j.color).brighten(f.brightness||e.brightness).get();f={color:j.color};if(!p)f.fillColor=j.color;if(!n)f.lineColor=j.color;c.hasOwnProperty("color")&&!c.color&&delete c.color;l[""]=a.convertAttribs(x(f,c),k[""]);l.hover=a.convertAttribs(d.hover,k.hover,l[""]);l.select=a.convertAttribs(d.select,k.select,l[""])}else l=k;j.pointAttr=l}},destroy:function(){var a=this,b=a.chart,c=/AppleWebKit\/533/.test(Ba), +d,e=a.data||[],f,g,h;I(a,"destroy");Z(a);o(a.axisTypes||[],function(b){if(h=a[b])ja(h.series,a),h.isDirty=h.forceRedraw=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(d=e.length;d--;)(f=e[d])&&f.destroy&&f.destroy();a.points=null;clearTimeout(a.animationTimeout);for(g in a)a[g]instanceof Q&&!a[g].survive&&(d=c&&g==="group"?"hide":"destroy",a[g][d]());if(b.hoverSeries===a)b.hoverSeries=null;ja(b.series,a);for(g in a)delete a[g]},getSegmentPath:function(a){var b=this,c=[],d=b.options.step;o(a, +function(e,f){var g=e.plotX,h=e.plotY,i;b.getPointSpline?c.push.apply(c,b.getPointSpline(a,e,f)):(c.push(f?"L":"M"),d&&f&&(i=a[f-1],d==="right"?c.push(i.plotX,h):d==="center"?c.push((i.plotX+g)/2,i.plotY,(i.plotX+g)/2,h):c.push(g,i.plotY)),c.push(e.plotX,e.plotY))});return c},getGraphPath:function(){var a=this,b=[],c,d=[];o(a.segments,function(e){c=a.getSegmentPath(e);e.length>1?b=b.concat(c):d.push(e[0])});a.singlePoints=d;return a.graphPath=b},drawGraph:function(){var a=this,b=this.options,c=[["graph", +b.lineColor||this.color,b.dashStyle]],d=b.lineWidth,e=b.linecap!=="square",f=this.getGraphPath(),g=this.fillGraph&&this.color||P;o(this.zones,function(d,e){c.push(["zoneGraph"+e,d.color||a.color,d.dashStyle||b.dashStyle])});o(c,function(c,i){var j=c[0],k=a[j];if(k)db(k),k.animate({d:f});else if((d||g)&&f.length)k={stroke:c[1],"stroke-width":d,fill:g,zIndex:1},c[2]?k.dashstyle=c[2]:e&&(k["stroke-linecap"]=k["stroke-linejoin"]="round"),a[j]=a.chart.renderer.path(f).attr(k).add(a.group).shadow(i<2&& +b.shadow)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],h,i=this.graph,j=this.area,k=u(b.chartWidth,b.chartHeight),l=this[(this.zoneAxis||"y")+"Axis"],m,n=l.reversed,v=b.inverted,s=l.horiz,q,x,t,w=!1;if(d.length&&(i||j))i&&i.hide(),j&&j.hide(),m=l.getExtremes(),o(d,function(d,o){e=n?s?b.plotWidth:0:s?0:l.toPixels(m.min);e=C(u(p(f,e),0),k);f=C(u(r(l.toPixels(p(d.value,m.max),!0)),0),k);w&&(e=f=l.toPixels(m.max));q=Math.abs(e-f);x=C(e,f);t=u(e,f);if(l.isXAxis){if(h= +{x:v?t:x,y:0,width:q,height:k},!s)h.x=b.plotHeight-h.x}else if(h={x:0,y:v?t:x,width:k,height:q},s)h.y=b.plotWidth-h.y;b.inverted&&c.isVML&&(h=l.isXAxis?{x:0,y:n?x:t,height:h.width,width:b.chartWidth}:{x:h.y-b.plotLeft-b.spacingBox.x,y:0,width:h.height,height:b.chartHeight});g[o]?g[o].animate(h):(g[o]=c.clipRect(h),i&&a["zoneGraph"+o].clip(g[o]),j&&a["zoneArea"+o].clip(g[o]));w=d.value>m.max}),this.clips=g},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};o(["group", +"markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;if(b.xAxis)H(c,"resize",a),H(b,"destroy",function(){Z(c,"resize",a)}),a(),b.invertGroups=a},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({visibility:c,zIndex:d||0.1}).add(e));f[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;if(a.inverted)b=c,c=this.xAxis;return{translateX:b?b.left:a.plotLeft,translateY:c?c.top: +a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=(c=d.animation)&&!!a.animate&&b.renderer.isSVG&&p(c.duration,500)||0,f=a.visible?"visible":"hidden",g=d.zIndex,h=a.hasRendered,i=b.seriesGroup;c=a.plotGroup("group","series",f,g,i);a.markerGroup=a.plotGroup("markerGroup","markers",f,g,i);e&&a.animate(!0);a.getAttribs();c.inverted=a.isCartesian?b.inverted:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());o(a.points,function(a){a.redraw&&a.redraw()});a.drawDataLabels&& +a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&a.options.enableMouseTracking!==!1&&a.drawTracker();b.inverted&&a.invertGroups();d.clip!==!1&&!a.sharedClipKey&&!h&&c.clip(b.clipRect);e&&a.animate();if(!h)e?a.animationTimeout=setTimeout(function(){a.afterAnimate()},e):a.afterAnimate();a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.isDirty,d=this.group,e=this.xAxis,f=this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}), +d.animate({translateX:p(e&&e.left,a.plotLeft),translateY:p(f&&f.top,a.plotTop)}));this.translate();this.render();b&&I(this,"updatedData");(c||b)&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(b,d,g){var h,i;if(i=b&&b.length)return h=c.kdAxisArray[d% +g],b.sort(function(a,b){return a[h]-b[h]}),i=Math.floor(i/2),{point:b[i],left:a(b.slice(0,i),d+1,g),right:a(b.slice(i+1),d+1,g)}}function b(){var b=lb(c.points,function(a){return a.y!==null});c.kdTree=a(b,d,d)}var c=this,d=c.kdDimensions;delete c.kdTree;c.options.kdSync?b():setTimeout(b)},searchKDTree:function(a,b){function c(a,b,j,k){var l=b.point,m=d.kdAxisArray[j%k],n,p,o=l;p=q(a[e])&&q(l[e])?Math.pow(a[e]-l[e],2):null;n=q(a[f])&&q(l[f])?Math.pow(a[f]-l[f],2):null;n=(p||0)+(n||0);l.dist=q(n)?Math.sqrt(n): +Number.MAX_VALUE;l.distX=q(p)?Math.sqrt(p):Number.MAX_VALUE;m=a[m]-l[m];n=m<0?"left":"right";p=m<0?"right":"left";b[n]&&(n=c(a,b[n],j+1,k),o=n[g]m;)d--;e.updateParallelArrays(i,"splice",d,0,0);e.updateParallelArrays(i,d);if(k&&i.name)k[m]=i.name;h.splice(d,0,a);n&&(e.data.splice(d,0,null),e.processData());f.legendType==="point"&&e.generatePoints();c&&(g[0]&&g[0].remove?g[0].remove(!1):(g.shift(),e.updateParallelArrays(i,"shift"),h.shift()));e.isDirty=!0;e.isDirtyData=!0;b&&(e.getAttribs(), +j.redraw())},removePoint:function(a,b,c){var d=this,e=d.data,f=e[a],g=d.points,h=d.chart,i=function(){e.length===g.length&&g.splice(a,1);e.splice(a,1);d.options.data.splice(a,1);d.updateParallelArrays(f||{series:d},"splice",a,1);f&&f.destroy();d.isDirty=!0;d.isDirtyData=!0;b&&h.redraw()};Sa(c,h);b=p(b,!0);f?f.firePointEvent("remove",null,i):i()},remove:function(a,b){var c=this,d=c.chart,a=p(a,!0);if(!c.isRemoving)c.isRemoving=!0,I(c,"remove",null,function(){c.destroy();d.isDirtyLegend=d.isDirtyBox= +!0;d.linkSeries();a&&d.redraw(b)});c.isRemoving=!1},update:function(a,b){var c=this,d=this.chart,e=this.userOptions,f=this.type,g=M[f].prototype,h=["group","markerGroup","dataLabelsGroup"],i;if(a.type&&a.type!==f||a.zIndex!==void 0)h.length=0;o(h,function(a){h[a]=c[a];delete c[a]});a=z(e,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1);for(i in g)this[i]=y;x(this,M[a.type||f].prototype);o(h,function(a){c[a]=h[a]});this.init(d,a);d.linkSeries();p(b, +!0)&&d.redraw(!1)}});x(va.prototype,{update:function(a,b){var c=this.chart,a=c.options[this.coll][this.options.index]=z(this.userOptions,a);this.destroy(!0);this._addedPlotLB=this.chart._labelPanes=y;this.init(c,x(a,{events:y}));c.isDirtyBox=!0;p(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);ja(b.axes,this);ja(b[c],this);b.options[c].splice(this.options.index,1);o(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox= +!0;p(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}});var xa=ka(R);M.line=xa;ba.area=z(U,{threshold:0});var qa=ka(R,{type:"area",getSegments:function(){var a=this,b=[],c=[],d=[],e=this.xAxis,f=this.yAxis,g=f.stacks[this.stackKey],h={},i,j,k=this.points,l=this.options.connectNulls,m,n;if(this.options.stacking&&!this.cropped){for(m=0;m=0;d--)g=p(a[d].yBottom,f),da&&i>e?(i=u(a,e),k=2*e-i):ig&&k>e?(k=u(g,e),i=2*e-k):kg?d-g:f-(x?g:0))); +c.barX=o;c.pointWidth=i;q=r(o+q)+l;o=r(o)+l;q-=o;d=O(t)<0.5;w=C(r(t+w)+m,9E4);t=r(t)+m;w-=t;d&&(t-=1,w+=1);c.tooltipPos=b.inverted?[e.len+e.pos-b.plotLeft-h,a.xAxis.len-o-q/2,w]:[o+q/2,h+e.pos-b.plotTop,w];c.shapeType="rect";c.shapeArgs={x:o,y:t,width:q,height:w}})},getSymbol:na,drawLegendSymbol:Na.drawRectangle,drawGraph:na,drawPoints:function(){var a=this,b=this.chart,c=a.options,d=b.renderer,e=c.animationLimit||250,f,g;o(a.points,function(h){var i=h.plotY,j=h.graphic;if(i!==y&&!isNaN(i)&&h.y!== +null)f=h.shapeArgs,i=q(a.borderWidth)?{"stroke-width":a.borderWidth}:{},g=h.pointAttr[h.selected?"select":""]||a.pointAttr[""],j?(db(j),j.attr(i)[b.pointCount\u25CF {series.name}
', +pointFormat:"x: {point.x}
y: {point.y}
"}});qa=ka(R,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,kdDimensions:2,drawGraph:function(){this.options.lineWidth&&R.prototype.drawGraph.call(this)}});M.scatter=qa;ba.pie=z(U,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name},x:0}, +ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});U={type:"pie",isCartesian:!1,pointClass:ka(Ga,{init:function(){Ga.prototype.init.apply(this,arguments);var a=this,b;x(a,{visible:a.visible!==!1,name:p(a.name,"Slice")});b=function(b){a.slice(b.type==="select")};H(a,"select",b);H(a,"unselect",b);return a},setVisible:function(a,b){var c=this,d=c.series,e=d.chart,f=d.options.ignoreHiddenPoint, +b=p(b,f);if(a!==c.visible){c.visible=c.options.visible=a=a===y?!c.visible:a;d.options.data[Ma(c,d.data)]=c.options;o(["graphic","dataLabel","connector","shadowGroup"],function(b){if(c[b])c[b][a?"show":"hide"](!0)});c.legendItem&&e.legend.colorizeItem(c,a);!a&&c.state==="hover"&&c.setState("");if(f)d.isDirty=!0;b&&e.redraw()}},slice:function(a,b,c){var d=this.series;Sa(c,d.chart);p(b,!0);this.sliced=this.options.sliced=a=q(a)?a:!this.sliced;d.options.data[Ma(this,d.data)]=this.options;a=a?this.slicedTranslation: +{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var b=this.shapeArgs,c=this.series.chart;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.plotLeft+b.x,c.plotTop+b.y,b.r+a,b.r+a,{innerR:this.shapeArgs.r,start:b.start,end:b.end})}}),requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth", +fill:"color"},getColor:na,animate:function(a){var b=this,c=b.points,d=b.startAngleRad;if(!a)o(c,function(a){var c=a.graphic,g=a.shapeArgs;c&&(c.attr({r:a.startR||b.center[3]/2,start:d,end:d}),c.animate({r:g.r,start:g.start,end:g.end},b.options.animation))}),b.animate=null},setData:function(a,b,c,d){R.prototype.setData.call(this,a,!1,c,d);this.processData();this.generatePoints();p(b,!0)&&this.chart.redraw(c)},updateTotals:function(){var a,b=0,c=this.points,d=c.length,e,f=this.options.ignoreHiddenPoint; +for(a=0;a0&&(e.visible||!f)?e.y/b*100:0,e.total=b},generatePoints:function(){R.prototype.generatePoints.call(this);this.updateTotals()},translate:function(a){this.generatePoints();var b=0,c=this.options,d=c.slicedOffset,e=d+c.borderWidth,f,g,h,i=c.startAngle||0,j=this.startAngleRad=ma/180*(i-90),i=(this.endAngleRad=ma/180*(p(c.endAngle,i+360)-90))-j,k=this.points,l=c.dataLabels.distance,c=c.ignoreHiddenPoint,m, +n=k.length,o;if(!a)this.center=a=this.getCenter();this.getX=function(b,c){h=W.asin(C((b-a[1])/(a[2]/2+l),1));return a[0]+(c?-1:1)*X(h)*(a[2]/2+l)};for(m=0;m1.5*ma?h-=2*ma:h<-ma/2&&(h+=2*ma);o.slicedTranslation={translateX:r(X(h)*d),translateY:r(aa(h)*d)};f=X(h)*a[2]/2;g=aa(h)*a[2]/2;o.tooltipPos=[a[0]+f*0.7,a[1]+g* +0.7];o.half=h<-ma/2||h>ma/2?1:0;o.angle=h;e=C(e,l/2);o.labelPos=[a[0]+f+X(h)*l,a[1]+g+aa(h)*l,a[0]+f+X(h)*e,a[1]+g+aa(h)*e,a[0]+f,a[1]+g,l<0?"center":o.half?"right":"left",h]}},drawGraph:null,drawPoints:function(){var a=this,b=a.chart.renderer,c,d,e=a.options.shadow,f,g,h;if(e&&!a.shadowGroup)a.shadowGroup=b.g("shadow").add(a.group);o(a.points,function(i){d=i.graphic;g=i.shapeArgs;f=i.shadowGroup;if(e&&!f)f=i.shadowGroup=b.g("shadow").add(a.shadowGroup);c=i.sliced?i.slicedTranslation:{translateX:0, +translateY:0};f&&f.attr(c);if(d)d.animate(x(g,c));else{h={"stroke-linejoin":"round"};if(!i.visible)h.visibility="hidden";i.graphic=d=b[i.shapeType](g).setRadialReference(a.center).attr(i.pointAttr[i.selected?"select":""]).attr(h).attr(c).add(a.group).shadow(e,f)}})},searchPoint:na,sortByAngle:function(a,b){a.sort(function(a,d){return a.angle!==void 0&&(d.angle-a.angle)*b})},drawLegendSymbol:Na.drawRectangle,getCenter:Yb.getCenter,getSymbol:na};U=ka(R,U);M.pie=U;R.prototype.drawDataLabels=function(){var a= +this,b=a.options,c=b.cursor,d=b.dataLabels,e=a.points,f,g,h=a.hasRendered||0,i,j,k=a.chart.renderer;if(d.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(d),j=a.plotGroup("dataLabelsGroup","data-labels",d.defer?"hidden":"visible",d.zIndex||6),p(d.defer,!0)&&(j.attr({opacity:+h}),h||H(a,"afterAnimate",function(){a.visible&&j.show();j[b.animation?"animate":"attr"]({opacity:1},{duration:200})})),g=d,o(e,function(e){var h,n=e.dataLabel,o,s,r=e.connector,u=!0,t,w={};f=e.dlOptions||e.options&& +e.options.dataLabels;h=p(f&&f.enabled,g.enabled);if(n&&!h)e.dataLabel=n.destroy();else if(h){d=z(g,f);t=d.style;h=d.rotation;o=e.getLabelConfig();i=d.format?Ja(d.format,o):d.formatter.call(o,d);t.color=p(d.color,t.color,a.color,"black");if(n)if(q(i))n.attr({text:i}),u=!1;else{if(e.dataLabel=n=n.destroy(),r)e.connector=r.destroy()}else if(q(i)){n={fill:d.backgroundColor,stroke:d.borderColor,"stroke-width":d.borderWidth,r:d.borderRadius||0,rotation:h,padding:d.padding,zIndex:1};if(t.color==="contrast")w.color= +d.inside||d.distance<0||b.stacking?k.getContrast(e.color||a.color):"#000000";if(c)w.cursor=c;for(s in n)n[s]===y&&delete n[s];n=e.dataLabel=k[h?"text":"label"](i,0,-999,d.shape,null,null,d.useHTML).attr(n).css(x(t,w)).add(j).shadow(d.shadow)}n&&a.alignDataLabel(e,n,d,null,u)}})};R.prototype.alignDataLabel=function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=p(a.plotX,-999),i=p(a.plotY,-999),j=b.getBBox(),k=f.renderer.fontMetrics(c.style.fontSize).b,l=this.visible&&(a.series.forceDL||f.isInsidePlot(h, +r(i),g)||d&&f.isInsidePlot(h,g?d.x+1:d.y+d.height-1,g));if(l)d=x({x:g?f.plotWidth-i:h,y:r(g?f.plotHeight-h:i),width:0,height:0},d),x(c,{width:j.width,height:j.height}),c.rotation?(a=f.renderer.rotCorr(k,c.rotation),b[e?"attr":"animate"]({x:d.x+c.x+d.width/2+a.x,y:d.y+c.y+d.height/2}).attr({align:c.align})):(b.align(c,null,d),g=b.alignAttr,p(c.overflow,"justify")==="justify"?this.justifyDataLabel(b,c,g,j,d,e):p(c.crop,!0)&&(l=f.isInsidePlot(g.x,g.y)&&f.isInsidePlot(g.x+j.width,g.y+j.height)),c.shape&& +b.attr({anchorX:a.plotX,anchorY:a.plotY}));if(!l)b.attr({y:-999}),b.placed=!1};R.prototype.justifyDataLabel=function(a,b,c,d,e,f){var g=this.chart,h=b.align,i=b.verticalAlign,j,k,l=a.box?0:a.padding||0;j=c.x+l;if(j<0)h==="right"?b.align="left":b.x=-j,k=!0;j=c.x+d.width-l;if(j>g.plotWidth)h==="left"?b.align="right":b.x=g.plotWidth-j,k=!0;j=c.y+l;if(j<0)i==="bottom"?b.verticalAlign="top":b.y=-j,k=!0;j=c.y+d.height-l;if(j>g.plotHeight)i==="top"?b.verticalAlign="bottom":b.y=g.plotHeight-j,k=!0;if(k)a.placed= +!f,a.align(b,null,e)};if(M.pie)M.pie.prototype.drawDataLabels=function(){var a=this,b=a.data,c,d=a.chart,e=a.options.dataLabels,f=p(e.connectorPadding,10),g=p(e.connectorWidth,1),h=d.plotWidth,i=d.plotHeight,j,k,l=p(e.softConnector,!0),m=e.distance,n=a.center,q=n[2]/2,s=n[1],x=m>0,y,t,w,z=[[],[]],B,A,D,F,G,E=[0,0,0,0],L=function(a,b){return b.y-a.y};if(a.visible&&(e.enabled||a._hasPointLabels)){R.prototype.drawDataLabels.apply(a);o(b,function(a){a.dataLabel&&a.visible&&z[a.half].push(a)});for(F=2;F--;){var I= +[],M=[],H=z[F],K=H.length,J;if(K){a.sortByAngle(H,F-0.5);for(G=b=0;!b&&H[G];)b=H[G]&&H[G].dataLabel&&(H[G].dataLabel.getBBox().height||21),G++;if(m>0){t=C(s+q+m,d.plotHeight);for(G=u(0,s-q-m);G<=t;G+=b)I.push(G);t=I.length;if(K>t){c=[].concat(H);c.sort(L);for(G=K;G--;)c[G].rank=G;for(G=K;G--;)H[G].rank>=t&&H.splice(G,1);K=H.length}for(G=0;G0){if(t=M.pop(),J=t.i,A=t.y,c>A&&I[J+1]!==null||ch- +f&&(E[1]=u(r(B+t-h+f),E[1])),A-b/2<0?E[0]=u(r(-A+b/2),E[0]):A+b/2>i&&(E[2]=u(r(A+b/2-i),E[2]))}}}if(Fa(E)===0||this.verifyDataLabelOverflow(E))this.placeDataLabels(),x&&g&&o(this.points,function(b){j=b.connector;w=b.labelPos;if((y=b.dataLabel)&&y._pos&&b.visible)D=y._attr.visibility,B=y.connX,A=y.connY,k=l?["M",B+(w[6]==="left"?5:-5),A,"C",B,A,2*w[2]-w[4],2*w[3]-w[5],w[2],w[3],"L",w[4],w[5]]:["M",B+(w[6]==="left"?5:-5),A,"L",w[2],w[3],"L",w[4],w[5]],j?(j.animate({d:k}),j.attr("visibility",D)):b.connector= +j=a.chart.renderer.path(k).attr({"stroke-width":g,stroke:e.connectorColor||b.color||"#606060",visibility:D}).add(a.dataLabelsGroup);else if(j)b.connector=j.destroy()})}},M.pie.prototype.placeDataLabels=function(){o(this.points,function(a){var b=a.dataLabel;if(b&&a.visible)(a=b._pos)?(b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-999})})},M.pie.prototype.alignDataLabel=na,M.pie.prototype.verifyDataLabelOverflow=function(a){var b=this.center,c=this.options,d=c.center,e=c.minSize|| +80,f=e,g;d[0]!==null?f=u(b[2]-u(a[1],a[3]),e):(f=u(b[2]-a[1]-a[3],e),b[0]+=(a[3]-a[1])/2);d[1]!==null?f=u(C(f,b[2]-u(a[0],a[2])),e):(f=u(C(f,b[2]-a[0]-a[2]),e),b[1]+=(a[0]-a[2])/2);fp(this.translatedThreshold,g.yAxis.len)),j=p(c.inside,!!this.options.stacking);if(h&&(d=z(h),f&&(d={x:g.yAxis.len-d.y-d.height,y:g.xAxis.len-d.x-d.width,width:d.height,height:d.width}),!j))f?(d.x+=i?0:d.width,d.width=0):(d.y+=i?d.height:0,d.height=0);c.align=p(c.align,!f||j?"center":i?"right":"left");c.verticalAlign=p(c.verticalAlign,f||j?"middle":i?"top":"bottom");R.prototype.alignDataLabel.call(this,a,b,c,d,e)};(function(a){var b= +a.Chart,c=a.each,d=a.pick,e=HighchartsAdapter.addEvent;b.prototype.callbacks.push(function(a){function b(){var e=[];c(a.series,function(a){var b=a.options.dataLabels;(b.enabled||a._hasPointLabels)&&!b.allowOverlap&&a.visible&&c(a.points,function(a){if(a.dataLabel)a.dataLabel.labelrank=d(a.labelrank,a.shapeArgs&&a.shapeArgs.height),e.push(a.dataLabel)})});a.hideOverlappingLabels(e)}b();e(a,"redraw",b)});b.prototype.hideOverlappingLabels=function(a){var b=a.length,c,d,e,k;for(d=0;de.alignAttr.x+e.width||k.alignAttr.x+k.widthe.alignAttr.y+e.height||k.alignAttr.y+k.heightd;if(h.series.length&&(i||l>C(k.dataMin,k.min))&&(!i||jDf`EjC@PmPr($Y$el1a!MB?1D{B^?qA-R%0XLZa!{^tAL!Y^Py*Q%^wK?p1ADMeEIjrpdz86*WN#wKUdk%d0Tzo1{g-;v` zx1Ul>zsVkw)bm)ba~mP{-rkNWAIyI~N}kQ6Mmx?lsDzr*!(`T@Cv6+CM%%YL83YPR zv2ABV$gPlQ#r4r98!q@{9s?moAYP#xW7VFD2e(*MizqbYD)c9qh=~& zZVM3|;JKZD$FabYm0`Mr=IP1(?!B4ldLYCVygH77nnyM{b_q%ZkYcyT=G5go7>{{P zSxRvkaFhc_<=ZnamK8alMdH4=jq_TI4Oj8}CviHYGl1AsgUE?i!rp%j$BUjLn3Q6! z&1+x#MAo~kNQsqhnET+)N> z$G*&6?3Xmz2^?fk79{>7dr~(okf9Z(mG`7z^p(ARv=G@4!aTD3UXL=79TR&4{suv2 zmDYT)Cf7m8>fFt)3{3B^*p3$j7`0TkShR>SEj)(6VMsI=5pHN`=!;rsuHGa;D_7Tq z(E@`{|k1CrOyXs3SpBhLqu!kzq2AB@ z=BB0)wA((-m0Q=fQ{TqMgT=)~4NXm_jd9_l&8aSR!Ny-#m*Y!)L~G z2g{Ygl34~W1)gtTKc4krZCv{XLLG!Bv4}sQZ7}GvD8U0kjqMwC`9QSxQHx@Pes8d~XpF8dlr0 zBq5!N>)khBbw#rj8kUE)wkm+Y!v##eI+HJS2WA!@xXOhQae4$ypeJ%p&M_-1$?54! z<3G(CcG^fcW*XBlncmUuVU&+#WHj?epjVC2nxsv5K1}a!NnEvD9v=&U<4rLa)`mmG z9;-N4qm{{h-jv1UXLEsz`fEz7wCzy+xOZxEETYl4W{|<9$7%X?K6Qp&J|{IqZr??Y zJ~Aez1iu&}i{C&vu8OGdax=Ph>(+~UcYXt;6G4)RpX6hYt=H|L^I z=9#h4H2k8m1_<$KpK`oN7|`DmYYw?+;hF2=|W%rtsS`kuKCQNNiJ z+7a3b(4_3VS95)}1afH(GE;UqXV4TEcHXr8ysUG(&i-D_WB9_UEc^pMSS72rmX=;# zUfy*?taG*Sf8qfT-WoIV(r@o-iqHO|L=yNgpFm3Wh~_OqMWm(sl<19qozEQ07B?Ot zs_dpZ=jPZlG0V!=?H8GMG8AZ)`UVE}hSddkFSq@(9Q@Cxr1$$Cf&8LXctWs&cdsmZ z?kC|^v;X>`aadV&r_=QR59+(q!^#prQI%nJ6l8XP2$7>31ZPCMC#9Q#Iu5$Utrf%KSm zyLoMl|9lS)DiUo(yKvn&@q$3bG}6r7{d1%D@m|KZPuTz0c)n4tp{-4St%hE}rG)qs zY@8Md`a%c%PHaL8JI7ZDSghkgy{Se#)d|MdY2^&P5SNhH z0V%d6;p^4lbat@jpTgN~5GAbI)%q#Uxi%Pc>M2{Cpa|tkfVVNU$6TJol)R~)LfpSuWU&QY0x6H~qUSBSjEHBBS4}WU=EU0*0U;loDQ*J5~ZH_3Sn>LP- z2$yF6^`;i-rIN3E7M!p*Ig+P+921psmcyyml!)VMC^>L^>AIi)R9R=ky2!|!%*20{ z{gBXqhcJl~c9|@5T5V=~0^!pyoHN??qG!F@39CJtv^D(silEp{(SKI!!axM}k}d)M zP)Mky5^dZYO3qZXQPz9XW6;!A-F#`Ml_{OlID<21PDj?b{w>Yn%4IG;iSKSxTx;{# z_xT{a6KX_NZr8#p!|o`gHYFHcI&> zs6lM}gI!L@t;4_BV?8>&DQ97Fr}0}$OH1B?S!_xt*ooN#>6nbi9((hY{>eA{`gW=+ z3Q-g)9Lf_uQ*|sA5uKY586CYBNa+($X^SrNyYy;08!aib8obvg^h>HcLMpBM*r_5#=U~OSEsVuL3r<&1dHxuXeDu~eORn1j;d{SOZQ)>+wxXcR_2|y zPcrX{<^t(O*kUY5^c`&j{t=v)0QdVZr!xKgnNA@xZtq6N<1o3iA)L9cfXAvIrTv7_ z&0tGU|K`bd-0a}*-$cdO+g-wPylcsD-Y$(QhuHzp=$ORb&NZEHEq+qDXJ%>npZ9t| zhx!=K@juu7ev@}|SLZP%LQ5d6$X|k`Nko5K95;Y%KK(Eif;Fyx)$vA2D$e)Z`0KR& zaRS_gIEd{?I!3QRA1;u@Vp&Lsh{6fZJONGZe`0LV$nqJ_rsf>D?an? ze)T_R(j;RqXeENYNYsh>T2;jq)UL%)Ci~xOeU#EW5OZ_$iRZ8u(IeyHnzfa*>#Uo6 z-zFGo1a+u%gh%Z*b=Pj`*qQR+{>)3>B&_e{C9|wgf>8K}_@!*D#4K4*fE#uUtjBlQ zGJVRsaVGK6qjD4PgP&b~J50@|X$CJAuisIx#>303NB)yN?bhD=6yp=DnI<-WeiidK z|Jr6qz81L>&R1;e=oou-<+oM8ElY7vI(b&nlzeBTr7X?9=`W#lhhrK`vKAmileC_P)Li zaaR9@k0sZg4p%E~V<#o|@64#SKku54Qx}*Y$+{A`*(v~0RA4E~b@XF#Z%jes`R8}O zd2oE}ay;#^zfnF&m-P_h6Rx{G7voTOx>9nJ!2Jei8A@8pN2ejTYDg*AOq`e_IMqTE z;M>H~+h1X*1zlb}ODiiK*u2Dm-|X>qmUC_2-f}PQob#MPKurJOAgj!~ojH?Be}9Ze zF|OZ0=nvFFX#MKfh?71m+4e)U$zV&1JVmet{#Vk7e>|0AMC>n`d?Z=V{)FvF$8f5> zyE?^0Xcyt4&F@6pgC%)?mI{oVfTECZR?AST!I1N65>0hb3S%7c=Xgr3iaUMtnlntM84DO31!MF^;+M?z? zXA&@;9^{mi5inF4hgw_~9o!H1dljN+(f_JLuu~<5@Pc(2)#z6NzA4 z3kd`tV)xcywLU(Mj@dSmr$RgC#n`_Px1F8&3BsnmM5Yj`G(tkcS^IPdoI z^G<%N$hLuqYUd2qm|m2aA08eqYt0qcZ!P@!@+86(5AHl#0$F$uVw>fA{CGAc4*o5# zadA%KHks!E*C?*cY1FY!|xd z8g^1<>B^bfRHpP>Zk;!-uJ^%y=3f8_Huu%2p2vV!`e@v|VLxMg36y~B=H~05-DaFm zEr0${p-uc{Mn*>dd2csH#t6P5B!z4K@+bMV?YHfHebL>;nzkc7I~-FPxhS!Es7tW( z{H_QG%GCgR$9^)XZVux2GzkvlElMJ04>dw37Gn_vZ0{E(dJY>JD-o5&30KLB5(X&# z_F?A7?teFC%B@cC7$Dh;>(+Uz?54vP>!iROiGCR@`Zio z`s&!_?7+I|sIp|pzB)wNJ2)`7hLb(L`m=#j$o z=S_k}Xcq0brCR&y{oj}VhX(bi1RB=H)0LB(&h-*utHLL`aq8EcaJ$RR$%qnt_y>Wt zsho5+@+fCNt$2?mW>;N!A$Rz9WZ7=2D!f;)KHZ}C^OrczJIxaAk!cQ1DTi2eJZE05@z%lna>YL3id)OP{`0K_H#U>IxVCz=0s7yeECo z52hg2KZrpM4K3MCsXZv_Z&wJFZSQi~gTx?hzQpt`cW+8gwY^ipX^+`Oc+X0gLv07Z zu5yYLEey};6?I)i*;Fhue81`PszH~%QLgSp__x}B{mM;%f1v!gg9DNx*+ERwaSoy_ zw@-#{SY&xSQN}e}QNs0)|E<-4C0f~5D757mn$%Mh-HR-*Rdsxp+q_}7%uq3=3I&yu zbld;>T+(fwmXLy3Vo|heYLhQ>wq86vJ+-c(q~vFwF0XH6$Vhku-lUs}`5;v=`BF z-76>hpQufd8}G?o{F=-Nc&bpi^MHJn^q>--60K4~uLW&Ocx&2V!*8p05}cgJAcaaOg68}aV9SJwV%Mz< z`_Wo?E>F^b+2;&({m_Hmlk!>m!KvnF2)$!lbe-xt-W~JH`D(fOB1x`{V(zC3EBS4d zz_HBsBsfOsHzFX@5@0yR*!h|*9P>VY#oysnR2{-P%sNH7&Xs9+gcPL?v$8Y(mxpiv z)d)`o*M8{gl`WI?Ki7eVu#FOaPw3U{xdRJ~!PcA(R*pf7V=w*8zw7qkqguphl{i1* zn)46@y3wWn#{J}wr1GD&te9Bm`1tr;oq(}P7FO006VHx2oyV6E1*1J)azvKCv)(fd z2zbviw;H@i-&Xg>oykoKGX?Z>Q~LXCiCfVXV?Tv&p(^e8 z@2IjPiwW;Y46qyhw3y1BX+ea&f{? zuX6o9!fQ1&M>q0WUA$hU3q=lpxd$I!J6yFD`Hp^W6m%2dz6aAnxd^QcLk6W_Gf+^s zFTFooix-fDdM_gLTas1_3k@M9ZKQ<;9jbs0~@qT=tcgfWoQ z+qPn911<7$@87?7tv8y$9v17X?cqdDP)33Z?y%1l{7n8i(U5Rw?r9|zL(xb&0y`Rw zA+~EC7!C$7Fh1D5UbA{?nPvMO;oZR1x1CuLRx1;i9NfXep%T$Uh(|JyKoKLOAS-=4 z@o@c+F%ugY;N0;??$6*Z4Y!2X0Yf5;VD|XCo~?e@pVoaJFSB2LeQz0+5@2h&Sz3g4 zOb%B~f+$)*wL}Qi@g&jl4SSUX8?imLEzJ1^+s1(Dm2J7e(YBMkmy(h2L-%VPOmTc2Q-k`1(Z%rCOx1{3U5nHpBa$(f6OyO9+5Q zULz2lz>qz)wlnwM#A4$wbjyDZCz@5RwWxYJ^gcl`Hao%c@{C-!K=j_bIUL?ZUV0NB zVYrlJtfW+3IwosYJ&va*@!@+*A(oY)w;aeMn_3Nqj*7<_;v&+=NO82jt5KLx~c!|2=9e_ zNof1I_9+x6gY*8d(?00XcBD>pFZPtd(ZY=fF+NMBs7L#GkAJq zVvfR;de4E5@(<_FYpuzK>3wOiXq5Ba*?p&U4H%LwmyHP5zWH*5!Tim@;QqzF_vz*A zwXfei#y|7RycsiL#ZY81!*bWwg>a_#k)+fnT~w1F7N6`8kpWt()U-hRllN;-jFf8~ z%L3;YU0&)gVqDdMay|i?lLwhwhG?ToeZX)9xZ7r~rQC%n1i-_Ub3SDacc?un(Yw&a z>i+cX2*2}orXdAP7#~khPn8CV+hcjc_c~e4BV(iYoz^5wc!?)qalxF?#H87UW0QI? z0z^LRNBbi5CZy>AC3u-(birT!Z?Ep^(kSb?!JtV0J)$x5?~hUAeBB>)nMu7q>P+NI z1g9G7llDh2lwyb2S;K}k!7uk6%Q((j+~V!?gdU3^`AKNw@L7uMtfa!(SR_8z%=rxa z%;lDc)83L=s*4L585x@rWBP%pv_SKP^8%*=363Hg^ZV9P=MEA}%t|bL;anE}t&NFc z6}!zHZoY!S48fMUei^*w#}e9)xPWU-Y^EAK2alz#yGe+ zf`11NCR~@amTE{12zuG4?pULO#~3q6+Oy+0^-|P!q9=Q3NQ@0LB3hM@UvS8dFz@ zXiQZXtPN%(+CkDodnG8wh(9PrL*y4Ao%)P)lq@)4W!96g6#D-17$FB2f9)K9BS3(!euTT#P;QGm-EDoA%C&5{k1v6I%VnJoXsads<)m*Ri7sYKjRvg?1L zAhLJw-ZcZf-3_rIYCHC<1WkY0$YnJ>VOsf!jLk!9jX=Pe;t&xv|H*9l?k($J9TJ!b z2IGVbv#EqN8t0+0U)pvoy6BU7EyjusHBE9_*LI2Pri}$^=IaG+7;f;VE2j9h(wTFR z`HmfT45*Z-!zft3PP{D}U0IJ_{IixTeMQry?YRDzVcK3WgV!h1m&VY*1Tf5p>!Z57 ziAuk+!BhiQJb8!5f>AP8C!|H_)y8>lltSL}%lA}Wxd~yYg!LOLqv(9AR)rV!`L4OW zyUaEQ91e>p<@ORZR)mo}h)q@JtnVc0Z5i|Epz?=A7`}qM!^a8(7g}1wHkB`$ z{bUSGd_`YYzx^`vW{J9!iJ+lz;~4e&{D?);kD8mf_p_jtjSUG3zG7C1u<-NCw9j)H zMins>+URf>^oV5|&*LCZ3Or$?*JNnKIrtL*App{Jg<)V~XW+|Q71W4Nr;RAdWRBoF~bI!FI01mBH8D7?oto^~dPt;kEK6c+Q zJ>6RtIXl}MGE-;i>=h+%On0(k@_>#xR{3vB478!)@Pbj*gs&rO&+-$XN$S?g8+8X? zd79}4VRn?{6vJqA%Q0T+z9xW_LY;rm=&nQqq(bA+@4$xpD$%7b7y-VHMC18lqk8Ai z*SEX+L@^9ZOy-j?{}?h#OrI<}0bB~dNo6IdQY$60NI#;sRC5-36rrHx2}y1v5Km|*!StSPYZv`a!)u{+;Nsb_oK z2B$rGpXTc^?8oFTUc3UEGW15|sfh{eD2xE@G+bo)phZ_YWMBcGxvM*>8JSO&06STepFTqoH)G@!FDLfK>-NHZYLfwj$p# zlqGP>(;B4+>p{W&5XCQkw#l-3HQqC$)hR(wGf^9{UlMJ$iq zv)}qnZ@RC!c|Txfu^9OlmC$nssj}jOZ!WS76Yb!POXk$!{LCgQB^8dN1*D&)-_+@x zU#tT4x}3g`+5nn$@m$u7q0D&{jE=KfMfxDs=1#AI9zFO+gLc}1%O9a&s68|S+t_Gt zVB`qF+;zSZDsDbmpjV3HeA1b$O$zldhUXW8vd2Lbbnp~TqGEkNm)e?es4V#TD{W8=a=xkY++A-f5l_uj3w4d*eSiEc zGK$9-2lpA6nftgOG=f3?^=6%$uB|ADfYkc*x~M>#>oB#0S{&yzXSBn^PBKRGtE0^N zZNC|}=~L|)FYN4;?i{k`hXaESmF|^e52vzI zYzkj2K!T}~gN6&SQut#yK&}I_Ac`%!q$Fm!H>upRpOJTT-H`k`verL@M_$m{OR^nG z8~IM*0xke=y<_FMnB*rTBqR^APS3>%%|-JB=xJV!T5+6(#*L|LJJgD|yQqOQ($pkd zWj__ZC@}#UW#*B#wK313@0xjO_`R5xhC#jQDHrjkdxWKntXtv!J^=X@V|@)8SxShB zKe`2aL2NgbvjID4dzXUVWz`6(d*idULoyrYHsi$Y+rm1Ens{e#yYsK4S( zuCu<2)jsRb9bQV$*MPy*BzdU% z*Z*{>31c5>;{8Y@v9nbL!v;8pfvv1=r{Gf7PWl|XiIyx(-(7*kMO7yjkT7m@4g ze-tT_jzM*OpNv5zHH*|_Mrafm*IU@Oj6SaP-WMJCAI%6tDgm5D%Zjd z54IO2ssi-a@!O1JwDJJIOxABngBp2b`g+27tYkKwl7#;=OGIZ}MywgbFxH(o=L7f@ zviu`F9O%il$Zxu^PnVHNCK?vbY{Kmv4@IV>XyghUS056=UmFu4(dLKiqBX?^HI!EQ zuOF=W^hq2k1yr7Rl|5^C*Zhd^WsyFpt&eWzj@c$(>8q1PsLRg}A>(=iNrsJHqB#JY zN=edpdPhAd_lD#yl5D z${)2!=vlt-c-_x^m%h=8+~3AIZjoEdG_rFasb7ffR;m|x_4>6TV`W3%FSegV{;GFB z931Dol`I)q6M7`m|7(fU#l;02x1QyPqp(Se4a3+$r}PHyFUgtTgZ`)%>6f>>klf^B z>z`nG+<*MmbO#<*xwJ4CuJXDhk0@M#Wjaxb90mVqRPX-N=hQjV@5~yIR;4`rz)f zTv&}cCjs`HXs};f<5M2hQN`aCjYaX5^bX|#M!n_ewr9GULdxcSil=UX%WD8GmsbqoNiLLRJNZtIMQ0nC_UdlkF9w?4>vld|l1ZD`BSdX@*dp|CA<&R=T*4@?* z>k=QUkAT63$Xn*CtB4m#lOgA{6H?m2Ddfw^arkJ&D=9PTmPf_AiK<$LFEUYgNU5I< zQ9pP}UWte*nyS(fNRlk|my3^&*X>yrIqV*0?XBl2lNv0Pejrei+Sbs*lR*@RwlT0A<11Y!MN*}f-a>$9Zy}cdj zHkt^m8e#W=O+#E<1)x0gGJzv;dC=J8i-P8}yD#lI+ z_e*6LAJD=AlrS8hcW?$aB3^9Zg9C^~muUMpCjd{txBH#^GB4?hFOf4-|A=3VnZ5p* z#uMGjfJEO>{GeVr23pJnd7tqIh~GN{JtASq1^JF9doXd3X(P6d)txzSqgKF=iq`qs zg~6RxtZ<{1~{EsN@Wz&94deGyAxV)H@a*#a;vD8X8Rs%|Zo24lZgE|>TU*Eq!5~Vq1`EX6csatVB{g?CC#$3Lo zBMBKamYSF8l?rIh`catEdz(9h`yX;Xc=lE?y{H#MD@wGVY|6mLRu?6-DyegLWcZ7I z2AiqoO>42tZ#)2`?jL0p6dbxKUpNX6W5Ab8V!wa?G&5;|wyI)nBI{0TLmx4y)MF0g zv5OB<1WZ5AHplH+v6)LLNT42C`HM%J*EJgVD6G1!hM1B3v1wE%b;^g^2vXgMX+G*~ z!K4kjl`~e6h7>*s)mpx(*O?gpukSM{e@-y8N3%R;$VxVKcNaqqma&}(gU+zD#F?j+ zwNgKODbV|w9B|EE(&%1-$1>jJ#h7`|&w&_8iQ#rP&S~QhVU5(ZOkC&2yg zCf5VKY`joTbYq;sMc$glrl^EYv0?Vp@L_moGpC$%(uiCHq>bklNDm%ZUdlo=(JrUxjg4GLANGSMDqo@HZ{^x zsj%+c^X^=AI(&m*eK6b@``uuQ&?=R_#I zIKbe5ytpK!*tu~?EdtTQc^NiVX!yk6Uk=pYx22lTtnbV(KbCtG_M!xB2nY`VXn`Fg z6GV(+V|H-Z(%DM>jwHcpqDt+fa}TgJ)BMwaFdR6EjX$B`_Oa2`w)JP z%boDi4{x(xTa)Jw+kruYm#lqzP(#}zu)vkk@E(u={D}HZm`2nS)_G6@d(0RF6qRPD zYKK!0sqSCg{y2hKzJB!UsQvRQ&UmszP*Pr9UtRj_znpz_dFJ+ZvWA^}*Dg8BuR^OO z&KbGJVf2xY#r6P~orM&U*WihIHMuEvXKL7n&U%?YfxO77TuyrgH)9?LIJ|y*t@k=) z1ns*k`W^=0@V66nqL|yS(;-m&pG8sCQ+8TeQXNkyWqv)^mg}!7dRe>vqu~4KuqS~+ ztiAv^COguUMRyLp?t9>>XKW6iXSnT>Q&5z79oiHpXJLQ_E`8qjC{kMk@Puhn0haNA zVe&FlEkUbqH*+ajus2}q0GjyoM#LFbaT^!IT*GpgXRTJ?3qRIUu_SsCzYbn$Wsz41~$cb2L1t04UXC3M-n#~E72{l6Kjk%Kw9yu#w* zT|VU>9nP=SQSf3$*Q)qgTIC9q4CO;KRbPvG%dxbBOD%j&yz{~Uy6l|75eN9h6L!RP zZ}X{1U&-ZqNe2R}VBYtbOg8}@+;}f2#C@u;!F6C5c{Hmec0CAt?!*kBMi+2iYRetc zo>MZ<0Ta!u%}KW^1#VTPr_&-`9xQ|@Obzkt2i=9QE0g!qzMS8^!=n?fRjpo&Z2JU7 z8PFHowGyvB;>A_At$?Ws6k~*?Mf(08&=%;IEG>PcDMb7XDn;km^`-{tUMzOdn=H+o zZ9m|ofxw^mnACw#<*5RnZ zPp?DXrt8aXm({se+Se7Dx`r_!R)=@ng`P@Lfaj2T6ki3IQsrwWGlr7Uf81)qf9JQ> z%c9}uHKKAcwhBd&n;xrw*fXaZnNYL_#-3cu&QL32lBYHYN5M(Dlycd%!}r+e+yd%bn#FmzU)e{;|8eqO0vQJ3GrHW2o7Wtwqni z{=VGHyHz%^cMp2++8xalM3SUi)522RH5i{z;ftc(W)nHPTbfTjt}QQ2e2z>$07Xl* z(0jX91wxT+-?&*NE*(~OI6I2Sul(76Tpr58ZjmYXpID?Ey^zqOAEjvZ`Yq-c~n|W2Gfw^OIY;}L@gCcs`$0buD{4OKoSEN8zAZaq!8KHXMB%-KO)WGCPqdsOx zh1J5whS#BJfYGxI{)!48oV17LQx)p^4ni&m>VeG*v)ZV3yRcV*q0`ty$J~TsjGcDe zYdoQ=lB>h!I(d94?Hs}#2Z{u=r0jKZ_S*aeNfq;~EeVh^b*GX$M zVB!0Aq=0SY7y3|8C$uspT0h-a`J>NX4G1@9=%#|UZjd~OlI6*8=;c~>Og7syc6u#8 z=e0Px(yZ2dB|3Y1EwxYTY_ zu*zyQ8sDfDp59KTgkG;J&mM&Ly!?Txc+ebjddpf)*ge~(4|p(uNx#+3jkNQ}%8Ltba+@Tc|93KD;2vwG8r*^@IeEF4WubtX#33rdrv%Op65#5DW#<2Zvs zl+N*5xLPP@1gOi;=@|UF85{9K18Aye+^5oRWu7R^g__kE5wWiyN)@0B&48My%XP8Oj1f>;%#Z!j!RTOO@*X${bGcvV2QSu$B_yb(xR0o@ z7d`sNI{<>`Nn&4h(`#e`LO26&Ax9qNnDEt}W|_hH4@ zt?y$tuab{EPvB?UAq~V3!j442I=| zl0T!QS=T-^j7qdaoNG7UmVf+PMi8=Q-q9_0x+PM@Z5jy4{o97mlA~$A5#dU(zde-& z)lC1M&_?zyQ+v+)sm^bp-AFhs;6IOl4*Gl|tQL6Dl|nNyd3{Y4eJgk1INaK9!*P>} zs3(&T^A;r-?2;V@hOmbug2NAF4@pmyem)n}A(=g%sIaC<6SL3tHw}pA)_y1{*$s%Y zMtkwZ$K^jdWeTbeoF5U8jQK0i$}=lT?*4X4KbU*g<7DK~W#xbDlGtq9&i`~&4oMx* zSo%ZsB#T{d(UVvLlI}AilbY}Z3KA8-McCtP4p-iKG@XR+vf#DPSJmUSs z;k?|Ut|km>77cx8`L?Wm0)Z-)R3X8>k{ zFcrUr3K+FT4_7JjnCEFN>&|;MW*X;hW9|<={F3OB(i$td&Z!m~-9Gn+3Rns>G_~U1 z@Ux(evN*eyO^;_ohUno|PTMla??58GJb1DQDcq%mh~qR<6cRR>&7KQRdrjG$@jF6n zVG2T%=-I5C7PUAbQJIW_7P=7mfe_sEzyKw}*r#>yG&Z@*^clnPMw}Oty`hHMk-+gB`NL2T-;=__JQ5;op{RwM_NOltQOrJfqt>){J ziFyyg8(VQ%uYmcxcgfH5v|J8Wg~y6adgtb-GPi|AB!2zFeDxk}mn7@hq3Usg!WN~Au9fLc!z zN(AUUOKg?h#oQ;A@A|wzGW|F2U7VJArSE!(Y?)D73m2{ck6!c#RzKSIh95a=Lfw|= zPfr1H+-k&RnwhrQ2lq4{|D$QXC*AK$6M4-FX|`y;{ziVCg|F2x;ejb{K9?k{`G(|8 z>=`==q3RP)>+2s_nYJ|i%{%agl5Ow_DYx2J+As>%l|S?Cr^mx9sUlAYM2@30$lvK; zzNpz=#Sv7PB>xr8_12yG{({!ozkT?XVW%w>9Z~Q4wOZWHxOvPTxBppQ!$}*d&jL-> z+`!}Q*XUxSlcquIsqY6%@!G@I9z2QaM|GFF0}XHmXa^w4Bz;bVGPJn4S2iZysF}nH zO;qg)75Bb=wrO2>6Y_}q>aCJfBvYuTc1MAz_;P-LrdbeM_Rt$4>4$Ce?O|)x*(Q~U z{#u-liq+*vzqRE3jdQaS74-4iHrCwKF;*+@eQX&%@?c{2GX1>d8Z)at^NMgs*7T0! zAaKo$H63Sq-%_i;JtarRAdh!KyE9dcEk2gkCW0D8T(CACR!w<1w36G@6ni(a;y=up zvMEYQP5nBxIr&VCpB}|@{Lc;I`eo@`TyRcTG*EuaYxfiQ5_PTQrBr_keH6DiFf^~G ziyLx{_?Ch7fAH|Qqt@RHF%$IJNNgOQ7bOQe)Z&cy_HsR?T;EWRisxwYhv;s%qS0>`cw{jJHE@L83>Lu&n!6URRf- z?>a5uEG5F>LJq{S=P(_4F{ZB)ChTgrS6=c5Cy=g?CU=I zo*(VDMF>8KwQ!apV5*>P_b5NPN(p+>TgFs$M~61^Q=Z@|b8f#zEvFYVO(-=uWa;0L zRzOP49Vnj2ox(0xUT{_KFY`gH?&9TDejBkL!Mf+`75x37heV4OW5{t2t4|IFIW{U= zVCQbcHAQn&GhT$IPp(-MdrXS-3SRO8hP=>ybOe@UeU_>3uD}FP{b*0`Heu{RIv3u2Rt1^Sef6b0LUAo$-9e4gw1dBaE3(na05 zZEtCY7few*sdS8VuI@cdPZ&CX=~QI1y)J-EiaoS2^JnJPcjZhJQvXV1&N4JvX?yd# zza{0kpvjV*O^H#W#Y8lOwnmVq|+tE_zBFfnon<8^Pwj0QZt0pxb^K*?f?`_Bn!$gue&zQruz~OQW>>m29(= z+fLxVWk$*vbUcYC!(&BBN0nCjmy_b{soUQ>)WF3-2{6HfS(L3};Pu+~V;A8IREzmH zqgW-zObju4KQypkY~80|jKq}w4<*@D5$(kGtl3YoYkoJ#@r+9h9&+pa%5K@YHsNO{ z30zBAN{dp+fpNcNjvbY78I28pa4~pGO-gA3s(!1R8%=A|Us53)9$+Rm&Fun7v96EK z6|(CUyQ~@W{;kAa$0h@H(5{ z%&*Spgs5_9nv2-58&Q+y<|Zr%(iy88ZyT6aaPe?ikHEzWJ z=}X?_goc7^5WsrMoZ+4}{^RyXE~C#S70$8ZYVZYGYZ`rqP==z2hZcCnSmQ%4rvMij zpSSP)HQ!8uH>jTIg%AbRpiP!`JJob^6%S>klLjPWrzUo zEu~iC*SYL3k$ktqB8U3=23Bwx??MnraA$QfZT8|nfU9M^kA%d;l=F38y?dRUpP$c6 zhOC2sitl;>uDAl`aS2?k0>xO&ZlG+tcFSyWOlNN8$D3fKC5 z+4j_%J)X_r?6xtzKDGb*ws>J6<1vU>-r#apA>I}BGa5zCmWw?5M!i|@L768)hdfL7am~C|sg+UdG82!E%%^%3W>16Wk?m)1}2xi?U@-t43aA!9;GJ7c3g!EIL zo0;vkGA&{7i=MJe1Su6`q)6?{)ru)_?MWEuOUH+TMkZH#N%X!MoWh&>ymW}Fgb9?E zqm4~CA*)X;uxF79HnjZug%2*-F8y75ZYqKx!p8oJdl=BDnxRiBlRgJr&c5P=0mBh_5`GR27$W z6Vj@K#~ExyRc=xl$BlG^kR^)=7m3T>76-hf$s@}QGaCh}LNwz1$k*6bI0!S?h10M? z+rn{;zNJtqz(e%7&i!6SqBmXiBH7D?y?%RXMpvXq;$@mD^kZT6lNG8`(F>lgZ%szlnuk{F5g#Oy09a$!Pwl$h^d!XYRX!Q z^dm!&;_MIj>l-h{EQclz*F%!5jKW}a2ZZq(GH}KyQ6G!6R1)h1LtHV-ul$|K3H$S& zq;_M1^zK%i_lulzmjG$%S~uR|N9KP)B#XA~8FYe8Im zVgJPgM{g?pHFhTa=L%GjhJ>Xf$CoY9Z(kC>#SPk5!!xG5^$f50(5JcKyJ*EYN2;If zhQvS>8uwW`1_3;4sz3QfZ7;gToy~fR;o-(5UC8p3qqzF5Uii~TiylSJ+U{q9%Rl(0 zG7%zrVIjiEAAeG;4sgo_d(TBbqq9(Fh$(wnyM1iPm~qZeH;6M{w^rTF5G5kwI^g*| zfpoD_1#DXj&Op_095P|D45!FYe%lTiALt5=;c$ului4LB1o0qJTYIgaB#|d_IHVRg z-$`*@h+wJtaWl92t+02+Y2R}1Zl2$Hkp+yP&k@h_b)Eg5Hn5Rau^DAbK}wLkMidPg zr1%?Jr5kVY)zwvbcuqQjNxhNOKuIEB;uSnU;T2WpaUAA6e)ejrd2`>#KX3cI7;{bp zWul`hY}8|$E5)4GOQRD{-<}onR|qxF>^G!h&e4d2J^1B!RcncMs84)-k&D9Z-!pbY0bVaPhSI{qqBcaBbs9}iEn1F~9lg^`7HP7UwzTUP?A^^Shx$oz?%;B*9$)~Z`GQMdc#92;!W37LDE# zXuqP%x~iJGm=legnN)^_g&DA&vQUl^Buril0w0WS!`E$4Eb+0l&75F{s`z%}Q9;uY z7aZor<6D_}Hm9rKDrrr{I^R{&Dh!Q5v8#mB+D;n^z|r{|EP@~(D*z%;%3^C&>J4qD z7>uXlj=ML_YamZs300m>AG=QJ)S3*Szh;v;CR(4?hd~yt)_S(|y$VW{f7{cDSWT8e z^|&mSe5&UMO%Cp+=(L)H{$XKGx%W*}$~qhzLNSZai-{#ht&fv zqKl2*{B!ZP-1dNc;WQA8Rv2p<+BUzvnLzrDO(AR=eGaWx2!IMpzM0Yr0ogceUqLe$oA~?mKkx45kF65-6du>8V#_=;$?iVX2uUHq%be=C8odM54 zdjK|yd3`S?KtOm}M-XveIP(Jr<3HB*SHZY+{tec%^k0Afg9oW#KF6&=f|p923cwCX z`DL^jiZe3!-MuUCoq2*L3o@P#EoK4w1V4g`EzEGQ!l2c-HeOCc;D^%hFx2$_fVKrF zAI$A{#-Q@OK8P2#3#gr*8`$+bQ^4Qf#zLLZ({S*)9C_U!)s;dQb_*u(UoN+WO$bN3<}_E?udUa zYME=r3lD7liPy9c$&f6R7&Vx;*ciXpV!EvlkRMz-kHVq4U?oIXR*`sI)JQinP&1z%DQSkKtS} z1z5CS6)D9G-mXYohSxC9Yg~TqX@_T_(T>ar9|S`Hxd1G8M<6_K@UmLcTty1n)4?;y z{|LZSf$Pny-bkxa=_jl!QO!jlS7Vn`4~%@PUNiY)#mepVI+@O6H||9&x9upm;yPY& z=u|@LpBUd{o-p?$2!u_nLbGaR&?DWerH_ldKlk?lVmQE^8K+K9C07CrDgbG)iYE*L?$RK6 zcw8k2Ec_ef;V^aNI(CZMXxW2v|h{Cg?oT#4ar7l_XMb&>_6dgda0W ziT8pjUjh{s_!z=o(l9Pc&PcA4>S$^>c~-8el|P>xPrSVxUav$Q zpO6&ZOZ8FoyV5tI`CqIlZx;`qTTBx_dd%O9z73dxKCa-o& zor)Upi4h>QjRi02RrUwFO|7DL=Iv_^2N+9Uvsq4{M+)*d+5l4l08k)X=m-KjAgVY1 zpXTR2ms1~>ZPf)S4FZ`T99c6npCgHjS#P+IYI8gjy8`=vddHu4Gl~bP!Y65Me&f*4 zm%~-mj-`XPbj zPvviqi%rPAcLRztGV#Fsi27pP5m>$F@uiqP)5aN}ie}P+9d|BGyo_~g z4U(X{5q=Q_BoJ^~Zac1N6J0)BAA;}>0qD+xAX!f0E2ZEyKmFQ91+AP5pi?gnOX(1; zH967D>p7v-dkP7K#88hlln0>1sp5QrH>o+z%=J+|@-m!4eN%zg`0_zE{sx8`$ku_zcc@5(1h&0>xCr)pGoaTSEl+p+!f^7qP-5mfvHozl>CoRAO>|WbDbAj5WI|J z>LtGTll;twhCT^Co|-^e?wFPT_#Q`0Mp{l~eK3Qr;_FK#mv3P`q?Bz(mTKD$g<@4@ zYsPdTukD15DANMqRbrq@JFVAs3{lR0Z}M)chAShg2&c0ljdbeDRV1l;#%`8h3EJ_V zJ=-+5t&$j3-CD*|`(1-~>i|g!^e3pq`iq!jeSHl;2gCa_#Xuehl|m3WohUL% zv?_Cs`(^T>(fZ{)9+_2eia8GJB#hOd=-H;f%t;l`^k4df!Xs!`J0@Be$~7*Td3#e@+>QaJQxMsczphHuyQ?F9{NvHe+a-LxCCVX)*4-v<-PQ0{DY-c?(=FR1s8%IDypbI zfeISpjdW5{SQG9r5V7K)qrcHzUy9#vzklzfy=U>Ozp8$24NFYWBKn@o(8BzQfQX$) zD?gE4mYA%%Zfnc?=WW#i6f)Gh|2Cn)Y4ge3*v)7py4~RScd3P?4Dzj}Q)>LNRDu&I z-fI|vs#dh9JzrGtS26p}^JR(s7-ZvpvY%Hb#uko&*EzW*%dO<}aUM?eR~Zg05YUI1 zlH@3V<#rgL<{qW%+i|`gR#WpSH4t+PU~+3BoM=*qj{GadonEERtcD~GO1bRzXIK5@ z#&4jbRc*KCTiLW@y_5b4JaPx(w4Fi3M16dy4Swbb^&CzqE?xA{^>6#oZ9C{XO zntq&o`jK{B!%@1zbHQxTuvV>_PtE#KH1j1NtqDg5C$!h0yV_*n9hMpZ-VDwF-_+yU zi*IOX7(O9!o@&Wfx`9pRB}sHTA>d=k7-1&MrAK9dCs-E?PnAu>y;U%GF11Ith#ZJ@ zwkL5@kzif3Wfu{dSl!LGu(u4y@Y@py38UA%?l|q1mGy;QOODm=JLv>GN-f_K$T20^Kx)bEn zBT5iU`r-^6Ch+Rx(hQ-=l^|7IGxk$AEV3T)kLT=q{5NrHR-|>-nx2&*unoOriL05yb)b)yPa`?ll57IZa~pG>59;AAdSs z%AfYK1qoE}j0d7`d|Q92 zG$Z2gO!bgQv?>_HkH5j)9bEW{2Rszy?#nSZR?;%@hAE@OY)iOISr+;Iqv?RZSr+p< zb%acOucj<}ULEQ92EH@X9Z5lN#9@{XG|p$s&(G1wNP?VUSxz2 zd-nEjG2N44=)d)fd3>?lO1bs&EaeFjW#OgSorx^{PAL?`YguB+k?GX5ya{hr|K4f! zc7!+MJSi=7kkE*9PPrdYT~@SZLq z9OFT53VR#h&Eo=5L4~T4#=%tbdT#wYf*}gKKBg`CacxH$k9Xp(pHr;sf6%u$x1i)< z>vT}wzRYI$Ct|N%0&9py9{tu%`qzysc)7EGpkoqxiO4VPrA!B#F8D`Cm zEmu}L94SaydpEB^iVmf;vmtYidsZ1AzEnL>gJh4i&klliea0tejZyigyJ}ti5Ydl7 z{|l9(2bUsiIBIB|K3R7KMJD|qltM5Y)`zcov&8&ADECPzPe^+u5`Nx^N)B}j0TChZ^>zV1Mcx~Pp1+7b(~&uj{QQj8eA0qwGI4OmGD^X?YBJ#Pnk5}Bseac&mqK~2J-B9F55#Ok zZ|{thn^TL^OMr8`Z4Cp}K{UwK9K=ZRqxN3Dvl7mb-!tI!HIwBUMvr-3?09U{dlBe} zQmeW&KlDYS2$q$kbd=UgWSFROz#^mMb|CIZq#p8-E1_YOUUyyh6Ux3P+Wi4j7r;kR z=r~=!=#Y`^R`8Tvn7H;%RiEPMl)k|t$_X*0#@ELwIb$C+Sp%9bX?O5=yr^4BqnAVA zzdsCv{%w?MqdQI0HIJa&sUCYPa`g|CI}@ZgN2@(%Df(h1dPS@A(tZYhI;prQtXYZQ z5$#P6VC%SPGrvdJY#SMWV2=NSXcE%c&DXksP{P$Ahj}cTeDM3t;n@L^JyE&?gN^+# z1Lkz&tzQ17+W!1B0zm;;NaLB%KV0Gfly1pzsQo|R>*dd^QjEFo)$8*ICdsWk53JyUAnM*JIw>IB+Ne zDa#My(XW{G%Gz50QC4LR2)KZ{n?Kcg`^=fgI}%={iSotCr#mEr|36vgd+*zC5R}uW z>$SnD$419(lhu0WK%WvZ72yA z%j6^$-<&f}xT z*Ar{5eP&J|+JRxo0Z~CTUIq>OrHaOj#}~-jW!tGwHcFj}fb8dbE_6=fVG$sXx9DC>bk~$mwQ3MNiv?6AAj|^Gv+h`Yfsb2gUd6FP|tZr#um#2P#bE4CNX6qmJ zJL%4fen@stB2#8m$Ne3mzkQlM7-(oj**5>`AM{#|HdaPkNejDyh8y#AFg(^v-=06kc19=PMpU zKAz1n)+^i7-G9Da1n*+jgh7=vBUjR)EPJt5r^?Z(1mgzdhgi3YiZBUxLzD^wZ`))t z3D$R_DkSdv#i3X@nppTp9R0sd?MPKzZu}`+9)=Qhn0R-s!SIUDU5P>Q8^CiGqNTz-JhxM1yu&NrXtRQ5#V=}g7XH6iZ| zhjj+803VLOe-OV;Y7jOkg|Or53m+e}9xQ3vXc!xEaDo8rKDsJtQ;gxdlw6QsgwxTt zv!#wm{c8(eeFFeTiviISjI~><#wF*)FW|>{Cs}oVzTXSB>;fD;pmPeWDbbZ$U4Y=y z4S2{vZ38wN>ubUQGG*IjEV!iIOM<(2p?G3j0LIPTLVSoezG$*w%S0!dFVAgu+V$W| zc4GIfm3VGSMbGTJ`!7D4p|CwC@qy~gs8z+ag}*^V{mX!@NGH(=6y>_VhV^KH9*Co> z$~EcB-G3t^g5<_=&xq*xDfrYi5wXHr}%N98aMUM)?a3BcCjP z!|Hho4#oKp>xyJe5y(H0r!erBwm+WrM8{VC!ZFPLmrFrBfH?p^KR2l+IvGwKiI`72 zKY$@u7!sd6%c-21kNWB5^zPtiOfaQ0rxd$L7`n~i1yt(4AH61lRpY5JJ=Dt?##~vGg_e zO&0&neqV1{t7n7yIRj1|85T=(O zLlzL|=4brE+{5w&j;Mpn((f};Ml$QgVho_21$6U=hX=rh_;cV=n!K2v>@B& z71+wqy8Dp@9I@Egzfz;+8_QSeaIKd^SNUUip`;f&7#`7gp;}rS0onyvKAM1 zD9Q4q6D<-2Ter;z#Podq37aWR9nXVX5RY#qtaf}4*1Ed!k$+U5&_*G-%yvWRY-ko`15Fg{6MzEw1TXn5J+DyE_pUr`-;*fwIL(Tgh0HDND4 zmVb0tFCvMdsj3XLAgnNa2zm9Cf7nND!m1!ldKYBN;Ip$*fuH4fY(+OO#JuJIR8g23tz9AXP;1rWBd_O z<*nFNFlP1kNyk1z1ZC{$LJ!`{c8BTh+7lWs^qbfMMp!N-R-I(jhxqtnK5ie+TrcL7 z6k)$nEewB3V;NveLW2ictlBGw6Wn;FS5xr>J})QZ~gb zM2>2e?c--aR_{4B?2gNY{cgIdu;VmIahCF@hWBYC*EMY<2)6`ZUQSwX^s%)Evm%}I zQ&7bk+8PInyc}8FNBF&*YS;Tb5*%+<^ z#Hg-a2eJB7K`YS!zDXS$@}13kXPK34>nbADx(xP!AJM>hEUzrRHtlDqGeL@AhG15W z4gL0oe!si@;`=AN=XYUbei@;de+qNxVO^AdpA`e#ZyB zMB1FQmpLsazs)Y*z}M?Q{K^Z}_db^dF|>q)w;J_Dft!3KXNCUcGMB&1o1@ElsyAB&soyJ#etj4l@|l2osuVDKc}FH2S705;OWI;iqZItAe%HwFeL@X=Vq-9-%)|guGq%tzD*N7m3CW(e zf}?k?9%4zudf*tNH>D`@o93Wc^!!;_^%@MCzoBZ2Ai-4`vY2~c-YyWTGnb%_j7KBoz z@{N)*$0yG4u%?la}Sa-S15Dn8ThTYthC0D)dl*GP4CzSxW(c{B2R{ej! zl(7SUBnn;vM)={wA%S)W>44AYP3D7-vx<)@Vu)t>L;-W?`)9NW6=sS*DD7UjWQoH% z@%$}BKsW55Ua!+5bMl>$cjf${PcdHTimjllu{3uZR=;y4!;!1Uk-WjicP>aM)z9HS z`Lk{6Ih5R!DwDFPLR5$&|J9^%+9lcmoS_l+m+FqrOTh<17b&Swpw^oJ>$0s@2Q(d1 z!Y>_pd0maZevCj#+WYRcxH|?rMRB_~idOHx`fzlYFk@DY!c=9y|E4F&cz8hGEkPr* zi1Bt}MSR)^Hs73$HrmQW0Y!l*e`ey-P1DyPp8^B7$>x};&(SAF&I+8jLd|b)-=eMs zZr)iemz5KYV!#ArDkv(j^6|ZL+Ezl*_>iP6wMz4 zp8$X#-RIAKEspTv1yqWiRiX}@>jN4N&uC^9I6hAV^BNJOY8PKZm@QdW3=iicV( zT*qj-@`ORNV*444!DEkzLXVHMa zKxZ`L)G^ERYzsIn`fOe~<|JQ;o%D*yh^Ki`D_QXqI*%Win)+UI7glron)H8uD`oSCoIU~v_$IS%vL@R2ew`m& zVu#ijOETfk<*pR_l&Vo}S0fxY5fP=b**q_6RHqAAYuBvp07J7rSq5m?X6Z$wR2j9D z_z3YZ_lGV7f|a`c)-ss1EPr14Bt`}no56fJ3RO03vlx*`leeM&*w&Q-o~xvFPV2Y! zu+Ai^<{vd0moi6oPR%l1o1tpj(tf_6V2CLEv1T)jG5C9?Ng&QKtq}HOMriC`!-lCQ z8ywDJp6j#hU3^+j71u4;W3c zA=&)lu8-@;KM_S`JLg|cU(yp;+V4EMNArH3qka_+kg7-=mMi*jbnR(`?~8T!uxr=R zcIkO@}NR_pXB2mNrsPG87IIOMUMdiEiMxk4$!ILIRqk@t_4Td+T z6sMWmb3fPn*jAukS4X#BKOGV^T4#J2pU93k$A}xO;0TS}#(FKqk|vnZ#_x7!y$oSM z93YdF{8Z40TIE2{O*ZD$8B9S|Loq65{r%0pc`hG|-^WFkoT3PUHR=<=V2xtdW&~hQ z9o?&!Bl}=wq>hj;fR8(!>Fd8UC6d!{&8+8V7^lMAR;)U#XTY{8WLd%IdxQ_{EK z>uckqan;f%K&Wd_Tpx>t(NR;222*bQ6@)G}c!anfzM8LVB=ak9Uhzlqm$FkaxE7>& zWA=%4JlyjK<{_knOe9FK@v+7JnuWF^N{XCMbnR|?^0^G8Hy@iYT!wBgZjVtEGyO$a zLz^R$%c zUW3*#XNLww*H5*hTp;H&HkE~6?0iJNlun~{*zaz9&J+(Lh=h9xOHGHq4ilE;9sg^^ z_cNBs6cP@JxpB$R|IkkRbxU=+6{l8(khi~X{|THZ`_Z6xR%)*^WGe2q0}eLh(Y3RC zGVS`97MK^qc5|1XxNUr>3GdmDd6<~IA+LPHS3Mnm|G|NHn?_9U_nc%pXYBYMt~--e zpw@KF@}aBMIM-#`wOon%=6Gx_H{5^Qs7ic9d;bw>g)QEB{gjv?^21N)T7GYLE%IjzX za~4C*;8NZqcq_`kjCEA4e-z1m|16c0ggyy;czY>Hp66xiv}kH(Yb)P5DXjK4VY)d25AR;ESv1fhXl<1)K8@ zb#afwLJAiyObeU96e}QBDUW}m2*rw$ob7-E}YW^bxen+ddTQn!cE!=YYb)YV0jnI&~W+*Ba%?&H5HnsDWqfe+dI; z-TK_YX);8M5k?>86v9G>lsO2j%_%=IaQE)-K@oes6e(rtk@sfqT2-Y;$Y{4X7tiF* zTBq$ic~9GNci6~gDFknNh(BafWZKHB;=7e#88tE9udnlpqfw6$Vj(AW=SrlxjmEg3ymu`YZ&DrF zZ6hH6kyhljfnVc?IWf*TxI@HSRopa`Dp)=iovTr{9r*sM(UI1;pC7J~{5~&Z%N-uU zVOH>vh!ih0WWCQl#s*q)dL<$Gz?rRsCHNta^;;sGbX+kMqXd@2DO4=;=AABEA{PF} zjhb^YSyA(*QS0yzO(rh_lZ$)zMSe|NfjTY9GNCnF>`)3|Pk7>gdWT{@jUvtuhPb5> zY%Ex{{*qRby(&?=y1l72I$$mQ8Pt`7O1(Jw3H34}7q>W;ybepRixIJ)c_5O;sLZB6Mxh{beip>7LboO%;& z*O91EC{{5${Ju&kNipj%0Bg1f(~G# zVMTwrH}sZeJoUZhs*3|&i(CPrh>Q&K6G>+idkiweHcK_lHfPd+02u+2TH ze8Y)968&8|cFn#GTGv^-4QVlDZt*55h&6`z?UfYUBR54=>+9-ZN1Lo=vQhkX*#0m2 zq&a-^`FZdDL#CFBfD4Sr0dIwB#CuQ6p24!?h`{zu)eWW447bHE8|P~7GjD^9#E5OUT|exz#DzUqqdgXj zjqO*OOUXJ{C~j^~~eE@+j9L#PCY@7$hd+$a!hElS#e?3t3Pdxu&S;$qv9}!w ztkP9wusz=v?-L8jcpL>ElhBU()LM1h$XXScb@0XZ)NGG9d`?+dSh%`sJnFn8Fl%#0 zL#?20dJ>uOJfOiW?sy}%G0U?#TlM}O%*qNHy&kLm6503v5WdS(Y9C@MB*SZc`c9n% z#TBFG%X5v^;qGqzeMHc(Lk)gp@c1C-V>{gZ{ZwVCLxMsSGy{BB~e6FY%TQ-oF9SKYfT^-|Rz6pzd zG!jk`N>wn@U(cKIm8ElzLl?s-beHkGDEr#j0=SIcN;WPwot;1xll&Pbhr2=>H4QCQ-k~zg=O$oyJTsB7z$JlW| zZ%*nLcn?GnmZH-$d4;MKg_%IbG|nbvq?H|FYvYWQ%L&SqDg^{deno!TZpyhTI?t&e zK*$02Q;;GDBlDu!toB~`V?=bR7#j2bkj?m>kad;VQDOd$`E++}6H)l>Ksf#4t}kA> zhSxr|uS8V;lX4EO<*azPXsIq_tF@H;UQjTdu%YL>bw#K}x~tsdQAxS|AFxuu4QjYMZrXX-cUwckaKt`!=WgciYe25V4s-7dgn zt!Xp%gvevMgYG~7LKUcAOZb-v$F7fn5&4Dxm>bLvX6szbV|LcPrw58;|YSF-xmC@R2AI_ofP zxFW3VW1e_K{!K2;gX!9@SLcpqyYduTtavBh)6*;4{pXK5@&m4A=LXtd4)JFvtkuew zFxQ%lle@L}I&>5Jb8F3ibCu9+;VL)%C2$A7=1KxA42a;g_B)?EkQI!7+P-|KT=QG) zrR9l&5yYT_1&BT{-xKqD*a1NqCj&;-u|8f$O7>F&%7y@^ZyK#xkne`ayAOxKy}eZT4OWoX#MY&uw90(Xn95{o?09{8H7K{f4FOzy22~ zX(&PO-AoYjcbRtsegFgA%gYWL!}MyB4RD8`I8+Rvb7QXPp^tR`C$I*czo}L@VIlBb`-|Upd@3!I0(JQQ?w5J3tn&eE*OWNWYGkp; zYD&|;v4^RbbE;ciYAK0ZIVZ+3>9SFp1jq$Xn*P^LLe>_M;P?2&9G$egQQW=HKeg%$3zWpNPh z=nJ-??xCvMdnKe)Q;JhfwmsNDG(S0)z0Xx?m`O&^+PAcwphF9Mi;TJrj7&*7|K>P8 z$Y&RpHzVG?QGD6=E10z|EIwQ&UKw&&7H8?IHgVSZ4DUVkk^EgIq&l=x@+D?-veEZV z<>_W~md{@#b#7!tLYK<>Sp(7A>$f^4G2P!?%aR)L8u11NN~X`3i2<1C{AhIad?78Z zihFkla?6VPLU(o=P)yps8GFwoFz+W%=^yyk^7R|mjw7w|2dwWBF!7*JUHg56vTUH; z5NY3nuj;UK!QF@itO;Nu&tM1-`cs{KIkcOYgHRccI{dz);;DY98F@$0vH6>~a%8Xa zb9DPAVgJjHU1}80b9)g#&&Xn%5;^!@eZmusU#E=gmL8wjApRS+{41o>^RiIrP2ZRg zGrV%e>~#C3B25aK6A29&6+HQBTVCxSJtkOAaYAp&>dT z7Xaoiiv1!_Uy4P7^}kWaS~coe3T)F?i%Wj-s3HmZcfuNZ!lUDd$1Ag_y5@UUW-xVm z$)s`S*0{`bh$jNh2aeOG!^#f1_^rRo%gajdWiKLlWkWZqvEHXM;L00F9vl)3v-I1q zR}Xyuh#SxYbBu@3UtoAYo~h@#BtjdFQQL3Fld<_*&-wA#dlNwoR8J83`0;9c?=nk{DRqD>(FRw#bkDa=1B{3jy+j^(Jx?TI>5 zf3W|@$VYNKTs~}*Jvz(xp}qb{a^=k%$a?cV_?aobc$G$7_jc|7JQYt@d)ljfGA9+8 z&}Sn30Z%@1(_Juj(;`t70|o%b!kh&1^SOWgJTcv$uO4BIZ|A1P^%Tao+sfjaeuPvc^+>%6}! zdk#jb3};)`#)hhVVishk&d`#y)Y8*Tk89Ux!aYar{>Cn8T6}=s?Zp?h$#N{Lk

2 zsxZCRDbl~Rp7Ljm<`T%p(x`G{()Hn!)_p7z(9~oyNG}E@m){#|Rex)rv1J$HmLgZ1q@3OlFRu*# zx_%ju{Q~!(QNbT|UL2Y&302t6p0aXJ&`;_UeX|A2ky~_B5F=jLM4%z~h!`;S6PL<8 zh^uHv$C-wv1RZ_bJ)}V`gxys)zW2B9FT_mWLI+EN?f){U?(U^3{?q-srF?s975zfE zQeCB{evnS&ui3ezyl;Xzu&;xEueyLku6Lq5i3k zg&Sb_qygLjKvxxgO|2U-DPFq4g3M@(DA-hyzP3s+|azl_*ntrA)`Wq z)Q9Z74EOJbTbb_lV=@+)oBy#TPO2chRWhcfYJ}j5x*QXElF0vOSCAOora!({rcPh3 z)fC?jfjFH)(>njTucyDp%QF91_w%Ok+Sg8YCqCO>)-#iz2>Nzzf_P4GW21y))l=BV^8hc^f(#BC}EgD1r zwAZaGu5&1q>H7E#9$SJarrypYB>d0=cfzG`leZh>p+S_Ax5kTyV<5JA`QZ5)RpOdZ z6Vhw(_ipue_~jl9Tbbf}Sr9a!bCc+z2geD;fe{qXNQAGgrW+70lDtxmtKaE8fG7asn{ zYVLmGlzQIr-uk4k?2DL8_HQS|S%Fw=wC?(spn%04o^Af*18Rx6riWy@1rb(z#itiz zE^?}M)Cxkgt;reKEI{`nQYO7266XmpFHeg_<){v5_ho*G$TqY*)`^Cun>c}b=T1&& zLajrTe7f9qAkVz>vFbKE>~Xn;hUSCC_@i$tiD;*$11ysL>%MepWZMw{x6TdyDz`#R z@&29-w+6V!D2MrYs@IU96DTWt#lyOy5SXb|&vTIl`1x8aWy>6-`rOn*4c? zDv8mPyq&c2rg68KPM|b*%<3(*<(1-Y5GX^wdI+`T6aG3aI}{6_s2I~>5#z_qJsM0{ z`rn-Qy4313N{5V@AuFCZmRNS&BTFJ2S8V>2&Vr0+jrTJ@x02%dXzc`~_+Q*VmY8f( zk@L`%yjou9b5{o_IO!Z20pz83TxO2O*#2>VMnz{`@4H;Phy2FJ7SefrRi*7^-qxXf z!Laj;B7trcw-R!8+17Cu^(TdCvuh3V#hiu))M+kC%KO*$+g9DPx`;cwPW;8Y9zSV~ zFFK(^x$We-XiQW|Ti8-H7e)yPKA60tk7D?}JH+hG6xwlhbsdD9?$(xIT>)PZ{LVyi zm*{lN8CqK{sX+(PL*UHD{Tas5+)DM(L@&|ai=WFk0olDSA@OMD(==V!A0pekJ!y|q zmS+wr?k{zI^F`+7|C|QqZb$~|`>Q7T1r*+$`F~kzbiDe@2JDu;UluORUesDv=BjQX ztzXpqFSU(o`C#-mkVNM({@#td)j)(!`x)T)Hah&DvV~x@c<(2K^)_mhR)#wdxSqDF zp8YII1V3^_f(vaN=Q-qM>)GSGnWpa=g6}w=n~&~^*MDXeKVg)$T8NIma;K{&;OG{Z zsvt)cv__}k4+IOLo{qQ+Hc)-&o^z*O+Kk)&^*-$V$PX;pC~P`8TV~4NTti=7c_uA$ z0!qc8|I_v|+rF7=$>#7|_F8K>H8W@Wi0e<<5netzeBI_XVfO-QU(*G7p`%GHtx*#H zO@MVYr`X97#jtC$r0^m=tv@XBRHLm`rPwN|D&C=ig@r$S%geyTdaVBL# z49^!V+z&jCUVTn7Sj>*^=eC;58dyi$F;G3YEJ*SP9md>k_opC`?y_c`@CcD|6 z*`t=!!S?e^4sqJm^8E)+?2OJ5kPKcovi%Q+4z53X`kDRBpnL#3!*@$2HYqTjYC`xC zb!kb!Kyl_u-s}G;I?I5lwkQfy5;BBzhajP(beDp3N~cISLr8Z>OE*YL%h2834blu< zLpRL3kKg>6d(S;*pS{-pme+}q11~v_D`FoVf8@Xt+T9s;E`_N`T98nz*>ju?Xz%4p z`R~p2$QRnsUw$2%WyoZH9#<(iKO2bEAP-NM<)U!!^9ycFa&m8IEF8#9$lybal-4B} z=<)2JZ)IwF1-sQsRHM){+M8~H;f0#8;i;YBX~-urroBoeiNp(5ucT|Kl*dIeB^`o} z%7xY%yn;Y7qckYjCB9SdG-_x_R}==7CIcefj~5HyP}6~VRk=W3rsel}&HOa~BBeav z;n6CbgPYYZ%knVzo$us!OeIV~BO@c3!XAO{>upbjrlW$6C$a^Pv6%E%cjY%2qcwdi zD>!lVIflM30!q)5#2@s0(SASAe!80IaQJvZeS87~2NZlaF$vh&F>^`g+`k=q9V8nc z?AxI{6q-pi%7J6b!BtbkO&*;|kau?h|7JS0kU+l3t6(H)gw zMvCNU>*YtEV|=TKi4_twTkNuPYo^m5o;cs_mi5!v@vMEw1kN5baF^-jJ^AZu!K=7*uzUJ{&Z#g%GM-TYf~fiz~L_wTp7(Y=6^{F60rP@)F`l<>%SF zF#!(c>mi%A&_g5h^S#8bdZfNlEt~rvk$Q=V8QgcH6{L$G?j zW#uhdZlg6!kHM}z1tug2PHa$P=mz_b^#IvE@0r`G1@a zQ^t$5G~^bY;Vv}%gQ)n!e>2(0YWv-Y(mi;t0hq&#F-=svFnl z*imFmXp@(?)%(+RJW~Mc47_UZaIPwc0M3DVt%PjKe0=qzHy@gN-JzYZ#W?PFj>dnH zrku}WLvg6*h@nyaBBx`j*b#L2f&)bn2C^xK5;FNcoPVSi7Zrs=`E#(Z9uuc6zp^!2 zUzJOX56ViKn_I|YN`&)Ae2M(onIMU-^!}|fS%|t5LM-?rr^4Ka;8bZFA|m431vtK+ zn4)?CE`OyE(S6ypk;HG_M29!?p}*jNuU<_0BlBU@S;dF@9?l>GO1|a#u@ZI0v~+94 zC+e2f?5Dr=7xcr3_w-R-)9NC5OIbA=9Rlsm!zJu5og^*F9s#!w4<)qE3nstdPTX?< zvfU!vGXj9@{r($vIT^1)z2Gs0JT8F8Sdswdi=w8k3i4SGwQF!os#iD2%iv zRcS!YOD4?nn0d@IIy&kIzzl+M;U1jhFDjwW^#8hJMUd~}l&6tj9BSGJ4v399?YKV> z8=M|JXze{GxGsiOJmLu90?DD}6%|-QyEZm9Qq08?xZBQJpVQOnhvH=alyYkG6nXwn zf*7O}r`6K5Lr-Vq2rVP4V^TY{cIakBSDB8$zxz7@&Asw-v$tO#c1U}OO`_Jtc_fmm zTYqcwp1DzOsV*rgi8F8x#}jsIfrzt*Qi>%p0^tYmf-o^L5#VMG%a@|%20nT6{%9gi zVf)tEHHA-+GASu(LQdaUPRMfZspo(CGG&P5&_dt*;L?TLuNv@NIBVaAIh2 zqlH1%@oQ`f3BZ?^=!0H}5*)kyR1N1`zjNu5$d(OMl0R3_hz||>_L~kOT%l06a~2&Z z#ztCz1co9$mcFjU3#<))Fd@Ms*eC~RoW>kLB1!TR68%jhBjX&z*&EM{5*_dTNGza6 zrg0Tl+dWPovWv#3=?M4x`g>3J!_o6W7*93oF=L14_)PNA9;-uRF4OYc zxW-oQRx+iJ?sTJw4WL!}=v?>gLCL>}qJOLJP0abx!$i&1vhb1r?% zW2i`vT9pj<&*3A(c@qh;&#>FSERl6}JpQye-Wq?}KB;~hLgz}JR(ir-a7|0g8f#d> z-hU-*&%~B=8*_BpV(wd!%(o>+)f*PfPkr-;_h_q|bN=YsXTPKRr_=#|M4}NPHVp{r z;aL%tFCaZZc%2$UnCO@A zhyIXVL`fz!IkGVZ-wIxW@F>iK3&xQC54Zb_HjcC?_ESF;Kg^y`Yv2~@KBf>H3620c zi(%`(_qM&-!C!i z9(J5)yXCuV84Z4aV-A{_yeFH!LzpOXItRo0ZOOvXcPqhRr1ue@Vhdk#29Zh&6|R4? zU=GxWaa%q}eSg~%uFHKQw|_Z1JKL^c_XGC2SVu5MjrEUanF;e}AXdr7CNe9Fax&cl zI5DJT;MEIN1OUe7#key|$Q_-LsHoowF(JSz(>-rg0gzBqv$GNJmh2n$L}LWu_=qSU zaY(QGf|Q3NvvIkJi24yo9{FmptL~}y24Sir2osls@!$DldHXj!4GkZaK3xQXhU)Er zjo0b5u?h#tcD(hg#(k$mqy)=WNQ!eD;*WN*{@|xSXL&-t1O9vqq)Lt6-9nMKwWS3; zc#|N2x2+#ie%bkyk1|xs^<(91V?Y+;BVrPMJ**SJBtTkQGnG+>tG}tf_SSY(nY*ibjVew_(@tAR zp@b9)?UYHCQ;>5_`6ULDvTmO^JUslJ^^mFD7uEOz96y!4oXKXKbJkeQJrmhN0{~Ew zBUw>+{z_X8;Fu^?EkL_NFngU^t7!Rku%plz1iljyApzhgxq_XC{7Q1cO(MR2$1FUq_HY2i z4^~a9!bBhhEjTgQgnyRGdlD;A&Dqw6vVy0+K{Lbo0aQIQ(1vb+DrOD(6a85j-xgLHn?NK`v`oN1uKE?o~T$=zEum7>~ zB3zfBvf82i|9ds7{7!5DP<0b{?T1GOp%8VdAmFoUA#{!37RBFO#S+v~YJPp11{q-#o4`rSvDrBeQQuGz${T zsl`NR(>~~gm*bSs2-^;REhxukB`y2lL?VP^&xc+j}0AQvq01~j}Z2m2U_1(^b z&-#EXWh2h}v;1sSZRP1Z>dpBt!JYPs(S-PDank-5cS#R01`mjCJMZ zV?-MIXvsV=QvXAm>|-g!3qbrjB*lD95u9qfF|C+eII`gj=on(XNlX#iC~t@vx& zxOT1cqDLe9uO&MYDKxTpY=*7ju*V*(hVyLG{@jj%Ya0jW&69QWzqe>V4krHt;e8^FCT}~rQcHrbf-qK9R2#F2l6C8Uh&ExUw|X>tv~y`JukLW@OjPrF_^%` zOJv%4y*<#}E7hBHmqM8;i9<+y_D$Bwsn=40Br zcE{FtrXQ=Eiz&~t7S?)P;S^piZ}Q@Pd8!=xO`7^T{mNQh-Mmn!BZvPX^)D%aTcrnb zO7UNs7@X<0iFPAv6d~g5SiZmZ`#I&83f3sZ{7{2F0s->OOeHC)U2C+M`+fq3nUm{< zCYSTK^78We@qHR^g3SYq9fkL|gY!XDJn>>bAK=ye2$$$3L&!$^?dX1gWqc;vfD3^4 zb(xWwr@47fu~I_#(Zc$cjnVTm?hDxfv3+$t%7_e{;APgLx($jx_x@CyI?K+)Wl-g< z?jpLX)E`u}Ij5ruV=tS#Yv^o7M~@K9aOin_F(BgjI$k^QcRGj%dOrW#E9KXeq zg(2k4ngfM{AsZI^D|>AMk+SxhSmsT%dBQ)RJh+KcE(>x| zaWVB{DlABth!`NhXZ*jVdOvXG^gFHic!3^o$)u%PyxHkrHGX{vF2xclr@Q;ahbU&u zoco*JQ+Qt`+G`rk>^H3KmMVqKV9V$!<)zT)`lY|0-1~YCPG>1e^AO1& zO^gc(kZl;ubDtcdRB*$|Ite&6RX`#Mb`+ogWsPlBMRQ{M#fxxRY^*z7Cfz41?cpn% zkyirE9fod&cUmZh;Y%1`cT;TB%m+y4{dzhR71BM^#%1Ak$mHOpLEX#e&40(wf*Zgj z3ji695y<`JSk&n7K+TAeHqSz^7!yWGefaG`C6a7JpZlaM|78zlSRe?Zm1gMuX5e1|b$!#)LOyFJ&Kc9pnNmZG zLssKMyC9ng6Zs$K=M>ZxOJ3?PeXNCma_)4rJNAqJ(B}cy{O!n>*VD5l2M1w%wXcl= zm<^YK>P2)qF18efB%gvfaHsHH9@GDL#> z6rJDMjUl8s->uS1N&{lOR2W3rvU=|vBJ;wR-A^4Kt`4eeo!s|`I?Q`z}S_dA!sY2A0k3xNz5-c}?oavUC#Ut?F?8q$n z`r9K41=I^BY+y{kRb9hmfK@_5N)3nP{d?taudtC36cv@la0T^Vd)3`TsK@xYrW>d*Ol>ZIA4q-630 zf*l{n(PMO8$Bt~|q$157`+OA)y$}aHJl!1Iqw307 ze)q(09d42+0NY&1WU8(IB(lPM z&v(kdsOZ(9dO}>%hB|~utg`G>MfoRVLQ_RXU1g{m~^oGy5oVoL!{99fm zbP&og^Rmwk%VU({@p1p$Dt%O<=m8kd=K3FDW%wJ5>#w5zzik(L3HI_ozMMb*T*G=l}%>==SmoV;S+qSoD&dsf8`!bs{)?R`qWGzEbgRUWU*3 zW8FtnC8Uk^yUD}cN+ev1~c1+Cg!s?En`}O2XHs9Oc zZ`X1*342tVXbFZxK#Rm}3>*mabTqG%)c!aAv-SUSiZ>=aZh-`1GS&RN;89b3@F57Q z@O5B*(qa9Y?egFkcb*czp-V12VG2}6z)2ry%#j&iV8z>S%0G;7QRBHcZUCg`b;1F| zMm$c2M5J;$@(&PQ1YZxwQyMVZ9KfXkr0X7kO!a%?0!W8yL^>!bK61fabc4aP4GTyPwijb^GPx7ER7c~s;E(O&+m%bwaaC< zQh^tLAa~kxkVeYO$M>@vSBHc_5`?wlWMI2YMdsTCF?b#8O(Qw}%_UjWcR=RNGY;=d z6wAoEvZ69!*A7+o9#*uNJAzdqXDU2q%x0kxyvNp`>W8_wiGOuBDDVGxcM+*d0`c0z zF0)X|uVcPisEGinvyEk%K^&2gXd#>Ijh;ZlpKs3fH4yw>yL|iOHp_4DASpOa(>_;H z(F9`PQlG_l{vKf3aG?KQ2wLT}g>}tW=FX^tkRrL&NkGZNXRC=N=KU+&qe?w1+}z|F zLX%xg zlkH~G(>>{>)Z{pML_}7i!!o&YZ4;UgdJ^+Gd9JSdmL=22mA#^NS^IXehO?hu)i&Jpa zdWA2$(fxdTW4|V8K`J@e9h6>O2?mPkPw2aa)w|OzDS#XKo0}U^1&`isB^?CIyr}b1 z?!Ft8aAM-(x42V91~()>we1=cif_^53A7CX#(IcibAHe1N}BGw@-DUCvXQ&9JGnpd zMsoSgYl22DIk;Y3r%Qx~hs>L?tq70hF2dX?86CQpcw>&X2;K|Nt)9!y8p~q!e~n>Cq8RCY<_v)XwYE+;wVa3=-47c3%69PN4C7YES2qV-P0h5(Rg_yWZQbr;OTKMhH6h; z(0?Ui?RnXjj40fTe|p69ptnp;4tI6{C(IAO?hmgfJ>q|y*ysCTMgn?!y4ExTuv8r> zGFaprJ)n554&wQmv-`k2co&Lsyvg>&v~b_LT~CFO<4#eJy==ArlZ_c* zj@_x#%?8`yF(M2Id#21qiFm5oZ7e>c|yndC?C|4$8|wiMZg?i2N}@ zN6lA{K5p)AsTnzbOvnWv>sf$`y<;PP5M?;VkLNB*?WvX7N{Dw#Y0wy#U~FOqkt6{> z&9>u~%Hd^N>>Jd^C`|VRo?+11*!0-P{!xhUF+kc^xzzH?>=ihFOrR$XdQRq8zNk>Rb^ZGD&td^4=EE@!I)LpR z4EvYEUWdC7LqYn2&HOHVZzpm0a}8GvH1k0pyZ;0JLOD}yc}a(9KC=XkOQGV0pugr zH`vEZFO)oPXy4-#Ab~uON8eekovg1V)uPGpUydrDPmhR2*@<}<)Y_#e`|ZjI+&&q7 zb8rkEvy*T@&@E;eGc+>+s@^uLHv0@icZ)>|Ow5-~+MR_@lt5}4GfC*h8#5|{&<8}P zD1*TtUt3;eB?@#(cV~~TW$d3Qe`ptc2TF{jxw)t8kxVQrPjl1}NN80_!7SVLlkhsD zqIzX3{N?Y@#t8({-;_0yuUj=9vGVunqF##do@EaF1lHs~YE3UmrESNdz|+e zhTiwej?ae+i}vegB|^q-!y8_9F|6(5O76dW9mr@e5& zfZ}yxDEva|=qyCfjtmS%yVRB891h;kIQutf!EgB88W}37&n$ zwBlK<%?6x82gOVk#z7RHJuW#EX(KKy)sGh^CMIfHT7*zgN+i`e6lYAXasY3=j^mkF zvO*QptN*)=fObGO2}pZwhOs9V6~B7`a>Sjxyng5WJdp_rq_K4raJj}M7L-zR(7(Y7 z^gg~Jfuw|S`EqGKrs#C?_cm<*9R2bjvi8(xMBfY!Gj>lYSS?H|;1_2=;f>o_iY}*m z%;2+k+S)#UyqU`Wz6YmsLZGJMItw60Y?REMPK-3V=XqMv8TY*(Fh;`GeRq8zR$b)RT z2|Pu*IWjgt%NE5X)dr0pyB(ImfKhLTMJ}PIr$;Xv_})-m=hnvbe=0;aY^Kf4u5sOH zehLV1fdTD7YZg{kksC|8;LdAdqLk#&Eyl_ti0>1BKS_NFuLWbI8`kRyWcNPLtxD2_3v~^QgLd?K?ZonA#WhdUnH4 zr^hN>p~+NPPM?(?@nen^G^^HoxM!#f&tHBzBT%0W&G~!i=rdD)`A50-06a_iZ`t=; zeyH!iG*B=l289&NHVLxaQ#B=qavW~T2gTj);Y^anEBrnd(5+~~dHzSd8#|dQI7IU# z=v4mGc5#Wz<&kLYKmfS-;}38~ds2=-_OBlsvt`;0CrTRYq^%Sw25eVb_ynUu5OrR0 zjp+x-u+A0CttRxjCPb8>n}panW?D_xc`?hzFcU_N%Q!h9uZdNIJ!(%C zNb5Ya{^!Ft)_#hoKR!9dHi1aQa7_?eWhll_hzuXEtjJ6Yml?7zTwZhlLo_!xyh1`k zC_!B+bW^Sd0CN!V9sug;20;}cI?_WBA~53#+*eJIWDZyF9r0rWGAZ!QOxe~^$wOg5 zBugri0DsrawQib!gb^dzY-dN8_J#EG8{oDA%<=)<=o2?`Q_w`V7+gCKE)gn5kwf+G zSbl)a@2ktYF)l970}7wR25FFBFY5LnCkxW`VUyfUq8^{aj3qCX{Mqv-MMTlgglm6r z-abkU8vzsI40`&rsGdW6*RocXBUEoax2ZN*OeE;UV_yL*r9Da|poYMMV3qI=(&&_6 z<}W@dIP7w+Z#m1gxJ(avjP0#+U+i%b0h$bfS-dC@^f>~LI)~TH1sVVbi{NwZ>-@E) zHLBN+$EU}CU14i+NeziT>1kPohKX1^p(aDCutnZ$>7e;p0^rkXnf88cq$nGCi#wOo=Y*{!0l{Wc3w-%ag` zG;6K(Fz?E3`GeUIlaL#e{rk7UDBK;$0^hKB%Df~7NUV;p~5&!jToD>Ms7n@L1$ePJz2%uEo|HlQ)H5iYOadiHgf zIA*iC?lIm>bpK6=NYvDEoe9_?^xz)0w|H(5XZ;<$-Yx;CHW3r^a_jB5_{79kh|e%j z+e-suq5S2Q71jD2CrXF(zAK@Ai+f=lyGZ2(M8EtT9AYa@?0`KIK>Y#B;rxng!h2(P zCkW){9HG&d62*Q~fPdY=0HSkqST6!^+Qny4X6m!Qrh9L(x*~>5VitLUJa?0G$FPwv zyao8sF}&ZTx`vQQF(g?C;D>4?;(JSBS*Clt^C_vnEm@3|ym5024@8Wy+4NKt^m2=t zl>^VNqnp_{4}4?YSfn&B<{kn2u(drmXd8<5926UN)wlVex=upICBhuM9tBl1oh+6a zYsAJd*`JwaW+I{AiTlQ=L8#&1Jbx$V@$h`E&?JvR*+Jww>(THLI~_17xlx&g-02T} zm^`|+B<}YEE?s~=s=u(4q-AJwh#d7oHGVd5PWLqvPXEuvyFtwF==2ogx=DGn<{Ozl zwTOf6W}UcM=>rP5?s|7L;HE82{jc+2=*lQ!Yltv32k8wkMA08dSfXW3gUAusX$4uu z_@WjKot6EV!xTzS{>x*VUXsjI4VO3BJzW_ zx24rpv&%IRUQDP~avyQ~*(*&=O)4v={oK!go}QVUW7EA7;x1}81X+IXJZ6dC3wZ{G zmn}GeTPPEBMD0yBkZ_Cgwm$Szil47vR%jX3om$|;>fPVsry!;V*}NmRl$o(cpbaXgOs?nDP5epYZel9k~1`M@TIK-Rs)qAua^0FLt;={%sQ7 zJFDoM*MGMN@;?82#>!(FV{ZGXBIVgeQXz!?F?g_~O&2T9JV=jkZKro=f+ko}E}HWK z!JzwDiRSfV>-mENq|qfXMf4ildNv))A=DCxODJcPMLW9>X{i)?dtV-Btt1!;!(deD zx=O*W(4c)!?k9l@EZ4>5RWl2Vu(nkLz_;W9ELd#=10Q26uvpJ}$0(S;lhH4Ss&QZa z+1mlv$;Kkq=y~^DYl#P0&4-nkD#+ISo1`8V><@_2`JFn>!s2izp4ASa0S2!fjiw;9k*hbVn;15fo$ZvLcrS?8N+}v(Q$@k zF_CR%ZGG4dJ`Wlc3|nwP8um&(j|GVd5uB;dKdEL;Vj}rIXAs|?G*p4TeWI0fM91B$ z)+C$Qe#McfW*4>=e=kK_J^p~W8)&DxOj`0Y`}`s`{ywyR_y|lIhyv3 z$38nofSHq7QMag}1=@7niSJ-!am)-BUHf&>K$1~QXU9X&`Yz_gF->7ty>trqjKH}C z?zThFB*)+bN)T1$G70aNw8E!vM$$B9_62qSxU0NxCI}5)^!IE3agRb!0J&b&-%h88 zwS#*k^tcOXz{yeWqlj8z|2`~t`Rv3bCy{b*O*#&GDaO=g8Po2ko+zl4L@N|6{k5h>RCBnsccX&X35GBngo)G$V@75dwR zmDL5>6MLrPxA#FGEip%gj*HU;vpgU{HoC#71wLfYMp0%coho;9Z0JHWfhaTeCqDGF zUk$pHy9XVN@XNkjmPLwG9_@DLy=oPB{{z>$T}&VK!8o*vn&f;S+EBT50{iJ%Le2Q8^&?@}PJ1&koYYS`>7{AubCdtB$Q-22r9QSolMMO{{J5 zemZ3|pX`#+kXYQCgMAJuCK0Q%bb$b$@{*zn4Fb{q>ZZVBOgg4tHKyr~!^Jbkx7OU7 zB6^7=c6H%FWN!ZB(m7$_l&$7E$z!}~bvx&=`;mJkl_SuNkMG5%fqvL4B&iO(-C38) zqR#Y{tX*)DbldT}ffY$i3Yz(sY^xJ6$PjV&Cp47?-8oLVddcE-bJZbCy%4vHk%jyZ z@3S0qB4WxsDT)6*ZfqUW>=jME-z>MEccjD9vxHe^T#G~TnArWpvVPNo3Ewog4c0h? z&hBwF;k3f#t>LqvY)8-9F2npdrFqZI9~&czeok`Se9+hEmq+G}95qm-=o3hJ7g`ZJ zgGe#E#D_D5%=7~1KHD>(4OK2EhmV|g;Cl3iP4RPls5I`il+`AY;=&m8w2Nn=!AA0Z ztZVSNxe~O9Wd*zVCS&r!9M6YY7T8yImltBrf-Kgdk;QzC4P{N9_@{NT7e0V|diTOD zt48K0ot(tIu#}2VGIjv&p%w_T?wO3@+*c^NtUUT36nwJW0AvKvpr2tLo|K*%G5<9I z&}LzxvUJ_=8;jJGN46eFoULod4_Majf}QRk_6JP$x<9vcI{gtbKV69u~{t^H?{oC=bGLUevP8$Zzc`3F;Gn? z<@bm7Eed(C^uuLO5Ggc>6x`r^wQd3INv8hJttm$0oVx-cxFjHHVrS#G%FkhkJ|V>w z1BkV^i%U!W@l8{$H>>ikI+yp;mwR{Z#mdg#Tz|P&u54`0z4P59w|P1}N=Zv{S7|fI zhR-TPAf7}OBNg45@vST72_N0j&3GNPJsh>Ab6s^%qe%Rd)Bt7Ed1si=^I0^y3mD=7 z=d?$G!!ATkO6rzj^)g5hyH@xGC zN+%8e0a0_wipPVikm47XjDKGS;xYHG%bsA08~HJl1i`=$9%@3KyA!@O6JO7Wy_l-A zdkbao?%+q*YSVz1R;<(Y8c%u~R*@HLjGHM@qWaJMuXGcy6$3wVseEQ|?6?r8&?ZYv z+>JXL7mAVUSjb;K*jT&?7hS1$id;oB9d*<@%a8B(B>;&NqHq_P(R`wM#>~T6hFtLM zbXQZ^-+5Ad!v1o@X@aO@@9yW<`&SLtnmr@=D%Z^T1_ulJMpuL_Vk(?nJOb$Fo?ea| zXkD^x+}s)tYK1@#BHkDix`>9e6KN46TzXmhY0nl0MET+yGLa<< z%3e^j0k8eqW=Y*=!ykwA@|ZQ5+BzG<(S&OqPEqSkWR8V!vb_ajkAqpVOLeSZCQAQ5 zBp$phI2Xsp!d(1~CQR5}c;fl002vh8dO0rSB1l>OO>FH_cy^W`d+$whNsU_11vG*C zEky>3#=CY*v|mLBDl}$*OI12w6~PUHac$A2Onl+kBgWE3UA#B13kKW7F0dKxjg@7r z9Dx3|F@Pg4g zJ>{K0X&2kc@T(8((Iv9e=^L#r(bdiRu+wwg-qq5n-yMCDKh>PzJr3wr* zbG$Y|IljBxWtUtCC|)fqK946R4yD3X!wTQD`-_qA6Z}0nua(3wlpd?`1BJJtRvXGK z2?rg#t}lf?`S(aBTjWty7VhvI(#ul)PB^KX}}<7U^@&<~ESOr5ruW-4Dk z-e7r0RcRM15Hutz!K3#l`3*ECw-*)t|1d}(jt=MzrtuAOpfm5gd4U4`rKb}92nHzY zGN{ZkOon7j5rhbs{^C?nR-Uot4SP$5R`?hedvo>M$``jUWE19iu*=}EzG%)j&3{eC zs71uz;v3uy!?j>uIJI>GgTrzc-hGjrmWcf`L%U!5izHj5dKky&P$!0U0ve@adVhO- zI{Ch4ZcF&^r-BAyz69L`_DfUp@Mv1j&>QhdHH^!#;EAK~mMNmDRXx*U zA;2v=6-B2J|LxFqt-a{}U(15W>D}wSc_RMy=D{ZW!MPSa{U+bYDx=jMn-qr{(e>>n z(@0@2?-0$g9#<9?GsREOLD!%{1;z)Y{L#*;`%J%6VIz2c6_&&o9YA7o3FY2ULM)?{ zGb5C~tmb=>@uAN0o9^U*<~TS zm8dk-@9n!zslh-V|Gn++4@TX7W$OMHw*;$j0x1^fqPagLJ>QWu6phE;Q|LM7F*n(h z)*~yXV(43iuSBh7ce+aweIDJLVM}S5SvehZVviW=MkrqD1dIGNU^C>>UtWRU9ln(z z)@^lpKrc?VXsT}Nn^#J?b+B{Zsk^JPESRrs9h5}Kq!qd zc5?bP;kWs?)a;J4e))4N+`d>UlYTKK!2yQ|d;_7qlU*Vu`S?OGx!Vf~hlVQ^M?(1l zOFfV@hB?pBru@=&h`^BHw{u%;C0)ezU@{7nFWcSMUi!^-^0wlp)%9+P_#ZA=#yF)z6*7I~_e6;7^e9GpVW#xQ%da+ctrGlT z4o8(JiUj4NATA*}bQNjh^Q-;kHmlAyZ(U8>-D<;bW1+*q62VZi{yS;;PKRLm$ASMR zr72=opl2;xHq}|mGbyXEHRsXRHlhd9$rN(RyuP;rp4?^=R7Sw>fnSRc<^(K@_4eu> zJwCVl=mmDLn_bN1K#GU89Y$eq@UPfg1nk3Ci8&bn<`4J_&w=4Q^r}W3@qfw=J8CXS z=6QNiD>^hqLnDkcGq6RJc8Vel?N#kvc@nOv;SyIuhji?&J3K*k0%&Eq+QB;v#8nO# z<72Fnbk#|b1`dDQ{|-(8`)~!B`Zd|AZ>QF}XRJK|fZk5!mJUO9>xo;48?yQ(Qpvz~Rd^RoOqcV-sV^_{uRE5p>HKK-B8{fA*H@w72(t~C~xFOoh~#Ba}_ zZU|u*!BiL8NZAdHg3l4H_ZE@gLevyIb%V?<7&8+^kY0^Pbys29Vqj^-y$bDLdAr`g zuc+SVy=RzXA16k)Fue0hA@AG!Fw#;|n!K2?1>S9|| zwAbi;Ew}))g$hwkP#T%rHxE78Ce$3sG_}lZ&hIj~pW0o@z*eCduyvE_1F%bbA1331 zwo!T)_*kw~Ec-_55dk`bsN)|7(cj=g5Bru813eyjpSVI@CmIvRrUqw)&1Q+HDZe@P!8*HZ8gC+AyQDuyPwLYxzqQ3E8#8Zn=(5BbIY}>r z(K?7{&*+Y2PxM(J(OEk^XE&sV@$R2Ho3j;^D8*qlf65k;(d**oZmBS~F?)FR=*6_- zXzQAt6e0lJydA%{4;i}uTy@J?&JxXVKRy3fXRy}VK4!aW(yjx2Iyal&E!Ii3rf6j6 z7~)bPbJJy+zVZ@bDO4ehSJXMXNQv2i^1j4l<_TZ9V zL3@i+*onQkklfEYnqicRd5|*e1eegbqz&B~ z*wS#C_jktD8v0yg`92iK!|p*FZ;Fr=H)_m8G$`Ro%YM@SL_0SbLppx19U_Nh*y@98 z**Gy@4zg=6?G6?j{q}Oe`EW$@NqP(~(;A(~r>jC7T!H*6Ag$0W`?))I%Y!E> zKr>&d#?aKsEuGxG;fFhv0a(hz*DXSzD2V~Y;WD~zqT%aC+^hTDKCHv~ttEUL3WIFu z{smq!8tw9c=F-1qv*Ojg-Fa-SDm(Cj68Qoii_(4hXsxzU=H`AkH`kc%E7C?ds|C6 zb93*^a?9~8m#yu+6e+SG=5H1rP*^SgdWkC+SHQgB-lE@DJ#^Y8)TAJ2+|4GNI30`p zuqq11ioK@0Y<0OoDUPXxKscnvz@)UCGDVp|zoehhnO&=G=q9Z`x@Gg^f35`uy+d&e zA*r?1kCY>&AuV}jc2T7}mq>aq;g@EJYJn*WG zH+cy(lgl7?^~Q&@Belz%%^ivkRWb}%mF$C(iYp_q`6zbIIvvsHe6gR zJ;kDQ*YWbI^A+_057-0cT61exe-^9TsjKV*Wg>Lrjz_;rNz>tMEE0Ae2Gch)^9@Z= zqBb)r?Haa?q#s*cv74bnxe7}4YB6AQSlc<#+mVZ`Y^>^%)7D|*m+rP{-iFZRWzwTUTZI=(%#9i1lo$o1$`$PWv z_@PTs3$_h2HS1EP25v~FdZ&M#UTTuuKnUPu3=kuQKe6j`s})fjC%z0hBj9YkTAb8H zun0&gz3#xh=N8Ax@+aX@>ka=}KZ^40UHH*!D_IuPKMN>4Sl}azYT=ym3M^DTgT%=% z$g3h!e|}Sw;n8v=_mrfFjy1s^@v^mqIG#tyts`az=J~7ZM@NACyzZnU{eO)^JLK+* z*6skWpFd{c_=;fo{ELb$1G2B5J8{P;mzYS;(A+C?UBwu-vG}+9*Jz*znZ}wLnPO_k zDxr;&7O(Go%d?q!vn+kx8qsN?1Kwp_8mkt~n=@CofaRX^-}Y9T(Gxrv3MkmG`%a@F; zin=bY2r6L-q|tbRNAB)-6%K9Dv!o{RG*KoT`?NKw+);oSv}zcZY*F)3XiWX+L#9A| z{}R-O`>3v3x;#_6s&amKC%oD-{n8Y38d7b;Q;S>B4?4OpB_AR&MIb}vQ&`&=kDyA% z?7hE*=lEA45dR2PeYmwo-9X4$m3dK3L-_N$5$Ttgs*6OUN`Xc--4~HFmY_uA1fjrx zPj64gTE2HtN%r=ZbgG7er1(NJ)muwX0fBJdvzt00@8>M{%U#3C0eVgbMT{UsRSNtNM2X3P6poocmsd-!*}6tM zOis}Oy3^(C*^eUerxzLd~n(OnklDig_?}0NTew6HL<4D z5#cxP_x{XRzQ^hFFsg))kJ)U9qd^_>NQNp3aem=W%pCGjnn5G8-ameGey^lge{1nd z356*d@+xRmk!0oF>Ft!-M)QvMd>jb$2G=5DM!BQ6y4Z+i7F=ptBkQsMeCJ$9V4+O0 zc~$+@GbpZs&1iFaE<=B@v5zKVX?f}Gp{o^lI@59&gf(#|{(T>H2kAvRlxxR}MX`>* zpY(oUbDNURm9clE_XQh87M08vNxpq z0eE^%mTzPZ5lZX)O7!)IJ<%ivvwS6m)LB?q!9`2CUvI5ug>`vwChE^9QwBR}(3=_- zcCyMEn%deTmGGM-5L8ig#3?}g*IwUc17+zrCS6$PiHbdTw^g%6of3=Z7yjIzwoe_= zQ?&dCtwB=0L}Zpdfa(%bmgxzHUMs)}uL4XtN)fpZfCeXqR2ec? zki-z}+$ISIfJW(jN)W_?K?aFsNE1PQevNaV{SwXDMXX_j7$tGzpcHlJqKQ(PY0KjK zUwW2LJ@XX(AmrNZyL{uj?{e+-7F*peQBNZ*8{2lsP$c~>wMK(1^oV>8Zf&OgP{+zidSkEPVU6u)ZpBSxqF3QFU9 z71>zi&l#cfo`JHReM&xZRHcrgVYM-6kw4#3j7G>DEHumlgdoa$0cU|9-_ZKA zO`oNi7MV6UwuKUcD2`~~+MwUhb@Xbr8ouuj%K#~5zJAJ+BMYgn|CXSiU@#yU3>XXs zD8J6^{5*q9vbo#l?rxVG+q>vglNe19hNvvXBnjOlB8g%!nly z%+Xbzf9g1^i}TD)H4Z>i-tSEvDz-8*em(L3ay*-VY&#CN=VJ=zT6Xlyb4#TRh{X7G ztITe-%t2CF!DQ_fn3fcN7WmB#t>0Xi(tJ-jfWvgkCXQVbc*!a*+8Fw;+Ds{a$cXWU zpnTMlgDOmBNHUEjU=Rsv3LF=rq#y`Q!DNOoPUvbwH#GDH&^o%n$xnShQ}auOuDw-s zh2?NBf4^>=8jJb|Wdq|5L$NeJ%i`QLFPuF^e-Lo_`Yo>AzQ@hYZ7yuwX0N-4779n% zbUF@>Z4-3GzlUD}-vp6B8F ze%=f$5Q4yvX8Vabfr+_)5QYo}1A0-+cXnfTuDwMRB4o6b4E-2< z1-2A83Q{ex9m8H%(~b=x0_`Z4PQS>pr(Z-__R#pN+I!{5?I0zYk&$Qj-A=1IgH}V) zsQJuJH+kvl({y_Sb~{}*Zf|ns=3Opdze6tw+1=Y^PfDciQ1|O7+s3ve2pg#cs#PZm zEwW4#_x9LwTrA7MwFFDVoDf}H$H6HYfp&ol5UzXRRN!$rgR#b0f&2@DfGCdH*cotl zFQGpO$f5`-3qVtvFbF~hQAnC3kfqctiSO7fPy3uZ@f1gv<~Y8(Osi3&)$mbD6^mAf z8NGO5)X%Sjs-Q5d(Z8Aj>f-ydO0%#4W?2@^r6rVYLz)&+bquBJ%6)+0a*)aQR78c* z$`TZ%fgvq8Eouz;Eq?;|tqraJyN|LIcF-iYDqW)HLg!QKo z0?800Xk-E=HfUecOAN{q_y$_iARR&4*BD2TC#oLUW`6rN=>P=*Fhjt(s7!z|0nryGR=u~KRX5Sru>{GiTY zQim^1Q<8%1w>t=V?a~H&VJ>%`Wl3K9W|}Yxv87;bZi?yV466&X99vmnadwL7R+DDU z$8jti%PM#k1vMk+?{mPvZj+}xRqlT( z7fKb*Knbu-j;;zzPz8q2%zs6k;MRltW3dgO*he-&Q-^8RR8I&huCEJZ4%=mgc8Pvy7LYK1Dx_Xm|VU zw7cBd-lf|gu(jJ^bGO4zr%f+Pa*A+Ep`^n1e3Y_qbra9Z9hzlX*tT6X#qthRR&{iM zsKACFH6xfb{4tHa;{CndHoH4Jv zCt&h^ffz9Y4M*Ox7-?s@)9{2K%S(Zy8T=LC-`vpp?RC(fcs_s!lm$)TFGy(C3LJE4 z{8Chvf5cGz2a`Acl3cuNxR?=&9Kx#sJJ58tVv?F5b27A11VZCw1|k=~Y3K@MS|xkDIduX%W9VD_mDmvj4?=P_#xN0#QvGR+{& zwE=pAkiBk?cDGMI2-$9T=nX=4JAI-gq0z!=ib6d zlTWk?j-emxv9w0 zsR)QoPU@kHkziyD2{{TYOAY=YBef-+OcG_9KnZLk$fAry8xkW>mc!zSr#b%oE7-0( z0R%ZXI^+g1jtrF2ptT%+Jjqu3@XkOTxc5Hp6bz1&&-3S|r#NO70h8<1B?)1a&<}#) z`#~7d?GFfgU3T~O@=TyW1!|Kc2OZZPmOLd^z%Crb!ypIsg!qK1h?rJ|O^q>}SwF(U z!W@omqm-=dIIwT$p_*zxD8)ZK(m!aca{O;rPpg!=NdNO@-$6*h(Q^me^JuNEah-gZ zw>>0nhMklM-UkEW5pH!_cpYC=Sh|WPm&UB8u%#% zqDF3iP*{{+Ag*&G(84#Qw;;-}uK< z^+%8N_rI57VjNn%zd6w7pr1MDZwM^cWqR!h%63SScpv`1EEr1lDk<{q)qD$Z)EU#F zqEd~(6l&M57y$;bpD?Q{xwesJRwFZDPmObmpy<~R8k}a zUV;A05M)IbU>HpWWU(6{B26O`3{rufu3;=2q+n`hjOP7!kM0a6i7qA`!9j0_rQzj6DaDBs>s-3@F73U&91K(ta(cdxWhugfmDg08 zfcHTTj{U8Q;iqZN&RDK0Cxz@+k|e}&gp>-~cE$|;AR{}dRJ z4`=X8z+c-)(|-(HTDPq16Yl`XX}|uoEYg}W;*Toszli>N)N4T%>5?!4tJwb+CXej0 zGCeSb6Of6)M{@RaKT7TB5sXe)I(mX*XP>7vGmAU~1@@pQQ6BvLkwe`_$>zb%;2;9b z@qKuG9|c@0NVU<&<#U~%pC?UH-nnp*ot>RR_daD|aRG4X4+g{6Vkw1D>d@tr>Vgc# zreVpzI~WAmww(ij3g~ZC?El+#j(#jvf$kq+tIptHV?W5~M^N5}Gy20aobvweH~zyN zL1S@|skI|)Zf)UK@eq|}V08~*jN_t!rfX3Mii>=oMQVXn^aF-Yp!nG!Zw&rF4gAZ% zf4`BYzYbhpw=DCCasU$wK+gjIx?7$57vnuuKqO1de~F~ZFQ6C_frz4Ph$|P;6bvkw zybMSS%)s=@5zc<$OU#`-iINJ(^>AFb(56!d^6`z=r3W99$;RNMGZ>GO56%n@a|nl# zWK<2my0W}K6BylrwIgeUVaU7hUS@Z9mrQHs=H?2lekVVeM0Fedm}5Rw{` z(|W~G#GpX_^?E&`Fl1q29^dzdUH$SJKPYk^-h}&bk^a6VYo)&5{~X7)9LlfNW@ec` zeTLg_eg{Wuba6&Y-O9WK6*=^m5*=uYU{@G@QO0I6FGEbJhf(wch6{5=fDH2y;nN!a z8t?}2KW?PyZ>(F^d!HBwP>%jKwDy5NCBUm468)tZIRYv~AQX(hqOxF-7UPzzkOeQ{ zm6E*4qJ`kdXFkL9(RD1_#j-M)-1hpD2HL>OYxvjCug0 z_qOeD_S{*t)?B=JiB7vsrZY$lQ55HLV@{4hvYe)ar^H~NE4?)|fq@i)i!nLBkFe|nl^XJ=Fbm=P!_ zDf$4m$j8|NQ4tTxGuzU*lfoWM;V_DXYv=?@p`5%iZph#T1OGkn4>!{EKPr%e`V&zC zR1|;zb*Gqbme)p=qMu@f_b=CfOQ4S~)f9Ao;WA7<4Pc}K3<6Os2T7p5xX6)DeHv#> zuwyjiSNm9c59$Lv;_Lhn&H&^?ruh5+e^4Kw`o8?waU9M+_Z%R&efu^_%6vsPin02A zJTK3X+$;mzt|+XGr~g^evq+O<$nzIR5e7rI+hs5qu(!9z-rgSlexKvVkFzkJ>l}`Q zjm9&9$^RcTa{I99{iEH>(cdi3&_PoNAtXXdrjHzD`sgt>cXp^1MpWGj%rHnJa0+x_ zCi2d^n_7?cn>Cx$U-_;V(2G5q`Fd;zhUjq_}Z^5qkk!)P`vo87zuhdD%(q!JI~461efcxulBKED6^>hrK|n-^btkz?z}a2*%hv3dW!_ZbWZ)a!L> zwc4<$XAaOA9IE@IDQT7whT%}$v*!DB+HHFMK6`t6bUGbctrlm_oWZa86=db)`0ucf z5Bl2Uj`WA$x5G=4gU?NKd5Ohy&v5tcw};b!Dgw65dXq|htmFt1EQ-2URsx}6gdh}R z+$T$*#L+~BBT4g*e_X?>z~!P6`FI>a<+-i^f5t7MznK93l(YX*Btcc~p=C@ClPv0c ztN3ZRxBzkC1mXf9lmhj|1&+S*eYo{n<%Zo~v3EZrjD2Ij`;Eiyckmv~8BC_|4{zuP z8T|f_q1m)(G#bO--E1}4y0=A=B!zNMc4*z7Wf{6)_$fs_`~7|)S=MB)-KJZl{kN9QJ-(CHe4X?87wkK1k*^-Uk@3{SSi_Yb|g*pZPPVsn5^TzkO@8 z9$cjTPH}f4GXevd3Qc&)DX5Emmr^}g71#iSA)6>r%aTA93q*q=00Qeg^hW*@Z~*0B zzNWPcd>(kEHo5a(f&QAx#-FL+sY|a{Qh(`!1-SehrbJg2k3a~{y!bN9&z>((ZKInt z!uubD`4zWnvQmY%Fu1&XUPOcnnMf60Ix=|1mQD_uL+?-H&Cq!F8~Wj&8-0Ag z{~M-SQ{3CUHw5vR@o(JM_)F3>rz9_$eBExB)s+=&+hK2amu|0z>o~mp^2;1QejL|z z4={G_^SKA7^bc$F4{`$ccktsAfP>-Ul?5RwnLl-grDvYu-8;93>%pq%OHmOBNh`ZA zcF_;065yBuFl34!7-j-y+{UU5S{5Z|5ftfv_OUsD!uUne`TtLy${2$R_=n1EPThou`L|O##Rz3N;aB< zX42x2NIs&Pc(9T0cg@w$xt=>V4LJ8^6){m=v5$jf_X1-G^Vj*0f#3KfGy!YC zpA+y@74t6+KnRKnRc~Cozs~BV8XIMJNHTW1$?6POnFn#7L=# zr2?H%mlnS7(yY1E9E)bn=g8t5bJI;0XQr5K)oIpz>b{5PjHIaUcW56j@=bni+#w`M zGR%mEPN1>|SCBq59<`u#q8?R>eX+wD@X*QwWQIJS*fC=?wzdbCLU?{CBp`?*7n zzI2ph7=D&?=bmQnJhPU0%ENK5=HKxjxOBi*j6!%(ZxWeU;}-ezZa7Xd_Z%>4WUgTa7>g#}tuQ`Bm; z2ToHS*3h*!Bn7lM%`$p}kR;8B)2uMQ`~*d5Mi|8;aYAM^j&0%F7LKi0o}I>05>>h1 z_tRb2|2z$07}4pp+1c4RM)icj52crcK^rlo z1H+6iV2SqACZCgPov#F+c=08c&p$VouH|)VpCAZ^qp+!|DVCR4n46ocu>J_*G-Y$A z%{MQ+&mVpF64y6(iBgTD1Ywe(frjT`DGMD(gh|FAh_G!7v>?MG&L9aRY{$i}*Riz3 z=q^c;k!X!ys}pA_I!nNHutW_LC&XFGPB$en0XOg7<6D=n(D>?WtjtgIxo6Mt>2oJI zwm3I*RFBehyx;c(K|mBmI0bJ&$re-vBPB^f6o&MAJ$83@+1}n}dwZKqYdqKG`(Akk z*L8`bh!ZDHaO~KzebN76A4!^Vcel+u8@JioX>)sLk9H8z9>mx}5M?RBU_fd#oiHU1 z1EzeBOe%sjMP!<~ZIfjhWlLIhpK0I2vISBoR_AAE)qEV+VY=>dWPXO_xv8O~d$|N8 zgdj;`wzs#rb?X+lZ{Ozb-Me(V9fBY%bPNraRT{ljY;ooz(#WsjyznxEix)7ru4BdV zkknRBj0daz09nb~(*qEN`>q$zGln3)*S`Y%^15Zk8)^EnIe?SEp92032~YV4ME~K7 zuXr{iATdj5|KAYl+IshQhslB{$ET7+^H$f{P2(9_&!;dvAes+_I944YMo)* z4)uDSX0utW@s8@L;7E%w$%vDbRDiM_FnJ_ucsVhJ5pk~m zl4Ury!ch)UrZLLKacn{ZX&mA^HpXad$07kNo#NRxgD57+GU7B}Dsq&Cl3>{`X{PD* z2i%BLe(}yWzxw;%;@rtKzWCxfo;tcRl&OB$?)G7i?d@%nB%x8S56MGymJt^?|F~lO z?RJ};ogH>}cjO1RUZy>Zk_Ll5yz!(O3>iNx&C^$+C#i;L81b!I8kcKpkP_CELd@H*s zNpk1X3qw3@P*UY$7DD2f6f8v|8)VWjU8~U@gb)spD3s7B+eRyiQi3RxNF{MB#UM%e z!#6MS$8TQ1ulaoc3+MR4b7y(>#E}ntqx$_m*RNg6Hvx;(zl8OcHGdR_bbCEI?KXSu zcHZUhcA1%-<;!3GGK-6gLq}6OkcW8;qL@q9@9^5CtGxN%P2Rb7Gaq?54hBh@X4GAY z6h4|bpH5^Mj-_xchd9%qEL_JX(vZXfzGI`&SdJnQVCf9ku?eD>G}A;$h7{mfHcA>S z$0f;h?s#t8<7;od$5h>Ab+*Zjm9c%}JvMLMz;!*&o;}BzGiO*|KgPnsVs3zGN|MAw z>hq)kMwM?*J$05V3kz(xHhWjzC)nM=bh}tdid{Lwm=OVvDb9Po~;vd@ERfUNXg#;x;uSI>$ufgy zN!oFWqQ`QpNgy23EF&@?(-g~+gqg;|Fja5T4+8LNSdK%Iq$puPlzXSZChR>IE zi@Z>2Ba5;G zr9f+%wHlu5;n)sF_wl_(9z_QMNP*+nq)Ou3poL9pQlzvIChrL-0YX`%sYX~9nbyQv zN|t8yqL8}plNpK0Vh{$)ad0dPrBh;U_^oe!m*0K;yL{n=XZW+<{}LzHmhO9VvMgg~ zXNN2Azt5f9x5)~_&$Oo3>kXs-kj=N>r{C{02m(CMCBd;R zqM@UeWJ!u66pebF#8~JwLQFbZWKPGfK^RSB40X>24gIv@Xl)y*4VweOufB1WI}v>T z+;NUC%@#ZmqtR_y`;U{kFeGwWdErGYzsAjPeFJG(>}Hy1Zzm68vH<;19a$FZ?j~2j zPPNIEuq$={V1y|AtH8I{Ei2_QK0b^CxCs3F3H-{QF|%m_SF{cp|K-^7BBUcQdW4E9 zsg_`Q&z__C%y}+cxIh?&JoC&my!hga)a&)i?0>WbwA&l-%fI(cUj6pl z2%S?tIZ_hEAxIl-KzS~{?-QniSw~=mB-VmZYnrx$Gy>tcm^4KiL#$I~JfEi5AkpAi zbrxruB*x%49vbNPBH}ni*cQPc!XZUiHg&&77>7*NTsny%N)l`|o}FhA+DJSFp~}}r zvP__)0!yN!0d7HH@wM+<;H}G7`H@eb=O@1ZQ?%;-c(W);*xlLT-o1O=y?d9P?QNns zCQDNWgTWASRf2sGdFGO48NTQ7%rnn$`t)h$7Z!$?{)d_d-QDIlzV)2#U z;@OZ%hb+rb(nc6PbhJ|0xuaETNLG@jDZMDl9j#WFECCFbWusN$Xbt@STbKERx87yB zW^t-zvpiF0W@d)@`FW;zG%#-v8ay_y!rkO{`Nol9j@Ko z0xNIKH9QYv44$;}I!q|iG@(0)a@87R4-tQ!WfjrhrCzh~q`*-U$90))HBbW5EW?sH zU9>Lw;I$^2HOMTbuQgemV06kLfg}tGGLI;eWKj>>w(!Vl&V0v3*hP0++Igdi4Bz#M z<6wx_x1<6oiQ%IWPr2j8C}Oa(KJ z!61n=gqf!4xH)>xb zvMP?&qnjAQIK~kg-?0hf6pg^M1fkADRb~ni6-%PS0j`u7t=Wm7zmxFx_4ld8yVPBW zrKKg#oH@gZ6DO$GYX`!*v&^ElxWw8^FO!5JVW&fI{Te1ohSM)$#z%fy=jE_AqoA1< z4#2=R@Si=drr+Zp14h6<00IsF=YcU#r{p4lesx~GZ#JE$|7z#}%uqyeCh+_u*0iC)}yVoNVhF+Wz1p!hU9NR|N0?%kVK}68)p|TVQa2+?N zlQwz7(KsGgZg2CK|JPsUCqDNwfA$NXVs@&5Qi{2`Ii^}Iq9`KGvV3cAcbBcLtpd@P z3}K~0N-W!^*XuDmJ3AZ?KIoBY&37(e<8S@St6aQ(3!^LyhKB2+jlq{zzR{@^Ns`d% zhuD^dmR7-|FYs&|-}SI92P1X9>k-H3475-fG)5;N!FF9NsZf^8lgPTl)eZw;@C8^% zVxzE0u^J7Ga>&9yj&0+TkP7fT7hzfBj@G33o=*}-xucaLzXn2Jghl8~5ekPe+F@|z z3O8@wE}qt-Kv&lN2N=I$ z$N>QG%fLJ9Qko~B9Q>hyK55&3924GTUWtsz$6+f;gk* zx&*0WXAt7K4!-LV8Hm#qOXjJ*l8WWoDdt)Yrt3AP8+Clo#&;A=&!t}T^Ts6xOG=!g zmdBVJcqC;GT!|wDA}1$JQ=%jRp$Nj5ZV(WJG5tY}y)a>?7qTNE>J7lM$c#Y=i7O=1 zwn;Kc5XTTiIhMk8pdbvfd=F_fzx|CjxwEy)PyguWIkB>kmpiVDQ;g|mW@cDjT^**v zW6Lnby%}au)g^{Q9(&zBzx>s2@pt~wZ{gSuNt{q~G)}Ef6s4qDg75peqfK&0s~nd! zOA1Hp;MocR1W`&a&ZsqN)N2;Yv(q%|KH5^aLSPpL8H6F35Y%m%Pf!rZQjV+OD+rPl zrEJ1DAr3<DrmIKkX#1!v$q8y52QBh(pHjJ_4K*aKqa@)T zUVoGK-+!N-ogJQg?m3=)_L+Spf$O>?QZjeyG`kxcbZ*@y90b$`gFM?Q`eCUNq23H8&qAZXcMn6@+C(TGK zL>dSL)Q=paD;3fRPM`$I0@x{GVsD9geT8A_x$mW$&EgryJ& z>Qd6G)k(-X{}Yk#7&Lv4Q%m!#%uO-fs8RDArhO03vvDmu*X5G}t8hHJ7*hzL5Ez71 z7zCbUpkYWu&UFF2S{>H~-?Ncc zouD5;79%Z}G>yqJoi|jo6j_urZ(P2{cP?-6AN~t}mgi0%8$%S9Sb-AA@?jn~Hn;ho ze(5*)t=Ha0lJBU`O}B`$lrTy0U6&w{xubO)e9t4)29cy#mO|JTN=k&XFbL+RU8b82 zJlDdr1aoztnW)69z@a(P~K$#t_74@-by-^36QUcTq-T8Vd}hjTvmRy}ivh zzxhq#IOh51pT}`Za+RFG6+pIHtiJFfJ6Eo7XLpZi5Tdk3m|Phs8G|oZCO5_q=U=!C z{L}TEzL-y92{3#d%S8>}y{7el2mH2%zYxK{5gXG87?B{9Z>1F2B%|tZDNew)f#qkO zr58r5uODM=ZLN~_=XmTZx3~Cz|NY-&x6{k%v~zeHSvDXfrPipENl7Lk6B)kafU-%l z6x$NiEt?~Y^USw=7F$hbT6LxybzIxRvlXtBONqg#Ut!E>R-udaMrAZoi~RZROd zwylsVf33Dsq^YLnIm|X|L~%lxYC4@BdqK!bKV-W*;O6!o_rd_n*hE2+OH$h&GR+Xu zB2Gf;oZC|Ao#hK%Mi6Hi&6>~hY?D^KhVR^?dpy1gX}yn zFy?5Lsxuf&INCJJ$vhH`#^ge^Zj01y(CXZv*X#1_Z+{!hvN(VK*7&P3 zef|aZHm(u2+t_KAqh0mn*1`zx8;te|{(DNTz)z|Jm`v}FNf}?$`a6a9`V|9zGJ%&9 zW7dHehnVOB$1W?o0TwxhvQ>-#-Pu{p!Xm!svA%u`$8pCNf3Duy=CA#OSGm{jA&nu3 zLp;aBRubEr0c8`FG~`m@SprWfA}xqhLu;nNGpma%&$O6nHSj!#nq%c~S!JP=B-Mr} ziO?ob`%`V8h(<<8GHvoGAtkO-#f{5BLbjApaPFz1&XG#ui=6J%cU=Z?Lc_J04ikD| z#N1TC!gQ0Xw`{uofJ7TYBT!jR3!Y@T69}VRb}Pr5r#QBUj$%xb@?ZSzU*bRhmwuA( zfBx)a(*k_w$_@UrzwvWy?{%;p8zTflYtpPwh*NR2qHwfs#nI-Qkgn@7TX$J#HkhAj zGSjT%I}SBl;rlMG?c~=@NtBd%X(n^bfGG$L6mL7jS#0J#@6aFu~}oaI`5xS;TQl!*>Xi9LOt;DjY3D^&_;h z>zF~8H{N)IdcDr6Q>Sv^SwZ`rs|wpJpMQ=U-}ojsZrsGxxm4OgkFb8}-`Y`3=d_*?(vtMmpTs-Rr4q=jeO*p7qi`gEcMk){YzEZ4{P90U>@$&slR zb5nH|rW?#pxA0vj$0Qg-oMr@JoQr`P2-1`=N^>214P+Tc3Ivig%kmyT(PT0h&>60q zJ0e6r$960$KiEp*NQIPOD~q~gVQhtKTeRvfHP6BK9BQtj-3z(C-DZ2QLz)=|SxTD3 z_?99}b7#_&&@A~Q%!2VOT)`0(rS*4Yv+qK z<-UevSp_a62LT!K=4aWrkU|vLkzx30JVGyTG`woLJp%=x> z_XjLaH`%zoNp}#CXey4@$sMgy1W`hkr4x=e!Xzno?FANfhG@5WI>*@jhrp$SFg2gZ5}^77&3IW5ihPG>YeVbzf!{5_ zgEexA^rOJ{W$;V}$6{l?D9Kra8q3QFWwEldjN>>%C+=ya$j;$;s7478*XD=g_Qq2$dfolWDq<#$*GsB%>Qf1ZheX zr-&>gL6Q|sv^YtzEk&v|mQrX8wz9BHMq&)MrEoo$EKQmAeUxLUGkY=C+!U(b?A(9D6nj&nK_&?Zf#pbi z*G3?*P|P$uW?MCm%ulm6KSQJD7u*SXU&Ru#pwTvD+T;pDMOU05VonVC2}?M$HX5B} zsNq&)-gB{p%)vUCq6CuIR{o|li<)aQoq6o}4mE#3-Lu&1h1}R_v%Mz{akPS_6!e0^ z(K>~r4f||4vzR#J)~#Dyx^$7LsaN(%iwh}fEH0v42i@=QgUP2rzrgyZ@cRYg@9kq! zR)K*d2k;@K!>e1S7Ekyg#wP~4C~*Q{`}SY_3jpuNKmQBAS2%feKg;UM&zhNO zrlwl7T2sT-&P*G=^0ha3|K?q!RLnFR*p{0Eb<%u(?A2Su-97@1>-tFLV2Qj2J+VB; zLaV`C(=QrIR)JQFiIa?O6cfi0ag?B>MK6v?qm+Iel4SWl!|)~`hz31u-z7?QuFGfT z9c0(CaAgNuS!}5QOG%oJV!GMLVX;zTDR3=|nx9K~J4)c#HZ|A5vu#`_q3PQBxG{<8 z?DhyUO%#WuS%NV#Uy02OmgCVI1W03WYjv~+SET&iulx@G-aq$~%ulx-`QF{$+U39c zyZ?~wb_eeOM{9IOyW1zp44z+cv_g zEtzF`d8H9#1zlO1W(X-rvz)y+E75s6{~0MIwq=ndDRnQ0TDz9Qu~b3W0``!_Ng$NO zmXi5a1J_oxe3xb;rByoG%hw@}@obAYO>#$@Xs{+6ZI};Mc$V9$)?TMS>*8bsY8v5ss6ChqM80 z*$fg*YCu}Dn6;+Zmd(-mDVAC_rkgb!OAYz$G0=-*+JlfdN$G_FaTFtjO_;=laf~Z1 z`Wmt%!L=-6ZAc5wJRQeaLSZS1U#sO{oqouaV-YLEPQQbR1Dee`ey7Xq)J)za)EV=Q zI#bO$ty+y(3H+>JjFI3fNhqP!aC!R3B6n*ZZ*ANm))}^P5F#NH7Kns2P7p%kIEpw) z5#*`tTbDNY%2&U^Pyg5t;@A&=yOT8KfBh$~^3MC$kV-LEINE`MIF0dL8?W9Z>h=*v z<9daoCFgBiUz}xirp4k^oqEm1cO5Jx$udo93{k;4l%^R{D1syxVmTMza zj_c^`^~W78k|d7FbiTikJ6erfYoLw66&YP;mU_6y`|rQc!ovI*t1&=pbp^N8WG_$g z3x3Od5>RZs{wDAr0B@~JnLfy7#3!)?cpOjE`RSk1z>M-eEZe5lY85veZf@=J+izS# z**3LeoFy>0Xlji*-2|c}CQZ6%Wfx$AjJoU4YBZQ{)|hHGuWHk^oa-ksy*S0O3>XL3%cEhMrFk<Bm#}H6}5VU z1c`|?!QE|Al6+pAX!>!=PA|Z7EoOWdOF+%Dv8|lEV+w&S6j7#GUt8qjjoV0VP_|2! zWk@MdRt9lIKTgQv7-bTq@lht@|MQjK<=n|*eCC-m4}Bkg{f}PfSAXvt1WAPJxa<^; zRt_DlAV@T+25HLz&6Ydb_4z4QW}D1TH>tZewo;f(lbV!%lG2Z2k~CvbP?Z}LL7Y2U zOGtXDCW#X)sR*--B+W>Yn9O7-6iNv^&j%^dNkY@M5K6M!4~CA`^;~9JQw6vzW47)y z)u_|(J(LuYrNL8@P#UJ{rK9ce*0sAMM@vE`Y!JBwnn2(#<6XJ1Y&QR zo40S%>2#Q$p03Qc1pf3iZmUIDka?C|0fnvn3h;jcE|x-|=01&fipJ*$X$DS`$UN~9 z;87gI-}`$%C;rl3`WXXE2_bM@2e0trQJnIXKYEL;?KV;xkP=aFr3+=#kMdc&TXU%^ zm(&RQ!GJ-x%lgU^#}?<9YBf+o5GNUFk`l$5AW4W*O_UnaEMKBY(wtWyic_K_LJ3(M zwjP$_Bc!C)>(h@SYBi5EGbo*tmh_VlP}sI4O;e14IE;xhupOJ4%EyQOC}t3*>~sTK zu3}+&2G4Uy>K=8+B1tn`k3vTd>aNX9vw=p^3q#)CxK6`%5kd{u$TDf6O^DG6mgD9y zSWDr1KEM3Cf6S>P%gnZ#4^{X7+;4m}$MM@%v8J6n+Iqc4C&_ytN!&#jy9=eGooO{$ zYBiXhYT~#yMrRCy7$GG=stKZmUJxOSrXPk31~IYLB!)s;Fr^bFSjynpHjeAl4PwHu zkJK6?1h!JdgSc?Cl3ghgMxz`>&GG2O8Y_!wckhvs;<^rlAfX+^c#e(d+Dv&4j?8fz zB}qyPi8XYznu|B?OqH}O zRJ~3*&iVZv;D02K{+HMDp4owRA`Z&3wf-=bx%tQ)z(LO7@BO`>6O&HhXMX0Vr-cys zehuIENVAM@Ufkfuoh@u7h!Txd#atahn1W?PY6K$E1Tr8M64$XM6jpMjjS&B`qKmtk}TM#BWv{xw$Efqcr z%ku$25T`kkF^%w)B8WrMEF(6WdaZ^|6QUH7OhYJfEQch~m@FgkU1|x~QHm|WvLsWU zhwnHv{fya~hmJEs9U{@E z9c&n<#92m^8iF{*Br!o8p^c=U7=kE73P>{u2Yu>wpHv%yPKSONQLB3-Y3^vXfNnHE zNQJT#Nt)y~)sG31d|c|Q98=d1V^k2c)gI7v6${hT_`X9_^Jq90zH8%prs8O=ildEq z`|5QXj++~DW`Rz~ltL#7#-v!TLl`Bwqji0Dfa|yKa_ZD6#)(`(t*xTYoav?SzWYC5 z%=-p@>y|O^eLV-3@b5fCL>Kp&zCA(~U>++D;INV4gVO&=<1c^27*iKQ;`=#^?M`RF z*T4H7g93MNM4_%zM1LtEGdWAIkrIKS>3Dda!`$o)Gp!~y&n8GRqF$dY%@{-pyPXa? z&Co)TWQH_|>FO9Pn!#3WTzdS|hWx0Ha83AsEC7VU{uL z+E|u{6awF}ki`|*>GheZdALF_h(a=Dv)$>Dx(RV?(+(W!ZiHt^rfV+RXiTcH92+GC zbFC&TGcC4uck_s3GK|Q{qBC-ALJ~&^Rj?>$DP$S{<=_5!UOIQ0xkDO)X_oQ#fAg!n zclA29ltgKYR1#ZBQXvRZgJtKWE+W>1gd{@XIu>gSOEik+W*A0jFYlE1f`~ARb4ME` zgmHeYEM?do1jI&>C7PO}a2zL}!E299>wF>1vXCOC-z^-iDjcmp;b@b>(MDmx>!7Lo z0N zGBYAG;y%vVkF^-AeIriXypi>E(J6%@?~NOABkn!>x7S{e|DUs?fv+45H=xzZ*bfHU z0w=-IpPn?(I=arIRNjA*cqwK!n=Ruw+z#|#eHH&#|H@lGy14kquRnP3%=Y~orMU0K zsP0SLh~t+P@-P4Wvr^n0tk?nI5=?m}m&*Ts^F2N|zc7pIRLP>;AA7O{(!9kV9W!); zHRjaH>FFu>NR^8Bu-Z;&t)!ZfQhBu6Sa@EADvs1dC_CUPE1T_xDoXDl`#={Xr^kbx z^>f14Ol@WkF?dSNlv>E8aMpG76p{!MM*3DCFXBjA@gZ7B3b=Wqmde$XIqo}Dlp_)D zJI7RotD4E1fqQ2stoqE@L>B_WOE2DMwM{q`kP6<>1!pz+G%<8NB9)x0iIr4EMS0_$ z_j&Q&>A|z%Pv8BJ-~2DX*FbCI(JF$*h!6cUphX*Kk9xlPqJj2k=$J}nx>_}@0|Tvf z)df;jvlo+$hK@~|h%S(_NAt!OZ!*xTG| zlU4Qg*B?B%)0BC+Hh%33QvLZ-0Pt~1i{~tUzxWXjaJAMSrIe^5Tx}C?{`6hWhRD;| zthI(NP@P8+Vu(aMCw<4Z+E7kT6O$;v^vcT|$Brq@*33}~NgaLYC{-zj1dd{~k=3qepmMcZ<3pqmR=%2Qq4PG@ zn`^;S$*B@lkr2oNUuomTQrp<9b4{<8wHmRfwt$q^GtQaRc@fYcfu-X#&#tdXz#I_ z5{_zTZs+JCpaW^182YX`C{>fZD}svfvkyPw7he7P^`zj{)fHD)D@5eK?_Klz8=-uH zW%TnO0W8lddyD>%O~BIl#9v%o{Ad^krfKG#j~?^>lPjy~)@oCDT}P^dmdtQuq7}6Y zlfd8|10LT;&Zoq^obe&DN;9q~PqPqeWi=(Hl892-WHmw0=H_}j4CV;r%|cr-)tYTl zPP#zn1NV-Dh1t$=zxN0beY7Nx1DCgC6|`omn)0l7;D@6o5p4rRgZ03nv3pE!Kj?M?N6Owv1^On9lLIvg`B!#KwyFnZFKwIwstyZqC8faq!ZE2tl zfm{xNR`)>bJ+t>rsc^N~f!5lChv*r)NUokP>J4b;8Lt&Z4aWV*<$6P|h3Gv$dH)fA z{X3>;q^dl8_>ilsE7t4vAM61@xUGY;^ULKo+PXOu3H;oY0Y5IYf5+nY2OzK;6L3HL z;h$W5^{ZcfbpGV&OApJM&3aAjI);8AU?Y@c7wP-}F;G2t=NX;Qdq;>p!^s(sR!?ys zi7DHNFjv!<-)`1)-XpOmPaAyKQL@Lyfg*|z*3vplMW&f8o-uYr2irU&8LHY)kk*Xr z0>MYR(G%6P&6&_fS<^JJb&fGOx;W4|%gU$Pv7NWnWFjy3hLIwPS~7i%y!&_srJ!lc zLmydJMb|T9@XXW1N9RwNQsJoU*_I5doD3s#p7GwZs+F3v>13(3N{7~f^W(SP;n9ch zUz?>U@Z(2o)}?UdJv;;2!fge&~3-ojFYz9|Bj?gcIdyRzfMP=EPJo zQ3~s{2ikF<7D2)uXtQ$C9{_Fm6rdd!pbdfXWTejfpdC0H2ez9HA3S=(t7k{tJ3Znm zRmQ>%XhkTgf!65_Xk9eWPAeo&3_ehTf%bpC@eY6YSGU|h8L74M;K2i?X{vwrXK%dC zjiIpTM)-Pv=fAcO*n!~BBR}xx(g<|N8Q&c^?=Ob|cXL7E;lqb+p67r4!K0_&d;P(R zK17_tcAn{Dr1xgkG&}GroCfOwKN<$A3ad0z=L85djwkD_y`oY%i;+%1y{DAKy`v*G zrIO~EX}x81Fby3}961-OnM%fq$%S9e8@f2q`#=oVr8nh_Q&a!JM^Z7t%^~*8U5BKE zkC8EUY)U52=J4u7=$%q_yR7R-MOd#_oc06K+g$n8dd=gjN^~7XGbNiu+0gaWn(2KY zs0}R@QRZoj)J)%x)()$cl=AhC`0{JN$ajA66{cyTl)}|^=6`+gr{u|UB||@$6}4I^ zt_$9@3Oso47|{i2PkDIx6e-o_>_wTint8{1LmwQ{4dm?|pbZVQ+XmXMfi}%eGJ6lS z;WL7EZlE1UN?n5X9C8C~v}P||&x}6Y1_AvS0_bhuv&|+Wb~294dBXd^s+0!W+CXc= zO6oipS8MJa53JW~9zA-@G)@2f%{Sky-1vtsB`_Vgtpxnu{(7As_#$%yUq%`5P?)dW zHcMGX00Hpl=NG?|`m^sj2ZYclUv1jVm*!rZ898R26XMJ{B!KvF}MD z3?b5wJtuv~lW8WZvYsZ&Jk$3b_xlcYflW#HIdO7)OsSRNdrF>h6pms~=m$FI$t5v3 z>*R{gk&Ds|4p%az2%B69&M|t2RN?aKi6u7Y71e?Fkxi+@81b=V>{>V4b|MUc?Iy8V zukcQ+8?t5;lgzFqvz@F9FBd?q4A^`7UAitHUL%=64T3*Y_jcdwIwKlqa$ z@xg!mK7H7UbSywC!sHx5DyN~hMBC6CXy=(aB~T%I&*gTy2JLB#^a|<%B`5A3H_%Qq zQ~4aAO$*TG2HI{9v|Yz0XR=#>)-OQo7ohD1%XP z8vNSNfh_nZN%Gxw-uHU|*!_R!80O!2FWWhNi!ePBEqQAQk&InB(X2s0^d@wHHhbVFn_Z5UJt8Hy`RS}n6%q1KEGk+B~c zyk|96`X0914IxIP6gDMMeL!Q6bCo);>4S27bjo@=oAHTMiWH7wB&69&Qd%e>qRugI z6EmJwu-W;}J05P=q*@re0l`yKqO_4@C!i@KHJeVZdZZSlWOL5hZ0tN-43b41IoUOL z6eEwGT#{0{7N~st{RigD5CTaAs#OlE&lD=^JrU15&4_b$M2KB$MyYJp8@$*qnMAC; z_NeD{=(yODE2*4j${BD22FC+m15FR{uP+oYt{(e6m|83jVo2yVxHWlUr zSL-Xna72t9Xu+e*rIKo8Ovfe>6+NC{$u3d6TE>lUanOrk{*MT~= z>n-CjG8I9!68ny)t2I&*aU5~6qjQe+cFp7`PGTfDB~`~Zt*+Z&cT!PBZN#(-ky0J5 zR_0>;22!j_5Q4W7Tj&`3$mP=ux<2B^Q$#A;$xJFlVeBJ874HS9LR53b8G|EwNtXXXlZP6pai z$u7|MkBIi8_;eYs~D)Y7-%;uyI%U648`QtaJ(5nyDeOU9Szaxq+4i zXuHUR$4~gZ-+P;P-+hla-gx8J&(F^Rj@oX&TlhP-@3L6@b+PDWuS%xNzJb5zz5d() zpzZ!2x9ht_s2>k}zSah*BIl)6dgpDCC{&ee*)WIMZw7~2Vx-hUscO4!PWaHFViRj7SSh$#m^Ya+SsQCER?hTJ znTuy#N^_QgAqJwUlcLj%mx5FqsL2W%%)lh2`4#{!FRv&i)A`txnH?o3n==TJtJM`@ zEW}_naF1ywq*ACm(1wV2p04Xn9VuJ$jYwvm>J4b`-RI(JBFhf6p6%Q~TTOF6c9Ey6 z6;d+sXvBp`=N;?KnkmejbiqI?j%~g|t5T#~tML?qeNV7)Z6}pEmj>F(R4c(dGz9RG zafn<#d19bFIz_7K3+9v%VC*~lo4g`wW-&QUcI~Kj9L7FC%BEzzn($t^IKN3bn7yaTRddS|{ z=yNU=)p9dy?JX1xIa9qibBT~B-n!Pjn+YzEB@seplL}q%g~v{W=p5_S$}FwMV@kHEHYbIl>%n_A)xdrn zlzE1tLQzW^c`1O>6UkaoNvv`OEgTIaz6vtg08=T2=uMAMYrdY26M=cIP%^QFp*UqO z%BEIo$<)qNi*io4LbOsUedh?6tXa`&W){wdM}kzweh1ow3XG8k+W8u^se#t@k?24X za?OmIw(+s`!)|XvIKVD?UK%MmF=zy)GDNu_P|@L>4j725+F9*Ekmpv~Ar; z4a~9PYrX+(QIaU+86SF!agKL67{`s43iTwFYEi+^|BmlgpmZ@W8k0CkZ!Tjm0;LGXDX5dR#`{nxF} z3ji$7`^$yzxh(|LwKGx_-{I1J29Q{7`xKi!V zTwgIY1>P}wQf}(Q*!O7kgub&{P@0)*W$dh>WNHiAJ5R4Rqp&F^t5r&~tI7pwI)}&6 zQ&b2o*8%?e$RQ$>l1)KJOtr{k-Eui!D@`%>5$_c5EQ}Vh7T^#(;!Hj*mn<`0MuY|4Bav{fkVKwE)C9|E~3niH#3K?+A>1MPMJT89a~mTcXC&Lb7(TA}WP zR@hWA&>EpXeDdVUwk`g=h=TJX0$3i4Y4l5REj z?0xJafZe&jUqk^*5OmXaeeRA<=z=GDPp-910a`LBi1o*B=ZQXcpaCg`f~OA=R4DUI z(UDjM4c6M4)e<%lWt|dQN()B?FG7*R7$Q!TQnFb@dFZs@vN_P?og{hF2b9{>Y_JP1 zDtH7+WlmeXhZuW`6pGmKp^F_s6fc$aCgY{rh-cf~2Jb0pGWFu%>0*Zzu^}Dr88AHq zanL!FD9&BXjCwd8p95M4 zm#ZtLQYp28HYq7L(9%FVSXoi$nYmaLBc(6}cN?^&uvsraTN`MDrvk^F-EW|sU^kB< zmVYUA2U@Y6&Uw7nSylVJWVheTi?P=fbSQGJi_d<)DzN+aSs?Ja0q|QQ?v9NA{vWY_ z4DfrofaS3u0C9cs@MmW)z1%$7tQWiHj1Qi5&UOLSp6a|^TnRJdsD&#WM}1E~Nz>LO zyEU-QnWVl8 zj_4eNQ?tkx0kse3Ju#RJddU;teEDmpwA0?D)02@YTT;w=1;i9d1RN2sl@L3&)5H)X zvH*LKoexyi)^OzMyTCYf zOq*iwD=-YEB)z#>J#CwryFC?jz1WvK{4OCVi;%w_=%IP0KVS)iwjT9M0l;GMKQ9V! z2k5td90&)JfN}NU-3RBL`zQCm@fZK;lrl*buSzMV@}jk{sTIZHdNT)gqPS{_!u8r} zvcY*XdngV>@G2BfYL~1cu#nx2fP)eTgF_2trUI-SdOG?x(5<|p0M{PBEDVd~#YDZOvw4K{W8!?W- z8g;Z3GbT~7ztIJpdQ>vKC|mI$6&E~F3P1bV&#vbHTuDT4=XKYrQ#EJnD9jn8KE7v6w&W1x*@b7r7*=rw2);smGFWW#b|E<4cL4%)>?k;)i?fwoEmt>q#N zw4t>oo4wgHpiTRr%@mOaTD<{nDHOj0?M#nj2pv+*vL{tB&_+u_-vX^yQYmC@GXf1N z5li5fJh8oe^48uO)5SS|`4RRYu-_u=p40vNxn>697ntbdz?t720DwEt1KG;CS|KsTN{@?V)9C4&((~NJUzuL0aBEc?Uv9l*qKx{YFrr94IcpuE0UJ_ah zwF<#GLJZ8sY_GgCd1^ClY=V@|Gzd0x#oNaR@2TwvY=Dyfrbk5oRqy zl8KZu$3t%y>pVlA>5q@CMm}xnn!>G!kY@XxeDftJb2bMg5o$IM`s4$(`4r|-*sM2D zXU0%*!wZBMDBDZ^)xZ1~mJe9WpLaeooxH--25h`4#od5*TlPS!imMgx+-=Z$Gd6Xi z4Yc5bwPJggp!Ls!*10AVmf1MhK$}qK8fcsMVT;lXw4s4E5WQ!fvqcnn#)m)(?KKe_ z0hTmVyRLy2YBP+HQW|LM4QQRm2hTQFVu%g2xq(&}pp^z%*s8TsyWm+r{NU{a-L7}_ z!^k4UU*4~KAIoFFzDCHGmjifC=WoUI7AwCQXk7!XLDfK8 zo1T6H?PL`gr^+nVUITA=9;ebkO9O3&5YSSnZBwv(L?-11+NP60S%7vm8EAtw5hba1 zes`c!?A-5^DwUeu0<<*HW;UyO1KQC*yIo)X;OhM0qXP^0t_qpEBWHF90Qba#CI zVgc~)YW+BkdAB#&#DTNQ^F|5uz_~~+KYH&cC-+|X_v4FS`-f6Zp|vy@7{qqgp>@?E zrK$E90JJ#g&h9r6QK9BSb(t;%8){NPE6kcuG0(b`Dd6jgA! zfp)wB?a3)2cGsYN`oY`(El-=xVrO5r|LVtpVOgQA2R6q2MEhsg22=fXQNscN?vCBx zAE4QOOvdNA-e`Ad@F5wOG-(xpRJa3^dX=PI>ABT^|r&SlAA3Vv|Uw{*xBFo z_=9(Tc>eBBeq3`Z&wGDg_zT~B?Zt2Y@^_^c`rs)!U%T&!3VpC>BDX$#oH_TnU?;wo zH*3c%i(sl)wmh^%r1KtC>@{dEIx&W8O@ALvI0RJ-yR{v4)PP#0-U6*)D!)UFq^34Z ziz2`?myB5A8M-p*AF?dV*>x%}!^TL0BV8qw& zFX%%_zrCiQXDS5F`~K^%z4n)1dgaBxe>sicc8kPNaG+Rui00V4OLMzcp0QWPLQl(z zSGr(17ZGhohR}9+2R=|*f@x<;p>1*D+M@OG+729`k7jFCn{4<^DCAnA%`PIf7vGK$ z*x6oG@hufsRc?mHRSiboBU%aGqs~HBA7kr#u;&l0)z~>lh>^5ey>;>6{Xbhhe(*r0 z){lRGy}SR)FMR98*S__)N-cyP^l;ap^dV4kLEEs+&g$BGhg54nmWI3FJyrKX+u7D8 z6=})FXFw~85Bs3iYdyo@v1HrgPx9W>qkUVX&w|$8bL%AC18r@fMX#;ou0iV!v@t|m zUP9{B%V0Fb@v!j}qwPcq(n zDBIuN5f$`{K7nPgKv>-N$7g3R{laVaf934n$=^^HzBT1|S~T_*=W8hr!Q`C~9lYX# zyUrwQwQ$*o04*ukM%c`3#f57>nq4!^Zs+jLm(Y1Tm)mn#gOcUY?X?W;C6d%Hle*;=khe*9HKgJNR z{}zXWYoK*|plv(wEzpYK!zTc(o$Xo&Vtc(6Tmz4~1E7^X(E0{iv7?33oIb9r1=k@Jo@OjpM3Dv|B;gCy^z1`9RrqNSVjruz+>|rM~LSgCH}tv;Lz^Rf!1Hw z7P{YC*l`aGhf0OF<_Vnly$`Vqu{-i14mdis?5xz1v(%cUR%x$CSp2TbM5He6Th>_* zB`^=oH{2BwJ@0GoK)z&O73Pq*((~lh4n3EC!bN{jY&P`6QGa}Te>}POjo9^HaXy@N zLx1L+A8IY$IoDMYY86{_-nS}+=?|)!M4PQc*Rr}|fb9$$9L_R=-qA5+FxOnl@MYQ5plRJjwh&| zmo$G^=k1%Drx))`tEU$ScItf)l*R3OVDZZyDC&Xn;X^$H&uH{~Spaw*1olgU`)$Dc z<-q-BAh$O$7#52)99W3^14qjR5$>2uuo;e*FUTN z%RXrIW6D!{M}n9;zF+T16my_umghW|+>vyXy)L{%kC(ms>!L|#`Ix#`^!qz?*^35b z4+3(>{rmUH-tW5qyYXoN@I~|ixV<-8_I9x41+pt&l)d_=-y3+Si$z-xfF&F#ANo50 zd>k}C?ZS4?sla>|0O)6c#9iHJ`#(!KtRDYqAi#kIs(aTJ zd(U^MpZ+dj$lju7uVH5&7WIywy{y&i-fms?zF+nhc0KTY`}c7N#N21C1jNs=;O{D1 zz_YSOOE6S!iyykhPQPq_^v_w;`}gx45a@v&-`^3YFNc`!3gw>%06r!<&`%Hn8w;9Js*m`o4MqLi^vZdmEJ=fWlpHxGO5ye|){;G4h<~U?~iu m2Y?|5el~Zt1Am%-|8D?*R - Panoramix + + Panoramix + diff --git a/templates/panoramix/datasource.html b/templates/panoramix/datasource.html index e29d4748eca27..58fa6a939924d 100644 --- a/templates/panoramix/datasource.html +++ b/templates/panoramix/datasource.html @@ -4,6 +4,7 @@

{{ datasource }}

+
{{ form.viz_type.label }}: {{ form.viz_type(class_="form-control select2") }}
{{ form.granularity.label }}: {{ form.granularity(class_="form-control select2") }}
{{ form.since.label }}: {{ form.since(class_="form-control select2") }}
{{ form.groupby.label }}: {{ form.groupby(class_="form-control select2") }}
@@ -16,24 +17,28 @@

Filters

{{ form.flt_eq_1(class_="form-control") }}

- + +
+
+

{{ verbose_viz_type }}

+ {% block viz %} + {% endblock %} -

Tabular Data

- {{ table|safe }} - -

Results

-
-           {{ results }} 
-        
+ {% if debug %} +

Results

+
+               {{ results }} 
+            
-

Latest Segment Metadata

-
-           {{ latest_metadata }} 
-        
+

Latest Segment Metadata

+
+               {{ latest_metadata }} 
+            
+ {% endif %}
{% endblock %} diff --git a/templates/panoramix/viz_highcharts.html b/templates/panoramix/viz_highcharts.html new file mode 100644 index 0000000000000..efadd26fc9bf9 --- /dev/null +++ b/templates/panoramix/viz_highcharts.html @@ -0,0 +1,25 @@ +{% extends "panoramix/datasource.html" %} +{% block viz %} +
+{% endblock %} + +{% block scripts %} +{{ super() }} + + +{% endblock %} diff --git a/templates/panoramix/viz_table.html b/templates/panoramix/viz_table.html new file mode 100644 index 0000000000000..d4e8eae4529ab --- /dev/null +++ b/templates/panoramix/viz_table.html @@ -0,0 +1,8 @@ +{% extends "panoramix/datasource.html" %} +{% block viz %} + {{ table|safe }} +{% endblock %} + +{% block scripts %} +{{ super() }} +{% endblock %}