From 1475408ed82e39d285902a94dfa7ef70063eb0b3 Mon Sep 17 00:00:00 2001 From: Daniel Bradburn Date: Tue, 18 Jul 2017 08:26:12 +0200 Subject: [PATCH 01/11] add .venv* to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 48981443..4c835f91 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,6 @@ com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties + +# Virtual env +.venv* \ No newline at end of file From 2a72e12ea1b6aef806ee766ee534d56bbe561c8e Mon Sep 17 00:00:00 2001 From: Daniel Bradburn Date: Wed, 2 Aug 2017 22:42:35 +0200 Subject: [PATCH 02/11] Added a distribution tab to silk which can be used to get a visualization of the request timings, grouped either by date or revision. The default revision is taken from source control, however can be customized using the silk config for example to use a version number, or any other identifier. --- requirements.txt | 1 + setup.py | 1 + silk/config.py | 24 + silk/migrations/0006_request_revision.py | 21 + silk/models.py | 31 + silk/request_filters.py | 11 +- silk/static/silk/js/distribution.js | 213 +++ silk/static/silk/lib/d3.v3.min.js | 5 + silk/static/silk/lib/distrochart.css | 142 ++ silk/static/silk/lib/distrochart.js | 1541 +++++++++++++++++ silk/static/silk/lib/strftime.min.js | 23 + silk/static/silk/lib/url.js | 199 +++ silk/static/silk/lib/url.min.js | 1 + silk/templates/silk/distribution.html | 69 + .../silk/inclusion/request_filter.html | 174 ++ silk/templates/silk/inclusion/root_menu.html | 7 + silk/templates/silk/requests.html | 176 +- silk/templatetags/silk_inclusion.py | 11 + silk/urls.py | 18 +- silk/views/distribution.py | 81 + silk/views/filterable_requests_view.py | 86 + silk/views/profiling.py | 4 +- silk/views/requests.py | 65 +- silk/views/summary.py | 4 +- 24 files changed, 2678 insertions(+), 230 deletions(-) create mode 100644 silk/migrations/0006_request_revision.py create mode 100644 silk/static/silk/js/distribution.js create mode 100644 silk/static/silk/lib/d3.v3.min.js create mode 100644 silk/static/silk/lib/distrochart.css create mode 100644 silk/static/silk/lib/distrochart.js create mode 100644 silk/static/silk/lib/strftime.min.js create mode 100644 silk/static/silk/lib/url.js create mode 100644 silk/static/silk/lib/url.min.js create mode 100644 silk/templates/silk/distribution.html create mode 100644 silk/templates/silk/inclusion/request_filter.html create mode 100644 silk/views/distribution.py create mode 100644 silk/views/filterable_requests_view.py diff --git a/requirements.txt b/requirements.txt index 293854e4..591dacaa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,3 +11,4 @@ Django>=1.11 freezegun>=0.3 factory-boy>=2.8.1 gprof2dot>=2016.10.13,<2017.09.19 +dealer>=2.0.5 diff --git a/setup.py b/setup.py index e917dd89..2489287c 100644 --- a/setup.py +++ b/setup.py @@ -57,5 +57,6 @@ def read_md(f): 'autopep8', 'pytz', 'gprof2dot<2017.09.19', + 'dealer', ] ) diff --git a/silk/config.py b/silk/config.py index 68abf484..f62a89ff 100644 --- a/silk/config.py +++ b/silk/config.py @@ -2,15 +2,37 @@ from django.utils import six +from dealer.auto import auto + from silk.singleton import Singleton + def default_permissions(user): if user: return user.is_staff return False +def default_revision(): + revision = auto.revision + try: + # This is a pretty flaky way of getting revisions in a semi chronological + # order (of course two commits from the same second cannot be correctly + # ordered) for a couple of reasons: + # + # - it only works for git + # - it's using the protected _repo attribute from dealer + # - the timestamp becomes visible in the revision + # + # However it is better than order commit hashes alphabetically + timestamp = auto._repo.git('show -s --format=%at ' + revision) + revision = ' # '.join([timestamp.decode(), revision]) + except: + pass + return revision + + class SilkyConfig(six.with_metaclass(Singleton, object)): defaults = { 'SILKY_DYNAMIC_PROFILING': [], @@ -28,6 +50,8 @@ class SilkyConfig(six.with_metaclass(Singleton, object)): 'SILKY_INTERCEPT_PERCENT': 100, 'SILKY_INTERCEPT_FUNC': None, 'SILKY_PYTHON_PROFILER': False, + 'SILKY_REVISION': default_revision(), + 'SILKY_POST_PROCESS_REQUEST': lambda x: None, 'SILKY_STORAGE_CLASS': 'silk.storage.ProfilerResultStorage' } diff --git a/silk/migrations/0006_request_revision.py b/silk/migrations/0006_request_revision.py new file mode 100644 index 00000000..be8217c6 --- /dev/null +++ b/silk/migrations/0006_request_revision.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.3 on 2017-12-08 12:52 +from __future__ import unicode_literals + +from django.db import migrations, models +import silk.storage + + +class Migration(migrations.Migration): + + dependencies = [ + ('silk', '0005_increase_request_prof_file_length'), + ] + + operations = [ + migrations.AddField( + model_name='request', + name='revision', + field=models.TextField(blank=True, default=''), + ), + ] diff --git a/silk/models.py b/silk/models.py index ec940a31..cebe7b07 100644 --- a/silk/models.py +++ b/silk/models.py @@ -72,6 +72,7 @@ class Request(models.Model): meta_time_spent_queries = FloatField(null=True, blank=True) pyprofile = TextField(blank=True, default='') prof_file = FileField(max_length=300, blank=True, storage=silk_storage) + revision = TextField(blank=True, default='') @property def total_meta_time(self): @@ -112,6 +113,30 @@ def time_spent_on_sql_queries(self): """ return sum(x.time_taken for x in SQLQuery.objects.filter(request=self)) + @classmethod + def get_date(cls, start_time): + return start_time.date() + + @property + def date(self): + return self.get_date(self.start_time) + + @classmethod + def get_hour(cls, start_time): + return start_time.strftime('%Y-%m-%d %H') + + @property + def hour(self): + return self.get_hour(self.start_time) + + @classmethod + def get_minute(cls, start_time): + return start_time.strftime('%Y-%m-%d %H:%M') + + @property + def minute(self): + return self.get_minute(self.start_time) + @property def headers(self): if self.encoded_headers: @@ -163,6 +188,12 @@ def save(self, *args, **kwargs): interval = self.end_time - self.start_time self.time_taken = interval.total_seconds() * 1000 + config = SilkyConfig() + + self.revision = config.SILKY_REVISION + + config.SILKY_POST_PROCESS_REQUEST(self) + super(Request, self).save(*args, **kwargs) Request.garbage_collect(force=False) diff --git a/silk/request_filters.py b/silk/request_filters.py index f0109ed2..c7d7699e 100644 --- a/silk/request_filters.py +++ b/silk/request_filters.py @@ -206,16 +206,21 @@ def __init__(self, value): super(MethodFilter, self).__init__(value, method=value) -def filters_from_request(request): +class RevisionFilter(BaseFilter): + def __init__(self, value): + super(RevisionFilter, self).__init__(value, revision=value) + + +def filters_from_query_dict(query_dict): raw_filters = {} - for key in request.POST: + for key in query_dict: splt = key.split('-') if splt[0].startswith('filter'): ident = splt[1] typ = splt[2] if ident not in raw_filters: raw_filters[ident] = {} - raw_filters[ident][typ] = request.POST[key] + raw_filters[ident][typ] = query_dict[key] filters = {} for ident, raw_filter in raw_filters.items(): value = raw_filter.get('value', '') diff --git a/silk/static/silk/js/distribution.js b/silk/static/silk/js/distribution.js new file mode 100644 index 00000000..e3de80e6 --- /dev/null +++ b/silk/static/silk/js/distribution.js @@ -0,0 +1,213 @@ +/** + * Get the view name filter param dictionary for use in generating uri query parameters. + * @param viewName + * @returns {{filter-viewname-typ: [string], filter-viewname-value: [*]}} + */ +function viewNameFilter(viewName) { + return { + 'filter-viewname-typ': ['ViewNameFilter'], + 'filter-viewname-value': [viewName] + } +} + +/** + * Get the revision filter param dictionary for use in generating uri query parameters. + * @param revision The revision to filter by. + * @returns {{filter-revision-typ: [string], filter-revision-value: [*]}} + */ +function revisionFilter(revision) { + return { + 'filter-revision-typ': ['RevisionFilter'], + 'filter-revision-value': [revision] + } +} + +/** + * Get the date filter param dictionary for use in generating uri query parameters. + * @param date The date to filter by. + * @returns {{ + * filter-afterdate-typ: [string], + * filter-afterdate-value: [*], + * filter-beforedate-typ: [string], + * filter-beforedate-value: [*] + * }} + */ +function dateFilter(date) { + date = new Date(date); + var after = strftime('%Y/%m/%d 00:00', date); + var before = strftime('%Y/%m/%d 23:59', date); + return { + 'filter-afterdate-typ': ['AfterDateFilter'], + 'filter-afterdate-value': [after], + 'filter-beforedate-typ': ['BeforeDateFilter'], + 'filter-beforedate-value': [before] + } +} + +/** + * Get the group-by parameter dictionary for use in generating uri query parameters. + * @param group The attribute which should be used for grouping distribution charts. + * @returns {{group-by: *}} + */ +function groupBy(group) { + return {'group-by': group} +} + +// mapping of filter by parameters to function for generating filter query parameters +var filterFunctions = { + 'view_name': viewNameFilter, + 'date': dateFilter, + 'revision': revisionFilter +}; + +/** + * Make URI parameters from a dictionary. + * @param obj dictionary to convert to parameters. + * @returns {string} + */ +function makeURIParameters(obj) { + var str = []; + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); + } + } + return str.join("&"); +} + +/** + * Get the color that should be used for a plot mapping a value to the range 0..maxValue + * @param value the value to get the color for. + * @param maxValue the max color of the range to map + * @returns {string} + */ +function getColor(value, maxValue) { + var colors = [ + '#b4c400', + '#c29800', + '#bf5c00', + '#bd0000', + '#b80015' + ]; + var index = Math.floor((value / maxValue) * colors.length); + index = Math.max(0, Math.min(index, colors.length - 1)); + return colors[index]; +} + +/** + * Initialise the distribution chart. + * @param distributionUrl + */ +function initChart(distributionUrl) { + + var inputURIParams = $.url('?'); + var groupByParam = inputURIParams === undefined ? 'date' : inputURIParams.group_by || 'date'; + var level = inputURIParams === undefined ? 0 : parseInt(inputURIParams.level) || 0; + var locationWithoutQuery = location.href.split("?")[0]; + var filterParams = {}; + var filterName = ''; + var filterParamValue = ''; + + // parse the input uri parameters to get the filter to apply + for (var paramName in inputURIParams) { + if (paramName in filterFunctions) { + filterName = paramName; + var filter = filterFunctions[paramName]; + filterParamValue = inputURIParams[paramName]; + filterValue = filter(filterParamValue); + filterParams = Object.assign(filterParams, filterValue); + } + } + + // generate the chart title + var viewTitleValue = 'all'; + var groupTitleValue = 'all'; + var groupTitle = groupByParam; + if (level === 1) { + groupTitle = filterName; + groupTitleValue = filterParamValue; + } else if (level === 2) { + viewTitleValue = filterParamValue; + } + var title = 'view: ' + viewTitleValue + ' | ' + + groupTitle + ': ' + groupTitleValue + '' + ; + $('#title').html(title); + + var groupParams = groupBy(groupByParam); + var outputURIParams = makeURIParameters(Object.assign(filterParams, groupParams)); + var url = [distributionUrl, outputURIParams].join("?"); + + d3.csv(url, function (error, data) { + + var maxValue = 0; + + data.forEach(function (d) { + d.value = +d.value; + if (d.value > maxValue) { + maxValue = d.value; + } + }); + + var chart = makeDistroChart({ + data: data, + xName: 'group', + yName: 'value', + axisLabels: {xAxis: null, yAxis: 'Time Taken (ms)'}, + selector: "#chart-distro1", + chartSize: {height: window.innerHeight - 110, width: window.innerWidth}, + constrainExtremes: false, + margin: {top: 20, right: 20, bottom: 80, left: 60} + + }); + + for (const groupName in chart.groupObjs) { + const groupObj = chart.groupObjs[groupName]; + groupObj.g + .on('mouseover.opacity', function () { + groupObj.g.transition().duration(300).attr('opacity', 0.5).style('cursor', 'pointer'); + }) + .on('mouseout.opacity', function () { + groupObj.g.transition().duration(300).attr('opacity', 1).style('cursor', 'default'); + return false; + }) + .on('click.opacity', function () { + var outputLinkParams = Object.assign({}, inputURIParams); + outputLinkParams[groupByParam] = groupName; + if (level == 0) { + outputLinkParams['group_by'] = 'view_name'; + outputLinkParams['level'] = 1; + window.location = [locationWithoutQuery, makeURIParameters(outputLinkParams)].join('?'); + } + else if (level == 1) { + outputLinkParams['group_by'] = filterName; + outputLinkParams['level'] = 2; + delete outputLinkParams[filterName]; + window.location = [locationWithoutQuery, makeURIParameters(outputLinkParams)].join('?'); + } + }) + ; + } + + chart.renderBoxPlot(); + chart.boxPlots.show({ + reset: true, + showWhiskers: true, + showOutliers: true, + boxWidth: 10, + lineWidth: 1, + colors: function (cName) { + return getColor(chart.groupObjs[cName].metrics.quartile3, maxValue); + } + }); + + // chart.renderViolinPlot(); + // chart.violinPlots.show({ + // reset: true, + // clamp: 0, + // colors: function (cName) { + // return getColor(chart.groupObjs[cName].metrics.quartile3, maxValue); + // } + // }); + }); +} \ No newline at end of file diff --git a/silk/static/silk/lib/d3.v3.min.js b/silk/static/silk/lib/d3.v3.min.js new file mode 100644 index 00000000..16648730 --- /dev/null +++ b/silk/static/silk/lib/d3.v3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/silk/static/silk/lib/distrochart.css b/silk/static/silk/lib/distrochart.css new file mode 100644 index 00000000..7b8eef8e --- /dev/null +++ b/silk/static/silk/lib/distrochart.css @@ -0,0 +1,142 @@ +/*Primary Chart*/ + +/*Nested divs for responsiveness*/ +.chart-wrapper { + max-width: 800px; /*Overwritten by the JS*/ + min-width: 304px; + margin-bottom: 8px; + background-color: #FAF7F7; +} +.chart-wrapper .inner-wrapper { + position: relative; + padding-bottom: 50%; /*Overwritten by the JS*/ + width: 100%; +} +.chart-wrapper .outer-box { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; +} +.chart-wrapper .inner-box { + width: 100%; + height: 100%; +} + +.chart-wrapper text { + font-family: sans-serif; + font-size: 13px; +} + +.chart-wrapper .axis path, +.chart-wrapper .axis line { + fill: none; + stroke: #888; + stroke-width: 2px; + shape-rendering: crispEdges; +} + +.chart-wrapper .y.axis .tick line { + stroke: lightgrey; + opacity: 0.6; + stroke-dasharray: 2,1; + stroke-width: 1; + shape-rendering: crispEdges; + +} + +.chart-wrapper .x.axis .domain { + display: none; +} + +.chart-wrapper div.tooltip { + position: absolute; + text-align: left; + padding: 3px; + font: 12px sans-serif; + background: lightcyan; + border: 0px; + border-radius: 1px; + pointer-events: none; + opacity: 0.7; +} + +/*Box Plot*/ +.chart-wrapper .box-plot .box { + fill-opacity: 0.4; + stroke-width: 2; +} +.chart-wrapper .box-plot line { + stroke-width: 2px; +} +.chart-wrapper .box-plot circle { + fill: white; + stroke: black; +} + +.chart-wrapper .box-plot .median { + stroke: black; +} + +.chart-wrapper .box-plot circle.median { + /*the script makes the circles the same color as the box, you can override this in the js*/ + fill: white !important; +} + +.chart-wrapper .box-plot .mean { + stroke: white; + stroke-dasharray: 2,1; + stroke-width: 1px; +} + +@media (max-width:500px){ + .chart-wrapper .box-plot circle {display: none;} +} + +/*Violin Plot*/ + +.chart-wrapper .violin-plot .area { + shape-rendering: geometricPrecision; + opacity: 0.4; +} + +.chart-wrapper .violin-plot .line { + fill: none; + stroke-width: 2px; + shape-rendering: geometricPrecision; +} + +/*Notch Plot*/ +.chart-wrapper .notch-plot .notch { + fill-opacity: 0.4; + stroke-width: 2; +} + +/* Point Plots*/ +.chart-wrapper .points-plot .point { + stroke: black; + stroke-width: 1px; +} + +.chart-wrapper .metrics-lines { + stroke-width: 4px; +} + +/* Non-Chart Styles for demo*/ +.chart-options { + min-width: 200px; + font-size: 13px; + font-family: sans-serif; +} +.chart-options button { + margin: 3px; + padding: 3px; + font-size: 12px; +} +.chart-options p { + display: inline; +} +@media (max-width:500px){ + .chart-options p {display: block;} +} \ No newline at end of file diff --git a/silk/static/silk/lib/distrochart.js b/silk/static/silk/lib/distrochart.js new file mode 100644 index 00000000..bd1bdff8 --- /dev/null +++ b/silk/static/silk/lib/distrochart.js @@ -0,0 +1,1541 @@ +/** + * @fileOverview A D3 based distribution chart system. Supports: Box plots, Violin plots, Notched box plots, trend lines, beeswarm plot + * @version 3.0 + */ + + +/** + * Creates a box plot, violin plot, and or notched box plot + * @param settings Configuration options for the base plot + * @param settings.data The data for the plot + * @param settings.xName The name of the column that should be used for the x groups + * @param settings.yName The name of the column used for the y values + * @param {string} settings.selector The selector string for the main chart div + * @param [settings.axisLabels={}] Defaults to the xName and yName + * @param [settings.yTicks = 1] 1 = default ticks. 2 = double, 0.5 = half + * @param [settings.scale='linear'] 'linear' or 'log' - y scale of the chart + * @param [settings.chartSize={width:800, height:400}] The height and width of the chart itself (doesn't include the container) + * @param [settings.margin={top: 15, right: 60, bottom: 40, left: 50}] The margins around the chart (inside the main div) + * @param [settings.constrainExtremes=false] Should the y scale include outliers? + * @returns {object} chart A chart object + */ +function makeDistroChart(settings) { + + var chart = {}; + + // Defaults + chart.settings = { + data: null, + xName: null, + yName: null, + selector: null, + axisLables: null, + yTicks: 1, + scale: 'linear', + chartSize: {width: 800, height: 400}, + margin: {top: 15, right: 60, bottom: 40, left: 50}, + constrainExtremes: false, + color: d3.scale.category10() + }; + for (var setting in settings) { + chart.settings[setting] = settings[setting] + } + + + function formatAsFloat(d) { + if (d % 1 !== 0) { + return d3.format(".2f")(d); + } else { + return d3.format(".0f")(d); + } + } + + function logFormatNumber(d) { + var x = Math.log(d) / Math.log(10) + 1e-6; + return Math.abs(x - Math.floor(x)) < 0.6 ? formatAsFloat(d) : ""; + } + + chart.yFormatter = formatAsFloat; + + chart.data = chart.settings.data; + + chart.groupObjs = {}; //The data organized by grouping and sorted as well as any metadata for the groups + chart.objs = {mainDiv: null, chartDiv: null, g: null, xAxis: null, yAxis: null}; + chart.colorFunct = null; + + /** + * Takes an array, function, or object mapping and created a color function from it + * @param {function|[]|object} colorOptions + * @returns {function} Function to be used to determine chart colors + */ + function getColorFunct(colorOptions) { + if (typeof colorOptions == 'function') { + return colorOptions + } else if (Array.isArray(colorOptions)) { + // If an array is provided, map it to the domain + var colorMap = {}, cColor = 0; + for (var cName in chart.groupObjs) { + colorMap[cName] = colorOptions[cColor]; + cColor = (cColor + 1) % colorOptions.length; + } + return function (group) { + return colorMap[group]; + } + } else if (typeof colorOptions == 'object') { + // if an object is provided, assume it maps to the colors + return function (group) { + return colorOptions[group]; + } + } else { + return d3.scale.category10(); + } + } + + /** + * Takes a percentage as returns the values that correspond to that percentage of the group range witdh + * @param objWidth Percentage of range band + * @param gName The bin name to use to get the x shift + * @returns {{left: null, right: null, middle: null}} + */ + function getObjWidth(objWidth, gName) { + var objSize = {left: null, right: null, middle: null}; + var width = chart.xScale.rangeBand() * (objWidth / 100); + var padding = (chart.xScale.rangeBand() - width) / 2; + var gShift = chart.xScale(gName); + objSize.middle = chart.xScale.rangeBand() / 2 + gShift; + objSize.left = padding + gShift; + objSize.right = objSize.left + width; + return objSize; + } + + /** + * Adds jitter to the scatter point plot + * @param doJitter true or false, add jitter to the point + * @param width percent of the range band to cover with the jitter + * @returns {number} + */ + function addJitter(doJitter, width) { + if (doJitter !== true || width == 0) { + return 0 + } + return Math.floor(Math.random() * width) - width / 2; + } + + function shallowCopy(oldObj) { + var newObj = {}; + for (var i in oldObj) { + if (oldObj.hasOwnProperty(i)) { + newObj[i] = oldObj[i]; + } + } + return newObj; + } + + /** + * Closure that creates the tooltip hover function + * @param groupName Name of the x group + * @param metrics Object to use to get values for the group + * @returns {Function} A function that provides the values for the tooltip + */ + function tooltipHover(groupName, metrics) { + var tooltipString = "Group: " + groupName; + tooltipString += "Max: " + formatAsFloat(metrics.max, 0.1); + tooltipString += "Q3: " + formatAsFloat(metrics.quartile3); + tooltipString += "Median: " + formatAsFloat(metrics.median); + tooltipString += "Q1: " + formatAsFloat(metrics.quartile1); + tooltipString += "Min: " + formatAsFloat(metrics.min); + return function () { + chart.objs.tooltip.transition().duration(200).style("opacity", 0.9); + chart.objs.tooltip.html(tooltipString) + }; + } + + /** + * Parse the data and calculates base values for the plots + */ + !function prepareData() { + function calcMetrics(values) { + + var metrics = { //These are the original non�scaled values + max: null, + upperOuterFence: null, + upperInnerFence: null, + quartile3: null, + median: null, + mean: null, + iqr: null, + quartile1: null, + lowerInnerFence: null, + lowerOuterFence: null, + min: null + }; + + metrics.min = d3.min(values); + metrics.quartile1 = d3.quantile(values, 0.25); + metrics.median = d3.median(values); + metrics.mean = d3.mean(values); + metrics.quartile3 = d3.quantile(values, 0.75); + metrics.max = d3.max(values); + metrics.iqr = metrics.quartile3 - metrics.quartile1; + + //The inner fences are the closest value to the IQR without going past it (assumes sorted lists) + var LIF = metrics.quartile1 - (1.5 * metrics.iqr); + var UIF = metrics.quartile3 + (1.5 * metrics.iqr); + for (var i = 0; i <= values.length; i++) { + if (values[i] < LIF) { + continue; + } + if (!metrics.lowerInnerFence && values[i] >= LIF) { + metrics.lowerInnerFence = values[i]; + continue; + } + if (values[i] > UIF) { + metrics.upperInnerFence = values[i - 1]; + break; + } + } + + + metrics.lowerOuterFence = metrics.quartile1 - (3 * metrics.iqr); + metrics.upperOuterFence = metrics.quartile3 + (3 * metrics.iqr); + if (!metrics.lowerInnerFence) { + metrics.lowerInnerFence = metrics.min; + } + if (!metrics.upperInnerFence) { + metrics.upperInnerFence = metrics.max; + } + return metrics + } + + var current_x = null; + var current_y = null; + var current_row; + + // Group the values + for (current_row = 0; current_row < chart.data.length; current_row++) { + current_x = chart.data[current_row][chart.settings.xName]; + current_y = chart.data[current_row][chart.settings.yName]; + + if (chart.groupObjs.hasOwnProperty(current_x)) { + chart.groupObjs[current_x].values.push(current_y); + } else { + chart.groupObjs[current_x] = {}; + chart.groupObjs[current_x].values = [current_y]; + } + } + + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].values.sort(d3.ascending); + chart.groupObjs[cName].metrics = {}; + chart.groupObjs[cName].metrics = calcMetrics(chart.groupObjs[cName].values); + + } + }(); + + /** + * Prepare the chart settings and chart div and svg + */ + !function prepareSettings() { + //Set base settings + chart.margin = chart.settings.margin; + chart.divWidth = chart.settings.chartSize.width; + chart.divHeight = chart.settings.chartSize.height; + chart.width = chart.divWidth - chart.margin.left - chart.margin.right; + chart.height = chart.divHeight - chart.margin.top - chart.margin.bottom; + + if (chart.settings.axisLabels) { + chart.xAxisLable = chart.settings.axisLabels.xAxis; + chart.yAxisLable = chart.settings.axisLabels.yAxis; + } else { + chart.xAxisLable = chart.settings.xName; + chart.yAxisLable = chart.settings.yName; + } + + if (chart.settings.scale === 'log') { + chart.yScale = d3.scale.log(); + chart.yFormatter = logFormatNumber; + } else { + chart.yScale = d3.scale.linear(); + } + + if (chart.settings.constrainExtremes === true) { + var fences = []; + for (var cName in chart.groupObjs) { + fences.push(chart.groupObjs[cName].metrics.lowerInnerFence); + fences.push(chart.groupObjs[cName].metrics.upperInnerFence); + } + chart.range = d3.extent(fences); + + } else { + chart.range = d3.extent(chart.data, function (d) {return d[chart.settings.yName];}); + } + + chart.colorFunct = getColorFunct(chart.settings.colors); + + // Build Scale functions + chart.yScale.range([chart.height, 0]).domain(chart.range).nice().clamp(true); + chart.xScale = d3.scale.ordinal().domain(Object.keys(chart.groupObjs)).rangeBands([0, chart.width]); + + //Build Axes Functions + chart.objs.yAxis = d3.svg.axis() + .scale(chart.yScale) + .orient("left") + .tickFormat(chart.yFormatter) + .outerTickSize(0) + .innerTickSize(-chart.width + (chart.margin.right + chart.margin.left)); + chart.objs.yAxis.ticks(chart.objs.yAxis.ticks()*chart.settings.yTicks); + chart.objs.xAxis = d3.svg.axis().scale(chart.xScale).orient("bottom").tickSize(5); + }(); + + /** + * Updates the chart based on the current settings and window size + * @returns {*} + */ + chart.update = function () { + // Update chart size based on view port size + chart.width = parseInt(chart.objs.chartDiv.style("width"), 10) - (chart.margin.left + chart.margin.right); + chart.height = parseInt(chart.objs.chartDiv.style("height"), 10) - (chart.margin.top + chart.margin.bottom); + + // Update scale functions + chart.xScale.rangeBands([0, chart.width]); + chart.yScale.range([chart.height, 0]); + + // Update the yDomain if the Violin plot clamp is set to -1 meaning it will extend the violins to make nice points + if (chart.violinPlots && chart.violinPlots.options.show == true && chart.violinPlots.options._yDomainVP != null) { + chart.yScale.domain(chart.violinPlots.options._yDomainVP).nice().clamp(true); + } else { + chart.yScale.domain(chart.range).nice().clamp(true); + } + + //Update axes + chart.objs.g.select('.x.axis').attr("transform", "translate(0," + chart.height + ")").call(chart.objs.xAxis) + .selectAll("text") + .attr("y", 5) + .attr("x", -5) + .attr("transform", "rotate(-45)") + .style("text-anchor", "end"); + chart.objs.g.select('.x.axis .label').attr("x", chart.width / 2); + chart.objs.g.select('.y.axis').call(chart.objs.yAxis.innerTickSize(-chart.width)); + chart.objs.g.select('.y.axis .label').attr("x", -chart.height / 2); + chart.objs.chartDiv.select('svg').attr("width", chart.width + (chart.margin.left + chart.margin.right)).attr("height", chart.height + (chart.margin.top + chart.margin.bottom)); + + return chart; + }; + + /** + * Prepare the chart html elements + */ + !function prepareChart() { + // Build main div and chart div + chart.objs.mainDiv = d3.select(chart.settings.selector) + .style("max-width", chart.divWidth + "px"); + // Add all the divs to make it centered and responsive + chart.objs.mainDiv.append("div") + .attr("class", "inner-wrapper") + .style("padding-bottom", (chart.divHeight / chart.divWidth) * 100 + "%") + .append("div").attr("class", "outer-box") + .append("div").attr("class", "inner-box"); + // Capture the inner div for the chart (where the chart actually is) + chart.selector = chart.settings.selector + " .inner-box"; + chart.objs.chartDiv = d3.select(chart.selector); + d3.select(window).on('resize.' + chart.selector, chart.update); + + // Create the svg + chart.objs.g = chart.objs.chartDiv.append("svg") + .attr("class", "chart-area") + .attr("width", chart.width + (chart.margin.left + chart.margin.right)) + .attr("height", chart.height + (chart.margin.top + chart.margin.bottom)) + .append("g") + .attr("transform", "translate(" + chart.margin.left + "," + chart.margin.top + ")"); + + // Create axes + chart.objs.axes = chart.objs.g.append("g").attr("class", "axis"); + chart.objs.axes.append("g") + .attr("class", "x axis") + .attr("transform", "translate(0," + chart.height + ")") + .call(chart.objs.xAxis); + chart.objs.axes.append("g") + .attr("class", "y axis") + .call(chart.objs.yAxis) + .append("text") + .attr("class", "label") + .attr("transform", "rotate(-90)") + .attr("y", -42) + .attr("x", -chart.height / 2) + .attr("dy", ".71em") + .style("text-anchor", "middle") + .text(chart.yAxisLable); + + // Create tooltip div + chart.objs.tooltip = chart.objs.mainDiv.append('div').attr('class', 'tooltip'); + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].g = chart.objs.g.append("g").attr("class", "group"); + chart.groupObjs[cName].g.on("mouseover", function () { + chart.objs.tooltip + .style("display", null) + .style("left", (d3.event.pageX) + "px") + .style("top", (d3.event.pageY - 28) + "px"); + }).on("mouseout", function () { + chart.objs.tooltip.style("display", "none"); + }).on("mousemove", tooltipHover(cName, chart.groupObjs[cName].metrics)) + } + chart.update(); + }(); + + /** + * Render a violin plot on the current chart + * @param options + * @param [options.showViolinPlot=true] True or False, show the violin plot + * @param [options.resolution=100 default] + * @param [options.bandwidth=10 default] May need higher bandwidth for larger data sets + * @param [options.width=50] The max percent of the group rangeBand that the violin can be + * @param [options.interpolation=''] How to render the violin + * @param [options.clamp=0 default] + * 0 = keep data within chart min and max, clamp once data = 0. May extend beyond data set min and max + * 1 = clamp at min and max of data set. Possibly no tails + * -1 = extend chart axis to make room for data to interpolate to 0. May extend axis and data set min and max + * @param [options.colors=chart default] The color mapping for the violin plot + * @returns {*} The chart object + */ + chart.renderViolinPlot = function (options) { + chart.violinPlots = {}; + + var defaultOptions = { + show: true, + showViolinPlot: true, + resolution: 100, + bandwidth: 20, + width: 50, + interpolation: 'cardinal', + clamp: 1, + colors: chart.colorFunct, + _yDomainVP: null // If the Violin plot is set to close all violin plots, it may need to extend the domain, that extended domain is stored here + }; + chart.violinPlots.options = shallowCopy(defaultOptions); + for (var option in options) { + chart.violinPlots.options[option] = options[option] + } + var vOpts = chart.violinPlots.options; + + // Create violin plot objects + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].violin = {}; + chart.groupObjs[cName].violin.objs = {}; + } + + /** + * Take a new set of options and redraw the violin + * @param updateOptions + */ + chart.violinPlots.change = function (updateOptions) { + if (updateOptions) { + for (var key in updateOptions) { + vOpts[key] = updateOptions[key] + } + } + + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].violin.objs.g.remove() + } + + chart.violinPlots.prepareViolin(); + chart.violinPlots.update(); + }; + + chart.violinPlots.reset = function () { + chart.violinPlots.change(defaultOptions) + }; + chart.violinPlots.show = function (opts) { + if (opts !== undefined) { + opts.show = true; + if (opts.reset) { + chart.violinPlots.reset() + } + } else { + opts = {show: true}; + } + chart.violinPlots.change(opts); + + }; + + chart.violinPlots.hide = function (opts) { + if (opts !== undefined) { + opts.show = false; + if (opts.reset) { + chart.violinPlots.reset() + } + } else { + opts = {show: false}; + } + chart.violinPlots.change(opts); + + }; + + /** + * Update the violin obj values + */ + chart.violinPlots.update = function () { + var cName, cViolinPlot; + + for (cName in chart.groupObjs) { + cViolinPlot = chart.groupObjs[cName].violin; + + // Build the violins sideways, so use the yScale for the xScale and make a new yScale + var xVScale = chart.yScale.copy(); + + + // Create the Kernel Density Estimator Function + cViolinPlot.kde = kernelDensityEstimator(eKernel(vOpts.bandwidth), xVScale.ticks(vOpts.resolution)); + cViolinPlot.kdedata = cViolinPlot.kde(chart.groupObjs[cName].values); + + var interpolateMax = chart.groupObjs[cName].metrics.max, + interpolateMin = chart.groupObjs[cName].metrics.min; + + if (vOpts.clamp == 0 || vOpts.clamp == -1) { // + // When clamp is 0, calculate the min and max that is needed to bring the violin plot to a point + // interpolateMax = the Minimum value greater than the max where y = 0 + interpolateMax = d3.min(cViolinPlot.kdedata.filter(function (d) { + return (d.x > chart.groupObjs[cName].metrics.max && d.y == 0) + }), function (d) { + return d.x; + }); + // interpolateMin = the Maximum value less than the min where y = 0 + interpolateMin = d3.max(cViolinPlot.kdedata.filter(function (d) { + return (d.x < chart.groupObjs[cName].metrics.min && d.y == 0) + }), function (d) { + return d.x; + }); + // If clamp is -1 we need to extend the axises so that the violins come to a point + if (vOpts.clamp == -1) { + kdeTester = eKernelTest(eKernel(vOpts.bandwidth), chart.groupObjs[cName].values); + if (!interpolateMax) { + var interMaxY = kdeTester(chart.groupObjs[cName].metrics.max); + var interMaxX = chart.groupObjs[cName].metrics.max; + var count = 25; // Arbitrary limit to make sure we don't get an infinite loop + while (count > 0 && interMaxY != 0) { + interMaxY = kdeTester(interMaxX); + interMaxX += 1; + count -= 1; + } + interpolateMax = interMaxX; + } + if (!interpolateMin) { + var interMinY = kdeTester(chart.groupObjs[cName].metrics.min); + var interMinX = chart.groupObjs[cName].metrics.min; + var count = 25; // Arbitrary limit to make sure we don't get an infinite loop + while (count > 0 && interMinY != 0) { + interMinY = kdeTester(interMinX); + interMinX -= 1; + count -= 1; + } + interpolateMin = interMinX; + } + + } + // Check to see if the new values are outside the existing chart range + // If they are assign them to the master _yDomainVP + if (!vOpts._yDomainVP) vOpts._yDomainVP = chart.range.slice(0); + if (interpolateMin && interpolateMin < vOpts._yDomainVP[0]) { + vOpts._yDomainVP[0] = interpolateMin; + } + if (interpolateMax && interpolateMax > vOpts._yDomainVP[1]) { + vOpts._yDomainVP[1] = interpolateMax; + } + + + } + + + if (vOpts.showViolinPlot) { + chart.update(); + xVScale = chart.yScale.copy(); + + // Need to recalculate the KDE because the xVScale changed + cViolinPlot.kde = kernelDensityEstimator(eKernel(vOpts.bandwidth), xVScale.ticks(vOpts.resolution)); + cViolinPlot.kdedata = cViolinPlot.kde(chart.groupObjs[cName].values); + } + + cViolinPlot.kdedata = cViolinPlot.kdedata + .filter(function (d) { + return (!interpolateMin || d.x >= interpolateMin) + }) + .filter(function (d) { + return (!interpolateMax || d.x <= interpolateMax) + }); + } + for (cName in chart.groupObjs) { + cViolinPlot = chart.groupObjs[cName].violin; + + // Get the violin width + var objBounds = getObjWidth(vOpts.width, cName); + var width = (objBounds.right - objBounds.left) / 2; + + var yVScale = d3.scale.linear() + .range([width, 0]) + .domain([0, d3.max(cViolinPlot.kdedata, function (d) {return d.y;})]) + .clamp(true); + + var area = d3.svg.area() + .interpolate(vOpts.interpolation) + .x(function (d) {return xVScale(d.x);}) + .y0(width) + .y1(function (d) {return yVScale(d.y);}); + + var line = d3.svg.line() + .interpolate(vOpts.interpolation) + .x(function (d) {return xVScale(d.x);}) + .y(function (d) {return yVScale(d.y)}); + + if (cViolinPlot.objs.left.area) { + cViolinPlot.objs.left.area + .datum(cViolinPlot.kdedata) + .attr("d", area); + cViolinPlot.objs.left.line + .datum(cViolinPlot.kdedata) + .attr("d", line); + + cViolinPlot.objs.right.area + .datum(cViolinPlot.kdedata) + .attr("d", area); + cViolinPlot.objs.right.line + .datum(cViolinPlot.kdedata) + .attr("d", line); + } + + // Rotate the violins + cViolinPlot.objs.left.g.attr("transform", "rotate(90,0,0) translate(0,-" + objBounds.left + ") scale(1,-1)"); + cViolinPlot.objs.right.g.attr("transform", "rotate(90,0,0) translate(0,-" + objBounds.right + ")"); + } + }; + + /** + * Create the svg elements for the violin plot + */ + chart.violinPlots.prepareViolin = function () { + var cName, cViolinPlot; + + if (vOpts.colors) { + chart.violinPlots.color = getColorFunct(vOpts.colors); + } else { + chart.violinPlots.color = chart.colorFunct + } + + if (vOpts.show == false) {return} + + for (cName in chart.groupObjs) { + cViolinPlot = chart.groupObjs[cName].violin; + + cViolinPlot.objs.g = chart.groupObjs[cName].g.append("g").attr("class", "violin-plot"); + cViolinPlot.objs.left = {area: null, line: null, g: null}; + cViolinPlot.objs.right = {area: null, line: null, g: null}; + + cViolinPlot.objs.left.g = cViolinPlot.objs.g.append("g"); + cViolinPlot.objs.right.g = cViolinPlot.objs.g.append("g"); + + if (vOpts.showViolinPlot !== false) { + //Area + cViolinPlot.objs.left.area = cViolinPlot.objs.left.g.append("path") + .attr("class", "area") + .style("fill", chart.violinPlots.color(cName)); + cViolinPlot.objs.right.area = cViolinPlot.objs.right.g.append("path") + .attr("class", "area") + .style("fill", chart.violinPlots.color(cName)); + + //Lines + cViolinPlot.objs.left.line = cViolinPlot.objs.left.g.append("path") + .attr("class", "line") + .attr("fill", 'none') + .style("stroke", chart.violinPlots.color(cName)); + cViolinPlot.objs.right.line = cViolinPlot.objs.right.g.append("path") + .attr("class", "line") + .attr("fill", 'none') + .style("stroke", chart.violinPlots.color(cName)); + } + + } + + }; + + + function kernelDensityEstimator(kernel, x) { + return function (sample) { + return x.map(function (x) { + return {x:x, y:d3.mean(sample, function (v) {return kernel(x - v);})}; + }); + }; + } + + function eKernel(scale) { + return function (u) { + return Math.abs(u /= scale) <= 1 ? .75 * (1 - u * u) / scale : 0; + }; + } + + // Used to find the roots for adjusting violin axis + // Given an array, find the value for a single point, even if it is not in the domain + function eKernelTest(kernel, array) { + return function (testX) { + return d3.mean(array, function (v) {return kernel(testX - v);}) + } + } + + chart.violinPlots.prepareViolin(); + + d3.select(window).on('resize.' + chart.selector + '.violinPlot', chart.violinPlots.update); + chart.violinPlots.update(); + return chart; + }; + + /** + * Render a box plot on the current chart + * @param options + * @param [options.show=true] Toggle the whole plot on and off + * @param [options.showBox=true] Show the box part of the box plot + * @param [options.showWhiskers=true] Show the whiskers + * @param [options.showMedian=true] Show the median line + * @param [options.showMean=false] Show the mean line + * @param [options.medianCSize=3] The size of the circle on the median + * @param [options.showOutliers=true] Plot outliers + * @param [options.boxwidth=30] The max percent of the group rangeBand that the box can be + * @param [options.lineWidth=boxWidth] The max percent of the group rangeBand that the line can be + * @param [options.outlierScatter=false] Spread out the outliers so they don't all overlap (in development) + * @param [options.outlierCSize=2] Size of the outliers + * @param [options.colors=chart default] The color mapping for the box plot + * @returns {*} The chart object + */ + chart.renderBoxPlot = function (options) { + chart.boxPlots = {}; + + // Defaults + var defaultOptions = { + show: true, + showBox: true, + showWhiskers: true, + showMedian: true, + showMean: false, + medianCSize: 3.5, + showOutliers: true, + boxWidth: 30, + lineWidth: null, + scatterOutliers: false, + outlierCSize: 2.5, + colors: chart.colorFunct + }; + chart.boxPlots.options = shallowCopy(defaultOptions); + for (var option in options) { + chart.boxPlots.options[option] = options[option] + } + var bOpts = chart.boxPlots.options; + + //Create box plot objects + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].boxPlot = {}; + chart.groupObjs[cName].boxPlot.objs = {}; + } + + + /** + * Calculates all the outlier points for each group + */ + !function calcAllOutliers() { + + /** + * Create lists of the outliers for each content group + * @param cGroup The object to modify + * @return null Modifies the object in place + */ + function calcOutliers(cGroup) { + var cExtremes = []; + var cOutliers = []; + var cOut, idx; + for (idx = 0; idx <= cGroup.values.length; idx++) { + cOut = {value: cGroup.values[idx]}; + + if (cOut.value < cGroup.metrics.lowerInnerFence) { + if (cOut.value < cGroup.metrics.lowerOuterFence) { + cExtremes.push(cOut); + } else { + cOutliers.push(cOut); + } + } else if (cOut.value > cGroup.metrics.upperInnerFence) { + if (cOut.value > cGroup.metrics.upperOuterFence) { + cExtremes.push(cOut); + } else { + cOutliers.push(cOut); + } + } + } + cGroup.boxPlot.objs.outliers = cOutliers; + cGroup.boxPlot.objs.extremes = cExtremes; + } + + for (var cName in chart.groupObjs) { + calcOutliers(chart.groupObjs[cName]); + } + }(); + + /** + * Take updated options and redraw the box plot + * @param updateOptions + */ + chart.boxPlots.change = function (updateOptions) { + if (updateOptions) { + for (var key in updateOptions) { + bOpts[key] = updateOptions[key] + } + } + + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].boxPlot.objs.g.remove() + } + chart.boxPlots.prepareBoxPlot(); + chart.boxPlots.update() + }; + + chart.boxPlots.reset = function () { + chart.boxPlots.change(defaultOptions) + }; + chart.boxPlots.show = function (opts) { + if (opts !== undefined) { + opts.show = true; + if (opts.reset) { + chart.boxPlots.reset() + } + } else { + opts = {show: true}; + } + chart.boxPlots.change(opts) + + }; + chart.boxPlots.hide = function (opts) { + if (opts !== undefined) { + opts.show = false; + if (opts.reset) { + chart.boxPlots.reset() + } + } else { + opts = {show: false}; + } + chart.boxPlots.change(opts) + }; + + /** + * Update the box plot obj values + */ + chart.boxPlots.update = function () { + var cName, cBoxPlot; + + for (cName in chart.groupObjs) { + cBoxPlot = chart.groupObjs[cName].boxPlot; + + // Get the box width + var objBounds = getObjWidth(bOpts.boxWidth, cName); + var width = (objBounds.right - objBounds.left); + + var sMetrics = {}; //temp var for scaled (plottable) metric values + for (var attr in chart.groupObjs[cName].metrics) { + sMetrics[attr] = null; + sMetrics[attr] = chart.yScale(chart.groupObjs[cName].metrics[attr]); + } + + // Box + if (cBoxPlot.objs.box) { + cBoxPlot.objs.box + .attr("x", objBounds.left) + .attr('width', width) + .attr("y", sMetrics.quartile3) + .attr("rx", 1) + .attr("ry", 1) + .attr("height", -sMetrics.quartile3 + sMetrics.quartile1) + } + + // Lines + var lineBounds = null; + if (bOpts.lineWidth) { + lineBounds = getObjWidth(bOpts.lineWidth, cName) + } else { + lineBounds = objBounds + } + // --Whiskers + if (cBoxPlot.objs.upperWhisker) { + cBoxPlot.objs.upperWhisker.fence + .attr("x1", lineBounds.left) + .attr("x2", lineBounds.right) + .attr('y1', sMetrics.upperInnerFence) + .attr("y2", sMetrics.upperInnerFence); + cBoxPlot.objs.upperWhisker.line + .attr("x1", lineBounds.middle) + .attr("x2", lineBounds.middle) + .attr('y1', sMetrics.quartile3) + .attr("y2", sMetrics.upperInnerFence); + + cBoxPlot.objs.lowerWhisker.fence + .attr("x1", lineBounds.left) + .attr("x2", lineBounds.right) + .attr('y1', sMetrics.lowerInnerFence) + .attr("y2", sMetrics.lowerInnerFence); + cBoxPlot.objs.lowerWhisker.line + .attr("x1", lineBounds.middle) + .attr("x2", lineBounds.middle) + .attr('y1', sMetrics.quartile1) + .attr("y2", sMetrics.lowerInnerFence); + } + + // --Median + if (cBoxPlot.objs.median) { + cBoxPlot.objs.median.line + .attr("x1", lineBounds.left) + .attr("x2", lineBounds.right) + .attr('y1', sMetrics.median) + .attr("y2", sMetrics.median); + cBoxPlot.objs.median.circle + .attr("cx", lineBounds.middle) + .attr("cy", sMetrics.median) + } + + // --Mean + if (cBoxPlot.objs.mean) { + cBoxPlot.objs.mean.line + .attr("x1", lineBounds.left) + .attr("x2", lineBounds.right) + .attr('y1', sMetrics.mean) + .attr("y2", sMetrics.mean); + cBoxPlot.objs.mean.circle + .attr("cx", lineBounds.middle) + .attr("cy", sMetrics.mean); + } + + // Outliers + + var pt; + if (cBoxPlot.objs.outliers) { + for (pt in cBoxPlot.objs.outliers) { + cBoxPlot.objs.outliers[pt].point + .attr("cx", objBounds.middle + addJitter(bOpts.scatterOutliers, width)) + .attr("cy", chart.yScale(cBoxPlot.objs.outliers[pt].value)); + } + } + if (cBoxPlot.objs.extremes) { + for (pt in cBoxPlot.objs.extremes) { + cBoxPlot.objs.extremes[pt].point + .attr("cx", objBounds.middle + addJitter(bOpts.scatterOutliers, width)) + .attr("cy", chart.yScale(cBoxPlot.objs.extremes[pt].value)); + } + } + } + }; + + /** + * Create the svg elements for the box plot + */ + chart.boxPlots.prepareBoxPlot = function () { + var cName, cBoxPlot; + + if (bOpts.colors) { + chart.boxPlots.colorFunct = getColorFunct(bOpts.colors); + } else { + chart.boxPlots.colorFunct = chart.colorFunct + } + + if (bOpts.show == false) { + return + } + + for (cName in chart.groupObjs) { + cBoxPlot = chart.groupObjs[cName].boxPlot; + + cBoxPlot.objs.g = chart.groupObjs[cName].g.append("g").attr("class", "box-plot"); + + //Plot Box (default show) + if (bOpts.showBox) { + cBoxPlot.objs.box = cBoxPlot.objs.g.append("rect") + .attr("class", "box") + .style("fill", chart.boxPlots.colorFunct(cName)) + .style("stroke", chart.boxPlots.colorFunct(cName)); + //A stroke is added to the box with the group color, it is + // hidden by default and can be shown through css with stroke-width + } + + //Plot Median (default show) + if (bOpts.showMedian) { + cBoxPlot.objs.median = {line: null, circle: null}; + cBoxPlot.objs.median.line = cBoxPlot.objs.g.append("line") + .attr("class", "median"); + cBoxPlot.objs.median.circle = cBoxPlot.objs.g.append("circle") + .attr("class", "median") + .attr('r', bOpts.medianCSize) + .style("fill", chart.boxPlots.colorFunct(cName)); + } + + // Plot Mean (default no plot) + if (bOpts.showMean) { + cBoxPlot.objs.mean = {line: null, circle: null}; + cBoxPlot.objs.mean.line = cBoxPlot.objs.g.append("line") + .attr("class", "mean"); + cBoxPlot.objs.mean.circle = cBoxPlot.objs.g.append("circle") + .attr("class", "mean") + .attr('r', bOpts.medianCSize) + .style("fill", chart.boxPlots.colorFunct(cName)); + } + + // Plot Whiskers (default show) + if (bOpts.showWhiskers) { + cBoxPlot.objs.upperWhisker = {fence: null, line: null}; + cBoxPlot.objs.lowerWhisker = {fence: null, line: null}; + cBoxPlot.objs.upperWhisker.fence = cBoxPlot.objs.g.append("line") + .attr("class", "upper whisker") + .style("stroke", chart.boxPlots.colorFunct(cName)); + cBoxPlot.objs.upperWhisker.line = cBoxPlot.objs.g.append("line") + .attr("class", "upper whisker") + .style("stroke", chart.boxPlots.colorFunct(cName)); + + cBoxPlot.objs.lowerWhisker.fence = cBoxPlot.objs.g.append("line") + .attr("class", "lower whisker") + .style("stroke", chart.boxPlots.colorFunct(cName)); + cBoxPlot.objs.lowerWhisker.line = cBoxPlot.objs.g.append("line") + .attr("class", "lower whisker") + .style("stroke", chart.boxPlots.colorFunct(cName)); + } + + // Plot outliers (default show) + if (bOpts.showOutliers) { + if (!cBoxPlot.objs.outliers) calcAllOutliers(); + var pt; + if (cBoxPlot.objs.outliers.length) { + var outDiv = cBoxPlot.objs.g.append("g").attr("class", "boxplot outliers"); + for (pt in cBoxPlot.objs.outliers) { + cBoxPlot.objs.outliers[pt].point = outDiv.append("circle") + .attr("class", "outlier") + .attr('r', bOpts.outlierCSize) + .style("fill", chart.boxPlots.colorFunct(cName)); + } + } + + if (cBoxPlot.objs.extremes.length) { + var extDiv = cBoxPlot.objs.g.append("g").attr("class", "boxplot extremes"); + for (pt in cBoxPlot.objs.extremes) { + cBoxPlot.objs.extremes[pt].point = extDiv.append("circle") + .attr("class", "extreme") + .attr('r', bOpts.outlierCSize) + .style("stroke", chart.boxPlots.colorFunct(cName)); + } + } + } + + + } + }; + chart.boxPlots.prepareBoxPlot(); + + d3.select(window).on('resize.' + chart.selector + '.boxPlot', chart.boxPlots.update); + chart.boxPlots.update(); + return chart; + + }; + + /** + * Render a notched box on the current chart + * @param options + * @param [options.show=true] Toggle the whole plot on and off + * @param [options.showNotchBox=true] Show the notch box + * @param [options.showLines=false] Show lines at the confidence intervals + * @param [options.boxWidth=35] The width of the widest part of the box + * @param [options.medianWidth=20] The width of the narrowist part of the box + * @param [options.lineWidth=50] The width of the confidence interval lines + * @param [options.notchStyle=null] null=traditional style, 'box' cuts out the whole notch in right angles + * @param [options.colors=chart default] The color mapping for the notch boxes + * @returns {*} The chart object + */ + chart.renderNotchBoxes = function (options) { + chart.notchBoxes = {}; + + //Defaults + var defaultOptions = { + show: true, + showNotchBox: true, + showLines: false, + boxWidth: 35, + medianWidth: 20, + lineWidth: 50, + notchStyle: null, + colors: null + }; + chart.notchBoxes.options = shallowCopy(defaultOptions); + for (var option in options) { + chart.notchBoxes.options[option] = options[option] + } + var nOpts = chart.notchBoxes.options; + + //Create notch objects + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].notchBox = {}; + chart.groupObjs[cName].notchBox.objs = {}; + } + + /** + * Makes the svg path string for a notched box + * @param cNotch Current notch box object + * @param notchBounds objBound object + * @returns {string} A string in the proper format for a svg polygon + */ + function makeNotchBox(cNotch, notchBounds) { + var scaledValues = []; + if (nOpts.notchStyle == 'box') { + scaledValues = [ + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.quartile1)], + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.lowerNotch)], + [notchBounds.medianLeft, chart.yScale(cNotch.metrics.lowerNotch)], + [notchBounds.medianLeft, chart.yScale(cNotch.metrics.median)], + [notchBounds.medianLeft, chart.yScale(cNotch.metrics.upperNotch)], + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.upperNotch)], + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.quartile3)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.quartile3)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.upperNotch)], + [notchBounds.medianRight, chart.yScale(cNotch.metrics.upperNotch)], + [notchBounds.medianRight, chart.yScale(cNotch.metrics.median)], + [notchBounds.medianRight, chart.yScale(cNotch.metrics.lowerNotch)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.lowerNotch)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.quartile1)] + ]; + } else { + scaledValues = [ + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.quartile1)], + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.lowerNotch)], + [notchBounds.medianLeft, chart.yScale(cNotch.metrics.median)], + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.upperNotch)], + [notchBounds.boxLeft, chart.yScale(cNotch.metrics.quartile3)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.quartile3)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.upperNotch)], + [notchBounds.medianRight, chart.yScale(cNotch.metrics.median)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.lowerNotch)], + [notchBounds.boxRight, chart.yScale(cNotch.metrics.quartile1)] + ]; + } + return scaledValues.map(function (d) { + return [d[0], d[1]].join(","); + }).join(" "); + } + + /** + * Calculate the confidence intervals + */ + !function calcNotches() { + var cNotch, modifier; + for (var cName in chart.groupObjs) { + cNotch = chart.groupObjs[cName]; + modifier = (1.57 * (cNotch.metrics.iqr / Math.sqrt(cNotch.values.length))); + cNotch.metrics.upperNotch = cNotch.metrics.median + modifier; + cNotch.metrics.lowerNotch = cNotch.metrics.median - modifier; + } + }(); + + /** + * Take a new set of options and redraw the notch boxes + * @param updateOptions + */ + chart.notchBoxes.change = function (updateOptions) { + if (updateOptions) { + for (var key in updateOptions) { + nOpts[key] = updateOptions[key] + } + } + + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].notchBox.objs.g.remove() + } + chart.notchBoxes.prepareNotchBoxes(); + chart.notchBoxes.update(); + }; + + chart.notchBoxes.reset = function () { + chart.notchBoxes.change(defaultOptions) + }; + chart.notchBoxes.show = function (opts) { + if (opts !== undefined) { + opts.show = true; + if (opts.reset) { + chart.notchBoxes.reset() + } + } else { + opts = {show: true}; + } + chart.notchBoxes.change(opts) + }; + chart.notchBoxes.hide = function (opts) { + if (opts !== undefined) { + opts.show = false; + if (opts.reset) { + chart.notchBoxes.reset() + } + } else { + opts = {show: false}; + } + chart.notchBoxes.change(opts) + }; + + /** + * Update the notch box obj values + */ + chart.notchBoxes.update = function () { + var cName, cGroup; + + for (cName in chart.groupObjs) { + cGroup = chart.groupObjs[cName]; + + // Get the box size + var boxBounds = getObjWidth(nOpts.boxWidth, cName); + var medianBounds = getObjWidth(nOpts.medianWidth, cName); + + var notchBounds = { + boxLeft: boxBounds.left, + boxRight: boxBounds.right, + middle: boxBounds.middle, + medianLeft: medianBounds.left, + medianRight: medianBounds.right + }; + + // Notch Box + if (cGroup.notchBox.objs.notch) { + cGroup.notchBox.objs.notch + .attr("points", makeNotchBox(cGroup, notchBounds)); + } + if (cGroup.notchBox.objs.upperLine) { + var lineBounds = null; + if (nOpts.lineWidth) { + lineBounds = getObjWidth(nOpts.lineWidth, cName) + } else { + lineBounds = objBounds + } + + var confidenceLines = { + upper: chart.yScale(cGroup.metrics.upperNotch), + lower: chart.yScale(cGroup.metrics.lowerNotch) + }; + cGroup.notchBox.objs.upperLine + .attr("x1", lineBounds.left) + .attr("x2", lineBounds.right) + .attr('y1', confidenceLines.upper) + .attr("y2", confidenceLines.upper); + cGroup.notchBox.objs.lowerLine + .attr("x1", lineBounds.left) + .attr("x2", lineBounds.right) + .attr('y1', confidenceLines.lower) + .attr("y2", confidenceLines.lower); + } + } + }; + + /** + * Create the svg elements for the notch boxes + */ + chart.notchBoxes.prepareNotchBoxes = function () { + var cName, cNotch; + + if (nOpts && nOpts.colors) { + chart.notchBoxes.colorFunct = getColorFunct(nOpts.colors); + } else { + chart.notchBoxes.colorFunct = chart.colorFunct + } + + if (nOpts.show == false) { + return + } + + for (cName in chart.groupObjs) { + cNotch = chart.groupObjs[cName].notchBox; + + cNotch.objs.g = chart.groupObjs[cName].g.append("g").attr("class", "notch-plot"); + + // Plot Box (default show) + if (nOpts.showNotchBox) { + cNotch.objs.notch = cNotch.objs.g.append("polygon") + .attr("class", "notch") + .style("fill", chart.notchBoxes.colorFunct(cName)) + .style("stroke", chart.notchBoxes.colorFunct(cName)); + //A stroke is added to the notch with the group color, it is + // hidden by default and can be shown through css with stroke-width + } + + //Plot Confidence Lines (default hide) + if (nOpts.showLines) { + cNotch.objs.upperLine = cNotch.objs.g.append("line") + .attr("class", "upper confidence line") + .style("stroke", chart.notchBoxes.colorFunct(cName)); + + cNotch.objs.lowerLine = cNotch.objs.g.append("line") + .attr("class", "lower confidence line") + .style("stroke", chart.notchBoxes.colorFunct(cName)); + } + } + }; + chart.notchBoxes.prepareNotchBoxes(); + + d3.select(window).on('resize.' + chart.selector + '.notchBox', chart.notchBoxes.update); + chart.notchBoxes.update(); + return chart; + }; + + /** + * Render a raw data in various forms + * @param options + * @param [options.show=true] Toggle the whole plot on and off + * @param [options.showPlot=false] True or false, show points + * @param [options.plotType='none'] Options: no scatter = (false or 'none'); scatter points= (true or [amount=% of width (default=10)]); beeswarm points = ('beeswarm') + * @param [options.pointSize=6] Diameter of the circle in pizels (not the radius) + * @param [options.showLines=['median']] Can equal any of the metrics lines + * @param [options.showbeanLines=false] Options: no lines = false + * @param [options.beanWidth=20] % width + * @param [options.colors=chart default] + * @returns {*} The chart object + * + */ + chart.renderDataPlots = function (options) { + chart.dataPlots = {}; + + + //Defaults + var defaultOptions = { + show: true, + showPlot: false, + plotType: 'none', + pointSize: 6, + showLines: false,//['median'], + showBeanLines: false, + beanWidth: 20, + colors: null + }; + chart.dataPlots.options = shallowCopy(defaultOptions); + for (var option in options) { + chart.dataPlots.options[option] = options[option] + } + var dOpts = chart.dataPlots.options; + + //Create notch objects + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].dataPlots = {}; + chart.groupObjs[cName].dataPlots.objs = {}; + } + // The lines don't fit into a group bucket so they live under the dataPlot object + chart.dataPlots.objs = {}; + + /** + * Take updated options and redraw the data plots + * @param updateOptions + */ + chart.dataPlots.change = function (updateOptions) { + if (updateOptions) { + for (var key in updateOptions) { + dOpts[key] = updateOptions[key] + } + } + + chart.dataPlots.objs.g.remove(); + for (var cName in chart.groupObjs) { + chart.groupObjs[cName].dataPlots.objs.g.remove() + } + chart.dataPlots.preparePlots(); + chart.dataPlots.update() + }; + + chart.dataPlots.reset = function () { + chart.dataPlots.change(defaultOptions) + }; + chart.dataPlots.show = function (opts) { + if (opts !== undefined) { + opts.show = true; + if (opts.reset) { + chart.dataPlots.reset() + } + } else { + opts = {show: true}; + } + chart.dataPlots.change(opts) + }; + chart.dataPlots.hide = function (opts) { + if (opts !== undefined) { + opts.show = false; + if (opts.reset) { + chart.dataPlots.reset() + } + } else { + opts = {show: false}; + } + chart.dataPlots.change(opts) + }; + + /** + * Update the data plot obj values + */ + chart.dataPlots.update = function () { + var cName, cGroup, cPlot; + + // Metrics lines + if (chart.dataPlots.objs.g) { + var halfBand = chart.xScale.rangeBand() / 2; // find the middle of each band + for (var cMetric in chart.dataPlots.objs.lines) { + chart.dataPlots.objs.lines[cMetric].line + .x(function (d) { + return chart.xScale(d.x) + halfBand + }); + chart.dataPlots.objs.lines[cMetric].g + .datum(chart.dataPlots.objs.lines[cMetric].values) + .attr('d', chart.dataPlots.objs.lines[cMetric].line); + } + } + + + for (cName in chart.groupObjs) { + cGroup = chart.groupObjs[cName]; + cPlot = cGroup.dataPlots; + + if (cPlot.objs.points) { + if (dOpts.plotType == 'beeswarm') { + var swarmBounds = getObjWidth(100, cName); + var yPtScale = chart.yScale.copy() + .range([Math.floor(chart.yScale.range()[0] / dOpts.pointSize), 0]) + .interpolate(d3.interpolateRound) + .domain(chart.yScale.domain()); + var maxWidth = Math.floor(chart.xScale.rangeBand() / dOpts.pointSize); + var ptsObj = {}; + var cYBucket = null; + // Bucket points + for (var pt = 0; pt < cGroup.values.length; pt++) { + cYBucket = yPtScale(cGroup.values[pt]); + if (ptsObj.hasOwnProperty(cYBucket) !== true) { + ptsObj[cYBucket] = []; + } + ptsObj[cYBucket].push(cPlot.objs.points.pts[pt] + .attr("cx", swarmBounds.middle) + .attr("cy", yPtScale(cGroup.values[pt]) * dOpts.pointSize)); + } + // Plot buckets + var rightMax = Math.min(swarmBounds.right - dOpts.pointSize); + for (var row in ptsObj) { + var leftMin = swarmBounds.left + (Math.max((maxWidth - ptsObj[row].length) / 2, 0) * dOpts.pointSize); + var col = 0; + for (pt in ptsObj[row]) { + ptsObj[row][pt].attr("cx", Math.min(leftMin + col * dOpts.pointSize, rightMax) + dOpts.pointSize / 2); + col++ + } + } + } else { // For scatter points and points with no scatter + var plotBounds = null, + scatterWidth = 0, + width = 0; + if (dOpts.plotType == 'scatter' || typeof dOpts.plotType == 'number') { + //Default scatter percentage is 20% of box width + scatterWidth = typeof dOpts.plotType == 'number' ? dOpts.plotType : 20; + } + + plotBounds = getObjWidth(scatterWidth, cName); + width = plotBounds.right - plotBounds.left; + + for (var pt = 0; pt < cGroup.values.length; pt++) { + cPlot.objs.points.pts[pt] + .attr("cx", plotBounds.middle + addJitter(true, width)) + .attr("cy", chart.yScale(cGroup.values[pt])); + } + } + } + + + if (cPlot.objs.bean) { + var beanBounds = getObjWidth(dOpts.beanWidth, cName); + for (var pt = 0; pt < cGroup.values.length; pt++) { + cPlot.objs.bean.lines[pt] + .attr("x1", beanBounds.left) + .attr("x2", beanBounds.right) + .attr('y1', chart.yScale(cGroup.values[pt])) + .attr("y2", chart.yScale(cGroup.values[pt])); + } + } + } + }; + + /** + * Create the svg elements for the data plots + */ + chart.dataPlots.preparePlots = function () { + var cName, cPlot; + + if (dOpts && dOpts.colors) { + chart.dataPlots.colorFunct = getColorFunct(dOpts.colors); + } else { + chart.dataPlots.colorFunct = chart.colorFunct + } + + if (dOpts.show == false) { + return + } + + // Metrics lines + chart.dataPlots.objs.g = chart.objs.g.append("g").attr("class", "metrics-lines"); + if (dOpts.showLines && dOpts.showLines.length > 0) { + chart.dataPlots.objs.lines = {}; + var cMetric; + for (var line in dOpts.showLines) { + cMetric = dOpts.showLines[line]; + chart.dataPlots.objs.lines[cMetric] = {}; + chart.dataPlots.objs.lines[cMetric].values = []; + for (var cGroup in chart.groupObjs) { + chart.dataPlots.objs.lines[cMetric].values.push({ + x: cGroup, + y: chart.groupObjs[cGroup].metrics[cMetric] + }) + } + chart.dataPlots.objs.lines[cMetric].line = d3.svg.line() + .interpolate("cardinal") + .y(function (d) { + return chart.yScale(d.y) + }); + chart.dataPlots.objs.lines[cMetric].g = chart.dataPlots.objs.g.append("path") + .attr("class", "line " + cMetric) + .attr("data-metric", cMetric) + .style("fill", 'none') + .style("stroke", chart.colorFunct(cMetric)); + } + + } + + + for (cName in chart.groupObjs) { + + cPlot = chart.groupObjs[cName].dataPlots; + cPlot.objs.g = chart.groupObjs[cName].g.append("g").attr("class", "data-plot"); + + // Points Plot + if (dOpts.showPlot) { + cPlot.objs.points = {g: null, pts: []}; + cPlot.objs.points.g = cPlot.objs.g.append("g").attr("class", "points-plot"); + for (var pt = 0; pt < chart.groupObjs[cName].values.length; pt++) { + cPlot.objs.points.pts.push(cPlot.objs.points.g.append("circle") + .attr("class", "point") + .attr('r', dOpts.pointSize / 2)// Options is diameter, r takes radius so divide by 2 + .style("fill", chart.dataPlots.colorFunct(cName))); + } + } + + + // Bean lines + if (dOpts.showBeanLines) { + cPlot.objs.bean = {g: null, lines: []}; + cPlot.objs.bean.g = cPlot.objs.g.append("g").attr("class", "bean-plot"); + for (var pt = 0; pt < chart.groupObjs[cName].values.length; pt++) { + cPlot.objs.bean.lines.push(cPlot.objs.bean.g.append("line") + .attr("class", "bean line") + .style("stroke-width", '1') + .style("stroke", chart.dataPlots.colorFunct(cName))); + } + } + } + + }; + chart.dataPlots.preparePlots(); + + d3.select(window).on('resize.' + chart.selector + '.dataPlot', chart.dataPlots.update); + chart.dataPlots.update(); + return chart; + }; + + return chart; +} diff --git a/silk/static/silk/lib/strftime.min.js b/silk/static/silk/lib/strftime.min.js new file mode 100644 index 00000000..88dd19a7 --- /dev/null +++ b/silk/static/silk/lib/strftime.min.js @@ -0,0 +1,23 @@ +(function(){function q(c,g,n){function i(c,a,e,f){for(var b="",d=null,g=!1,l=c.length,n=!1,j=0;j99?Math.floor(f%1E3):Math.floor(f%1E3)>9?"0"+Math.floor(f%1E3):"00"+Math.floor(f%1E3);break;case 77:b+=h(a.getMinutes(),d);break;case 80:b+=a.getHours()<12?e.am:e.pm;break;case 82:b+=i(e.formats.R,a,e,f);break;case 83:b+=h(a.getSeconds(),d);break;case 84:b+=i(e.formats.T,a,e,f);break;case 85:b+=h(v(a,"sunday"),d);break;case 87:b+=h(v(a,"monday"),d);break;case 88:b+=i(e.formats.X, +a,e,f);break;case 89:b+=a.getFullYear();break;case 90:o&&k===0?b+="GMT":(d=a.toString().match(/\(([\w\s]+)\)/),b+=d&&d[1]||"");break;case 97:b+=e.shortDays[a.getDay()];break;case 98:b+=e.shortMonths[a.getMonth()];break;case 99:b+=i(e.formats.c,a,e,f);break;case 100:b+=h(a.getDate(),d);break;case 101:b+=h(a.getDate(),d==null?" ":d);break;case 104:b+=e.shortMonths[a.getMonth()];break;case 106:d=new Date(a.getFullYear(),0,1);d=Math.ceil((a.getTime()-d.getTime())/864E5);b+=d>99?d:d>9?"0"+d:"00"+d;break; +case 107:b+=h(a.getHours(),d==null?" ":d);break;case 108:b+=h(u(a.getHours()),d==null?" ":d);break;case 109:b+=h(a.getMonth()+1,d);break;case 110:b+="\n";break;case 111:d=a.getDate();b+=e.ordinalSuffixes?String(d)+(e.ordinalSuffixes[d-1]||w(d)):String(d)+w(d);break;case 112:b+=a.getHours()<12?e.AM:e.PM;break;case 114:b+=i(e.formats.r,a,e,f);break;case 115:b+=Math.floor(f/1E3);break;case 116:b+="\t";break;case 117:d=a.getDay();b+=d===0?7:d;break;case 118:b+=i(e.formats.v,a,e,f);break;case 119:b+=a.getDay(); +break;case 120:b+=i(e.formats.x,a,e,f);break;case 121:b+=(""+a.getFullYear()).slice(2);break;case 122:o&&k===0?b+=n?"+00:00":"+0000":(d=k!==0?k/6E4:-a.getTimezoneOffset(),g=n?":":"",m=Math.abs(d%60),b+=(d<0?"-":"+")+h(Math.floor(Math.abs(d/60)))+g+h(m));break;default:g&&(b+="%"),b+=c[j]}d=null;g=!1}else m===37?g=!0:b+=c[j]}return b}var j=c||x,k=g||0,o=n||!1,p=0,r,l=function(c,a){var e;if(a){if(e=a.getTime(),o){var f=(a.getTimezoneOffset()||0)*6E4,a=new Date(e+f+k);if((a.getTimezoneOffset()||0)*6E4!== +f)f=(a.getTimezoneOffset()||0)*6E4,a=new Date(e+f+k)}}else e=Date.now(),e>p?(p=e,r=new Date(p),e=p,o&&(r=new Date(p+(r.getTimezoneOffset()||0)*6E4+k))):e=p,a=r;return i(c,a,j,e)};l.localize=function(c){return new q(c||j,k,o)};l.localizeByIdentifier=function(c){var a=y[c];return!a?(t('[WARNING] No locale found with identifier "'+c+'".'),l):l.localize(a)};l.timezone=function(c){var a=k,e=o,f=typeof c;if(f==="number"||f==="string")e=!0,f==="string"?(a=c[0]==="-"?-1:1,f=parseInt(c.slice(1,3),10),c=parseInt(c.slice(3, +5),10),a=a*(60*f+c)*6E4):f==="number"&&(a=c*6E4);return new q(j,a,e)};l.utc=function(){return new q(j,k,!0)};return l}function h(c,g){if(g===""||c>9)return c;g==null&&(g="0");return g+c}function u(c){if(c===0)return 12;else if(c>12)return c-12;return c}function v(c,g){var g=g||"sunday",h=c.getDay();g==="monday"&&(h===0?h=6:h--);var i=Date.UTC(c.getFullYear(),0,1),j=Date.UTC(c.getFullYear(),c.getMonth(),c.getDate());return Math.floor((Math.floor((j-i)/864E5)+7-h)/7)}function w(c){var g=c%10;c%=100; +if(c>=11&&c<=13||g===0||g>=4)return"th";switch(g){case 1:return"st";case 2:return"nd";case 3:return"rd"}}function t(c){typeof console!=="undefined"&&typeof console.warn=="function"&&console.warn(c)}var y={de_DE:{days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],shortDays:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","M\u00e4rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],shortMonths:["Jan","Feb","M\u00e4r","Apr", +"Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d.%m.%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},en_CA:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr", +"May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ordinalSuffixes:["st","nd","rd","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","st","nd","rd","th","th","th","th","th","th","th","st"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},en_US:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu", +"Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ordinalSuffixes:["st","nd","rd","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","th","st","nd","rd","th","th","th","th","th","th","th","st"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%m/%d/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p", +T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}},es_MX:{days:["domingo","lunes","martes","mi\u00e9rcoles","jueves","viernes","s\u00e1bado"],shortDays:["dom","lun","mar","mi\u00e9","jue","vie","s\u00e1b"],months:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre"," diciembre"],shortMonths:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M", +r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},fr_FR:{days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],shortDays:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],months:["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],shortMonths:["janv.","f\u00e9vr.","mars","avril","mai","juin","juil.","ao\u00fbt","sept.","oct.","nov.","d\u00e9c."],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z", +D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},it_IT:{days:["domenica","luned\u00ec","marted\u00ec","mercoled\u00ec","gioved\u00ec","venerd\u00ec","sabato"],shortDays:["dom","lun","mar","mer","gio","ven","sab"],months:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],shortMonths:["pr","mag","giu","lug","ago","set","ott","nov","dic"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z", +D:"%d/%m/%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},nl_NL:{days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],shortDays:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],shortMonths:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%y", +F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},pt_BR:{days:["domingo","segunda","ter\u00e7a","quarta","quinta","sexta","s\u00e1bado"],shortDays:["Dom","Seg","Ter","Qua","Qui","Sex","S\u00e1b"],months:["janeiro","fevereiro","mar\u00e7o","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],shortMonths:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X %Z", +D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},ru_RU:{days:["\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435","\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a","\u0412\u0442\u043e\u0440\u043d\u0438\u043a","\u0421\u0440\u0435\u0434\u0430","\u0427\u0435\u0442\u0432\u0435\u0440\u0433","\u041f\u044f\u0442\u043d\u0438\u0446\u0430","\u0421\u0443\u0431\u0431\u043e\u0442\u0430"],shortDays:["\u0412\u0441","\u041f\u043d","\u0412\u0442", +"\u0421\u0440","\u0427\u0442","\u041f\u0442","\u0421\u0431"],months:["\u042f\u043d\u0432\u0430\u0440\u044c","\u0424\u0435\u0432\u0440\u0430\u043b\u044c","\u041c\u0430\u0440\u0442","\u0410\u043f\u0440\u0435\u043b\u044c","\u041c\u0430\u0439","\u0418\u044e\u043d\u044c","\u0418\u044e\u043b\u044c","\u0410\u0432\u0433\u0443\u0441\u0442","\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","\u041e\u043a\u0442\u044f\u0431\u0440\u044c","\u041d\u043e\u044f\u0431\u0440\u044c","\u0414\u0435\u043a\u0430\u0431\u0440\u044c"], +shortMonths:["\u044f\u043d\u0432","\u0444\u0435\u0432","\u043c\u0430\u0440","\u0430\u043f\u0440","\u043c\u0430\u0439","\u0438\u044e\u043d","\u0438\u044e\u043b","\u0430\u0432\u0433","\u0441\u0435\u043d","\u043e\u043a\u0442","\u043d\u043e\u044f","\u0434\u0435\u043a"],AM:"AM",PM:"PM",am:"am",pm:"pm",formats:{c:"%a %d %b %Y %X",D:"%d.%m.%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T",x:"%D"}},tr_TR:{days:["Pazar","Pazartesi","Sal\u0131","\u00c7ar\u015famba","Per\u015fembe", +"Cuma","Cumartesi"],shortDays:["Paz","Pzt","Sal","\u00c7r\u015f","Pr\u015f","Cum","Cts"],months:["Ocak","\u015eubat","Mart","Nisan","May\u0131s","Haziran","Temmuz","A\u011fustos","Eyl\u00fcl","Ekim","Kas\u0131m","Aral\u0131k"],shortMonths:["Oca","\u015eub","Mar","Nis","May","Haz","Tem","A\u011fu","Eyl","Eki","Kas","Ara"],AM:"\u00d6\u00d6",PM:"\u00d6S",am:"\u00d6\u00d6",pm:"\u00d6S",formats:{c:"%a %d %b %Y %X %Z",D:"%d-%m-%Y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%T", +x:"%D"}},zh_CN:{days:["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],shortDays:["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],months:["\u4e00\u6708\u4efd","\u4e8c\u6708\u4efd","\u4e09\u6708\u4efd","\u56db\u6708\u4efd","\u4e94\u6708\u4efd","\u516d\u6708\u4efd","\u4e03\u6708\u4efd","\u516b\u6708\u4efd","\u4e5d\u6708\u4efd","\u5341\u6708\u4efd","\u5341\u4e00\u6708\u4efd","\u5341\u4e8c\u6708\u4efd"], +shortMonths:["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"],AM:"\u4e0a\u5348",PM:"\u4e0b\u5348",am:"\u4e0a\u5348",pm:"\u4e0b\u5348",formats:{c:"%a %d %b %Y %X %Z",D:"%d/%m/%y",F:"%Y-%m-%d",R:"%H:%M",r:"%I:%M:%S %p",T:"%H:%M:%S",v:"%e-%b-%Y",X:"%r",x:"%D"}}},x=y.en_US,z=new q(x,0,!1),s;typeof module!=="undefined"?s=module.exports=z:(s=function(){return this|| +(0,eval)("this")}(),s.strftime=z);if(typeof Date.now!=="function")Date.now=function(){return+new Date}})(); \ No newline at end of file diff --git a/silk/static/silk/lib/url.js b/silk/static/silk/lib/url.js new file mode 100644 index 00000000..94cdad7c --- /dev/null +++ b/silk/static/silk/lib/url.js @@ -0,0 +1,199 @@ +(function() { + var url = (function() { + + function _t() { + return new RegExp(/(.*?)\.?([^\.]*?)\.?(com|net|org|biz|ws|in|me|co\.uk|co|org\.uk|ltd\.uk|plc\.uk|me\.uk|edu|mil|br\.com|cn\.com|eu\.com|hu\.com|no\.com|qc\.com|sa\.com|se\.com|se\.net|us\.com|uy\.com|ac|co\.ac|gv\.ac|or\.ac|ac\.ac|af|am|as|at|ac\.at|co\.at|gv\.at|or\.at|asn\.au|com\.au|edu\.au|org\.au|net\.au|id\.au|be|ac\.be|adm\.br|adv\.br|am\.br|arq\.br|art\.br|bio\.br|cng\.br|cnt\.br|com\.br|ecn\.br|eng\.br|esp\.br|etc\.br|eti\.br|fm\.br|fot\.br|fst\.br|g12\.br|gov\.br|ind\.br|inf\.br|jor\.br|lel\.br|med\.br|mil\.br|net\.br|nom\.br|ntr\.br|odo\.br|org\.br|ppg\.br|pro\.br|psc\.br|psi\.br|rec\.br|slg\.br|tmp\.br|tur\.br|tv\.br|vet\.br|zlg\.br|br|ab\.ca|bc\.ca|mb\.ca|nb\.ca|nf\.ca|ns\.ca|nt\.ca|on\.ca|pe\.ca|qc\.ca|sk\.ca|yk\.ca|ca|cc|ac\.cn|com\.cn|edu\.cn|gov\.cn|org\.cn|bj\.cn|sh\.cn|tj\.cn|cq\.cn|he\.cn|nm\.cn|ln\.cn|jl\.cn|hl\.cn|js\.cn|zj\.cn|ah\.cn|gd\.cn|gx\.cn|hi\.cn|sc\.cn|gz\.cn|yn\.cn|xz\.cn|sn\.cn|gs\.cn|qh\.cn|nx\.cn|xj\.cn|tw\.cn|hk\.cn|mo\.cn|cn|cx|cz|de|dk|fo|com\.ec|tm\.fr|com\.fr|asso\.fr|presse\.fr|fr|gf|gs|co\.il|net\.il|ac\.il|k12\.il|gov\.il|muni\.il|ac\.in|co\.in|org\.in|ernet\.in|gov\.in|net\.in|res\.in|is|it|ac\.jp|co\.jp|go\.jp|or\.jp|ne\.jp|ac\.kr|co\.kr|go\.kr|ne\.kr|nm\.kr|or\.kr|li|lt|lu|asso\.mc|tm\.mc|com\.mm|org\.mm|net\.mm|edu\.mm|gov\.mm|ms|nl|no|nu|pl|ro|org\.ro|store\.ro|tm\.ro|firm\.ro|www\.ro|arts\.ro|rec\.ro|info\.ro|nom\.ro|nt\.ro|se|si|com\.sg|org\.sg|net\.sg|gov\.sg|sk|st|tf|ac\.th|co\.th|go\.th|mi\.th|net\.th|or\.th|tm|to|com\.tr|edu\.tr|gov\.tr|k12\.tr|net\.tr|org\.tr|com\.tw|org\.tw|net\.tw|ac\.uk|uk\.com|uk\.net|gb\.com|gb\.net|vg|sh|kz|ch|info|ua|gov|name|pro|ie|hk|com\.hk|org\.hk|net\.hk|edu\.hk|us|tk|cd|by|ad|lv|eu\.lv|bz|es|jp|cl|ag|mobi|eu|co\.nz|org\.nz|net\.nz|maori\.nz|iwi\.nz|io|la|md|sc|sg|vc|tw|travel|my|se|tv|pt|com\.pt|edu\.pt|asia|fi|com\.ve|net\.ve|fi|org\.ve|web\.ve|info\.ve|co\.ve|tel|im|gr|ru|net\.ru|org\.ru|hr|com\.hr|ly|xyz)$/); + } + + function _d(s) { + return decodeURIComponent(s.replace(/\+/g, ' ')); + } + + function _i(arg, str) { + var sptr = arg.charAt(0), + split = str.split(sptr); + + if (sptr === arg) { return split; } + + arg = parseInt(arg.substring(1), 10); + + return split[arg < 0 ? split.length + arg : arg - 1]; + } + + function _f(arg, str) { + var sptr = arg.charAt(0), + split = str.split('&'), + field = [], + params = {}, + tmp = [], + arg2 = arg.substring(1); + + for (var i = 0, ii = split.length; i < ii; i++) { + field = split[i].match(/(.*?)=(.*)/); + + // TODO: regex should be able to handle this. + if ( ! field) { + field = [split[i], split[i], '']; + } + + if (field[1].replace(/\s/g, '') !== '') { + field[2] = _d(field[2] || ''); + + // If we have a match just return it right away. + if (arg2 === field[1]) { return field[2]; } + + // Check for array pattern. + tmp = field[1].match(/(.*)\[([0-9]+)\]/); + + if (tmp) { + params[tmp[1]] = params[tmp[1]] || []; + + params[tmp[1]][tmp[2]] = field[2]; + } + else { + params[field[1]] = field[2]; + } + } + } + + if (sptr === arg) { return params; } + + return params[arg2]; + } + + return function(arg, url) { + var _l = {}, tmp, tmp2; + + if (arg === 'tld?') { return _t(); } + + url = url || window.location.toString(); + + if ( ! arg) { return url; } + + arg = arg.toString(); + + if (tmp = url.match(/^mailto:([^\/].+)/)) { + _l.protocol = 'mailto'; + _l.email = tmp[1]; + } + else { + + // Ignore Hashbangs. + if (tmp = url.match(/(.*?)\/#\!(.*)/)) { + url = tmp[1] + tmp[2]; + } + + // Hash. + if (tmp = url.match(/(.*?)#(.*)/)) { + _l.hash = tmp[2]; + url = tmp[1]; + } + + // Return hash parts. + if (_l.hash && arg.match(/^#/)) { return _f(arg, _l.hash); } + + // Query + if (tmp = url.match(/(.*?)\?(.*)/)) { + _l.query = tmp[2]; + url = tmp[1]; + } + + // Return query parts. + if (_l.query && arg.match(/^\?/)) { return _f(arg, _l.query); } + + // Protocol. + if (tmp = url.match(/(.*?)\:?\/\/(.*)/)) { + _l.protocol = tmp[1].toLowerCase(); + url = tmp[2]; + } + + // Path. + if (tmp = url.match(/(.*?)(\/.*)/)) { + _l.path = tmp[2]; + url = tmp[1]; + } + + // Clean up path. + _l.path = (_l.path || '').replace(/^([^\/])/, '/$1'); + + // Return path parts. + if (arg.match(/^[\-0-9]+$/)) { arg = arg.replace(/^([^\/])/, '/$1'); } + if (arg.match(/^\//)) { return _i(arg, _l.path.substring(1)); } + + // File. + tmp = _i('/-1', _l.path.substring(1)); + + if (tmp && (tmp = tmp.match(/(.*?)\.(.*)/))) { + _l.file = tmp[0]; + _l.filename = tmp[1]; + _l.fileext = tmp[2]; + } + + // Port. + if (tmp = url.match(/(.*)\:([0-9]+)$/)) { + _l.port = tmp[2]; + url = tmp[1]; + } + + // Auth. + if (tmp = url.match(/(.*?)@(.*)/)) { + _l.auth = tmp[1]; + url = tmp[2]; + } + + // User and pass. + if (_l.auth) { + tmp = _l.auth.match(/(.*)\:(.*)/); + + _l.user = tmp ? tmp[1] : _l.auth; + _l.pass = tmp ? tmp[2] : undefined; + } + + // Hostname. + _l.hostname = url.toLowerCase(); + + // Return hostname parts. + if (arg.charAt(0) === '.') { return _i(arg, _l.hostname); } + + // Domain, tld and sub domain. + if (_t()) { + tmp = _l.hostname.match(_t()); + + if (tmp) { + _l.tld = tmp[3]; + _l.domain = tmp[2] ? tmp[2] + '.' + tmp[3] : undefined; + _l.sub = tmp[1] || undefined; + } + } + + // Set port and protocol defaults if not set. + _l.port = _l.port || (_l.protocol === 'https' ? '443' : '80'); + _l.protocol = _l.protocol || (_l.port === '443' ? 'https' : 'http'); + } + + // Return arg. + if (arg in _l) { return _l[arg]; } + + // Return everything. + if (arg === '{}') { return _l; } + + // Default to undefined for no match. + return undefined; + }; + })(); + + if (typeof window.define === 'function' && window.define.amd) { + window.define('js-url', [], function () { + return url; + }); + } else { + if(typeof window.jQuery !== 'undefined') { + window.jQuery.extend({ + url: function(arg, url) { return window.url(arg, url); } + }); + } + + window.url = url; + } + +})(); diff --git a/silk/static/silk/lib/url.min.js b/silk/static/silk/lib/url.min.js new file mode 100644 index 00000000..375c79a6 --- /dev/null +++ b/silk/static/silk/lib/url.min.js @@ -0,0 +1 @@ +/*! js-url - v2.5.0 - 2017-04-22 */!function(){var a=function(){function a(){}function b(a){return decodeURIComponent(a.replace(/\+/g," "))}function c(a,b){var c=a.charAt(0),d=b.split(c);return c===a?d:(a=parseInt(a.substring(1),10),d[a<0?d.length+a:a-1])}function d(a,c){for(var d=a.charAt(0),e=c.split("&"),f=[],g={},h=[],i=a.substring(1),j=0,k=e.length;j + + + {{ block.super }} + + + +{% endblock %} + +{% block style %} + {{ block.super }} + + +{% endblock %} + +{% block filter %} +
+ + {{ block.super }} +{% endblock %} + +{% block filters %} + {% request_filter options_paths options_status_codes options_methods view_names filters %} +{% endblock %} + +{% block data %} +
+

+
+
+
+ +{% endblock %} diff --git a/silk/templates/silk/inclusion/request_filter.html b/silk/templates/silk/inclusion/request_filter.html new file mode 100644 index 00000000..f0bbdb57 --- /dev/null +++ b/silk/templates/silk/inclusion/request_filter.html @@ -0,0 +1,174 @@ + +

Request

+ +
Took longer than + +
+ + + +
+ seconds, + executed more than +
+ + + +
+ queries, + and spent longer than +
+ + + + +
+ seconds executing queries. +
+

Date Range

+
+ Executed +
+ + + +
+ seconds ago, before +
+ + + +
+ , and after +
+ + + + +
+ . +
+

View

+
+
+ + + +
+
+ + + +
+ +
+ + +
+ +
+ + +
+ + +
\ No newline at end of file diff --git a/silk/templates/silk/inclusion/root_menu.html b/silk/templates/silk/inclusion/root_menu.html index 94fb3534..0c966fe8 100644 --- a/silk/templates/silk/inclusion/root_menu.html +++ b/silk/templates/silk/inclusion/root_menu.html @@ -6,6 +6,13 @@ + - seconds, + milliseconds, executed more than
Request name="filter-timespentfilter-typ"/> diff --git a/silk/templates/silk/profiling.html b/silk/templates/silk/profiling.html index b12fe73b..cb4ca5e3 100644 --- a/silk/templates/silk/profiling.html +++ b/silk/templates/silk/profiling.html @@ -94,13 +94,13 @@

Profile

value="OverallTimeFilter" name="filter-overalltime-typ"/>
- seconds, + milliseconds, executed more than
Profile name="filter-timespentfilter-typ"/> From 3bfb00edcfceda29dcb76f908c767a97fcabb832 Mon Sep 17 00:00:00 2001 From: Daniel Bradburn Date: Fri, 4 May 2018 22:29:16 +0200 Subject: [PATCH 05/11] added feature flag to opt in to distribution tab and added info to readme --- README.md | 8 ++++++ project/project/settings.py | 2 +- screenshots/1.png | Bin 107420 -> 160380 bytes screenshots/11.png | Bin 0 -> 62342 bytes silk/config.py | 3 ++- ...t_revision.py => 0007_request_revision.py} | 2 +- silk/templates/silk/inclusion/root_menu.html | 2 ++ silk/templatetags/silk_inclusion.py | 3 ++- silk/views/distribution.py | 24 ------------------ silk/views/requests.py | 5 +--- 10 files changed, 17 insertions(+), 32 deletions(-) create mode 100644 screenshots/11.png rename silk/migrations/{0006_request_revision.py => 0007_request_revision.py} (87%) diff --git a/README.md b/README.md index 65eedd84..18f3ab61 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,14 @@ Silk currently generates two bits of code per request: Both are intended for use in replaying the request. The curl command can be used to replay via command-line and the python code can be used within a Django unit test or simply as a standalone script. +## Distribution View + +By setting the configuration ``SILKY_DISTRIBUTION_TAB`` to ``True`` a distribution tab can be enabled with a visualisation for plotting the distribution of timings of requests. At present it is possible to group the requests by date or revision. + + + +You can click on the various groups to drill down to eventually see the actual requests that are running slowly. This visualisation can be useful for benchmarking an application over versions or time to see if performance improves or degrades. + ## Configuration ### Authentication/Authorisation diff --git a/project/project/settings.py b/project/project/settings.py index 58c3b2d9..2da9dca7 100644 --- a/project/project/settings.py +++ b/project/project/settings.py @@ -122,4 +122,4 @@ # SILKY_AUTHENTICATION = True # SILKY_AUTHORISATION = True -SILKY_REVISION = '2.0' \ No newline at end of file +SILKY_DISTRIBUTION_TAB = True diff --git a/screenshots/1.png b/screenshots/1.png index 4b261b184d72ae013b333e67ef5a20ef3909c819..58704e1fb67a8e547f3f47991a597e89b0030697 100644 GIT binary patch literal 160380 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�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 diff --git a/screenshots/11.png b/screenshots/11.png new file mode 100644 index 0000000000000000000000000000000000000000..18f6f2365f3ca0303ca6cdfc7d9738f896a0f82c GIT binary patch literal 62342 zcmd3ucTiK^*YEN1u^>tj0qKGQ(iK5EC`CF*mxLm{gn-l_5Ta70_uiyR2|b~NA|So@ z5_&HQy#@j|Px-y~{r8=@bMHNqgf)9IoU``cXYaMX>vQt`y}H7Kdvy1Rh=?92DavUP z5#9MhM09iU?jMAf1P(SR;ScdAMFSTiA`;5K-ZzMnQy&u=@3<Ud0JX1#Q@ zA&uA95hd(sp&L(mZl<${JpG~my)wY6am?(vs64%WB;3_5jx#%aM2o*Is$iT10brmV z(n28Glo9brCMTN)w@|n6eNe7XL*|j{O7T4;+hhhYh}iVk-K0|Sq^(`DCsS{A-e*@q zrLF`Lpw|}W#usU)J8`KJ%13Kc?-8ru24o!nOZ(v=j=X{;`ON$VvYk{MY_c z_T=yMBqG6Y6>&x9z{WnqMc*`yao)p!vB$bmEI* z_wFHQzUEq3TOaQ-L$?n%=cPTHzlmx{3N@f8AHIQgbnZ2xkr$p(#E%C0yndo3D4Y%#ajmM#n#=bPWj)s)39P%WIJYpmc(wKO z?ai^0Eivf}(!Z|t3wkw5fytD^b?evHn-HtFxw#53{I-H_p_fDXA2_rlKeLoKhCL7K zKm-r2+ii9tn|FMi8D+8ixuZbiG(%)W&e&yp#&TS%Lq6ku(HInGySU(7lg&Kd=RB6>xcUzLiB{OJ&<4I{rlv?))rpH|#wz zi{IV_AX(CFy|GY)@}W%@&^p?q((*SEf?VcqM$_swK6}SrzHKTGjg-~>KBC`{#I!16 z1rfZbhVdP7=Is)N85&VY7|64Q(K{k{XPqlb+O}DHm;8o}uA%J)PK7N7ySnnU z?S0kdu%c`0be#` z{J}`hoNX)706N~L?{0E2H;Iw(n)_Y1L?u2j*FYr6x>-#-a%WU8?INFC<|phCJu?lw z@qPJrgT63x0qS^6>)QUC<@?z+>3;qK>{hRL$uKW!Y%7Lz*!nN$f2l!d!ChqFI1ZBwl?EHizQ^T5qsF``Nk7~sod`fChxtka}Dy4R~y`f3Eb$t+H`%P zV?4J#?{k4wD}E#V$Hs@lRC)7DHWvZmjQ!gIwwS^FCdQ5IKXLAnTJa5s>dIbB+XYo? z115VP>Oc@Bs~6Q{xvE{Nn+FW5At$X!y2u0NfYCSDL+lzK+JuYU&7;B#J$!RC zzSzUbvCKp^_53_nMW5H!+sf(tA?ld;eFuBWPSMp_NonBeN?zM%ldAQGu?H)g)s_FC?a<4)i=F|N$pgI6Dzn_rL& zHQdJ$8hLqnOB-?Ht33%ol^>|0?Hg6>PQ4!y<|F+daXfx|6LGu7`aawl18<3M>dd)V zr(vNIqZCfW0Y71B(m*S_`5-Tm~UP1=diRqdm3 zz-OneuhwY{uH1bsKAhATB4{j?tT(I_ET^!aYUF9yV6R(tyT`drre@P`?dl$3YAmsk!GW@)YSYWGy-dORPr zZFzsj5XV!edjorT;Rm4qK|Rrx%ldA`r>YZWuk7=A;gI^Jz3x84zTMhVHh8E^?6dmN z!*a3h&Ovzt4fdi-#Y{J?h?$<@7C43KjeEz6pjJa6y@Kp|~^e?T=Z^%R+^nOcIUyW~5ojF^p zaw%2q5_h{(dcDEJ-~T!kdTQj=-i=hJ3eQqtuC!v9O3MRzg`fn5L2osaiYGdPRQU9L z`PiQ3Kj|2*7C0>@ZX-3Img!Z!N_s|&aN6lWy?P*Xx0VNlaUQt?d^neOa)jh!VbxZV z;#Z7Xsh}n69dZz@%ahf-Ad0PUP5*VHsd~!cV&pR?9&k+`453{we1GQb-6Q4N6 zbGvk?|LhetFdMqZl3*Ej)&PGS?@zudU8xlPK1I(P5S_Pe5A-8$Mo$&{V7svwt@+b-gCZDk+SK3&eA7Rjr? zP6vq=!Hi)Y!Fu(DXXp`6dDqRe#32woyI$8OY?RI`z+FDi3SO0-HsYoOvcKBv#H30&E((qi zUHiW?prU|NtYcAnO^vlOuNoKnYL&QH{9f?P3#;EQl;w71x8K`cn`gs9cgmkqha<@# z-;(P&B*_nd^|K+&Sl3nB>1ri@Y+Hq^Ugj>vOJ}UYVKfjXQRUrpO`LS?PnfmZ$giZi zO2%3>cE9rGEf{Ty(@}Y1Yo$LcdOu%vu~38=Q@}Mdq^np#P}?$WFqf0}cnj^*rB$3* zX;65?(3xGt6h;>rvwHmm`d7g8h4~LPXRC1$)07OFXrj9&_@T56cPW1{E-4niI@zd^ zx#qF10}bU)MUbO*mxbnE)8L)t+MN05Y)cbISLrhhyesme;a%&1#~_teTyflE*hVHh+Y2F+v!53QrS4O>R_Zt@1EiW;`Pvc?XTik?{l z^KGUy>+%H}OUa{Ot}i5rvKW*N=dN`x6=!iBUMNVt-uB}$s{Hc79oz@VOo@i%Jdx+{ zGc=G`F7V%kQj)FxslBB#0fcepE*$dv8^$01y1(DQev6ZZBw9TEmJu3uty7YSS3jTE za+SF|WeL2xDCVG+W8!(i{dyr9jr0bT$Lf7@4pHLv%RkC3*WmZ?>W;E+O}knsbPKQ< znlW}Q4X@^bVIdS=CMkrNEluO+vVv5To$(dxz=){Abn9yKh)Ean?1V490#V=3&wAS+ zJ)`=Wq&l`{OFO4->uJug-z7Mu!Fxz{-ahdac$c=6JbC2^Gqb7!Oi!5?JIH?5+m*)T zVq;(hd|*X15cJqDHb_QYtKY~u=K&Wi$R9oh2Q&*Bx`Gaz;Oj^ zyhl9EXUN&&%3MM2cbP78!;^#b2ZpB)DV_@ZNN7V_WvBPQ`*bDs@Gfm^al-gY4?`xS zYE#zwt{SkDb)|q))!#wIaW1>OChpQazH zwbey9xXOCzE*&92G01*z>%HMiVkJ73{#_qFa}Yu!D5!ZeWKGrUxw@e7p2E>c(6lVQ zu}Q;e@qze7`zgCl!(NA*^&j&I**x?l`TC`IeGrbkS=~N(!!72k7wYqXyiFGdPa$h_ zTO$ZbPQ6-~4+UJ0m}S&=Sh(aIe4HV!WAW};)BF0Z4xp9W^Lb36%CS3oe;KD4qh;nt zE>lt}S#SDQvvDwgt)bGru$-jH(erEK9ff89YZV$|4RMk!DV9N zRfE@Q<5fyZvIGn_Vi&la0yK2kEonmJdYij1((I2Uz%GZlRq}uV?H~uA@~xVUg9#c( z5rcI~84pl#VCvS}r`~Oc`jh=tcUdmoI!^S?%%YFCfT@KAOBTStA`_uF*q)~UV~O_1 zb!*8i@f)%*09brvLp%)?o!&M4EOqTkgH3b6 znTZJ5RKLB8|jPepU)wrW{8{=4>}K8K`o3a6HXLC>jW;8=wT*j4pB3 z=`ZYy@?AggY{nvPC4p5aqvtA|M-1U^o9MW1Yyv%|v4FWg#?$!7O zKJ-i@MeN=2@eZEPWV@ACJBC4C6uhi`mZ~uK!8C>$*Z2E3Qbe>{!p$4A=_a}xSDlUn z_D>%i25dTIE zca+f%X;-4*g@L8-bz!pN)Utc6q(Jt;?Z(Rr&)K>#{gR*_LiD^XN%&}Vmbag&$t~RK z0h*ZY?$l3tS*-^b*!CFng6Tf?e>k3tZ)!}CoMp&wOj=FH_n3UM9BrhI(C{FOyPU84 z)y6pAlnnF}lYxroX*o3eANuH4<+ajZQo+u1#5|0;faRw-!ag%)AN?K)xz1?dIi%rr zB(oD2a)tf_E@52DQesex*6#uxYTgw`5luEjvu9wf;ZY?PnsirA$}s0#_}U39QSxM| zmDRG__Xo&QF)ezf!a%lPGAh0{<|x<=Qp56$n0gg&DMlraZ_WKli92Vy;3xzjf zNY69Vq^njFmr6Z;H^iILb@XSCbuVL!B+Vp?l$c^%FDPwb=hP|A26ODC@2fN3j^b~> zD@Y!wl^xIBw2vA5tx$C4^|!zxO;mV8Nz83|iqEH3zav8Fr-x+eN{CoSQ*Il-Uy$cU zl5Ifg>lJ&6X}x?597$C?xymT!CF2aC6pmwWbh-!;gtw?M_9-bHj;MrK zt=@PWdJ|rknHTRqtd#%+D{ObSc;Rf5KI=nx(ms6rGx^41CP6D3=|F6(_FWd8tstMF zu$erP2f${5gjNJL&!9)*0o1@nA;*!JXDyErC;>FU}JGZY_V7dJKZX_&zUfYzu z%)HLuw=T=2&%0ocYW>JtjF5|vr?<(j+HO8&I%`|V2tAt(5Ew9e{NQ?@`FcO*{pRMT zq|1WO)pcE~?lx6Bx5@;nA+_;{Wnd3Mrw)E7Xw7UUuc`Zh(Bi1TID zyebg47Ibl)iYP&+ML`+2rSPW7%8cS?KcZSg_wj;s2*BlYrKcrg95tl=dY-sK~fplqzL%MJyAME%8ZEA;mUZg zKt}sY#|1NXeh5Z1vrtgclQSrhjacR04x zC;ZuW=EU?vl$mp>TR2j^gt2s$u0vjq;pL3eu#JuKU>tqkVdE?2hH_Zv!K&kZ3HMIq z^+wb|=~hd|1}H$X!44}8mH9a)9ZV-;^QExS`!HBvMW#+&ST9v9-Ho&KqqI%7mcwo*83$ay zwCd`m@%eltt?g#Jd#QH0GsM4y~#o#Pt2gC_t{wl?9x#~>U=VeJ4>H`2tW>9?WT%T&K
wP}7*wg62G1|2_1b-?2AU2;US7w($)Axw1J`yD9C!Bdxng zSXNH&Q3!vMG6nE5=Yp}4YG z^n;YGhUR|1Thl<_!vKY~#(JLC;wIBKUL>?7&y-~19lgXjd(`LkoT<CI_$L)EQ^8HG{SG<>3 zDdaQmu2V}62a5_o&tE02O$#f7pfW)}FY*WIpT;?gEj{`xeEhbm}H7NN+A=X!@}*MniAw8Gm0%IwIo7}8jI*n|>vJ*Pj*Zpa>{}@|8~hl= zae`lDRqHz3ggGWU`6rc(O_(k0MU!)lYm=<{m{Oexn3?6W?#eSw@9vaw%@3~OgST@! z+GyaR-cETR4^N3|&+EA%y7sE7DuVDNEL`38ftHrmv!RiLY{m#xtPl}z)aacn^krwF zbbbJKRe7;{T{|Rl7NbFWv^BOZCMj08nhs2v*_~LF@{vdTeJ-gAw;+J1h^-ejF29g#L zlB1&3qps9LU6Ea7bN($qQa4M*cu^1ZRkvA^7eOa=X zHjD5)t*L&s22k&tN4pabahU9dka(?2K>D~}N@eI%7d}Ve;x&4tN=mOhVC6~ru8GzS+J8S>j^lJ z!!IZ_G*ukpK*ro~jhm=$@I0myv{}HPlD$mwdHLz1;r1b+>7mR_{Peos=}f@aMH(5l z(du2h4se!0;vG;w^Ymx!xSmFr+}yC`_OPHSguXD}lu7wg$&9RKvZkF#FaR+I) zxXpHr9Ffn!SA|(BJttxj4tgRbM7W6#UgV zM;J{qCSSg4FF5JXK%RRy-H2LZUbjo}oc#Q^%ulX<#jXI?I2=jA68|+?h<9w>yw#UL zZv?wCo5ij)>OvP$u#~8M$zo7SO&BOYn+jl&RliDuaMook|H&1_P)P$vt9GDg`ScJE z>+%uQkDPBiHGl1c5k4m1TA&j=e$gGKPraSC~%*=`65M{Pn85Yd}2ZZWDB9tAK9tcLpS3%`m4%-&!XELZ9 zAa2M`72yxDC(Q+9IOTbKFJ&EBaT{stvydMh_^+astMG;}*|mOX4OS1vYqEPi14=AZbZldkmgk=SUlBWhcer9^Ayw zy=#gbl__@^4wH&&v?}HC18kX!H?D5usf=Z}f+D@n3YXh+NDtCyVC%5FOr{qi#;b6t zU2s7WyoCKTQ1GR*zM2UE|i}aifL1t&?3E3t&{Y z4uuEnLL=^W{Z8R>hq6R>uqpgB3k>`2#w13Yjh-YN1pf`rI;g6=(~6C$e8O0x7OBJ z5v0in>P0Y6kli^#wr&SOCycEUiMjV?P0aBCE<)Kv^PoYXhkXOZ-HcD;nwoO6u&i=D zq9|=ik+B(EL5Q+C?DOgwOtc=t7Pl`Ro_<35m=NM)ACWs{SlX7zW2utmjA*2Cuj;Y` zx6F8BMgoI^HFj0Y*i7o5_f&LXohMb`{ss|}@!Lr?PTK84t@_p2Tw4Qq%jTL1bN=pX zoECe^wA4qfRL-|LyP}H}1UU+O;3^&B@Z3m@yJ>V*><3B^_O216<8HNZ=f2jAuhLdG zYlv{Ta&(k;rtD#t{3L(@rJAB^iWR)CE36LS4DLLAF5czsw9SEUG4SJ zuL#>7nv{8wQGuh)+O=`lN#Ip~pl-SLb=BVDZ)A`GmAGq5wC+F^NB`AU8gpDx058DI z7V0bJK8eviWZHN^4W%h8Y`Do(@eI+(akc1Q+DErhPks=;HA{bT!3>C&gxXvLzBG%p z+!>zPcd}!V`@OIUa-j*o{%n7d`t%|1tMpKi#Cbt>F5VpA_BKXP@GT+qpxAe!V71$r z(I4-Jo;ChFF*%jPUv|-&XANXr9vNzEV|RFA>#c=n`Oel6_C1+nPHXFx`42?!{c9t$ z+iOFtayjo@K%nI!-0!u~0qE}R>FbiI8Yi{4Z+8l33@C4Q-1=*G*lU=u;4dHRxIUqE z!Stybn&JV^B4E!g0J<$_6gT@ba8-GD?%G`wUYT6YD%mhaAJ&GLVmZnThG<`fXAv(8 z2jcbIPET73&!VV(MZ9_!b&G$(W$x1^6f;|WcbaY)hRK%j03ty&N|lv?ApcML`obY{ zAqLDIZcTVP$lVdz-H1m*7jaav6-5Vhno@$pDPlD_+U0XwErwbs9A{5}ErX>=++ z>ea)^|F8h~{fv=xd>`|8xXH6isZtFaK|7}(cDq2A*U#zF#Z-hbbd`2HDa;zEg@_Ff z2IK?{v$7%LsN~Ne-c@=RW#j&|i?v2t8ajV=K+Q=LVo84251~?#A&u)8qY{2@cOn|G z6F-6}_BWxD=2Ae-G2a@7|R=N1juw!AbRA^UB)Q%7CW|aGuB2lAslSiKwWoA3qGP z73TuC<7gtQ)+|M{(?5uu(D-|%bzqfJYfgOs5Zzu}8l2kbDD9n0PM7M*fiMX67M{Z)Wzd_VeP>3+RPVHpwEi> z&W>Yirx8?_rr3_Bbo66G6lxuFeFNtmqiRiLpEb_uL-fx~5~~Ye%&vp&DTaoU+wY+R z(vAsAstS1XYI;4NpFe&3^!4j5EuE_N^~vjT6~{k!>b9j16Hdb=1s(An=5+XEo3V)$ z>xTO4!E10T{s@PK?Fo$w-&1p~%FFFWnq7^*k}S=cSiiK`C)tu$S+B2lv|9e$B$%1e z{n@qkGR$kcE+I}hO;jg0xy~Kc_1W26Z>}rlGW4R~p}(7l(N38uQ@6m6Jo!dfYr2up z+7Guwnq7D<)88tU578x6%KUU(z4y>GWbjewsMF&-hFH) zS3AX7ipTMQu8@ z<$`$O{hMMZ^FegD-YnafRE`aL&UrwS-jr=@N6(6sjA7l1yMFwRH>6`f;3{4y#hOD| zCP)$Lol}M_*H!O&aSvj!uL7&sX7%qez*2L1vW!Cgej@d2CF(k*0NQJq9L95g-YKSx z1gp{Ror)!zJpO93>xB*RH53JBZcdJO>79CZC%>swhNt~$e7uqdvj~Y?edmLpJG}CY zRMIc_#FT^bJQduaD(jB4v4ZcP3a3jhAI;%sA5uUv-g0y~bRU2uMb}c!fVxLiRYXN}Wi9FG#g*o@|TO4vN10_;_?g*mPh`)U3##w^Qkw|=>}GI!ZP ziq$>R^vgSslzzAA#1HWA8jm0GCijp1X`-v}o9%Jdvnj8+)k4tzDdsSZi_2&5*A2V# z%PG3`zN=1F)*UI|cJ$O7Dvr|Wphb9sR8qit%gb8vZ?tFO4y)PT?{#Z+`d5liFO5sz z+v?akH9KKC`+1qC3W2RJ3F^M^Jd>%H)wqLopks*UsfI~%Tzc{TYtL1Jh(t(q<~{Kb zfQq`>qd}sjyv&rl4TH}GDGu~edZndh#efYj=++kh^c`znBDGU+Hk)xcA>GQ%D zea9N@BIB0*)95a6c|}E@G5g{2K)(;)*ki?bL-e`?;@8$g znY%xj5%zcxXNR>!vLg*%TUr7+_g-vW+6qAL7o>{cYnsSc+!?+sKBo^Cu2Sb>0~i}t zvbW}77qiz0jLxlFz@717LgkH-it2bVFhxud>Hrn_eBj~$k?pu3C&W?w18LNz)r@dm z`ge&jGxTfg3FEUK2D4^8d_75Ow=mihF~L!b=AJ3hQj@w=3GqlglEU61&$YLZL1j3ZghPS`e1x-`LDC@s{j_S|GwmqtG5>rmkyv*$ z$|(!#qqi;pXbf68u|_(X9Obf{5jWr3wMfT&agkw&Yw@`L(Z*&?97SZHsFtLG^WXBNd5i0pQ;-r@M0emZN0YT7%e+d9v!eSc6{23rrp9ai8!*A;IH( zH*ph3{>9Ub@*PKjqf)rY=c9MTf;W!F1Z8PT08)G<<=&?iG)TRwGFc+mc3WWij&*Iw zJ?V6#?PAp6lD2}}_R_MDTSst(FJtxJtlL@1$TL8?fdJ&wYQU{k?^!%kt@k;aAf`i( z+5NU^Rz8$2r<(mKh=;AO?04PNQ7CeJ57Hol3OOF{sKI6qEZx#FpkH4c>VvyXBo@9U zNbb){c&np91F;UF8a0rGFE(M*>)^uD5?o=pbo*b!{AHKK?Xpx4-lrJfzhhF3c>t7@ zKE=<~c%L8mlhCMVTn*bW%%C8SEWaN_+Z;#SR=jd9W#vEqoZ`K8L(`7sZYHX<07pW1 zu++ad2Guq0a5z(EmMJ~#1@&S`~L^(J5vXVX)~oeE1TexfZTOr zpB9J$^E(PlApdgZ*!Aur6;(dJq0Ls}+Y3IC6ruegnLizz z3a*BT5Y-j??NEdNViFhbZ2f}+<*P%Twnk|Pq$Bz~#T&6IWOg$6*i9Y`S}7h+dH7pj z9QBE&VGd*VS8o%JUx?4#?&&%Pc~XzK357yN>vOzf6E>!hZzeJN-har(U&m)$!BC|yFTWGh)%LI2A3&T0{x=*+bGB79 z;OcnK^Zz9y`9C5%LyYIW41^L9ODK6tna?*fEJJJ*Jh|YG zj)+>nIf3I^o$Ql5h3HnjqZ0UVKE2Rttzb<2%YVE4=sASt%SkMs$B`|ll3eBk1XJDw zEBkfnt4wMcf!5u2oPX!ZJ9EuTX2JHuO!Iu42m^Z7${Tpg)T zs%=fu-V6eN8o|pG15}7c*qt^r#2npxEV*+#p=Yykvcp1Y$iIHYy>`YSzh|~XL`;6b zlJOtEj))*qU*fUy$hBYDw}DYcuTx;pZIkj{r_1umdf;SQuXX>tX*1RM@wXr212|dq zLAZCuO`8O;g6^K?7-ObjZd+>75xg z$9*FkM?A#Bu4|psvmgA=i8pTSw5Z)Re;DVMQujNNd2q*}q~L*E9-i_D`mNN^Rg`Y} zns@U--R`0BMiJSRL|Wr+Umv?MGp#^0!7{Wsoi}Rk6XJZW?~YDuCQJN&@Hc!(M07;{ zmp`FN-0U0(b_*@7_Tcp}>C`G!_o?lhWJ}`Df_8r0#Pc`JYZmrLCkPk9wwo@bqZ6!a zYio>@yNr{j^)~5~q8pr-P8+r+u%B-6n>>y!$Fu3H?H$M)$~@zE{co?`hb*)Ei5+$~ zL6flV=cAspWZR8SG-)MoPNNi|^#X5;OZ6UA)8SxEr@j`66|09z4hg`Gqv~kHwl+!l z2fdn^Mqo-G#1Dfs$tD5_KIb#p2>5-p`1>C)`%C&_ItuX-z7sf+tLM&1$F?C$$0n#V zcH89T7VIu@R?f(LILi~;W9i5!*P+$BhK-RAbB`77{Js1B)e{XxleZQLnduyRQ#Vz#dOz-+?|U8_=!o@Pgl52IR_pUuefv|U8KJG3AzP~kawe~RdU|(;(%R>) zd7p2AVi}WWPq5;_VC0C0aR8pZWF=B26UO!HZmoR53BBfWr&*>2m22 zZ4Z-^KZiF(BUau3-K@IpQ~(5Gda?47?L2&Z{V0i(@lb*w9SOVw1$V-2f!s&6Fku#la za+#W*V3H7(v|;`cfmdQ-FU42+xKo>+T$ic1e$e%r`pW2En+5A$`8+kHt%^xQ4$UVHbF=&J;V_YSE& zt7QoWAqO$+H1(Ck!*vR5wOiOq|@0wQwX&`kq}_i1`)XV#vuUWW5@EV#GCJZ^HE0N2#cfTGr+#530Dw znrBjv4I&U5AJJ`W5}EW+?1*oggodxYn#n(uC2zDMp~5-N>(}Z}g4oZ=ekjmu)c7L{Gudd-Kg{?8#K90=SkXG3b?G0y7!``KoQnT7cYkv@`X}bl zyL{RyY<%gT1>o1L8;DornRzl>WOlbZDDZ_^r;r!+YrYn{J6oy?IAdQf@JO`N)adLt z0|=GWLq6@Hl% z(N|W7s@SZ^_Ly$nWE@#1e_)A5a`}#egq3Snv`*GuZ0rm+Lo)cd`|srp$lPrxfMfJZ zcvN9Lf>1qs&oN}uCW$ioq@Y=#i`=82+wRm=A`?mZ_10r{gZmTnMJF>y`Qmv4EFnm7 zxd|~<0%T8XUWs&Li2my9A|j3NO6ZoDU)J z_SHeEv4i5_&n{As!4q$c))j`U8{knR=`*SUXh2=2I5wW=Eq#3ZPU}L3lqYeXnnLAv z$jdU!R`&Og;_a*Pf7N>uC)^c;B*O_gVhe%jf3e7+-renxxAS|-3Xle<>v$CwL z>z|=xySw5ZE1k{I-SyntDk*FYFKhZLdP?kLGgZk!R8v`336SEOuD(Lj^Cc3=#AGKl z1iDv1n)^&f>s@nWFyT7ZdJblbI1m%db?!W8E@+>7N|{(M%#WnPqGG|w@wpc;_uVeu zd-dW1Y?U8Rn-2~Sp58faXcF^^E@&dhg?_Ww)_0G(OOed24*woL_9Pcrv?fqAT_$x4wZ0 zb`$*7Kv5~i`88IG;8YZp?N(B7Ux?;wPj~S`-vs{qp7KeDZ2F(h6rG5pQpf(8po8W! zTWWV@A8rItX87xb*7bznVM?isl=kXAFd&r6LKvW16vA_7KJAqT2p{?5P&gs$Q# zWAsCt_wOlrzMkmBBaxGl)8oCC($I3~($)gk1KPAF#4K_qX%!T*IqHz?hrkGI?)mte z-)XV67Yp&Jf|Wy=6ZD~LkK`4iB43 zPAs#bxFNUSC$w`2dPLJ!r#U`#oSieeKQ_Lavl1F1jQL;spktn?z2q-xij-h*PuZAm3!VuZ=;X3cY5Gr`Ad zYnUvZrwC;BZjivxBIy3uQg^m-G)jvqjCPFbmxi;(SO)i;PAw%cY``*|Hmi zdQWnO36-H@b8{2Ct1R)pXTw~gz*h6Z%rndE^++Ijz@s-Iw*!~rSYH0O)f|3%@CPvg z*oVkp-#gv^cxID4<9|7IRRWjHihF0Net(m#xLWn~E$YgAL|8xtaUjFuWjbc#+m2s!f z9z{E8**yv5MNcU`aBU?{Sz`5DKT7{azSc z!Ghj1Jo)*N>L?s^X8kW%vH4ScO`coqOK??V?E*dj1bF zg$(Ntben%<(m!N2+$DhZWhyFJ6)GVZy-<;cm*J#;KaM~|v?1ys`h`?26C2F*i^;1j z9l?EGY3L;~+4$CR=MzX~NO*|+IVqeI%nQ+by?8hF4GMd5o5e3kFq{soL{Pkk45#AN zy;8sav7wk+4Q(TrPr>TpnL|k~Q8*7EpiniFF}Il= z?c6u_CVtlc(m+{|<4-0*jECn+wt+vo$1r`zLAR5ABQW2U!4oi2v*65N3EQpOtOlT~ zLHd6j+3qq(R$SoKc6X(mtDYRcYn=ge*So)-V^P(c$rq?n38@eY{3Kp72KcvEYS25i z#|Db+f-2WwG+;y*g-}N3C=ynuZo1AGRJ3&9Gs0tM$emm}x6bXp{F{~?&c26PibDvY zMH?`jM_<2AKG@iUO9e#84W5P5nJF?n#YZnb`E1 zJl|BK?pfiajmUS!-u7ZiA)hYE(lzlleu(W$p4D|Qm;r3@Z>m{A6XrJg(6qhnF?j$n z)zuOmzpie;StK8C_c#Nim&+#-nSX=tXVolUNR={EB6bU6wN;}d8NI@*10#&OGyDg# zpSywi(B*K<^lrln2v}uW#aU4%)C4a_S^S_8%7v>19p|w?*=9Fb%oLKyoz)EB_Cv<^ z=I#uB6xedGGUrd1VhZgF{2)esH}F|dxAQ1y9C>dFtbejr6LV`2r+%O;nixQ`C{_kW zBRCSEOVQ-f=yxxil@p6_K>mhs! zd*2kzyiNLT|8aift>=7r(sR@&!BiXUuLT@N&WmpxacOXO=y>M_6ohU{bE%7O|M*9S+sg5AlzCxUNv+EEh@v7fqh zvp4!o2WPP?L)AURHIJq^${2(B7%HHSVLX1Hn5&WNokqLYJhWO948@cBk&?EtEEUWB z)s89WzrSf|oW5?Jm@~vIpYFc%PRirj^T8%q?4OUKiMlUI(IQK%6ar$MaY7ACcz0CB=VS!EBVvtq*2AX z8SrNKpDtN?cTGKBC~>)V!B1HPQ8)KLEj@4TlXs(;4c<5?EI!E+cst77t!W8S6o9KT z(LW+4?Dlo2v?nLn(&t%1RIv#kaC2wRgCglR0t8Z25^;CDzCaGId}TnYeTFf~weLI_ za*>SUA;HC1ynvi90iRB~Q(5X&)D)?vVxlhNgzVw1uuZr61KHr>&1T`(ES@S3NMjEud% zWI0@A7{Qq*5c(RC>)`B`ThwqvVI^|>)hkqky5gIHR7D(WjygBo6 z)A))ZM<{Wmg5=8m)A7%R7Q@_pes^<9L(39U1*OghCm)}JI9WFPu`Wt*o}{MHA0lWl z8B&z2z(2t#n2+~|8l1k+&bRdb_eE;If2X3RgEkQ_AqK9M>=195HAd#+^+0(_t*B`o z8ELUeYFQ~m3l}$VS2H_H`cd0ua)m&>oFz7w{r+PT?t1}^#1Z^CTjB0g#jb@6=v8r@bO#XYtp`4=N4wrGH3Dt~+CGREMDdO*R?V}^Fs;(70lx(Xt;l-=c9vYhSE4w1s;M}tNjfQ(1b^qfO~xTz$fK|h+2kri*E?P=icwLI{#8ITt!u$Issz5qGlr*hX84oi zIJsZlypd+lud2Z$YTEuS!59!JWZu$g66!5>{Uw_RqOKVjslja1GBh|YtFL^IPY?7M zYy&Jh`KH~VH1&m0tM?TC@Of*xeCPM^LmRklHz6u1%HAt4-!vep815id;jikE`Lnh8 z_I7||utc3k*?cLq*{?jJe{$|5>rs7F#-|l&p_8E_nLuy-4nGTTpSGMgz~Hr36{d@} z$)oYs7vPr8jIcBVoi&lNCq-vl_uMRL!V8ffbuy;ME~m8PQ=~?=?4EOX)1_Sg${wjO z?(Q2HfO2v}R}|%67i9>bpSd|w8ln@37&rgJ0;DsE2}pvPRY)rG!Wdt(G&P8s$VpWQ zaIB7RWk{Yp5cd^tDMt+Y%=*%3J(%-;vc0HaZDHA$_`(b$1M+n~y6dHBx~CkJvq3#u z2A-ZQr!=+$h60@0WTakzFp~V-zr%?87yfGW@i9D>T6_uib0f!Yd+K*yT z-NoX?mZS!EZFS}v$sToqeKl%>WxvIA@+pj&f)EOKS#oMLm4cD?AA}bQpy&DLRyBVJ ztwR&@JEtra47N>07;03~FGvp7Ucj=U^u2f#UdE9g2)-gsNEr>cBP(kSIs;w zD8TW#Q$-yWfJoyLR@9U?kMh1mDHTkyDM)p`P&Q%;r)A5CU&&!tO0%DRI7iPy8t#*DVZ3CxvX`Z0*hLmkPGgj3D|vR8$DzuxNVods?4n)Ga}~muA2bQ(K6b5! zJPe2lHzDOrfxg?RvX)aNBh+VX)1=l&%e6sq9rOYs7=H8A(@l+<(rsh_Lq@Q^5nQ4 z`)R-bqe0GX=|Z81e50;?^o6|Wq|XcmkJus^zN=j-K>YO$R`qRktkA{vPCU&OXSb4S zv~hopjOBJ$WU;^=Rmz@1iXGX_eNRK?yKuM8Fjq=LFHHM7NQNtt%~xeHU7qxyS`t~6 zlbYjl(EKvjF0GnDLB4F)hB50_%%gA)Be_FHDd20P*|Ox#hlhN-gIo$_yUtE=9*92u z<#ED%yOk5mER#`Mh|Bw4Xx{s7tAQ%2S`W(TKnO_Hn}`q$L+UyR6DTwQ7?zruzH~S7UU+!3_kErXe5r{$mJC8Ks;{Y=gKM3^KxWn zR$nc8?_uZKNcXpZ0-rV~LO)`rqoZG!Jx*L+zxJq%C1%(O$rjT3SPP$cb+-mqF0^=+ zV1uw^is16&>z+CnZzw9DE`qp z%%%zFxSb$Z&0pf9!WAG5<@4TDo#^qLjT2(ikK|Oa!DKBJ9mGx;ZiI+Uh`SU5S+eC& zVEdc>8Sr35?T*~UT4~Dro7tKF_NR6*cw||x43SGMldm0_9kQ&A|HVwIca9RfiA*53 ziVqJ;h9_#5udwQ~c}u&bV1Tzo5;~VWXCDQ|#Ay2Sl;6B1+!?1M?B>iy!PW}Bkk!=G z1a+N0izoK4ZSR=#)?7=hevumU+B&lyV%XuCi>hZ9qvO$paP47$u5OP#_~hTk)MU3A zOzP~jmtzpiHL~kvVzcOfH6#lcMmZ2*^6H#!#y&(+dlJ3%NWu_X5G1vG7`rG5_d(iv zdfxSW%pX-_f7DsNF1)&K9BabX?&P5_?F)P?pKlLRtsy(><`aDm77RQ_7^6b(B<6ar z6&@~u=i!z--*m3dR|j{@D%7eeODQd0Lj2mK%VC?SVxwfc>0BQ0u_aZ}Z3S~iGFmdm zZ)Rg84nnYrzVr6sB#3>~Y$AmAVZ*qxLqzLX<1`OH?X0Ye>htd0kg@MgI~gnP`<-Y6 zk2Ff=pbzm@uCb6;qThs_uH zF%lXRyS#9&%gp|3%)1i7s?@E>%?fN!d!DRgZkpO?y~DxsTe&c_^Iafkcyqh~j;!qB zmmI7-2&)wq7B5P*xCNvSj+U>w?T|M%uMiSuwWZs-NcOqIML+G!_AxEy_Zf2Ja-)S? zn=s|Z@Z-#cv4Y(PREWgA!S=>Y4LvCZjQCE}QC&c`O4`qf{-F6deZ%+BasEZKA2BoJ ze|^Qt#AfUb@5TGgb86 zb5Dj0*vo5>=oNieDrQ5amZy~uKcOi%u5P%;?z44hLGXm;mF8H z+2m(puFxROJlJauUMqqk3X`kUSLrozT_pO?1aJ2jRr}@~b4b(4g86AU>Z&~**GfcC zMuHn|&myDeuexGX@O(gPyq)9o=k_nLOZhe0Zlx@M@t-7Vn16zsQD-b|$(Jt0BUZD7 zt5Ut>Fb)l1tB-?(d0*gZ?M#Iz5gnKm5!bXDdF;J6ZSS&TF&k#R%$k#SYA>wTw@v1)!!@bJ`kf+9&Et0{JW=pINPHx29|WIvf8fSs9z|1`NFo>>vB*z@lhYF zx6UJebqhcYtZ;LKcvl-2en0B6ow4DALIwOYnC67RhlO7X87k!zaHeaf!Lnptu}agI zYYv)1SC^4(fcpm&{WNZ>wY9bYYFVhu*yx?DA)G4wVu}Ags=2q=4%7A8ppnO~%f;r7 zBiaYE$+3%EYjGPa+wF0A4OCT)!a z^lJJr4nIuqHk;qeWz$Oo5!C`aV}TxJR~p8G6~d_*xVdu7#)>O#pFhv5C@pqMwzm~U zzadbr$Tnrlq*Tx3r#BY_oJ~~1mzI|v!%UQ~$OewQPwPo@?n+jR&+}h+afgx(?DT^F zr^T#B6ia_mdaej;=i#S!y~X(%Z2S}6S&I%=@~b&+!E|#xz7s2MJa12H^HkpDLq}-@ zl~w4ZXcSktTo{vel?UAR#)ahC0%}=@TH{TZv;SkC>-nA#e}AU)uReECQcPeVGnC4j zQKHs)uYMxIL0PQR&sHarsb)SSy)B{3u`$L5wkc2c9C#yTk)QU+@49bNXjOY3{79VB zRl9#xxp^h93SZ>t2p|ZL&)d#ebmkEanl|d2(vo z3?2?gBCETos_u;AyP44h+!Va4;o_aL`|SCo%Z~TnQl7Gr3-VycAxc_8J8}7NXbPKh zaI%!}5`-Rt>2O-I{dIX7oGqGRKka)~`y!aREO)R;!UTRA#lhR%B57CYYoKHd;f4EgIcB4WJ~Dn!?$WwpjMKRW~^K=^vT=l*Xh2(dI8!;) za(!)CTue+Pir?@H6FuYd9W-lpmjGj^lBT}H2B;K#QA ziJ>6)T##$|e_&kXmA0ljy#ov?KIJsBrg2}srQ5+5WF5WvwZ=w)T7%AF^Z}m`Ky^m!F|md;Bp%gZc;xA}*1 zZ3FK~X){3rc&cVXv@n=Bu?bfWzXE_mInV{?YXRnb?_G{To!7LgeeSvd2W45hq?&YB3L=%j+T zTSl+o5uy8)s+0*)n*TKDIRY@-x-e=&y8&4KQ-Ms5ESW%}lqGlDnJT_W2T=bu$xEFj zhPeTVot=S#oBTi7Fx%?Ey5@0;hEmKkXqS6~`UDNDUhv=Sv{?$xZ$s?34p8SS2LlVT zeFFxTD!h}KhL4gMo1ov`xi-Ap8zCpSZ*4AsFXyR3a2TWHlG19kyrKspigE-~8)Kqy zP9bA)ImF${d@=OM(%QO6`%zzIbx-n|#*hYZWhzrka3>*?rUDgOi-7&GgMG~hc9J&YAFk|$|R ze5!jW9hxs06+Al@LafMCy6*oUDbC+)B(+=IbI|hZlhEllP3>Is_0F;wHTM zO}zQAt#Y5e*|u}r(_@M_cMTq5jg)>Cs}L*^!bS+-E4(bI!m#M-%J z1HJf=6Cg}~(GoK>Udj^rnhe*mm;dj4@FMy&!qM7(aR+C`(T^(HoNFHHDhpv|c5!mF z8WR;Z%z{b}*A>p@RZC8Y(lL~_d|aym9F>zJ+L|>wMyZCtJ$;Q!FP?Ht6|6nHY!HTo z=u2oSb>2!)5uiDuv#Z`>t&0ko*eGF8Lwf*GTzn1?hz z0E}jrR!$2a#R{=spXiL!x_I=sg1grH=Mf7t8_Cg&=OnjnVikMc8Dw!g>A@U)E@ghU z&e9ZY*VPrm3-ZRi>~zM8)2=NT-i`6=62GIPJe$zrkHG4mun|pG!ff_6cIYKR=qEp| z*eaaM%w0qdJZ6SCC%ecCdKJ))REhm$`}$k>TRU+^X5!!jcZQjnweB>9#uX$PdH%ri z33k7> z;032ev(^oi-n|f$oLt^Zp0n?`Af_qb4)A z);Rb=(j7Wp={ea@xRGT4z($rU9&4qpJZRfR4hW=rF;W-Y4P5bDG>vt#1*-{G} zsS55en`i6~Hu>$w#QpROtHJHcEXw@+kJ3ZAl84Gg7vTgS`>b+o6(pGpP>Y9Y_H*z> z2DUznrm&+G4mh|#F|7HGcJSelc3Q$a>K=Dv&$+231k(Nnt1N+m_%E_D#bk1Y$UmWH zJ<|8Q(oYD;fAWeG2ShvE+bXe1Sy|R3G;)w z4dnRz4CZY+nuFu5+-yWIpft=>2e_=$^B9QF0$Gvo&MBmK=2}`$ZvC7PK>ZAsl(G0u z@YJ>q*5A%H6`_4=-<5pqQw`{f33KSa%1xKDAnud4!(ax^%21Q;th0(I`hcl-&VT&izfzr{U166Q-D_UANiM*3s`b4Pn|>8f@%^RsbO^9*o@JAS5y!C<`s3pFnU>28=G>7t;mU^SM^#}hwMEQruVkBoAa1%s@C$v<8t*J zD&qjgMR}?N$8bM?H`ah2D&?B-bAmJlnN2Ha82E{xWt4=Aw1SedUqhAquhQD599^>EVKL zphB12r^^Wa068qB6{HAoU9xB1Yx;DyiDZ*>WR_B`z;9 zHd~d-3g%PN1M`07S^<-OD!=dHqRFth&@-ZqPgmdulH!kqz_G|j7p<#o*f*Vt@>jPq z((DromlVFRh8nNrVEv?JF%k~%Mn3FW_C%Qg*Oz&iapkm_5i~EuY4u> zihW~ld@gy!+u|&`6XWgqPt+dx=d@!9+EgCXjxjqUv*q?jmmAz~9b~_l!%F0T`_PNa%zeq5>8`k%E zZRUix`TE`%^#=gz+fsC6ow|}bnMr5*a}E7Kxvj+v+R{Gp{~3kO|1=^qw|XdUpjNHs zi=dcc?)79hWj!2L-*|J35c4VkVqRLS)>IDR3gN+F4^N!qNl5c3u8cNM1DHc77NgJM z=f1Z0@geXpml+w`O)$!K6SYkxEv}X;#(-X)TZBMLsdp)^q*ABM$WfID+{I6I-4ihr z{?xiR#StL4Bs4Dz2)+=JvEI8b`;MJ}k3C40Ygv^D)^F9{?uJJ_{d_NeW;oM?0203s+TF6`~iU+dwzoAA2F zU#Qc}>V>K8OLKk-Hot`(KGoHl68^pQw6EG_HGXO?OReGt2C$6xhBpFkC{ z5hE5~(O(nfG2-|#C!&G#Wpp+=g=*E?(rTHX9n)Bx$?5dxVQs=)A`FxDd0tDx;)Y!Y z4A!nA4$g{cR*>HM80P8THgH|>A4JP$Fg5Woev*kN9*dkL@9+^2#v|~1<@h!M$9{7W zDU!j09$G@Z}eH>JG{QD)a07v9Z@Obep%q zZ{+i*!xt?tbg$r-O60o!=3ui;Vfhpgr{O7pfKmUzVqyP?1%1;iN8a0;Hhw!v4xwZN zwzT^vF$3?8sgpy#1&Gm6)n4gIJZOf~UN{SIvsn&8il;5JzwGpOn78vDFLZcgLG|hn z(ptJ7K^qM|bmKelM2rFuzWRP#$66>pm$X)J=h5LJK9;)yTHCeX%Ztwl!!NbhIb!Ma zI*8Y~DpXY;{j8C|98?H=5A@gh0{Jn;NoOSV2*Y3xRJT$or%2AYG9Yg@-RSNnILG*^+mex zKvin=lenNfgrW{U_JWo|GcT-!e?YuU+Z}`3(<2q}ua6aob7XEyyh>y65c)A%t z2_L9i>Tc<^iY0wVDq7BY`E4vR_5qA=7>}=U$<`~nM_kCd_2`9w9cHq+QHXnl$FjN< zs|4*NGn}Pb{PVys`Si}ngu5l>0;~Y(8@B^=NuvV@Sg4D3xtBu~{%c;2l%Qr#)--nY zhm?4nMi*Ai$#hA7#rN zs-rj~U~P0}E_a1gwic%L_9|rO*BU}i{R(cHhpy}Et*#;`3X-n@;Z6Ny#}4%tbc=#B z3$)te)k=J6mQw0c)@27aWT=(_gZYs_nr^7rWAD9#7XH~dni}kIlpC^v%_()~X`Hx2 ze3Et%(ABZng0P+R~37EB#r84e&63fQu&My(-4&6$V`&3Syd@ zH%p;$!wdoPR^5BY0%xPe|2U5IckYNHX#6N}#VS$OwbSyN8&XqQ-RC?^zgS}EVZ4vY z4+)u=+{8wL;oixMH`#y~4hmzw8SK-uyJOU5B3p4wDRg2>z1MhG%%HHI(FR5%s|{?w zRvFwl2<(k&=-JSpH(9&EU8(u+(Jdh2)xGPkrsvg0TXXd^f)L!jEX|&4S+`RA)ns?w zD>;L&O64(l6Z8F}E?h~d!RjB*lr2|_a>E&3e0 z(_4D~O>g=n&Ns9i8LtC2&KxMmPH%I6|)b-R>E^ zV~Cx3J#NQFdD+MNCIy`kQmDluLk@-uwe&$>w|2O0Vra@LGrv9cia# z-OdmWm9S+ZdS&3-`>pZDg-wph%=Gv)hx3lJd%^wGHsjO*)K{xV8=B|3zrxU->!F0m zS;OCvGo8w>s!A5AbtPt&&!^I&W%*+m>*`#-GL)9R%UaA(W%}Zla>f6zft>zIVLzda z1qL?1kxdRvqz2pj;KqusadmCfH+kfg(Lt{h*b96l-Ta@7-TZ~3n8Al zsI=&5*(*J*L+bql9S5(RUEXoLHF)c@(Q2C|M7OLicgW#DM;pg7YKPY*OLl5gn)FPu z?OU0>ysr96)&tJR+qY>$?e=0=A;g&pXD9Y8&4{bv9P{G*`=z z(Zf~M34Oghtc%8Q!l<@c8Oy_!Ls=l>`pedOTi3-~f2YW(5WGJC10uJcW6DI7OM|j> z!O`CPR0}auVu>qny1&GGi_DGct`Rl}s6S}_l;9iso`h(I{SDTbXpT&JS^;%6?tgp?TsI8jZ0c8{!#-jQ8PS#)TJe~<;Y?17@rRTOS?jK zwphB<^p}@-`4|EZoY#toRbH1;IznyBC}5wlK6so&v8$)XW^aR+5?)c3&?ajQB}N(U z%ezisO~w4%z544cNQ>f0!dL5z!1!@1;0t;jccUoRhIP9(3HfMKUe=ADr1>biN1!!Y z`vhiC-*c{O^Boi>6rEr-q)8|pSw`wOT0b$JymmPHzRp#(u+(g`JzGlB`?0_y zK-iQL`Kd$9o=9< zx~POZX;69t4ffJnt*2?UNIULbZY3I-!JN|c7i@I0%~4ezc@7S``5huxFG#BsOAd}* z^7Ok6-fYK@lv=??Dsb^Fs0Vm~iz=8$Y)7}Qhx!~@ig?x4CB18Fho((sA6p*Ur!h(9 z4u*c9LQnJ;&NdFf*DxJ#tcm)v&l;a16~c3IBROg?B;!qug85SZ)x&Ip`Sif^`0mVVQPxqg=22Z2NGr$)w=G zX8@#%5gLEcbcwVJy%aCSG7L3vJ$Pg`SqJH&AGSUE(swtQlOn0NwVC4}hZXk{^BQf% zXG0MiYYpZ2$M{zn=EPe~qE{#EEsY3EaAG|Y#o?#sprp<}X{kl{NP7e%IjO_X72X?U zMUb(cnL%WSuI!@YygX-rE!9HxS?kh(WD*yfwSnlP>EOE?_b^RRN{SKKKgHT0`LXt0 z!>p$>;`|X0?QZSA;nf}qqt;9WBD;Rnlwoj|TFX4g#RcS$3)#`rT-Qy78R~GndbJu- z-8;#NI(yx*VHuE$^(Y^V3ya4pdJyWfCw2~Zn1$ci?(ms~B!IWaQKWT;^(1xM!|;(i z744tSb#?E9C-*f?&8vFGvg1%ktIl`#Gq4401XX9}VfcoaG^*w*o1c4N0)|dN+HNPn z2b_ z0N9LG*mFaUt~NE2iq&;WA;){gUyfC0Q{8J?j&2=0Twp&Ms|Gk`PtDLD6!dUh<*3g#66|Mw24TZ+%W^gpU0c&6IX|pe4>nZ|oVVfc zB787!S^LaI4$cMh*#W7n)_8wh(+>O{mRXsc97rHSp_d?@-|Bq6#*A1V)ejf5|E!{e ztA3Qv3>2@K$O2}fV%pzn3rIL@A8`P5gdZCY9@3cc7866WA*-VT6GAiM(luLUK=PRY z3&2<4esz+Yuf+taF#xxLf7@RIQpYBr6#^4#rT?HIuDCGFj0>Yf~DO^ z=pG!5I?%(<*KQmJ)1!8OgyGfpCdO9=@lakHj~j87t|nj@W{k8`T3Fn)cS=wROYWVf6S0pZ$#;<~mWmgY}feN~?J*{NgUH_wz&iUfR|41(0K3Lah26ISKWhSR$RM*wZjt&iqgHeLw!XgbNT&B%^h1Zu(-i@;;`q(y)Lm@r_94}Gajy6+~R?UP?m)GJC$gU&PV{~>ucBU;#ObPkov(#5**_D$A%0!vb4EJJci~> z28k?V6-GDtta1IX`8GY#7!&z*eDTO2zCQu!NtP@PF0pHRiVUBBJ-y@TZ0`BBZnvMr z2Yc@Zo$Lb(qr+JF@RPtI5)4Fqk4K=QJ(clp3jcu;+ka932GJ-Ab z8CoWE%XjFAbY&*~eyV8U;ku>!s;&0+v;#>;&4Dz16%J5e<~ezR~VQmstjs-U)ESrntbE!m*$F4o)2sd z8%FPFu(&(vft`WkHz9^_$j%-8MajiC@aUn^xoKXMUBYI(LFE#WtMaU_iF7?&g&-H;U+u`git6gbeVN z+Rdiipqx^8FeQ-n>K5i{l#rD!^0nVL5sM!x&>Q|Ra5R}2XH*qwtAKeL zn^)hhcwweH;yM0_k5?#kh0Llg@vwOKY(w#cL4uW~OTAT#Vr&V!8K%4~)Ue?r#A?ja z!}bJoJIU^mQ{KZthyhYeVuk2IbXeAuc9 zMh{8esa>YX?!PfiAB^mb21Cp1g{6CH?YdXft}dg_E=eMZ;0z?0^K1DQ--wpMFv8+T zQt}~%SkomiNj#k|EmM<&_7-H%^ljrro&`sBtAT8nAQe)#P&3nL`<;9EhF;szpf$j!7Z#Z=nMjb2oco#Z4Tk>s#1Mgi| z_AwiFpf|5J=sS7I%~wF#DZvN72Jt8#Jcyyr>%X2su`O*+jfkxpc*9X}s-*h5NzdHa z1)BRb?T=r5VO`yU)O5^7`Z=>6XH|g2)zsrn zR`#=7J4$Q0Og|^J`3S}#=*4ZoNnv(Z1azMZ)oSk{Kb#ruDXG3mdxigYU#vr-d+h_8 zKGICq;uH;y#Hc5Z*{xE<5d>u{*p*u8K{c$)4q}qj-ds|DcRl^5>5n%&bX_8+D3ao< zciyudM4q{SPfgaqx;zl^A$<~Jq8KaY^CQLtec>!YKLXXe0e4yB$s4xL+o>2)k$jDy zC;RMst}Dgw{b)Bkd&)h($~81U&Ha0K#ssq$&K4V>EL92Q4JcV^6z;VG$@aVtXTJoo ze!K;oNt+_vcR}0%c)HX69U9L34tO<>lsZIT=&*Vk7pkU4vCkp!q&V{H zD>b7dmkR>LIXE4}DoKyda=TLwnt$qj*BBCoETGO>5@Z6@cFPC-u7 z$|ziW#i#x3Wv~#j-JSF+kt06&!?O@~m0D?Mna>Ls>2C7!GA>zzW28L{ZnT~r+)DcGN(-&|0=DQ z;X5|X&V6e({20qHJVHXkN_(sVQH-K6EgdPJH1J+GaLL~)L5#j({F-}f&$e%4sN4td zfux)wcY?ZDRWv}q^6#sHoBGRAD_&Jsj?9`%E%`aHf=Lhz#F!5V zsaY@3Evdt`J~CyZaSil99UE9$TAL5R8j_^j34sx;%yF^YLN#IPLO2oJR)> zzT4qs1tV^pW|om^-(JVBr@hJu42&^u7dGX!=RWjo_^>-6vUEO~*gb!A83H?Q{sB_F z_vcgFOaJs@Ge1JYXM+-6vv33U66~{MpyUz?*A?Wg@y3;;v9k*fiO;4CI=os`;c0)E zG(qexQ)1NOtrvD zc00R~p!t9e5eIh=wVpUjERK$!uKA$KJQ0B8F#GN_9vLBPl`QU)#BZ33Ja6`j+**^&%=5j{Q5w#kS*I&R$TX|_z4kImouW~j1 zq^R@fH_(n*aNOD`{lXgxPTE+5EAiQ4j~<9+Ux*;ieS{Ga-;H+kvuMTUOGI6BYPlRh z1171_Xx6Dn|MaZ=!R=R%^$C6NTbm`+?SQTLvt_V}GO*_{e-a(JBWSHG>dIWKlBIK0 zTfg_+c3V~FSEm_|hu&T4c+qpahcYv}VLCVh6JFQ;0gSd)qk)-f>^Qf?rRS>f&POMs zTNCxSt@ryK3~Vej42vOl#o6Gk5O1d6Ag*&K&e`u+F>8IzBra zb_xVNT}?8=*ZM`unvE#JfDpXq-#U9zya3o+%jIVwGHb&)oC;XLLhW01-slKSN(dw- zgZUFouEPOY4YBFSfKdQPV?Y)0u$A zau&LDj9d0Hci5ds;X?vz^P>m=S`oZLYZMWt=Tb z%$owa7o*AF&<)64_b4_mx5HMqYkkV38w`m4P~ z)ScR+=>mE)O>ZTv@qt0v6lk zQ<)3m6FDjR7oxLl^7jo`S`V!%&5o$q&)e9A1weeeIEc zr`dM~efL*SWo0G%3&H4$d7_PpSF7@dbZ;w4Fj3}4Qi2c;pa05R1ylv{(3Gb1j!B-P z!k6Pcp-ms!+T6(42t{P5o{c}LE-lFJp57E;n>1dUjC3fM2% zC@Vi+UBIS*^TIpMGbY45?^ClO&UNebzYUvgg=To1=q+n~;nLH#Ri~+Cs+FLLhZTpz zpZm@jEUgr?PP%UC{F+}v`5xN<`M`uzaaO0uk|I8HLcKUYO42CmZ1rpLaVK77P$bIW zpf2#SlS@1@Q3km1>3eWc=i@(gZFyeQ+Kj0$x8_G(E3N7*9k$h)1LL=Dj&7_P!x=)! z)0rb-gS1`+$(CVy^a;Y>Q7@h4e{|1U>!~4U#57}FM($^bz3OZgEwxylUcW~i0M~!G z#5eNiA3mc0^yO0OdGZu};E~Oh(4Oa=@w<;Zt4P>ilvI8-0Bq2$cu}+3j@wR}1E}VG z<#mAsaLW^Dh5fsm>@NhqxNLi2Mi`ZKh82-T*s(aXaF;wRiZgZRDK{aJ4djcUugBPS zl9-OZuU>Zt&vei8&ik8fhe2KnH0$W6$4KiejbDv-3;wewy$0*q&DZv%)Vi%F4of?m zlX$DGFDUS3dQNzLi`)KNj|;_@unEn4#E$i1?iTXho{z(;1l@k=^JLFZb2%tik}1uN z(^|wR8yCRWt=sUS@4L!&wqSW6pU+$6U$H%53F)sMi9KjsrYKX7BPi{lE*Cd_tF)C} zyj51C>OK?1x~roYWyDR%>2;3U_SER9wf4lwFYAjHc5ax~r}yvWi0uzWcqUoq>phiQ zEsSJ(FX>(3SEESGF#71-8!#NPKmC%X!HTTi1S|#NSyI>IV7kC1v@5Y1ku1?-SPcB1p6oy+U*}S zs#cHST8)rT0ZLM3a|cNKnOnZ0x7&3K>Rr>#Y%=rn4cM8BUfy5o3u?;B&As{& zfiPVU-pNl*O&wL;K=1#&44)GTF5>x5zoyTQGBNN^Ewe51Y|s(4N944^^H~Xl=pPT| z+;oKh2!66`U2W<@mUN(#J0MgW$lkaEo3O`N}6LLfirL< zx)LCm_rpN$uYWIZdPp@q!9e><#74s%mlky`Rl_tWZmsA`W34Loxwo}-Uf`EUT)0jm z&O!YPL!bH4qyoFm#s5Y(KIqMx)4`1?{pL+!toeg0H^}xWIluB&N6S^gcUg0^?(ZP& zTf3Qttpo~#1#g-a_*J5_zwNyW)4Sx|TwzdVKzdJ^K9A?^;mK?mr2!{0(gquMej{zm zjWCLM-NClyY1Cj)K8eHf=0B#d5A(e{D*Q+}F~%+)dGWx;lwwKo$;a~V&W=AL>%Mcn zYrmtbcBzMg#(Ep7GzMXEu+%kRU-mnnjlWE6hkHIlj>B5d+CrGi!NbIc(ijUL8lS^< zr3Z=dzZ#}1Tz)a1A2?)fJqxdjm=wP0^H*j_4z9>n8UV(sL|{CX*6!E&$Z1rm9RT$D zC}n@SpVq@qUy8F^FgwY95F5S9)VYePG4gQ@Dk26|zC|59J~4U!+8x9k0ww zI^<~PZuN}u)%^wtUm&r+&%}J!z z?uKhW5jT20{>p_{vQ$o;%3!&ex32S85-^kUA&SQ`0*}ks;$ z7BqhUfeSVrfN}eG(={}#v{VT18G#U4G0S)L2DLP-^UxxH5-_A9f$XW}75|w(SVsfX z)eU1Tc@P|Uos(0IwLXgaA+blhtZ2Y4m(|lB>FiWD;fOQLT}tJ5o4K8`=pd8RkK25EHLTNp!`Z^v-t}HbvRprMK`LWRTI}Hb zdy>85oN7>4jjO)Z=zvy4?3(w&&oIW%o?ffIJQVYiCcw#ee|EbA(?nnYTfcdTe5zr7 z#w}l;6D?%i{~sJ?TO5{36Jmgt0u040iUOsu!NJ9c?uEqyA;Vkh~`nbQzzvd-XrK`CQn*o8yY8g#O(QF zzy1mhP0<9olb&2yoCl!e6Ph4nbDYNwvZei3<)AD0gt5k51s)`G+zRSvK;Mcy1oV*x z{yWQ=SA8dr_aOlN@l5hEm^=OA@p$rsYFLg%0vQmXC5RrTeL~QKMu=|}fk5IM|H?m- z;Or-Uo*e)azggr|NxYyt?Z-X4x1aLEn5ol}^+Ef$PTJB75EoFq!g1ZYZU7avtvcx| zmG4Adq0}@nQR3(u_TyrpL_n8zb|`J?U$CI;76R@4?t@DJ05+zDSK9JnG*VNZ5E z`osNK*0|If-IKCys!M6%&u9vT%Wt_(4+c=Nibg-WLb`FXNfpZM9vtxj5RS*Cco&ph zE6%tnpe{+~E7QWZZUW|u^tf9Q)!+2Y@inigx`k8#gssd04hTz!8@ivjvX$s~Rord* z_1^FL`_?vBr8!$X*GO%cwE%#Z!|-(xz!H_d2^41vJ=GH?3CajQrtK)c-z*?qQ~cqH zG!aowkR~2_fuP47ECc-$^?_fAs6MclOKDtLe~?;IL)Y^u(*8()_+8J#zy!N@CAw>) z>-=@QdDVkVTOTYVUP)L|P%uQ_HlJSiQMCg>PHt)=kNO}J^x*@{c4KN>Lt~N@O-^wE zSKH|1u%(@=sbu{3mFxFVA3*lvOuL;GvkIiK(9eI`YkyTg5D&k@df>~*~;zA zsK+!nczJ~wLOzp;-#DH?U5wOV5*e|RmF-@3qJcel@$duJtw8%^3*f*^#_u_4=!!ps zO9CG}d2$JT%JcXQauE1xw@@d2cuUDv{QNqyP&J~!_WUK9-^L6$4E*<;0jq}e>*$u` zR~2<1iHc|Rk%^GoM&;;>09D;Qa6|g0)QIW^@0ANy#?< zZL_kMzuYlGxr2>QVNVtyn50{%iX^ogh?ZxObSa(`t>$n)=gac`crrLbfrZnR>QoFG zvEpqth^rofwei2V{>5y7W>17Oqa8W8vSOiNCJuYj?y{H=V%w155 z@V6T zpM`Ixqf)_QeIJ(2Wog%Z=bGW^;I+%4S4TroV_gidzEV2JXhl?>)R#;|b8&xO3b)y* z0$nPWKhF^BKAr0j-lW3x5MVRl`(pcExz}Ini)lZ!7aIw^ICMc%=Q^9$o0~He>bh*p z*F;u_P|d-Y&b8&eh}EO~yyg^a9ta-T)=_JsqFYo6j%Os+Sxn)m&e|^K-;=K;987BI zvA8eC%r(9XW?ym9HRq2hnj2R@zYiQ=x)RiNzsx5uDTVxUdGW-&=8pKiZiO=P49=%H zfkRekYZ?~fHheO>_Zlcb2y|7y92qm`*_`*zW+Cc5y#hVMd=Cx1zrV+}uM}O>wF`1= z{uD7=dtuEst1F!Uv7R0;dv|yD1l<}`K|!HBacTt}#GTM$L2In`Z@=BOm8Q8JrHirW zAl(iROzS?rYi2cIU9`-05bamIJP(vut3Afe&7McN+4>Tsx??*pA<{;B3vNuWAPFAb zUWdIZGj8RE!i3EmO6+!ri^<80FNLZIxGgWY3}}nRt$KRY+R9-rs~_L)U|Y1> z^K8T*Vq#kN9&ugvA*TP=yZy{F0U?qJ)EX%-m1M>EkTOtu+!ZD9Hbv-b=%)})PUr3% zcMVO?;wHZH5KB+zVP|G)5#x%Kivv0A9xf8|rbpV-(0%#{;Vd6FTL63j$-WaIWR~sOYAPr)6yVL%cI`E+cP0Y@Er6idnO!u^a8E zl*pmv8I1lQNz=H2_;!6!fvQ7K?S+H5<-*u-SnlOn4z3yiO@3be5Lgs9yiI;{m9m-> zpLGzanb}+1>of*ET5IAG!Hu#swvW-8$77NG`#rj`q-D6XRljq zUvd=J@R;nt^tVsZ(5U6N85Ue`b1hkVXWR%ImcUF1aePXzD_O0)SUPTWVTpLQ75j@q zZErL-96y4}-EE5&T6aZtH#qH%m2-KDx)XQYF(jZ3p5Ga@spjf%@>e@|@$>lAt&H-6CA6X&YhJQA*&jz; zAK{LbBMUpcuB*}Syq2V*;l_Q`!1|Vs=DLIt`dbMq^QP5`o>HD{x+Z7`_k%Ita1ZWU|@e700j!a<_5xmGi3pdK^5@X!j zdc#(0R$E1B3J05i)wMNHnYf85kYxNTo!*p(ABE28Kr%#+oV4C$Ub=EY8d_r79o2}p z6_4YP|Cy_g0WAqh0*(^YB|`KZUFGf3LMEMY5`CxQ?*SG^{PM9!nYs?hHXxJGV~=tK zq(Ia>Ctn7pORBorq4PQ>F9R(-eR3?_gWs`5?}dvDBaqGPYd~MgEFQzLt_&wG_s}46 zR;kS&Un7-n0$LV=dN7TT>_KV0&UGGv-IXXc2Jmw=TNm>MIu zsPI*~IsH$V>gi7Eax=wbDz0$YQUHdUA<6rTmvc8;_m$o^bl@; zlQto4{TxLVM%vhG_fZ$)Dq*m@21=t5DJ85hy>oZ>FpHwG${HFE&%|9h?kKS0Vk#i{ zbblr%yAs^^sgHK-`D5_CT~ur3++VFY_fW$yba&^> z*(knozVH41e1Fc5GZ)t-GBbN-KYKrG-D}K;gSDgms?)u$)GkRw$Qb3P{0z#JhYjp232WVS!a#VpNhPQe_1;=I5 ze@o5!ZubJAhqm5z;`eWAiWxo0!?;Y~`SUm6an%QhOmZ?B&Rk`GduI4r-vlau2+*_m zSHQx$aC@QuqsV*@3iJ9^HTN4(H>}G|gvALGSH6k&n%qX-u1wZ8=G!|I{fTvaQ*PkA z??Kw14RAy)5@5m8W!5s^E~Uy2633PL8#FZur~%RmqOF2r%R{c~tvM)k6Gq#H16*3H zkEVmIPg$w}5UJkqST(-ZZN_C%l9B**h_gTxLdVN{+-e8XyV+bxx>Oplnf=_I^z5FSt(b=MG{CZyDa1cFn!D5pmV5)V`rQA0c}~LL zI(J4)ws{_AWMT1AYvfIFmZ><#zq^1pqQFYpt`CT^Q%$gfWj0qk0U9RVBrRaryaF@s z(t2B>OkP`<^ARge>})0c$^M*BP3jWr=&Ml=J;ejk$5)bzh=i6W5>7qdD34(De^;)_ z%ryVNQdfToMe6roWEyX=R)>a1M#L_p=jPi&sywfDasvbRG%m+6B7}i_=8^lA8h-J` z0yXNLAq>W$Q1kR@%g5&`?6Z=9Jj$Z#+<&_AbK8LfrktgE>C*TYj*el0dsuKHmcc}#cjX5P1A4SfL;=g9ctXvF8h2Sd{>nJ<=AjtfmVHyw+X(f&Q0RpwKvde%|um>f8PxeWKz zZ#;gbs_q1 z)5(R72HMRczdL9R^M9klg^kDSpojE-UYF~C7>eZwM0gE3^_v4##y^T`wQEj z2;8^-mvvqdtH5Bq30C-XooiGfZsM2$s%_gM68P1Xtb013peEV+!F!!yB)0$Jz4-_A zO!-WS*g}dEHPe8QuPKf}Q&U=aLE+)Yjix9;LBZOqJNjT{;XMVtvi~Q|urOFk^ys9AP%X_+sWTejlJEj+3RX8=t~m5MRH34I|;C;o*UL?7@L4#uLAO z3pre#?ga$}c~$-uD&86FFlomN4z!0CYWu7v{Nw>(`kdd{UBpD$a7D0;S3@1#(WRk< zPR`Wy2jkQ;J3*ad=lf0}BW&rb1UGUfPqX}kXq#NP_Lytu7I^3&?H!%EnC&Ld)9_ay z&^b;>+kWR2u4mPX*!k?Qv~S<6w*7me4tEMK4`v!XY#>{_dlY0tQv-xVwXS>fW?~nU zJt4%ZoN0d7o;J~w#adozDw8lH*5^WR9k-^$s;zHan2iH@V57R>Fic-0qXjS@866a7 zBkg^aCd5R>*!`)z)|FS2K12zlIC1CW9(h_jGB=!v^`8zVfQMw|CG6o^R>LW{s>CYIoPu)k>2qnc07>IpK+;Ir z5PeOmVZ|Gk*R%b(LAQWNu2{GBih5`B@Vlr*beeo zb=!7Aem}*H9+78kOiJ+oBL?&h4D5ia*LwRPo2>v2hI$&YX`ywUS?pT}k{BFynoFF1 zAWL4D%>DafqT(TO-=3|-F@K<>*JmQT)+UT%n{s4od-2`Ru8M`340yQj6Dk7|Mv`m} z&8Q*`Ny+Fhg(vkL#co=Xk`3$^aJqPDcWYBs;>(?o1LKwHxXQPZv@~YtQ7)-mgMabD zH4jl=oo#=>YxT1;qzX7F5$Lr&`e__m|;>f0jwC_~;l)u7i- z3>M(IO4z2gRL;5*e+1Q^-8(oAARqNuid+B_iG{ry0C_SoGX4F z#V#tt1z{__TBNaqj6C$tB<1Kw7S=MSO?n>T;}$d>rgE zKI9mOwcB4V)59FLQj?^AeNk^%kyT2;Nvo&-0C^TbJez_pJv^3DSA@Uul%4iGkwdjh zr1+0X#L?^2m!;Dvr5^Sj?oz-MROE_DmEnJPFMcdEh%+oqjQbcyvnOZ31R zX8~tTUH^`h4}^9`T_?$Fl|RGB==G`PtFS@38RHvIpFSmS-0xbv?b5;;b#x^G&BJEZ5y0 z4ohBgKn49TCoSR+5HVHt#WxUWAQOh}+f@3FRo3b^CAt%UHtr1m3%Gr$(g0Ykr_*3@ zZ~|zGQq3G;Alq0hYSC%d06{EXIdUL%f0HY9v`F@BdJN|UC8^2E%GS*1MN8~$?U(b+ zQ%yi1K%QOHm*X$)@!jsc@cq5DY>v_fL~G8Di;OLIuMewkWNch~hNvfQM4l^=+I}@P z&$P-Y_hjy~X*eco`$G}*0}Mjs_X9EG0}YRpDRA{0v9;yvi24l?Xf^Zm=g&qq9LRP3 z*ok+#Z-!U(uh#jv;kQ93YEfbi@1vf1j_xWA`tb17;{%}vYEdCi#;Y9r(@4<4PIu348vSuX3<{0_);nxJMnw=Drj&u2Hz_E%3_+Ri)=qka)R#r?%*S zk7`!weL&Uc<_m$Y14~Q+^Yd+`YN8yYI$lR#q%aZL{2*I7Oz*_9%VZa@tc9Xn>@qqN zoS7~$8dvO65(s!GK>TX~19?@5!uv%6=W`B*A9l047N`?1dbg?&&M!hYYROxL8l9bX ztyHah+>p?Nqaybz;T>jy!PVWl8p&Poo5 zo}7*&JokHhIz;$4@KkMOY(I|P#qc@XFL~inA$(=q3A2ItY$wJ$+xL_O0&F0G&*WV| zmOHHp0`->^-yIZ=N8`suR^-th`7gX`#^?sdb-KB^5nzBWS=iZ?eok@MsS@->Zd1a!RxchCzRLuqLu|*LIQ%MvYjH}e*9}s$x-z^KIat0 zP#xzo!6l#eFbG>XP=w}7^@VD%sm7Q$QHpkL7+>^FK+iTa`4Jij#cMT{sVq9Du_}%i zd4BG`ejCJKZfYuM_w4Ocn&XY7Q+cxr<;3 z9nJkKAa4WcqmU;47Cd|Yzca9icYR*~$L7|u1+Dy!S-{qhk3iiP_q!~6wtC#VcD*+8 zva*w^c_kXue5aGBuC_R=l_$?Ywr{H7&IePM;T{ouClBH`OwaoI=S z@$F|}WPG;^i*t_F#=xO?HsgAB067l>0>Zl>LC;yw&5{5l@&w=%_4pMw3T@0xO~ZqN z9y}1O_epILq7qww>7l4AA#t#aCs+qe-m%^b7dz--*lsXUkJGRLP#CcWtb3h|GDTG> zy9bb?iF|%E90TwDYpe!g0QXk_R^kk`k!yH?jvIL!`sUDuX_6o|@nQzpn4(6ttKW@w zAC_!Kogf~NaWgv47($YS_%^~lw591geQmFwh`WopT!7i9_#BmwS>+#0bZ;<2&X9oS zK~)K$pC5tA9-%TYxj%3R+ySLwJoY^f_~Wd_5u7g8W5+vVA_x0FkNraQM&CvUDAniL zb%z@I9h;w}PSOPMoD3Z4MA}cEj^GB=Umah}n3!Iy0LmXWFw9V(+Qs9FiNPZJu~T_0 z8zA;Oj#CpSel}uM}{IoG&h*J4t-pj9Apyr-&2v=#Xxex3eoj zfu>;dla&qqD2KZZ2J_9*y1e|noWXw%NBM7w-l|a!Vz2S9ItB-Zl0faIm!gojmFy#1 z>`ixO8Wk!)Pb;-HVSY=B+I3p4AecJ%wyuG7^8 z0t(>qDr$kE>3DUZDEMEB^&}p!+X&ZHml&^wno%$G?VHgw*w${r=%3n5exiphvbY`Kv-WH^aC^!+@01! zuTF5aw8zJB0b9&N$Ym$vWK_??t03@QrQD=?e8Snt+&c`bZa9w zF4c1j#)DyAIHt7R@8^FU!Kd>OxSE~GXosQz9Dv0zGBL@jL63nXkkRSxT!wVSn0W=k z1AY~;0w~aLw10Y9XD8sWPFwOEXR# z`~{&9#KK(gITg7OtzLr+CAaa%!yhja@RD`D5&=2~zW?OcBf^D+Eyku9QhrTZ0+Ln~ zi+rAo?Ryk5LS(NM@R)fd?wo&6_~c(kp+VLC`cd0vP;+&xy;F-CbmF5T)vstSajsxt z*_hJ+l29l(10U*bLP0yhKV$LW^yACEI)r*7THr<SQpgF<-UQ^OYG$_9+46g9 z1h_@w9)=y(r570@esVq<9(-$3HaW!?gnp9|YZyD>aXQCakiZQs)bw!|N^YnhAbcw= zJ%j)>C5w)NxK))Y{8UrmRElkWesMtc>gDyHsV`qWAW>JQoeYiXC$ne)O0Zm%Jm261 z7L4Rj6GaG~f1W#k!TI#*^%>d$=qZ)?$-JobFO?}W+$znb*8yEw^LTg-ddhI$;~T=E zqX6(N8gS2F`Ca6KE^`matd>r;hf&%mJGi258bBKR4d`KHZ*Q*=L_4Z#MLe6rOnj8l zN zwAX8HrMIt-5bt|eD;ow7=?&t$;jj2zBv?3)k8fK5B}=u=$$oto%qOumJg^fU%aSPy z?4y8@Ve1DE9+bYT^gKycOQoQpLFEYxvpP@AOW6c>W;kqvr?h!!8dHJ2OjSECcLnP~ z_7a(aynbQE@XSBhCyPN&{`I?K+^j){p0P$_BsbWwd- zTbdaE*M`+TjVLIx_EA+dlGsAF*LwAZ;V8#(WDTir+b~`o?!bx_8Wu+?sD%#_)#2Zs z2E?*QM=5>~J6G91rqmZXmM0aElguo6L4?%O()O>as4#0j?)L%!QgGnr44n;YREV_h z#WBoh9vyAff&vHVjFp%sm|!dm=v;zivM9ROR(g|=A^HucG)FJ=#X(!Rf8qgO>tbsk z2UXn=mk0+5tDbn;ewsIkH>5(@+^oilk5tJr%^pT(VH%CBTv2(>?-DX~^!3(CP+%;@ zK_WBdBd~dSJ0)C>F>%&Tw5${PypE?DplIhMfJ0E!sn8c+9Gilm24z(7RD zj;&p3IhX36#<8jeQvBP|kslXGO@%pG@1U;$fz5ad#f08#89(}NvTPXrl$EAtmP1P9 z3;zZB(7?C>Ox%vJb=Uc}jHQkFg<%uC`_zoL(SbRE%-35HSRZs8EOs_FI-oRdoPd~k zL;IpaIaP{QEqXlbXJKI|lKfvhVLRq_VMbACE&2{Rx@hZiR`Q9G!gLBg0X~IT|MJJl z$D(?@Kv}LK|9V%JURpXNkURNTX?sU1rk`Jp4agR#JAktV@lap(~Y(7_N$V*6U0BV!!9?&^i zgC2y_wW6Gg&oq(==s_|=6+YPmqCg70bJ@=KkU5|Nu#`fcKyVE{^BRPD|4x6Po z*8R)f$gR0~I}^dOAwru-jBLo!)cysPnb7&eWQIqS!}vF$rKeeG zbtcHqNOI8m%Aurp8;fYvdhfmRjR$!;$010 zCph428WsSfy)jl)w#^fwC!kVm_tzL3I7obEEU3WsveAV}pUv%!z4?tXk6R-e$Jtkh8hmiyeU#>sY z=YsO8Xkua(+31XD%=eSRl%a}@u zfT`}P9aBroy>NYg%fU`O;tEPiEWXZ)V;Wsba0+TwB}BmE>ZXHYFO4RAv?#L*CuBq&%i4pBrP)cMI92#M}*p+bEzDS&ndqfZUe?njNC_g*PKqK_Mv238kJGM zhlvR30&u!LD)xK96hR2oZ}`bH9^ToKn1UI8q*rQJs;EkeM=>ou{j!NzBHwXs?3WEG zN#rjs1(bWM4eAQ=!}ZqtUE3O+hVUKgwra$*P)8g}^vjl@+?_aar9 zP1n9?hF8Zw^xKmoiK)>1TBHl$X*p#cil^eBalZskE;Bn@RCm}4T2B|@FD<2HemY&Y zIo=_t(I@0CNpwZi%Z=Pg4EMYoT<8#r*nzP`EOnn0Q-i}1i81gaT3BT#3ySK=^TSl{ zvFBE=#`h{%mdcbn8m`nSlX2fa+r7A|nlV4iN%evo(q4`fTabxfY;?8kDDq_sr06I? z(D@SDG3KU5!iE;yVR!Y#GXf$ta3S;EAD)84$=nndf$LCQZ9lOl4bjXKlR*xl z`f4*aW|#RExA+Vi1@i~=(_Gm1JP!j|-4tk^DqwhG%lp8I-i181^;}E;W${WMRpnPl z%(lTSSK;?&H{{oSpOa*c%cBS}w&actmo5kSfG`rg82gL3mC4mDv2I}Ql_#HGw+-;2A)s|cnuGUEin0^THULZfjMfYpGJ6MQ@tpifZIiUVt*G5fauhG7@6dvId zP5;}YQZnotY}@o=AjZdae$BcABBEzqt>Wxee)7AcPNb`xv=k|(47_HxS4wib``g(G zceM^Xp!q@FCfVh+oOrgr{<9(Ui_K-l_}oce2Qz@&93N!%ep>6Lu{YKK9!PPyxhiGq zK3bjoA@a`>;gQ>Y{VtoBO-%RSjJQ10`exw~Iuz4s**axRn)KcTq4bVuZN5}*UO zMf3DoFJDQ4CUDHT`0oJ4MyXu3EGkvCk#w(1d9)SR2zf{G}k;nY35EX{n; zln|D(4c9C7Asnx#`-)e^)}M}+`98J=%J4q9^Gv2UN#Nisu^zu0Efy}O%Z{ax+iAn{ z)VnvhX<{2Z>f1>*ti)dX`+1V2{!(F~_ckArtQXd3sOBh%*k^9}QNov*e11tZp63@K zzyHdRp8Cv@0{f+;lyuL>V_^@rz3Qx@yCfLI74Etb_Vl;1{bAtdxv9*@j}yy$;TSgJ z!2c;OH@<H9FGb+Pq&jaULYL0RE!@TS6 z|Ah2Mo+OGG5=Rqg2_EA?y`1_9A(N|989|)Cqr80@;Rc)T^*QrjSH`W15MUO=g&Y`l zUsb~AxWy0nFTZGY_hxc5PM-`+B3gZv$#A>;QBk-kY3~adLiBWYVBuBO<-q_g5(TOK&D7y1;jb+pZ2QllrXBL$T^41)32=}L(50-=w zsR@pNLD5GEmeGN*gpX4{)ct|};0(P@(6fJ$QG zR20(JRH+%SFRv6XvslLmd>r85jG++l>8#g4AfAebzKFp<%CY=!aQ$=U_J>zzjgT-Z zN^(&JoKqZ(@CX&d2^T$hNt?WvXkh~<72gf3C=Y)l9#8iA~54Xt-~ZQVsa!qOEu z2d+rZj#g~sI2JV#X*=SL7y$)&GDNHzak6>L%}d4G8cJgGTrt^w;~V~57)FBEg_zi7 z+noB<#BOfqM5IO-rI5PhAyLE6xw7o#<;n%Crv~Z84X?t&D4A%aBRne*Rp5%HR?`-K zy)-T|A_4B>1cy`p-6YW*3MaUL=YB`Wm$3Oq~JlGlZC< ztFseu*DeT$jvOCzpEwil@Y5~Kz+D%WeJp=obNfud^u zEKVjB4ePB~A1Rbz<)0RyJ0CvA`3MJFyM8e*G!(1$u3szYL0ZN7nONsReAp2zloG9c z+m1FTHm|2Du4-jS)I=*ig9%c}+d->U!Nxfrr>UlGsxB#cSzP}S23v;0H0VfcgL$9$ zwtrRsvyJo;-8{6LkJ14nm>TF|BKhL?cgO|&Tx@632}WtPP>jEoW?6tOHcg`T%d`s< zqDO`|$&`*eN)Ed*B zbzY*3ONScjB>DFhv_M?-PCZjmyQDjKH>8n*&VJf^e1*h9z zO%3c5?aIq3;}GLrD9SfuU@)`yah@{r6lvvB9wg&hz3Itu+0!z#po@vawM{;nm>`@3bc_Ip zET%Z)E}>qmQ?r3TzK(k5V4smJ7Spp791+1sf`w%PLeDqoP%RiQj349eWt4zP9{22t zNp_x(7o3h_`?dPs2d+gS^1|4A#>ZjFG~GB! zr5oqeQ{Ql`SaEiL%SO!6Wv0l?Mwt!ut995L7^O>`1oZ3!#F6}UReu)B`^pfBn(9rn!7t`XNR8?5n2a zEeoSgqvs)KGz94bY4$n;6bT|F(XdkHP7sT78IE4Jbf4(&knx>w)uOU}o{=1~`EI)qTU!uD zuuci&{o-|~&#B$WZS<+q7$x8--FV%5M>Xl~&hDDC;T4+h+k+p)T^zxJMul&;_e>2w z+@|@`9Zo4U58kOUJGFA@OjOgqWGsSFvC`Nl9!;o5oTa$du6)1r%i1d9YpmYFi3G2z zfI!by9hJ0W)8c!QHw*)1P?{k%DB^UKu>QUe(x-tay@%?AO>5ZW$$3aeEhTq&tVOZe zMb9Vv-vHceMLhoSfx+GC@P&t8$HIqoYTp;nFX=mf%>pupH&S_~r=gJ#0Z&OJe!)y- zx0zI)$*W2TVOVulbtsc5=cGTqCErHE+DKuP|~3%nsu#oEB;kkG-2 z8V8eRSs@SUuy2)>4z5vwAGQ!qFDLl~*Y@x`UX@c(G0(qwc-T?pWZn{su{8 z+(T@f36mq`m#2B8DTR(L$*imdW@>gkb1ARVQ@45UfVN^@kN*5M7a+K^ZSf7C!C!~3 zab@?ytz|G$L$4s;kYvwy1aotl*pV;0VDpJOj@=V;3a{>$<>L#VULL|0JgBINn8rg% znTHQN8YA%=c$sMw6&33lLFiq(LbC4c8w7L`r1w8@)o-mUi-m$|cI>L$x|R>W=de`; z9s>0f)+aRX>Z%RAwx_!v@Pfj^u&3`eQj(LCU;3)TMbF3wR(Qko#=?~1pJy%Wj_ZmH z2Rwb`%q~g9y3Tis9K> zMj1Gn#LgMA2EBdC6GlOH6*o}P#Mj;`$;ZQ!y0Z1-hbf-G!d6q*!gbsXYLIA-BKeIq|& zCqQI({B+=hevc+nOk~tH8l`?4+F1}FKM_QQ`W$^$Ro3b|T;HQnIEi}dpFFdppCS_J#7Ij!yfOi`XvvVJRRU|`^? zXcqm-%<&nwATXloM8`)a&e}tiItKq!r0q8s4xhJIl|#taACEJ5(!7i+7fonl>+5)b z^`$}Dc?IeWu}yu#tn4d^ChUJDZ|gZ)O!iwIz1hMFGmTR;*tx}GVft1{tgOqe*M53 z@3@aoqKsP5nOA%inmY^O1=<3VJn&);+&Vv*rJ^$#c6YX@BMyx0=t-0jk zS;UtdGH+Z;5-SRa*|}Q+sdFc1S>4(;(0pcjkK{55?7o%5Q$sc@{mY6aPp!*&8|jFO za_st)&_4+b;fsz4!L7z{Kii?j->(Bjt0a%z25KHs3NdUvm1ne9 z;8G;F{^N8LT&dU(-M6rCn9sNR?oiRZRpHEY+ST0-_J(kMr}uruNWiXlI^~beWg`}8 z+dy$8Cp!Ivx`t*9?Blh^ad6_b9q%R$tF{|OfC-)8$F<|W_^tcpRg3~Pqwn@#)IcYYmUjm4 zMJ6O9%$vkrosIb8Jx$MkXYIKkr;M@OA#$QKq-|q^JjlTw*CRh^Aw}&(22cae+#7;A zBZTC;U2H)vv-X7WJK($yV=cHVA%O!c+Lt{Y&b6X~_KT}7^x-`oA64Y!f&+nAxDC>a zn!Qq%TwK;J_F0?*+7;L*yh2OUuc3W9mq+FWq=jePEf#?FzuZ*a8QWeRVgzC31I9S= z+e-qFxw(08oXFLR|G+CrDMf(IVMsNmZGCKCgE1)Lr2Sb!@+7ujiG8?GUSkR6T0d&@ zjvGPg@#3q+g-DuyFe{f`6Uk>WgQ_|RIt8oLfl5D5<4Lv?Hpj#ESo6YmHs2H1>PK| zgi1#9dQgkV;b9rd9~y)a^Q308yn?#EIqte4L zv}$IkgzW-{;?urY<5Y^F_hSz)4z`F4SNP6F2swly))rUZx}@Y{aHMG?G;??V<|b;& z8UY)NTkzDBS>A>AWk)AnCMh@^z@!e0m!PJU`n`!f;7&pj9tJUlsG1Ir_7qK=*e(xT z)m&cp-H>U*_wT7(9g8eIipko`3(&tsk04+9T(LgiW5JMoa>cWXB>{RV$>EiEi(})?UF?*K@5aSixE`)&zL6$|@s|DDQ4~Yb6>!DrzrD*Q?NoAx2H%GF~JIn!TamKU7ekm5{@pcK5PVX~T zlSDvZEbFuYrXJ$NSFkH}2~dt}Kfhg@yUeL;A^~B<^R(l@OiDZNaHsSQ6O)RT z#>bX_2vV>7zu=6zN{Z3^5$k@d2k!MFYXo?8@P3njX2`ZUdbhFHc-uza_B0<5>Z*4v zMng1*<3&ScG858*cQUSC$eWj+9`gnZIu)je%D$Gu*|gd|PbjY8QE6}O*faSLYbXbK zkalGqz*c4a@`IXNW82^sOE6O#MNysi%C zj}Zn^*H1SGnSHY+4aDPTiYX>03NjMd!PFr$F;hj%u;Sn*C4p&#MM@PHK{BA}sNG z{EmU%qN8>DMMFp7)9Ga3<#AzXNU3~-`77_>$nig8Er9!jJ>I( zqu@!qK+u0NNxSgUDtlB!=Ao@8G47dAOrn-Cd;kovzIoxGi5F&C3rC&)NLqf5&Xgu+ zKC{nFhfdHS2Ugafp?=q|{rRs!$Nx3gf0yq69RD@vh-RC|pWI(%kq^1t@3HaO*x7Wh zYcu$%{P&wa`v&;bIA6q$GUTE|-}5Zatjj9Da|jqxwrNt~>~Rc$qLDv!3Lp^4vwLZu ziF zw`{yRtgHU>JkS+DTPJVpcQ0#;jxL;xEH51|GS1Y$H}`}fnV&rQ0JJj!%21p9owiu) zdM}7!5}3#spiuYv(Io!-*)7v+SHrd+zcQWr9dD%kAcn9eFC}|wUm=E=(5d^K+04Swe=$F#AhhzCas)>(C;ju)cR;Sf?3jo1?oF#w z5PQrn+P;Tm(wukGTuXoyK+N*mK0S4|w6xs4t>kpEXd|2o zQisUm1I_9L3^vVnJ$wLKIdGlPcheW~`M@#n# z5c-K9XL;IN(2d1BUHx{^I-ke?Y{|Yqw?}jZ8yhphDak zlY$Iz%Sf!_d4Jf$anBP{>#}n!|Oyw zecDxgN@1plJo1O3ONkm;1&)}YBtp3AvAFYZBK=vtq_)OFelaPvRT2&;Gx8Z%Kh9U~4IQ49_wVZ}_TC@5;o zCIZUo`_orX_$i@s?fLTxAziujw3G6@YD+&dXUysx@N8~_W)=K$FXH3Y7Y^k2*2=xINfE^_I=7)lomL!$X|4GPyKLP234 zJESX30M)u&UdQ@w1FyGa_{s=MLSEGmWRd2;A^GM@6wgg(S+8wwpaFM5@Id^E8-4tFs^z=dSOFDP9}UN`lZ(j`RAwCcZqZo^aIFAdr%D)Ni|8 zMr>^sy;{Ax+`ha@O1D#73LpnZ<+aUGn$(KRmPeT6zd_-LtL@NUYuMn z@Zj2eO_tIhyN;vo^Oyx;CSK<=6b^|&ha^%`x1d>IR<@ERE-SaKDJt#v7KD|pUmJTB zE56xbq*7qg5s&gZw5mcD)xx$gvq5u5Oqh&@4n4DhMv9t}Hrorz9Y z)j{|SN(%jK2dlvejq4|{0`*woy3HX{yFFaCO6S53V9N=Aj5JOilLVuQ3l$YJve-?x z1_9ywM~6|f^lV5yeaCct)?=r6#jdU(K3Wb(1~wLj=Ya_ZRe>%Aak7k{!J>zXb>7p} zK@0T#-9@{r>Bh0F6`hq|D^n~)$yK)#(@&@M)?b5GnI(1mr^{P6z!0X%*pG=x+Mr)N8-Fy7ver8-FGIxmRDBZbzJ0QZo8#v;j6rL2ksx^BJ^s9{W(eiYWkyvooir}L(e0f_C zvEMe6oKn#<@U%{p0Rcb~CM0MPlsH~2EAZHgmeDQO_I*|3fZ=1&XeGBe@3eo3I+nf- zQu9$aD6UL9KBD+eL!;GqN&T@dN~uI460uZ0qR#2Pbgagtb94_xQwxhssvIho_- zw5wum^c-gnp_z9f>`T;Mk39{g>!Fh4Bfm;1tuOq19-TjBWE_PLdN^cW`lzh#fy$6h zR?R_(PSJ7_Pr(5jyhjo2pkA6GYTdp+u5t8k<{rtjcb{*sLX03)rBlRl2B|YC3@rE6 zJ?c-VwJuDu+oQA2i0lO3;D5KOEN@L*v7*pFHRoL80s*575W1C$d+8b&w;Z#f*Ux3oE zoh?2)m5>&6}?PnciH_b2qxjhVWvO}q8a zx((Lml&1wAlCG-p>w`$UVf49AIsc*!JdiQumlj(I8;di0nJ4!UxCqq0cH?f}bi zFWZe9K2nl~gAh3?FR8%QAP}2RVjD)UqQ*64*ce9D-!@!l&N& z4D|IIebB*DU)cfL40EG|(|DWU^cotm&Y zek6{!!0ZbSG=(0F1RpB^6Smxe4h=eYg1ZtPK{BMYgd)nHGO3?te%-;aRq5AUZthEryIYhuv}p0D#O4Q!s+K69*aQZ zq0q643X8257uBa;eR4@9h8gN`?a0KX+=CGn&>*J7o37*h<|e@`xg<09;R8^PJD*LLzObSlaj#Q#twticymzD2bc|4W6a3Dw$!zqsvv^@M zwG&5TSRNR7s*96YiS)D%r5`kG8?l_GPY7QXNcGN8cElRPzVH*YO84P>k3pJ}v2=kV4g zZ>zt4yvC1f0|%ff5u9p@h;O2|n*<_$az@UNC)5+-PD=o7 zzgAwIM2l!L$&Q3h@vd+woqV~>_iTR+dWbi4RcpZC7MQCQg5W0GN!CwDysR8aNQrt( ztrlxFv{LBZ*-P>u36Cr76Q+CPzPgZwr~6Jt<4Eie^~E76Ndl;_`t)5h0N_4s-C<^N zIBAS7Q~w^9^h2BSodL(Iun3Fdq{QpCV=G#L=Pvy6;{uqaD@Mf8W?XR^F)PmkZ}|qE zZV+YB_p@(VS!5r-EQdzvH+rechD%M8>z`XGW(Yto`wV9KZkza#4mRB_JQtC2a7b>f zrtH!8;nY>DCBAYPp|E!F{>fxJ!Ozo@UhU-)DSBJn#7y67XZltgG8kMhj4)VLIm|KA z=uV1>Z3@hz&CF>nf<5~L6u$LWJXDJcuJWmGDyxzuO?_{$Wdf`So)0`-Xr*X`OMQUz zsF1CWINkq_1(Ml9R0KUK@d-9I_TeqtPp93+bVR3;2@A$|;*gEcwe3H_lJqO+UHyX) zD}*tn)F8pt;^{<7o}%=PJ%Jab<%o(^C77UBe|P?Tbg}ZLV;_vb@Oc#QRrMdJfCN5_ zt${#~3a@7bh>v?5gdd(Qo_%N_PH%dj{pG}n*J0xGUCdRX*_T&*mKTV9Mb5h+Hnv6X zC6^DC8xs=Hy0DzLWEf;rhhu`y-v!CaAF)@3;m2YZV=q%Kp-Q`IL+-9nn3aW!QRwm|RLwx1g)LVjn+>dJ z@Z0n6XAS&#bGiP8t>UpzPxWx)1)Wv@`qaGmT0A%W`R~|G*X+)tg-4iejJA3|(6A3< z5ZW5LDk{1wL!WWT6jasv8tP;vC1GWTHf4-7GhrN7SUR`vgYFITxF||VNrlzHc5{_T zsY^@(l!@^ghRR?J>4A-Xn#%_0+@RNix5ODAsI*02Lxj9WZjZT26|ugxgwwPi+wQgr z!<#cxGI3}tL8OD?`le3dg&xUATNR$=lSoTh@8JBvKy#(Q(=Dacl=2H%SUq<8r6O3f zA!49km*1r=Q}K)yf&rpQ_vohTWS$sS=}t5zAR>nKq2sC0E2t&12q#dLIUzScH*jfK z`!v7f)621_8J5y%$f+nOHf7hJ&@X%bX#`nQD@u3x=z_v%=Uw;Fm`1 z>mc;OP2Pk79N4Q__8eg_I!!ph;qIy1KxLz^tM}vM!y-#{gFL%nOIY5rMp2jSYsuD? ze6wI>+1YeT(8Im)CHesvr_)(M+Zz2IRDgJi(8?k-vE&d+%%vE--CqZ-geA?w())BY z)sg_f1Ifu2rEg0gb^?h%c>wy!BI%^^S*+loj>2V%xgG53qW0k6u`iCCtG+Q8K2Y7M zb6mHK_;?^v?p4`r5^Xk}ARWj;UltGN@bboEO^pT1#XT`Rvgnxz zyK`^23Y0*{@9O|9hm>eynL7@mM1i2f*s(SFV63kv<+XMS#5hYTHRa_HE{I`-CxYIe z*6`!_6F&iyzU&`0d3VD-9<+}W#YKmVf2;ru{r_t2%EO`l*7ztb%I{VZrJ_wDLsN}V zqL_*rGK_7E5h2Pxrk`kt7E2-7jo~-hGTCCRGf9zTA2TM#R$0a#MwU|djO0G|dG7t= zKF@ugd;kBQ^F8N1=Y7xT^Lfwr{VsV|=h@@6y*D{5R<@_99?83L3Tcq)DJ0^yH&0}* zTh20{K#mYt5rsDzrW`}Kk4>M&qYfOj&=8Cqq_L~Rj>eQxJ_duB~(zM#)O0sQRalZ!Y*rH!2rVAF-9$b3+FN9t8HwlH}8vlwkgXwT~;&A;EUk zXtbY28v44pZoMrG$)K2#|AcAJs5{T9`_!L?IoK!Qo5C1(<(9@IPFWI@_}No_-jBNa zFej9uxgC=D0H-CatR5h}%HQainMAI+I`nn_g(QsBsYM+Q94l&TTSC|+SRnti;!Bd( zOEPT(?r;J%V7FKe@?hq82?Pb>a-J&{MkGN5>j?aN@v)e6_k#&gvsm99HD!`(W@s`v zxijN?tM+{SKyPbA5Bh3Bv{M_KCab#^3>M2h-O*zc7jYcO2LtOMTN?U(f24&Zt=m_V z(Wht?K~bng_$@KR9f>#$*%qaPPxcuJ)A;c&|Ac-)T;{yM62KsLet;rTC2oV%GDMO0 z&Z`OR=c75@sN9-C&P#IZ>7)af`QPjn{T8e7_Hm$uAwJx5Tq8_l>vP>K6VoxLhebKQ z#RsalTk>}T3Rr(cNDvOdDk}lG`PG_FhYMsiWw75DLQT+HCec?LEO_zeGv90q0LAcX z+e9|rfJ@`8^Y5k-Ih4Lqm+Ri%FWdKgx_NT^lIL5+pD7AmhXi~hfo8j)5JFtGckc^r zfMK_HQ>yyPNMnh|*k6s}PENGVzsUL;JSpaQ1T<0F0M~@@-{YQm)$M=U=4*DtQRWaW zq_E0s2d!UTFSPR7W&!T8UfPRGgFOiZaUk1h-7G6Q|HK~mq}#m*^V#J_PF=z&aHk@e zlcDD1E4~OwZ^LP%s|Jh3a>se1Ct7C3WerHa(|zv2(@A8Bl@VHR7Qy6M3o#(VBBuLp zW=q zV9egxXZkdV5)>E9iODF&tr?=`$tri+j+s5!1aTAVGBrFhJE@neLm0h_ifs`bkd7ba_DSOekVWDi_O$NV<

!%;o0s|@ zkdAo`HoUv{ilJd^=ylCS{^xK_vm`Nx_w}P4{RrJWi%+R(@n-~kY{}`4uTO#Tye~RW zOLQ=&oC?Qlwgv7@ul;=e^yQxIe2Gf*STNcCkwcpZL^$h50==+vlvS!9PGs&;NXVUR zK5ykW2 zJ{XvfBZ?bciIX$+3G*rr40Q)Pw7cGyfXfz0GPIn@B^uC_a7H8-n+_33;ikxKj=_y; ziB=E)wEy}VnjP~x3;y+P3Jf)?I@tZ$4Zdz1f$=b5kX-kwulUKu+nCh}U=E~;gNO6+ z1Lf%Wa}{-0MreEvzyyylp_ie$@*<-q5J;uhZ9}IRlkdQL<`ksk*q9+@qARwcjgkHK z?vT7hbf@sLol9vF(t7h2Mlln|L0l0P zL}P&mtPKEPc3jygp_nppq-2iag>llHD^NK=Ai?ww3`@b&7Y{!k##7TAsRg5&D&NGO z%cmczsDsI6&uO7mS+JvDqQAuH9&?qMcAN+I zP|7yhMrPaFCKm5=h+*8a>=;Ww1cZ}co1>)j-lnm-`vLX-Z+j_hwHM=FZN;tzo1Kd^ zF_Fp4&w8Y=A-T3)p&5m!CNnHeF?gf2kd_W0H4*5%wEV>!$8%TQ^Se54%QL`p0}tzY zPJ@lQa##@&h&VWo1?Pq(c|m3MtwXyXoWZ}I`Zsdr^i7|*N|c$E%Zd3c`30dpK^02M z)K?l_-eVbm{E_T}OVVtpsD2!Cs-m9j+~kfx`c2NHwN^3000{my3y9G1wMOj|#DTPh zx$lv_p@upS2l#fmoS1sUk)&y2VW$2F!G)UJ{&8D0Xj3+)B90zulZ;JG6yJhCzBk8U zqFo)kQ4#8#_G~`qwhX(}t6G2re$4=sFbur#uf)jF#sZVx*ERMa0Ig5IE{zmT8W{}^ z+77e=6(}vJ&fVZljri#<)5%w(_qcH$tCqXd(gE%mS9R$q^%Kz!Q>=E-<{x?^KRD<@ zYRlEezd&#v7x!8ao)+?*?5Zk zywAL-lc}Dp6w)6oDWKhi+=80Xt)BMjy0fDnsI3mmxB*hO-~a6^4ICS)hirgyset4= zk4U6cVd{8axq>{gJ{Z}}3BlPMD9Mcjcp5F|q zioP?7DXLKxv#hR(e>A1%IYTt;%jRm!P`~K~h3%tzIrRd`h{vBk}8Xy+T;}=bZ6pZf$csxn;}&aX1S` zftjaPa*hroeZGrroWRHDNi>K0E?jSHVA~AC)8s=&8 z@#Uq z9Pm!n^DtXB@2%7W=RmH(N-XK!b!4?v;N6zU)M0>Yn&tH9?B~Z({3SvGtfp$JEhQzz zTO+!mETimPvOV004{CB>^V(J}mnvtt@>pQBSa)ncIM$a_aS(^*C4TceA@={1E?>F( z@V~gE_B#5D+pXUwa;t>>DzyQO^k2U`w~y}qE~4$r7wPl+!(_r$2@kt}zn0(L`~;K< q7@FDhdvP4XWtacL`5)iQ`zb@{(I&jUxpqR(nJz+KC+Dnnz~2E~Mr3#Z literal 0 HcmV?d00001 diff --git a/silk/config.py b/silk/config.py index f62a89ff..08dfffd4 100644 --- a/silk/config.py +++ b/silk/config.py @@ -52,7 +52,8 @@ class SilkyConfig(six.with_metaclass(Singleton, object)): 'SILKY_PYTHON_PROFILER': False, 'SILKY_REVISION': default_revision(), 'SILKY_POST_PROCESS_REQUEST': lambda x: None, - 'SILKY_STORAGE_CLASS': 'silk.storage.ProfilerResultStorage' + 'SILKY_STORAGE_CLASS': 'silk.storage.ProfilerResultStorage', + 'SILKY_DISTRIBUTION_TAB': False, } def _setup(self): diff --git a/silk/migrations/0006_request_revision.py b/silk/migrations/0007_request_revision.py similarity index 87% rename from silk/migrations/0006_request_revision.py rename to silk/migrations/0007_request_revision.py index be8217c6..250ebed5 100644 --- a/silk/migrations/0006_request_revision.py +++ b/silk/migrations/0007_request_revision.py @@ -9,7 +9,7 @@ class Migration(migrations.Migration): dependencies = [ - ('silk', '0005_increase_request_prof_file_length'), + ('silk', '0006_fix_request_prof_file_blank'), ] operations = [ diff --git a/silk/templates/silk/inclusion/root_menu.html b/silk/templates/silk/inclusion/root_menu.html index 0c966fe8..b4a1e94f 100644 --- a/silk/templates/silk/inclusion/root_menu.html +++ b/silk/templates/silk/inclusion/root_menu.html @@ -6,6 +6,7 @@

+{% if SILKY_DISTRIBUTION_TAB %} +{% endif %}