From 26610821b710584e2e7f6b09586d96d1fcd0cca6 Mon Sep 17 00:00:00 2001 From: Mike Bostock Date: Wed, 21 Sep 2011 12:05:35 -0700 Subject: [PATCH] Add slides for today's talk. --- talk/20110921/blank.html | 5 + talk/20110921/bounding.html | 84 + talk/20110921/builder.html | 118 + talk/20110921/collapsible.html | 138 + talk/20110921/collision-attraction.html | 107 + talk/20110921/collision.html | 104 + talk/20110921/d3/d3.chart.js | 984 ++++++ talk/20110921/d3/d3.chart.min.js | 1 + talk/20110921/d3/d3.csv.js | 92 + talk/20110921/d3/d3.csv.min.js | 1 + talk/20110921/d3/d3.geo.js | 728 ++++ talk/20110921/d3/d3.geo.min.js | 1 + talk/20110921/d3/d3.geom.js | 825 +++++ talk/20110921/d3/d3.geom.min.js | 1 + talk/20110921/d3/d3.js | 4009 +++++++++++++++++++++++ talk/20110921/d3/d3.layout.js | 1883 +++++++++++ talk/20110921/d3/d3.layout.min.js | 1 + talk/20110921/d3/d3.min.js | 2 + talk/20110921/d3/d3.time.js | 663 ++++ talk/20110921/d3/d3.time.min.js | 1 + talk/20110921/depth-foci.html | 87 + talk/20110921/favicon.ico | Bin 0 -> 1150 bytes talk/20110921/flare.json | 380 +++ talk/20110921/foci.html | 97 + talk/20110921/force.html | 83 + talk/20110921/github.png | Bin 0 -> 1655 bytes talk/20110921/gravity-charge.html | 62 + talk/20110921/gravity.html | 62 + talk/20110921/hijs/LICENSE | 18 + talk/20110921/hijs/hi.js | 93 + talk/20110921/index.html | 168 + talk/20110921/labels.html | 85 + talk/20110921/link-foci.html | 118 + talk/20110921/links.html | 88 + talk/20110921/medals-live.html | 109 + talk/20110921/medals.csv | 88 + talk/20110921/medals.html | 22 + talk/20110921/medals.png | Bin 0 -> 174423 bytes talk/20110921/miserables.html | 64 + talk/20110921/miserables.json | 1 + talk/20110921/momentum.html | 73 + talk/20110921/more-foci.html | 107 + talk/20110921/negative-charge.html | 62 + talk/20110921/overview.html | 21 + talk/20110921/overview.png | Bin 0 -> 303290 bytes talk/20110921/parent-foci.html | 82 + talk/20110921/patent-suits.html | 173 + talk/20110921/positive-charge.html | 62 + talk/20110921/quantitative-foci.html | 88 + talk/20110921/relaxation.html | 123 + talk/20110921/ribbon.html | 83 + talk/20110921/smile.png | Bin 0 -> 725 bytes talk/20110921/square.svg | 12 + talk/20110921/states.html | 113 + talk/20110921/static.html | 68 + talk/20110921/style.css | 55 + talk/20110921/transition.html | 75 + talk/20110921/tree.html | 73 + talk/20110921/twitter.png | Bin 0 -> 1089 bytes talk/20110921/us-states.json | 54 + talk/20110921/verlet.html | 73 + talk/20110921/world-countries.json | 246 ++ 62 files changed, 13016 insertions(+) create mode 100755 talk/20110921/blank.html create mode 100755 talk/20110921/bounding.html create mode 100755 talk/20110921/builder.html create mode 100755 talk/20110921/collapsible.html create mode 100755 talk/20110921/collision-attraction.html create mode 100755 talk/20110921/collision.html create mode 100755 talk/20110921/d3/d3.chart.js create mode 100755 talk/20110921/d3/d3.chart.min.js create mode 100755 talk/20110921/d3/d3.csv.js create mode 100755 talk/20110921/d3/d3.csv.min.js create mode 100755 talk/20110921/d3/d3.geo.js create mode 100755 talk/20110921/d3/d3.geo.min.js create mode 100755 talk/20110921/d3/d3.geom.js create mode 100755 talk/20110921/d3/d3.geom.min.js create mode 100755 talk/20110921/d3/d3.js create mode 100755 talk/20110921/d3/d3.layout.js create mode 100755 talk/20110921/d3/d3.layout.min.js create mode 100755 talk/20110921/d3/d3.min.js create mode 100755 talk/20110921/d3/d3.time.js create mode 100755 talk/20110921/d3/d3.time.min.js create mode 100755 talk/20110921/depth-foci.html create mode 100755 talk/20110921/favicon.ico create mode 100755 talk/20110921/flare.json create mode 100755 talk/20110921/foci.html create mode 100755 talk/20110921/force.html create mode 100755 talk/20110921/github.png create mode 100755 talk/20110921/gravity-charge.html create mode 100755 talk/20110921/gravity.html create mode 100755 talk/20110921/hijs/LICENSE create mode 100755 talk/20110921/hijs/hi.js create mode 100755 talk/20110921/index.html create mode 100755 talk/20110921/labels.html create mode 100755 talk/20110921/link-foci.html create mode 100755 talk/20110921/links.html create mode 100755 talk/20110921/medals-live.html create mode 100755 talk/20110921/medals.csv create mode 100755 talk/20110921/medals.html create mode 100755 talk/20110921/medals.png create mode 100755 talk/20110921/miserables.html create mode 100755 talk/20110921/miserables.json create mode 100755 talk/20110921/momentum.html create mode 100755 talk/20110921/more-foci.html create mode 100755 talk/20110921/negative-charge.html create mode 100755 talk/20110921/overview.html create mode 100755 talk/20110921/overview.png create mode 100755 talk/20110921/parent-foci.html create mode 100755 talk/20110921/patent-suits.html create mode 100755 talk/20110921/positive-charge.html create mode 100755 talk/20110921/quantitative-foci.html create mode 100755 talk/20110921/relaxation.html create mode 100755 talk/20110921/ribbon.html create mode 100755 talk/20110921/smile.png create mode 100755 talk/20110921/square.svg create mode 100755 talk/20110921/states.html create mode 100755 talk/20110921/static.html create mode 100755 talk/20110921/style.css create mode 100755 talk/20110921/transition.html create mode 100755 talk/20110921/tree.html create mode 100755 talk/20110921/twitter.png create mode 100755 talk/20110921/us-states.json create mode 100755 talk/20110921/verlet.html create mode 100755 talk/20110921/world-countries.json diff --git a/talk/20110921/blank.html b/talk/20110921/blank.html new file mode 100755 index 0000000000000..d1d41176c92e3 --- /dev/null +++ b/talk/20110921/blank.html @@ -0,0 +1,5 @@ + + + + + diff --git a/talk/20110921/bounding.html b/talk/20110921/bounding.html new file mode 100755 index 0000000000000..09d9e956c8684 --- /dev/null +++ b/talk/20110921/bounding.html @@ -0,0 +1,84 @@ + + + + + Force Layouts - Bounding Box + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/builder.html b/talk/20110921/builder.html new file mode 100755 index 0000000000000..2ef30b7e30e9a --- /dev/null +++ b/talk/20110921/builder.html @@ -0,0 +1,118 @@ + + + + + Force Layouts + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/collapsible.html b/talk/20110921/collapsible.html new file mode 100755 index 0000000000000..d1f338d73b0fa --- /dev/null +++ b/talk/20110921/collapsible.html @@ -0,0 +1,138 @@ + + + + + Force Layouts + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/collision-attraction.html b/talk/20110921/collision-attraction.html new file mode 100755 index 0000000000000..62ccce07c1855 --- /dev/null +++ b/talk/20110921/collision-attraction.html @@ -0,0 +1,107 @@ + + + + + Force Layouts - Collision + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/collision.html b/talk/20110921/collision.html new file mode 100755 index 0000000000000..70ba7d9810c8c --- /dev/null +++ b/talk/20110921/collision.html @@ -0,0 +1,104 @@ + + + + + Force Layouts - Collision + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/d3/d3.chart.js b/talk/20110921/d3/d3.chart.js new file mode 100755 index 0000000000000..281d0072b4a2e --- /dev/null +++ b/talk/20110921/d3/d3.chart.js @@ -0,0 +1,984 @@ +(function(){d3.chart = {}; +// Inspired by http://informationandvisualization.de/blog/box-plot +d3.chart.box = function() { + var width = 1, + height = 1, + duration = 0, + domain = null, + value = Number, + whiskers = d3_chart_boxWhiskers, + quartiles = d3_chart_boxQuartiles, + tickFormat = null; + + // For each small multiple… + function box(g) { + g.each(function(d, i) { + d = d.map(value).sort(d3.ascending); + var g = d3.select(this), + n = d.length, + min = d[0], + max = d[n - 1]; + + // Compute quartiles. Must return exactly 3 elements. + var quartileData = d.quartiles = quartiles(d); + + // Compute whiskers. Must return exactly 2 elements, or null. + var whiskerIndices = whiskers && whiskers.call(this, d, i), + whiskerData = whiskerIndices && whiskerIndices.map(function(i) { return d[i]; }); + + // Compute outliers. If no whiskers are specified, all data are "outliers". + // We compute the outliers as indices, so that we can join across transitions! + var outlierIndices = whiskerIndices + ? d3.range(0, whiskerIndices[0]).concat(d3.range(whiskerIndices[1] + 1, n)) + : d3.range(n); + + // Compute the new x-scale. + var x1 = d3.scale.linear() + .domain(domain && domain.call(this, d, i) || [min, max]) + .range([height, 0]); + + // Retrieve the old x-scale, if this is an update. + var x0 = this.__chart__ || d3.scale.linear() + .domain([0, Infinity]) + .range(x1.range()); + + // Stash the new scale. + this.__chart__ = x1; + + // Note: the box, median, and box tick elements are fixed in number, + // so we only have to handle enter and update. In contrast, the outliers + // and other elements are variable, so we need to exit them! Variable + // elements also fade in and out. + + // Update center line: the vertical line spanning the whiskers. + var center = g.selectAll("line.center") + .data(whiskerData ? [whiskerData] : []); + + center.enter().insert("svg:line", "rect") + .attr("class", "center") + .attr("x1", width / 2) + .attr("y1", function(d) { return x0(d[0]); }) + .attr("x2", width / 2) + .attr("y2", function(d) { return x0(d[1]); }) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .style("opacity", 1) + .attr("y1", function(d) { return x1(d[0]); }) + .attr("y2", function(d) { return x1(d[1]); }); + + center.transition() + .duration(duration) + .style("opacity", 1) + .attr("y1", function(d) { return x1(d[0]); }) + .attr("y2", function(d) { return x1(d[1]); }); + + center.exit().transition() + .duration(duration) + .style("opacity", 1e-6) + .attr("y1", function(d) { return x1(d[0]); }) + .attr("y2", function(d) { return x1(d[1]); }) + .remove(); + + // Update innerquartile box. + var box = g.selectAll("rect.box") + .data([quartileData]); + + box.enter().append("svg:rect") + .attr("class", "box") + .attr("x", 0) + .attr("y", function(d) { return x0(d[2]); }) + .attr("width", width) + .attr("height", function(d) { return x0(d[0]) - x0(d[2]); }) + .transition() + .duration(duration) + .attr("y", function(d) { return x1(d[2]); }) + .attr("height", function(d) { return x1(d[0]) - x1(d[2]); }); + + box.transition() + .duration(duration) + .attr("y", function(d) { return x1(d[2]); }) + .attr("height", function(d) { return x1(d[0]) - x1(d[2]); }); + + // Update median line. + var medianLine = g.selectAll("line.median") + .data([quartileData[1]]); + + medianLine.enter().append("svg:line") + .attr("class", "median") + .attr("x1", 0) + .attr("y1", x0) + .attr("x2", width) + .attr("y2", x0) + .transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1); + + medianLine.transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1); + + // Update whiskers. + var whisker = g.selectAll("line.whisker") + .data(whiskerData || []); + + whisker.enter().insert("svg:line", "circle, text") + .attr("class", "whisker") + .attr("x1", 0) + .attr("y1", x0) + .attr("x2", width) + .attr("y2", x0) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1) + .style("opacity", 1); + + whisker.transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1) + .style("opacity", 1); + + whisker.exit().transition() + .duration(duration) + .attr("y1", x1) + .attr("y2", x1) + .style("opacity", 1e-6) + .remove(); + + // Update outliers. + var outlier = g.selectAll("circle.outlier") + .data(outlierIndices, Number); + + outlier.enter().insert("svg:circle", "text") + .attr("class", "outlier") + .attr("r", 5) + .attr("cx", width / 2) + .attr("cy", function(i) { return x0(d[i]); }) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("cy", function(i) { return x1(d[i]); }) + .style("opacity", 1); + + outlier.transition() + .duration(duration) + .attr("cy", function(i) { return x1(d[i]); }) + .style("opacity", 1); + + outlier.exit().transition() + .duration(duration) + .attr("cy", function(i) { return x1(d[i]); }) + .style("opacity", 1e-6) + .remove(); + + // Compute the tick format. + var format = tickFormat || x1.tickFormat(8); + + // Update box ticks. + var boxTick = g.selectAll("text.box") + .data(quartileData); + + boxTick.enter().append("svg:text") + .attr("class", "box") + .attr("dy", ".3em") + .attr("dx", function(d, i) { return i & 1 ? 6 : -6 }) + .attr("x", function(d, i) { return i & 1 ? width : 0 }) + .attr("y", x0) + .attr("text-anchor", function(d, i) { return i & 1 ? "start" : "end"; }) + .text(format) + .transition() + .duration(duration) + .attr("y", x1); + + boxTick.transition() + .duration(duration) + .text(format) + .attr("y", x1); + + // Update whisker ticks. These are handled separately from the box + // ticks because they may or may not exist, and we want don't want + // to join box ticks pre-transition with whisker ticks post-. + var whiskerTick = g.selectAll("text.whisker") + .data(whiskerData || []); + + whiskerTick.enter().append("svg:text") + .attr("class", "whisker") + .attr("dy", ".3em") + .attr("dx", 6) + .attr("x", width) + .attr("y", x0) + .text(format) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("y", x1) + .style("opacity", 1); + + whiskerTick.transition() + .duration(duration) + .text(format) + .attr("y", x1) + .style("opacity", 1); + + whiskerTick.exit().transition() + .duration(duration) + .attr("y", x1) + .style("opacity", 1e-6) + .remove(); + }); + d3.timer.flush(); + } + + box.width = function(x) { + if (!arguments.length) return width; + width = x; + return box; + }; + + box.height = function(x) { + if (!arguments.length) return height; + height = x; + return box; + }; + + box.tickFormat = function(x) { + if (!arguments.length) return tickFormat; + tickFormat = x; + return box; + }; + + box.duration = function(x) { + if (!arguments.length) return duration; + duration = x; + return box; + }; + + box.domain = function(x) { + if (!arguments.length) return domain; + domain = x == null ? x : d3.functor(x); + return box; + }; + + box.value = function(x) { + if (!arguments.length) return value; + value = x; + return box; + }; + + box.whiskers = function(x) { + if (!arguments.length) return whiskers; + whiskers = x; + return box; + }; + + box.quartiles = function(x) { + if (!arguments.length) return quartiles; + quartiles = x; + return box; + }; + + return box; +}; + +function d3_chart_boxWhiskers(d) { + return [0, d.length - 1]; +} + +function d3_chart_boxQuartiles(d) { + return [ + d3.quantile(d, .25), + d3.quantile(d, .5), + d3.quantile(d, .75) + ]; +} +// Chart design based on the recommendations of Stephen Few. Implementation +// based on the work of Clint Ivy, Jamie Love, and Jason Davies. +// http://projects.instantcognition.com/protovis/bulletchart/ +d3.chart.bullet = function() { + var orient = "left", // TODO top & bottom + reverse = false, + duration = 0, + ranges = d3_chart_bulletRanges, + markers = d3_chart_bulletMarkers, + measures = d3_chart_bulletMeasures, + width = 380, + height = 30, + tickFormat = null; + + // For each small multiple… + function bullet(g) { + g.each(function(d, i) { + var rangez = ranges.call(this, d, i).slice().sort(d3.descending), + markerz = markers.call(this, d, i).slice().sort(d3.descending), + measurez = measures.call(this, d, i).slice().sort(d3.descending), + g = d3.select(this); + + // Compute the new x-scale. + var x1 = d3.scale.linear() + .domain([0, Math.max(rangez[0], markerz[0], measurez[0])]) + .range(reverse ? [width, 0] : [0, width]); + + // Retrieve the old x-scale, if this is an update. + var x0 = this.__chart__ || d3.scale.linear() + .domain([0, Infinity]) + .range(x1.range()); + + // Stash the new scale. + this.__chart__ = x1; + + // Derive width-scales from the x-scales. + var w0 = d3_chart_bulletWidth(x0), + w1 = d3_chart_bulletWidth(x1); + + // Update the range rects. + var range = g.selectAll("rect.range") + .data(rangez); + + range.enter().append("svg:rect") + .attr("class", function(d, i) { return "range s" + i; }) + .attr("width", w0) + .attr("height", height) + .attr("x", reverse ? x0 : 0) + .transition() + .duration(duration) + .attr("width", w1) + .attr("x", reverse ? x1 : 0); + + range.transition() + .duration(duration) + .attr("x", reverse ? x1 : 0) + .attr("width", w1) + .attr("height", height); + + // Update the measure rects. + var measure = g.selectAll("rect.measure") + .data(measurez); + + measure.enter().append("svg:rect") + .attr("class", function(d, i) { return "measure s" + i; }) + .attr("width", w0) + .attr("height", height / 3) + .attr("x", reverse ? x0 : 0) + .attr("y", height / 3) + .transition() + .duration(duration) + .attr("width", w1) + .attr("x", reverse ? x1 : 0); + + measure.transition() + .duration(duration) + .attr("width", w1) + .attr("height", height / 3) + .attr("x", reverse ? x1 : 0) + .attr("y", height / 3); + + // Update the marker lines. + var marker = g.selectAll("line.marker") + .data(markerz); + + marker.enter().append("svg:line") + .attr("class", "marker") + .attr("x1", x0) + .attr("x2", x0) + .attr("y1", height / 6) + .attr("y2", height * 5 / 6) + .transition() + .duration(duration) + .attr("x1", x1) + .attr("x2", x1); + + marker.transition() + .duration(duration) + .attr("x1", x1) + .attr("x2", x1) + .attr("y1", height / 6) + .attr("y2", height * 5 / 6); + + // Compute the tick format. + var format = tickFormat || x1.tickFormat(8); + + // Update the tick groups. + var tick = g.selectAll("g.tick") + .data(x1.ticks(8), function(d) { + return this.textContent || format(d); + }); + + // Initialize the ticks with the old scale, x0. + var tickEnter = tick.enter().append("svg:g") + .attr("class", "tick") + .attr("transform", d3_chart_bulletTranslate(x0)) + .style("opacity", 1e-6); + + tickEnter.append("svg:line") + .attr("y1", height) + .attr("y2", height * 7 / 6); + + tickEnter.append("svg:text") + .attr("text-anchor", "middle") + .attr("dy", "1em") + .attr("y", height * 7 / 6) + .text(format); + + // Transition the entering ticks to the new scale, x1. + tickEnter.transition() + .duration(duration) + .attr("transform", d3_chart_bulletTranslate(x1)) + .style("opacity", 1); + + // Transition the updating ticks to the new scale, x1. + var tickUpdate = tick.transition() + .duration(duration) + .attr("transform", d3_chart_bulletTranslate(x1)) + .style("opacity", 1); + + tickUpdate.select("line") + .attr("y1", height) + .attr("y2", height * 7 / 6); + + tickUpdate.select("text") + .attr("y", height * 7 / 6); + + // Transition the exiting ticks to the new scale, x1. + tick.exit().transition() + .duration(duration) + .attr("transform", d3_chart_bulletTranslate(x1)) + .style("opacity", 1e-6) + .remove(); + }); + d3.timer.flush(); + } + + // left, right, top, bottom + bullet.orient = function(x) { + if (!arguments.length) return orient; + orient = x; + reverse = orient == "right" || orient == "bottom"; + return bullet; + }; + + // ranges (bad, satisfactory, good) + bullet.ranges = function(x) { + if (!arguments.length) return ranges; + ranges = x; + return bullet; + }; + + // markers (previous, goal) + bullet.markers = function(x) { + if (!arguments.length) return markers; + markers = x; + return bullet; + }; + + // measures (actual, forecast) + bullet.measures = function(x) { + if (!arguments.length) return measures; + measures = x; + return bullet; + }; + + bullet.width = function(x) { + if (!arguments.length) return width; + width = x; + return bullet; + }; + + bullet.height = function(x) { + if (!arguments.length) return height; + height = x; + return bullet; + }; + + bullet.tickFormat = function(x) { + if (!arguments.length) return tickFormat; + tickFormat = x; + return bullet; + }; + + bullet.duration = function(x) { + if (!arguments.length) return duration; + duration = x; + return bullet; + }; + + return bullet; +}; + +function d3_chart_bulletRanges(d) { + return d.ranges; +} + +function d3_chart_bulletMarkers(d) { + return d.markers; +} + +function d3_chart_bulletMeasures(d) { + return d.measures; +} + +function d3_chart_bulletTranslate(x) { + return function(d) { + return "translate(" + x(d) + ",0)"; + }; +} + +function d3_chart_bulletWidth(x) { + var x0 = x(0); + return function(d) { + return Math.abs(x(d) - x0); + }; +} +// Implements a horizon layout, which is a variation of a single-series +// area chart where the area is folded into multiple bands. Color is used to +// encode band, allowing the size of the chart to be reduced significantly +// without impeding readability. This layout algorithm is based on the work of +// J. Heer, N. Kong and M. Agrawala in "Sizing the Horizon: The Effects of Chart +// Size and Layering on the Graphical Perception of Time Series Visualizations", +// CHI 2009. http://hci.stanford.edu/publications/2009/heer-horizon-chi09.pdf +d3.chart.horizon = function() { + var bands = 1, // between 1 and 5, typically + mode = "offset", // or mirror + interpolate = "linear", // or basis, monotone, step-before, etc. + x = d3_chart_horizonX, + y = d3_chart_horizonY, + w = 960, + h = 40, + duration = 0; + + var color = d3.scale.linear() + .domain([-1, 0, 1]) + .range(["#d62728", "#fff", "#1f77b4"]); + + // For each small multiple… + function horizon(g) { + g.each(function(d, i) { + var g = d3.select(this), + n = 2 * bands + 1, + xMin = Infinity, + xMax = -Infinity, + yMax = -Infinity, + x0, // old x-scale + y0, // old y-scale + id; // unique id for paths + + // Compute x- and y-values along with extents. + var data = d.map(function(d, i) { + var xv = x.call(this, d, i), + yv = y.call(this, d, i); + if (xv < xMin) xMin = xv; + if (xv > xMax) xMax = xv; + if (-yv > yMax) yMax = -yv; + if (yv > yMax) yMax = yv; + return [xv, yv]; + }); + + // Compute the new x- and y-scales. + var x1 = d3.scale.linear().domain([xMin, xMax]).range([0, w]), + y1 = d3.scale.linear().domain([0, yMax]).range([0, h * bands]); + + // Retrieve the old scales, if this is an update. + if (this.__chart__) { + x0 = this.__chart__.x; + y0 = this.__chart__.y; + id = this.__chart__.id; + } else { + x0 = d3.scale.linear().domain([0, Infinity]).range(x1.range()); + y0 = d3.scale.linear().domain([0, Infinity]).range(y1.range()); + id = ++d3_chart_horizonId; + } + + // We'll use a defs to store the area path and the clip path. + var defs = g.selectAll("defs") + .data([data]); + + var defsEnter = defs.enter().append("svg:defs"); + + // The clip path is a simple rect. + defsEnter.append("svg:clipPath") + .attr("id", "d3_chart_horizon_clip" + id) + .append("svg:rect") + .attr("width", w) + .attr("height", h); + + defs.select("rect").transition() + .duration(duration) + .attr("width", w) + .attr("height", h); + + // The area path is rendered with our resuable d3.svg.area. + defsEnter.append("svg:path") + .attr("id", "d3_chart_horizon_path" + id) + .attr("d", d3_chart_horizonArea + .interpolate(interpolate) + .x(function(d) { return x0(d[0]); }) + .y0(h * bands) + .y1(function(d) { return h * bands - y0(d[1]); })) + .transition() + .duration(duration) + .attr("d", d3_chart_horizonArea + .x(function(d) { return x1(d[0]); }) + .y1(function(d) { return h * bands - y1(d[1]); })); + + defs.select("path").transition() + .duration(duration) + .attr("d", d3_chart_horizonArea); + + // We'll use a container to clip all horizon layers at once. + g.selectAll("g") + .data([null]) + .enter().append("svg:g") + .attr("clip-path", "url(#d3_chart_horizon_clip" + id + ")"); + + // Define the transform function based on the mode. + var transform = mode == "offset" + ? function(d) { return "translate(0," + (d + (d < 0) - bands) * h + ")"; } + : function(d) { return (d < 0 ? "scale(1,-1)" : "") + "translate(0," + (d - bands) * h + ")"; }; + + // Instantiate each copy of the path with different transforms. + var u = g.select("g").selectAll("use") + .data(d3.range(-1, -bands - 1, -1).concat(d3.range(1, bands + 1)), Number); + + // TODO don't fudge the enter transition + u.enter().append("svg:use") + .attr("xlink:href", "#d3_chart_horizon_path" + id) + .attr("transform", function(d) { return transform(d + (d > 0 ? 1 : -1)); }) + .style("fill", color) + .transition() + .duration(duration) + .attr("transform", transform); + + u.transition() + .duration(duration) + .attr("transform", transform) + .style("fill", color); + + u.exit().transition() + .duration(duration) + .attr("transform", transform) + .remove(); + + // Stash the new scales. + this.__chart__ = {x: x1, y: y1, id: id}; + }); + d3.timer.flush(); + } + + horizon.duration = function(x) { + if (!arguments.length) return duration; + duration = +x; + return horizon; + }; + + horizon.bands = function(x) { + if (!arguments.length) return bands; + bands = +x; + color.domain([-bands, 0, bands]); + return horizon; + }; + + horizon.mode = function(x) { + if (!arguments.length) return mode; + mode = x + ""; + return horizon; + }; + + horizon.colors = function(x) { + if (!arguments.length) return color.range(); + color.range(x); + return horizon; + }; + + horizon.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x + ""; + return horizon; + }; + + horizon.x = function(z) { + if (!arguments.length) return x; + x = z; + return horizon; + }; + + horizon.y = function(z) { + if (!arguments.length) return y; + y = z; + return horizon; + }; + + horizon.width = function(x) { + if (!arguments.length) return w; + w = +x; + return horizon; + }; + + horizon.height = function(x) { + if (!arguments.length) return h; + h = +x; + return horizon; + }; + + return horizon; +}; + +var d3_chart_horizonArea = d3.svg.area(), + d3_chart_horizonId = 0; + +function d3_chart_horizonX(d) { + return d[0]; +} + +function d3_chart_horizonY(d) { + return d[1]; +} +// Based on http://vis.stanford.edu/protovis/ex/qqplot.html +d3.chart.qq = function() { + var width = 1, + height = 1, + duration = 0, + domain = null, + tickFormat = null, + n = 100, + x = d3_chart_qqX, + y = d3_chart_qqY; + + // For each small multiple… + function qq(g) { + g.each(function(d, i) { + var g = d3.select(this), + qx = d3_chart_qqQuantiles(n, x.call(this, d, i)), + qy = d3_chart_qqQuantiles(n, y.call(this, d, i)), + xd = domain && domain.call(this, d, i) || [d3.min(qx), d3.max(qx)], // new x-domain + yd = domain && domain.call(this, d, i) || [d3.min(qy), d3.max(qy)], // new y-domain + x0, // old x-scale + y0; // old y-scale + + // Compute the new x-scale. + var x1 = d3.scale.linear() + .domain(xd) + .range([0, width]); + + // Compute the new y-scale. + var y1 = d3.scale.linear() + .domain(yd) + .range([height, 0]); + + // Retrieve the old scales, if this is an update. + if (this.__chart__) { + x0 = this.__chart__.x; + y0 = this.__chart__.y; + } else { + x0 = d3.scale.linear().domain([0, Infinity]).range(x1.range()); + y0 = d3.scale.linear().domain([0, Infinity]).range(y1.range()); + } + + // Stash the new scales. + this.__chart__ = {x: x1, y: y1}; + + // Update diagonal line. + var diagonal = g.selectAll("line.diagonal") + .data([null]); + + diagonal.enter().append("svg:line") + .attr("class", "diagonal") + .attr("x1", x1(yd[0])) + .attr("y1", y1(xd[0])) + .attr("x2", x1(yd[1])) + .attr("y2", y1(xd[1])); + + diagonal.transition() + .duration(duration) + .attr("x1", x1(yd[0])) + .attr("y1", y1(xd[0])) + .attr("x2", x1(yd[1])) + .attr("y2", y1(xd[1])); + + // Update quantile plots. + var circle = g.selectAll("circle") + .data(d3.range(n).map(function(i) { + return {x: qx[i], y: qy[i]}; + })); + + circle.enter().append("svg:circle") + .attr("class", "quantile") + .attr("r", 4.5) + .attr("cx", function(d) { return x0(d.x); }) + .attr("cy", function(d) { return y0(d.y); }) + .style("opacity", 1e-6) + .transition() + .duration(duration) + .attr("cx", function(d) { return x1(d.x); }) + .attr("cy", function(d) { return y1(d.y); }) + .style("opacity", 1); + + circle.transition() + .duration(duration) + .attr("cx", function(d) { return x1(d.x); }) + .attr("cy", function(d) { return y1(d.y); }) + .style("opacity", 1); + + circle.exit().transition() + .duration(duration) + .attr("cx", function(d) { return x1(d.x); }) + .attr("cy", function(d) { return y1(d.y); }) + .style("opacity", 1e-6) + .remove(); + + var xformat = tickFormat || x1.tickFormat(4), + yformat = tickFormat || y1.tickFormat(4), + tx = function(d) { return "translate(" + x1(d) + "," + height + ")"; }, + ty = function(d) { return "translate(0," + y1(d) + ")"; }; + + // Update x-ticks. + var xtick = g.selectAll("g.x.tick") + .data(x1.ticks(4), function(d) { + return this.textContent || xformat(d); + }); + + var xtickEnter = xtick.enter().append("svg:g") + .attr("class", "x tick") + .attr("transform", function(d) { return "translate(" + x0(d) + "," + height + ")"; }) + .style("opacity", 1e-6); + + xtickEnter.append("svg:line") + .attr("y1", 0) + .attr("y2", -6); + + xtickEnter.append("svg:text") + .attr("text-anchor", "middle") + .attr("dy", "1em") + .text(xformat); + + // Transition the entering ticks to the new scale, x1. + xtickEnter.transition() + .duration(duration) + .attr("transform", tx) + .style("opacity", 1); + + // Transition the updating ticks to the new scale, x1. + xtick.transition() + .duration(duration) + .attr("transform", tx) + .style("opacity", 1); + + // Transition the exiting ticks to the new scale, x1. + xtick.exit().transition() + .duration(duration) + .attr("transform", tx) + .style("opacity", 1e-6) + .remove(); + + // Update ticks. + var ytick = g.selectAll("g.y.tick") + .data(y1.ticks(4), function(d) { + return this.textContent || yformat(d); + }); + + var ytickEnter = ytick.enter().append("svg:g") + .attr("class", "y tick") + .attr("transform", function(d) { return "translate(0," + y0(d) + ")"; }) + .style("opacity", 1e-6); + + ytickEnter.append("svg:line") + .attr("x1", 0) + .attr("x2", 6); + + ytickEnter.append("svg:text") + .attr("text-anchor", "end") + .attr("dx", "-.5em") + .attr("dy", ".3em") + .text(yformat); + + // Transition the entering ticks to the new scale, y1. + ytickEnter.transition() + .duration(duration) + .attr("transform", ty) + .style("opacity", 1); + + // Transition the updating ticks to the new scale, y1. + ytick.transition() + .duration(duration) + .attr("transform", ty) + .style("opacity", 1); + + // Transition the exiting ticks to the new scale, y1. + ytick.exit().transition() + .duration(duration) + .attr("transform", ty) + .style("opacity", 1e-6) + .remove(); + }); + } + + qq.width = function(x) { + if (!arguments.length) return width; + width = x; + return qq; + }; + + qq.height = function(x) { + if (!arguments.length) return height; + height = x; + return qq; + }; + + qq.duration = function(x) { + if (!arguments.length) return duration; + duration = x; + return qq; + }; + + qq.domain = function(x) { + if (!arguments.length) return domain; + domain = x == null ? x : d3.functor(x); + return qq; + }; + + qq.count = function(z) { + if (!arguments.length) return n; + n = z; + return qq; + }; + + qq.x = function(z) { + if (!arguments.length) return x; + x = z; + return qq; + }; + + qq.y = function(z) { + if (!arguments.length) return y; + y = z; + return qq; + }; + + qq.tickFormat = function(x) { + if (!arguments.length) return tickFormat; + tickFormat = x; + return qq; + }; + + return qq; +}; + +function d3_chart_qqQuantiles(n, values) { + var m = values.length - 1; + values = values.slice().sort(d3.ascending); + return d3.range(n).map(function(i) { + return values[~~(i * m / n)]; + }); +} + +function d3_chart_qqX(d) { + return d.x; +} + +function d3_chart_qqY(d) { + return d.y; +} +})(); diff --git a/talk/20110921/d3/d3.chart.min.js b/talk/20110921/d3/d3.chart.min.js new file mode 100755 index 0000000000000..02f32426ab0c4 --- /dev/null +++ b/talk/20110921/d3/d3.chart.min.js @@ -0,0 +1 @@ +(function(){function n(a){return a.y}function m(a){return a.x}function l(a,b){var c=b.length-1;b=b.slice().sort(d3.ascending);return d3.range(a).map(function(d){return b[~~(d*c/a)]})}function k(a){return a[1]}function j(a){return a[0]}function g(a){var b=a(0);return function(c){return Math.abs(a(c)-b)}}function f(a){return function(b){return"translate("+a(b)+",0)"}}function e(a){return a.measures}function d(a){return a.markers}function c(a){return a.ranges}function b(a){return[d3.quantile(a,.25),d3.quantile(a,.5),d3.quantile(a,.75)]}function a(a){return[0,a.length-1]}d3.chart={},d3.chart.box=function(){function k(a){a.each(function(a,b){a=a.map(g).sort(d3.ascending);var k=d3.select(this),l=a.length,m=a[0],n=a[l-1],o=a.quartiles=i(a),p=h&&h.call(this,a,b),q=p&&p.map(function(b){return a[b]}),r=p?d3.range(0,p[0]).concat(d3.range(p[1]+1,l)):d3.range(l),s=d3.scale.linear().domain(f&&f.call(this,a,b)||[m,n]).range([d,0]),t=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(s.range());this.__chart__=s;var u=k.selectAll("line.center").data(q?[q]:[]);u.enter().insert("svg:line","rect").attr("class","center").attr("x1",c/2).attr("y1",function(a){return t(a[0])}).attr("x2",c/2).attr("y2",function(a){return t(a[1])}).style("opacity",1e-6).transition().duration(e).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.transition().duration(e).style("opacity",1).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}),u.exit().transition().duration(e).style("opacity",1e-6).attr("y1",function(a){return s(a[0])}).attr("y2",function(a){return s(a[1])}).remove();var v=k.selectAll("rect.box").data([o]);v.enter().append("svg:rect").attr("class","box").attr("x",0).attr("y",function(a){return t(a[2])}).attr("width",c).attr("height",function(a){return t(a[0])-t(a[2])}).transition().duration(e).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])}),v.transition().duration(e).attr("y",function(a){return s(a[2])}).attr("height",function(a){return s(a[0])-s(a[2])});var w=k.selectAll("line.median").data([o[1]]);w.enter().append("svg:line").attr("class","median").attr("x1",0).attr("y1",t).attr("x2",c).attr("y2",t).transition().duration(e).attr("y1",s).attr("y2",s),w.transition().duration(e).attr("y1",s).attr("y2",s);var x=k.selectAll("line.whisker").data(q||[]);x.enter().insert("svg:line","circle, text").attr("class","whisker").attr("x1",0).attr("y1",t).attr("x2",c).attr("y2",t).style("opacity",1e-6).transition().duration(e).attr("y1",s).attr("y2",s).style("opacity",1),x.transition().duration(e).attr("y1",s).attr("y2",s).style("opacity",1),x.exit().transition().duration(e).attr("y1",s).attr("y2",s).style("opacity",1e-6).remove();var y=k.selectAll("circle.outlier").data(r,Number);y.enter().insert("svg:circle","text").attr("class","outlier").attr("r",5).attr("cx",c/2).attr("cy",function(b){return t(a[b])}).style("opacity",1e-6).transition().duration(e).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.transition().duration(e).attr("cy",function(b){return s(a[b])}).style("opacity",1),y.exit().transition().duration(e).attr("cy",function(b){return s(a[b])}).style("opacity",1e-6).remove();var z=j||s.tickFormat(8),A=k.selectAll("text.box").data(o);A.enter().append("svg:text").attr("class","box").attr("dy",".3em").attr("dx",function(a,b){return b&1?6:-6}).attr("x",function(a,b){return b&1?c:0}).attr("y",t).attr("text-anchor",function(a,b){return b&1?"start":"end"}).text(z).transition().duration(e).attr("y",s),A.transition().duration(e).text(z).attr("y",s);var B=k.selectAll("text.whisker").data(q||[]);B.enter().append("svg:text").attr("class","whisker").attr("dy",".3em").attr("dx",6).attr("x",c).attr("y",t).text(z).style("opacity",1e-6).transition().duration(e).attr("y",s).style("opacity",1),B.transition().duration(e).text(z).attr("y",s).style("opacity",1),B.exit().transition().duration(e).attr("y",s).style("opacity",1e-6).remove()}),d3.timer.flush()}var c=1,d=1,e=0,f=null,g=Number,h=a,i=b,j=null;k.width=function(a){if(!arguments.length)return c;c=a;return k},k.height=function(a){if(!arguments.length)return d;d=a;return k},k.tickFormat=function(a){if(!arguments.length)return j;j=a;return k},k.duration=function(a){if(!arguments.length)return e;e=a;return k},k.domain=function(a){if(!arguments.length)return f;f=a==null?a:d3.functor(a);return k},k.value=function(a){if(!arguments.length)return g;g=a;return k},k.whiskers=function(a){if(!arguments.length)return h;h=a;return k},k.quartiles=function(a){if(!arguments.length)return i;i=a;return k};return k},d3.chart.bullet=function(){function o(a){a.each(function(a,c){var d=i.call(this,a,c).slice().sort(d3.descending),e=j.call(this,a,c).slice().sort(d3.descending),o=k.call(this,a,c).slice().sort(d3.descending),p=d3.select(this),q=d3.scale.linear().domain([0,Math.max(d[0],e[0],o[0])]).range(b?[l,0]:[0,l]),r=this.__chart__||d3.scale.linear().domain([0,Infinity]).range(q.range());this.__chart__=q;var s=g(r),t=g(q),u=p.selectAll("rect.range").data(d);u.enter().append("svg:rect").attr("class",function(a,b){return"range s"+b}).attr("width",s).attr("height",m).attr("x",b?r:0).transition().duration(h).attr("width",t).attr("x",b?q:0),u.transition().duration(h).attr("x",b?q:0).attr("width",t).attr("height",m);var v=p.selectAll("rect.measure").data(o);v.enter().append("svg:rect").attr("class",function(a,b){return"measure s"+b}).attr("width",s).attr("height",m/3).attr("x",b?r:0).attr("y",m/3).transition().duration(h).attr("width",t).attr("x",b?q:0),v.transition().duration(h).attr("width",t).attr("height",m/3).attr("x",b?q:0).attr("y",m/3);var w=p.selectAll("line.marker").data(e);w.enter().append("svg:line").attr("class","marker").attr("x1",r).attr("x2",r).attr("y1",m/6).attr("y2",m*5/6).transition().duration(h).attr("x1",q).attr("x2",q),w.transition().duration(h).attr("x1",q).attr("x2",q).attr("y1",m/6).attr("y2",m*5/6);var x=n||q.tickFormat(8),y=p.selectAll("g.tick").data(q.ticks(8),function(a){return this.textContent||x(a)}),z=y.enter().append("svg:g").attr("class","tick").attr("transform",f(r)).style("opacity",1e-6);z.append("svg:line").attr("y1",m).attr("y2",m*7/6),z.append("svg:text").attr("text-anchor","middle").attr("dy","1em").attr("y",m*7/6).text(x),z.transition().duration(h).attr("transform",f(q)).style("opacity",1);var A=y.transition().duration(h).attr("transform",f(q)).style("opacity",1);A.select("line").attr("y1",m).attr("y2",m*7/6),A.select("text").attr("y",m*7/6),y.exit().transition().duration(h).attr("transform",f(q)).style("opacity",1e-6).remove()}),d3.timer.flush()}var a="left",b=!1,h=0,i=c,j=d,k=e,l=380,m=30,n=null;o.orient=function(c){if(!arguments.length)return a;a=c,b=a=="right"||a=="bottom";return o},o.ranges=function(a){if(!arguments.length)return i;i=a;return o},o.markers=function(a){if(!arguments.length)return j;j=a;return o},o.measures=function(a){if(!arguments.length)return k;k=a;return o},o.width=function(a){if(!arguments.length)return l;l=a;return o},o.height=function(a){if(!arguments.length)return m;m=a;return o},o.tickFormat=function(a){if(!arguments.length)return n;n=a;return o},o.duration=function(a){if(!arguments.length)return h;h=a;return o};return o},d3.chart.horizon=function(){function n(j){j.each(function(j,k){var n=d3.select(this),o=2*a+1,p=Infinity,q=-Infinity,r=-Infinity,s,t,u,v=j.map(function(a,b){var c=d.call(this,a,b),f=e.call(this,a,b);cq&&(q=c),-f>r&&(r=-f),f>r&&(r=f);return[c,f]}),z=d3.scale.linear().domain([p,q]).range([0,f]),A=d3.scale.linear().domain([0,r]).range([0,g*a]);this.__chart__?(s=this.__chart__.x,t=this.__chart__.y,u=this.__chart__.id):(s=d3.scale.linear().domain([0,Infinity]).range(z.range()),t=d3.scale.linear().domain([0,Infinity]).range(A.range()),u=++i);var B=n.selectAll("defs").data([v]),C=B.enter().append("svg:defs");C.append("svg:clipPath").attr("id","d3_chart_horizon_clip"+u).append("svg:rect").attr("width",f).attr("height",g),B.select("rect").transition().duration(l).attr("width",f).attr("height",g),C.append("svg:path").attr("id","d3_chart_horizon_path"+u).attr("d",h.interpolate(c).x(function(a){return s(a[0])}).y0(g*a).y1(function(b){return g*a-t(b[1])})).transition().duration(l).attr("d",h.x(function(a){return z(a[0])}).y1(function(b){return g*a-A(b[1])})),B.select("path").transition().duration(l).attr("d",h),n.selectAll("g").data([null]).enter().append("svg:g").attr("clip-path","url(#d3_chart_horizon_clip"+u+")");var D=b=="offset"?function(b){return"translate(0,"+(b+(b<0)-a)*g+")"}:function(b){return(b<0?"scale(1,-1)":"")+"translate(0,"+(b-a)*g+")"},E=n.select("g").selectAll("use").data(d3.range(-1,-a-1,-1).concat(d3.range(1,a+1)),Number);E.enter().append("svg:use").attr("xlink:href","#d3_chart_horizon_path"+u).attr("transform",function(a){return D(a+(a>0?1:-1))}).style("fill",m).transition().duration(l).attr("transform",D),E.transition().duration(l).attr("transform",D).style("fill",m),E.exit().transition().duration(l).attr("transform",D).remove(),this.__chart__={x:z,y:A,id:u}}),d3.timer.flush()}var a=1,b="offset",c="linear",d=j,e=k,f=960,g=40,l=0,m=d3.scale.linear().domain([-1,0,1]).range(["#d62728","#fff","#1f77b4"]);n.duration=function(a){if(!arguments.length)return l;l=+a;return n},n.bands=function(b){if(!arguments.length)return a;a=+b,m.domain([-a,0,a]);return n},n.mode=function(a){if(!arguments.length)return b;b=a+"";return n},n.colors=function(a){if(!arguments.length)return m.range();m.range(a);return n},n.interpolate=function(a){if(!arguments.length)return c;c=a+"";return n},n.x=function(a){if(!arguments.length)return d;d=a;return n},n.y=function(a){if(!arguments.length)return e;e=a;return n},n.width=function(a){if(!arguments.length)return f;f=+a;return n},n.height=function(a){if(!arguments.length)return g;g=+a;return n};return n};var h=d3.svg.area(),i=0;d3.chart.qq=function(){function i(i){i.each(function(i,j){var k=d3.select(this),m=l(f,g.call(this,i,j)),n=l(f,h.call(this,i,j)),o=d&&d.call(this,i,j)||[d3.min(m),d3.max(m)],p=d&&d.call(this,i,j)||[d3.min(n),d3.max(n)],q,r,s=d3.scale.linear().domain(o).range([0,a]),t=d3.scale.linear().domain(p).range([b,0]);this.__chart__?(q=this.__chart__.x,r=this.__chart__.y):(q=d3.scale.linear().domain([0,Infinity]).range(s.range()),r=d3.scale.linear().domain([0,Infinity]).range(t.range())),this.__chart__={x:s,y:t};var u=k.selectAll("line.diagonal").data([null]);u.enter().append("svg:line").attr("class","diagonal").attr("x1",s(p[0])).attr("y1",t(o[0])).attr("x2",s(p[1])).attr("y2",t(o[1])),u.transition().duration(c).attr("x1",s(p[0])).attr("y1",t(o[0])).attr("x2",s(p[1])).attr("y2",t(o[1]));var v=k.selectAll("circle").data(d3.range(f).map(function(a){return{x:m[a],y:n[a]}}));v.enter().append("svg:circle").attr("class","quantile").attr("r",4.5).attr("cx",function(a){return q(a.x)}).attr("cy",function(a){return r(a.y)}).style("opacity",1e-6).transition().duration(c).attr("cx",function(a){return s(a.x)}).attr("cy",function(a){return t(a.y)}).style("opacity",1),v.transition().duration(c).attr("cx",function(a){return s(a.x)}).attr("cy",function(a){return t(a.y)}).style("opacity",1),v.exit().transition().duration(c).attr("cx",function(a){return s(a.x)}).attr("cy",function(a){return t(a.y)}).style("opacity",1e-6).remove();var w=e||s.tickFormat(4),z=e||t.tickFormat(4),A=function(a){return"translate("+s(a)+","+b+")"},B=function(a){return"translate(0,"+t(a)+")"},C=k.selectAll("g.x.tick").data(s.ticks(4),function(a){return this.textContent||w(a)}),D=C.enter().append("svg:g").attr("class","x tick").attr("transform",function(a){return"translate("+q(a)+","+b+")"}).style("opacity",1e-6);D.append("svg:line").attr("y1",0).attr("y2",-6),D.append("svg:text").attr("text-anchor","middle").attr("dy","1em").text(w),D.transition().duration(c).attr("transform",A).style("opacity",1),C.transition().duration(c).attr("transform",A).style("opacity",1),C.exit().transition().duration(c).attr("transform",A).style("opacity",1e-6).remove();var E=k.selectAll("g.y.tick").data(t.ticks(4),function(a){return this.textContent||z(a)}),F=E.enter().append("svg:g").attr("class","y tick").attr("transform",function(a){return"translate(0,"+r(a)+")"}).style("opacity",1e-6);F.append("svg:line").attr("x1",0).attr("x2",6),F.append("svg:text").attr("text-anchor","end").attr("dx","-.5em").attr("dy",".3em").text(z),F.transition().duration(c).attr("transform",B).style("opacity",1),E.transition().duration(c).attr("transform",B).style("opacity",1),E.exit().transition().duration(c).attr("transform",B).style("opacity",1e-6).remove()})}var a=1,b=1,c=0,d=null,e=null,f=100,g=m,h=n;i.width=function(b){if(!arguments.length)return a;a=b;return i},i.height=function(a){if(!arguments.length)return b;b=a;return i},i.duration=function(a){if(!arguments.length)return c;c=a;return i},i.domain=function(a){if(!arguments.length)return d;d=a==null?a:d3.functor(a);return i},i.count=function(a){if(!arguments.length)return f;f=a;return i},i.x=function(a){if(!arguments.length)return g;g=a;return i},i.y=function(a){if(!arguments.length)return h;h=a;return i},i.tickFormat=function(a){if(!arguments.length)return e;e=a;return i};return i}})() \ No newline at end of file diff --git a/talk/20110921/d3/d3.csv.js b/talk/20110921/d3/d3.csv.js new file mode 100755 index 0000000000000..7565b83b22993 --- /dev/null +++ b/talk/20110921/d3/d3.csv.js @@ -0,0 +1,92 @@ +(function(){d3.csv = function(url, callback) { + d3.text(url, "text/csv", function(text) { + callback(text && d3.csv.parse(text)); + }); +}; +d3.csv.parse = function(text) { + var header; + return d3.csv.parseRows(text, function(row, i) { + if (i) { + var o = {}, j = -1, m = header.length; + while (++j < m) o[header[j]] = row[j]; + return o; + } else { + header = row; + return null; + } + }); +}; + +d3.csv.parseRows = function(text, f) { + var EOL = {}, // sentinel value for end-of-line + EOF = {}, // sentinel value for end-of-file + rows = [], // output rows + re = /\r\n|[,\r\n]/g, // field separator regex + n = 0, // the current line number + t, // the current token + eol; // is the current token followed by EOL? + + re.lastIndex = 0; // work-around bug in FF 3.6 + + /** @private Returns the next token. */ + function token() { + if (re.lastIndex >= text.length) return EOF; // special case: end of file + if (eol) { eol = false; return EOL; } // special case: end of line + + // special case: quotes + var j = re.lastIndex; + if (text.charCodeAt(j) === 34) { + var i = j; + while (i++ < text.length) { + if (text.charCodeAt(i) === 34) { + if (text.charCodeAt(i + 1) !== 34) break; + i++; + } + } + re.lastIndex = i + 2; + var c = text.charCodeAt(i + 1); + if (c === 13) { + eol = true; + if (text.charCodeAt(i + 2) === 10) re.lastIndex++; + } else if (c === 10) { + eol = true; + } + return text.substring(j + 1, i).replace(/""/g, "\""); + } + + // common case + var m = re.exec(text); + if (m) { + eol = m[0].charCodeAt(0) !== 44; + return text.substring(j, m.index); + } + re.lastIndex = text.length; + return text.substring(j); + } + + while ((t = token()) !== EOF) { + var a = []; + while ((t !== EOL) && (t !== EOF)) { + a.push(t); + t = token(); + } + if (f && !(a = f(a, n++))) continue; + rows.push(a); + } + + return rows; +}; +d3.csv.format = function(rows) { + return rows.map(d3_csv_formatRow).join("\n"); +}; + +function d3_csv_formatRow(row) { + return row.map(d3_csv_formatValue).join(","); +} + +function d3_csv_formatValue(text) { + return /[",\n]/.test(text) + ? "\"" + text.replace(/\"/g, "\"\"") + "\"" + : text; +} +})(); diff --git a/talk/20110921/d3/d3.csv.min.js b/talk/20110921/d3/d3.csv.min.js new file mode 100755 index 0000000000000..b41888812df89 --- /dev/null +++ b/talk/20110921/d3/d3.csv.min.js @@ -0,0 +1 @@ +(function(){function b(a){return/[",\n]/.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}function a(a){return a.map(b).join(",")}d3.csv=function(a,b){d3.text(a,"text/csv",function(a){b(a&&d3.csv.parse(a))})},d3.csv.parse=function(a){var b;return d3.csv.parseRows(a,function(a,c){if(c){var d={},e=-1,f=b.length;while(++e=a.length)return d;if(i){i=!1;return c}var b=f.lastIndex;if(a.charCodeAt(b)===34){var e=b;while(e++ 50 ? alaska + : lon < -140 ? hawaii + : lat < 21 ? puertoRico + : lower48)(coordinates); + } + + albersUsa.scale = function(x) { + if (!arguments.length) return lower48.scale(); + lower48.scale(x); + alaska.scale(x * .6); + hawaii.scale(x); + puertoRico.scale(x * 1.5); + return albersUsa.translate(lower48.translate()); + }; + + albersUsa.translate = function(x) { + if (!arguments.length) return lower48.translate(); + var dz = lower48.scale() / 1000, + dx = x[0], + dy = x[1]; + lower48.translate(x); + alaska.translate([dx - 400 * dz, dy + 170 * dz]); + hawaii.translate([dx - 190 * dz, dy + 200 * dz]); + puertoRico.translate([dx + 580 * dz, dy + 430 * dz]); + return albersUsa; + }; + + return albersUsa.scale(lower48.scale()); +}; + +var d3_radians = Math.PI / 180; +d3.geo.equirectangular = function() { + var scale = 500, + translate = [480, 250]; + + function equirectangular(coordinates) { + var x = coordinates[0] / 360, + y = -coordinates[1] / 360; + return [ + scale * x + translate[0], + scale * y + translate[1] + ]; + } + + equirectangular.invert = function(coordinates) { + var x = (coordinates[0] - translate[0]) / scale, + y = (coordinates[1] - translate[1]) / scale; + return [ + 360 * x, + -360 * y + ]; + }; + + equirectangular.scale = function(x) { + if (!arguments.length) return scale; + scale = +x; + return equirectangular; + }; + + equirectangular.translate = function(x) { + if (!arguments.length) return translate; + translate = [+x[0], +x[1]]; + return equirectangular; + }; + + return equirectangular; +}; +d3.geo.mercator = function() { + var scale = 500, + translate = [480, 250]; + + function mercator(coordinates) { + var x = coordinates[0] / 360, + y = -(Math.log(Math.tan(Math.PI / 4 + coordinates[1] * d3_radians / 2)) / d3_radians) / 360; + return [ + scale * x + translate[0], + scale * Math.max(-.5, Math.min(.5, y)) + translate[1] + ]; + } + + mercator.invert = function(coordinates) { + var x = (coordinates[0] - translate[0]) / scale, + y = (coordinates[1] - translate[1]) / scale; + return [ + 360 * x, + 2 * Math.atan(Math.exp(-360 * y * d3_radians)) / d3_radians - 90 + ]; + }; + + mercator.scale = function(x) { + if (!arguments.length) return scale; + scale = +x; + return mercator; + }; + + mercator.translate = function(x) { + if (!arguments.length) return translate; + translate = [+x[0], +x[1]]; + return mercator; + }; + + return mercator; +}; +/** + * Returns a function that, given a GeoJSON object (e.g., a feature), returns + * the corresponding SVG path. The function can be customized by overriding the + * projection. Point features are mapped to circles with a default radius of + * 4.5px; the radius can be specified either as a constant or a function that + * is evaluated per object. + */ +d3.geo.path = function() { + var pointRadius = 4.5, + pointCircle = d3_path_circle(pointRadius), + projection = d3.geo.albersUsa(); + + function path(d, i) { + if (typeof pointRadius === "function") { + pointCircle = d3_path_circle(pointRadius.apply(this, arguments)); + } + return d3_geo_pathType(pathTypes, d); + } + + function project(coordinates) { + return projection(coordinates).join(","); + } + + var pathTypes = { + + FeatureCollection: function(f) { + var path = [], + features = f.features, + i = -1, // features.index + n = features.length; + while (++i < n) path.push(d3_geo_pathType(pathTypes, features[i].geometry)); + return path.join(""); + }, + + Feature: function(f) { + return d3_geo_pathType(pathTypes, f.geometry); + }, + + Point: function(o) { + return "M" + project(o.coordinates) + pointCircle; + }, + + MultiPoint: function(o) { + var path = [], + coordinates = o.coordinates, + i = -1, // coordinates.index + n = coordinates.length; + while (++i < n) path.push("M", project(coordinates[i]), pointCircle); + return path.join(""); + }, + + LineString: function(o) { + var path = ["M"], + coordinates = o.coordinates, + i = -1, // coordinates.index + n = coordinates.length; + while (++i < n) path.push(project(coordinates[i]), "L"); + path.pop(); + return path.join(""); + }, + + MultiLineString: function(o) { + var path = [], + coordinates = o.coordinates, + i = -1, // coordinates.index + n = coordinates.length, + subcoordinates, // coordinates[i] + j, // subcoordinates.index + m; // subcoordinates.length + while (++i < n) { + subcoordinates = coordinates[i]; + j = -1; + m = subcoordinates.length; + path.push("M"); + while (++j < m) path.push(project(subcoordinates[j]), "L"); + path.pop(); + } + return path.join(""); + }, + + Polygon: function(o) { + var path = [], + coordinates = o.coordinates, + i = -1, // coordinates.index + n = coordinates.length, + subcoordinates, // coordinates[i] + j, // subcoordinates.index + m; // subcoordinates.length + while (++i < n) { + subcoordinates = coordinates[i]; + j = -1; + m = subcoordinates.length; + path.push("M"); + while (++j < m) path.push(project(subcoordinates[j]), "L"); + path[path.length - 1] = "Z"; + } + return path.join(""); + }, + + MultiPolygon: function(o) { + var path = [], + coordinates = o.coordinates, + i = -1, // coordinates index + n = coordinates.length, + subcoordinates, // coordinates[i] + j, // subcoordinates index + m, // subcoordinates.length + subsubcoordinates, // subcoordinates[j] + k, // subsubcoordinates index + p; // subsubcoordinates.length + while (++i < n) { + subcoordinates = coordinates[i]; + j = -1; + m = subcoordinates.length; + while (++j < m) { + subsubcoordinates = subcoordinates[j]; + k = -1; + p = subsubcoordinates.length - 1; + path.push("M"); + while (++k < p) path.push(project(subsubcoordinates[k]), "L"); + path[path.length - 1] = "Z"; + } + } + return path.join(""); + }, + + GeometryCollection: function(o) { + var path = [], + geometries = o.geometries, + i = -1, // geometries index + n = geometries.length; + while (++i < n) path.push(d3_geo_pathType(pathTypes, geometries[i])); + return path.join(""); + } + + }; + + var areaTypes = { + + FeatureCollection: function(f) { + var area = 0, + features = f.features, + i = -1, // features.index + n = features.length; + while (++i < n) area += d3_geo_pathType(areaTypes, features[i]); + return area; + }, + + Feature: function(f) { + return d3_geo_pathType(areaTypes, f.geometry); + }, + + Point: d3_geo_pathZero, + MultiPoint: d3_geo_pathZero, + LineString: d3_geo_pathZero, + MultiLineString: d3_geo_pathZero, + + Polygon: function(o) { + return polygonArea(o.coordinates); + }, + + MultiPolygon: function(o) { + var sum = 0, + coordinates = o.coordinates, + i = -1, // coordinates index + n = coordinates.length; + while (++i < n) sum += polygonArea(coordinates[i]); + return sum; + }, + + GeometryCollection: function(o) { + var sum = 0, + geometries = o.geometries, + i = -1, // geometries index + n = geometries.length; + while (++i < n) sum += d3_geo_pathType(areaTypes, geometries[i]); + return sum; + } + + }; + + function polygonArea(coordinates) { + var sum = area(coordinates[0]), // exterior ring + i = 0, // coordinates.index + n = coordinates.length; + while (++i < n) sum -= area(coordinates[i]); // holes + return sum; + } + + function polygonCentroid(coordinates) { + var polygon = d3.geom.polygon(coordinates[0].map(projection)), // exterior ring + centroid = polygon.centroid(1), + x = centroid[0], + y = centroid[1], + z = Math.abs(polygon.area()), + i = 0, // coordinates index + n = coordinates.length; + while (++i < n) { + polygon = d3.geom.polygon(coordinates[i].map(projection)); // holes + centroid = polygon.centroid(1); + x -= centroid[0]; + y -= centroid[1]; + z -= Math.abs(polygon.area()); + } + return [x, y, 6 * z]; // weighted centroid + } + + var centroidTypes = { + + // TODO FeatureCollection + // TODO Point + // TODO MultiPoint + // TODO LineString + // TODO MultiLineString + // TODO GeometryCollection + + Feature: function(f) { + return d3_geo_pathType(centroidTypes, f.geometry); + }, + + Polygon: function(o) { + var centroid = polygonCentroid(o.coordinates); + return [centroid[0] / centroid[2], centroid[1] / centroid[2]]; + }, + + MultiPolygon: function(o) { + var area = 0, + coordinates = o.coordinates, + centroid, + x = 0, + y = 0, + z = 0, + i = -1, // coordinates index + n = coordinates.length; + while (++i < n) { + centroid = polygonCentroid(coordinates[i]); + x += centroid[0]; + y += centroid[1]; + z += centroid[2]; + } + return [x / z, y / z]; + } + + }; + + + function area(coordinates) { + return Math.abs(d3.geom.polygon(coordinates.map(projection)).area()); + } + + path.projection = function(x) { + projection = x; + return path; + }; + + path.area = function(d) { + return d3_geo_pathType(areaTypes, d); + }; + + path.centroid = function(d) { + return d3_geo_pathType(centroidTypes, d); + }; + + path.pointRadius = function(x) { + if (typeof x === "function") pointRadius = x; + else { + pointRadius = +x; + pointCircle = d3_path_circle(pointRadius); + } + return path; + }; + + return path; +}; + +function d3_path_circle(radius) { + return "m0," + radius + + "a" + radius + "," + radius + " 0 1,1 0," + (-2 * radius) + + "a" + radius + "," + radius + " 0 1,1 0," + (+2 * radius) + + "z"; +} + +function d3_geo_pathZero() { + return 0; +} + +function d3_geo_pathType(types, o) { + return o && o.type in types ? types[o.type](o) : ""; +} +/** + * Given a GeoJSON object, returns the corresponding bounding box. The bounding + * box is represented by a two-dimensional array: [[left, bottom], [right, + * top]], where left is the minimum longitude, bottom is the minimum latitude, + * right is maximum longitude, and top is the maximum latitude. + */ +d3.geo.bounds = function(feature) { + var left = Infinity, + bottom = Infinity, + right = -Infinity, + top = -Infinity; + d3_geo_bounds(feature, function(x, y) { + if (x < left) left = x; + if (x > right) right = x; + if (y < bottom) bottom = y; + if (y > top) top = y; + }); + return [[left, bottom], [right, top]]; +}; + +function d3_geo_bounds(o, f) { + if (o.type in d3_geo_boundsTypes) d3_geo_boundsTypes[o.type](o, f); +} + +var d3_geo_boundsTypes = { + Feature: d3_geo_boundsFeature, + FeatureCollection: d3_geo_boundsFeatureCollection, + LineString: d3_geo_boundsLineString, + MultiLineString: d3_geo_boundsMultiLineString, + MultiPoint: d3_geo_boundsLineString, + MultiPolygon: d3_geo_boundsMultiPolygon, + Point: d3_geo_boundsPoint, + Polygon: d3_geo_boundsPolygon +}; + +function d3_geo_boundsFeature(o, f) { + d3_geo_bounds(o.geometry, f); +} + +function d3_geo_boundsFeatureCollection(o, f) { + for (var a = o.features, i = 0, n = a.length; i < n; i++) { + d3_geo_bounds(a[i].geometry, f); + } +} + +function d3_geo_boundsLineString(o, f) { + for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) { + f.apply(null, a[i]); + } +} + +function d3_geo_boundsMultiLineString(o, f) { + for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) { + for (var b = a[i], j = 0, m = b.length; j < m; j++) { + f.apply(null, b[j]); + } + } +} + +function d3_geo_boundsMultiPolygon(o, f) { + for (var a = o.coordinates, i = 0, n = a.length; i < n; i++) { + for (var b = a[i][0], j = 0, m = b.length; j < m; j++) { + f.apply(null, b[j]); + } + } +} + +function d3_geo_boundsPoint(o, f) { + f.apply(null, o.coordinates); +} + +function d3_geo_boundsPolygon(o, f) { + for (var a = o.coordinates[0], i = 0, n = a.length; i < n; i++) { + f.apply(null, a[i]); + } +} +// From http://williams.best.vwh.net/avform.htm#Intermediate +d3.geo.greatCircle = function() { + var source = d3_geo_greatCircleSource, + target = d3_geo_greatCircleTarget, + n = 100, + radius = 6371; // Mean radius of Earth, in km. + // TODO: breakAtDateLine? + + function greatCircle(d, i) { + var from = source.call(this, d, i), + to = target.call(this, d, i), + x0 = from[0] * d3_radians, + y0 = from[1] * d3_radians, + x1 = to[0] * d3_radians, + y1 = to[1] * d3_radians, + cx0 = Math.cos(x0), sx0 = Math.sin(x0), + cy0 = Math.cos(y0), sy0 = Math.sin(y0), + cx1 = Math.cos(x1), sx1 = Math.sin(x1), + cy1 = Math.cos(y1), sy1 = Math.sin(y1), + d = Math.acos(sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)), + sd = Math.sin(d), + f = d / (n - 1), + e = -f, + path = [], + i = -1; + + while (++i < n) { + e += f; + var A = Math.sin(d - e) / sd, + B = Math.sin(e) / sd, + x = A * cy0 * cx0 + B * cy1 * cx1, + y = A * cy0 * sx0 + B * cy1 * sx1, + z = A * sy0 + B * sy1; + path[i] = [ + Math.atan2(y, x) / d3_radians, + Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_radians + ]; + } + + return path; + } + + greatCircle.source = function(x) { + if (!arguments.length) return source; + source = x; + return greatCircle; + }; + + greatCircle.target = function(x) { + if (!arguments.length) return target; + target = x; + return greatCircle; + }; + + greatCircle.n = function(x) { + if (!arguments.length) return n; + n = +x; + return greatCircle; + }; + + greatCircle.radius = function(x) { + if (!arguments.length) return radius; + radius = +x; + return greatCircle; + }; + + // Haversine formula for great-circle distance. + greatCircle.distance = function(d, i) { + var from = source.call(this, d, i), + to = target.call(this, d, i), + x0 = from[0] * d3_radians, + y0 = from[1] * d3_radians, + x1 = to[0] * d3_radians, + y1 = to[1] * d3_radians, + sy = Math.sin((y1 - y0) / 2), + sx = Math.sin((x1 - x0) / 2), + a = sy * sy + Math.cos(y0) * Math.cos(y1) * sx * sx; + + return radius * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + }; + + return greatCircle; +}; + +function d3_geo_greatCircleSource(d) { + return d.source; +} + +function d3_geo_greatCircleTarget(d) { + return d.target; +} +})(); diff --git a/talk/20110921/d3/d3.geo.min.js b/talk/20110921/d3/d3.geo.min.js new file mode 100755 index 0000000000000..bac951a0e4f57 --- /dev/null +++ b/talk/20110921/d3/d3.geo.min.js @@ -0,0 +1 @@ +(function(){function o(a){return a.target}function n(a){return a.source}function m(a,b){for(var c=a.coordinates[0],d=0,e=c.length;d50?b:f<-140?c:g<21?d:a)(e)}var a=d3.geo.albers(),b=d3.geo.albers().origin([-160,60]).parallels([55,65]),c=d3.geo.albers().origin([-160,20]).parallels([8,18]),d=d3.geo.albers().origin([-60,10]).parallels([8,18]);e.scale=function(f){if(!arguments.length)return a.scale();a.scale(f),b.scale(f*.6),c.scale(f),d.scale(f*1.5);return e.translate(a.translate())},e.translate=function(f){if(!arguments.length)return a.translate();var g=a.scale()/1e3,h=f[0],i=f[1];a.translate(f),b.translate([h-400*g,i+170*g]),c.translate([h-190*g,i+200*g]),d.translate([h+580*g,i+430*g]);return e};return e.scale(a.scale())};var a=Math.PI/180;d3.geo.equirectangular=function(){function c(c){var d=c[0]/360,e=-c[1]/360;return[a*d+b[0],a*e+b[1]]}var a=500,b=[480,250];c.invert=function(c){var d=(c[0]-b[0])/a,e=(c[1]-b[1])/a;return[360*d,-360*e]},c.scale=function(b){if(!arguments.length)return a;a=+b;return c},c.translate=function(a){if(!arguments.length)return b;b=[+a[0],+a[1]];return c};return c},d3.geo.mercator=function(){function d(d){var e=d[0]/360,f=-(Math.log(Math.tan(Math.PI/4+d[1]*a/2))/a)/360;return[b*e+c[0],b*Math.max(-0.5,Math.min(.5,f))+c[1]]}var b=500,c=[480,250];d.invert=function(d){var e=(d[0]-c[0])/b,f=(d[1]-c[1])/b;return[360*e,2*Math.atan(Math.exp(-360*f*a))/a-90]},d.scale=function(a){if(!arguments.length)return b;b=+a;return d},d.translate=function(a){if(!arguments.length)return c;c=[+a[0],+a[1]];return d};return d},d3.geo.path=function(){function n(a){return Math.abs(d3.geom.polygon(a.map(f)).area())}function l(a){var b=d3.geom.polygon(a[0].map(f)),c=b.centroid(1),d=c[0],e=c[1],g=Math.abs(b.area()),h=0,i=a.length;while(++hd&&(d=a),ef&&(f=e)});return[[b,c],[d,f]]};var f={Feature:g,FeatureCollection:h,LineString:i,MultiLineString:j,MultiPoint:i,MultiPolygon:k,Point:l,Polygon:m};d3.geo.greatCircle=function(){function f(e,f){var g=b.call(this,e,f),h=c.call(this,e,f),i=g[0]*a,j=g[1]*a,k=h[0]*a,l=h[1]*a,m=Math.cos(i),n=Math.sin(i),o=Math.cos(j),p=Math.sin(j),q=Math.cos(k),r=Math.sin(k),s=Math.cos(l),t=Math.sin(l),e=Math.acos(p*t+o*s*Math.cos(k-i)),u=Math.sin(e),v=e/(d-1),w=-v,x=[],f=-1;while(++fmarching + * squares algorithm. Returns the contour polygon as an array of points. + * + * @param grid a two-input function(x, y) that returns true for values + * inside the contour and false for values outside the contour. + * @param start an optional starting point [x, y] on the grid. + * @returns polygon [[x1, y1], [x2, y2], …] + */ +d3.geom.contour = function(grid, start) { + var s = start || d3_geom_contourStart(grid), // starting point + c = [], // contour polygon + x = s[0], // current x position + y = s[1], // current y position + dx = 0, // next x direction + dy = 0, // next y direction + pdx = NaN, // previous x direction + pdy = NaN, // previous y direction + i = 0; + + do { + // determine marching squares index + i = 0; + if (grid(x-1, y-1)) i += 1; + if (grid(x, y-1)) i += 2; + if (grid(x-1, y )) i += 4; + if (grid(x, y )) i += 8; + + // determine next direction + if (i === 6) { + dx = pdy === -1 ? -1 : 1; + dy = 0; + } else if (i === 9) { + dx = 0; + dy = pdx === 1 ? -1 : 1; + } else { + dx = d3_geom_contourDx[i]; + dy = d3_geom_contourDy[i]; + } + + // update contour polygon + if (dx != pdx && dy != pdy) { + c.push([x, y]); + pdx = dx; + pdy = dy; + } + + x += dx; + y += dy; + } while (s[0] != x || s[1] != y); + + return c; +}; + +// lookup tables for marching directions +var d3_geom_contourDx = [1, 0, 1, 1,-1, 0,-1, 1,0, 0,0,0,-1, 0,-1,NaN], + d3_geom_contourDy = [0,-1, 0, 0, 0,-1, 0, 0,1,-1,1,1, 0,-1, 0,NaN]; + +function d3_geom_contourStart(grid) { + var x = 0, + y = 0; + + // search for a starting point; begin at origin + // and proceed along outward-expanding diagonals + while (true) { + if (grid(x,y)) { + return [x,y]; + } + if (x === 0) { + x = y + 1; + y = 0; + } else { + x = x - 1; + y = y + 1; + } + } +} +/** + * Computes the 2D convex hull of a set of points using Graham's scanning + * algorithm. The algorithm has been implemented as described in Cormen, + * Leiserson, and Rivest's Introduction to Algorithms. The running time of + * this algorithm is O(n log n), where n is the number of input points. + * + * @param vertices [[x1, y1], [x2, y2], …] + * @returns polygon [[x1, y1], [x2, y2], …] + */ +d3.geom.hull = function(vertices) { + if (vertices.length < 3) return []; + + var len = vertices.length, + plen = len - 1, + points = [], + stack = [], + i, j, h = 0, x1, y1, x2, y2, u, v, a, sp; + + // find the starting ref point: leftmost point with the minimum y coord + for (i=1; i= (x2*x2 + y2*y2)) { + points[i].index = -1; + } else { + points[u].index = -1; + a = points[i].angle; + u = i; + v = j; + } + } else { + a = points[i].angle; + u = i; + v = j; + } + } + + // initialize the stack + stack.push(h); + for (i=0, j=0; i<2; ++j) { + if (points[j].index !== -1) { + stack.push(points[j].index); + i++; + } + } + sp = stack.length; + + // do graham's scan + for (; j 0; +} +// Note: requires coordinates to be counterclockwise and convex! +d3.geom.polygon = function(coordinates) { + + coordinates.area = function() { + var i = 0, + n = coordinates.length, + a = coordinates[n - 1][0] * coordinates[0][1], + b = coordinates[n - 1][1] * coordinates[0][0]; + while (++i < n) { + a += coordinates[i - 1][0] * coordinates[i][1]; + b += coordinates[i - 1][1] * coordinates[i][0]; + } + return (b - a) * .5; + }; + + coordinates.centroid = function(k) { + var i = -1, + n = coordinates.length - 1, + x = 0, + y = 0, + a, + b, + c; + if (!arguments.length) k = 1 / (6 * coordinates.area()); + while (++i < n) { + a = coordinates[i]; + b = coordinates[i + 1]; + c = a[0] * b[1] - b[0] * a[1]; + x += (a[0] + b[0]) * c; + y += (a[1] + b[1]) * c; + } + return [x * k, y * k]; + }; + + // The Sutherland-Hodgman clipping algorithm. + coordinates.clip = function(subject) { + var input, + i = -1, + n = coordinates.length, + j, + m, + a = coordinates[n - 1], + b, + c, + d; + while (++i < n) { + input = subject.slice(); + subject.length = 0; + b = coordinates[i]; + c = input[(m = input.length) - 1]; + j = -1; + while (++j < m) { + d = input[j]; + if (d3_geom_polygonInside(d, a, b)) { + if (!d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + subject.push(d); + } else if (d3_geom_polygonInside(c, a, b)) { + subject.push(d3_geom_polygonIntersect(c, d, a, b)); + } + c = d; + } + a = b; + } + return subject; + }; + + return coordinates; +}; + +function d3_geom_polygonInside(p, a, b) { + return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]); +} + +// Intersect two infinite lines cd and ab. +function d3_geom_polygonIntersect(c, d, a, b) { + var x1 = c[0], x2 = d[0], x3 = a[0], x4 = b[0], + y1 = c[1], y2 = d[1], y3 = a[1], y4 = b[1], + x13 = x1 - x3, + x21 = x2 - x1, + x43 = x4 - x3, + y13 = y1 - y3, + y21 = y2 - y1, + y43 = y4 - y3, + ua = (x43 * y13 - y43 * x13) / (y43 * x21 - x43 * y21); + return [x1 + ua * x21, y1 + ua * y21]; +} +// Adapted from Nicolas Garcia Belmonte's JIT implementation: +// http://blog.thejit.org/2010/02/12/voronoi-tessellation/ +// http://blog.thejit.org/assets/voronoijs/voronoi.js +// See lib/jit/LICENSE for details. + +/** + * @param vertices [[x1, y1], [x2, y2], …] + * @returns polygons [[[x1, y1], [x2, y2], …], …] + */ +d3.geom.voronoi = function(vertices) { + var polygons = vertices.map(function() { return []; }); + + // Note: we expect the caller to clip the polygons, if needed. + d3_voronoi_tessellate(vertices, function(e) { + var s1, + s2, + x1, + x2, + y1, + y2; + if (e.a === 1 && e.b >= 0) { + s1 = e.ep.r; + s2 = e.ep.l; + } else { + s1 = e.ep.l; + s2 = e.ep.r; + } + if (e.a === 1) { + y1 = s1 ? s1.y : -1e6; + x1 = e.c - e.b * y1; + y2 = s2 ? s2.y : 1e6; + x2 = e.c - e.b * y2; + } else { + x1 = s1 ? s1.x : -1e6; + y1 = e.c - e.a * x1; + x2 = s2 ? s2.x : 1e6; + y2 = e.c - e.a * x2; + } + var v1 = [x1, y1], + v2 = [x2, y2]; + polygons[e.region.l.index].push(v1, v2); + polygons[e.region.r.index].push(v1, v2); + }); + + // Reconnect the polygon segments into counterclockwise loops. + return polygons.map(function(polygon, i) { + var cx = vertices[i][0], + cy = vertices[i][1]; + polygon.forEach(function(v) { + v.angle = Math.atan2(v[0] - cx, v[1] - cy); + }); + return polygon.sort(function(a, b) { + return a.angle - b.angle; + }).filter(function(d, i) { + return !i || (d.angle - polygon[i - 1].angle > 1e-10); + }); + }); +}; + +var d3_voronoi_opposite = {"l": "r", "r": "l"}; + +function d3_voronoi_tessellate(vertices, callback) { + + var Sites = { + list: vertices + .map(function(v, i) { + return { + index: i, + x: v[0], + y: v[1] + }; + }) + .sort(function(a, b) { + return a.y < b.y ? -1 + : a.y > b.y ? 1 + : a.x < b.x ? -1 + : a.x > b.x ? 1 + : 0; + }), + bottomSite: null + }; + + var EdgeList = { + list: [], + leftEnd: null, + rightEnd: null, + + init: function() { + EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l"); + EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l"); + EdgeList.leftEnd.r = EdgeList.rightEnd; + EdgeList.rightEnd.l = EdgeList.leftEnd; + EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd); + }, + + createHalfEdge: function(edge, side) { + return { + edge: edge, + side: side, + vertex: null, + "l": null, + "r": null + }; + }, + + insert: function(lb, he) { + he.l = lb; + he.r = lb.r; + lb.r.l = he; + lb.r = he; + }, + + leftBound: function(p) { + var he = EdgeList.leftEnd; + do { + he = he.r; + } while (he != EdgeList.rightEnd && Geom.rightOf(he, p)); + he = he.l; + return he; + }, + + del: function(he) { + he.l.r = he.r; + he.r.l = he.l; + he.edge = null; + }, + + right: function(he) { + return he.r; + }, + + left: function(he) { + return he.l; + }, + + leftRegion: function(he) { + return he.edge == null + ? Sites.bottomSite + : he.edge.region[he.side]; + }, + + rightRegion: function(he) { + return he.edge == null + ? Sites.bottomSite + : he.edge.region[d3_voronoi_opposite[he.side]]; + } + }; + + var Geom = { + + bisect: function(s1, s2) { + var newEdge = { + region: {"l": s1, "r": s2}, + ep: {"l": null, "r": null} + }; + + var dx = s2.x - s1.x, + dy = s2.y - s1.y, + adx = dx > 0 ? dx : -dx, + ady = dy > 0 ? dy : -dy; + + newEdge.c = s1.x * dx + s1.y * dy + + (dx * dx + dy * dy) * .5; + + if (adx > ady) { + newEdge.a = 1; + newEdge.b = dy / dx; + newEdge.c /= dx; + } else { + newEdge.b = 1; + newEdge.a = dx / dy; + newEdge.c /= dy; + } + + return newEdge; + }, + + intersect: function(el1, el2) { + var e1 = el1.edge, + e2 = el2.edge; + if (!e1 || !e2 || (e1.region.r == e2.region.r)) { + return null; + } + var d = (e1.a * e2.b) - (e1.b * e2.a); + if (Math.abs(d) < 1e-10) { + return null; + } + var xint = (e1.c * e2.b - e2.c * e1.b) / d, + yint = (e2.c * e1.a - e1.c * e2.a) / d, + e1r = e1.region.r, + e2r = e2.region.r, + el, + e; + if ((e1r.y < e2r.y) || + (e1r.y == e2r.y && e1r.x < e2r.x)) { + el = el1; + e = e1; + } else { + el = el2; + e = e2; + } + var rightOfSite = (xint >= e.region.r.x); + if ((rightOfSite && (el.side === "l")) || + (!rightOfSite && (el.side === "r"))) { + return null; + } + return { + x: xint, + y: yint + }; + }, + + rightOf: function(he, p) { + var e = he.edge, + topsite = e.region.r, + rightOfSite = (p.x > topsite.x); + + if (rightOfSite && (he.side === "l")) { + return 1; + } + if (!rightOfSite && (he.side === "r")) { + return 0; + } + if (e.a === 1) { + var dyp = p.y - topsite.y, + dxp = p.x - topsite.x, + fast = 0, + above = 0; + + if ((!rightOfSite && (e.b < 0)) || + (rightOfSite && (e.b >= 0))) { + above = fast = (dyp >= e.b * dxp); + } else { + above = ((p.x + p.y * e.b) > e.c); + if (e.b < 0) { + above = !above; + } + if (!above) { + fast = 1; + } + } + if (!fast) { + var dxs = topsite.x - e.region.l.x; + above = (e.b * (dxp * dxp - dyp * dyp)) < + (dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b)); + + if (e.b < 0) { + above = !above; + } + } + } else /* e.b == 1 */ { + var yl = e.c - e.a * p.x, + t1 = p.y - yl, + t2 = p.x - topsite.x, + t3 = yl - topsite.y; + + above = (t1 * t1) > (t2 * t2 + t3 * t3); + } + return he.side === "l" ? above : !above; + }, + + endPoint: function(edge, side, site) { + edge.ep[side] = site; + if (!edge.ep[d3_voronoi_opposite[side]]) return; + callback(edge); + }, + + distance: function(s, t) { + var dx = s.x - t.x, + dy = s.y - t.y; + return Math.sqrt(dx * dx + dy * dy); + } + }; + + var EventQueue = { + list: [], + + insert: function(he, site, offset) { + he.vertex = site; + he.ystar = site.y + offset; + for (var i=0, list=EventQueue.list, l=list.length; i next.ystar || + (he.ystar == next.ystar && + site.x > next.vertex.x)) { + continue; + } else { + break; + } + } + list.splice(i, 0, he); + }, + + del: function(he) { + for (var i=0, ls=EventQueue.list, l=ls.length; i top.y) { + temp = bot; + bot = top; + top = temp; + pm = "r"; + } + e = Geom.bisect(bot, top); + bisector = EdgeList.createHalfEdge(e, pm); + EdgeList.insert(llbnd, bisector); + Geom.endPoint(e, d3_voronoi_opposite[pm], v); + p = Geom.intersect(llbnd, bisector); + if (p) { + EventQueue.del(llbnd); + EventQueue.insert(llbnd, p, Geom.distance(p, bot)); + } + p = Geom.intersect(bisector, rrbnd); + if (p) { + EventQueue.insert(bisector, p, Geom.distance(p, bot)); + } + } else { + break; + } + }//end while + + for (lbnd = EdgeList.right(EdgeList.leftEnd); + lbnd != EdgeList.rightEnd; + lbnd = EdgeList.right(lbnd)) { + callback(lbnd.edge); + } +} +/** +* @param vertices [[x1, y1], [x2, y2], …] +* @returns triangles [[[x1, y1], [x2, y2], [x3, y3]], …] + */ +d3.geom.delaunay = function(vertices) { + var edges = vertices.map(function() { return []; }), + triangles = []; + + // Use the Voronoi tessellation to determine Delaunay edges. + d3_voronoi_tessellate(vertices, function(e) { + edges[e.region.l.index].push(vertices[e.region.r.index]); + }); + + // Reconnect the edges into counterclockwise triangles. + edges.forEach(function(edge, i) { + var v = vertices[i], + cx = v[0], + cy = v[1]; + edge.forEach(function(v) { + v.angle = Math.atan2(v[0] - cx, v[1] - cy); + }); + edge.sort(function(a, b) { + return a.angle - b.angle; + }); + for (var j = 0, m = edge.length - 1; j < m; j++) { + triangles.push([v, edge[j], edge[j + 1]]); + } + }); + + return triangles; +}; +// Constructs a new quadtree for the specified array of points. A quadtree is a +// two-dimensional recursive spatial subdivision. This implementation uses +// square partitions, dividing each square into four equally-sized squares. Each +// point exists in a unique node; if multiple points are in the same position, +// some points may be stored on internal nodes rather than leaf nodes. Quadtrees +// can be used to accelerate various spatial operations, such as the Barnes-Hut +// approximation for computing n-body forces, or collision detection. +d3.geom.quadtree = function(points, x1, y1, x2, y2) { + var p, + i = -1, + n = points.length; + + // Type conversion for deprecated API. + if (n && isNaN(points[0].x)) points = points.map(d3_geom_quadtreePoint); + + // Allow bounds to be specified explicitly. + if (arguments.length < 5) { + if (arguments.length === 3) { + y2 = x2 = y1; + y1 = x1; + } else { + x1 = y1 = Infinity; + x2 = y2 = -Infinity; + + // Compute bounds. + while (++i < n) { + p = points[i]; + if (p.x < x1) x1 = p.x; + if (p.y < y1) y1 = p.y; + if (p.x > x2) x2 = p.x; + if (p.y > y2) y2 = p.y; + } + + // Squarify the bounds. + var dx = x2 - x1, + dy = y2 - y1; + if (dx > dy) y2 = y1 + dx; + else x2 = x1 + dy; + } + } + + // Recursively inserts the specified point p at the node n or one of its + // descendants. The bounds are defined by [x1, x2] and [y1, y2]. + function insert(n, p, x1, y1, x2, y2) { + if (isNaN(p.x) || isNaN(p.y)) return; // ignore invalid points + if (n.leaf) { + var v = n.point; + if (v) { + // If the point at this leaf node is at the same position as the new + // point we are adding, we leave the point associated with the + // internal node while adding the new point to a child node. This + // avoids infinite recursion. + if ((Math.abs(v.x - p.x) + Math.abs(v.y - p.y)) < .01) { + insertChild(n, p, x1, y1, x2, y2); + } else { + n.point = null; + insertChild(n, v, x1, y1, x2, y2); + insertChild(n, p, x1, y1, x2, y2); + } + } else { + n.point = p; + } + } else { + insertChild(n, p, x1, y1, x2, y2); + } + } + + // Recursively inserts the specified point p into a descendant of node n. The + // bounds are defined by [x1, x2] and [y1, y2]. + function insertChild(n, p, x1, y1, x2, y2) { + // Compute the split point, and the quadrant in which to insert p. + var sx = (x1 + x2) * .5, + sy = (y1 + y2) * .5, + right = p.x >= sx, + bottom = p.y >= sy, + i = (bottom << 1) + right; + + // Recursively insert into the child node. + n.leaf = false; + n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode()); + + // Update the bounds as we recurse. + if (right) x1 = sx; else x2 = sx; + if (bottom) y1 = sy; else y2 = sy; + insert(n, p, x1, y1, x2, y2); + } + + // Create the root node. + var root = d3_geom_quadtreeNode(); + + root.add = function(p) { + insert(root, p, x1, y1, x2, y2); + }; + + root.visit = function(f) { + d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2); + }; + + // Insert all points. + points.forEach(root.add); + return root; +}; + +function d3_geom_quadtreeNode() { + return { + leaf: true, + nodes: [], + point: null + }; +} + +function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) { + if (!f(node, x1, y1, x2, y2)) { + var sx = (x1 + x2) * .5, + sy = (y1 + y2) * .5, + children = node.nodes; + if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy); + if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy); + if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2); + if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2); + } +} + +function d3_geom_quadtreePoint(p) { + return { + x: p[0], + y: p[1] + }; +} +})(); diff --git a/talk/20110921/d3/d3.geom.min.js b/talk/20110921/d3/d3.geom.min.js new file mode 100755 index 0000000000000..bbe2a7e12bf54 --- /dev/null +++ b/talk/20110921/d3/d3.geom.min.js @@ -0,0 +1 @@ +(function(){function k(a){return{x:a[0],y:a[1]}}function j(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var g=(c+e)*.5,h=(d+f)*.5,i=b.nodes;i[0]&&j(a,i[0],c,d,g,h),i[1]&&j(a,i[1],g,d,e,h),i[2]&&j(a,i[2],c,h,g,f),i[3]&&j(a,i[3],g,h,e,f)}}function i(){return{leaf:!0,nodes:[],point:null}}function h(a,b){var c={list:a.map(function(a,b){return{index:b,x:a[0],y:a[1]}}).sort(function(a,b){return a.yb.y?1:a.xb.x?1:0}),bottomSite:null},d={list:[],leftEnd:null,rightEnd:null,init:function(){d.leftEnd=d.createHalfEdge(null,"l"),d.rightEnd=d.createHalfEdge(null,"l"),d.leftEnd.r=d.rightEnd,d.rightEnd.l=d.leftEnd,d.list.unshift(d.leftEnd,d.rightEnd)},createHalfEdge:function(a,b){return{edge:a,side:b,vertex:null,l:null,r:null}},insert:function(a,b){b.l=a,b.r=a.r,a.r.l=b,a.r=b},leftBound:function(a){var b=d.leftEnd;do b=b.r;while(b!=d.rightEnd&&e.rightOf(b,a));b=b.l;return b},del:function(a){a.l.r=a.r,a.r.l=a.l,a.edge=null},right:function(a){return a.r},left:function(a){return a.l},leftRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[a.side]},rightRegion:function(a){return a.edge==null?c.bottomSite:a.edge.region[g[a.side]]}},e={bisect:function(a,b){var c={region:{l:a,r:b},ep:{l:null,r:null}},d=b.x-a.x,e=b.y-a.y,f=d>0?d:-d,g=e>0?e:-e;c.c=a.x*d+a.y*e+(d*d+e*e)*.5,f>g?(c.a=1,c.b=e/d,c.c/=d):(c.b=1,c.a=d/e,c.c/=e);return c},intersect:function(a,b){var c=a.edge,d=b.edge;if(!c||!d||c.region.r==d.region.r)return null;var e=c.a*d.b-c.b*d.a;if(Math.abs(e)<1e-10)return null;var f=(c.c*d.b-d.c*c.b)/e,g=(d.c*c.a-c.c*d.a)/e,h=c.region.r,i=d.region.r,j,k;h.y=k.region.r.x;return l&&j.side==="l"||!l&&j.side==="r"?null:{x:f,y:g}},rightOf:function(a,b){var c=a.edge,d=c.region.r,e=b.x>d.x;if(e&&a.side==="l")return 1;if(!e&&a.side==="r")return 0;if(c.a===1){var f=b.y-d.y,g=b.x-d.x,h=0,i=0;!e&&c.b<0||e&&c.b>=0?i=h=f>=c.b*g:(i=b.x+b.y*c.b>c.c,c.b<0&&(i=!i),i||(h=1));if(!h){var j=d.x-c.region.l.x;i=c.b*(g*g-f*f)m*m+n*n}return a.side==="l"?i:!i},endPoint:function(a,c,d){a.ep[c]=d;!a.ep[g[c]]||b(a)},distance:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}},f={list:[],insert:function(a,b,c){a.vertex=b,a.ystar=b.y+c;for(var d=0,e=f.list,g=e.length;dh.ystar||a.ystar==h.ystar&&b.x>h.vertex.x)continue;break}e.splice(d,0,a)},del:function(a){for(var b=0,c=f.list,d=c.length;bp.y&&(q=o,o=p,p=q,u="r"),t=e.bisect(o,p),n=d.createHalfEdge(t,u),d.insert(l,n),e.endPoint(t,g[u],s),r=e.intersect(l,n),r&&(f.del(l),f.insert(l,r,e.distance(r,o))),r=e.intersect(n,m),r&&f.insert(n,r,e.distance(r,o));else break}for(j=d.right(d.leftEnd);j!=d.rightEnd;j=d.right(j))b(j.edge)}function f(a,b,c,d){var e=a[0],f=b[0],g=c[0],h=d[0],i=a[1],j=b[1],k=c[1],l=d[1],m=e-g,n=f-e,o=h-g,p=i-k,q=j-i,r=l-k,s=(o*p-r*m)/(r*n-o*q);return[e+s*n,i+s*q]}function e(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function d(a,b,c,d){var e,f,g,h,i,j,k;e=d[a],f=e[0],g=e[1],e=d[b],h=e[0],i=e[1],e=d[c],j=e[0],k=e[1];return(k-g)*(h-f)-(i-g)*(j-f)>0}function c(a){var b=0,c=0;for(;;){if(a(b,c))return[b,c];b===0?(b=c+1,c=0):(b=b-1,c=c+1)}}d3.geom={},d3.geom.contour=function(d,e){var f=e||c(d),g=[],h=f[0],i=f[1],j=0,k=0,l=NaN,m=NaN,n=0;do n=0,d(h-1,i-1)&&(n+=1),d(h,i-1)&&(n+=2),d(h-1,i)&&(n+=4),d(h,i)&&(n+=8),n===6?(j=m===-1?-1:1,k=0):n===9?(j=0,k=l===1?-1:1):(j=a[n],k=b[n]),j!=l&&k!=m&&(g.push([h,i]),l=j,m=k),h+=j,i+=k;while(f[0]!=h||f[1]!=i);return g};var a=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],b=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(a){if(a.length<3)return[];var b=a.length,c=b-1,e=[],f=[],g,h,i=0,j,k,l,m,n,o,p,q;for(g=1;g=l*l+m*m?e[g].index=-1:(e[n].index=-1,p=e[g].angle,n=g,o=h)):(p=e[g].angle,n=g,o=h);f.push(i);for(g=0,h=0;g<2;++h)e[h].index!==-1&&(f.push(e[h].index),g++);q=f.length;for(;h=0?(c=a.ep.r,d=a.ep.l):(c=a.ep.l,d=a.ep.r),a.a===1?(g=c?c.y:-1e6,e=a.c-a.b*g,h=d?d.y:1e6,f=a.c-a.b*h):(e=c?c.x:-1e6,g=a.c-a.a*e,f=d?d.x:1e6,h=a.c-a.a*f);var i=[e,g],j=[f,h];b[a.region.l.index].push(i,j),b[a.region.r.index].push(i,j)});return b.map(function(b,c){var d=a[c][0],e=a[c][1];b.forEach(function(a){a.angle=Math.atan2(a[0]-d,a[1]-e)});return b.sort(function(a,b){return a.angle-b.angle}).filter(function(a,c){return!c||a.angle-b[c-1].angle>1e-10})})};var g={l:"r",r:"l"};d3.geom.delaunay=function(a){var b=a.map(function(){return[]}),c=[];h(a,function(c){b[c.region.l.index].push(a[c.region.r.index])}),b.forEach(function(b,d){var e=a[d],f=e[0],g=e[1];b.forEach(function(a){a.angle=Math.atan2(a[0]-f,a[1]-g)}),b.sort(function(a,b){return a.angle-b.angle});for(var h=0,i=b.length-1;h=g,k=b.y>=h,l=(k<<1)+j;a.leaf=!1,a=a.nodes[l]||(a.nodes[l]=i()),j?c=g:e=g,k?d=h:f=h,n(a,b,c,d,e,f)}function n(a,b,c,d,e,f){if(!isNaN(b.x)&&!isNaN(b.y))if(a.leaf){var g=a.point;g?Math.abs(g.x-b.x)+Math.abs(g.y-b.y)<.01?o(a,b,c,d,e,f):(a.point=null,o(a,g,c,d,e,f),o(a,b,c,d,e,f)):a.point=b}else o(a,b,c,d,e,f)}var f,g=-1,h=a.length;h&&isNaN(a[0].x)&&(a=a.map(k));if(arguments.length<5)if(arguments.length===3)e=d=c,c=b;else{b=c=Infinity,d=e=-Infinity;while(++gd&&(d=f.x),f.y>e&&(e=f.y);var l=d-b,m=e-c;l>m?e=c+l:d=b+m}var p=i();p.add=function(a){n(p,a,b,c,d,e)},p.visit=function(a){j(a,p,b,c,d,e)},a.forEach(p.add);return p}})() \ No newline at end of file diff --git a/talk/20110921/d3/d3.js b/talk/20110921/d3/d3.js new file mode 100755 index 0000000000000..cb224b7032394 --- /dev/null +++ b/talk/20110921/d3/d3.js @@ -0,0 +1,4009 @@ +(function(){if (!Date.now) Date.now = function() { + return +new Date; +}; +try { + document.createElement("div").style.setProperty("opacity", 0, ""); +} catch (error) { + var d3_style_prototype = CSSStyleDeclaration.prototype, + d3_style_setProperty = d3_style_prototype.setProperty; + d3_style_prototype.setProperty = function(name, value, priority) { + d3_style_setProperty.call(this, name, value + "", priority); + }; +} +d3 = {version: "2.2.0"}; // semver +var d3_arraySubclass = [].__proto__? + +// Until ECMAScript supports array subclassing, prototype injection works well. +function(array, prototype) { + array.__proto__ = prototype; +}: + +// And if your browser doesn't support __proto__, we'll use direct extension. +function(array, prototype) { + for (var property in prototype) array[property] = prototype[property]; +}; +function d3_this() { + return this; +} +d3.functor = function(v) { + return typeof v === "function" ? v : function() { return v; }; +}; +// A getter-setter method that preserves the appropriate `this` context. +d3.rebind = function(object, method) { + return function() { + var x = method.apply(object, arguments); + return arguments.length ? object : x; + }; +}; +d3.ascending = function(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +}; +d3.descending = function(a, b) { + return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +}; +d3.min = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && a > b) a = b; + } else { + while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b; + } + return a; +}; +d3.max = function(array, f) { + var i = -1, + n = array.length, + a, + b; + if (arguments.length === 1) { + while (++i < n && ((a = array[i]) == null || a != a)) a = undefined; + while (++i < n) if ((b = array[i]) != null && b > a) a = b; + } else { + while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined; + while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b; + } + return a; +}; +d3.sum = function(array, f) { + var s = 0, + n = array.length, + a, + i = -1; + + if (arguments.length === 1) { + while (++i < n) if (!isNaN(a = +array[i])) s += a; + } else { + while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a; + } + + return s; +}; +// R-7 per +d3.quantile = function(values, p) { + var H = (values.length - 1) * p + 1, + h = Math.floor(H), + v = values[h - 1], + e = H - h; + return e ? v + e * (values[h] - v) : v; +}; +d3.zip = function() { + if (!(n = arguments.length)) return []; + for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m;) { + for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n;) { + zip[j] = arguments[j][i]; + } + } + return zips; +}; + +function d3_zipLength(d) { + return d.length; +} +// Locate the insertion point for x in a to maintain sorted order. The +// arguments lo and hi may be used to specify a subset of the array which should +// be considered; by default the entire array is used. If x is already present +// in a, the insertion point will be before (to the left of) any existing +// entries. The return value is suitable for use as the first argument to +// `array.splice` assuming that a is already sorted. +// +// The returned insertion point i partitions the array a into two halves so that +// all v < x for v in a[lo:i] for the left side and all v >= x for v in a[i:hi] +// for the right side. +d3.bisectLeft = function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >> 1; + if (a[mid] < x) lo = mid + 1; + else hi = mid; + } + return lo; +}; + +// Similar to bisectLeft, but returns an insertion point which comes after (to +// the right of) any existing entries of x in a. +// +// The returned insertion point i partitions the array into two halves so that +// all v <= x for v in a[lo:i] for the left side and all v > x for v in a[i:hi] +// for the right side. +d3.bisect = +d3.bisectRight = function(a, x, lo, hi) { + if (arguments.length < 3) lo = 0; + if (arguments.length < 4) hi = a.length; + while (lo < hi) { + var mid = (lo + hi) >> 1; + if (x < a[mid]) hi = mid; + else lo = mid + 1; + } + return lo; +}; +d3.first = function(array, f) { + var i = 0, + n = array.length, + a = array[0], + b; + if (arguments.length === 1) f = d3.ascending; + while (++i < n) { + if (f.call(array, a, b = array[i]) > 0) { + a = b; + } + } + return a; +}; +d3.last = function(array, f) { + var i = 0, + n = array.length, + a = array[0], + b; + if (arguments.length === 1) f = d3.ascending; + while (++i < n) { + if (f.call(array, a, b = array[i]) <= 0) { + a = b; + } + } + return a; +}; +d3.nest = function() { + var nest = {}, + keys = [], + sortKeys = [], + sortValues, + rollup; + + function map(array, depth) { + if (depth >= keys.length) return rollup + ? rollup.call(nest, array) : (sortValues + ? array.sort(sortValues) + : array); + + var i = -1, + n = array.length, + key = keys[depth++], + keyValue, + object, + o = {}; + + while (++i < n) { + if ((keyValue = key(object = array[i])) in o) { + o[keyValue].push(object); + } else { + o[keyValue] = [object]; + } + } + + for (keyValue in o) { + o[keyValue] = map(o[keyValue], depth); + } + + return o; + } + + function entries(map, depth) { + if (depth >= keys.length) return map; + + var a = [], + sortKey = sortKeys[depth++], + key; + + for (key in map) { + a.push({key: key, values: entries(map[key], depth)}); + } + + if (sortKey) a.sort(function(a, b) { + return sortKey(a.key, b.key); + }); + + return a; + } + + nest.map = function(array) { + return map(array, 0); + }; + + nest.entries = function(array) { + return entries(map(array, 0), 0); + }; + + nest.key = function(d) { + keys.push(d); + return nest; + }; + + // Specifies the order for the most-recently specified key. + // Note: only applies to entries. Map keys are unordered! + nest.sortKeys = function(order) { + sortKeys[keys.length - 1] = order; + return nest; + }; + + // Specifies the order for leaf values. + // Applies to both maps and entries array. + nest.sortValues = function(order) { + sortValues = order; + return nest; + }; + + nest.rollup = function(f) { + rollup = f; + return nest; + }; + + return nest; +}; +d3.keys = function(map) { + var keys = []; + for (var key in map) keys.push(key); + return keys; +}; +d3.values = function(map) { + var values = []; + for (var key in map) values.push(map[key]); + return values; +}; +d3.entries = function(map) { + var entries = []; + for (var key in map) entries.push({key: key, value: map[key]}); + return entries; +}; +d3.permute = function(array, indexes) { + var permutes = [], + i = -1, + n = indexes.length; + while (++i < n) permutes[i] = array[indexes[i]]; + return permutes; +}; +d3.merge = function(arrays) { + return Array.prototype.concat.apply([], arrays); +}; +d3.split = function(array, f) { + var arrays = [], + values = [], + value, + i = -1, + n = array.length; + if (arguments.length < 2) f = d3_splitter; + while (++i < n) { + if (f.call(values, value = array[i], i)) { + values = []; + } else { + if (!values.length) arrays.push(values); + values.push(value); + } + } + return arrays; +}; + +function d3_splitter(d) { + return d == null; +} +function d3_collapse(s) { + return s.replace(/(^\s+)|(\s+$)/g, "").replace(/\s+/g, " "); +} +/** + * @param {number} start + * @param {number=} stop + * @param {number=} step + */ +d3.range = function(start, stop, step) { + if (arguments.length < 3) { + step = 1; + if (arguments.length < 2) { + stop = start; + start = 0; + } + } + if ((stop - start) / step == Infinity) throw new Error("infinite range"); + var range = [], + i = -1, + j; + if (step < 0) while ((j = start + step * ++i) > stop) range.push(j); + else while ((j = start + step * ++i) < stop) range.push(j); + return range; +}; +d3.requote = function(s) { + return s.replace(d3_requote_re, "\\$&"); +}; + +var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; +d3.round = function(x, n) { + return n + ? Math.round(x * Math.pow(10, n)) * Math.pow(10, -n) + : Math.round(x); +}; +d3.xhr = function(url, mime, callback) { + var req = new XMLHttpRequest; + if (arguments.length < 3) callback = mime; + else if (mime && req.overrideMimeType) req.overrideMimeType(mime); + req.open("GET", url, true); + req.onreadystatechange = function() { + if (req.readyState === 4) callback(req.status < 300 ? req : null); + }; + req.send(null); +}; +d3.text = function(url, mime, callback) { + function ready(req) { + callback(req && req.responseText); + } + if (arguments.length < 3) { + callback = mime; + mime = null; + } + d3.xhr(url, mime, ready); +}; +d3.json = function(url, callback) { + d3.text(url, "application/json", function(text) { + callback(text ? JSON.parse(text) : null); + }); +}; +d3.html = function(url, callback) { + d3.text(url, "text/html", function(text) { + if (text != null) { // Treat empty string as valid HTML. + var range = document.createRange(); + range.selectNode(document.body); + text = range.createContextualFragment(text); + } + callback(text); + }); +}; +d3.xml = function(url, mime, callback) { + function ready(req) { + callback(req && req.responseXML); + } + if (arguments.length < 3) { + callback = mime; + mime = null; + } + d3.xhr(url, mime, ready); +}; +d3.ns = { + + prefix: { + svg: "http://www.w3.org/2000/svg", + xhtml: "http://www.w3.org/1999/xhtml", + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }, + + qualify: function(name) { + var i = name.indexOf(":"); + return i < 0 ? name : { + space: d3.ns.prefix[name.substring(0, i)], + local: name.substring(i + 1) + }; + } + +}; +/** @param {...string} types */ +d3.dispatch = function(types) { + var dispatch = {}, + type; + for (var i = 0, n = arguments.length; i < n; i++) { + type = arguments[i]; + dispatch[type] = d3_dispatch(type); + } + return dispatch; +}; + +function d3_dispatch(type) { + var dispatch = {}, + listeners = []; + + dispatch.add = function(listener) { + for (var i = 0; i < listeners.length; i++) { + if (listeners[i].listener == listener) return dispatch; // already registered + } + listeners.push({listener: listener, on: true}); + return dispatch; + }; + + dispatch.remove = function(listener) { + for (var i = 0; i < listeners.length; i++) { + var l = listeners[i]; + if (l.listener == listener) { + l.on = false; + listeners = listeners.slice(0, i).concat(listeners.slice(i + 1)); + break; + } + } + return dispatch; + }; + + dispatch.dispatch = function() { + var ls = listeners; // defensive reference + for (var i = 0, n = ls.length; i < n; i++) { + var l = ls[i]; + if (l.on) l.listener.apply(this, arguments); + } + }; + + return dispatch; +}; +// TODO align +d3.format = function(specifier) { + var match = d3_format_re.exec(specifier), + fill = match[1] || " ", + sign = match[3] || "", + zfill = match[5], + width = +match[6], + comma = match[7], + precision = match[8], + type = match[9], + percentage = false, + integer = false; + + if (precision) precision = precision.substring(1); + + if (zfill) { + fill = "0"; // TODO align = "="; + if (comma) width -= Math.floor((width - 1) / 4); + } + + switch (type) { + case "n": comma = true; type = "g"; break; + case "%": percentage = true; type = "f"; break; + case "p": percentage = true; type = "r"; break; + case "d": integer = true; precision = "0"; break; + } + + type = d3_format_types[type] || d3_format_typeDefault; + + return function(value) { + var number = percentage ? value * 100 : +value, + negative = (number < 0) && (number = -number) ? "\u2212" : sign; + + // Return the empty string for floats formatted as ints. + if (integer && (number % 1)) return ""; + + // Convert the input value to the desired precision. + value = type(number, precision); + + // If the fill character is 0, the sign and group is applied after the fill. + if (zfill) { + var length = value.length + negative.length; + if (length < width) value = new Array(width - length + 1).join(fill) + value; + if (comma) value = d3_format_group(value); + value = negative + value; + } + + // Otherwise (e.g., space-filling), the sign and group is applied before. + else { + if (comma) value = d3_format_group(value); + value = negative + value; + var length = value.length; + if (length < width) value = new Array(width - length + 1).join(fill) + value; + } + if (percentage) value += "%"; + + return value; + }; +}; + +// [[fill]align][sign][#][0][width][,][.precision][type] +var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/; + +var d3_format_types = { + g: function(x, p) { return x.toPrecision(p); }, + e: function(x, p) { return x.toExponential(p); }, + f: function(x, p) { return x.toFixed(p); }, + r: function(x, p) { + var n = 1 + Math.floor(1e-15 + Math.log(x) / Math.LN10); + return d3.round(x, p - n).toFixed(Math.max(0, Math.min(20, p - n))); + } +}; + +function d3_format_typeDefault(x) { + return x + ""; +} + +// Apply comma grouping for thousands. +function d3_format_group(value) { + var i = value.lastIndexOf("."), + f = i >= 0 ? value.substring(i) : (i = value.length, ""), + t = []; + while (i > 0) t.push(value.substring(i -= 3, i + 3)); + return t.reverse().join(",") + f; +} +/* + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * - Neither the name of the author nor the names of contributors may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +var d3_ease_quad = d3_ease_poly(2), + d3_ease_cubic = d3_ease_poly(3); + +var d3_ease = { + linear: function() { return d3_ease_linear; }, + poly: d3_ease_poly, + quad: function() { return d3_ease_quad; }, + cubic: function() { return d3_ease_cubic; }, + sin: function() { return d3_ease_sin; }, + exp: function() { return d3_ease_exp; }, + circle: function() { return d3_ease_circle; }, + elastic: d3_ease_elastic, + back: d3_ease_back, + bounce: function() { return d3_ease_bounce; } +}; + +var d3_ease_mode = { + "in": function(f) { return f; }, + "out": d3_ease_reverse, + "in-out": d3_ease_reflect, + "out-in": function(f) { return d3_ease_reflect(d3_ease_reverse(f)); } +}; + +d3.ease = function(name) { + var i = name.indexOf("-"), + t = i >= 0 ? name.substring(0, i) : name, + m = i >= 0 ? name.substring(i + 1) : "in"; + return d3_ease_clamp(d3_ease_mode[m](d3_ease[t].apply(null, Array.prototype.slice.call(arguments, 1)))); +}; + +function d3_ease_clamp(f) { + return function(t) { + return t <= 0 ? 0 : t >= 1 ? 1 : f(t); + }; +} + +function d3_ease_reverse(f) { + return function(t) { + return 1 - f(1 - t); + }; +} + +function d3_ease_reflect(f) { + return function(t) { + return .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t))); + }; +} + +function d3_ease_linear(t) { + return t; +} + +function d3_ease_poly(e) { + return function(t) { + return Math.pow(t, e); + } +} + +function d3_ease_sin(t) { + return 1 - Math.cos(t * Math.PI / 2); +} + +function d3_ease_exp(t) { + return Math.pow(2, 10 * (t - 1)); +} + +function d3_ease_circle(t) { + return 1 - Math.sqrt(1 - t * t); +} + +function d3_ease_elastic(a, p) { + var s; + if (arguments.length < 2) p = 0.45; + if (arguments.length < 1) { a = 1; s = p / 4; } + else s = p / (2 * Math.PI) * Math.asin(1 / a); + return function(t) { + return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p); + }; +} + +function d3_ease_back(s) { + if (!s) s = 1.70158; + return function(t) { + return t * t * ((s + 1) * t - s); + }; +} + +function d3_ease_bounce(t) { + return t < 1 / 2.75 ? 7.5625 * t * t + : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 + : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 + : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; +} +d3.event = null; +d3.interpolate = function(a, b) { + var i = d3.interpolators.length, f; + while (--i >= 0 && !(f = d3.interpolators[i](a, b))); + return f; +}; + +d3.interpolateNumber = function(a, b) { + b -= a; + return function(t) { return a + b * t; }; +}; + +d3.interpolateRound = function(a, b) { + b -= a; + return function(t) { return Math.round(a + b * t); }; +}; + +d3.interpolateString = function(a, b) { + var m, // current match + i, // current index + j, // current index (for coallescing) + s0 = 0, // start index of current string prefix + s1 = 0, // end index of current string prefix + s = [], // string constants and placeholders + q = [], // number interpolators + n, // q.length + o; + + // Reset our regular expression! + d3_interpolate_number.lastIndex = 0; + + // Find all numbers in b. + for (i = 0; m = d3_interpolate_number.exec(b); ++i) { + if (m.index) s.push(b.substring(s0, s1 = m.index)); + q.push({i: s.length, x: m[0]}); + s.push(null); + s0 = d3_interpolate_number.lastIndex; + } + if (s0 < b.length) s.push(b.substring(s0)); + + // Find all numbers in a. + for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) { + o = q[i]; + if (o.x == m[0]) { // The numbers match, so coallesce. + if (o.i) { + if (s[o.i + 1] == null) { // This match is followed by another number. + s[o.i - 1] += o.x; + s.splice(o.i, 1); + for (j = i + 1; j < n; ++j) q[j].i--; + } else { // This match is followed by a string, so coallesce twice. + s[o.i - 1] += o.x + s[o.i + 1]; + s.splice(o.i, 2); + for (j = i + 1; j < n; ++j) q[j].i -= 2; + } + } else { + if (s[o.i + 1] == null) { // This match is followed by another number. + s[o.i] = o.x; + } else { // This match is followed by a string, so coallesce twice. + s[o.i] = o.x + s[o.i + 1]; + s.splice(o.i + 1, 1); + for (j = i + 1; j < n; ++j) q[j].i--; + } + } + q.splice(i, 1); + n--; + i--; + } else { + o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x)); + } + } + + // Remove any numbers in b not found in a. + while (i < n) { + o = q.pop(); + if (s[o.i + 1] == null) { // This match is followed by another number. + s[o.i] = o.x; + } else { // This match is followed by a string, so coallesce twice. + s[o.i] = o.x + s[o.i + 1]; + s.splice(o.i + 1, 1); + } + n--; + } + + // Special optimization for only a single match. + if (s.length === 1) { + return s[0] == null ? q[0].x : function() { return b; }; + } + + // Otherwise, interpolate each of the numbers and rejoin the string. + return function(t) { + for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; +}; + +d3.interpolateRgb = function(a, b) { + a = d3.rgb(a); + b = d3.rgb(b); + var ar = a.r, + ag = a.g, + ab = a.b, + br = b.r - ar, + bg = b.g - ag, + bb = b.b - ab; + return function(t) { + return "rgb(" + Math.round(ar + br * t) + + "," + Math.round(ag + bg * t) + + "," + Math.round(ab + bb * t) + + ")"; + }; +}; + +// interpolates HSL space, but outputs RGB string (for compatibility) +d3.interpolateHsl = function(a, b) { + a = d3.hsl(a); + b = d3.hsl(b); + var h0 = a.h, + s0 = a.s, + l0 = a.l, + h1 = b.h - h0, + s1 = b.s - s0, + l1 = b.l - l0; + return function(t) { + return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t).toString(); + }; +}; + +d3.interpolateArray = function(a, b) { + var x = [], + c = [], + na = a.length, + nb = b.length, + n0 = Math.min(a.length, b.length), + i; + for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i])); + for (; i < na; ++i) c[i] = a[i]; + for (; i < nb; ++i) c[i] = b[i]; + return function(t) { + for (i = 0; i < n0; ++i) c[i] = x[i](t); + return c; + }; +}; + +d3.interpolateObject = function(a, b) { + var i = {}, + c = {}, + k; + for (k in a) { + if (k in b) { + i[k] = d3_interpolateByName(k)(a[k], b[k]); + } else { + c[k] = a[k]; + } + } + for (k in b) { + if (!(k in a)) { + c[k] = b[k]; + } + } + return function(t) { + for (k in i) c[k] = i[k](t); + return c; + }; +} + +var d3_interpolate_number = /[-+]?(?:\d+\.\d+|\d+\.|\.\d+|\d+)(?:[eE][-]?\d+)?/g, + d3_interpolate_rgb = {background: 1, fill: 1, stroke: 1}; + +function d3_interpolateByName(n) { + return n in d3_interpolate_rgb || /\bcolor\b/.test(n) + ? d3.interpolateRgb + : d3.interpolate; +} + +d3.interpolators = [ + d3.interpolateObject, + function(a, b) { return (b instanceof Array) && d3.interpolateArray(a, b); }, + function(a, b) { return (typeof b === "string") && d3.interpolateString(String(a), b); }, + function(a, b) { return (typeof b === "string" ? b in d3_rgb_names || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Rgb || b instanceof d3_Hsl) && d3.interpolateRgb(String(a), b); }, + function(a, b) { return (typeof b === "number") && d3.interpolateNumber(+a, b); } +]; +function d3_uninterpolateNumber(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { return (x - a) * b; }; +} + +function d3_uninterpolateClamp(a, b) { + b = b - (a = +a) ? 1 / (b - a) : 0; + return function(x) { return Math.max(0, Math.min(1, (x - a) * b)); }; +} +d3.rgb = function(r, g, b) { + return arguments.length === 1 + ? d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) + : d3_rgb(~~r, ~~g, ~~b); +}; + +function d3_rgb(r, g, b) { + return new d3_Rgb(r, g, b); +} + +function d3_Rgb(r, g, b) { + this.r = r; + this.g = g; + this.b = b; +} + +d3_Rgb.prototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + var r = this.r, + g = this.g, + b = this.b, + i = 30; + if (!r && !g && !b) return d3_rgb(i, i, i); + if (r && r < i) r = i; + if (g && g < i) g = i; + if (b && b < i) b = i; + return d3_rgb( + Math.min(255, Math.floor(r / k)), + Math.min(255, Math.floor(g / k)), + Math.min(255, Math.floor(b / k))); +}; + +d3_Rgb.prototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return d3_rgb( + Math.max(0, Math.floor(k * this.r)), + Math.max(0, Math.floor(k * this.g)), + Math.max(0, Math.floor(k * this.b))); +}; + +d3_Rgb.prototype.hsl = function() { + return d3_rgb_hsl(this.r, this.g, this.b); +}; + +d3_Rgb.prototype.toString = function() { + return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b); +}; + +function d3_rgb_hex(v) { + return v < 0x10 ? "0" + v.toString(16) : v.toString(16); +} + +function d3_rgb_parse(format, rgb, hsl) { + var r = 0, // red channel; int in [0, 255] + g = 0, // green channel; int in [0, 255] + b = 0, // blue channel; int in [0, 255] + m1, // CSS color specification match + m2, // CSS color specification type (e.g., rgb) + name; + + /* Handle hsl, rgb. */ + m1 = /([a-z]+)\((.*)\)/i.exec(format); + if (m1) { + m2 = m1[2].split(","); + switch (m1[1]) { + case "hsl": { + return hsl( + parseFloat(m2[0]), // degrees + parseFloat(m2[1]) / 100, // percentage + parseFloat(m2[2]) / 100 // percentage + ); + } + case "rgb": { + return rgb( + d3_rgb_parseNumber(m2[0]), + d3_rgb_parseNumber(m2[1]), + d3_rgb_parseNumber(m2[2]) + ); + } + } + } + + /* Named colors. */ + if (name = d3_rgb_names[format]) return rgb(name.r, name.g, name.b); + + /* Hexadecimal colors: #rgb and #rrggbb. */ + if (format != null && format.charAt(0) === "#") { + if (format.length === 4) { + r = format.charAt(1); r += r; + g = format.charAt(2); g += g; + b = format.charAt(3); b += b; + } else if (format.length === 7) { + r = format.substring(1, 3); + g = format.substring(3, 5); + b = format.substring(5, 7); + } + r = parseInt(r, 16); + g = parseInt(g, 16); + b = parseInt(b, 16); + } + + return rgb(r, g, b); +} + +function d3_rgb_hsl(r, g, b) { + var min = Math.min(r /= 255, g /= 255, b /= 255), + max = Math.max(r, g, b), + d = max - min, + h, + s, + l = (max + min) / 2; + if (d) { + s = l < .5 ? d / (max + min) : d / (2 - max - min); + if (r == max) h = (g - b) / d + (g < b ? 6 : 0); + else if (g == max) h = (b - r) / d + 2; + else h = (r - g) / d + 4; + h *= 60; + } else { + s = h = 0; + } + return d3_hsl(h, s, l); +} + +function d3_rgb_parseNumber(c) { // either integer or percentage + var f = parseFloat(c); + return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f; +} + +var d3_rgb_names = { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" +}; + +for (var d3_rgb_name in d3_rgb_names) { + d3_rgb_names[d3_rgb_name] = d3_rgb_parse( + d3_rgb_names[d3_rgb_name], + d3_rgb, + d3_hsl_rgb); +} +d3.hsl = function(h, s, l) { + return arguments.length === 1 + ? d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) + : d3_hsl(+h, +s, +l); +}; + +function d3_hsl(h, s, l) { + return new d3_Hsl(h, s, l); +} + +function d3_Hsl(h, s, l) { + this.h = h; + this.s = s; + this.l = l; +} + +d3_Hsl.prototype.brighter = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return d3_hsl(this.h, this.s, this.l / k); +}; + +d3_Hsl.prototype.darker = function(k) { + k = Math.pow(0.7, arguments.length ? k : 1); + return d3_hsl(this.h, this.s, k * this.l); +}; + +d3_Hsl.prototype.rgb = function() { + return d3_hsl_rgb(this.h, this.s, this.l); +}; + +d3_Hsl.prototype.toString = function() { + return "hsl(" + this.h + "," + this.s * 100 + "%," + this.l * 100 + "%)"; +}; + +function d3_hsl_rgb(h, s, l) { + var m1, + m2; + + /* Some simple corrections for h, s and l. */ + h = h % 360; if (h < 0) h += 360; + s = s < 0 ? 0 : s > 1 ? 1 : s; + l = l < 0 ? 0 : l > 1 ? 1 : l; + + /* From FvD 13.37, CSS Color Module Level 3 */ + m2 = l <= .5 ? l * (1 + s) : l + s - l * s; + m1 = 2 * l - m2; + + function v(h) { + if (h > 360) h -= 360; + else if (h < 0) h += 360; + if (h < 60) return m1 + (m2 - m1) * h / 60; + if (h < 180) return m2; + if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60; + return m1; + } + + function vv(h) { + return Math.round(v(h) * 255); + } + + return d3_rgb(vv(h + 120), vv(h), vv(h - 120)); +} +function d3_selection(groups) { + d3_arraySubclass(groups, d3_selectionPrototype); + return groups; +} + +var d3_select = function(s, n) { return n.querySelector(s); }, + d3_selectAll = function(s, n) { return n.querySelectorAll(s); }; + +// Prefer Sizzle, if available. +if (typeof Sizzle === "function") { + d3_select = function(s, n) { return Sizzle(s, n)[0]; }; + d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); }; +} + +var d3_selectionPrototype = []; + +d3.selection = function() { + return d3_selectionRoot; +}; + +d3.selection.prototype = d3_selectionPrototype; +d3_selectionPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + group, + node; + + if (typeof selector !== "function") selector = d3_selection_selector(selector); + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroup.push(subnode = selector.call(node, node.__data__, i)); + if (subnode && "__data__" in node) subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_selector(selector) { + return function() { + return d3_select(selector, this); + }; +} +d3_selectionPrototype.selectAll = function(selector) { + var subgroups = [], + subgroup, + node; + + if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); + + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroups.push(subgroup = selector.call(node, node.__data__, i)); + subgroup.parentNode = node; + } + } + } + + return d3_selection(subgroups); +}; + +function d3_selection_selectorAll(selector) { + return function() { + return d3_selectAll(selector, this); + }; +} +d3_selectionPrototype.attr = function(name, value) { + name = d3.ns.qualify(name); + + // If no value is specified, return the first value. + if (arguments.length < 2) { + var node = this.node(); + return name.local + ? node.getAttributeNS(name.space, name.local) + : node.getAttribute(name); + } + + function attrNull() { + this.removeAttribute(name); + } + + function attrNullNS() { + this.removeAttributeNS(name.space, name.local); + } + + function attrConstant() { + this.setAttribute(name, value); + } + + function attrConstantNS() { + this.setAttributeNS(name.space, name.local, value); + } + + function attrFunction() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttribute(name); + else this.setAttribute(name, x); + } + + function attrFunctionNS() { + var x = value.apply(this, arguments); + if (x == null) this.removeAttributeNS(name.space, name.local); + else this.setAttributeNS(name.space, name.local, x); + } + + return this.each(value == null + ? (name.local ? attrNullNS : attrNull) : (typeof value === "function" + ? (name.local ? attrFunctionNS : attrFunction) + : (name.local ? attrConstantNS : attrConstant))); +}; +d3_selectionPrototype.classed = function(name, value) { + var re = new RegExp("(^|\\s+)" + d3.requote(name) + "(\\s+|$)", "g"); + + // If no value is specified, return the first value. + if (arguments.length < 2) { + var node = this.node(); + if (c = node.classList) return c.contains(name); + var c = node.className; + re.lastIndex = 0; + return re.test(c.baseVal != null ? c.baseVal : c); + } + + function classedAdd() { + if (c = this.classList) return c.add(name); + var c = this.className, + cb = c.baseVal != null, + cv = cb ? c.baseVal : c; + re.lastIndex = 0; + if (!re.test(cv)) { + cv = d3_collapse(cv + " " + name); + if (cb) c.baseVal = cv; + else this.className = cv; + } + } + + function classedRemove() { + if (c = this.classList) return c.remove(name); + var c = this.className, + cb = c.baseVal != null, + cv = cb ? c.baseVal : c; + cv = d3_collapse(cv.replace(re, " ")); + if (cb) c.baseVal = cv; + else this.className = cv; + } + + function classedFunction() { + (value.apply(this, arguments) + ? classedAdd + : classedRemove).call(this); + } + + return this.each(typeof value === "function" + ? classedFunction : value + ? classedAdd + : classedRemove); +}; +d3_selectionPrototype.style = function(name, value, priority) { + if (arguments.length < 3) priority = ""; + + // If no value is specified, return the first value. + if (arguments.length < 2) return window + .getComputedStyle(this.node(), null) + .getPropertyValue(name); + + function styleNull() { + this.style.removeProperty(name); + } + + function styleConstant() { + this.style.setProperty(name, value, priority); + } + + function styleFunction() { + var x = value.apply(this, arguments); + if (x == null) this.style.removeProperty(name); + else this.style.setProperty(name, x, priority); + } + + return this.each(value == null + ? styleNull : (typeof value === "function" + ? styleFunction : styleConstant)); +}; +d3_selectionPrototype.property = function(name, value) { + + // If no value is specified, return the first value. + if (arguments.length < 2) return this.node()[name]; + + function propertyNull() { + delete this[name]; + } + + function propertyConstant() { + this[name] = value; + } + + function propertyFunction() { + var x = value.apply(this, arguments); + if (x == null) delete this[name]; + else this[name] = x; + } + + return this.each(value == null + ? propertyNull : (typeof value === "function" + ? propertyFunction : propertyConstant)); +}; +d3_selectionPrototype.text = function(value) { + return arguments.length < 1 ? this.node().textContent + : (this.each(typeof value === "function" + ? function() { this.textContent = value.apply(this, arguments); } + : function() { this.textContent = value; })); +}; +d3_selectionPrototype.html = function(value) { + return arguments.length < 1 ? this.node().innerHTML + : (this.each(typeof value === "function" + ? function() { this.innerHTML = value.apply(this, arguments); } + : function() { this.innerHTML = value; })); +}; +// TODO append(node)? +// TODO append(function)? +d3_selectionPrototype.append = function(name) { + name = d3.ns.qualify(name); + + function append() { + return this.appendChild(document.createElement(name)); + } + + function appendNS() { + return this.appendChild(document.createElementNS(name.space, name.local)); + } + + return this.select(name.local ? appendNS : append); +}; +// TODO insert(node, function)? +// TODO insert(function, string)? +// TODO insert(function, function)? +d3_selectionPrototype.insert = function(name, before) { + name = d3.ns.qualify(name); + + function insert() { + return this.insertBefore( + document.createElement(name), + d3_select(before, this)); + } + + function insertNS() { + return this.insertBefore( + document.createElementNS(name.space, name.local), + d3_select(before, this)); + } + + return this.select(name.local ? insertNS : insert); +}; +// TODO remove(selector)? +// TODO remove(node)? +// TODO remove(function)? +d3_selectionPrototype.remove = function() { + return this.each(function() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + }); +}; +// TODO data(null) for clearing data? +d3_selectionPrototype.data = function(data, join) { + var enter = [], + update = [], + exit = []; + + function bind(group, groupData) { + var i, + n = group.length, + m = groupData.length, + n0 = Math.min(n, m), + n1 = Math.max(n, m), + updateNodes = [], + enterNodes = [], + exitNodes = [], + node, + nodeData; + + if (join) { + var nodeByKey = {}, + keys = [], + key, + j = groupData.length; + + for (i = -1; ++i < n;) { + key = join.call(node = group[i], node.__data__, i); + if (key in nodeByKey) { + exitNodes[j++] = node; // duplicate key + } else { + nodeByKey[key] = node; + } + keys.push(key); + } + + for (i = -1; ++i < m;) { + node = nodeByKey[key = join.call(groupData, nodeData = groupData[i], i)]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + enterNodes[i] = exitNodes[i] = null; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + updateNodes[i] = exitNodes[i] = null; + } + delete nodeByKey[key]; + } + + for (i = -1; ++i < n;) { + if (keys[i] in nodeByKey) { + exitNodes[i] = group[i]; + } + } + } else { + for (i = -1; ++i < n0;) { + node = group[i]; + nodeData = groupData[i]; + if (node) { + node.__data__ = nodeData; + updateNodes[i] = node; + enterNodes[i] = exitNodes[i] = null; + } else { + enterNodes[i] = d3_selection_dataNode(nodeData); + updateNodes[i] = exitNodes[i] = null; + } + } + for (; i < m; ++i) { + enterNodes[i] = d3_selection_dataNode(groupData[i]); + updateNodes[i] = exitNodes[i] = null; + } + for (; i < n1; ++i) { + exitNodes[i] = group[i]; + enterNodes[i] = updateNodes[i] = null; + } + } + + enterNodes.update + = updateNodes; + + enterNodes.parentNode + = updateNodes.parentNode + = exitNodes.parentNode + = group.parentNode; + + enter.push(enterNodes); + update.push(updateNodes); + exit.push(exitNodes); + } + + var i = -1, + n = this.length, + group; + if (typeof data === "function") { + while (++i < n) { + bind(group = this[i], data.call(group, group.parentNode.__data__, i)); + } + } else { + while (++i < n) { + bind(group = this[i], data); + } + } + + var selection = d3_selection(update); + selection.enter = function() { return d3_selection_enter(enter); }; + selection.exit = function() { return d3_selection(exit); }; + return selection; +}; + +function d3_selection_dataNode(data) { + return {__data__: data}; +} +function d3_selection_enter(selection) { + d3_arraySubclass(selection, d3_selection_enterPrototype); + return selection; +} + +var d3_selection_enterPrototype = []; + +d3_selection_enterPrototype.append = d3_selectionPrototype.append; +d3_selection_enterPrototype.insert = d3_selectionPrototype.insert; +d3_selection_enterPrototype.empty = d3_selectionPrototype.empty; +d3_selection_enterPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + upgroup, + group, + node; + + for (var j = -1, m = this.length; ++j < m;) { + upgroup = (group = this[j]).update; + subgroups.push(subgroup = []); + subgroup.parentNode = group.parentNode; + for (var i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i)); + subnode.__data__ = node.__data__; + } else { + subgroup.push(null); + } + } + } + + return d3_selection(subgroups); +}; +// TODO preserve null elements to maintain index? +d3_selectionPrototype.filter = function(filter) { + var subgroups = [], + subgroup, + group, + node; + + for (var j = 0, m = this.length; j < m; j++) { + subgroups.push(subgroup = []); + subgroup.parentNode = (group = this[j]).parentNode; + for (var i = 0, n = group.length; i < n; i++) { + if ((node = group[i]) && filter.call(node, node.__data__, i)) { + subgroup.push(node); + } + } + } + + return d3_selection(subgroups); +}; +d3_selectionPrototype.map = function(map) { + return this.each(function() { + this.__data__ = map.apply(this, arguments); + }); +}; +d3_selectionPrototype.sort = function(comparator) { + comparator = d3_selection_sortComparator.apply(this, arguments); + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j].sort(comparator), i = 1, n = group.length, prev = group[0]; i < n; i++) { + var node = group[i]; + if (node) { + if (prev) prev.parentNode.insertBefore(node, prev.nextSibling); + prev = node; + } + } + } + return this; +}; + +function d3_selection_sortComparator(comparator) { + if (!arguments.length) comparator = d3.ascending; + return function(a, b) { + return comparator(a && a.__data__, b && b.__data__); + }; +} +// type can be namespaced, e.g., "click.foo" +// listener can be null for removal +d3_selectionPrototype.on = function(type, listener, capture) { + if (arguments.length < 3) capture = false; + + // parse the type specifier + var name = "__on" + type, i = type.indexOf("."); + if (i > 0) type = type.substring(0, i); + + // if called with only one argument, return the current listener + if (arguments.length < 2) return (i = this.node()[name]) && i._; + + // remove the old event listener, and add the new event listener + return this.each(function(d, i) { + var node = this; + + if (node[name]) node.removeEventListener(type, node[name], capture); + if (listener) node.addEventListener(type, node[name] = l, capture); + + // wrapped event listener that preserves i + function l(e) { + var o = d3.event; // Events can be reentrant (e.g., focus). + d3.event = e; + try { + listener.call(node, node.__data__, i); + } finally { + d3.event = o; + } + } + + // stash the unwrapped listener for retrieval + l._ = listener; + }); +}; +d3_selectionPrototype.each = function(callback) { + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + var node = group[i]; + if (node) callback.call(node, node.__data__, i, j); + } + } + return this; +}; +// +// Note: assigning to the arguments array simultaneously changes the value of +// the corresponding argument! +// +// TODO The `this` argument probably shouldn't be the first argument to the +// callback, anyway, since it's redundant. However, that will require a major +// version bump due to backwards compatibility, so I'm not changing it right +// away. +// +d3_selectionPrototype.call = function(callback) { + callback.apply(this, (arguments[0] = this, arguments)); + return this; +}; +d3_selectionPrototype.empty = function() { + return !this.node(); +}; +d3_selectionPrototype.node = function(callback) { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) return node; + } + } + return null; +}; +d3_selectionPrototype.transition = function() { + var subgroups = [], + subgroup, + node; + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + subgroup.push((node = group[i]) ? {node: node, delay: 0, duration: 250} : null); + } + } + + return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId); +}; +var d3_selectionRoot = d3_selection([[document]]); + +d3_selectionRoot[0].parentNode = document.documentElement; + +// TODO fast singleton implementation! +d3.select = function(selector) { + return typeof selector === "string" + ? d3_selectionRoot.select(selector) + : d3_selection([[selector]]); // assume node +}; + +d3.selectAll = function(selector) { + return typeof selector === "string" + ? d3_selectionRoot.selectAll(selector) + : d3_selection([selector]); // assume node[] +}; +function d3_transition(groups, id) { + d3_arraySubclass(groups, d3_transitionPrototype); + + var tweens = {}, + event = d3.dispatch("start", "end"), + ease = d3_transitionEase, + then = Date.now(); + + groups.id = id; + + groups.tween = function(name, tween) { + if (arguments.length < 2) return tweens[name]; + if (tween == null) delete tweens[name]; + else tweens[name] = tween; + return groups; + }; + + groups.ease = function(value) { + if (!arguments.length) return ease; + ease = typeof value === "function" ? value : d3.ease.apply(d3, arguments); + return groups; + }; + + groups.each = function(type, listener) { + if (arguments.length < 2) return d3_transition_each.call(groups, type); + event[type].add(listener); + return groups; + }; + + d3.timer(function(elapsed) { + groups.each(function(d, i, j) { + var tweened = [], + node = this, + delay = groups[j][i].delay, + duration = groups[j][i].duration, + lock = node.__transition__ || (node.__transition__ = {active: 0, count: 0}); + + ++lock.count; + + delay <= elapsed ? start(elapsed) : d3.timer(start, delay, then); + + function start(elapsed) { + if (lock.active > id) return stop(); + lock.active = id; + + for (var tween in tweens) { + if (tween = tweens[tween].call(node, d, i)) { + tweened.push(tween); + } + } + + event.start.dispatch.call(node, d, i); + if (!tick(elapsed)) d3.timer(tick, 0, then); + return 1; + } + + function tick(elapsed) { + if (lock.active !== id) return stop(); + + var t = (elapsed - delay) / duration, + e = ease(t), + n = tweened.length; + + while (n > 0) { + tweened[--n].call(node, e); + } + + if (t >= 1) { + stop(); + d3_transitionInheritId = id; + event.end.dispatch.call(node, d, i); + d3_transitionInheritId = 0; + return 1; + } + } + + function stop() { + if (!--lock.count) delete node.__transition__; + return 1; + } + }); + return 1; + }, 0, then); + + return groups; +} + +function d3_transitionTween(b) { + return typeof b === "function" + ? function(d, i, a) { var v = b.call(this, d, i) + ""; return a != v && d3.interpolate(a, v); } + : (b = b + "", function(d, i, a) { return a != b && d3.interpolate(a, b); }); +} + +var d3_transitionPrototype = [], + d3_transitionId = 0, + d3_transitionInheritId = 0, + d3_transitionEase = d3.ease("cubic-in-out"); + +d3_transitionPrototype.call = d3_selectionPrototype.call; + +d3.transition = function() { + return d3_selectionRoot.transition(); +}; + +d3.transition.prototype = d3_transitionPrototype; +d3_transitionPrototype.select = function(selector) { + var subgroups = [], + subgroup, + subnode, + node; + + if (typeof selector !== "function") selector = d3_selection_selector(selector); + + for (var j = -1, m = this.length; ++j < m;) { + subgroups.push(subgroup = []); + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) { + if ("__data__" in node.node) subnode.__data__ = node.node.__data__; + subgroup.push({node: subnode, delay: node.delay, duration: node.duration}); + } else { + subgroup.push(null); + } + } + } + + return d3_transition(subgroups, this.id).ease(this.ease()); +}; +d3_transitionPrototype.selectAll = function(selector) { + var subgroups = [], + subgroup, + node; + + if (typeof selector !== "function") selector = d3_selection_selectorAll(selector); + + for (var j = -1, m = this.length; ++j < m;) { + for (var group = this[j], i = -1, n = group.length; ++i < n;) { + if (node = group[i]) { + subgroups.push(subgroup = selector.call(node.node, node.node.__data__, i)); + for (var k = -1, o = subgroup.length; ++k < o;) { + subgroup[k] = {node: subgroup[k], delay: node.delay, duration: node.duration}; + } + } + } + } + + return d3_transition(subgroups, this.id).ease(this.ease()); +}; +d3_transitionPrototype.attr = function(name, value) { + return this.attrTween(name, d3_transitionTween(value)); +}; + +d3_transitionPrototype.attrTween = function(name, tween) { + name = d3.ns.qualify(name); + + function attrTween(d, i) { + var f = tween.call(this, d, i, this.getAttribute(name)); + return f && function(t) { + this.setAttribute(name, f(t)); + }; + } + + function attrTweenNS(d, i) { + var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local)); + return f && function(t) { + this.setAttributeNS(name.space, name.local, f(t)); + }; + } + + return this.tween("attr." + name, name.local ? attrTweenNS : attrTween); +}; +d3_transitionPrototype.style = function(name, value, priority) { + if (arguments.length < 3) priority = ""; + return this.styleTween(name, d3_transitionTween(value), priority); +}; + +d3_transitionPrototype.styleTween = function(name, tween, priority) { + if (arguments.length < 3) priority = ""; + return this.tween("style." + name, function(d, i) { + var f = tween.call(this, d, i, window.getComputedStyle(this, null).getPropertyValue(name)); + return f && function(t) { + this.style.setProperty(name, f(t), priority); + }; + }); +}; +d3_transitionPrototype.text = function(value) { + return this.tween("text", function(d, i) { + this.textContent = typeof value === "function" + ? value.call(this, d, i) + : value; + }); +}; +d3_transitionPrototype.remove = function() { + return this.each("end", function() { + var p; + if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this); + }); +}; +d3_transitionPrototype.delay = function(value) { + var groups = this; + return groups.each(typeof value === "function" + ? function(d, i, j) { groups[j][i].delay = +value.apply(this, arguments); } + : (value = +value, function(d, i, j) { groups[j][i].delay = value; })); +}; +d3_transitionPrototype.duration = function(value) { + var groups = this; + return groups.each(typeof value === "function" + ? function(d, i, j) { groups[j][i].duration = +value.apply(this, arguments); } + : (value = +value, function(d, i, j) { groups[j][i].duration = value; })); +}; +function d3_transition_each(callback) { + for (var j = 0, m = this.length; j < m; j++) { + for (var group = this[j], i = 0, n = group.length; i < n; i++) { + var node = group[i]; + if (node) callback.call(node = node.node, node.__data__, i, j); + } + } + return this; +} +d3_transitionPrototype.transition = function() { + return this.select(d3_this); +}; +var d3_timer_queue = null, + d3_timer_interval, // is an interval (or frame) active? + d3_timer_timeout; // is a timeout active? + +// The timer will continue to fire until callback returns true. +d3.timer = function(callback, delay, then) { + var found = false, + t0, + t1 = d3_timer_queue; + + if (arguments.length < 3) { + if (arguments.length < 2) delay = 0; + else if (!isFinite(delay)) return; + then = Date.now(); + } + + // See if the callback's already in the queue. + while (t1) { + if (t1.callback === callback) { + t1.then = then; + t1.delay = delay; + found = true; + break; + } + t0 = t1; + t1 = t1.next; + } + + // Otherwise, add the callback to the queue. + if (!found) d3_timer_queue = { + callback: callback, + then: then, + delay: delay, + next: d3_timer_queue + }; + + // Start animatin'! + if (!d3_timer_interval) { + d3_timer_timeout = clearTimeout(d3_timer_timeout); + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } +} + +function d3_timer_step() { + var elapsed, + now = Date.now(), + t1 = d3_timer_queue; + + while (t1) { + elapsed = now - t1.then; + if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed); + t1 = t1.next; + } + + var delay = d3_timer_flush() - now; + if (delay > 24) { + if (isFinite(delay)) { + clearTimeout(d3_timer_timeout); + d3_timer_timeout = setTimeout(d3_timer_step, delay); + } + d3_timer_interval = 0; + } else { + d3_timer_interval = 1; + d3_timer_frame(d3_timer_step); + } +} + +d3.timer.flush = function() { + var elapsed, + now = Date.now(), + t1 = d3_timer_queue; + + while (t1) { + elapsed = now - t1.then; + if (!t1.delay) t1.flush = t1.callback(elapsed); + t1 = t1.next; + } + + d3_timer_flush(); +}; + +// Flush after callbacks, to avoid concurrent queue modification. +function d3_timer_flush() { + var t0 = null, + t1 = d3_timer_queue, + then = Infinity; + while (t1) { + if (t1.flush) { + t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next; + } else { + then = Math.min(then, t1.then + t1.delay); + t1 = (t0 = t1).next; + } + } + return then; +} + +var d3_timer_frame = window.requestAnimationFrame + || window.webkitRequestAnimationFrame + || window.mozRequestAnimationFrame + || window.oRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 17); }; +function d3_noop() {} +d3.scale = {}; + +function d3_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; +} +function d3_scale_nice(domain, nice) { + var i0 = 0, + i1 = domain.length - 1, + x0 = domain[i0], + x1 = domain[i1], + dx; + + if (x1 < x0) { + dx = i0; i0 = i1; i1 = dx; + dx = x0; x0 = x1; x1 = dx; + } + + nice = nice(x1 - x0); + domain[i0] = nice.floor(x0); + domain[i1] = nice.ceil(x1); + return domain; +} + +function d3_scale_niceDefault() { + return Math; +} +d3.scale.linear = function() { + return d3_scale_linear([0, 1], [0, 1], d3.interpolate, false); +}; + +function d3_scale_linear(domain, range, interpolate, clamp) { + var output, + input; + + function rescale() { + var linear = domain.length == 2 ? d3_scale_bilinear : d3_scale_polylinear, + uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber; + output = linear(domain, range, uninterpolate, interpolate); + input = linear(range, domain, uninterpolate, d3.interpolate); + return scale; + } + + function scale(x) { + return output(x); + } + + // Note: requires range is coercible to number! + scale.invert = function(y) { + return input(y); + }; + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.map(Number); + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.rangeRound = function(x) { + return scale.range(x).interpolate(d3.interpolateRound); + }; + + scale.clamp = function(x) { + if (!arguments.length) return clamp; + clamp = x; + return rescale(); + }; + + scale.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolate = x; + return rescale(); + }; + + scale.ticks = function(m) { + return d3_scale_linearTicks(domain, m); + }; + + scale.tickFormat = function(m) { + return d3_scale_linearTickFormat(domain, m); + }; + + scale.nice = function() { + d3_scale_nice(domain, d3_scale_linearNice); + return rescale(); + }; + + scale.copy = function() { + return d3_scale_linear(domain, range, interpolate, clamp); + }; + + return rescale(); +}; + +function d3_scale_linearRebind(scale, linear) { + scale.range = d3.rebind(scale, linear.range); + scale.rangeRound = d3.rebind(scale, linear.rangeRound); + scale.interpolate = d3.rebind(scale, linear.interpolate); + scale.clamp = d3.rebind(scale, linear.clamp); + return scale; +} + +function d3_scale_linearNice(dx) { + dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1); + return { + floor: function(x) { return Math.floor(x / dx) * dx; }, + ceil: function(x) { return Math.ceil(x / dx) * dx; } + }; +} + +// TODO Dates? Ugh. +function d3_scale_linearTickRange(domain, m) { + var extent = d3_scaleExtent(domain), + span = extent[1] - extent[0], + step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), + err = m / span * step; + + // Filter ticks to get closer to the desired count. + if (err <= .15) step *= 10; + else if (err <= .35) step *= 5; + else if (err <= .75) step *= 2; + + // Round start and stop values to step interval. + extent[0] = Math.ceil(extent[0] / step) * step; + extent[1] = Math.floor(extent[1] / step) * step + step * .5; // inclusive + extent[2] = step; + return extent; +} + +function d3_scale_linearTicks(domain, m) { + return d3.range.apply(d3, d3_scale_linearTickRange(domain, m)); +} + +function d3_scale_linearTickFormat(domain, m) { + return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f"); +} +function d3_scale_bilinear(domain, range, uninterpolate, interpolate) { + var u = uninterpolate(domain[0], domain[1]), + i = interpolate(range[0], range[1]); + return function(x) { + return i(u(x)); + }; +} +function d3_scale_polylinear(domain, range, uninterpolate, interpolate) { + var u = [], + i = [], + j = 0, + n = domain.length; + + while (++j < n) { + u.push(uninterpolate(domain[j - 1], domain[j])); + i.push(interpolate(range[j - 1], range[j])); + } + + return function(x) { + var j = d3.bisect(domain, x, 1, domain.length - 1) - 1; + return i[j](u[j](x)); + }; +} +d3.scale.log = function() { + return d3_scale_log(d3.scale.linear(), d3_scale_logp); +}; + +function d3_scale_log(linear, log) { + var pow = log.pow; + + function scale(x) { + return linear(log(x)); + } + + scale.invert = function(x) { + return pow(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(pow); + log = x[0] < 0 ? d3_scale_logn : d3_scale_logp; + pow = log.pow; + linear.domain(x.map(log)); + return scale; + }; + + scale.nice = function() { + linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault)); + return scale; + }; + + scale.ticks = function() { + var extent = d3_scaleExtent(linear.domain()), + ticks = []; + if (extent.every(isFinite)) { + var i = Math.floor(extent[0]), + j = Math.ceil(extent[1]), + u = pow(extent[0]), + v = pow(extent[1]); + if (log === d3_scale_logn) { + ticks.push(pow(i)); + for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k); + } else { + for (; i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k); + ticks.push(pow(i)); + } + for (i = 0; ticks[i] < u; i++) {} // strip small values + for (j = ticks.length; ticks[j - 1] > v; j--) {} // strip big values + ticks = ticks.slice(i, j); + } + return ticks; + }; + + scale.tickFormat = function() { + return d3_scale_logTickFormat; + }; + + scale.copy = function() { + return d3_scale_log(linear.copy(), log); + }; + + return d3_scale_linearRebind(scale, linear); +}; + +function d3_scale_logp(x) { + return Math.log(x) / Math.LN10; +} + +function d3_scale_logn(x) { + return -Math.log(-x) / Math.LN10; +} + +d3_scale_logp.pow = function(x) { + return Math.pow(10, x); +}; + +d3_scale_logn.pow = function(x) { + return -Math.pow(10, -x); +}; + +function d3_scale_logTickFormat(d) { + return d.toPrecision(1); +} +d3.scale.pow = function() { + return d3_scale_pow(d3.scale.linear(), 1); +}; + +function d3_scale_pow(linear, exponent) { + var powp = d3_scale_powPow(exponent), + powb = d3_scale_powPow(1 / exponent); + + function scale(x) { + return linear(powp(x)); + } + + scale.invert = function(x) { + return powb(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(powb); + linear.domain(x.map(powp)); + return scale; + }; + + scale.ticks = function(m) { + return d3_scale_linearTicks(scale.domain(), m); + }; + + scale.tickFormat = function(m) { + return d3_scale_linearTickFormat(scale.domain(), m); + }; + + scale.nice = function() { + return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice)); + }; + + scale.exponent = function(x) { + if (!arguments.length) return exponent; + var domain = scale.domain(); + powp = d3_scale_powPow(exponent = x); + powb = d3_scale_powPow(1 / exponent); + return scale.domain(domain); + }; + + scale.copy = function() { + return d3_scale_pow(linear.copy(), exponent); + }; + + return d3_scale_linearRebind(scale, linear); +}; + +function d3_scale_powPow(e) { + return function(x) { + return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e); + }; +} +d3.scale.sqrt = function() { + return d3.scale.pow().exponent(.5); +}; +d3.scale.ordinal = function() { + return d3_scale_ordinal([], {t: "range", x: []}); +}; + +function d3_scale_ordinal(domain, ranger) { + var index, + range, + rangeBand; + + function scale(x) { + return range[((index[x] || (index[x] = domain.push(x))) - 1) % range.length]; + } + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = []; + index = {}; + var i = -1, n = x.length, xi; + while (++i < n) if (!index[xi = x[i]]) index[xi] = domain.push(xi); + return scale[ranger.t](ranger.x, ranger.p); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + rangeBand = 0; + ranger = {t: "range", x: x}; + return scale; + }; + + scale.rangePoints = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = (stop - start) / (domain.length - 1 + padding); + range = domain.length < 2 ? [(start + stop) / 2] : d3.range(start + step * padding / 2, stop + step / 2, step); + rangeBand = 0; + ranger = {t: "rangePoints", x: x, p: padding}; + return scale; + }; + + scale.rangeBands = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = (stop - start) / (domain.length + padding); + range = d3.range(start + step * padding, stop, step); + rangeBand = step * (1 - padding); + ranger = {t: "rangeBands", x: x, p: padding}; + return scale; + }; + + scale.rangeRoundBands = function(x, padding) { + if (arguments.length < 2) padding = 0; + var start = x[0], + stop = x[1], + step = Math.floor((stop - start) / (domain.length + padding)), + err = stop - start - (domain.length - padding) * step; + range = d3.range(start + Math.round(err / 2), stop, step); + rangeBand = Math.round(step * (1 - padding)); + ranger = {t: "rangeRoundBands", x: x, p: padding}; + return scale; + }; + + scale.rangeBand = function() { + return rangeBand; + }; + + scale.copy = function() { + return d3_scale_ordinal(domain, ranger); + }; + + return scale.domain(domain); +}; +/* + * This product includes color specifications and designs developed by Cynthia + * Brewer (http://colorbrewer.org/). See lib/colorbrewer for more information. + */ + +d3.scale.category10 = function() { + return d3.scale.ordinal().range(d3_category10); +}; + +d3.scale.category20 = function() { + return d3.scale.ordinal().range(d3_category20); +}; + +d3.scale.category20b = function() { + return d3.scale.ordinal().range(d3_category20b); +}; + +d3.scale.category20c = function() { + return d3.scale.ordinal().range(d3_category20c); +}; + +var d3_category10 = [ + "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", + "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" +]; + +var d3_category20 = [ + "#1f77b4", "#aec7e8", + "#ff7f0e", "#ffbb78", + "#2ca02c", "#98df8a", + "#d62728", "#ff9896", + "#9467bd", "#c5b0d5", + "#8c564b", "#c49c94", + "#e377c2", "#f7b6d2", + "#7f7f7f", "#c7c7c7", + "#bcbd22", "#dbdb8d", + "#17becf", "#9edae5" +]; + +var d3_category20b = [ + "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", + "#637939", "#8ca252", "#b5cf6b", "#cedb9c", + "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", + "#843c39", "#ad494a", "#d6616b", "#e7969c", + "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" +]; + +var d3_category20c = [ + "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", + "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", + "#31a354", "#74c476", "#a1d99b", "#c7e9c0", + "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", + "#636363", "#969696", "#bdbdbd", "#d9d9d9" +]; +d3.scale.quantile = function() { + return d3_scale_quantile([], []); +}; + +function d3_scale_quantile(domain, range) { + var thresholds; + + function rescale() { + var k = 0, + n = domain.length, + q = range.length; + thresholds = []; + while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q); + return scale; + } + + function scale(x) { + if (isNaN(x = +x)) return NaN; + return range[d3.bisect(thresholds, x)]; + } + + scale.domain = function(x) { + if (!arguments.length) return domain; + domain = x.filter(function(d) { return !isNaN(d); }).sort(d3.ascending); + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.quantiles = function() { + return thresholds; + }; + + scale.copy = function() { + return d3_scale_quantile(domain, range); // copy on write! + }; + + return rescale(); +}; +d3.scale.quantize = function() { + return d3_scale_quantize(0, 1, [0, 1]); +}; + +function d3_scale_quantize(x0, x1, range) { + var kx, i; + + function scale(x) { + return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))]; + } + + function rescale() { + kx = range.length / (x1 - x0); + i = range.length - 1; + return scale; + } + + scale.domain = function(x) { + if (!arguments.length) return [x0, x1]; + x0 = +x[0]; + x1 = +x[x.length - 1]; + return rescale(); + }; + + scale.range = function(x) { + if (!arguments.length) return range; + range = x; + return rescale(); + }; + + scale.copy = function() { + return d3_scale_quantize(x0, x1, range); // copy on write + }; + + return rescale(); +}; +d3.svg = {}; +d3.svg.arc = function() { + var innerRadius = d3_svg_arcInnerRadius, + outerRadius = d3_svg_arcOuterRadius, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle; + + function arc() { + var r0 = innerRadius.apply(this, arguments), + r1 = outerRadius.apply(this, arguments), + a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, + a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, + da = (a1 < a0 && (da = a0, a0 = a1, a1 = da), a1 - a0), + df = da < Math.PI ? "0" : "1", + c0 = Math.cos(a0), + s0 = Math.sin(a0), + c1 = Math.cos(a1), + s1 = Math.sin(a1); + return da >= d3_svg_arcMax + ? (r0 + ? "M0," + r1 + + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1) + + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + + "M0," + r0 + + "A" + r0 + "," + r0 + " 0 1,0 0," + (-r0) + + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + + "Z" + : "M0," + r1 + + "A" + r1 + "," + r1 + " 0 1,1 0," + (-r1) + + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + + "Z") + : (r0 + ? "M" + r1 * c0 + "," + r1 * s0 + + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + + "L" + r0 * c1 + "," + r0 * s1 + + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + + "Z" + : "M" + r1 * c0 + "," + r1 * s0 + + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + + "L0,0" + + "Z"); + } + + arc.innerRadius = function(v) { + if (!arguments.length) return innerRadius; + innerRadius = d3.functor(v); + return arc; + }; + + arc.outerRadius = function(v) { + if (!arguments.length) return outerRadius; + outerRadius = d3.functor(v); + return arc; + }; + + arc.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3.functor(v); + return arc; + }; + + arc.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3.functor(v); + return arc; + }; + + arc.centroid = function() { + var r = (innerRadius.apply(this, arguments) + + outerRadius.apply(this, arguments)) / 2, + a = (startAngle.apply(this, arguments) + + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset; + return [Math.cos(a) * r, Math.sin(a) * r]; + }; + + return arc; +}; + +var d3_svg_arcOffset = -Math.PI / 2, + d3_svg_arcMax = 2 * Math.PI - 1e-6; + +function d3_svg_arcInnerRadius(d) { + return d.innerRadius; +} + +function d3_svg_arcOuterRadius(d) { + return d.outerRadius; +} + +function d3_svg_arcStartAngle(d) { + return d.startAngle; +} + +function d3_svg_arcEndAngle(d) { + return d.endAngle; +} +function d3_svg_line(projection) { + var x = d3_svg_lineX, + y = d3_svg_lineY, + interpolate = "linear", + interpolator = d3_svg_lineInterpolators[interpolate], + tension = .7; + + function line(d) { + return d.length < 1 ? null : "M" + interpolator(projection(d3_svg_linePoints(this, d, x, y)), tension); + } + + line.x = function(v) { + if (!arguments.length) return x; + x = v; + return line; + }; + + line.y = function(v) { + if (!arguments.length) return y; + y = v; + return line; + }; + + line.interpolate = function(v) { + if (!arguments.length) return interpolate; + interpolator = d3_svg_lineInterpolators[interpolate = v]; + return line; + }; + + line.tension = function(v) { + if (!arguments.length) return tension; + tension = v; + return line; + }; + + return line; +} + +d3.svg.line = function() { + return d3_svg_line(Object); +}; + +// Converts the specified array of data into an array of points +// (x-y tuples), by evaluating the specified `x` and `y` functions on each +// data point. The `this` context of the evaluated functions is the specified +// "self" object; each function is passed the current datum and index. +function d3_svg_linePoints(self, d, x, y) { + var points = [], + i = -1, + n = d.length, + fx = typeof x === "function", + fy = typeof y === "function", + value; + if (fx && fy) { + while (++i < n) points.push([ + x.call(self, value = d[i], i), + y.call(self, value, i) + ]); + } else if (fx) { + while (++i < n) points.push([x.call(self, d[i], i), y]); + } else if (fy) { + while (++i < n) points.push([x, y.call(self, d[i], i)]); + } else { + while (++i < n) points.push([x, y]); + } + return points; +} + +// The default `x` property, which references d[0]. +function d3_svg_lineX(d) { + return d[0]; +} + +// The default `y` property, which references d[1]. +function d3_svg_lineY(d) { + return d[1]; +} + +// The various interpolators supported by the `line` class. +var d3_svg_lineInterpolators = { + "linear": d3_svg_lineLinear, + "step-before": d3_svg_lineStepBefore, + "step-after": d3_svg_lineStepAfter, + "basis": d3_svg_lineBasis, + "basis-open": d3_svg_lineBasisOpen, + "basis-closed": d3_svg_lineBasisClosed, + "bundle": d3_svg_lineBundle, + "cardinal": d3_svg_lineCardinal, + "cardinal-open": d3_svg_lineCardinalOpen, + "cardinal-closed": d3_svg_lineCardinalClosed, + "monotone": d3_svg_lineMonotone +}; + +// Linear interpolation; generates "L" commands. +function d3_svg_lineLinear(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("L", (p = points[i])[0], ",", p[1]); + return path.join(""); +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStepBefore(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]); + return path.join(""); +} + +// Step interpolation; generates "H" and "V" commands. +function d3_svg_lineStepAfter(points) { + var i = 0, + n = points.length, + p = points[0], + path = [p[0], ",", p[1]]; + while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]); + return path.join(""); +} + +// Open cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinalOpen(points, tension) { + return points.length < 4 + ? d3_svg_lineLinear(points) + : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), + d3_svg_lineCardinalTangents(points, tension)); +} + +// Closed cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinalClosed(points, tension) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + d3_svg_lineHermite((points.push(points[0]), points), + d3_svg_lineCardinalTangents([points[points.length - 2]] + .concat(points, [points[1]]), tension)); +} + +// Cardinal spline interpolation; generates "C" commands. +function d3_svg_lineCardinal(points, tension, closed) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + d3_svg_lineHermite(points, + d3_svg_lineCardinalTangents(points, tension)); +} + +// Hermite spline construction; generates "C" commands. +function d3_svg_lineHermite(points, tangents) { + if (tangents.length < 1 + || (points.length != tangents.length + && points.length != tangents.length + 2)) { + return d3_svg_lineLinear(points); + } + + var quad = points.length != tangents.length, + path = "", + p0 = points[0], + p = points[1], + t0 = tangents[0], + t = t0, + pi = 1; + + if (quad) { + path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + + "," + p[0] + "," + p[1]; + p0 = points[1]; + pi = 2; + } + + if (tangents.length > 1) { + t = tangents[1]; + p = points[pi]; + pi++; + path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + + "," + p[0] + "," + p[1]; + for (var i = 2; i < tangents.length; i++, pi++) { + p = points[pi]; + t = tangents[i]; + path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + + "," + p[0] + "," + p[1]; + } + } + + if (quad) { + var lp = points[pi]; + path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + + "," + lp[0] + "," + lp[1]; + } + + return path; +} + +// Generates tangents for a cardinal spline. +function d3_svg_lineCardinalTangents(points, tension) { + var tangents = [], + a = (1 - tension) / 2, + p0, + p1 = points[0], + p2 = points[1], + i = 1, + n = points.length; + while (++i < n) { + p0 = p1; + p1 = p2; + p2 = points[i]; + tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]); + } + return tangents; +} + +// B-spline interpolation; generates "C" commands. +function d3_svg_lineBasis(points) { + if (points.length < 3) return d3_svg_lineLinear(points); + var i = 1, + n = points.length, + pi = points[0], + x0 = pi[0], + y0 = pi[1], + px = [x0, x0, x0, (pi = points[1])[0]], + py = [y0, y0, y0, pi[1]], + path = [x0, ",", y0]; + d3_svg_lineBasisBezier(path, px, py); + while (++i < n) { + pi = points[i]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + i = -1; + while (++i < 2) { + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +// Open B-spline interpolation; generates "C" commands. +function d3_svg_lineBasisOpen(points) { + if (points.length < 4) return d3_svg_lineLinear(points); + var path = [], + i = -1, + n = points.length, + pi, + px = [0], + py = [0]; + while (++i < 3) { + pi = points[i]; + px.push(pi[0]); + py.push(pi[1]); + } + path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)); + --i; while (++i < n) { + pi = points[i]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +// Closed B-spline interpolation; generates "C" commands. +function d3_svg_lineBasisClosed(points) { + var path, + i = -1, + n = points.length, + m = n + 4, + pi, + px = [], + py = []; + while (++i < 4) { + pi = points[i % n]; + px.push(pi[0]); + py.push(pi[1]); + } + path = [ + d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) + ]; + --i; while (++i < m) { + pi = points[i % n]; + px.shift(); px.push(pi[0]); + py.shift(); py.push(pi[1]); + d3_svg_lineBasisBezier(path, px, py); + } + return path.join(""); +} + +function d3_svg_lineBundle(points, tension) { + var n = points.length - 1, + x0 = points[0][0], + y0 = points[0][1], + dx = points[n][0] - x0, + dy = points[n][1] - y0, + i = -1, + p, + t; + while (++i <= n) { + p = points[i]; + t = i / n; + p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx); + p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy); + } + return d3_svg_lineBasis(points); +} + +// Returns the dot product of the given four-element vectors. +function d3_svg_lineDot4(a, b) { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; +} + +// Matrix to transform basis (b-spline) control points to bezier +// control points. Derived from FvD 11.2.8. +var d3_svg_lineBasisBezier1 = [0, 2/3, 1/3, 0], + d3_svg_lineBasisBezier2 = [0, 1/3, 2/3, 0], + d3_svg_lineBasisBezier3 = [0, 1/6, 2/3, 1/6]; + +// Pushes a "C" Bézier curve onto the specified path array, given the +// two specified four-element arrays which define the control points. +function d3_svg_lineBasisBezier(path, x, y) { + path.push( + "C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), + ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y)); +} + +// Computes the slope from points p0 to p1. +function d3_svg_lineSlope(p0, p1) { + return (p1[1] - p0[1]) / (p1[0] - p0[0]); +} + +// Compute three-point differences for the given points. +// http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_difference +function d3_svg_lineFiniteDifferences(points) { + var i = 0, + j = points.length - 1, + m = [], + p0 = points[0], + p1 = points[1], + d = m[0] = d3_svg_lineSlope(p0, p1); + while (++i < j) { + m[i] = d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1])); + } + m[i] = d; + return m; +} + +// Interpolates the given points using Fritsch-Carlson Monotone cubic Hermite +// interpolation. Returns an array of tangent vectors. For details, see +// http://en.wikipedia.org/wiki/Monotone_cubic_interpolation +function d3_svg_lineMonotoneTangents(points) { + var tangents = [], + d, + a, + b, + s, + m = d3_svg_lineFiniteDifferences(points), + i = -1, + j = points.length - 1; + + // The first two steps are done by computing finite-differences: + // 1. Compute the slopes of the secant lines between successive points. + // 2. Initialize the tangents at every point as the average of the secants. + + // Then, for each segment… + while (++i < j) { + d = d3_svg_lineSlope(points[i], points[i + 1]); + + // 3. If two successive yk = y{k + 1} are equal (i.e., d is zero), then set + // mk = m{k + 1} = 0 as the spline connecting these points must be flat to + // preserve monotonicity. Ignore step 4 and 5 for those k. + + if (Math.abs(d) < 1e-6) { + m[i] = m[i + 1] = 0; + } else { + // 4. Let ak = mk / dk and bk = m{k + 1} / dk. + a = m[i] / d; + b = m[i + 1] / d; + + // 5. Prevent overshoot and ensure monotonicity by restricting the + // magnitude of vector to a circle of radius 3. + s = a * a + b * b; + if (s > 9) { + s = d * 3 / Math.sqrt(s); + m[i] = s * a; + m[i + 1] = s * b; + } + } + } + + // Compute the normalized tangent vector from the slopes. Note that if x is + // not monotonic, it's possible that the slope will be infinite, so we protect + // against NaN by setting the coordinate to zero. + i = -1; while (++i <= j) { + s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) + / (6 * (1 + m[i] * m[i])); + tangents.push([s || 0, m[i] * s || 0]); + } + + return tangents; +} + +function d3_svg_lineMonotone(points) { + return points.length < 3 + ? d3_svg_lineLinear(points) + : points[0] + + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points)); +} +d3.svg.line.radial = function() { + var line = d3_svg_line(d3_svg_lineRadial); + line.radius = line.x, delete line.x; + line.angle = line.y, delete line.y; + return line; +}; + +function d3_svg_lineRadial(points) { + var point, + i = -1, + n = points.length, + r, + a; + while (++i < n) { + point = points[i]; + r = point[0]; + a = point[1] + d3_svg_arcOffset; + point[0] = r * Math.cos(a); + point[1] = r * Math.sin(a); + } + return points; +} +function d3_svg_area(projection) { + var x0 = d3_svg_lineX, + x1 = d3_svg_lineX, + y0 = 0, + y1 = d3_svg_lineY, + interpolate = "linear", + interpolator = d3_svg_lineInterpolators[interpolate], + tension = .7; + + function area(d) { + if (d.length < 1) return null; + var points0 = d3_svg_linePoints(this, d, x0, y0), + points1 = d3_svg_linePoints(this, d, x0 === x1 ? d3_svg_areaX(points0) : x1, y0 === y1 ? d3_svg_areaY(points0) : y1); + return "M" + interpolator(projection(points1), tension) + + "L" + interpolator(projection(points0.reverse()), tension) + + "Z"; + } + + area.x = function(x) { + if (!arguments.length) return x1; + x0 = x1 = x; + return area; + }; + + area.x0 = function(x) { + if (!arguments.length) return x0; + x0 = x; + return area; + }; + + area.x1 = function(x) { + if (!arguments.length) return x1; + x1 = x; + return area; + }; + + area.y = function(y) { + if (!arguments.length) return y1; + y0 = y1 = y; + return area; + }; + + area.y0 = function(y) { + if (!arguments.length) return y0; + y0 = y; + return area; + }; + + area.y1 = function(y) { + if (!arguments.length) return y1; + y1 = y; + return area; + }; + + area.interpolate = function(x) { + if (!arguments.length) return interpolate; + interpolator = d3_svg_lineInterpolators[interpolate = x]; + return area; + }; + + area.tension = function(x) { + if (!arguments.length) return tension; + tension = x; + return area; + }; + + return area; +} + +d3.svg.area = function() { + return d3_svg_area(Object); +}; + +function d3_svg_areaX(points) { + return function(d, i) { + return points[i][0]; + }; +} + +function d3_svg_areaY(points) { + return function(d, i) { + return points[i][1]; + }; +} +d3.svg.area.radial = function() { + var area = d3_svg_area(d3_svg_lineRadial); + area.radius = area.x, delete area.x; + area.innerRadius = area.x0, delete area.x0; + area.outerRadius = area.x1, delete area.x1; + area.angle = area.y, delete area.y; + area.startAngle = area.y0, delete area.y0; + area.endAngle = area.y1, delete area.y1; + return area; +}; +d3.svg.chord = function() { + var source = d3_svg_chordSource, + target = d3_svg_chordTarget, + radius = d3_svg_chordRadius, + startAngle = d3_svg_arcStartAngle, + endAngle = d3_svg_arcEndAngle; + + // TODO Allow control point to be customized. + + function chord(d, i) { + var s = subgroup(this, source, d, i), + t = subgroup(this, target, d, i); + return "M" + s.p0 + + arc(s.r, s.p1) + (equals(s, t) + ? curve(s.r, s.p1, s.r, s.p0) + : curve(s.r, s.p1, t.r, t.p0) + + arc(t.r, t.p1) + + curve(t.r, t.p1, s.r, s.p0)) + + "Z"; + } + + function subgroup(self, f, d, i) { + var subgroup = f.call(self, d, i), + r = radius.call(self, subgroup, i), + a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, + a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset; + return { + r: r, + a0: a0, + a1: a1, + p0: [r * Math.cos(a0), r * Math.sin(a0)], + p1: [r * Math.cos(a1), r * Math.sin(a1)] + }; + } + + function equals(a, b) { + return a.a0 == b.a0 && a.a1 == b.a1; + } + + function arc(r, p) { + return "A" + r + "," + r + " 0 0,1 " + p; + } + + function curve(r0, p0, r1, p1) { + return "Q 0,0 " + p1; + } + + chord.radius = function(v) { + if (!arguments.length) return radius; + radius = d3.functor(v); + return chord; + }; + + chord.source = function(v) { + if (!arguments.length) return source; + source = d3.functor(v); + return chord; + }; + + chord.target = function(v) { + if (!arguments.length) return target; + target = d3.functor(v); + return chord; + }; + + chord.startAngle = function(v) { + if (!arguments.length) return startAngle; + startAngle = d3.functor(v); + return chord; + }; + + chord.endAngle = function(v) { + if (!arguments.length) return endAngle; + endAngle = d3.functor(v); + return chord; + }; + + return chord; +}; + +function d3_svg_chordSource(d) { + return d.source; +} + +function d3_svg_chordTarget(d) { + return d.target; +} + +function d3_svg_chordRadius(d) { + return d.radius; +} + +function d3_svg_chordStartAngle(d) { + return d.startAngle; +} + +function d3_svg_chordEndAngle(d) { + return d.endAngle; +} +d3.svg.diagonal = function() { + var source = d3_svg_chordSource, + target = d3_svg_chordTarget, + projection = d3_svg_diagonalProjection; + + function diagonal(d, i) { + var p0 = source.call(this, d, i), + p3 = target.call(this, d, i), + m = (p0.y + p3.y) / 2, + p = [p0, {x: p0.x, y: m}, {x: p3.x, y: m}, p3]; + p = p.map(projection); + return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3]; + } + + diagonal.source = function(x) { + if (!arguments.length) return source; + source = d3.functor(x); + return diagonal; + }; + + diagonal.target = function(x) { + if (!arguments.length) return target; + target = d3.functor(x); + return diagonal; + }; + + diagonal.projection = function(x) { + if (!arguments.length) return projection; + projection = x; + return diagonal; + }; + + return diagonal; +}; + +function d3_svg_diagonalProjection(d) { + return [d.x, d.y]; +} +d3.svg.diagonal.radial = function() { + var diagonal = d3.svg.diagonal(), + projection = d3_svg_diagonalProjection, + projection_ = diagonal.projection; + + diagonal.projection = function(x) { + return arguments.length + ? projection_(d3_svg_diagonalRadialProjection(projection = x)) + : projection; + }; + + return diagonal; +}; + +function d3_svg_diagonalRadialProjection(projection) { + return function() { + var d = projection.apply(this, arguments), + r = d[0], + a = d[1] + d3_svg_arcOffset; + return [r * Math.cos(a), r * Math.sin(a)]; + }; +} +d3.svg.mouse = function(container) { + return d3_svg_mousePoint(container, d3.event); +}; + +// https://bugs.webkit.org/show_bug.cgi?id=44083 +var d3_mouse_bug44083 = /WebKit/.test(navigator.userAgent) ? -1 : 0; + +function d3_svg_mousePoint(container, e) { + var point = (container.ownerSVGElement || container).createSVGPoint(); + if ((d3_mouse_bug44083 < 0) && (window.scrollX || window.scrollY)) { + var svg = d3.select(document.body) + .append("svg:svg") + .style("position", "absolute") + .style("top", 0) + .style("left", 0); + var ctm = svg[0][0].getScreenCTM(); + d3_mouse_bug44083 = !(ctm.f || ctm.e); + svg.remove(); + } + if (d3_mouse_bug44083) { + point.x = e.pageX; + point.y = e.pageY; + } else { + point.x = e.clientX; + point.y = e.clientY; + } + point = point.matrixTransform(container.getScreenCTM().inverse()); + return [point.x, point.y]; +}; +d3.svg.touches = function(container) { + var touches = d3.event.touches; + return touches ? Array.prototype.map.call(touches, function(touch) { + var point = d3_svg_mousePoint(container, touch); + point.identifier = touch.identifier; + return point; + }) : []; +}; +d3.svg.symbol = function() { + var type = d3_svg_symbolType, + size = d3_svg_symbolSize; + + function symbol(d, i) { + return (d3_svg_symbols[type.call(this, d, i)] + || d3_svg_symbols.circle) + (size.call(this, d, i)); + } + + symbol.type = function(x) { + if (!arguments.length) return type; + type = d3.functor(x); + return symbol; + }; + + // size of symbol in square pixels + symbol.size = function(x) { + if (!arguments.length) return size; + size = d3.functor(x); + return symbol; + }; + + return symbol; +}; + +function d3_svg_symbolSize() { + return 64; +} + +function d3_svg_symbolType() { + return "circle"; +} + +// TODO cross-diagonal? +var d3_svg_symbols = { + "circle": function(size) { + var r = Math.sqrt(size / Math.PI); + return "M0," + r + + "A" + r + "," + r + " 0 1,1 0," + (-r) + + "A" + r + "," + r + " 0 1,1 0," + r + + "Z"; + }, + "cross": function(size) { + var r = Math.sqrt(size / 5) / 2; + return "M" + -3 * r + "," + -r + + "H" + -r + + "V" + -3 * r + + "H" + r + + "V" + -r + + "H" + 3 * r + + "V" + r + + "H" + r + + "V" + 3 * r + + "H" + -r + + "V" + r + + "H" + -3 * r + + "Z"; + }, + "diamond": function(size) { + var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), + rx = ry * d3_svg_symbolTan30; + return "M0," + -ry + + "L" + rx + ",0" + + " 0," + ry + + " " + -rx + ",0" + + "Z"; + }, + "square": function(size) { + var r = Math.sqrt(size) / 2; + return "M" + -r + "," + -r + + "L" + r + "," + -r + + " " + r + "," + r + + " " + -r + "," + r + + "Z"; + }, + "triangle-down": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + ry + + "L" + rx +"," + -ry + + " " + -rx + "," + -ry + + "Z"; + }, + "triangle-up": function(size) { + var rx = Math.sqrt(size / d3_svg_symbolSqrt3), + ry = rx * d3_svg_symbolSqrt3 / 2; + return "M0," + -ry + + "L" + rx +"," + ry + + " " + -rx + "," + ry + + "Z"; + } +}; + +d3.svg.symbolTypes = d3.keys(d3_svg_symbols); + +var d3_svg_symbolSqrt3 = Math.sqrt(3), + d3_svg_symbolTan30 = Math.tan(30 * Math.PI / 180); +d3.svg.axis = function() { + var scale = d3.scale.linear(), + orient = "bottom", + tickMajorSize = 6, + tickMinorSize = 6, + tickEndSize = 6, + tickPadding = 3, + tickArguments_ = [10], + tickFormat_, + tickSubdivide = 0; + + function axis(selection) { + selection.each(function(d, i, j) { + var g = d3.select(this); + + // Ticks. + var ticks = scale.ticks.apply(scale, tickArguments_), + tickFormat = tickFormat_ == null ? scale.tickFormat.apply(scale, tickArguments_) : tickFormat_; + + // Minor ticks. + var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), + subtick = g.selectAll(".minor").data(subticks, String), + subtickEnter = subtick.enter().insert("svg:line", "g").attr("class", "tick minor").style("opacity", 1e-6), + subtickExit = transition(subtick.exit()).style("opacity", 1e-6).remove(), + subtickUpdate = transition(subtick).style("opacity", 1); + + // Major ticks. + var tick = g.selectAll("g").data(ticks, String), + tickEnter = tick.enter().insert("svg:g", "path").style("opacity", 1e-6), + tickExit = transition(tick.exit()).style("opacity", 1e-6).remove(), + tickUpdate = transition(tick).style("opacity", 1), + tickTransform; + + // Domain. + var range = d3_scaleExtent(scale.range()), + path = g.selectAll(".domain").data([0]), + pathEnter = path.enter().append("svg:path").attr("class", "domain"), + pathUpdate = transition(path); + + // Stash the new scale and grab the old scale. + var scale0 = this.__chart__ || scale; + this.__chart__ = scale.copy(); + + tickEnter.append("svg:line").attr("class", "tick"); + tickEnter.append("svg:text"); + tickUpdate.select("text").text(tickFormat); + + switch (orient) { + case "bottom": { + tickTransform = d3_svg_axisX; + subtickUpdate.attr("y2", tickMinorSize); + tickEnter.select("text").attr("dy", ".71em").attr("text-anchor", "middle"); + tickUpdate.select("line").attr("y2", tickMajorSize); + tickUpdate.select("text").attr("y", Math.max(tickMajorSize, 0) + tickPadding); + pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize); + break; + } + case "top": { + tickTransform = d3_svg_axisX; + subtickUpdate.attr("y2", -tickMinorSize); + tickEnter.select("text").attr("text-anchor", "middle"); + tickUpdate.select("line").attr("y2", -tickMajorSize); + tickUpdate.select("text").attr("y", -(Math.max(tickMajorSize, 0) + tickPadding)); + pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize); + break; + } + case "left": { + tickTransform = d3_svg_axisY; + subtickUpdate.attr("x2", -tickMinorSize); + tickEnter.select("text").attr("dy", ".32em").attr("text-anchor", "end"); + tickUpdate.select("line").attr("x2", -tickMajorSize); + tickUpdate.select("text").attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)); + pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize); + break; + } + case "right": { + tickTransform = d3_svg_axisY; + subtickUpdate.attr("x2", tickMinorSize); + tickEnter.select("text").attr("dy", ".32em"); + tickUpdate.select("line").attr("x2", tickMajorSize); + tickUpdate.select("text").attr("x", Math.max(tickMajorSize, 0) + tickPadding); + pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize); + break; + } + } + + tickEnter.call(tickTransform, scale0); + tickUpdate.call(tickTransform, scale); + tickExit.call(tickTransform, scale); + + subtickEnter.call(tickTransform, scale0); + subtickUpdate.call(tickTransform, scale); + subtickExit.call(tickTransform, scale); + + function transition(o) { + return selection.delay ? o.transition() + .delay(selection[j][i].delay) + .duration(selection[j][i].duration) + .ease(selection.ease()) : o; + } + }); + } + + axis.scale = function(x) { + if (!arguments.length) return scale; + scale = x; + return axis; + }; + + axis.orient = function(x) { + if (!arguments.length) return orient; + orient = x; + return axis; + }; + + axis.ticks = function() { + if (!arguments.length) return tickArguments_; + tickArguments_ = arguments; + return axis; + }; + + axis.tickFormat = function(x) { + if (!arguments.length) return tickFormat_; + tickFormat_ = x; + return axis; + }; + + axis.tickSize = function(x, y, z) { + if (!arguments.length) return tickMajorSize; + var n = arguments.length - 1; + tickMajorSize = +x; + tickMinorSize = n > 1 ? +y : tickMajorSize; + tickEndSize = n > 0 ? +arguments[n] : tickMajorSize; + return axis; + }; + + axis.tickPadding = function(x) { + if (!arguments.length) return tickPadding; + tickPadding = +x; + return axis; + }; + + axis.tickSubdivide = function(x) { + if (!arguments.length) return tickSubdivide; + tickSubdivide = +x; + return axis; + }; + + return axis; +}; + +function d3_svg_axisX(selection, x) { + selection.attr("transform", function(d) { return "translate(" + x(d) + ",0)"; }); +} + +function d3_svg_axisY(selection, y) { + selection.attr("transform", function(d) { return "translate(0," + y(d) + ")"; }); +} + +function d3_svg_axisSubdivide(scale, ticks, m) { + subticks = []; + if (m && ticks.length > 1) { + var extent = d3_scaleExtent(scale.domain()), + subticks, + i = -1, + n = ticks.length, + d = (ticks[1] - ticks[0]) / ++m, + j, + v; + while (++i < n) { + for (j = m; --j > 0;) { + if ((v = +ticks[i] - j * d) >= extent[0]) { + subticks.push(v); + } + } + } + for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1];) { + subticks.push(v); + } + } + return subticks; +} +d3.behavior = {}; +d3.behavior.drag = function() { + var event = d3.dispatch("drag", "dragstart", "dragend"); + + function drag() { + this + .on("mousedown.drag", mousedown) + .on("touchstart.drag", mousedown); + + d3.select(window) + .on("mousemove.drag", d3_behavior_dragMove) + .on("touchmove.drag", d3_behavior_dragMove) + .on("mouseup.drag", d3_behavior_dragUp, true) + .on("touchend.drag", d3_behavior_dragUp, true) + .on("click.drag", d3_behavior_dragClick, true); + } + + // snapshot the local context for subsequent dispatch + function start() { + d3_behavior_dragEvent = event; + d3_behavior_dragOffset = d3_behavior_dragPoint((d3_behavior_dragTarget = this).parentNode); + d3_behavior_dragMoved = 0; + d3_behavior_dragArguments = arguments; + } + + function mousedown() { + start.apply(this, arguments); + d3_behavior_dragDispatch("dragstart"); + } + + drag.on = function(type, listener) { + event[type].add(listener); + return drag; + }; + + return drag; +}; + +var d3_behavior_dragEvent, + d3_behavior_dragTarget, + d3_behavior_dragArguments, + d3_behavior_dragOffset, + d3_behavior_dragMoved, + d3_behavior_dragStopClick; + +function d3_behavior_dragDispatch(type) { + var o = d3.event, p = d3_behavior_dragTarget.parentNode, dx = 0, dy = 0; + + if (p) { + p = d3_behavior_dragPoint(p); + dx = p[0] - d3_behavior_dragOffset[0]; + dy = p[1] - d3_behavior_dragOffset[1]; + d3_behavior_dragOffset = p; + d3_behavior_dragMoved |= dx | dy; + } + + try { + d3.event = {dx: dx, dy: dy}; + d3_behavior_dragEvent[type].dispatch.apply(d3_behavior_dragTarget, d3_behavior_dragArguments); + } finally { + d3.event = o; + } + + o.preventDefault(); +} + +function d3_behavior_dragPoint(container) { + return d3.event.touches + ? d3.svg.touches(container)[0] + : d3.svg.mouse(container); +} + +function d3_behavior_dragMove() { + if (!d3_behavior_dragTarget) return; + var parent = d3_behavior_dragTarget.parentNode; + + // O NOES! The drag element was removed from the DOM. + if (!parent) return d3_behavior_dragUp(); + + d3_behavior_dragDispatch("drag"); + d3_behavior_dragCancel(); +} + +function d3_behavior_dragUp() { + if (!d3_behavior_dragTarget) return; + d3_behavior_dragDispatch("dragend"); + d3_behavior_dragTarget = null; + + // If the node was moved, prevent the mouseup from propagating. + // Also prevent the subsequent click from propagating (e.g., for anchors). + if (d3_behavior_dragMoved) { + d3_behavior_dragStopClick = true; + d3_behavior_dragCancel(); + } +} + +function d3_behavior_dragClick() { + if (d3_behavior_dragStopClick) { + d3_behavior_dragCancel(); + d3_behavior_dragStopClick = false; + } +} + +function d3_behavior_dragCancel() { + d3.event.stopPropagation(); + d3.event.preventDefault(); +} +// TODO unbind zoom behavior? +// TODO unbind listener? +d3.behavior.zoom = function() { + var xyz = [0, 0, 0], + event = d3.dispatch("zoom"); + + function zoom() { + this + .on("mousedown.zoom", mousedown) + .on("mousewheel.zoom", mousewheel) + .on("DOMMouseScroll.zoom", mousewheel) + .on("dblclick.zoom", dblclick) + .on("touchstart.zoom", touchstart); + + d3.select(window) + .on("mousemove.zoom", d3_behavior_zoomMousemove) + .on("mouseup.zoom", d3_behavior_zoomMouseup) + .on("touchmove.zoom", d3_behavior_zoomTouchmove) + .on("touchend.zoom", d3_behavior_zoomTouchup) + .on("click.zoom", d3_behavior_zoomClick, true); + } + + // snapshot the local context for subsequent dispatch + function start() { + d3_behavior_zoomXyz = xyz; + d3_behavior_zoomDispatch = event.zoom.dispatch; + d3_behavior_zoomTarget = this; + d3_behavior_zoomArguments = arguments; + } + + function mousedown() { + start.apply(this, arguments); + d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget)); + d3_behavior_zoomMoved = false; + d3.event.preventDefault(); + window.focus(); + } + + // store starting mouse location + function mousewheel() { + start.apply(this, arguments); + if (!d3_behavior_zoomZooming) d3_behavior_zoomZooming = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget)); + d3_behavior_zoomTo(d3_behavior_zoomDelta() + xyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomZooming); + } + + function dblclick() { + start.apply(this, arguments); + var mouse = d3.svg.mouse(d3_behavior_zoomTarget); + d3_behavior_zoomTo(d3.event.shiftKey ? Math.ceil(xyz[2] - 1) : Math.floor(xyz[2] + 1), mouse, d3_behavior_zoomLocation(mouse)); + } + + // doubletap detection + function touchstart() { + start.apply(this, arguments); + var touches = d3_behavior_zoomTouchup(), + touch, + now = Date.now(); + if ((touches.length === 1) && (now - d3_behavior_zoomLast < 300)) { + d3_behavior_zoomTo(1 + Math.floor(xyz[2]), touch = touches[0], d3_behavior_zoomLocations[touch.identifier]); + } + d3_behavior_zoomLast = now; + } + + zoom.on = function(type, listener) { + event[type].add(listener); + return zoom; + }; + + return zoom; +}; + +var d3_behavior_zoomDiv, + d3_behavior_zoomPanning, + d3_behavior_zoomZooming, + d3_behavior_zoomLocations = {}, // identifier -> location + d3_behavior_zoomLast = 0, + d3_behavior_zoomXyz, + d3_behavior_zoomDispatch, + d3_behavior_zoomTarget, + d3_behavior_zoomArguments, + d3_behavior_zoomMoved, + d3_behavior_zoomStopClick; + +function d3_behavior_zoomLocation(point) { + return [ + point[0] - d3_behavior_zoomXyz[0], + point[1] - d3_behavior_zoomXyz[1], + d3_behavior_zoomXyz[2] + ]; +} + +// detect the pixels that would be scrolled by this wheel event +function d3_behavior_zoomDelta() { + + // mousewheel events are totally broken! + // https://bugs.webkit.org/show_bug.cgi?id=40441 + // not only that, but Chrome and Safari differ in re. to acceleration! + if (!d3_behavior_zoomDiv) { + d3_behavior_zoomDiv = d3.select("body").append("div") + .style("visibility", "hidden") + .style("top", 0) + .style("height", 0) + .style("width", 0) + .style("overflow-y", "scroll") + .append("div") + .style("height", "2000px") + .node().parentNode; + } + + var e = d3.event, delta; + try { + d3_behavior_zoomDiv.scrollTop = 1000; + d3_behavior_zoomDiv.dispatchEvent(e); + delta = 1000 - d3_behavior_zoomDiv.scrollTop; + } catch (error) { + delta = e.wheelDelta || (-e.detail * 5); + } + + return delta * .005; +} + +// Note: Since we don't rotate, it's possible for the touches to become +// slightly detached from their original positions. Thus, we recompute the +// touch points on touchend as well as touchstart! +function d3_behavior_zoomTouchup() { + var touches = d3.svg.touches(d3_behavior_zoomTarget), + i = -1, + n = touches.length, + touch; + while (++i < n) d3_behavior_zoomLocations[(touch = touches[i]).identifier] = d3_behavior_zoomLocation(touch); + return touches; +} + +function d3_behavior_zoomTouchmove() { + var touches = d3.svg.touches(d3_behavior_zoomTarget); + switch (touches.length) { + + // single-touch pan + case 1: { + var touch = touches[0]; + d3_behavior_zoomTo(d3_behavior_zoomXyz[2], touch, d3_behavior_zoomLocations[touch.identifier]); + break; + } + + // double-touch pan + zoom + case 2: { + var p0 = touches[0], + p1 = touches[1], + p2 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2], + l0 = d3_behavior_zoomLocations[p0.identifier], + l1 = d3_behavior_zoomLocations[p1.identifier], + l2 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2, l0[2]]; + d3_behavior_zoomTo(Math.log(d3.event.scale) / Math.LN2 + l0[2], p2, l2); + break; + } + } +} + +function d3_behavior_zoomMousemove() { + d3_behavior_zoomZooming = null; + if (d3_behavior_zoomPanning) { + d3_behavior_zoomMoved = true; + d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning); + } +} + +function d3_behavior_zoomMouseup() { + if (d3_behavior_zoomPanning) { + if (d3_behavior_zoomMoved) d3_behavior_zoomStopClick = true; + d3_behavior_zoomMousemove(); + d3_behavior_zoomPanning = null; + } +} + +function d3_behavior_zoomClick() { + if (d3_behavior_zoomStopClick) { + d3.event.stopPropagation(); + d3.event.preventDefault(); + d3_behavior_zoomStopClick = false; + } +} + +function d3_behavior_zoomTo(z, x0, x1) { + var K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]), + x = d3_behavior_zoomXyz[0] = x0[0] - K * x1[0], + y = d3_behavior_zoomXyz[1] = x0[1] - K * x1[1], + o = d3.event, // Events can be reentrant (e.g., focus). + k = Math.pow(2, z); + + d3.event = { + scale: k, + translate: [x, y], + transform: function(sx, sy) { + if (sx) transform(sx, x); + if (sy) transform(sy, y); + } + }; + + function transform(scale, o) { + var domain = scale.__domain || (scale.__domain = scale.domain()), + range = scale.range().map(function(v) { return (v - o) / k; }); + scale.domain(domain).domain(range.map(scale.invert)); + } + + try { + d3_behavior_zoomDispatch.apply(d3_behavior_zoomTarget, d3_behavior_zoomArguments); + } finally { + d3.event = o; + } + + o.preventDefault(); +} +})(); diff --git a/talk/20110921/d3/d3.layout.js b/talk/20110921/d3/d3.layout.js new file mode 100755 index 0000000000000..bcfddc043beb5 --- /dev/null +++ b/talk/20110921/d3/d3.layout.js @@ -0,0 +1,1883 @@ +(function(){d3.layout = {}; +// Implements hierarchical edge bundling using Holten's algorithm. For each +// input link, a path is computed that travels through the tree, up the parent +// hierarchy to the least common ancestor, and then back down to the destination +// node. Each path is simply an array of nodes. +d3.layout.bundle = function() { + return function(links) { + var paths = [], + i = -1, + n = links.length; + while (++i < n) paths.push(d3_layout_bundlePath(links[i])); + return paths; + }; +}; + +function d3_layout_bundlePath(link) { + var start = link.source, + end = link.target, + lca = d3_layout_bundleLeastCommonAncestor(start, end), + points = [start]; + while (start !== lca) { + start = start.parent; + points.push(start); + } + var k = points.length; + while (end !== lca) { + points.splice(k, 0, end); + end = end.parent; + } + return points; +} + +function d3_layout_bundleAncestors(node) { + var ancestors = [], + parent = node.parent; + while (parent != null) { + ancestors.push(node); + node = parent; + parent = parent.parent; + } + ancestors.push(node); + return ancestors; +} + +function d3_layout_bundleLeastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = d3_layout_bundleAncestors(a), + bNodes = d3_layout_bundleAncestors(b), + aNode = aNodes.pop(), + bNode = bNodes.pop(), + sharedNode = null; + while (aNode === bNode) { + sharedNode = aNode; + aNode = aNodes.pop(); + bNode = bNodes.pop(); + } + return sharedNode; +} +d3.layout.chord = function() { + var chord = {}, + chords, + groups, + matrix, + n, + padding = 0, + sortGroups, + sortSubgroups, + sortChords; + + function relayout() { + var subgroups = {}, + groupSums = [], + groupIndex = d3.range(n), + subgroupIndex = [], + k, + x, + x0, + i, + j; + + chords = []; + groups = []; + + // Compute the sum. + k = 0, i = -1; while (++i < n) { + x = 0, j = -1; while (++j < n) { + x += matrix[i][j]; + } + groupSums.push(x); + subgroupIndex.push(d3.range(n)); + k += x; + } + + // Sort groups… + if (sortGroups) { + groupIndex.sort(function(a, b) { + return sortGroups(groupSums[a], groupSums[b]); + }); + } + + // Sort subgroups… + if (sortSubgroups) { + subgroupIndex.forEach(function(d, i) { + d.sort(function(a, b) { + return sortSubgroups(matrix[i][a], matrix[i][b]); + }); + }); + } + + // Convert the sum to scaling factor for [0, 2pi]. + // TODO Allow start and end angle to be specified. + // TODO Allow padding to be specified as percentage? + k = (2 * Math.PI - padding * n) / k; + + // Compute the start and end angle for each group and subgroup. + x = 0, i = -1; while (++i < n) { + x0 = x, j = -1; while (++j < n) { + var di = groupIndex[i], + dj = subgroupIndex[i][j], + v = matrix[di][dj]; + subgroups[di + "-" + dj] = { + index: di, + subindex: dj, + startAngle: x, + endAngle: x += v * k, + value: v + }; + } + groups.push({ + index: di, + startAngle: x0, + endAngle: x, + value: (x - x0) / k + }); + x += padding; + } + + // Generate chords for each (non-empty) subgroup-subgroup link. + i = -1; while (++i < n) { + j = i - 1; while (++j < n) { + var source = subgroups[i + "-" + j], + target = subgroups[j + "-" + i]; + if (source.value || target.value) { + chords.push(source.value < target.value + ? {source: target, target: source} + : {source: source, target: target}); + } + } + } + + if (sortChords) resort(); + } + + function resort() { + chords.sort(function(a, b) { + return sortChords(a.target.value, b.target.value); + }); + } + + chord.matrix = function(x) { + if (!arguments.length) return matrix; + n = (matrix = x) && matrix.length; + chords = groups = null; + return chord; + }; + + chord.padding = function(x) { + if (!arguments.length) return padding; + padding = x; + chords = groups = null; + return chord; + }; + + chord.sortGroups = function(x) { + if (!arguments.length) return sortGroups; + sortGroups = x; + chords = groups = null; + return chord; + }; + + chord.sortSubgroups = function(x) { + if (!arguments.length) return sortSubgroups; + sortSubgroups = x; + chords = null; + return chord; + }; + + chord.sortChords = function(x) { + if (!arguments.length) return sortChords; + sortChords = x; + if (chords) resort(); + return chord; + }; + + chord.chords = function() { + if (!chords) relayout(); + return chords; + }; + + chord.groups = function() { + if (!groups) relayout(); + return groups; + }; + + return chord; +}; +// A rudimentary force layout using Gauss-Seidel. +d3.layout.force = function() { + var force = {}, + event = d3.dispatch("tick"), + size = [1, 1], + drag, + alpha, + friction = .9, + linkDistance = d3_layout_forceLinkDistance, + linkStrength = d3_layout_forceLinkStrength, + charge = -30, + gravity = .1, + theta = .8, + interval, + nodes = [], + links = [], + distances, + strengths, + charges; + + function repulse(node) { + return function(quad, x1, y1, x2, y2) { + if (quad.point !== node) { + var dx = quad.cx - node.x, + dy = quad.cy - node.y, + dn = 1 / Math.sqrt(dx * dx + dy * dy); + + /* Barnes-Hut criterion. */ + if ((x2 - x1) * dn < theta) { + var k = quad.charge * dn * dn; + node.px -= dx * k; + node.py -= dy * k; + return true; + } + + if (quad.point && isFinite(dn)) { + var k = quad.pointCharge * dn * dn; + node.px -= dx * k; + node.py -= dy * k; + } + } + return !quad.charge; + }; + } + + function tick() { + var n = nodes.length, + m = links.length, + q, + i, // current index + o, // current object + s, // current source + t, // current target + l, // current distance + k, // current force + x, // x-distance + y; // y-distance + + // gauss-seidel relaxation for links + for (i = 0; i < m; ++i) { + o = links[i]; + s = o.source; + t = o.target; + x = t.x - s.x; + y = t.y - s.y; + if (l = (x * x + y * y)) { + l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; + x *= l; + y *= l; + t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.y -= y * k; + s.x += x * (k = 1 - k); + s.y += y * k; + } + } + + // apply gravity forces + if (k = alpha * gravity) { + x = size[0] / 2; + y = size[1] / 2; + i = -1; if (k) while (++i < n) { + o = nodes[i]; + o.x += (x - o.x) * k; + o.y += (y - o.y) * k; + } + } + + // compute quadtree center of mass and apply charge forces + if (charge) { + d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges); + i = -1; while (++i < n) { + if (!(o = nodes[i]).fixed) { + q.visit(repulse(o)); + } + } + } + + // position verlet integration + i = -1; while (++i < n) { + o = nodes[i]; + if (o.fixed) { + o.x = o.px; + o.y = o.py; + } else { + o.x -= (o.px - (o.px = o.x)) * friction; + o.y -= (o.py - (o.py = o.y)) * friction; + } + } + + event.tick.dispatch({type: "tick", alpha: alpha}); + + // simulated annealing, basically + return (alpha *= .99) < .005; + } + + force.on = function(type, listener) { + event[type].add(listener); + return force; + }; + + force.nodes = function(x) { + if (!arguments.length) return nodes; + nodes = x; + return force; + }; + + force.links = function(x) { + if (!arguments.length) return links; + links = x; + return force; + }; + + force.size = function(x) { + if (!arguments.length) return size; + size = x; + return force; + }; + + force.linkDistance = function(x) { + if (!arguments.length) return linkDistance; + linkDistance = d3.functor(x); + return force; + }; + + // For backwards-compatibility. + force.distance = force.linkDistance; + + force.linkStrength = function(x) { + if (!arguments.length) return linkStrength; + linkStrength = d3.functor(x); + return force; + }; + + force.friction = function(x) { + if (!arguments.length) return friction; + friction = x; + return force; + }; + + force.charge = function(x) { + if (!arguments.length) return charge; + charge = typeof x === "function" ? x : +x; + return force; + }; + + force.gravity = function(x) { + if (!arguments.length) return gravity; + gravity = x; + return force; + }; + + force.theta = function(x) { + if (!arguments.length) return theta; + theta = x; + return force; + }; + + force.start = function() { + var i, + j, + n = nodes.length, + m = links.length, + w = size[0], + h = size[1], + neighbors, + o; + + for (i = 0; i < n; ++i) { + (o = nodes[i]).index = i; + o.weight = 0; + } + + distances = []; + strengths = []; + for (i = 0; i < m; ++i) { + o = links[i]; + if (typeof o.source == "number") o.source = nodes[o.source]; + if (typeof o.target == "number") o.target = nodes[o.target]; + distances[i] = linkDistance.call(this, o, i); + strengths[i] = linkStrength.call(this, o, i); + ++o.source.weight; + ++o.target.weight; + } + + for (i = 0; i < n; ++i) { + o = nodes[i]; + if (isNaN(o.x)) o.x = position("x", w); + if (isNaN(o.y)) o.y = position("y", h); + if (isNaN(o.px)) o.px = o.x; + if (isNaN(o.py)) o.py = o.y; + } + + charges = []; + if (typeof charge === "function") { + for (i = 0; i < n; ++i) { + charges[i] = +charge.call(this, nodes[i], i); + } + } else { + for (i = 0; i < n; ++i) { + charges[i] = charge; + } + } + + // initialize node position based on first neighbor + function position(dimension, size) { + var neighbors = neighbor(i), + j = -1, + m = neighbors.length, + x; + while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x; + return Math.random() * size; + } + + // initialize neighbors lazily + function neighbor() { + if (!neighbors) { + neighbors = []; + for (j = 0; j < n; ++j) { + neighbors[j] = []; + } + for (j = 0; j < m; ++j) { + var o = links[j]; + neighbors[o.source.index].push(o.target); + neighbors[o.target.index].push(o.source); + } + } + return neighbors[i]; + } + + return force.resume(); + }; + + force.resume = function() { + alpha = .1; + d3.timer(tick); + return force; + }; + + force.stop = function() { + alpha = 0; + return force; + }; + + // use `node.call(force.drag)` to make nodes draggable + force.drag = function() { + if (!drag) drag = d3.behavior.drag() + .on("dragstart", dragstart) + .on("drag", d3_layout_forceDrag) + .on("dragend", d3_layout_forceDragEnd); + + this.on("mouseover.force", d3_layout_forceDragOver) + .on("mouseout.force", d3_layout_forceDragOut) + .call(drag); + }; + + function dragstart(d) { + d3_layout_forceDragOver(d3_layout_forceDragNode = d); + d3_layout_forceDragForce = force; + } + + return force; +}; + +var d3_layout_forceDragForce, + d3_layout_forceDragNode; + +function d3_layout_forceDragOver(d) { + d.fixed |= 2; +} + +function d3_layout_forceDragOut(d) { + if (d !== d3_layout_forceDragNode) d.fixed &= 1; +} + +function d3_layout_forceDragEnd() { + d3_layout_forceDrag(); + d3_layout_forceDragNode.fixed &= 1; + d3_layout_forceDragForce = d3_layout_forceDragNode = null; +} + +function d3_layout_forceDrag() { + d3_layout_forceDragNode.px += d3.event.dx; + d3_layout_forceDragNode.py += d3.event.dy; + d3_layout_forceDragForce.resume(); // restart annealing +} + +function d3_layout_forceAccumulate(quad, alpha, charges) { + var cx = 0, + cy = 0; + quad.charge = 0; + if (!quad.leaf) { + var nodes = quad.nodes, + n = nodes.length, + i = -1, + c; + while (++i < n) { + c = nodes[i]; + if (c == null) continue; + d3_layout_forceAccumulate(c, alpha, charges); + quad.charge += c.charge; + cx += c.charge * c.cx; + cy += c.charge * c.cy; + } + } + if (quad.point) { + // jitter internal nodes that are coincident + if (!quad.leaf) { + quad.point.x += Math.random() - .5; + quad.point.y += Math.random() - .5; + } + var k = alpha * charges[quad.point.index]; + quad.charge += quad.pointCharge = k; + cx += k * quad.point.x; + cy += k * quad.point.y; + } + quad.cx = cx / quad.charge; + quad.cy = cy / quad.charge; +} + +function d3_layout_forceLinkDistance(link) { + return 20; +} + +function d3_layout_forceLinkStrength(link) { + return 1; +} +d3.layout.partition = function() { + var hierarchy = d3.layout.hierarchy(), + size = [1, 1]; // width, height + + function position(node, x, dx, dy) { + var children = node.children; + node.x = x; + node.y = node.depth * dy; + node.dx = dx; + node.dy = dy; + if (children) { + var i = -1, + n = children.length, + c, + d; + dx = node.value ? dx / node.value : 0; + while (++i < n) { + position(c = children[i], x, d = c.value * dx, dy); + x += d; + } + } + } + + function depth(node) { + var children = node.children, + d = 0; + if (children) { + var i = -1, + n = children.length; + while (++i < n) d = Math.max(d, depth(children[i])); + } + return 1 + d; + } + + function partition(d, i) { + var nodes = hierarchy.call(this, d, i); + position(nodes[0], 0, size[0], size[1] / depth(nodes[0])); + return nodes; + } + + partition.size = function(x) { + if (!arguments.length) return size; + size = x; + return partition; + }; + + return d3_layout_hierarchyRebind(partition, hierarchy); +}; +d3.layout.pie = function() { + var value = Number, + sort = null, + startAngle = 0, + endAngle = 2 * Math.PI; + + function pie(data, i) { + + // Compute the start angle. + var a = +(typeof startAngle === "function" + ? startAngle.apply(this, arguments) + : startAngle); + + // Compute the angular range (end - start). + var k = (typeof endAngle === "function" + ? endAngle.apply(this, arguments) + : endAngle) - startAngle; + + // Optionally sort the data. + var index = d3.range(data.length); + if (sort != null) index.sort(function(i, j) { + return sort(data[i], data[j]); + }); + + // Compute the numeric values for each data element. + var values = data.map(value); + + // Convert k into a scale factor from value to angle, using the sum. + k /= values.reduce(function(p, d) { return p + d; }, 0); + + // Compute the arcs! + var arcs = index.map(function(i) { + return { + data: data[i], + value: d = values[i], + startAngle: a, + endAngle: a += d * k + }; + }); + + // Return the arcs in the original data's order. + return data.map(function(d, i) { + return arcs[index[i]]; + }); + } + + /** + * Specifies the value function *x*, which returns a nonnegative numeric value + * for each datum. The default value function is `Number`. The value function + * is passed two arguments: the current datum and the current index. + */ + pie.value = function(x) { + if (!arguments.length) return value; + value = x; + return pie; + }; + + /** + * Specifies a sort comparison operator *x*. The comparator is passed two data + * elements from the data array, a and b; it returns a negative value if a is + * less than b, a positive value if a is greater than b, and zero if a equals + * b. + */ + pie.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return pie; + }; + + /** + * Specifies the overall start angle of the pie chart. Defaults to 0. The + * start angle can be specified either as a constant or as a function; in the + * case of a function, it is evaluated once per array (as opposed to per + * element). + */ + pie.startAngle = function(x) { + if (!arguments.length) return startAngle; + startAngle = x; + return pie; + }; + + /** + * Specifies the overall end angle of the pie chart. Defaults to 2π. The + * end angle can be specified either as a constant or as a function; in the + * case of a function, it is evaluated once per array (as opposed to per + * element). + */ + pie.endAngle = function(x) { + if (!arguments.length) return endAngle; + endAngle = x; + return pie; + }; + + return pie; +}; +// data is two-dimensional array of x,y; we populate y0 +d3.layout.stack = function() { + var values = Object, + order = d3_layout_stackOrders["default"], + offset = d3_layout_stackOffsets["zero"], + out = d3_layout_stackOut, + x = d3_layout_stackX, + y = d3_layout_stackY; + + function stack(data, index) { + + // Convert series to canonical two-dimensional representation. + var series = data.map(function(d, i) { + return values.call(stack, d, i); + }); + + // Convert each series to canonical [[x,y]] representation. + var points = series.map(function(d, i) { + return d.map(function(v, i) { + return [x.call(stack, v, i), y.call(stack, v, i)]; + }); + }); + + // Compute the order of series, and permute them. + var orders = order.call(stack, points, index); + series = d3.permute(series, orders); + points = d3.permute(points, orders); + + // Compute the baseline… + var offsets = offset.call(stack, points, index); + + // And propagate it to other series. + var n = series.length, + m = series[0].length, + i, + j, + o; + for (j = 0; j < m; ++j) { + out.call(stack, series[0][j], o = offsets[j], points[0][j][1]); + for (i = 1; i < n; ++i) { + out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]); + } + } + + return data; + } + + stack.values = function(x) { + if (!arguments.length) return values; + values = x; + return stack; + }; + + stack.order = function(x) { + if (!arguments.length) return order; + order = typeof x === "function" ? x : d3_layout_stackOrders[x]; + return stack; + }; + + stack.offset = function(x) { + if (!arguments.length) return offset; + offset = typeof x === "function" ? x : d3_layout_stackOffsets[x]; + return stack; + }; + + stack.x = function(z) { + if (!arguments.length) return x; + x = z; + return stack; + }; + + stack.y = function(z) { + if (!arguments.length) return y; + y = z; + return stack; + }; + + stack.out = function(z) { + if (!arguments.length) return out; + out = z; + return stack; + }; + + return stack; +} + +function d3_layout_stackX(d) { + return d.x; +} + +function d3_layout_stackY(d) { + return d.y; +} + +function d3_layout_stackOut(d, y0, y) { + d.y0 = y0; + d.y = y; +} + +var d3_layout_stackOrders = { + + "inside-out": function(data) { + var n = data.length, + i, + j, + max = data.map(d3_layout_stackMaxIndex), + sums = data.map(d3_layout_stackReduceSum), + index = d3.range(n).sort(function(a, b) { return max[a] - max[b]; }), + top = 0, + bottom = 0, + tops = [], + bottoms = []; + for (i = 0; i < n; ++i) { + j = index[i]; + if (top < bottom) { + top += sums[j]; + tops.push(j); + } else { + bottom += sums[j]; + bottoms.push(j); + } + } + return bottoms.reverse().concat(tops); + }, + + "reverse": function(data) { + return d3.range(data.length).reverse(); + }, + + "default": function(data) { + return d3.range(data.length); + } + +}; + +var d3_layout_stackOffsets = { + + "silhouette": function(data) { + var n = data.length, + m = data[0].length, + sums = [], + max = 0, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o > max) max = o; + sums.push(o); + } + for (j = 0; j < m; ++j) { + y0[j] = (max - sums[j]) / 2; + } + return y0; + }, + + "wiggle": function(data) { + var n = data.length, + x = data[0], + m = x.length, + max = 0, + i, + j, + k, + s1, + s2, + s3, + dx, + o, + o0, + y0 = []; + y0[0] = o = o0 = 0; + for (j = 1; j < m; ++j) { + for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1]; + for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) { + for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) { + s3 += (data[k][j][1] - data[k][j - 1][1]) / dx; + } + s2 += s3 * data[i][j][1]; + } + y0[j] = o -= s1 ? s2 / s1 * dx : 0; + if (o < o0) o0 = o; + } + for (j = 0; j < m; ++j) y0[j] -= o0; + return y0; + }, + + "expand": function(data) { + var n = data.length, + m = data[0].length, + k = 1 / n, + i, + j, + o, + y0 = []; + for (j = 0; j < m; ++j) { + for (i = 0, o = 0; i < n; i++) o += data[i][j][1]; + if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; + else for (i = 0; i < n; i++) data[i][j][1] = k; + } + for (j = 0; j < m; ++j) y0[j] = 0; + return y0; + }, + + "zero": function(data) { + var j = -1, + m = data[0].length, + y0 = []; + while (++j < m) y0[j] = 0; + return y0; + } + +}; + +function d3_layout_stackMaxIndex(array) { + var i = 1, + j = 0, + v = array[0][1], + k, + n = array.length; + for (; i < n; ++i) { + if ((k = array[i][1]) > v) { + j = i; + v = k; + } + } + return j; +} + +function d3_layout_stackReduceSum(d) { + return d.reduce(d3_layout_stackSum, 0); +} + +function d3_layout_stackSum(p, d) { + return p + d[1]; +} +d3.layout.histogram = function() { + var frequency = true, + valuer = Number, + ranger = d3_layout_histogramRange, + binner = d3_layout_histogramBinSturges; + + function histogram(data, i) { + var bins = [], + values = data.map(valuer, this), + range = ranger.call(this, values, i), + thresholds = binner.call(this, range, values, i), + bin, + i = -1, + n = values.length, + m = thresholds.length - 1, + k = frequency ? 1 : 1 / n, + x; + + // Initialize the bins. + while (++i < m) { + bin = bins[i] = []; + bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]); + bin.y = 0; + } + + // Fill the bins, ignoring values outside the range. + i = -1; while(++i < n) { + x = values[i]; + if ((x >= range[0]) && (x <= range[1])) { + bin = bins[d3.bisect(thresholds, x, 1, m) - 1]; + bin.y += k; + bin.push(data[i]); + } + } + + return bins; + } + + // Specifies how to extract a value from the associated data. The default + // value function is `Number`, which is equivalent to the identity function. + histogram.value = function(x) { + if (!arguments.length) return valuer; + valuer = x; + return histogram; + }; + + // Specifies the range of the histogram. Values outside the specified range + // will be ignored. The argument `x` may be specified either as a two-element + // array representing the minimum and maximum value of the range, or as a + // function that returns the range given the array of values and the current + // index `i`. The default range is the extent (minimum and maximum) of the + // values. + histogram.range = function(x) { + if (!arguments.length) return ranger; + ranger = d3.functor(x); + return histogram; + }; + + // Specifies how to bin values in the histogram. The argument `x` may be + // specified as a number, in which case the range of values will be split + // uniformly into the given number of bins. Or, `x` may be an array of + // threshold values, defining the bins; the specified array must contain the + // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x` + // may be a function which is evaluated, being passed the range, the array of + // values, and the current index `i`, returning an array of thresholds. The + // default bin function will divide the values into uniform bins using + // Sturges' formula. + histogram.bins = function(x) { + if (!arguments.length) return binner; + binner = typeof x === "number" + ? function(range) { return d3_layout_histogramBinFixed(range, x); } + : d3.functor(x); + return histogram; + }; + + // Specifies whether the histogram's `y` value is a count (frequency) or a + // probability (density). The default value is true. + histogram.frequency = function(x) { + if (!arguments.length) return frequency; + frequency = !!x; + return histogram; + }; + + return histogram; +}; + +function d3_layout_histogramBinSturges(range, values) { + return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1)); +} + +function d3_layout_histogramBinFixed(range, n) { + var x = -1, + b = +range[0], + m = (range[1] - b) / n, + f = []; + while (++x <= n) f[x] = m * x + b; + return f; +} + +function d3_layout_histogramRange(values) { + return [d3.min(values), d3.max(values)]; +} +d3.layout.hierarchy = function() { + var sort = d3_layout_hierarchySort, + children = d3_layout_hierarchyChildren, + value = d3_layout_hierarchyValue; + + // Recursively compute the node depth and value. + // Also converts the data representation into a standard hierarchy structure. + function recurse(data, depth, nodes) { + var childs = children.call(hierarchy, data, depth), + node = d3_layout_hierarchyInline ? data : {data: data}; + node.depth = depth; + nodes.push(node); + if (childs && (n = childs.length)) { + var i = -1, + n, + c = node.children = [], + v = 0, + j = depth + 1; + while (++i < n) { + d = recurse(childs[i], j, nodes); + d.parent = node; + c.push(d); + v += d.value; + } + if (sort) c.sort(sort); + if (value) node.value = v; + } else if (value) { + node.value = +value.call(hierarchy, data, depth) || 0; + } + return node; + } + + // Recursively re-evaluates the node value. + function revalue(node, depth) { + var children = node.children, + v = 0; + if (children && (n = children.length)) { + var i = -1, + n, + j = depth + 1; + while (++i < n) v += revalue(children[i], j); + } else if (value) { + v = +value.call(hierarchy, d3_layout_hierarchyInline ? node : node.data, depth) || 0; + } + if (value) node.value = v; + return v; + } + + function hierarchy(d) { + var nodes = []; + recurse(d, 0, nodes); + return nodes; + } + + hierarchy.sort = function(x) { + if (!arguments.length) return sort; + sort = x; + return hierarchy; + }; + + hierarchy.children = function(x) { + if (!arguments.length) return children; + children = x; + return hierarchy; + }; + + hierarchy.value = function(x) { + if (!arguments.length) return value; + value = x; + return hierarchy; + }; + + // Re-evaluates the `value` property for the specified hierarchy. + hierarchy.revalue = function(root) { + revalue(root, 0); + return root; + }; + + return hierarchy; +}; + +// A method assignment helper for hierarchy subclasses. +function d3_layout_hierarchyRebind(object, hierarchy) { + object.sort = d3.rebind(object, hierarchy.sort); + object.children = d3.rebind(object, hierarchy.children); + object.links = d3_layout_hierarchyLinks; + object.value = d3.rebind(object, hierarchy.value); + + // If the new API is used, enabling inlining. + object.nodes = function(d) { + d3_layout_hierarchyInline = true; + return (object.nodes = object)(d); + }; + + return object; +} + +function d3_layout_hierarchyChildren(d) { + return d.children; +} + +function d3_layout_hierarchyValue(d) { + return d.value; +} + +function d3_layout_hierarchySort(a, b) { + return b.value - a.value; +} + +// Returns an array source+target objects for the specified nodes. +function d3_layout_hierarchyLinks(nodes) { + return d3.merge(nodes.map(function(parent) { + return (parent.children || []).map(function(child) { + return {source: parent, target: child}; + }); + })); +} + +// For backwards-compatibility, don't enable inlining by default. +var d3_layout_hierarchyInline = false; +d3.layout.pack = function() { + var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), + size = [1, 1]; + + function pack(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0]; + + // Recursively compute the layout. + root.x = 0; + root.y = 0; + d3_layout_packTree(root); + + // Scale the layout to fit the requested size. + var w = size[0], + h = size[1], + k = 1 / Math.max(2 * root.r / w, 2 * root.r / h); + d3_layout_packTransform(root, w / 2, h / 2, k); + + return nodes; + } + + pack.size = function(x) { + if (!arguments.length) return size; + size = x; + return pack; + }; + + return d3_layout_hierarchyRebind(pack, hierarchy); +}; + +function d3_layout_packSort(a, b) { + return a.value - b.value; +} + +function d3_layout_packInsert(a, b) { + var c = a._pack_next; + a._pack_next = b; + b._pack_prev = a; + b._pack_next = c; + c._pack_prev = b; +} + +function d3_layout_packSplice(a, b) { + a._pack_next = b; + b._pack_prev = a; +} + +function d3_layout_packIntersects(a, b) { + var dx = b.x - a.x, + dy = b.y - a.y, + dr = a.r + b.r; + return (dr * dr - dx * dx - dy * dy) > .001; // within epsilon +} + +function d3_layout_packCircle(nodes) { + var xMin = Infinity, + xMax = -Infinity, + yMin = Infinity, + yMax = -Infinity, + n = nodes.length, + a, b, c, j, k; + + function bound(node) { + xMin = Math.min(node.x - node.r, xMin); + xMax = Math.max(node.x + node.r, xMax); + yMin = Math.min(node.y - node.r, yMin); + yMax = Math.max(node.y + node.r, yMax); + } + + // Create node links. + nodes.forEach(d3_layout_packLink); + + // Create first node. + a = nodes[0]; + a.x = -a.r; + a.y = 0; + bound(a); + + // Create second node. + if (n > 1) { + b = nodes[1]; + b.x = b.r; + b.y = 0; + bound(b); + + // Create third node and build chain. + if (n > 2) { + c = nodes[2]; + d3_layout_packPlace(a, b, c); + bound(c); + d3_layout_packInsert(a, c); + a._pack_prev = c; + d3_layout_packInsert(c, b); + b = a._pack_next; + + // Now iterate through the rest. + for (var i = 3; i < n; i++) { + d3_layout_packPlace(a, b, c = nodes[i]); + + // Search for the closest intersection. + var isect = 0, s1 = 1, s2 = 1; + for (j = b._pack_next; j !== b; j = j._pack_next, s1++) { + if (d3_layout_packIntersects(j, c)) { + isect = 1; + break; + } + } + if (isect == 1) { + for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) { + if (d3_layout_packIntersects(k, c)) { + if (s2 < s1) { + isect = -1; + j = k; + } + break; + } + } + } + + // Update node chain. + if (isect == 0) { + d3_layout_packInsert(a, c); + b = c; + bound(c); + } else if (isect > 0) { + d3_layout_packSplice(a, j); + b = j; + i--; + } else { // isect < 0 + d3_layout_packSplice(j, b); + a = j; + i--; + } + } + } + } + + // Re-center the circles and return the encompassing radius. + var cx = (xMin + xMax) / 2, + cy = (yMin + yMax) / 2, + cr = 0; + for (var i = 0; i < n; i++) { + var node = nodes[i]; + node.x -= cx; + node.y -= cy; + cr = Math.max(cr, node.r + Math.sqrt(node.x * node.x + node.y * node.y)); + } + + // Remove node links. + nodes.forEach(d3_layout_packUnlink); + + return cr; +} + +function d3_layout_packLink(node) { + node._pack_next = node._pack_prev = node; +} + +function d3_layout_packUnlink(node) { + delete node._pack_next; + delete node._pack_prev; +} + +function d3_layout_packTree(node) { + var children = node.children; + if (children && children.length) { + children.forEach(d3_layout_packTree); + node.r = d3_layout_packCircle(children); + } else { + node.r = Math.sqrt(node.value); + } +} + +function d3_layout_packTransform(node, x, y, k) { + var children = node.children; + node.x = (x += k * node.x); + node.y = (y += k * node.y); + node.r *= k; + if (children) { + var i = -1, n = children.length; + while (++i < n) d3_layout_packTransform(children[i], x, y, k); + } +} + +function d3_layout_packPlace(a, b, c) { + var db = a.r + c.r, + dx = b.x - a.x, + dy = b.y - a.y; + if (db && (dx || dy)) { + var da = b.r + c.r, + dc = Math.sqrt(dx * dx + dy * dy), + cos = Math.max(-1, Math.min(1, (db * db + dc * dc - da * da) / (2 * db * dc))), + theta = Math.acos(cos), + x = cos * (db /= dc), + y = Math.sin(theta) * db; + c.x = a.x + x * dx + y * dy; + c.y = a.y + x * dy - y * dx; + } else { + c.x = a.x + db; + c.y = a.y; + } +} +// Implements a hierarchical layout using the cluster (or dendogram) algorithm. +d3.layout.cluster = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + separation = d3_layout_treeSeparation, + size = [1, 1]; // width, height + + function cluster(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0], + previousNode, + x = 0, + kx, + ky; + + // First walk, computing the initial x & y values. + d3_layout_treeVisitAfter(root, function(node) { + var children = node.children; + if (children && children.length) { + node.x = d3_layout_clusterX(children); + node.y = d3_layout_clusterY(children); + } else { + node.x = previousNode ? x += separation(node, previousNode) : 0; + node.y = 0; + previousNode = node; + } + }); + + // Compute the left-most, right-most, and depth-most nodes for extents. + var left = d3_layout_clusterLeft(root), + right = d3_layout_clusterRight(root), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2; + + // Second walk, normalizing x & y to the desired size. + d3_layout_treeVisitAfter(root, function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = (1 - node.y / root.y) * size[1]; + }); + + return nodes; + } + + cluster.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return cluster; + }; + + cluster.size = function(x) { + if (!arguments.length) return size; + size = x; + return cluster; + }; + + return d3_layout_hierarchyRebind(cluster, hierarchy); +}; + +function d3_layout_clusterY(children) { + return 1 + d3.max(children, function(child) { + return child.y; + }); +} + +function d3_layout_clusterX(children) { + return children.reduce(function(x, child) { + return x + child.x; + }, 0) / children.length; +} + +function d3_layout_clusterLeft(node) { + var children = node.children; + return children && children.length ? d3_layout_clusterLeft(children[0]) : node; +} + +function d3_layout_clusterRight(node) { + var children = node.children, n; + return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node; +} +// Node-link tree diagram using the Reingold-Tilford "tidy" algorithm +d3.layout.tree = function() { + var hierarchy = d3.layout.hierarchy().sort(null).value(null), + separation = d3_layout_treeSeparation, + size = [1, 1]; // width, height + + function tree(d, i) { + var nodes = hierarchy.call(this, d, i), + root = nodes[0]; + + function firstWalk(node, previousSibling) { + var children = node.children, + layout = node._tree; + if (children && (n = children.length)) { + var n, + firstChild = children[0], + previousChild, + ancestor = firstChild, + child, + i = -1; + while (++i < n) { + child = children[i]; + firstWalk(child, previousChild); + ancestor = apportion(child, previousChild, ancestor); + previousChild = child; + } + d3_layout_treeShift(node); + var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim); + if (previousSibling) { + layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); + layout.mod = layout.prelim - midpoint; + } else { + layout.prelim = midpoint; + } + } else { + if (previousSibling) { + layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling); + } + } + } + + function secondWalk(node, x) { + node.x = node._tree.prelim + x; + var children = node.children; + if (children) { + var i = -1, + n = children.length; + x += node._tree.mod; + while (++i < n) { + secondWalk(children[i], x); + } + } + } + + function apportion(node, previousSibling, ancestor) { + if (previousSibling) { + var vip = node, + vop = node, + vim = previousSibling, + vom = node.parent.children[0], + sip = vip._tree.mod, + sop = vop._tree.mod, + sim = vim._tree.mod, + som = vom._tree.mod, + shift; + while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) { + vom = d3_layout_treeLeft(vom); + vop = d3_layout_treeRight(vop); + vop._tree.ancestor = node; + shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip); + if (shift > 0) { + d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift); + sip += shift; + sop += shift; + } + sim += vim._tree.mod; + sip += vip._tree.mod; + som += vom._tree.mod; + sop += vop._tree.mod; + } + if (vim && !d3_layout_treeRight(vop)) { + vop._tree.thread = vim; + vop._tree.mod += sim - sop; + } + if (vip && !d3_layout_treeLeft(vom)) { + vom._tree.thread = vip; + vom._tree.mod += sip - som; + ancestor = node; + } + } + return ancestor; + } + + // Initialize temporary layout variables. + d3_layout_treeVisitAfter(root, function(node, previousSibling) { + node._tree = { + ancestor: node, + prelim: 0, + mod: 0, + change: 0, + shift: 0, + number: previousSibling ? previousSibling._tree.number + 1 : 0 + }; + }); + + // Compute the layout using Buchheim et al.'s algorithm. + firstWalk(root); + secondWalk(root, -root._tree.prelim); + + // Compute the left-most, right-most, and depth-most nodes for extents. + var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), + right = d3_layout_treeSearch(root, d3_layout_treeRightmost), + deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), + x0 = left.x - separation(left, right) / 2, + x1 = right.x + separation(right, left) / 2, + y1 = deep.depth || 1; + + // Clear temporary layout variables; transform x and y. + d3_layout_treeVisitAfter(root, function(node) { + node.x = (node.x - x0) / (x1 - x0) * size[0]; + node.y = node.depth / y1 * size[1]; + delete node._tree; + }); + + return nodes; + } + + tree.separation = function(x) { + if (!arguments.length) return separation; + separation = x; + return tree; + }; + + tree.size = function(x) { + if (!arguments.length) return size; + size = x; + return tree; + }; + + return d3_layout_hierarchyRebind(tree, hierarchy); +}; + +function d3_layout_treeSeparation(a, b) { + return a.parent == b.parent ? 1 : 2; +} + +// function d3_layout_treeSeparationRadial(a, b) { +// return (a.parent == b.parent ? 1 : 2) / a.depth; +// } + +function d3_layout_treeLeft(node) { + return node.children ? node.children[0] : node._tree.thread; +} + +function d3_layout_treeRight(node) { + return node.children ? node.children[node.children.length - 1] : node._tree.thread; +} + +function d3_layout_treeSearch(node, compare) { + var children = node.children; + if (children) { + var child, + n = children.length, + i = -1; + while (++i < n) { + if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) { + node = child; + } + } + } + return node; +} + +function d3_layout_treeRightmost(a, b) { + return a.x - b.x; +} + +function d3_layout_treeLeftmost(a, b) { + return b.x - a.x; +} + +function d3_layout_treeDeepest(a, b) { + return a.depth - b.depth; +} + +function d3_layout_treeVisitAfter(node, callback) { + function visit(node, previousSibling) { + var children = node.children; + if (children) { + var child, + previousChild = null, + i = -1, + n = children.length; + while (++i < n) { + child = children[i]; + visit(child, previousChild); + previousChild = child; + } + } + callback(node, previousSibling); + } + visit(node, null); +} + +function d3_layout_treeShift(node) { + var shift = 0, + change = 0, + children = node.children, + i = children.length, + child; + while (--i >= 0) { + child = children[i]._tree; + child.prelim += shift; + child.mod += shift; + shift += child.shift + (change += child.change); + } +} + +function d3_layout_treeMove(ancestor, node, shift) { + ancestor = ancestor._tree; + node = node._tree; + var change = shift / (node.number - ancestor.number); + ancestor.change += change; + node.change -= change; + node.shift += shift; + node.prelim += shift; + node.mod += shift; +} + +function d3_layout_treeAncestor(vim, node, ancestor) { + return vim._tree.ancestor.parent == node.parent + ? vim._tree.ancestor + : ancestor; +} +// Squarified Treemaps by Mark Bruls, Kees Huizing, and Jarke J. van Wijk +// Modified to support a target aspect ratio by Jeff Heer +d3.layout.treemap = function() { + var hierarchy = d3.layout.hierarchy(), + round = Math.round, + size = [1, 1], // width, height + padding = null, + pad = d3_layout_treemapPadNull, + sticky = false, + stickies, + ratio = 0.5 * (1 + Math.sqrt(5)); // golden ratio + + // Compute the area for each child based on value & scale. + function scale(children, k) { + var i = -1, + n = children.length, + child, + area; + while (++i < n) { + area = (child = children[i]).value * (k < 0 ? 0 : k); + child.area = isNaN(area) || area <= 0 ? 0 : area; + } + } + + // Recursively arranges the specified node's children into squarified rows. + function squarify(node) { + if (!node.children) return; + var rect = pad(node), + row = [], + children = node.children.slice(), // copy-on-write + child, + best = Infinity, // the best row score so far + score, // the current row score + u = Math.min(rect.dx, rect.dy), // initial orientation + n; + scale(children, rect.dx * rect.dy / node.value); + row.area = 0; + while ((n = children.length) > 0) { + row.push(child = children[n - 1]); + row.area += child.area; + if ((score = worst(row, u)) <= best) { // continue with this orientation + children.pop(); + best = score; + } else { // abort, and try a different orientation + row.area -= row.pop().area; + position(row, u, rect, false); + u = Math.min(rect.dx, rect.dy); + row.length = row.area = 0; + best = Infinity; + } + } + if (row.length) { + position(row, u, rect, true); + row.length = row.area = 0; + } + node.children.forEach(squarify); + } + + // Recursively resizes the specified node's children into existing rows. + // Preserves the existing layout! + function stickify(node) { + if (!node.children) return; + var rect = pad(node), + children = node.children.slice(), // copy-on-write + child, + row = []; + scale(children, rect.dx * rect.dy / node.value); + row.area = 0; + while (child = children.pop()) { + row.push(child); + row.area += child.area; + if (child.z != null) { + position(row, child.z ? rect.dx : rect.dy, rect, !children.length); + row.length = row.area = 0; + } + } + node.children.forEach(stickify); + } + + // Computes the score for the specified row, as the worst aspect ratio. + function worst(row, u) { + var s = row.area, + r, + rmax = 0, + rmin = Infinity, + i = -1, + n = row.length; + while (++i < n) { + if (!(r = row[i].area)) continue; + if (r < rmin) rmin = r; + if (r > rmax) rmax = r; + } + s *= s; + u *= u; + return s + ? Math.max((u * rmax * ratio) / s, s / (u * rmin * ratio)) + : Infinity; + } + + // Positions the specified row of nodes. Modifies `rect`. + function position(row, u, rect, flush) { + var i = -1, + n = row.length, + x = rect.x, + y = rect.y, + v = u ? round(row.area / u) : 0, + o; + if (u == rect.dx) { // horizontal subdivision + if (flush || v > rect.dy) v = v ? rect.dy : 0; // over+underflow + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dy = v; + x += o.dx = v ? round(o.area / v) : 0; + } + o.z = true; + o.dx += rect.x + rect.dx - x; // rounding error + rect.y += v; + rect.dy -= v; + } else { // vertical subdivision + if (flush || v > rect.dx) v = v ? rect.dx : 0; // over+underflow + while (++i < n) { + o = row[i]; + o.x = x; + o.y = y; + o.dx = v; + y += o.dy = v ? round(o.area / v) : 0; + } + o.z = false; + o.dy += rect.y + rect.dy - y; // rounding error + rect.x += v; + rect.dx -= v; + } + } + + function treemap(d) { + var nodes = stickies || hierarchy(d), + root = nodes[0]; + root.x = 0; + root.y = 0; + root.dx = size[0]; + root.dy = size[1]; + if (stickies) hierarchy.revalue(root); + scale([root], root.dx * root.dy / root.value); + (stickies ? stickify : squarify)(root); + if (sticky) stickies = nodes; + return nodes; + } + + treemap.size = function(x) { + if (!arguments.length) return size; + size = x; + return treemap; + }; + + treemap.padding = function(x) { + if (!arguments.length) return padding; + + function padFunction(node) { + var p = x.call(treemap, node, node.depth); + return p == null + ? d3_layout_treemapPadNull(node) + : d3_layout_treemapPad(node, typeof p === "number" ? [p, p, p, p] : p); + } + + function padConstant(node) { + return d3_layout_treemapPad(node, x); + } + + var type; + pad = (padding = x) == null ? d3_layout_treemapPadNull + : (type = typeof x) === "function" ? padFunction + : type === "number" ? (x = [x, x, x, x], padConstant) + : padConstant; + return treemap; + }; + + treemap.round = function(x) { + if (!arguments.length) return round != Number; + round = x ? Math.round : Number; + return treemap; + }; + + treemap.sticky = function(x) { + if (!arguments.length) return sticky; + sticky = x; + stickies = null; + return treemap; + }; + + treemap.ratio = function(x) { + if (!arguments.length) return ratio; + ratio = x; + return treemap; + }; + + return d3_layout_hierarchyRebind(treemap, hierarchy); +}; + +function d3_layout_treemapPadNull(node) { + return {x: node.x, y: node.y, dx: node.dx, dy: node.dy}; +} + +function d3_layout_treemapPad(node, padding) { + var x = node.x + padding[3], + y = node.y + padding[0], + dx = node.dx - padding[1] - padding[3], + dy = node.dy - padding[0] - padding[2]; + if (dx < 0) { x += dx / 2; dx = 0; } + if (dy < 0) { y += dy / 2; dy = 0; } + return {x: x, y: y, dx: dx, dy: dy}; +} +})(); diff --git a/talk/20110921/d3/d3.layout.min.js b/talk/20110921/d3/d3.layout.min.js new file mode 100755 index 0000000000000..e49c8c711920e --- /dev/null +++ b/talk/20110921/d3/d3.layout.min.js @@ -0,0 +1 @@ +(function(){function bc(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];e<0&&(c+=e/2,e=0),f<0&&(d+=f/2,f=0);return{x:c,y:d,dx:e,dy:f}}function bb(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function ba(a,b,c){return a._tree.ancestor.parent==b.parent?a._tree.ancestor:c}function _(a,b,c){a=a._tree,b=b._tree;var d=c/(b.number-a.number);a.change+=d,b.change-=d,b.shift+=c,b.prelim+=c,b.mod+=c}function $(a){var b=0,c=0,d=a.children,e=d.length,f;while(--e>=0)f=d[e]._tree,f.prelim+=b,f.mod+=b,b+=f.shift+(c+=f.change)}function Z(a,b){function c(a,d){var e=a.children;if(e){var f,g=null,h=-1,i=e.length;while(++h0&&(a=d)}return a}function U(a){return a.children?a.children[a.children.length-1]:a._tree.thread}function T(a){return a.children?a.children[0]:a._tree.thread}function S(a,b){return a.parent==b.parent?1:2}function R(a){var b=a.children,c;return b&&(c=b.length)?R(b[c-1]):a}function Q(a){var b=a.children;return b&&b.length?Q(b[0]):a}function P(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function O(a){return 1+d3.max(a,function(a){return a.y})}function N(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var g=b.r+c.r,h=Math.sqrt(e*e+f*f),i=Math.max(-1,Math.min(1,(d*d+h*h-g*g)/(2*d*h))),j=Math.acos(i),k=i*(d/=h),l=Math.sin(j)*d;c.x=a.x+k*e+l*f,c.y=a.y+k*f-l*e}else c.x=a.x+d,c.y=a.y}function M(a,b,c,d){var e=a.children;a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d;if(e){var f=-1,g=e.length;while(++f1){h=a[1],h.x=h.r,h.y=0,l(h);if(f>2){i=a[2],N(g,h,i),l(i),F(g,i),g._pack_prev=i,F(i,h),h=g._pack_next;for(var m=3;m0?(G(g,j),h=j,m--):(G(j,h),g=j,m--)}}}var q=(b+c)/2,r=(d+e)/2,s=0;for(var m=0;m.001}function G(a,b){a._pack_next=b,b._pack_prev=a}function F(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function E(a,b){return a.value-b.value}function C(a){return d3.merge(a.map(function(a){return(a.children||[]).map(function(b){return{source:a,target:b}})}))}function B(a,b){return b.value-a.value}function A(a){return a.value}function z(a){return a.children}function y(a,b){a.sort=d3.rebind(a,b.sort),a.children=d3.rebind(a,b.children),a.links=C,a.value=d3.rebind(a,b.value),a.nodes=function(b){D=!0;return(a.nodes=a)(b)};return a}function x(a){return[d3.min(a),d3.max(a)]}function w(a,b){var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];while(++c<=b)f[c]=e*c+d;return f}function v(a,b){return w(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function u(a,b){return a+b[1]}function t(a){return a.reduce(u,0)}function s(a){var b=1,c=0,d=a[0][1],e,f=a.length;for(;bd&&(c=b,d=e);return c}function p(a,b,c){a.y0=b,a.y=c}function o(a){return a.y}function n(a){return a.x}function m(a){return 1}function l(a){return 20}function k(a,b,c){var d=0,e=0;a.charge=0;if(!a.leaf){var f=a.nodes,g=f.length,h=-1,i;while(++he&&(e=h),d.push(h)}for(g=0;g=i[0]&&o<=i[1]&&(k=g[d3.bisect(j,o,1,m)-1],k.y+=n,k.push(e[f]));return g}var a=!0,b=Number,c=x,d=v;e.value=function(a){if(!arguments.length)return b;b=a;return e},e.range=function(a){if(!arguments.length)return c;c=d3.functor(a);return e},e.bins=function(a){if(!arguments.length)return d;d=typeof a=="number"?function(b){return w(b,a)}:d3.functor(a);return e},e.frequency=function(b){if(!arguments.length)return a;a=!!b;return e};return e},d3.layout.hierarchy=function(){function g(a){var b=[];e(a,0,b);return b}function f(a,b){var d=a.children,e=0;if(d&&(i=d.length)){var h=-1,i,j=b+1;while(++h0&&(_(ba(g,a,d),a,m),i+=m,j+=m),k+=g._tree.mod,i+=e._tree.mod,l+=h._tree.mod,j+=f._tree.mod;g&&!U(f)&&(f._tree.thread=g,f._tree.mod+=k-j),e&&!T(h)&&(h._tree.thread=e,h._tree.mod+=i-l,d=a)}return d}function i(a,b){a.x=a._tree.prelim+b;var c=a.children;if(c){var d=-1,e=c.length;b+=a._tree.mod;while(++dd.dy)j=j?d.dy:0;while(++fd.dx)j=j?d.dx:0;while(++fe&&(e=d)}c*=c,b*=b;return c?Math.max(b*e*h/c,c/(b*f*h)):Infinity}function k(a){if(!!a.children){var b=e(a),c=a.children.slice(),d,f=[];i(c,b.dx*b.dy/a.value),f.area=0;while(d=c.pop())f.push(d),f.area+=d.area,d.z!=null&&(m(f,d.z?b.dx:b.dy,b,!c.length),f.length=f.area=0);a.children.forEach(k)}}function j(a){if(!!a.children){var b=e(a),c=[],d=a.children.slice(),f,g=Infinity,h,k=Math.min(b.dx,b.dy),n;i(d,b.dx*b.dy/a.value),c.area=0;while((n=d.length)>0)c.push(f=d[n-1]),c.area+=f.area,(h=l(c,k))<=g?(d.pop(),g=h):(c.area-=c.pop().area,m(c,k,b,!1),k=Math.min(b.dx,b.dy),c.length=c.area=0,g=Infinity);c.length&&(m(c,k,b,!0),c.length=c.area=0),a.children.forEach(j)}}function i(a,b){var c=-1,d=a.length,e,f;while(++c1){var d=bq(a.domain()),e,f=-1,g=b.length,h=(b[1]-b[0])/++c,i,j;while(++f0;)(j=+b[f]-i*h)>=d[0]&&e.push(j);for(--f,i=0;++i9&&(f=c*3/Math.sqrt(f),g[h]=f*d,g[h+1]=f*e));h=-1;while(++h<=i)f=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),b.push([f||0,g[h]*f||0]);return b}function cp(a){var b=0,c=a.length-1,d=[],e=a[0],f=a[1],g=d[0]=co(e,f);while(++b1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j0;j--)e.push(c(f)*j)}else{for(;fi;g--);e=e.slice(f,g)}return e},d.tickFormat=function(){return bE},d.copy=function(){return bB(a.copy(),b)};return bu(d,a)}function bA(a,b,c,d){var e=[],f=[],g=0,h=a.length;while(++g=c.delay&&(c.flush=c.callback(a)),c=c.next;var d=bn()-b;d>24?(isFinite(d)&&(clearTimeout(bl),bl=setTimeout(bm,d)),bk=0):(bk=1,bo(bm))}function bi(a){for(var b=0,c=this.length;b0)k[--g].call(l,d);if(c>=1){r(),bg=b,e.end.dispatch.call(l,h,i),bg=0;return 1}}function p(a){if(o.active>b)return r();o.active=b;for(var d in c)(d=c[d].call(l,h,i))&&k.push(d);e.start.dispatch.call(l,h,i),q(a)||d3.timer(q,0,g);return 1}var k=[],l=this,m=a[j][i].delay,n=a[j][i].duration,o=l.__transition__||(l.__transition__={active:0,count:0});++o.count,m<=d?p(d):d3.timer(p,m,g)});return 1},0,g);return a}function ba(a){arguments.length||(a=d3.ascending);return function(b,c){return a(b&&b.__data__,c&&c.__data__)}}function $(a){d(a,_);return a}function Z(a){return{__data__:a}}function Y(a){return function(){return V(a,this)}}function X(a){return function(){return U(a,this)}}function T(a){d(a,W);return a}function S(a,b,c){function g(a){return Math.round(f(a)*255)}function f(a){a>360?a-=360:a<0&&(a+=360);return a<60?d+(e-d)*a/60:a<180?e:a<240?d+(e-d)*(240-a)/60:d}var d,e;a=a%360,a<0&&(a+=360),b=b<0?0:b>1?1:b,c=c<0?0:c>1?1:c,e=c<=.5?c*(1+b):c+b-c*b,d=2*c-e;return I(g(a+120),g(a),g(a-120))}function R(a,b,c){this.h=a,this.s=b,this.l=c}function Q(a,b,c){return new R(a,b,c)}function N(a){var b=parseFloat(a);return a.charAt(a.length-1)==="%"?Math.round(b*2.55):b}function M(a,b,c){var d=Math.min(a/=255,b/=255,c/=255),e=Math.max(a,b,c),f=e-d,g,h,i=(e+d)/2;f?(h=i<.5?f/(e+d):f/(2-e-d),a==e?g=(b-c)/f+(b=1?1:a(b)}}function n(a){var b=a.lastIndexOf("."),c=b>=0?a.substring(b):(b=a.length,""),d=[];while(b>0)d.push(a.substring(b-=3,b+3));return d.reverse().join(",")+c}function m(a){return a+""}function j(a){var b={},c=[];b.add=function(a){for(var d=0;db?1:a>=b?0:NaN},d3.descending=function(a,b){return ba?1:b>=a?0:NaN},d3.min=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++cf&&(e=f)}else{while(++cf&&(e=f)}return e},d3.max=function(a,b){var c=-1,d=a.length,e,f;if(arguments.length===1){while(++ce&&(e=f)}else{while(++ce&&(e=f)}return e},d3.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(arguments.length===1)while(++f>1;a[e]>1;b0&&(e=f);return e},d3.last=function(a,b){var c=0,d=a.length,e=a[0],f;arguments.length===1&&(b=d3.ascending);while(++c=b.length)return a;var e=[],f=c[d++],h;for(h in a)e.push({key:h,values:g(a[h],d)});f&&e.sort(function(a,b){return f(a.key,b.key)});return e}function f(c,g){if(g>=b.length)return e?e.call(a,c):d?c.sort(d):c;var h=-1,i=c.length,j=b[g++],k,l,m={};while(++hb)d.push(f);else while((f=a+c*++e)=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,l={g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){var c=1+Math.floor(1e-15+Math.log(a)/Math.LN10);return d3.round(a,b-c).toFixed(Math.max(0,Math.min(20,b-c)))}},o=w(2),p=w(3),q={linear:function(){return v},poly:w,quad:function(){return o},cubic:function(){return p},sin:function(){return x},exp:function(){return y},circle:function(){return z},elastic:A,back:B,bounce:function(){return C}},r={"in":function(a){return a},out:t,"in-out":u,"out-in":function(a){return u(t(a))}};d3.ease=function(a){var b=a.indexOf("-"),c=b>=0?a.substring(0,b):a,d=b>=0?a.substring(b+1):"in";return s(r[d](q[c].apply(null,Array.prototype.slice.call(arguments,1))))},d3.event=null,d3.interpolate=function(a,b){var c=d3.interpolators.length,d;while(--c>=0&&!(d=d3.interpolators[c](a,b)));return d},d3.interpolateNumber=function(a,b){b-=a;return function(c){return a+b*c}},d3.interpolateRound=function(a,b){b-=a;return function(c){return Math.round(a+b*c)}},d3.interpolateString=function(a,b){var c,d,e,f=0,g=0,h=[],i=[],j,k;D.lastIndex=0;for(d=0;c=D.exec(b);++d)c.index&&h.push(b.substring(f,g=c.index)),i.push({i:h.length,x:c[0]}),h.push(null),f=D.lastIndex;f0&&(a=a.substring(0,e));return arguments.length<2?(e=this.node()[d])&&e._:this.each(function(e,f){function h(a){var c=d3.event;d3.event=a;try{b.call(g,g.__data__,f)}finally{d3.event=c}}var g=this;g[d]&&g.removeEventListener(a,g[d],c),b&&g.addEventListener(a,g[d]=h,c),h._=b})},W.each=function(a){for(var b=-1,c=this.length;++b=bP?e?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+e+"A"+e+","+e+" 0 1,0 0,"+ -e+"A"+e+","+e+" 0 1,0 0,"+e+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+ -f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":e?"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L"+e*m+","+e*n+"A"+e+","+e+" 0 "+j+",0 "+e*k+","+e*l+"Z":"M"+f*k+","+f*l+"A"+f+","+f+" 0 "+j+",1 "+f*m+","+f*n+"L0,0"+"Z"}var a=bQ,b=bR,c=bS,d=bT;e.innerRadius=function(b){if(!arguments.length)return a;a=d3.functor(b);return e},e.outerRadius=function(a){if(!arguments.length)return b;b=d3.functor(a);return e},e.startAngle=function(a){if(!arguments.length)return c;c=d3.functor(a);return e},e.endAngle=function(a){if(!arguments.length)return d;d=d3.functor(a);return e},e.centroid=function(){var e=(a.apply(this,arguments)+b.apply(this,arguments))/2,f=(c.apply(this,arguments)+d.apply(this,arguments))/2+bO;return[Math.cos(f)*e,Math.sin(f)*e]};return e};var bO=-Math.PI/2,bP=2*Math.PI-1e-6;d3.svg.line=function(){return bU(Object)};var bY={linear:bZ,"step-before":b$,"step-after":b_,basis:cf,"basis-open":cg,"basis-closed":ch,bundle:ci,cardinal:cc,"cardinal-open":ca,"cardinal-closed":cb,monotone:cr},ck=[0,2/3,1/3,0],cl=[0,1/3,2/3,0],cm=[0,1/6,2/3,1/6];d3.svg.line.radial=function(){var a=bU(cs);a.radius=a.x,delete a.x,a.angle=a.y,delete a.y;return a},d3.svg.area=function(){return ct(Object)},d3.svg.area.radial=function(){var a=ct(cs);a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1;return a},d3.svg.chord=function(){function j(a,b,c,d){return"Q 0,0 "+d}function i(a,b){return"A"+a+","+a+" 0 0,1 "+b}function h(a,b){return a.a0==b.a0&&a.a1==b.a1}function g(a,b,f,g){var h=b.call(a,f,g),i=c.call(a,h,g),j=d.call(a,h,g)+bO,k=e.call(a,h,g)+bO;return{r:i,a0:j,a1:k,p0:[i*Math.cos(j),i*Math.sin(j)],p1:[i*Math.cos(k),i*Math.sin(k)]}}function f(c,d){var e=g(this,a,c,d),f=g(this,b,c,d);return"M"+e.p0+i(e.r,e.p1)+(h(e,f)?j(e.r,e.p1,e.r,e.p0):j(e.r,e.p1,f.r,f.p0)+i(f.r,f.p1)+j(f.r,f.p1,e.r,e.p0))+"Z"}var a=cw,b=cx,c=cy,d=bS,e=bT;f.radius=function(a){if(!arguments.length)return c;c=d3.functor(a);return f},f.source=function(b){if(!arguments.length)return a;a=d3.functor(b);return f},f.target=function(a){if(!arguments.length)return b;b=d3.functor(a);return f},f.startAngle=function(a){if(!arguments.length)return d;d=d3.functor(a);return f},f.endAngle=function(a){if(!arguments.length)return e;e=d3.functor(a);return f};return f},d3.svg.diagonal=function(){function d(d,e){var f=a.call(this,d,e),g=b.call(this,d,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];i=i.map(c);return"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var a=cw,b=cx,c=cB;d.source=function(b){if(!arguments.length)return a;a=d3.functor(b);return d},d.target=function(a){if(!arguments.length)return b;b=d3.functor(a);return d},d.projection=function(a){if(!arguments.length)return c;c=a;return d};return d},d3.svg.diagonal.radial=function(){var a=d3.svg.diagonal(),b=cB,c=a.projection;a.projection=function(a){return arguments.length?c(cC(b=a)):b};return a},d3.svg.mouse=function(a){return cE(a,d3.event)};var cD=/WebKit/.test(navigator.userAgent)?-1:0;d3.svg.touches=function(a){var b=d3.event.touches;return b?Array.prototype.map.call(b,function(b){var c=cE(a,b);c.identifier=b.identifier;return c}):[]},d3.svg.symbol=function(){function c(c,d){return(cH[a.call(this,c,d)]||cH.circle)(b.call(this,c,d))}var a=cG,b=cF;c.type=function(b){if(!arguments.length)return a;a=d3.functor(b);return c},c.size=function(a){if(!arguments.length)return b;b=d3.functor(a);return c};return c};var cH={circle:function(a){var b=Math.sqrt(a/Math.PI);return"M0,"+b+"A"+b+","+b+" 0 1,1 0,"+ -b+"A"+b+","+b+" 0 1,1 0,"+b+"Z"},cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+ -3*b+","+ -b+"H"+ -b+"V"+ -3*b+"H"+b+"V"+ -b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+ -b+"V"+b+"H"+ -3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*cJ)),c=b*cJ;return"M0,"+ -b+"L"+c+",0"+" 0,"+b+" "+ -c+",0"+"Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+ -b+","+ -b+"L"+b+","+ -b+" "+b+","+b+" "+ -b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/cI),c=b*cI/2;return"M0,"+c+"L"+b+","+ -c+" "+ -b+","+ -c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/cI),c=b*cI/2;return"M0,"+ -c+"L"+b+","+c+" "+ -b+","+c+"Z"}};d3.svg.symbolTypes=d3.keys(cH);var cI=Math.sqrt(3),cJ=Math.tan(30*Math.PI/180);d3.svg.axis=function(){function j(j){j.each(function(k,l,m){function F(a){return j.delay?a.transition().delay(j[m][l].delay).duration(j[m][l].duration).ease(j.ease()):a}var n=d3.select(this),o=a.ticks.apply(a,g),p=h==null?a.tickFormat.apply(a,g):h,q=cM(a,o,i),r=n.selectAll(".minor").data(q,String),s=r.enter().insert("svg:line","g").attr("class","tick minor").style("opacity",1e-6),t=F(r.exit()).style("opacity",1e-6).remove(),u=F(r).style("opacity",1),v=n.selectAll("g").data(o,String),w=v.enter().insert("svg:g","path").style("opacity",1e-6),x=F(v.exit()).style("opacity",1e-6).remove(),y=F(v).style("opacity",1),z,A=bq(a.range()),B=n.selectAll(".domain").data([0]),C=B.enter().append("svg:path").attr("class","domain"),D=F(B),E=this.__chart__||a;this.__chart__=a.copy(),w.append("svg:line").attr("class","tick"),w.append("svg:text"),y.select("text").text(p);switch(b){case"bottom":z=cK,u.attr("y2",d),w.select("text").attr("dy",".71em").attr("text-anchor","middle"),y.select("line").attr("y2",c),y.select("text").attr("y",Math.max(c,0)+f),D.attr("d","M"+A[0]+","+e+"V0H"+A[1]+"V"+e);break;case"top":z=cK,u.attr("y2",-d),w.select("text").attr("text-anchor","middle"),y.select("line").attr("y2",-c),y.select("text").attr("y",-(Math.max(c,0)+f)),D.attr("d","M"+A[0]+","+ -e+"V0H"+A[1]+"V"+ -e);break;case"left":z=cL,u.attr("x2",-d),w.select("text").attr("dy",".32em").attr("text-anchor","end"),y.select("line").attr("x2",-c),y.select("text").attr("x",-(Math.max(c,0)+f)),D.attr("d","M"+ -e+","+A[0]+"H0V"+A[1]+"H"+ -e);break;case"right":z=cL,u.attr("x2",d),w.select("text").attr("dy",".32em"),y.select("line").attr("x2",c),y.select("text").attr("x",Math.max(c,0)+f),D.attr("d","M"+e+","+A[0]+"H0V"+A[1]+"H"+e)}w.call(z,E),y.call(z,a),x.call(z,a),s.call(z,E),u.call(z,a),t.call(z,a)})}var a=d3.scale.linear(),b="bottom",c=6,d=6,e=6,f=3,g=[10],h,i=0;j.scale=function(b){if(!arguments.length)return a;a=b;return j},j.orient=function(a){if(!arguments.length)return b;b=a;return j},j.ticks=function(){if(!arguments.length)return g;g=arguments;return j},j.tickFormat=function(a){if(!arguments.length)return h;h=a;return j},j.tickSize=function(a,b,f){if(!arguments.length)return c;var g=arguments.length-1;c=+a,d=g>1?+b:c,e=g>0?+arguments[g]:c;return j},j.tickPadding=function(a){if(!arguments.length)return f;f=+a;return j},j.tickSubdivide=function(a){if(!arguments.length)return i;i=+a;return j};return j},d3.behavior={},d3.behavior.drag=function(){function d(){c.apply(this,arguments),cT("dragstart")}function c(){cN=a,cQ=cU((cO=this).parentNode),cR=0,cP=arguments}function b(){this.on("mousedown.drag",d).on("touchstart.drag",d),d3.select(window).on("mousemove.drag",cV).on("touchmove.drag",cV).on("mouseup.drag",cW,!0).on("touchend.drag",cW,!0).on("click.drag",cX,!0)}var a=d3.dispatch("drag","dragstart","dragend");b.on=function(c,d){a[c].add(d);return b};return b};var cN,cO,cP,cQ,cR,cS;d3.behavior.zoom=function(){function h(){d.apply(this,arguments);var b=dk(),c,e=Date.now();b.length===1&&e-db<300&&dq(1+Math.floor(a[2]),c=b[0],da[c.identifier]),db=e}function g(){d.apply(this,arguments);var b=d3.svg.mouse(de);dq(d3.event.shiftKey?Math.ceil(a[2]-1):Math.floor(a[2]+1),b,di(b))}function f(){d.apply(this,arguments),c_||(c_=di(d3.svg.mouse(de))),dq(dj()+a[2],d3.svg.mouse(de),c_)}function e(){d.apply(this,arguments),c$=di(d3.svg.mouse(de)),dg=!1,d3.event.preventDefault(),window.focus()}function d(){dc=a,dd=b.zoom.dispatch,de=this,df=arguments}function c(){this.on("mousedown.zoom",e).on("mousewheel.zoom",f).on("DOMMouseScroll.zoom",f).on("dblclick.zoom",g).on("touchstart.zoom",h),d3.select(window).on("mousemove.zoom",dm).on("mouseup.zoom",dn).on("touchmove.zoom",dl).on("touchend.zoom",dk).on("click.zoom",dp,!0)}var a=[0,0,0],b=d3.dispatch("zoom");c.on=function(a,d){b[a].add(d);return c};return c};var cZ,c$,c_,da={},db=0,dc,dd,de,df,dg,dh})() \ No newline at end of file diff --git a/talk/20110921/d3/d3.time.js b/talk/20110921/d3/d3.time.js new file mode 100755 index 0000000000000..e9df4e50693ac --- /dev/null +++ b/talk/20110921/d3/d3.time.js @@ -0,0 +1,663 @@ +(function(){d3.time = {}; + +var d3_time = Date; +d3.time.format = function(template) { + var n = template.length; + + function format(date) { + var string = [], + i = -1, + j = 0, + c, + f; + while (++i < n) { + if (template.charCodeAt(i) == 37) { + string.push( + template.substring(j, i), + (f = d3_time_formats[c = template.charAt(++i)]) + ? f(date) : c); + j = i + 1; + } + } + string.push(template.substring(j, i)); + return string.join(""); + } + + format.parse = function(string) { + var date = new d3_time(1900, 0, 1), + i = d3_time_parse(date, template, string, 0); + if (i != string.length) return null; + if (date.hour12) { + var hours = date.getHours() % 12; + date.setHours(date.hour12pm ? hours + 12 : hours); + } + delete date.hour12; + delete date.hour12pm; + return date; + }; + + format.toString = function() { + return template; + }; + + return format; +}; + +function d3_time_parse(date, template, string, j) { + var c, + p, + i = 0, + n = template.length, + m = string.length; + while (i < n) { + if (j >= m) return -1; + c = template.charCodeAt(i++); + if (c == 37) { + p = d3_time_parsers[template.charAt(i++)]; + if (!p || ((j = p(date, string, j)) < 0)) return -1; + } else if (c != string.charCodeAt(j++)) { + return -1; + } + } + return j; +} + +var d3_time_zfill2 = d3.format("02d"), + d3_time_zfill3 = d3.format("03d"), + d3_time_zfill4 = d3.format("04d"), + d3_time_sfill2 = d3.format("2d"); + +var d3_time_formats = { + a: function(d) { return d3_time_weekdays[d.getDay()].substring(0, 3); }, + A: function(d) { return d3_time_weekdays[d.getDay()]; }, + b: function(d) { return d3_time_months[d.getMonth()].substring(0, 3); }, + B: function(d) { return d3_time_months[d.getMonth()]; }, + c: d3.time.format("%a %b %e %H:%M:%S %Y"), + d: function(d) { return d3_time_zfill2(d.getDate()); }, + e: function(d) { return d3_time_sfill2(d.getDate()); }, + H: function(d) { return d3_time_zfill2(d.getHours()); }, + I: function(d) { return d3_time_zfill2(d.getHours() % 12 || 12); }, + j: d3_time_dayOfYear, + m: function(d) { return d3_time_zfill2(d.getMonth() + 1); }, + M: function(d) { return d3_time_zfill2(d.getMinutes()); }, + p: function(d) { return d.getHours() >= 12 ? "PM" : "AM"; }, + S: function(d) { return d3_time_zfill2(d.getSeconds()); }, + U: d3_time_weekNumberSunday, + w: function(d) { return d.getDay(); }, + W: d3_time_weekNumberMonday, + x: d3.time.format("%m/%d/%y"), + X: d3.time.format("%H:%M:%S"), + y: function(d) { return d3_time_zfill2(d.getFullYear() % 100); }, + Y: function(d) { return d3_time_zfill4(d.getFullYear() % 10000); }, + Z: d3_time_zone, + "%": function(d) { return "%"; } +}; + +var d3_time_parsers = { + a: d3_time_parseWeekdayAbbrev, + A: d3_time_parseWeekday, + b: d3_time_parseMonthAbbrev, + B: d3_time_parseMonth, + c: d3_time_parseLocaleFull, + d: d3_time_parseDay, + e: d3_time_parseDay, + H: d3_time_parseHour24, + I: d3_time_parseHour12, + // j: function(d, s, i) { /*TODO day of year [001,366] */ return i; }, + m: d3_time_parseMonthNumber, + M: d3_time_parseMinutes, + p: d3_time_parseAmPm, + S: d3_time_parseSeconds, + // U: function(d, s, i) { /*TODO week number (sunday) [00,53] */ return i; }, + // w: function(d, s, i) { /*TODO weekday [0,6] */ return i; }, + // W: function(d, s, i) { /*TODO week number (monday) [00,53] */ return i; }, + x: d3_time_parseLocaleDate, + X: d3_time_parseLocaleTime, + y: d3_time_parseYear, + Y: d3_time_parseFullYear + // , + // Z: function(d, s, i) { /*TODO time zone */ return i; }, + // "%": function(d, s, i) { /*TODO literal % */ return i; } +}; + +// Note: weekday is validated, but does not set the date. +function d3_time_parseWeekdayAbbrev(date, string, i) { + return string.substring(i, i += 3).toLowerCase() in d3_time_weekdayAbbrevLookup ? i : -1; +} + +var d3_time_weekdayAbbrevLookup = { + sun: 3, + mon: 3, + tue: 3, + wed: 3, + thu: 3, + fri: 3, + sat: 3 +}; + +// Note: weekday is validated, but does not set the date. +function d3_time_parseWeekday(date, string, i) { + d3_time_weekdayRe.lastIndex = 0; + var n = d3_time_weekdayRe.exec(string.substring(i, i + 10)); + return n ? i += n[0].length : -1; +} + +var d3_time_weekdayRe = /^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig; + +var d3_time_weekdays = [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" +]; + +function d3_time_parseMonthAbbrev(date, string, i) { + var n = d3_time_monthAbbrevLookup[string.substring(i, i += 3).toLowerCase()]; + return n == null ? -1 : (date.setMonth(n), i); +} + +var d3_time_monthAbbrevLookup = { + jan: 0, + feb: 1, + mar: 2, + apr: 3, + may: 4, + jun: 5, + jul: 6, + aug: 7, + sep: 8, + oct: 9, + nov: 10, + dec: 11 +}; + +function d3_time_parseMonth(date, string, i) { + d3_time_monthRe.lastIndex = 0; + var n = d3_time_monthRe.exec(string.substring(i, i + 12)); + return n ? (date.setMonth(d3_time_monthLookup[n[0].toLowerCase()]), i += n[0].length) : -1; +} + +var d3_time_monthRe = /^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig; + +var d3_time_monthLookup = { + january: 0, + february: 1, + march: 2, + april: 3, + may: 4, + june: 5, + july: 6, + august: 7, + september: 8, + october: 9, + november: 10, + december: 11 +}; + +var d3_time_months = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" +]; + +function d3_time_parseLocaleFull(date, string, i) { + return d3_time_parse(date, d3_time_formats.c.toString(), string, i); +} + +function d3_time_parseLocaleDate(date, string, i) { + return d3_time_parse(date, d3_time_formats.x.toString(), string, i); +} + +function d3_time_parseLocaleTime(date, string, i) { + return d3_time_parse(date, d3_time_formats.X.toString(), string, i); +} + +function d3_time_parseFullYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 4)); + return n ? (date.setFullYear(n[0]), i += n[0].length) : -1; +} + +function d3_time_parseYear(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setFullYear(d3_time_century() + +n[0]), i += n[0].length) : -1; +} + +function d3_time_century() { + return ~~(new Date().getFullYear() / 1000) * 1000; +} + +function d3_time_parseMonthNumber(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setMonth(n[0] - 1), i += n[0].length) : -1; +} + +function d3_time_parseDay(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setDate(+n[0]), i += n[0].length) : -1; +} + +// Note: we don't validate that the hour is in the range [0,23]. +function d3_time_parseHour24(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setHours(+n[0]), i += n[0].length) : -1; +} + +// Note: we don't validate that the hour is in the range [1,12]. +function d3_time_parseHour12(date, string, i) { + date.hour12 = true; + return d3_time_parseHour24(date, string, i); +} + +function d3_time_parseMinutes(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setMinutes(+n[0]), i += n[0].length) : -1; +} + +function d3_time_parseSeconds(date, string, i) { + d3_time_numberRe.lastIndex = 0; + var n = d3_time_numberRe.exec(string.substring(i, i + 2)); + return n ? (date.setSeconds(+n[0]), i += n[0].length) : -1; +} + +// Note: we don't look at the next directive. +var d3_time_numberRe = /\s*\d+/; + +function d3_time_parseAmPm(date, string, i) { + var n = d3_time_amPmLookup[string.substring(i, i += 2).toLowerCase()]; + return n == null ? -1 : (date.hour12pm = n, i); +} + +var d3_time_amPmLookup = { + am: 0, + pm: 1 +}; + +function d3_time_year(d) { + return new d3_time(d.getFullYear(), 0, 1); +} + +function d3_time_dayOfYear(d) { + return d3_time_zfill3(1 + ~~((d - d3_time_year(d)) / 864e5)); +} + +function d3_time_weekNumberSunday(d) { + var d0 = d3_time_year(d); + return d3_time_zfill2(~~(((d - d0) / 864e5 + d0.getDay()) / 7)); +} + +function d3_time_weekNumberMonday(d) { + var d0 = d3_time_year(d); + return d3_time_zfill2(~~(((d - d0) / 864e5 + (d0.getDay() + 6) % 7) / 7)); +} + +// TODO table of time zone offset names? +function d3_time_zone(d) { + var z = d.getTimezoneOffset(), + zs = z > 0 ? "-" : "+", + zh = ~~(Math.abs(z) / 60), + zm = Math.abs(z) % 60; + return zs + d3_time_zfill2(zh) + d3_time_zfill2(zm); +} +d3.time.format.utc = function(template) { + var local = d3.time.format(template); + + function format(date) { + var utc = new d3_time_format_utc(); + utc._ = date; + return local(utc); + } + + format.parse = function(string) { + try { + d3_time = d3_time_format_utc; + var date = local.parse(string); + return date && date._; + } finally { + d3_time = Date; + } + }; + + format.toString = local.toString; + + return format; +}; + +function d3_time_format_utc() { + this._ = new Date(Date.UTC.apply(this, arguments)); +} + +d3_time_format_utc.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(); }, + getTimezoneOffset: function() { return 0; }, + valueOf: function() { return this._.getTime(); }, + setDate: function(x) { this._.setUTCDate(x); }, + setDay: function(x) { this._.setUTCDay(x); }, + setFullYear: function(x) { this._.setUTCFullYear(x); }, + setHours: function(x) { this._.setUTCHours(x); }, + setMilliseconds: function(x) { this._.setUTCMilliseconds(x); }, + setMinutes: function(x) { this._.setUTCMinutes(x); }, + setMonth: function(x) { this._.setUTCMonth(x); }, + setSeconds: function(x) { this._.setUTCSeconds(x); } +}; +d3.time.format.iso = d3.time.format.utc("%Y-%m-%dT%H:%M:%SZ"); +function d3_time_range(floor, step, number) { + return function(t0, t1, dt) { + var time = floor(t0), times = []; + if (time < t0) step(time); + if (dt > 1) { + while (time < t1) { + var date = new Date(+time); + if (!(number(date) % dt)) times.push(date); + step(time); + } + } else { + while (time < t1) times.push(new Date(+time)), step(time); + } + return times; + }; +} +d3.time.second = function(date) { + return new Date(~~(date / 1e3) * 1e3); +}; + +d3.time.second.utc = d3.time.second; +d3.time.seconds = d3_time_range(d3.time.second, function(date) { + date.setTime(date.getTime() + 1e3); +}, function(date) { + return date.getSeconds(); +}); + +d3.time.seconds.utc = d3.time.seconds; +d3.time.minute = function(date) { + return new Date(~~(date / 6e4) * 6e4); +}; + +d3.time.minute.utc = d3.time.minute;d3.time.minutes = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) { + return date.getMinutes(); +}); + +d3.time.minutes.utc = d3_time_range(d3.time.minute, d3_time_minutesStep, function(date) { + return date.getUTCMinutes(); +}); + +function d3_time_minutesStep(date) { + date.setTime(date.getTime() + 6e4); // assumes no leap seconds +} +d3.time.hour = function(date) { + var offset = date.getTimezoneOffset() / 60; + return new Date((~~(date / 36e5 - offset) + offset) * 36e5); +}; + +d3.time.hour.utc = function(date) { + return new Date(~~(date / 36e5) * 36e5); +}; +d3.time.hours = d3_time_range(d3.time.hour, d3_time_hoursStep, function(date) { + return date.getHours(); +}); + +d3.time.hours.utc = d3_time_range(d3.time.hour.utc, d3_time_hoursStep, function(date) { + return date.getUTCHours(); +}); + +function d3_time_hoursStep(date) { + date.setTime(date.getTime() + 36e5); +} +d3.time.day = function(date) { + return new Date(date.getFullYear(), date.getMonth(), date.getDate()); +}; + +d3.time.day.utc = function(date) { + return new Date(~~(date / 864e5) * 864e5); +}; +d3.time.days = d3_time_range(d3.time.day, function(date) { + date.setDate(date.getDate() + 1); +}, function(date) { + return date.getDate() - 1; +}); + +d3.time.days.utc = d3_time_range(d3.time.day.utc, function(date) { + date.setUTCDate(date.getUTCDate() + 1); +}, function(date) { + return date.getUTCDate() - 1; +}); +d3.time.week = function(date) { + (date = d3.time.day(date)).setDate(date.getDate() - date.getDay()); + return date; +}; + +d3.time.week.utc = function(date) { + (date = d3.time.day.utc(date)).setUTCDate(date.getUTCDate() - date.getUTCDay()); + return date; +}; +d3.time.weeks = d3_time_range(d3.time.week, function(date) { + date.setDate(date.getDate() + 7); +}, function(date) { + return ~~((date - new Date(date.getFullYear(), 0, 1)) / 6048e5); +}); + +d3.time.weeks.utc = d3_time_range(d3.time.week.utc, function(date) { + date.setUTCDate(date.getUTCDate() + 7); +}, function(date) { + return ~~((date - Date.UTC(date.getUTCFullYear(), 0, 1)) / 6048e5); +}); +d3.time.month = function(date) { + return new Date(date.getFullYear(), date.getMonth(), 1); +}; + +d3.time.month.utc = function(date) { + return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1)); +}; +d3.time.months = d3_time_range(d3.time.month, function(date) { + date.setMonth(date.getMonth() + 1); +}, function(date) { + return date.getMonth(); +}); + +d3.time.months.utc = d3_time_range(d3.time.month.utc, function(date) { + date.setUTCMonth(date.getUTCMonth() + 1); +}, function(date) { + return date.getUTCMonth(); +}); +d3.time.year = function(date) { + return new Date(date.getFullYear(), 0, 1); +}; + +d3.time.year.utc = function(date) { + return new Date(Date.UTC(date.getUTCFullYear(), 0, 1)); +}; +d3.time.years = d3_time_range(d3.time.year, function(date) { + date.setFullYear(date.getFullYear() + 1); +}, function(date) { + return date.getFullYear(); +}); + +d3.time.years.utc = d3_time_range(d3.time.year.utc, function(date) { + date.setUTCFullYear(date.getUTCFullYear() + 1); +}, function(date) { + return date.getUTCFullYear(); +}); +// TODO nice +function d3_time_scale(linear, methods, format) { + + function scale(x) { + return linear(x); + } + + scale.invert = function(x) { + return d3_time_scaleDate(linear.invert(x)); + }; + + scale.domain = function(x) { + if (!arguments.length) return linear.domain().map(d3_time_scaleDate); + linear.domain(x); + return scale; + }; + + scale.ticks = function(m, k) { + var extent = d3_time_scaleExtent(scale.domain()); + if (typeof m !== "function") { + var span = extent[1] - extent[0], + target = span / m, + i = d3.bisect(d3_time_scaleSteps, target, 1, d3_time_scaleSteps.length - 1); + if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i; + m = methods[i]; + k = m[1]; + m = m[0]; + } + return m(extent[0], extent[1], k); + }; + + scale.tickFormat = function() { + return format; + }; + + scale.copy = function() { + return d3_time_scale(linear.copy(), methods, format); + }; + + // TOOD expose d3_scale_linear_rebind? + scale.range = d3.rebind(scale, linear.range); + scale.rangeRound = d3.rebind(scale, linear.rangeRound); + scale.interpolate = d3.rebind(scale, linear.interpolate); + scale.clamp = d3.rebind(scale, linear.clamp); + + return scale; +} + +// TODO expose d3_scaleExtent? +function d3_time_scaleExtent(domain) { + var start = domain[0], stop = domain[domain.length - 1]; + return start < stop ? [start, stop] : [stop, start]; +} + +function d3_time_scaleDate(t) { + return new Date(t); +} + +function d3_time_scaleFormat(formats) { + return function(date) { + var i = formats.length - 1, f = formats[i]; + while (!f[1](date)) f = formats[--i]; + return f[0](date); + }; +} + +var d3_time_scaleSteps = [ + 1e3, // 1-second + 5e3, // 5-second + 15e3, // 15-second + 3e4, // 30-second + 6e4, // 1-minute + 3e5, // 5-minute + 9e5, // 15-minute + 18e5, // 30-minute + 36e5, // 1-hour + 108e5, // 3-hour + 216e5, // 6-hour + 432e5, // 12-hour + 864e5, // 1-day + 1728e5, // 2-day + 6048e5, // 1-week + 1728e6, // 1-month + 7776e6, // 3-month + 31536e6 // 1-year +]; + +var d3_time_scaleLocalMethods = [ + [d3.time.seconds, 1], + [d3.time.seconds, 5], + [d3.time.seconds, 15], + [d3.time.seconds, 30], + [d3.time.minutes, 1], + [d3.time.minutes, 5], + [d3.time.minutes, 15], + [d3.time.minutes, 30], + [d3.time.hours, 1], + [d3.time.hours, 3], + [d3.time.hours, 6], + [d3.time.hours, 12], + [d3.time.days, 1], + [d3.time.days, 2], + [d3.time.weeks, 1], + [d3.time.months, 1], + [d3.time.months, 3], + [d3.time.years, 1] +]; + +var d3_time_scaleLocalFormats = [ + [d3.time.format("%Y"), function(d) { return true; }], + [d3.time.format("%B"), function(d) { return d.getMonth(); }], + [d3.time.format("%b %d"), function(d) { return d.getDate() != 1; }], + [d3.time.format("%a %d"), function(d) { return d.getDay() && d.getDate() != 1; }], + [d3.time.format("%I %p"), function(d) { return d.getHours(); }], + [d3.time.format("%I:%M"), function(d) { return d.getMinutes(); }], + [d3.time.format(":%S"), function(d) { return d.getSeconds() || d.getMilliseconds(); }] +]; + +var d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats); + +d3.time.scale = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat); +}; +var d3_time_scaleUTCMethods = [ + [d3.time.seconds.utc, 1], + [d3.time.seconds.utc, 5], + [d3.time.seconds.utc, 15], + [d3.time.seconds.utc, 30], + [d3.time.minutes.utc, 1], + [d3.time.minutes.utc, 5], + [d3.time.minutes.utc, 15], + [d3.time.minutes.utc, 30], + [d3.time.hours.utc, 1], + [d3.time.hours.utc, 3], + [d3.time.hours.utc, 6], + [d3.time.hours.utc, 12], + [d3.time.days.utc, 1], + [d3.time.days.utc, 2], + [d3.time.weeks.utc, 1], + [d3.time.months.utc, 1], + [d3.time.months.utc, 3], + [d3.time.years.utc, 1] +]; + +var d3_time_scaleUTCFormats = [ + [d3.time.format.utc("%Y"), function(d) { return true; }], + [d3.time.format.utc("%B"), function(d) { return d.getUTCMonth(); }], + [d3.time.format.utc("%b %d"), function(d) { return d.getUTCDate() != 1; }], + [d3.time.format.utc("%a %d"), function(d) { return d.getUTCDay() && d.getUTCDate() != 1; }], + [d3.time.format.utc("%I %p"), function(d) { return d.getUTCHours(); }], + [d3.time.format.utc("%I:%M"), function(d) { return d.getUTCMinutes(); }], + [d3.time.format.utc(":%S"), function(d) { return d.getUTCSeconds() || d.getUTCMilliseconds(); }] +]; + +var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats); + +d3.time.scale.utc = function() { + return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat); +}; +})(); diff --git a/talk/20110921/d3/d3.time.min.js b/talk/20110921/d3/d3.time.min.js new file mode 100755 index 0000000000000..b4b04015b7817 --- /dev/null +++ b/talk/20110921/d3/d3.time.min.js @@ -0,0 +1 @@ +(function(){function U(a){return function(b){var c=a.length-1,d=a[c];while(!d[1](b))d=a[--c];return d[0](b)}}function T(a){return new Date(a)}function S(a){var b=a[0],c=a[a.length-1];return b1)while(g0?"-":"+",e=~~(Math.abs(b)/60),f=Math.abs(b)%60;return d+c(e)+c(f)}function L(a){var b=I(a);return c(~~(((a-b)/864e5+(b.getDay()+6)%7)/7))}function K(a){var b=I(a);return c(~~(((a-b)/864e5+b.getDay())/7))}function J(a){return d(1+~~((a-I(a))/864e5))}function I(b){return new a(b.getFullYear(),0,1)}function G(a,b,c){var d=H[b.substring(c,c+=2).toLowerCase()];return d==null?-1:(a.hour12pm=d,c)}function E(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+2));return d?(a.setSeconds(+d[0]),c+=d[0].length):-1}function D(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+2));return d?(a.setMinutes(+d[0]),c+=d[0].length):-1}function C(a,b,c){a.hour12=!0;return B(a,b,c)}function B(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+2));return d?(a.setHours(+d[0]),c+=d[0].length):-1}function A(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+2));return d?(a.setDate(+d[0]),c+=d[0].length):-1}function z(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+2));return d?(a.setMonth(d[0]-1),c+=d[0].length):-1}function y(){return~~((new Date).getFullYear()/1e3)*1e3}function x(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+2));return d?(a.setFullYear(y()+ +d[0]),c+=d[0].length):-1}function w(a,b,c){F.lastIndex=0;var d=F.exec(b.substring(c,c+4));return d?(a.setFullYear(d[0]),c+=d[0].length):-1}function v(a,c,d){return b(a,g.X.toString(),c,d)}function u(a,c,d){return b(a,g.x.toString(),c,d)}function t(a,c,d){return b(a,g.c.toString(),c,d)}function p(a,b,c){q.lastIndex=0;var d=q.exec(b.substring(c,c+12));return d?(a.setMonth(r[d[0].toLowerCase()]),c+=d[0].length):-1}function n(a,b,c){var d=o[b.substring(c,c+=3).toLowerCase()];return d==null?-1:(a.setMonth(d),c)}function k(a,b,c){l.lastIndex=0;var d=l.exec(b.substring(c,c+10));return d?c+=d[0].length:-1}function i(a,b,c){return b.substring(c,c+=3).toLowerCase()in j?c:-1}function b(a,b,c,d){var e,f,g=0,i=b.length,j=c.length;while(g=j)return-1;e=b.charCodeAt(g++);if(e==37){f=h[b.charAt(g++)];if(!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}d3.time={};var a=Date;d3.time.format=function(c){function e(a){var b=[],e=-1,f=0,h,i;while(++e=12?"PM":"AM"},S:function(a){return c(a.getSeconds())},U:K,w:function(a){return a.getDay()},W:L,x:d3.time.format("%m/%d/%y"),X:d3.time.format("%H:%M:%S"),y:function(a){return c(a.getFullYear()%100)},Y:function(a){return e(a.getFullYear()%1e4)},Z:M,"%":function(a){return"%"}},h={a:i,A:k,b:n,B:p,c:t,d:A,e:A,H:B,I:C,m:z,M:D,p:G,S:E,x:u,X:v,y:x,Y:w},j={sun:3,mon:3,tue:3,wed:3,thu:3,fri:3,sat:3},l=/^(?:Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday)/ig,m=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],o={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11},q=/^(?:January|February|March|April|May|June|July|August|September|October|November|December)/ig,r={january:0,february:1,march:2,april:3,may:4,june:5,july:6,august:7,september:8,october:9,november:10,december:11},s=["January","February","March","April","May","June","July","August","September","October","November","December"],F=/\s*\d+/,H={am:0,pm:1};d3.time.format.utc=function(b){function d(a){var b=new N;b._=a;return c(b)}var c=d3.time.format(b);d.parse=function(b){try{a=N;var d=c.parse(b);return d&&d._}finally{a=Date}},d.toString=c.toString;return d},N.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()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.getTime()},setDate:function(a){this._.setUTCDate(a)},setDay:function(a){this._.setUTCDay(a)},setFullYear:function(a){this._.setUTCFullYear(a)},setHours:function(a){this._.setUTCHours(a)},setMilliseconds:function(a){this._.setUTCMilliseconds(a)},setMinutes:function(a){this._.setUTCMinutes(a)},setMonth:function(a){this._.setUTCMonth(a)},setSeconds:function(a){this._.setUTCSeconds(a)}},d3.time.format.iso=d3.time.format.utc("%Y-%m-%dT%H:%M:%SZ"),d3.time.second=function(a){return new Date(~~(a/1e3)*1e3)},d3.time.second.utc=d3.time.second,d3.time.seconds=O(d3.time.second,function(a){a.setTime(a.getTime()+1e3)},function(a){return a.getSeconds()}),d3.time.seconds.utc=d3.time.seconds,d3.time.minute=function(a){return new Date(~~(a/6e4)*6e4)},d3.time.minute.utc=d3.time.minute,d3.time.minutes=O(d3.time.minute,P,function(a){return a.getMinutes()}),d3.time.minutes.utc=O(d3.time.minute,P,function(a){return a.getUTCMinutes()}),d3.time.hour=function(a){var b=a.getTimezoneOffset()/60;return new Date((~~(a/36e5-b)+b)*36e5)},d3.time.hour.utc=function(a){return new Date(~~(a/36e5)*36e5)},d3.time.hours=O(d3.time.hour,Q,function(a){return a.getHours()}),d3.time.hours.utc=O(d3.time.hour.utc,Q,function(a){return a.getUTCHours()}),d3.time.day=function(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate())},d3.time.day.utc=function(a){return new Date(~~(a/864e5)*864e5)},d3.time.days=O(d3.time.day,function(a){a.setDate(a.getDate()+1)},function(a){return a.getDate()-1}),d3.time.days.utc=O(d3.time.day.utc,function(a){a.setUTCDate(a.getUTCDate()+1)},function(a){return a.getUTCDate()-1}),d3.time.week=function(a){(a=d3.time.day(a)).setDate(a.getDate()-a.getDay());return a},d3.time.week.utc=function(a){(a=d3.time.day.utc(a)).setUTCDate(a.getUTCDate()-a.getUTCDay());return a},d3.time.weeks=O(d3.time.week,function(a){a.setDate(a.getDate()+7)},function(a){return~~((a-new Date(a.getFullYear(),0,1))/6048e5)}),d3.time.weeks.utc=O(d3.time.week.utc,function(a){a.setUTCDate(a.getUTCDate()+7)},function(a){return~~((a-Date.UTC(a.getUTCFullYear(),0,1))/6048e5)}),d3.time.month=function(a){return new Date(a.getFullYear(),a.getMonth(),1)},d3.time.month.utc=function(a){return new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1))},d3.time.months=O(d3.time.month,function(a){a.setMonth(a.getMonth()+1)},function(a){return a.getMonth()}),d3.time.months.utc=O(d3.time.month.utc,function(a){a.setUTCMonth(a.getUTCMonth()+1)},function(a){return a.getUTCMonth()}),d3.time.year=function(a){return new Date(a.getFullYear(),0,1)},d3.time.year.utc=function(a){return new Date(Date.UTC(a.getUTCFullYear(),0,1))},d3.time.years=O(d3.time.year,function(a){a.setFullYear(a.getFullYear()+1)},function(a){return a.getFullYear()}),d3.time.years.utc=O(d3.time.year.utc,function(a){a.setUTCFullYear(a.getUTCFullYear()+1)},function(a){return a.getUTCFullYear()});var V=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,1728e6,7776e6,31536e6],W=[[d3.time.seconds,1],[d3.time.seconds,5],[d3.time.seconds,15],[d3.time.seconds,30],[d3.time.minutes,1],[d3.time.minutes,5],[d3.time.minutes,15],[d3.time.minutes,30],[d3.time.hours,1],[d3.time.hours,3],[d3.time.hours,6],[d3.time.hours,12],[d3.time.days,1],[d3.time.days,2],[d3.time.weeks,1],[d3.time.months,1],[d3.time.months,3],[d3.time.years,1]],X=[[d3.time.format("%Y"),function(a){return!0}],[d3.time.format("%B"),function(a){return a.getMonth()}],[d3.time.format("%b %d"),function(a){return a.getDate()!=1}],[d3.time.format("%a %d"),function(a){return a.getDay()&&a.getDate()!=1}],[d3.time.format("%I %p"),function(a){return a.getHours()}],[d3.time.format("%I:%M"),function(a){return a.getMinutes()}],[d3.time.format(":%S"),function(a){return a.getSeconds()||a.getMilliseconds()}]],Y=U(X);d3.time.scale=function(){return R(d3.scale.linear(),W,Y)};var Z=[[d3.time.seconds.utc,1],[d3.time.seconds.utc,5],[d3.time.seconds.utc,15],[d3.time.seconds.utc,30],[d3.time.minutes.utc,1],[d3.time.minutes.utc,5],[d3.time.minutes.utc,15],[d3.time.minutes.utc,30],[d3.time.hours.utc,1],[d3.time.hours.utc,3],[d3.time.hours.utc,6],[d3.time.hours.utc,12],[d3.time.days.utc,1],[d3.time.days.utc,2],[d3.time.weeks.utc,1],[d3.time.months.utc,1],[d3.time.months.utc,3],[d3.time.years.utc,1]],$=[[d3.time.format.utc("%Y"),function(a){return!0}],[d3.time.format.utc("%B"),function(a){return a.getUTCMonth()}],[d3.time.format.utc("%b %d"),function(a){return a.getUTCDate()!=1}],[d3.time.format.utc("%a %d"),function(a){return a.getUTCDay()&&a.getUTCDate()!=1}],[d3.time.format.utc("%I %p"),function(a){return a.getUTCHours()}],[d3.time.format.utc("%I:%M"),function(a){return a.getUTCMinutes()}],[d3.time.format.utc(":%S"),function(a){return a.getUTCSeconds()||a.getUTCMilliseconds()}]],_=U($);d3.time.scale.utc=function(){return R(d3.scale.linear(),Z,_)}})() \ No newline at end of file diff --git a/talk/20110921/depth-foci.html b/talk/20110921/depth-foci.html new file mode 100755 index 0000000000000..70ae825c01c3e --- /dev/null +++ b/talk/20110921/depth-foci.html @@ -0,0 +1,87 @@ + + + + + Force Layouts - Depth Foci + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/favicon.ico b/talk/20110921/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..3b79f224d9215702dcd100e8d0d9dd281b993ce3 GIT binary patch literal 1150 zcmb7^O=}ua6o#jz+kmUCyX?Pc`Uk8af{Q>FE-ci7;KGGe478=t6iT6#u3EPiMDZKc zD1k&VAZW5sH-d=;MMI1qsKnFzTW3pH*FAfh6^TlHEceB})R;zVyU|?}@tyb&7 z$;nCg>gq~vZf;~e9^V@nSR7oN&Gx<9?aKA_wHzHCNjx5xL?W><^k86daP4;cw|>8` zuNe-9rCct{>FKE)A0JDhP|#sajUEhZ#KGO$+xt2g3}iByNHiLiv$HeF<#G}Vg(MgZ z>M*884+a(ocYlBX%Wyc9>2xZwSWK$bs-#jWX}82!1$Q=u8jS{fqwn$V?oJ5zON}1$z~bP#-R=*!x3{ufE+wDO>vyMKuS=y;ky5Fo!jylhkZpWxv7{r=}_O}~1*UR$<2U~zB*fxwQ+uF5NwZ4cO8m7VoRq4;d$$H920 M%5Q#d?yakT0Ei$Sn*aa+ literal 0 HcmV?d00001 diff --git a/talk/20110921/flare.json b/talk/20110921/flare.json new file mode 100755 index 0000000000000..a05a94858375b --- /dev/null +++ b/talk/20110921/flare.json @@ -0,0 +1,380 @@ +{ + "name": "flare", + "children": [ + { + "name": "analytics", + "children": [ + { + "name": "cluster", + "children": [ + {"name": "AgglomerativeCluster", "size": 3938}, + {"name": "CommunityStructure", "size": 3812}, + {"name": "HierarchicalCluster", "size": 6714}, + {"name": "MergeEdge", "size": 743} + ] + }, + { + "name": "graph", + "children": [ + {"name": "BetweennessCentrality", "size": 3534}, + {"name": "LinkDistance", "size": 5731}, + {"name": "MaxFlowMinCut", "size": 7840}, + {"name": "ShortestPaths", "size": 5914}, + {"name": "SpanningTree", "size": 3416} + ] + }, + { + "name": "optimization", + "children": [ + {"name": "AspectRatioBanker", "size": 7074} + ] + } + ] + }, + { + "name": "animate", + "children": [ + {"name": "Easing", "size": 17010}, + {"name": "FunctionSequence", "size": 5842}, + { + "name": "interpolate", + "children": [ + {"name": "ArrayInterpolator", "size": 1983}, + {"name": "ColorInterpolator", "size": 2047}, + {"name": "DateInterpolator", "size": 1375}, + {"name": "Interpolator", "size": 8746}, + {"name": "MatrixInterpolator", "size": 2202}, + {"name": "NumberInterpolator", "size": 1382}, + {"name": "ObjectInterpolator", "size": 1629}, + {"name": "PointInterpolator", "size": 1675}, + {"name": "RectangleInterpolator", "size": 2042} + ] + }, + {"name": "ISchedulable", "size": 1041}, + {"name": "Parallel", "size": 5176}, + {"name": "Pause", "size": 449}, + {"name": "Scheduler", "size": 5593}, + {"name": "Sequence", "size": 5534}, + {"name": "Transition", "size": 9201}, + {"name": "Transitioner", "size": 19975}, + {"name": "TransitionEvent", "size": 1116}, + {"name": "Tween", "size": 6006} + ] + }, + { + "name": "data", + "children": [ + { + "name": "converters", + "children": [ + {"name": "Converters", "size": 721}, + {"name": "DelimitedTextConverter", "size": 4294}, + {"name": "GraphMLConverter", "size": 9800}, + {"name": "IDataConverter", "size": 1314}, + {"name": "JSONConverter", "size": 2220} + ] + }, + {"name": "DataField", "size": 1759}, + {"name": "DataSchema", "size": 2165}, + {"name": "DataSet", "size": 586}, + {"name": "DataSource", "size": 3331}, + {"name": "DataTable", "size": 772}, + {"name": "DataUtil", "size": 3322} + ] + }, + { + "name": "display", + "children": [ + {"name": "DirtySprite", "size": 8833}, + {"name": "LineSprite", "size": 1732}, + {"name": "RectSprite", "size": 3623}, + {"name": "TextSprite", "size": 10066} + ] + }, + { + "name": "flex", + "children": [ + {"name": "FlareVis", "size": 4116} + ] + }, + { + "name": "physics", + "children": [ + {"name": "DragForce", "size": 1082}, + {"name": "GravityForce", "size": 1336}, + {"name": "IForce", "size": 319}, + {"name": "NBodyForce", "size": 10498}, + {"name": "Particle", "size": 2822}, + {"name": "Simulation", "size": 9983}, + {"name": "Spring", "size": 2213}, + {"name": "SpringForce", "size": 1681} + ] + }, + { + "name": "query", + "children": [ + {"name": "AggregateExpression", "size": 1616}, + {"name": "And", "size": 1027}, + {"name": "Arithmetic", "size": 3891}, + {"name": "Average", "size": 891}, + {"name": "BinaryExpression", "size": 2893}, + {"name": "Comparison", "size": 5103}, + {"name": "CompositeExpression", "size": 3677}, + {"name": "Count", "size": 781}, + {"name": "DateUtil", "size": 4141}, + {"name": "Distinct", "size": 933}, + {"name": "Expression", "size": 5130}, + {"name": "ExpressionIterator", "size": 3617}, + {"name": "Fn", "size": 3240}, + {"name": "If", "size": 2732}, + {"name": "IsA", "size": 2039}, + {"name": "Literal", "size": 1214}, + {"name": "Match", "size": 3748}, + {"name": "Maximum", "size": 843}, + { + "name": "methods", + "children": [ + {"name": "add", "size": 593}, + {"name": "and", "size": 330}, + {"name": "average", "size": 287}, + {"name": "count", "size": 277}, + {"name": "distinct", "size": 292}, + {"name": "div", "size": 595}, + {"name": "eq", "size": 594}, + {"name": "fn", "size": 460}, + {"name": "gt", "size": 603}, + {"name": "gte", "size": 625}, + {"name": "iff", "size": 748}, + {"name": "isa", "size": 461}, + {"name": "lt", "size": 597}, + {"name": "lte", "size": 619}, + {"name": "max", "size": 283}, + {"name": "min", "size": 283}, + {"name": "mod", "size": 591}, + {"name": "mul", "size": 603}, + {"name": "neq", "size": 599}, + {"name": "not", "size": 386}, + {"name": "or", "size": 323}, + {"name": "orderby", "size": 307}, + {"name": "range", "size": 772}, + {"name": "select", "size": 296}, + {"name": "stddev", "size": 363}, + {"name": "sub", "size": 600}, + {"name": "sum", "size": 280}, + {"name": "update", "size": 307}, + {"name": "variance", "size": 335}, + {"name": "where", "size": 299}, + {"name": "xor", "size": 354}, + {"name": "_", "size": 264} + ] + }, + {"name": "Minimum", "size": 843}, + {"name": "Not", "size": 1554}, + {"name": "Or", "size": 970}, + {"name": "Query", "size": 13896}, + {"name": "Range", "size": 1594}, + {"name": "StringUtil", "size": 4130}, + {"name": "Sum", "size": 791}, + {"name": "Variable", "size": 1124}, + {"name": "Variance", "size": 1876}, + {"name": "Xor", "size": 1101} + ] + }, + { + "name": "scale", + "children": [ + {"name": "IScaleMap", "size": 2105}, + {"name": "LinearScale", "size": 1316}, + {"name": "LogScale", "size": 3151}, + {"name": "OrdinalScale", "size": 3770}, + {"name": "QuantileScale", "size": 2435}, + {"name": "QuantitativeScale", "size": 4839}, + {"name": "RootScale", "size": 1756}, + {"name": "Scale", "size": 4268}, + {"name": "ScaleType", "size": 1821}, + {"name": "TimeScale", "size": 5833} + ] + }, + { + "name": "util", + "children": [ + {"name": "Arrays", "size": 8258}, + {"name": "Colors", "size": 10001}, + {"name": "Dates", "size": 8217}, + {"name": "Displays", "size": 12555}, + {"name": "Filter", "size": 2324}, + {"name": "Geometry", "size": 10993}, + { + "name": "heap", + "children": [ + {"name": "FibonacciHeap", "size": 9354}, + {"name": "HeapNode", "size": 1233} + ] + }, + {"name": "IEvaluable", "size": 335}, + {"name": "IPredicate", "size": 383}, + {"name": "IValueProxy", "size": 874}, + { + "name": "math", + "children": [ + {"name": "DenseMatrix", "size": 3165}, + {"name": "IMatrix", "size": 2815}, + {"name": "SparseMatrix", "size": 3366} + ] + }, + {"name": "Maths", "size": 17705}, + {"name": "Orientation", "size": 1486}, + { + "name": "palette", + "children": [ + {"name": "ColorPalette", "size": 6367}, + {"name": "Palette", "size": 1229}, + {"name": "ShapePalette", "size": 2059}, + {"name": "SizePalette", "size": 2291} + ] + }, + {"name": "Property", "size": 5559}, + {"name": "Shapes", "size": 19118}, + {"name": "Sort", "size": 6887}, + {"name": "Stats", "size": 6557}, + {"name": "Strings", "size": 22026} + ] + }, + { + "name": "vis", + "children": [ + { + "name": "axis", + "children": [ + {"name": "Axes", "size": 1302}, + {"name": "Axis", "size": 24593}, + {"name": "AxisGridLine", "size": 652}, + {"name": "AxisLabel", "size": 636}, + {"name": "CartesianAxes", "size": 6703} + ] + }, + { + "name": "controls", + "children": [ + {"name": "AnchorControl", "size": 2138}, + {"name": "ClickControl", "size": 3824}, + {"name": "Control", "size": 1353}, + {"name": "ControlList", "size": 4665}, + {"name": "DragControl", "size": 2649}, + {"name": "ExpandControl", "size": 2832}, + {"name": "HoverControl", "size": 4896}, + {"name": "IControl", "size": 763}, + {"name": "PanZoomControl", "size": 5222}, + {"name": "SelectionControl", "size": 7862}, + {"name": "TooltipControl", "size": 8435} + ] + }, + { + "name": "data", + "children": [ + {"name": "Data", "size": 20544}, + {"name": "DataList", "size": 19788}, + {"name": "DataSprite", "size": 10349}, + {"name": "EdgeSprite", "size": 3301}, + {"name": "NodeSprite", "size": 19382}, + { + "name": "render", + "children": [ + {"name": "ArrowType", "size": 698}, + {"name": "EdgeRenderer", "size": 5569}, + {"name": "IRenderer", "size": 353}, + {"name": "ShapeRenderer", "size": 2247} + ] + }, + {"name": "ScaleBinding", "size": 11275}, + {"name": "Tree", "size": 7147}, + {"name": "TreeBuilder", "size": 9930} + ] + }, + { + "name": "events", + "children": [ + {"name": "DataEvent", "size": 2313}, + {"name": "SelectionEvent", "size": 1880}, + {"name": "TooltipEvent", "size": 1701}, + {"name": "VisualizationEvent", "size": 1117} + ] + }, + { + "name": "legend", + "children": [ + {"name": "Legend", "size": 20859}, + {"name": "LegendItem", "size": 4614}, + {"name": "LegendRange", "size": 10530} + ] + }, + { + "name": "operator", + "children": [ + { + "name": "distortion", + "children": [ + {"name": "BifocalDistortion", "size": 4461}, + {"name": "Distortion", "size": 6314}, + {"name": "FisheyeDistortion", "size": 3444} + ] + }, + { + "name": "encoder", + "children": [ + {"name": "ColorEncoder", "size": 3179}, + {"name": "Encoder", "size": 4060}, + {"name": "PropertyEncoder", "size": 4138}, + {"name": "ShapeEncoder", "size": 1690}, + {"name": "SizeEncoder", "size": 1830} + ] + }, + { + "name": "filter", + "children": [ + {"name": "FisheyeTreeFilter", "size": 5219}, + {"name": "GraphDistanceFilter", "size": 3165}, + {"name": "VisibilityFilter", "size": 3509} + ] + }, + {"name": "IOperator", "size": 1286}, + { + "name": "label", + "children": [ + {"name": "Labeler", "size": 9956}, + {"name": "RadialLabeler", "size": 3899}, + {"name": "StackedAreaLabeler", "size": 3202} + ] + }, + { + "name": "layout", + "children": [ + {"name": "AxisLayout", "size": 6725}, + {"name": "BundledEdgeRouter", "size": 3727}, + {"name": "CircleLayout", "size": 9317}, + {"name": "CirclePackingLayout", "size": 12003}, + {"name": "DendrogramLayout", "size": 4853}, + {"name": "ForceDirectedLayout", "size": 8411}, + {"name": "IcicleTreeLayout", "size": 4864}, + {"name": "IndentedTreeLayout", "size": 3174}, + {"name": "Layout", "size": 7881}, + {"name": "NodeLinkTreeLayout", "size": 12870}, + {"name": "PieLayout", "size": 2728}, + {"name": "RadialTreeLayout", "size": 12348}, + {"name": "RandomLayout", "size": 870}, + {"name": "StackedAreaLayout", "size": 9121}, + {"name": "TreeMapLayout", "size": 9191} + ] + }, + {"name": "Operator", "size": 2490}, + {"name": "OperatorList", "size": 5248}, + {"name": "OperatorSequence", "size": 4190}, + {"name": "OperatorSwitch", "size": 2581}, + {"name": "SortOperator", "size": 2023} + ] + }, + {"name": "Visualization", "size": 16540} + ] + } + ] +} \ No newline at end of file diff --git a/talk/20110921/foci.html b/talk/20110921/foci.html new file mode 100755 index 0000000000000..1dfd8df81952b --- /dev/null +++ b/talk/20110921/foci.html @@ -0,0 +1,97 @@ + + + + + Force Layouts - Foci + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/force.html b/talk/20110921/force.html new file mode 100755 index 0000000000000..33bf4d7ea417b --- /dev/null +++ b/talk/20110921/force.html @@ -0,0 +1,83 @@ + + + + + Force Layouts + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/github.png b/talk/20110921/github.png new file mode 100755 index 0000000000000000000000000000000000000000..5b3dc065e98f9411d11c71d261fe6ab1f5820a8d GIT binary patch literal 1655 zcmV--28j8IP)dOCJY|BZ-iPM}a z$Vt~hlcd7f^i7-}x)NJ+@!~}^H8rgoffxX(Vwszpi#;E2uEUYm7l2K9fPIR^PQg?r zCY~x8$jD{?{jmH#it?s+`4pu<%Jzm*kdcwWKg!8S!;u3o0@)^9{&om~{2IXPh2Zrs zsxJVfY=-rk7q_EDFq?|-`g6PZTCG;QW(w8>P+3{YKiXNb6+F%vkXw7(Q|cS5JNfr0emRxs1;dDXm)r;(4{%Y_Z~@F}+^TpT}(uK&3>wAs0!R zo1w3&V1ULJ{j+f)7=p}w3%O71g5k+pz;z2Z?zs8d%*;%TkB>v6(Zs@^pPwJ&9JyFz zA}X37r88V!UXG(jkK)S2-*DKRz+b;$Z|^x|!Opg=KsXSBZDgE1vhzMMg4z$>fvKAD zi#8cu-~Gf>*wWI%L5OzaX@12iC@3gcK`O1St-KiZ&mX{#A0EOpTG|OiuT>*-+YVh? z3ZPDgEScS&Q;a1;5$rkK3AaCt(a}+EBRxHxYrI`C1^hM~7#I-DW^;mbMwRINE($aA3*fFkcZEfi4>Pn#R)YMd->$PZGin8VLMHsK% za1<}^eHP_;#d!6t13UsWPRPl*XoR9eGCx1h>t(r})l@9PRhdxD_>N9jdwV;!Y<(EJ zul)(ntP3i3&y(!iw-0B}o<(D0BYJvzI1tuRt-EtcB3i4#pw{eg3BF;VQzi{rk7d}bh}_` z*bl?bdYnJ_K1MYs znFb%nEbx9L%4~##%t*4ppJ|M|XGepm3cI*ssYj0&=8OA`0bs@S^~}u7n*<>K+7v~_ z>ip?|oh$jjZd7Alse)UtfI`iN7=ScY1X+q8vOK|iVU|d#&*ua4#eMS2Xi1ff)##_$ zmYkd%5D<}K@0U<(wy>}Or_)Jkurem4pJox>QZOZND)uYrI6KRGs0+jYBhFwj_ + + + + Force Layouts - Gravity and Charge + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/gravity.html b/talk/20110921/gravity.html new file mode 100755 index 0000000000000..a7b5bfc41b201 --- /dev/null +++ b/talk/20110921/gravity.html @@ -0,0 +1,62 @@ + + + + + Force Layouts - Gravity + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/hijs/LICENSE b/talk/20110921/hijs/LICENSE new file mode 100755 index 0000000000000..0799a584a1c2e --- /dev/null +++ b/talk/20110921/hijs/LICENSE @@ -0,0 +1,18 @@ +Copyright (c) 2010 Alexis Sellier + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/talk/20110921/hijs/hi.js b/talk/20110921/hijs/hi.js new file mode 100755 index 0000000000000..d39c7025c8cd8 --- /dev/null +++ b/talk/20110921/hijs/hi.js @@ -0,0 +1,93 @@ +(function (hijs) { +// +// hijs - JavaScript Syntax Highlighter +// +// Copyright (c) 2010 Alexis Sellier +// + +// All elements which match this will be syntax highlighted. +var selector = hijs || 'code'; + +var keywords = ('var function if else for while break switch case do new null in with void ' + +'continue delete return this true false throw catch typeof with instanceof').split(' '), + special = ('eval window document undefined NaN Infinity parseInt parseFloat ' + +'encodeURI decodeURI encodeURIComponent decodeURIComponent').split(' '); + +// Syntax definition +// The key becomes the class name of the +// around the matched block of code. +var syntax = [ + ['comment', /(\/\*(?:[^*\n]|\*+[^\/*])*\*+\/)/g], + ['comment', /(\/\/[^\n]*)/g], + ['string' , /("(?:(?!")[^\\\n]|\\.)*"|'(?:(?!')[^\\\n]|\\.)*')/g], + ['regexp' , /(\/.+\/[mgi]*)(?!\s*\w)/g], + ['class' , /\b([A-Z][a-zA-Z]+)\b/g], + ['number' , /\b([0-9]+(?:\.[0-9]+)?)\b/g], + ['keyword', new(RegExp)('\\b(' + keywords.join('|') + ')\\b', 'g')], + ['special', new(RegExp)('\\b(' + special.join('|') + ')\\b', 'g')] +]; +var nodes, table = {}; + +if (/^[a-z]+$/.test(selector)) { + nodes = document.getElementsByTagName(selector); +} else if (/^\.[\w-]+$/.test(selector)) { + nodes = document.getElementsByClassName(selector.slice(1)); +} else if (document.querySelectorAll) { + nodes = document.querySelectorAll(selector); +} else { + nodes = []; +} + +for (var i = 0, children; i < nodes.length; i++) { + children = nodes[i].childNodes; + + for (var j = 0, str; j < children.length; j++) { + code = children[j]; + + if (code.length >= 0) { // It's a text node + // Don't highlight command-line snippets + if (! /^\$\s/.test(code.nodeValue.trim())) { + syntax.forEach(function (s) { + var k = s[0], v = s[1]; + code.nodeValue = code.nodeValue.replace(v, function (_, m) { + return '\u00ab' + encode(k) + '\u00b7' + + encode(m) + + '\u00b7' + encode(k) + '\u00bb'; + }); + }); + } + } + } +} +for (var i = 0; i < nodes.length; i++) { + nodes[i].innerHTML = + nodes[i].innerHTML.replace(/\u00ab(.+?)\u00b7(.+?)\u00b7\1\u00bb/g, function (_, name, value) { + value = value.replace(/\u00ab[^\u00b7]+\u00b7/g, '').replace(/\u00b7[^\u00bb]+\u00bb/g, ''); + return '' + escape(decode(value)) + ''; + }); +} + +function escape(str) { + return str.replace(//g, '>'); +} + +// Encode ASCII characters to, and from Braille +function encode (str, encoded) { + table[encoded = str.split('').map(function (s) { + if (s.charCodeAt(0) > 127) { return s } + return String.fromCharCode(s.charCodeAt(0) + 0x2800); + }).join('')] = str; + return encoded; +} +function decode (str) { + if (str in table) { + return table[str]; + } else { + return str.trim().split('').map(function (s) { + if (s.charCodeAt(0) - 0x2800 > 127) { return s } + return String.fromCharCode(s.charCodeAt(0) - 0x2800); + }).join(''); + } +} + +})(window.hijs); diff --git a/talk/20110921/index.html b/talk/20110921/index.html new file mode 100755 index 0000000000000..ddc07f4d2ec6e --- /dev/null +++ b/talk/20110921/index.html @@ -0,0 +1,168 @@ + + + + + D3.js + + + + + + + + + + diff --git a/talk/20110921/labels.html b/talk/20110921/labels.html new file mode 100755 index 0000000000000..b632c523b73b1 --- /dev/null +++ b/talk/20110921/labels.html @@ -0,0 +1,85 @@ + + + + + Force Layouts - Labels + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/link-foci.html b/talk/20110921/link-foci.html new file mode 100755 index 0000000000000..fc179a543d8a0 --- /dev/null +++ b/talk/20110921/link-foci.html @@ -0,0 +1,118 @@ + + + + + Force Layouts - Foci + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/links.html b/talk/20110921/links.html new file mode 100755 index 0000000000000..801245e5a97ab --- /dev/null +++ b/talk/20110921/links.html @@ -0,0 +1,88 @@ + + + + + Force Layouts - Links + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/medals-live.html b/talk/20110921/medals-live.html new file mode 100755 index 0000000000000..81a95051136b4 --- /dev/null +++ b/talk/20110921/medals-live.html @@ -0,0 +1,109 @@ + + + + + Force Layouts - Foci + + + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/medals.csv b/talk/20110921/medals.csv new file mode 100755 index 0000000000000..14d7d0fdeec38 --- /dev/null +++ b/talk/20110921/medals.csv @@ -0,0 +1,88 @@ +country,gold,silver,bronze +United States,36,38,36 +China,51,21,28 +Russia,23,21,28 +Britain,19,13,15 +Australia,14,15,17 +Germany,16,10,15 +France,7,16,17 +South Korea,13,10,8 +Italy,8,10,10 +Ukraine,7,5,15 +Japan,9,6,10 +Cuba,2,11,11 +Belarus,4,5,10 +Spain,5,10,3 +Canada,3,9,6 +Netherlands,7,5,4 +Brazil,3,4,8 +Kenya,5,5,4 +Kazakhstan,2,4,7 +Jamaica,6,3,2 +Poland,3,6,1 +Hungary,3,5,2 +Norway,3,5,2 +New Zealand,3,1,5 +Romania,4,1,3 +Turkey,1,4,3 +Ethiopia,4,1,2 +Denmark,2,2,3 +Azerbaijan,1,2,4 +Czech Republic,3,3,0 +Slovakia,3,2,1 +Georgia,3,0,3 +North Korea,2,1,3 +Argentina,2,0,4 +Switzerland,2,0,4 +Uzbekistan,1,2,3 +Armenia,0,0,6 +Slovenia,1,2,2 +Bulgaria,1,1,3 +Indonesia,1,1,3 +Sweden,0,4,1 +Croatia,0,2,3 +Lithuania,0,2,3 +Mongolia,2,2,0 +Thailand,2,2,0 +Zimbabwe,1,3,0 +Finland,1,1,2 +Greece,0,2,2 +Nigeria,0,1,3 +Taiwan,0,0,4 +Mexico,2,0,1 +Latvia,1,1,1 +India,1,0,2 +Austria,0,1,2 +Ireland,0,1,2 +Serbia,0,1,2 +Belgium,1,1,0 +Dominican Republic,1,1,0 +Estonia,1,1,0 +Portugal,1,1,0 +Iran,1,0,1 +Trinidad and Tobago,0,2,0 +Algeria,0,1,1 +Bahamas,0,1,1 +Colombia,0,1,1 +Kyrgyzstan,0,1,1 +Morocco,0,1,1 +Tajikistan,0,1,1 +Bahrain,1,0,0 +Cameroon,1,0,0 +Panama,1,0,0 +Tunisia,1,0,0 +Chile,0,1,0 +Ecuador,0,1,0 +Iceland,0,1,0 +Malaysia,0,1,0 +Singapore,0,1,0 +South Africa,0,1,0 +Sudan,0,1,0 +Vietnam,0,1,0 +Afghanistan,0,0,1 +Egypt,0,0,1 +Israel,0,0,1 +Mauritius,0,0,1 +Moldova,0,0,1 +Togo,0,0,1 +Venezuela,0,0,1 diff --git a/talk/20110921/medals.html b/talk/20110921/medals.html new file mode 100755 index 0000000000000..911bb218fc34d --- /dev/null +++ b/talk/20110921/medals.html @@ -0,0 +1,22 @@ + + + + + Force Layouts - Foci + + + + + + + + +
+
+ + +
+ + diff --git a/talk/20110921/medals.png b/talk/20110921/medals.png new file mode 100755 index 0000000000000000000000000000000000000000..d640f5f440c1a1ec4311d38c1c90420f8c392ad9 GIT binary patch literal 174423 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 K*Ck)LcK078@E@fB literal 0 HcmV?d00001 diff --git a/talk/20110921/miserables.html b/talk/20110921/miserables.html new file mode 100755 index 0000000000000..c58db9a5808b7 --- /dev/null +++ b/talk/20110921/miserables.html @@ -0,0 +1,64 @@ + + + + + Force Layouts - Les Misérables + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/miserables.json b/talk/20110921/miserables.json new file mode 100755 index 0000000000000..8ac84377f78fb --- /dev/null +++ b/talk/20110921/miserables.json @@ -0,0 +1 @@ +{"nodes":[{"name":"Myriel","group":1},{"name":"Napoleon","group":1},{"name":"Mlle.Baptistine","group":1},{"name":"Mme.Magloire","group":1},{"name":"CountessdeLo","group":1},{"name":"Geborand","group":1},{"name":"Champtercier","group":1},{"name":"Cravatte","group":1},{"name":"Count","group":1},{"name":"OldMan","group":1},{"name":"Labarre","group":2},{"name":"Valjean","group":2},{"name":"Marguerite","group":3},{"name":"Mme.deR","group":2},{"name":"Isabeau","group":2},{"name":"Gervais","group":2},{"name":"Tholomyes","group":3},{"name":"Listolier","group":3},{"name":"Fameuil","group":3},{"name":"Blacheville","group":3},{"name":"Favourite","group":3},{"name":"Dahlia","group":3},{"name":"Zephine","group":3},{"name":"Fantine","group":3},{"name":"Mme.Thenardier","group":4},{"name":"Thenardier","group":4},{"name":"Cosette","group":5},{"name":"Javert","group":4},{"name":"Fauchelevent","group":0},{"name":"Bamatabois","group":2},{"name":"Perpetue","group":3},{"name":"Simplice","group":2},{"name":"Scaufflaire","group":2},{"name":"Woman1","group":2},{"name":"Judge","group":2},{"name":"Champmathieu","group":2},{"name":"Brevet","group":2},{"name":"Chenildieu","group":2},{"name":"Cochepaille","group":2},{"name":"Pontmercy","group":4},{"name":"Boulatruelle","group":6},{"name":"Eponine","group":4},{"name":"Anzelma","group":4},{"name":"Woman2","group":5},{"name":"MotherInnocent","group":0},{"name":"Gribier","group":0},{"name":"Jondrette","group":7},{"name":"Mme.Burgon","group":7},{"name":"Gavroche","group":8},{"name":"Gillenormand","group":5},{"name":"Magnon","group":5},{"name":"Mlle.Gillenormand","group":5},{"name":"Mme.Pontmercy","group":5},{"name":"Mlle.Vaubois","group":5},{"name":"Lt.Gillenormand","group":5},{"name":"Marius","group":8},{"name":"BaronessT","group":5},{"name":"Mabeuf","group":8},{"name":"Enjolras","group":8},{"name":"Combeferre","group":8},{"name":"Prouvaire","group":8},{"name":"Feuilly","group":8},{"name":"Courfeyrac","group":8},{"name":"Bahorel","group":8},{"name":"Bossuet","group":8},{"name":"Joly","group":8},{"name":"Grantaire","group":8},{"name":"MotherPlutarch","group":9},{"name":"Gueulemer","group":4},{"name":"Babet","group":4},{"name":"Claquesous","group":4},{"name":"Montparnasse","group":4},{"name":"Toussaint","group":5},{"name":"Child1","group":10},{"name":"Child2","group":10},{"name":"Brujon","group":4},{"name":"Mme.Hucheloup","group":8}],"links":[{"source":1,"target":0,"value":1},{"source":2,"target":0,"value":8},{"source":3,"target":0,"value":10},{"source":3,"target":2,"value":6},{"source":4,"target":0,"value":1},{"source":5,"target":0,"value":1},{"source":6,"target":0,"value":1},{"source":7,"target":0,"value":1},{"source":8,"target":0,"value":2},{"source":9,"target":0,"value":1},{"source":11,"target":10,"value":1},{"source":11,"target":3,"value":3},{"source":11,"target":2,"value":3},{"source":11,"target":0,"value":5},{"source":12,"target":11,"value":1},{"source":13,"target":11,"value":1},{"source":14,"target":11,"value":1},{"source":15,"target":11,"value":1},{"source":17,"target":16,"value":4},{"source":18,"target":16,"value":4},{"source":18,"target":17,"value":4},{"source":19,"target":16,"value":4},{"source":19,"target":17,"value":4},{"source":19,"target":18,"value":4},{"source":20,"target":16,"value":3},{"source":20,"target":17,"value":3},{"source":20,"target":18,"value":3},{"source":20,"target":19,"value":4},{"source":21,"target":16,"value":3},{"source":21,"target":17,"value":3},{"source":21,"target":18,"value":3},{"source":21,"target":19,"value":3},{"source":21,"target":20,"value":5},{"source":22,"target":16,"value":3},{"source":22,"target":17,"value":3},{"source":22,"target":18,"value":3},{"source":22,"target":19,"value":3},{"source":22,"target":20,"value":4},{"source":22,"target":21,"value":4},{"source":23,"target":16,"value":3},{"source":23,"target":17,"value":3},{"source":23,"target":18,"value":3},{"source":23,"target":19,"value":3},{"source":23,"target":20,"value":4},{"source":23,"target":21,"value":4},{"source":23,"target":22,"value":4},{"source":23,"target":12,"value":2},{"source":23,"target":11,"value":9},{"source":24,"target":23,"value":2},{"source":24,"target":11,"value":7},{"source":25,"target":24,"value":13},{"source":25,"target":23,"value":1},{"source":25,"target":11,"value":12},{"source":26,"target":24,"value":4},{"source":26,"target":11,"value":31},{"source":26,"target":16,"value":1},{"source":26,"target":25,"value":1},{"source":27,"target":11,"value":17},{"source":27,"target":23,"value":5},{"source":27,"target":25,"value":5},{"source":27,"target":24,"value":1},{"source":27,"target":26,"value":1},{"source":28,"target":11,"value":8},{"source":28,"target":27,"value":1},{"source":29,"target":23,"value":1},{"source":29,"target":27,"value":1},{"source":29,"target":11,"value":2},{"source":30,"target":23,"value":1},{"source":31,"target":30,"value":2},{"source":31,"target":11,"value":3},{"source":31,"target":23,"value":2},{"source":31,"target":27,"value":1},{"source":32,"target":11,"value":1},{"source":33,"target":11,"value":2},{"source":33,"target":27,"value":1},{"source":34,"target":11,"value":3},{"source":34,"target":29,"value":2},{"source":35,"target":11,"value":3},{"source":35,"target":34,"value":3},{"source":35,"target":29,"value":2},{"source":36,"target":34,"value":2},{"source":36,"target":35,"value":2},{"source":36,"target":11,"value":2},{"source":36,"target":29,"value":1},{"source":37,"target":34,"value":2},{"source":37,"target":35,"value":2},{"source":37,"target":36,"value":2},{"source":37,"target":11,"value":2},{"source":37,"target":29,"value":1},{"source":38,"target":34,"value":2},{"source":38,"target":35,"value":2},{"source":38,"target":36,"value":2},{"source":38,"target":37,"value":2},{"source":38,"target":11,"value":2},{"source":38,"target":29,"value":1},{"source":39,"target":25,"value":1},{"source":40,"target":25,"value":1},{"source":41,"target":24,"value":2},{"source":41,"target":25,"value":3},{"source":42,"target":41,"value":2},{"source":42,"target":25,"value":2},{"source":42,"target":24,"value":1},{"source":43,"target":11,"value":3},{"source":43,"target":26,"value":1},{"source":43,"target":27,"value":1},{"source":44,"target":28,"value":3},{"source":44,"target":11,"value":1},{"source":45,"target":28,"value":2},{"source":47,"target":46,"value":1},{"source":48,"target":47,"value":2},{"source":48,"target":25,"value":1},{"source":48,"target":27,"value":1},{"source":48,"target":11,"value":1},{"source":49,"target":26,"value":3},{"source":49,"target":11,"value":2},{"source":50,"target":49,"value":1},{"source":50,"target":24,"value":1},{"source":51,"target":49,"value":9},{"source":51,"target":26,"value":2},{"source":51,"target":11,"value":2},{"source":52,"target":51,"value":1},{"source":52,"target":39,"value":1},{"source":53,"target":51,"value":1},{"source":54,"target":51,"value":2},{"source":54,"target":49,"value":1},{"source":54,"target":26,"value":1},{"source":55,"target":51,"value":6},{"source":55,"target":49,"value":12},{"source":55,"target":39,"value":1},{"source":55,"target":54,"value":1},{"source":55,"target":26,"value":21},{"source":55,"target":11,"value":19},{"source":55,"target":16,"value":1},{"source":55,"target":25,"value":2},{"source":55,"target":41,"value":5},{"source":55,"target":48,"value":4},{"source":56,"target":49,"value":1},{"source":56,"target":55,"value":1},{"source":57,"target":55,"value":1},{"source":57,"target":41,"value":1},{"source":57,"target":48,"value":1},{"source":58,"target":55,"value":7},{"source":58,"target":48,"value":7},{"source":58,"target":27,"value":6},{"source":58,"target":57,"value":1},{"source":58,"target":11,"value":4},{"source":59,"target":58,"value":15},{"source":59,"target":55,"value":5},{"source":59,"target":48,"value":6},{"source":59,"target":57,"value":2},{"source":60,"target":48,"value":1},{"source":60,"target":58,"value":4},{"source":60,"target":59,"value":2},{"source":61,"target":48,"value":2},{"source":61,"target":58,"value":6},{"source":61,"target":60,"value":2},{"source":61,"target":59,"value":5},{"source":61,"target":57,"value":1},{"source":61,"target":55,"value":1},{"source":62,"target":55,"value":9},{"source":62,"target":58,"value":17},{"source":62,"target":59,"value":13},{"source":62,"target":48,"value":7},{"source":62,"target":57,"value":2},{"source":62,"target":41,"value":1},{"source":62,"target":61,"value":6},{"source":62,"target":60,"value":3},{"source":63,"target":59,"value":5},{"source":63,"target":48,"value":5},{"source":63,"target":62,"value":6},{"source":63,"target":57,"value":2},{"source":63,"target":58,"value":4},{"source":63,"target":61,"value":3},{"source":63,"target":60,"value":2},{"source":63,"target":55,"value":1},{"source":64,"target":55,"value":5},{"source":64,"target":62,"value":12},{"source":64,"target":48,"value":5},{"source":64,"target":63,"value":4},{"source":64,"target":58,"value":10},{"source":64,"target":61,"value":6},{"source":64,"target":60,"value":2},{"source":64,"target":59,"value":9},{"source":64,"target":57,"value":1},{"source":64,"target":11,"value":1},{"source":65,"target":63,"value":5},{"source":65,"target":64,"value":7},{"source":65,"target":48,"value":3},{"source":65,"target":62,"value":5},{"source":65,"target":58,"value":5},{"source":65,"target":61,"value":5},{"source":65,"target":60,"value":2},{"source":65,"target":59,"value":5},{"source":65,"target":57,"value":1},{"source":65,"target":55,"value":2},{"source":66,"target":64,"value":3},{"source":66,"target":58,"value":3},{"source":66,"target":59,"value":1},{"source":66,"target":62,"value":2},{"source":66,"target":65,"value":2},{"source":66,"target":48,"value":1},{"source":66,"target":63,"value":1},{"source":66,"target":61,"value":1},{"source":66,"target":60,"value":1},{"source":67,"target":57,"value":3},{"source":68,"target":25,"value":5},{"source":68,"target":11,"value":1},{"source":68,"target":24,"value":1},{"source":68,"target":27,"value":1},{"source":68,"target":48,"value":1},{"source":68,"target":41,"value":1},{"source":69,"target":25,"value":6},{"source":69,"target":68,"value":6},{"source":69,"target":11,"value":1},{"source":69,"target":24,"value":1},{"source":69,"target":27,"value":2},{"source":69,"target":48,"value":1},{"source":69,"target":41,"value":1},{"source":70,"target":25,"value":4},{"source":70,"target":69,"value":4},{"source":70,"target":68,"value":4},{"source":70,"target":11,"value":1},{"source":70,"target":24,"value":1},{"source":70,"target":27,"value":1},{"source":70,"target":41,"value":1},{"source":70,"target":58,"value":1},{"source":71,"target":27,"value":1},{"source":71,"target":69,"value":2},{"source":71,"target":68,"value":2},{"source":71,"target":70,"value":2},{"source":71,"target":11,"value":1},{"source":71,"target":48,"value":1},{"source":71,"target":41,"value":1},{"source":71,"target":25,"value":1},{"source":72,"target":26,"value":2},{"source":72,"target":27,"value":1},{"source":72,"target":11,"value":1},{"source":73,"target":48,"value":2},{"source":74,"target":48,"value":2},{"source":74,"target":73,"value":3},{"source":75,"target":69,"value":3},{"source":75,"target":68,"value":3},{"source":75,"target":25,"value":3},{"source":75,"target":48,"value":1},{"source":75,"target":41,"value":1},{"source":75,"target":70,"value":1},{"source":75,"target":71,"value":1},{"source":76,"target":64,"value":1},{"source":76,"target":65,"value":1},{"source":76,"target":66,"value":1},{"source":76,"target":63,"value":1},{"source":76,"target":62,"value":1},{"source":76,"target":48,"value":1},{"source":76,"target":58,"value":1}]} \ No newline at end of file diff --git a/talk/20110921/momentum.html b/talk/20110921/momentum.html new file mode 100755 index 0000000000000..fa9151ace787d --- /dev/null +++ b/talk/20110921/momentum.html @@ -0,0 +1,73 @@ + + + + + Force Layouts - Momentum + + + + + + +
+
+ +

+nodes.push({
+  x: mouse.x,
+  y: mouse.y,
+  px: previousMouse.x,
+  py: previousMouse.y
+});
+      
+
+ + + + diff --git a/talk/20110921/more-foci.html b/talk/20110921/more-foci.html new file mode 100755 index 0000000000000..ba7ab1eee156f --- /dev/null +++ b/talk/20110921/more-foci.html @@ -0,0 +1,107 @@ + + + + + Force Layouts - Foci + + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/negative-charge.html b/talk/20110921/negative-charge.html new file mode 100755 index 0000000000000..a02e5c43ee9b0 --- /dev/null +++ b/talk/20110921/negative-charge.html @@ -0,0 +1,62 @@ + + + + + Force Layouts - Negative Charge + + + + + + +
+
+ +
+ + + diff --git a/talk/20110921/overview.html b/talk/20110921/overview.html new file mode 100755 index 0000000000000..fa677d52a69f3 --- /dev/null +++ b/talk/20110921/overview.html @@ -0,0 +1,21 @@ + + + + + D3.js + + + + + + +
+ +
+ + diff --git a/talk/20110921/overview.png b/talk/20110921/overview.png new file mode 100755 index 0000000000000000000000000000000000000000..92c5700ee507389e15132926434d91878376c6c0 GIT binary patch literal 303290 zcmeEsW1A*T(`IwJd!}vMw%yaVZQHhO+qP}nwymo*?VbC6cK6+Pk7NJAey9&sl@%Eg z85J3M#u+XrBMS2q^Cu7x5RACkZv`MA&}kqb;0s8QzfbB9xWIvcP}a?bgyh79gz)7Y zY)#CqjDdjMfS1*b)s(b5bvzT&^~>@-!}2>jCHXPI5YPoXut0wcgBKSOBg+Z=2Bttz z8sLu?5kw&Q%`Yea8~*pq$jjT#E!QdMZSTWrRlCWp=Wx~fd-xOgEDX>lAqzD%WIqtU zotRQkbvW-guqm3)6>;AH9tb}uRE4ThT26B__@B{dLuh`_L?Q)G&(Fh#Z|{KlO|pew zKx3FW&yO*WKSS(^qMW-22n+N+a7F^_<@M=BxI-8m!9M)xbJhlXeD{-iu3jOC^dW2O zTUmgB#-V{=Xp%Aae*yX9;hx6c1A<=&&OrS1f8IaC0sGD4j%?`oDA@w7Iqb0{^!Mj` zwtD_-s|3id?S7t3Vn~&;ahy<&U_z}u#;n^tmd|mIcwy? zLva0}1@mq92d4)K@xwz0@`VTS;-}9W;1Oy=gBsw6--?U{ga;Y}`3ab*c?I>>>LT~z zRpMSGi&+2@8tg&qJxj@##et1%2`=~mztm#O6@rWb?P|CkFV>4sAS_S}Qs z@K+}Vd3J|AJY+>uS*UV5fURvmd{L%MHw`aM|lS81a}dX zBP29OW%ffOphrLxk~jdhKWa}v4xSNGIS6+ETR)aP=uS9@2ob&%{yYriH^%{L0mgi| zn?Jg+6j2JorI;TvzIwb-5wZe`xnGlD2RAHkB5+|gY35DavM?QcSzc9Z*{s#W)z9f7dIpw>$ze}6CR{@_JS3D=5Z;`(`z^<>X z&$sWjZ?g{*0XZD*5aN*9Kt4cgK$?KBKm!m-BCjCAq}8B(Q-CHap+qHDA!H?wfmcO* zL83#%i{lp~m;57{BnB;BK(b6ML_A3{T5MMQSY%LCQEXDAUQAPzSbQttn}U#FA3vUO zp7KglNsLA8Dea;VBW{zc)u2_m#pZ7BPWMXqn)>rMxMA?`VASB+2*e29h*T7^Br%B; z3DcyGB$p)RB%&nCq*SFKC2pk%oDwrd$3^Nz zdnQ~ax<<;zWpB#&m}^ff8A}^e9W!1_0viPVd5iG6EmQY-z_ic)C&Bxz1~3&P(ywV2C|3){8N+U2I{nk;7+=Wi}2js>m`P8ALtb_`Bq zE@`|t4!f(qU#2pqzNe^YRgr~~!IN(Sg@Nr5r`pL{idv(v;n)#ek6Y1;G-KEPT-{vD z-Tk1~`$zVRhiJ@iIAFPxu=kdjcD zu&QvgFuKw7v1MUFgmA(wzZnL@1#Fwl9?#Fx(XZ1A(x%l$*FxAw+Tz-F-0uH4-v5Fc zfm)5ti*ds_=ak^}I5?YP=r%MS%|FZ;?L-7ek|miTODEoD_vb@!E1*+n<=}dK7cWh$ zE_IV3$dDx5o#H;+EH7nQ(LiDC04ms4qcwrqwjfWpDdxgEPa!Su^e`Bc2TTZ)B3{}YsaQM zzJj9CxLUdr)Op?+@78S#qmr%m)E1$Ks+~VxXI(nnW_UU6%}Arb3)tJ5EQ}y+!6>UDf`E`so-7V2A?JeOg{WK?)5GlfYT)#JHkUTIHq>_c=P~GI=%6xBRabYkYbQs_BhV+2bC^E)CFR}vm8;&h zd2wP9&IH=j!}QvO?6m77WmmN4o5lA6^j>HOWLI#x;N#$vEux!x;W~P7^IO^62y{b6C{+K zESW0T(+_RBbm&${2CWPY8}&^}AZ#vtArfIP@wRk`Y#gH;;arqax?%N*@i>+OjGUA5 zoHDX9PRXZyrt+zR%>vmnXX)o$%kun6^3vg=DT^Nc5JrBKOB9=wiZt4E$%}N_izat{ zS8s3sMaz?PCgoBvBJ4#yv;Yy9;ol!&82^Yt!+(r<-Q;L zO8cMktM_$@HtEC!`TKEy=`;5JsCfpN=#kcY%V?*KHfl@#5#w* zDnoRSd+WX5TUI_l7d-ahreQjwT{D~c5?icV#y53+oo|djpVyMN zw?A#)QbisLSM@%9i_(X^N%qWx!$q8Y9x|qH8worKAJ{0LRm+4P1>P)DO;*I zDI+QCG(WRcXfkU`X%2PLaH_p9J}1K(!u)~Zj>(mgmT8eWevQOzTHmK(rQx&nJz_ET zmM)!oE!4^Sjv7ij%2|2=iZWwN8w}y7MTgCKm~xeK7B43KEcMiJrhTR8-Zs-ZTs!!! z-p9XZHkY~gLO_+Dxt|8vA~sI`c?QZrP)~LUIJ6~c!o%Qw`&#oLB!uz}piO@!J~_Ho z+?Ay(mdeK9d_U5Xv~b=yen>}4STtk`VDfJCY6PVfIU+vFnUb9BRg-fn@2aaPt7$7g z`Z}(mqLUb%*h#I`9n>g)f?52EB25a%#Zce|=zAWa8v2C-d_%`}}HMBJ9yjcy-_S+rl4EPrM{=WMDB<5}; zl_b9U*46udIiNi78J9d-Jc1)W{l$%(h4Ln?k4z955g8sHDHcb&&Y2g?IK_! z_?0f$Xb`MW0}xNPTNbi7xuC=h$Z*QY)NtGgfBRaRT-2s$HkFtu$%&LHE>X`>?Z!`&$?ZwJr*LGwlztu>zRwEZQgugq zMFKxe9r>w?8jTE>46Sw3xuDCb#HzvzF50ntshM1cHAI<`*|nUcxzLJYxn${l0eyqM zg2jT)dck(iYPqd!E8ku^N4ZF9p9|pMBe3OCg-|84O`RhuAElIi%++w=;(74GT|#;w ztbei6Rq^fbJMM4D2kbAzAEdq(svDXgmXgMFM|k6Kp1+J3PP|rcb6uKeVw9@Sw%@&s zKeXf7P&d&$(@6V%v;@2jeW;&BepIZe4%&`bj_ks$IQy7ck=ssuCao1%J$xUm5qy%~ z7(73Iqt(`-A<^4OyTimF!I}cqje+bn`~X7c)@oP;){_S7(}BT%WC9Wt0LC|}{lekH z_XA5{>ovC594MWRK9 zGwMs&h7@83V}6S`9G-fvc1An5IG1a}&y=NKWZX42G^ix3K;X>8#Xwg#)QG4ixvsSK zV?B`l4tqK4ouk(g#WB;a_C5)q0kFAO25`mAADQ?A2{i0k=4{;8Q`)iE`aS^bDJ$agy0`#Ae7`aMziRjnUFfQ}7%o`=lb zhdn^77K{O^BL?0O0+Nq>MmYs0MT8%OKY)%9HYU6;~=553bAO-M5L=_a&6spWc zoc(sf3xPn2aF0438POBn)8Gs}A)5hR4OHz{g=dFEGmCG6YSIn=8p7xZbUOSC&m2NS zV3=TlVz8yjB&vxkPi;&QQGZc)R=rv|Sb5hypR-?Zz}XSBS+r@phjCwbA$SdVA$^n^ z(E!-|u>zC`aP!6Y2_rJY;>H@x64esgg26I}vW%jYx|-^t8>hOgBDFfYVgqUjTMt?m zk^n^PImzWH6=>#3mMdmFezT2m9i4AlKQ2OQM988lr9z~9Zw^^j>+M>(TY85s@}H_` zW@L7DruPF5g-TgW8PH|}g=>gx++2BL*)MQrjcw)eb_bPvaz9W&V<4Wv9D~3@T!I{b z5B-i2wH(okER5w#xqBslTKioft)Sa5Jl?aoLNRD+JquHO&9|FqlQExdoU)yJ828S~ zSEpBb=f%)obRFS%ehav;v_Y{-rmJ+Q)V4{qRJpiWE@katp=yD@rDCtLe zF1ryZJgo19Z@%~MO};O>yU}lgg-<*NJ7uNEv?mGY98*+MUAneFyNEyQ#K6lSnqsBGu_3ua$fDEn z-Qw>;`M7_<9T5U^32^qK37QY2Ad5^;#XHRFF|gP-{fYY>Ueucu!L0I@EERoa&cWvH z3=SJiGu$e%Jt0lGT*07Rj7Nm1i8-4s=alrW=3d~YpxDqqo?7~;;FCQqMN+z~JtyItbDs9JZ=gkM zz0(YGEtx1RD&a=QM+-x9+R5p{)4EVB@#o~N+LT50;@~nHQ#qqu1O7#2V+7BsMb)K* z+rgJ`6@~}visCx@j1A)m>y3kvb%R^y&&80@Skfui3&w8ypV!D=Fp@}AdyPXCldTWC zojz9IO6xJ}?X9KXV}m~dp7WsmO>gv{e_UK$qd|aJvHY^DwzsbV+uPZdcJ=o^{9^KY z+b+6?(bM{8OYnV|CLhCMNw1?nOyB9Y=#h+CljJe~V!cpyV(N}SK);awxqyK(ve1Em z@PWjC3n;k(Uu8pRA&iZhEy z&m&7l9MFZ!7gD5@F~}SC?+61UC{-wc9rx3={J4`D4XGYrJbG zwnf7?DGv`bveSeS5rV$D!T_j|7ST|gMj` zlqB0N$EOqq-{E=uU?}v>>ddX~F^&RGk2ic$X+m%}9Dk+w?)Z!}3dgbcEy@;e$O|r3 z6Z$`a=LaSQwuQka=pEiL#O>LEa*kEn{i<^j!n1BdhGmr0yjq*Z)y44i&`LVH8Sg&W zlX8iTHr-wmR{X*QjLTQTvAz5KkU$|@JR|{zg!a9BP`>U2x*=4KC!ND!2=KhDvB*qu z=^VNaf|pUpd$R33cjCh6@CL~fWb)_oBF>oZll`l~S2LK#{!LqkvC!p3zb)@hobk-# ztU(~c-nBr+Y%zB#P8_^7Lv$gvA&$XAmi_@ z&D~ykL(2VoNNFJ<;o;?iEX8+Ln%x}p30=0!aA&L?8QJ%O%-rsn%o+2kFYBEO<^Vl7 zANS{=7FV0})@1@SHHV)GSGt~AEu4dyImT-B<{++<@oP=Rjs2?a1qikEa7jm-C2v_V>K;Y;0STQ9wvR>ning=b zdP8;7{KG#q0b+QRtL;S){%|L&QA)?zelfvS_wCWP;XI126M|x)c-O@-S7-`N(HmfI zCSduvnm?lw+V>D8gTF`pAZHNPmk<8pV^Yb~^@6ZH&C@0sGt`NJuo3cC!D@Ir)2%Qf zE~ij7n|#1wPTEsTa-#LrNhlw$@lIXKQi9VfU+4rjg?-YfEt~av#gcI)YWF(crg$)N>~<-j_F-Ah*`qSxA9ODE?Uk^I+aM{nhuyy>Dgi z_677d{Y)9ie}d=++F#|lvAER5BylF(f7$iG&eXnsXHdr@kWu#P}4LF^WTK{Lg=3|9L+3NYhtQR-ln0lnRk5O z^${>&&`IhP4tvDEic|fxtg02r7T1T$V#S}wuz!aqiU?c03MnYBgiqv=c2mZMY;074 zX+(+BzwhaOKmJ_Jmi?&VBO|cWT)7Mb0|RDm=_XYgqkT}&b!A*_d4P+khZy&m^EFzO zT&Q|1bmH2Zi~V4uYf?^8T{Sf^Ho@teU!L#a zBvgpSwslbxUH9EbeHegGc^O86LOlH}D$Y-7VEkOWUo@pvuCRz=#DU;>9uvAJF!7Gz z)AS6B?l$|1FRPyDbz|kabg(hkwx*Hd$jw`;;pu#lI@?RgIjqsA{k!44paHwp>Nd7? zbiw5IGL7%EK3pmqdjztcf>t=Kw0Ja*Y((Leb?MTvW;|efQ#zu`IXJc~IOB{n0Fu<7 zr{#y2Q(x$EUVUL{vYE|SQW{q=H0a%T5ysSBiJgOdy<2M1vsI6ZGGu;sxdK>NlP{iY zyr$170+XBc3|oo=4vrv83&7$5fm4J(%Tvr+D%KujHu2LuncdufG*!f#e6zo+cSLTZ z<}###OLZ$|VgE*H9L;LFsg9n{D0m{}DO{mIH_lin#EZWA&8D9$mes*innGYHl>vj^ z^-<7o_j&p{tEQaq%06p5Ykt!nYB699Z63+8>ZALJXdN$YFz}%pnT~&^p)_E;Js#Ur(Lcw&kg7z70lnsvy*oELd+EmWau%zYWpuUoP|lC%Vv@RC zym)%_8r{H=4tvAIkyypV#+_un9-n(O%j2vf`m-(apRGj?(M)A4tOoEW%M}f;jgTqV z>SLqDc9(T+v`I7b>9Y%?lhJ0aR>-oMP}e^<7N2q?x4lPS#qg_&ZY*fnYVCv5)#Ai3 z4qqzNm}!?yA-l)p8LjtZIpd84{ttMoHP)5n>nYwW0|Bm#p<#0l{EW(TeaS4077zynZ~g~i}|QLSKh zKME309DykicDDRG37~~XKIyicKCqcrzxdl8f)3q?J>gxw5kbh=G;kf z@u--)3L?jYC~U!{4?h&x{?yimzu7J- zfrh5EYI^NqF*8NMFrq$3`d5bp`9n$u%ZK~=aRZxTB;#Zg*o;-p&5~4OMf>h8Ri)|z zOVaXdW=gj;ZC3KmRzfrQ%)!B1cnN4ka+BL82ZiCd z91+!8#~ELV!gHF_;zo4|GaVTd85!MeU*?I>eW_3?z(H?vilU+&eA;Q*gkU5@nzunu`DNh>hwgk2YwUuFfGNGw4W3bm z2yst0-|3HOO%)HH;UYCf0xEOGoC!gH);=xQkqOXb#y9K|3ZC~%NJoVI3F1fz%461$ zJQ@4HDeegIeC8KphiyhjmiI1P0nJfQhH+!XbwN!&gX3vxQ|om4M`&>c#w7V+G~{Ma z`pfx~Rb*Ow!8oCc!Ub<+Gv@kn@u9h8#08t&UJe&bkBZcSPyqt8wcfz3`l zd9xJ9nQ(nne=VaYcz4PyuGiZ5Mwjxf9Rw7<|9b+^yix6JRklETX|0rwvYEXW%~O*x zg!yesk`ZSQDn%%T_4=?jsjK@!5nC#bOVN(LaA1FYuD0*1>cmnyRm`GpQPf+6FRyPj zVp=ChZhY+cdsyFeyQow3_@((QzHiF9_F7z_%Wt_xXBRvPqkY~?v*Hmv5ll(;*;37( zPIH{rf^?MwN&(l>*M6qFm>Oe$y+db&ACh#d-BZ|bmVUm{ripB;e`4(XL;Wa|R$YnI2~EQa;$b5g}8PDnm2 z((Wf z87DZupkschu;fn>19;AmA`VUucqW(AL1dDhMvF9k;45vHfJ|BYicUNQr?DygL| zOfh5imm|cimf_Fa^>09pSF>`yz3JV7p)EJERqm|y%TmC(yiw1-m%Vd$w;z@xHhq=& zyWI^%1C*U6UG)XZSs6=j4%O6+!-(m_;@Mfe$N60HxtK8%nK56_v=OSkRzip!iq|Uz)v38vfoKM}6AuYIN{#dtn!cj9Z zp}6j@+R#{==HsVrrbKeJ+pGCN)M%|y>I#mS2Bz`p;HgPv+asfT)BHY%2dpF_2|T7-tpqw*2Ad;Y zqR6LbyWe)hlFl~AIRp7Fjj5nBEn(`z66Ptg0m(P*_+vF7fXwHOgXDX2w_RxfkjwMu z6YWjIrCMRDXHa^d#!DwL&|JB(nCltZ(dEmjuZ+b0nGwRKvK`niwKqSd`{`ZfTR%e1 z)?^#v%kZb&h6iz^i{*5L?Q!*aUkXx0eyBh1D^Pc+zi z`k~y5v1qMHB2*P^RA+29ANJo1d^Gi)J9PyC{+TwEXBwp^Lgp4Ee zI}fL#GG4y@1;UfNzU{Gv;I}7i!3lq>D0Sg>=}_=%9XWENy6d!!^^&liZm$FMY#X0~ zCuX+YAE61)@YDuZ{dnCcQ<2SL@)R~kfS;6BCm)*-*Qhzh>6>L`0rI-s>nlpiE>@Q& zjOSaeg@)dFI*gRw;>+P8ze-Bv5wH?4;wFU72_v}^zlbz^gRdHL~%_(!4Q))lw_^n0szLCsnJEYpPb&6b&}r%-neI&Sh%DJhaN(b_61$R z{Dw~`7NO_eP+)|>i`Mg$#}4gE8rs?_8V=VNuYtZ^Z5OhU5h+DBDvghGCE3X-Z1-vz zN|oV3p`xxVJ?A?Kn*&Kgkfb;>-L#_7Vj;5W49=T~bKwaX)FB)X93vrL^HgDA>}s%*Ul~Aty#$Y8!#oM>Cd8J652}?V z7C^t%NF%u!AV3}A>n47k#`tT!7h}yS*?7U*r1v?y!zJ7|?*$Zx#4V(WER>@L>dw0izxr6>^>4;qO5gTp<^RBfb>ea4Elk|gd*HL6i6?2LyE=^o7 zN}nA~sB@Hw4ibx`xFzH|y%H*RX~(l$QR1?G3BmzBWGfKgd!KGFAhqLOLn*a<6y`k1 zsO`ku0O>9x`hyndVDH>lSEU>AWj8mPhb2pw^YXQLgt$u)@EyX#Y1cOh2Pe_+CZ9tZ zr^oQm0S5>8fi3+oX3(}Cqn9_BKtS3zdZ7|M#<_hA#nr=OV~)Pi&tTVQaUlPfyQ;8} z(b&twj=Q~Ct&7U3oAGqAV`yuQHskyBIUk-AqSdJcUCQ<>SW_^DY57+unEHp6`&Z08 z_3Rq1P|1|`j8nrt7rKrfx9{;u?&(VphXq@C`l#c+=r1kmQ`Sj|QTVcoLOe;mKTXqe zWM@wYSFA-@9{o4e4~4~G^6nl)?7MZ{EY}E;Sf%sywnXTYnQx}#b@6&Vz#AoJtT!7B zOJ|l_I5@4o*0`|TtIJn9MmEX8h!|F4Y@DNB-c2djtn}(J0<)% z>yt^LlMaRFdc2mt`Wn=qmo^G%xn=tCrK2J-IT`U2(72CQKYP5KflL8w`=?0o;cHWf zI?{}79!#Y@7gCF-rzz};&eKkziEP>4_=^s1gf~_Ay07!3gbtnUF}^07a3GMxi8-9~ zW#msg*)-wwXP5hQfKKnYQ4z$6SzxZSYtr@yHw66I#1D4aCOc2N1Bjv0#QcTU-W+!l zAHVvRgT2|@IH>2eZ(=4vST}CPK042-{mDqsGttv1XY8*$0u6sK4-bvxjw#r z7kT?1Q}OoTSah{+4c?I+Q3HRgpe-`64EFep)IRjyA17c@G8!7jibYi%aVbA`s`vdG zHYd=us+t6NVu*jLwC;u6KSgrD{MJIE?UojjaRpD9L;rL6wKoWsU)kkg_0Z9LN;O9E zF^Sd7wf&ixgSa~RD)VH}?=76?@Esdj21~}hGw$fU;Ub(SwzIiV8`2SgHEV}@g+~eK0#edR!tVi zV&RtkuH&yHvsRtCy8;a{~aY9Bl(ct3Ca~eJyMbrS` zQ_Su8l6AoM$!|I#7T6Zs+acb2>)ONFO!xTR%YB&O&ao!WCpnwj;A@EdWcG_{EcR!r zi^6i+ww%y5Can3mY^^3$6&K+2ghtb6-MwOoGk4<;)4#Cq1(5vByY%}bt9hp zga9~#fA}I8Pq94wHU=_J0U)XA%Ua@gtF`qfMTjgD(dzztWpT?uF%1Ppoy_Ry{(`gQ18cVU&({ShkYDjoR`f>7Ky_d3migWM2TH-ehI+@ngLB0n*g(C^(ZqARp z?k7?Zxf>tbg(fs_$Su|*p%ge_TlLgr(8CmT-NNh4-phQnS~_jmucxAhaxel?>6~lq zpBb8}nqDWKhFIaXF7(wVmTF7RW3NrzfaMBUHtXlwCAc$oYG=ojZMGpm)-at+Hly)d zTkB$$Zlm}Jjhaln-acAHW+_;O&|ixCKc!ngPe>YfBvr3X@4;h`mdo90VY8Kg-$?qi zC6)Ua}e1DO=i=bfd{G8IY%%{idHB^EvvXlYfdqHioQq7 zn7@{`dU&ALlpqK!q*yDB+m$~>W?4cwAMKTJD0SL4vY?4ZNMmjF^tUnolPA@)F|C7! zY-6N|HVQ}RUWLlT#K&6~XL!=m_uXpw-_~eU>mEk!bPKsS`mK=k2)(&ydJ!r$#6 z9&AyW00+){uNIq3$7pB8mg06RUHoRc_cBBcnTv6KZFmZ1bRz4yx#O;2k&*h}o>d>H zs5JlHPz*Mv#Q4>l!Th-dmTU%f`OL>>A&h#Q9HljG`YAN#H!}*2#h6a(*(&sCO-sd} z)L34o?8=XjC(A)C)Uw@fC-aNex?)=Omf3Svcw;<-xpt~!h~=tRhe7AiXmQ!vUAuHd zxH}h&bhCwUyl)K@9W$Y)L*dSb)X1diRVY9dq-YLnV?~%+FbrYZ{Y_WwZmtCpy^PVYjk0 zO>N7$eJ96oZ53V%Q+&)`g{MrGc-|M6?)k7P9dxtl$p?zG=A6^gPp^zav76F5O{Ns7 zt{yZQPGMo{7m4B_ZywG-jeMWpakKB1l|x@JD;9Wh&AXsLW8dH9cAcxmAeD)LiS6hR z>8owp=y`0Wk|5w_cqHEDj(2C%Nw zY#^EI-jGB1A2i+Sbgvm6G{%mO21UHW*Hv4_sTk#MHM(EcYXC~^^pJSJSL`xJNxHor zgA%BX!`+kOVV80d$wc9*tU+c=v4`H*q($rXxo}Xti(v$$b&W^d^a72L;O@IkQUmq^JEiW-gBuML$ za=}aAt#|?#dtyZI5?UOFNVPiP=rPY2kJ0PXxU`i*2D49x_Il5eD8#Q$Ce_lg(Y5`?OwxE z)+2af`m`jYFu6?8YCTq>v=mzQF4qfR-QgD$}uLJs*O?pKWROtWpV)TXm~N#xCUf{ zINYAInU0+bum=ffiK$&?WCNaLz4ra}WWh*zD4#v;i_gxQTZ31oNDSV11Yt~aWRBaH zJS*KYDl%_1CtFIo2P!O^>-&_4EBJ94*QpoP8-;^Cyhw6)*um(Wmz zZW}9>A5hjMUs9M2MjLk|i(|!~ZiDV7t6}oHsJ33qPM-5=g*bnS0sr9w7}OVbq$ns_ z04^SGOX+JVp?Ys>ZL_~{oFVXuo|1!>RN0}RK*Oe(H|n3$9QAL*=mI=8e#f?@mL5aH zrR;c$*S}bTL(kSdp=Xbq%9o5)I(5js^yK~%*AB<~% z=ci5=x#$+Z!W!gK1F4BajTe$i>(+T3eq|M4ZhxV~WLXumw@xw+ALEt6H7*$!kxqR# zSKU9L*X)fOe@jW;2qr)NWW*x^LwKBn7+sw$Hi*G^iW=8kw5pum@9D&c$6b<_{>(`Z zESa+J+j`zfX$)=FI!LrlW4Fs`^{{SfM!$mEh!#)$PoD)0cRPE4$OI|TYdilB*6&IzamCFCe%6Bulj$flrCrG&bG<( z9}a>2b3*nb?qfvP>cC-5a(X&et<|BbRN$|}R6RpOMqOqV+_K75F0G*I)KJl(P&SKx z68_3Z5YQJuwCvp~5hv@c`1Nb|;|&w}4d(r$5rK7{G_G1vS(k>Kva%{PMNBildTuXI zuGa)hQe_YZidh`!rtwspg1n+iu2MZHl$@QMy2P8>-LYLgv!LW>33=*dFb8Fk?_NlS zhh;|Q@<%siQPPQSyOx%Qe630OvIX32Tw72L&LIB9iEf>FWkfCV5t{N+qGb16bD0Z6 zeLV0CkBUiZ^~Hcy)D1Eo9!6i1UEIn9z!4B3Sqm&>M$gVkTjL#-+gM2m@uW$1=>k_@ zNrd20rmS+JJw-!V&NAZY>GlpT+G34_i(xm)(G2Uo6!EuBu?gAqmvo}p*;*C$+$bdC z^E7{`(^>_G@;A)?PtFM&qM6QC7#5aOF6Bk(vmm13{J0CA(o)cWs1g4{z{GpFATJfU z+V&^puQ~{8XRD0zoqzED({cV^(S2T2q^t?n9+Ycg~9r`pE%G`yYP6LeYv3gl2!rj-1f5DG`nK=Kd*j5R-W$44Y%GG6UNB`U8 z;g$E=qZAr%0Vc5Vw&FEt)*<&Ef?r*{l+u`^Ix3yKYsd0@L!=2 z|6l08F8bd-wL6*4JoTym>(#Abu%?B_Lem zTAOLSv5L)+YiyvxESd|CkZ(Cr$s`L2Y$Ku)Xn2hzk7d&t@|!KBZF2r&LE@XHV2QXB zxgVHKN}qP!hW;DwUuyf@1ejZwo#C&nqwqvhY0T8E;H^blcSifU8^&&CZ{b}EK7o;- z*GayNB|Jn&k!YF91)+fkC?d2PoqC6-XY_oMS!Id2*Q@-)S{Ibgg!VvVtyr^wy+H+> zzlKgNE1*!3+l)fQ_MlI80q=DQN=m441Bd-`qbWbsQqgRwzHN#wJh_dtfX2Z15m==+ zOl)u*#3nnQy;@IUKGK)`+5EuYyxqYoov_k(_=*%1YszFA6^+Bzs2SIjnpTHG8=`Z& zlR)y3X`oPSJL= zyK6{;*}OOztue>6^#Li;%h9;DT}qR4AxQKY70OqVNfskPqB75;MN>9D(f-;B68^Oymc1Cv3CmQ1kDxY<1pbW1oU zH+J#;VmC7OA#KvuO>pw zw(IfSkR~+!2=JS%+V#<5c2`1+{1H%RJuj}CW{@?n>&>FyH*`EYwr;w`$kvs@e!uDP zK%3v)Wu|mGUkMqTU>qBj;Rx)utfj?as1;D(NMAmqe9oUzo_IyAjT2#`&nd7SA9#Aj z*A<-+0TsBrp1sR|Q6kSCB+lAlXms%4dorjmXcMuen*ibKG0wjB*yKb%$66?-D1c)r zGpz^9V|sPUS1cpp?$g*VUt#{ImWGSf7XS$~asd76wYWps(T51qs|p3XVF8IqJd7HhUp1w^rWgKCW^D5u2OMZTvJ6U5VBW1`?P$C{eY1BKJ4x92ap0q;;9W zC?hOf$>Y`T{@G@4Q__nS4~0iForpf6fxvVcs1SIFX|b6cA%bTBoT-lTzLUHU979w3 z8Jz|2+}^fzr9qRfH#)5j-};INew4B$qYp}0^f+YMu9$yPOcHwv#6%(~#?oENz(SzZ z6t+K-3OH$cO{LcfxCCL7>M{B*_aLeN87HWk|THU6}MC!QCzZ( z(|oBG!)v(ozbclgPGJI06nyYSqeS*0N%Qh37etGx9U1y@rD9lkXmAD?Tvix=vXqt? zPM2e3{Gzwk^FpiI`He^6R7mc9J|%N*pilm7$Sfon{{zqJ=Sbf3#U57 z3teSlCYg^W^OHR-v1tzzv{75ZV4#qc=sZraEJQf#x5 zuhTjz&Vh`Srj+O^7UnG7==52HAAb`?X$PZ;(;AJ`eKiGQb zAW@p&TX1aKwr$(CZQaow+qP}nwr$+8ZENS-*cb2pUhKcs-4zv8QJtA5&&dpq9f{pZ zQkE|-`d&4y0ph=}8?UYf#=iWr36-MYpThCddBNqllhhA5fWXFloWg_gX;D5hd$8c9 zG{*T_{klJzLI0~N9N*>l*oZGX-EGLA!}|wifm=$JmF|k0#kv1`O04uPh9%Kmh2B6X zE4_kJ3%(Bhx)W|7B1=VLFgSwQFfRW1^7Up+?hpWz{g#^@rvvIOc(X)c#LrUe+4jvob}2lBs?c1%^|Xqf zErjx3E$|B(J|0-GSlx63#84ZikgIbI0`{;{-V4@+ytdb3?0(5U; zqmBxNjWEm>1_Y}gc57!eK=_M7Ns9YU*OyX0w>oO zhsxP3pV>nO`1gFbxutE*-!qwcvnDkjjiDf$kN~5w{U508B>V{M%Mvr)*0y(2W_(g) za`5?`lo`_D~foeCI ze4k$&VL3bB`~wGzgjYOSkbzP9qlUS5-DPoVW;tt}9`o3`3u=7qc~_$!)FwynbtNAX z@QlkQONIJa&Y7O+n)I1`AwuSiV`=Zb^*v)Zt>NAZX<*YzZ^2SF99K z1c~SIIhz$&hHF&_)@wd@@A#*gY!cm(IOi8H`#T%OD>@)kBM+Z9N`B+Ml zIjLVsfE{UF+4D7N-^skb7b>^!rU(|5+UMK06D4J#?>OsFDG%>eVl#g%c_Z{B?cK;B zpE0zDMGVVH-^3d|JdiK-L#(_x?(SvfyiSyPc}lGItO(~ zWrdXH5YiY-21hSQ#FvehT*K*cuG7>cmwb`pd|}scK0Y-(9u=Dy#}dYAi3en1i;&M( zgxMCt?LXf+TL*(V5%A#;MKe@0_moc&*^&A=x7+w^Th4YBhvA&a&O7$qB=o$uJIsaZ z(IBB~=?>e^?S*EaV2ag1y?w9Sf%<9fJdKX*1hSKKgs&a}TVgVsau&%_4{7z_FA*(w znv%+r;GuVZC8hF6Jls}_0#74HzNJ_gv|Ja^pe}GRt4~TcGY|IcH~mgiEH2 zAd|84q&4t5*ov9Sa!w_04{9aIx~UoQFpfp8r4&=LgQZ;+KzKN&CLFjHB~h{){+JAp zG=!@>j#@xn%Hr6Y`W7kv{-yq$WM@WPjLw^nVJ)yCm$7OMc%BYYvCn^aJs!g%r8S$p z)(b>+y*QHiI% z=x1-1(DzK^Ug=7}vz*m>IUPJM52}s)VrU2=$02|9KVQ+G0`W`xx1O`~30`C8syQ9z zn=~v?>OUtpzsC=gSHbw%O~*R|!8F;1Jn-6pW`azqxt^J6iUj}Jo|E73aT>Wf0`>22 zwo!;AO3|EGDNiff=@y>x=G=Me69mC;?TUNK_$GX2uIPISk3hoja!s0_s-j%I-<@O! zFWG`@)c-NGy4*!SaIsFI`7&dRXL;L$%bQ4dFn+tUmCjvHpVW|gf`%vBJVvB~%+K-e zT5Dp^Z~xKFH`jmXB}uuU56Q3lZvS!1;Ve9iE%ywk0B*MC7c*n5lt;%pMazB)RuYNq zw_BR~L;R?XHv0v^A>;lJ3EOzN=uhbA3!#erRWbe(^=2bcG(zSHs&c8fE;?t8tcxOI z1Wv)OM*=&_D-WS6yY-D0HffEv%`wF-1iw)CZd&@tQMd1U6Hq5lJcdb3hIvfO>zZRg zSL0z)QR3N>_6lk^F!H@BR~KiLF=Yz2oed!)BzpR*sYcLWWa>0|&?q1h>lR zl#uyjS_v2FIErI}YspUfoeWcrX%z3nzk8-O@V|`xt(XH^Gsnp zZ+@5Q^X7{Nf=J%u{+Xy{VX*j-`zBRp@Sfy%c{`u)@un@`M9~$yrU+4s-p#k!v(L{) zYIBn5F_PzNnZ~=zOtk@vd8&1oBQp1+H}zdw@Iqg*UqW~N@MBaAS<^!=w+}&W4MVNN z_e=Xnq$&^mfF_@CF$o=K635T;XKoDY3I31QOlDn3Dhe%`PTKjZ`HCBn%eDE?SnEeH zro4_^5OR)>J%S+5YWwN{Y-gjRQ={BB@5gw}4zh@2>TVEYZ6E6VT0HY&1C*ou_w&SV zvB-WA$HKHzhu|K5A~L!iM}~e@<9GM?1B`A@yDU0g}M1ULH^}7CZu5>8-LJ)uYFy7~gg?ddp zFzvJEGe8yPRZ?~Z&e{M%!OZ6=*IODxc23z{+h)G3SO2tgjB z>-+In=wI7chCfj5#FK$}^mh_xa^kmL2F~leZ+0ufFHX%3&GWG=Ffk2 zeoBvvcswb8@mF|&Q~I8bA-`NOwnVWOBVR|$b1>gx2n5;WCqO;yU8qIku!@+MV`PGZ za|c<7UM0ueOCsWA_Qky$l+N~?mMfPej6Mc#VQ|1B-_s^+?6Cup&ZhI@{p~xoa9F*q za**h%)~%L>0~f2;ALxIp1#nOaO!0OoxpTO|BTdiyv}2OUbUg-tEFTe^9eh0cB*TSE znU4n*l*)!-dhUZ^>F$?6Q?SjxFT-h@L;C0XC(rN$y%a+wv-kUB823;)AX>dKgpLEk zyPzc_;2-74PA#FnP{XN)R{7bwqWN2i)h*%Vw?$F;UYFMiX@%Nw_zx^m<5+a|{qvsE{V+Y6T2dS+1n2%|Jo0Hcqx+HK zxh=lBD;-M(Ll5Sl3Buc9rR5N2_@7&w^Vd5zEE{d-1$1pjW8tOQcLn+21=>txmkSIh zft1E{uPc~lQl4H)WIVm*i>mgL^05D0y!aBWbF5t3;4|<#42rD2r7X>_igAhOw6}*` zMqE2*QF4bq0}m8A)tr(sZdPEpodRE(#(?C zOZ89^!ks!*q`?^4{^%!*BqHo}7ZM+Atr z#Gb2qiwybi1*B;Li<9OUO2kL4cT~>NUwvdIo73e?{}7wXY8rmlGTE_RX!0mR#P$A} zMo=Sv?=A?)f0+u4w(M6e1CgH#fmYiT7nB6tUXnDoVS_ZS1lNzTNiO1>M#KG*Fjmr2 zsq5V>RK5JitGgQg4AT4!O_x>G)K7#2l7!oKJHwKS^jZib;?R*+oum#Mw+|XrhhI^- zTO~&d?b(M;{7Xt4O=U0qGYckr-5EW1qKi$9OCjUS&egiJsqv(B!?JdR;WA>^Pgp=wS#k@>I38mdVhjiQC;Xp+(?Nvx#{;M#5!&m0inJ5b9&~$^i2V`Ih*&p+ zsb%`dHOh8Xgy)oZsaTsy)rU*-pY_^$$KQ@fd&$^LD(c7=8vV|LllIB>$l0Ra%|Tf$ z`_v3>C}r)Ibo6f$8hHEHOUl{{Zt7L(Jct$u)uB z#rkz#7}x&=PqPAg?S!$y|NFn-@!!{dTDU0+;7I<@bODKh?C+jg$Hr>+UA+H3{oi=I132Jg`8uPR+F+`gs560(aqlhdTp_&i}_80zfOjrn%+V-}C>N_`e0>{%5hlMVJ0R zE$IJxTJ;MB+D-$%{9k*;4dI|m!Rh&26{$oc1oRi%ACK3gjREqc5t>8886Bzb%?lk4 zD#LjZ#DQ;zg{#U99m#<=Hy!N2gDnxPj+NO@4Z{zx5G>^OW-y1n@1>M@Ga>OHxzOvxyVO``qB+;i` zacJfuT`&O2*O*Z57Ep{`Oi)=Y{!!zo=nD!>(%&Y#1ZpcfB` zH%1GO8#dOivK^wK6+7P)Fito)XUNzZoJi(|^T>+po0%Ph<9qd;JX~p6Y{8`2ICS;J z13A^!)ggc(!gXibHOS}kIUP^=13#pj=d@dr{*@m--tp9QnpQ7lZhAO*Xcw_7hBB+& zHn@E`gjyTo=Va%=VKXFn)p5;jDFA+JRsk0@FsQOGWw;T8<+L?;IB4wsrwjGcC#MA$!>G?{30?;Mi;^6q_eh-XK(SACNvu#uXZ2!usS%mqZ>E{yyxM ztU4h=WDlq9TV0hgxp1Kx0oyrK=Z@1YHhSa)P9_5W?ygT&(V@5s@a!B7*{!8XZLJ{b z#S;t!udg33vcFlaJXBejpmt6FwzIci6!F>=AwoJ;<)M^P)xx!V2qk0D$=E{y)L z-o#N{r!%$FI3_j<_Y7a9=s_^Nf?H~!S z$9~l?+W+DL@ZYM(OKs%^>5g6E5|^u=H9%K#i%2DK1(~T+p<-pLna^RZ$-DfP5s_x9 zO-fZ;USXy32Eofl>cs1|i(6pe6y+26=+IiPmsa`7A0M4)?g6Sv1^?Ka0fZj~cZGZjpckiwxPX1K z%5G9j)m~R1Q%6^2Gf7&pehks@&5w=qtSW;m5kE1wp&xBRziYRKOT`&WuJIw=>yA#% zk$}2f)dQOT^1j_4Q0=7Gt1PQkM~a?EYhy#!!|1#)ddk}SGuQ#ze}*-4PDVV94+;u; zY=WFCH!~}{)IlDxCu6>L-ziuQVy)=~_%Z&20KctmY&f1+AM(p`L7kk z^|L)cUrkkM+Q;b~x;)HIM8#1{zux9Ea}3dOKq z&aF43JDyGq;3r`BcwxgToO=G_Q?j?^#gU)O(hH-`krWA18w$8RHe1_VN4S`L76+r% zQkgv88_3dj{Pn+}X}j_Q;3yB^S4kXRX=?&!23iOv@lhgz@ zDmsFo-f&uw=mI3c({M&zk!G*Vsrn#8D*xPDrHkrNtg0+kA`6Km(aXtWTj-W9AW^~Q z2VXb^D)e2NNB(5BYVJ;y#rDc2*QmpJ6R_X^hZ!(z=5paL_x#0-KR4Us zJA&nTo+OYI>u|OGXs(xbyK0}=`Fx6tjctf%`tSjZLx|vx%j+R>d4RpsTzNhf6XJpl z%WkECHo8f4O#_O@=0&Ji0}Rhi(t89#wOxeZ0rk|9S zhJlTpnVSn=sn5P=3q1aJ$NTS2k9Vb7wbfz?Z1vAhHo#5vv{^q88x6BHNzo1j9d?zG zBZP3PgFS^ZTSb#rw$28HLcdk3-XSf+={oB21hI=1Ug+&{AarFCwezmTQ{;Uhq{?d9 z_npA}6uA*P|5p4%r5x}KSJmtJBa;1g><V%ck$8&_~&>l;vQ4l-B~&tMWyMSTM?jruAPPpBC{`e$1o8 zBvM_j6qOPMYnOf>uXe3b)B0DQ7Ohz+2(%hbhjzIVvSGJNym_B(Je-ADvql3>%o@Tr zJs^##XJlw&;=oPO*U=W(Q*H)EhQ1S%aJ3pzEa#3Qfj_HjbHDeaNy|HItguBHv^?%+zF7OjSoJdDe5CY!sO*WW4I)I?R)F0# z)k1VuW4z@uLn|2Ww11^+_2D%qM~Kf|CcdW*RB7@I+L9u8Bb706zWBmBf+BS}`Y9N-{^0+qS2rLrb zoPIW5O(cPE{`_Dv>?K>7oB#KI(es{z3nCtYN0sl1Ydjz!;9>UKz1491Wdo4@UiiNX z;C0m13oJ46zch-8FJwesuZli+srF@2*R1Xnew8%9{Q;gv=o8r7pq{WX$zA{0bqp@` zHU;SA<45lXI?(Z;QY~HdujzAM+-%~=Y0%2>FY&f|#knn@A5RScwdM8P%Cvj*3@-P- z?qieFM4BR(&mMK~@4gnyFUe_a+i-zs$mSJElkPvP+{dqY6!Uoj(+s9KM`Sjk*~!Vd zEXRJ{L~tgkuNMg)HPi&1oiU*QDLctJG!SC0)<10bwuqP1&X;%#o`xNBuh-Fm=9n1L z{>es0!NA_(ZitSXoIiDDzcS3c3aFLvjvFg%@(;UbRQPMPSE+eOSrxxL8U&_nbl8w1 zSgBaa!2`blNnn%e**_cNR?Xc517pZsC&-~DBqY@7dR3#-4g~iiE0S=z(OhZ2(?hLZ zs zgo@SH@TZjjT%bbvyWc3zW&epI2#>3-h)R-Lk?F&(6-ZB1AHB&RP9u3d3@mIy$wzV# z8qR#x@1`pd!>)@1LZs8-@Al|@?5ByW2C$y7!ZtZjb|^32H^cdDK>q4sVBx>>Kn{ z3TwnVw?aE}MRJHhg!phaVL%0F`T0~dae;ET8-}93FY^I4xvEzW6ZYlHvM??bLRBn(QJWEbt(x?_e6{I`{+;^DTmv=V}NYQ7U)xG2TOdSyN+ zg~4ot(gSU{+Qa~+zcDgB!V#7gva8F5ydT(KT&HNHjOZ%pcNQ-!94ASge`xENc25A= zd04F^{ad%UMNa&~PzIY~S|Qjf!w$lvjE~6)hNh)kOADLCW~y-=R5i}H7L95^j9o-? zU@E_Yq0_QYW$*El! zuTErKxdP~mRGu$~DEEa*u*Qy6nzud3oM7Teq(0>ad%4tH1w|y>qDiZ*b))KC77`P} zHIMuxAq$uoxH5nM4j9_nY?yWVHXF9HFME)vx2YKm)or&<`nz9O+7WcVssAsDm;Qj^ zOcucLz~&cZA|TssOJYJoL17`iZU;y_N!%h4cV8p9HFJs%(k07~-BG8ug(uPYgk z7Caz$7A<`H@3m3z)2^Z6WXE6Fc_Evs_5z*SQpE}qqBGPF3PR2hk&iFODrHplwtD@N zIe5Y6kKnL4^mv@b+L}n95;EEt^aJ9dYJBXFGt6C0NEr0}A>fPY8UkUqt`hi}xu^Iy zP(Q3yb*R9tfKJdzUxYn=hAS68Z*5Rio`u3l6J%8xWqEZnxobG5&Ny9_+R{W=CA*5D z|F#2FK(9x(-sCZi6a<{naxSMgq8)^D1e~Ee6hR2sqo>0jncu?XApFWPVT*}PZQaFF zom^!qCCe`Rhi9E>bjO4TY8vRiLo3NbC#FAR5hu~=J$*KUB zol-m?DF`Er5L2CU-$h{IUX2hozhNc-APf%9144Z7xwEO7nm`+=Zzf&v-qB?7;JyB4>~jvYz@qU1&fvk#e~Pz z&{cDWRv{u27BKDNUE2*|SPc7m8~HzS|DIdm36^Cq`1MJ^<^)d)6&2O}{XK;~S`Wc* z_}^`})lpZ+(D9?HstV8hh~T!}1P*37X2SO*;cn0*4CAsFPqtPTV!#Qd z_({NgZx0niq+@j#PI}kJd0I7sWL3GWj6$WpJD*kyo&}`EAF#=Gjv`4(qfF-52Jom3 zT6Rz&Kr+dX7tIgASVdP?wsP5GiBBYOqpe3KXHfI9+};-;2FS8^p0A9_X-2&1bDDJE z;N!HbMu*SSYBs(wmIoO=r~9b@sXQ5dZpCxq`JEI#@j~y>v9<8IPv%vqS{Xqd3sO$v zr3en!yNhSM{AlH);uaN$hJ*<_*s*zPF)*qz$RByopnM6dIYgFE)y6L$ycX-2#a$o! z8Fn`c6W@e66BZnOO2)uqrtKk@q1+%)JjnAo$U2e2&FlI7>4KICx}x{z`-9u{($7gT zl4{#&0KsDNX}2$Lz&V%_5)lFj9*t%{p?(#_z5YlP%wo`k^voc^@ShFEk(-0F!=s-t zq%vTaEyU&XeqFz5Q29dMeDnqKHvPE$h+BAfEdK0<@4ZnbLAb)DXLAu+ zOpQ`H5?2>SRJj68PsMF{@Cjn``-0Ug+Z{Zz zFa#JO;=S=N&6~@?XSQrl7rvi8F&HT256+qGCLC!vN`JE&8!Cz+rL#}`HG;uKqQSE`lJdlk%$Q^tdG{0Q0U|` z0r`CJp%tfL1j<>n{y_}$nsIrZYF>3Ec<_(I@4fk+fD0EZdkj;yk3m{>R};M#REJ}` zo-Eh)<9fPp=-l(yr%7J)&v;tpK@b9S_9(r;jW{IY4rgJ&?E9yE*ocQox=Q$6WZ}Xt z@V}4b&RF;EaDjp)3$FIW0Z-@IsTBuZjx`h)`p6Q0inkQ{e4DLSA?`UrtzVaZ5Up$6&%sc&en2##q(9p zi&DGCj)0}&{Y4>ozepZsxo%bZd>CM43Rn_bu-GS5Ug6(vkCDxUcdY{$r&iPa@Z7k; zZJcT6053pLK)4diL6(FTr>N$jPEC43K>z8_0i+5vft7*U2y!L^7tdL@-RENm+-&tB z(Br>iG3Fp>&{UV!^bX$gWU8z71*zFdtqirkjv-USUaoi^GXuXC29n{?R9RDtJHRGs{_#h3Fb z&Is9*nj$s~Gnh(^(BE-IWCzkuuj}zDPl@vw9(tC7f{*JHXbmBT-U&vS9!GXlvs7jD zdL1FRpXtNZW5B7g=o;>+gZ@iqU}cpIyF`jSCBm_0P_ocn@M+W5QRsA?00Kj2r=A>GmJt>tc`4y}LLEa8n}0 zwin07?BqebyQg$fL=HkZ05l8@TG*d9g2CX2yc}!4Q!pll%npoY?18{>P<7jUD&<*X z{3+AMcd-vLu{WJE#bxLqF4TEWQ-RePM$+2^r~q)ouG`N7t-{$hwFd*6z8!OEi60Gl z0Ul@ax|G@O`7%Ir+$gUi?Mxrt!M?qRr+sssasu=?UJmt2Y*eO|T3_4%x;}OwkkB&L z0&uQY)Hk=geyRY_SfZg8*eeWVL`-Bwoic@Rklln7DO3Q8@z8GS?nja6`#p|c>EI(5 zCQ$9M&~3?~0spN{$|S6N*J?fd^OHSVqpi4lFOaOyi4na&Na;e*v$04XYGLT;0iAnL zfIVoEqpFpm$S5EyNvkV^j;!t5vwJAXtM8FPy9t8~P1e{;{Df3A1Ct7qDMD_bnakU` zJi-CJdV(Gu8PEOOgxj~T6o8X!U&dYs0l|XXc=qtoV3h<0xHW~lO5he#|1wgw=K)GD zwTjIQqU>!8%{&}8pZ)a^`2zZX!}D>FwcHDAEy}<}rn{Hm3Zrxn4EEaz*kRx+(pk8$ z8U~C{9!>-npjnRRs9Tk?CqtrG$Mgo35;SNH`62LuhY}wl*Q%h}g)%?_91pHGw}U?s z)=NZuJkb^Y&CYFUwN`UgoQim7b&x76A<@Y<_ZcR)nKuiT~KkNv{ai86}$0 zXh;f5*eq84wXESxgk3q=G;BcfmdHX?3`>XjMo09Zpn0o`fGQ?O5dCUx2n=eAI5}lL zY!CavLN#n`0(Bc)+F}L98`pT?;a>yY#bSVLc9%N_XThHOZ8!PZc(~R^JzuW3cs-x) z_nj)FYDJn_-`}uj_w3K0X3ONijc%-fY1_&wEeP&exBag?`7v-IeI%^i)=-E521uO& zxA9h8dKf#PAh?6Q+B7dI5tb&-hkB60-h(bsIK-T-7Ig^@_5dog(fF}r)Y`yW@Ubew zxxew{a2X_xjEsH*e@92h-5O~pIQEUpNOby=qN2~&gIEMfA@lD{B;H*#yiC>7-Trgd zD)T;^9yQI(T;-Lr`4v_xLwDA8r`!0+-!>vxs6)F}Pd{hKy8i&^Q~eZlHEzvdtuEFF zJNaZ(;eBcfipT^nF;VxnDzk4stY@>ws~?lyJRCG{pW!VE)bed_hOf}+{K^MT5ax}% zvp108L|h8F*r?im%NTc=W+EFA<3-4~Q5?8HJV(Jiap^7q+<_%g=jawg-$CCj^LZTf zNRxddAke6fw%$D;Kzb991sA8XRv41{2xO5wXyJm0{c4CsmnVclO+Y|(c%Q8gcuVA$ zqCH$FIHG#G{CN**lhxkCx`BX6_7Djf5&4M6tX&N?@;FMXzB`oE2-VfqPnEd9gb*SD z=xE2aIYZ95mcJiN4FqOe3S#03cVRtm+w^jNX16{2)>X4kep+9AUhL>MN?IzY^Wh|f zAQ*6s8QNY#t`2kW$7fw}Hvb@zkHlmfmF~igU|=(FfXyRH{I5+rQ>?GCQ7{N@sqU;hz2I;(`Eg#l?#fO%PI;Inq@<*0yh|xh^vdJ1d*- z-8i^-AX$7fB1zU>wGyq3LL}4Hlh_o?9w}QDY$v1=)jFn0F0dcinV)NidWSECTr-^w zn>Az3;Mubw;bX&0+N5oOry0>}-!>Hx*R@sp`4onhl)Xd3^smf`GFxo_%;SICN*(nB z*z#09anV)f%>kh&N~Tu9Zf?wa-$d)&sD!0|1bGIElSH#J1p0HfI_v87@)hYpZj@uu zLYT3Dxdeax@cFb%i?6dI_5J8y8UsF!^`?>5y+qW+V6FAY%ePHKO}E}Nt`aEPOqgw) zoj7Br=|lc-?=KMIzgiP-&wFm&VqKeY@OlIYKgImxG*+m(;;fQstjNHzkFeb9oFxv; zkO3(Oin*_|KkaVfN;xq+4^&#T$6nvXe0+(SYQG;yXZqyZ0xD9v?`tVa_|=1HOQ?Q^ zT`3|KElW$!(c1Jf%m9lz?iwUqo8ti2~fOEFvgz7gh{X!lbfyt{ZuJ}; z0tO5jDF>TKsJe?!9qQgp)+jezG15n#8&*Vw%!+0!-u>`8E(wS(j1@zw>)NKf3Y&2iv69PW=IpLiRZVHHbP3aprb+RW1Mm?onhO zq9m#)(S{Z-VYc`pOsq?fZmtE@!rVuaAJ3ChSZS-88^`>u*53;ZPUIA1np7mugxgF&ABrjjH5HbuedKa`GG?WH@Trn-SZlL`{O8%1)YolMTW zA7(SFF+T%ADN4z&X5z|+I72RH+CRf1u9FyZ-)P=M^4FY46e=BY%+yrk=xqsjX6)qh zPnen%K?I{WQI5vU(KMf>Z4>_IQ*9{Nb0LTCUcPS~$GMeO#{|6MnpHIZtKeg1>SUar zRE1$(=5|{Zdtr6%-=hRgSqUV2I+V`OQ%rK3s|+W_-tK<2sAHcOuP0#x|zlZMj5)cX~uPf#Vz}N)KG-GH9qBd7L4esn15-GkwyB9`AZx>W3 zJ%X9Kw)2HnbSw-me*!LQ62b7kXRUs_-5=^<>$%ceTU8g=X()8m$W0r82v{yzio9+1 zQ(7bIFd6+MVJYvcigxOb483iB4jw!NCU3=-n^TFG07Ln1y;E27rACdRgaxA|AehmL zg^E>y_jy%o2-s(y-X{iZix2n>e(%+DM*Yuub59d0RrS!t;z?+b)U`YGotOW`1xP@d zGqIO4?Z9mE8R-5<5Vf+>|Z+Z1gx!>uJ8M?lOzIT_SYX1U=TMG{3I&6#b#^>^ZnQEZ&vB zu9ezvDLJ&r)ckz#S66V5=X2 zJiC@2F3chU@b}}x7hurcSl#H!Kz!Kg6_?RrGfd%Ak78e2AjHu@Ch04sR+ujcp5q-_%+|&fPJ+u38I#)4#V^ z-DF7mZ2cly2Rlw~(5M)D>vsW$qv;N>vN@T5r(KTUS3Q-4q`FlT0` zQm~TerxsdA8##&=?zO3;!Lm&`LBjo?Y4q<=gu=*zageFJ{g|Sk!k5v90&8z4@ z#b?O9XHS%hY$ni!aXFPiMaU=;;yHP=2n8r-Q^DM5B8W)dR3#z44oqwdNt$(uC~okK zTq@TFiZE!arbLfNOX~p`5D+C(g@wqaP*E%uxD`uD_7;=(Q1V~z5zBw?J`l?Hs?m2v zlNtAv`aA|}-@L&sxN`bFb-8qGezUs&lqPe{(|UY1U?``iY$?)ZGXk+q1PA2&n)jUh$Q#8f<*xCBBMS;iu9A#|iN5v;9K=AYyCIXuKDXk~Kz%iS`%h9&an z%5~K=p6f0RIFOs%?^ODsvhjtRguq-2W-R$R&qEG?ah*EyZYgoe9p022Q!NInV`q|L zj{G$kH4Spori@Pr0_hMJtTi}dWW*jsMa`S*MQw)*Wq16zv!}P*pAuH#;7%BbrzU-$ zKI3Jnk9l7I@lCPon&~Q6lctnyxHuSG-E+SD^M1P?9NdJ1n}G3SR!U>Aq_ctrTmCDRI(mK4uFg%nIQqRW~*26#kZxcVGdq z5ZOc@+a*sJG47BcQ&!7t?l1Z}Zv1f>gL8;3!bkfs^Ds8{+%8lhnP3WU(-~JY6~1 zwCL8ERGGRtC92kB*WBboLuxpRde;qAZw2wdG40W^w1L!=FK4VIaTrM>YX-KnN3&34 z8)ETfDG@P*xnj|Vg93ZhvUu8vo@6rVNIdWx`semVD)G1C-%)UMBo=uNiI)@hib%_O?+x9zKm;xj0`f5=1dAFxe7}# zAsglR3xo`V%N*IEGFl;L>GhF}#3XHx6Hu{N+mKyDbMuo*OI)c($O7kf-Xm8U+@VNj zylwwxE?Q>CK0&KYMI07i86CrHxXQg3nd)kBX0Mb745FK07oUxc`=4TwTZPF2@Rkr@ zZ_!{kYl^5eXK33C3fp!>H-VlG=-g0cNs7*mF{UU>52=~&Zp+k>y4L6n|R_)^Da42<*bdni^At43U#AJkzB}aS8)$0J> z{0qmtwe7Y)#2832B(uF`0L^dv1cc>Hr@TLh=mt}N>8b^@$AwUEsi**o@RMm??kYE; zw379xc?5|J<$X`*xQ}_h>-bS}Fe2ZUBItiS+em(VmA4eQr)n4Pj zHhTI#oyQo5O-i(;H!&EBw@a5Qp+#~fsyUcC^pi)|nXhJKNbs~2jjwERK~vk#od6iJpmhtE=LFe;Z^!BwswLO^vhd(Y*x9h_t5rh;8NDqP z@hCPM31$oGRk12Q(n!N9(iI!gBXyA4QcEo5c#MF|2I2rGzINka?aa55^gN&jmy2;D{_rI8+FQFLgpcl< zN~Uk|xnEh{E4T}yN1i)1qp#4cbL-#f@|~V@+s*0y7`{9{m!&qp;b1`tBhAFF`0cNN z6-@H&(=@F2+lz%o*?w8VHf;clNjGTsQ=Xj-P~q+S;KPbIk$OXiuF?YsJZG3_i4-OR zmJOGVuRg%c9@fH>BHq`b_oj`zzGRvSZNgzPcdUB>KTF%zBtKv>N2^h83d`}WyVd!7 z^_ekIE5;V`fTvc5V7;9*szUMkLF$tOseI&3NXeq;pOJp+tnBu zir9?Z5`wn(QJVY+4I(P0EbT*QIcQD_ecnyGW}rB6ryX>L);#mba!*HwO97SI6s=L= zJ{g{GOsWUEakwBjM~D(7Pbn*@KtrI8DSV6KEH9VPM15lYtxg^75}mK3sGl=8k^9^h zi<&u5qChPJ1+$F?L9Da^p($IaUn^w|LcBK0OAT!ZvfpRMf+6Xtzf7HVqCl0{8C!{O zE>X;-E-9-5v4G@`T37(?@DsGKu903A?VhG_mEZe98-XenIx!q9`2f6*BXa`nw@+q{WTh13GPV&q&}Fk}mf+2k^4Hc{^C1$84Wt2EfgS@}R7vuG|p z*2>{x)RYOqY>9~~ZE|<;xpLHmy4b!9mkC4`O$7)plqaHPG->rvX$0C*IR#iJW_#AK z6|brmCU-qmB$NHnV`Y~?Lcw=UF9So*?Ep0UKj#OxS!?<4Tce!cAQ2kxHoB+|)(`-Vd7wCdIGe#l?;1rqZf((~0R7OI^$pC=0UsK4a&l~ODZSu_lx zj*rraNfROotB^nW5ay2CX>s4YWqbQue6CP;7!ml1e?d&jg|^p>XjZEaJ5l&WIy3@5 z_+`V>h$c(gieT~}0J+l0{E_a=lPFx92aYuWIglV(glqh6z`A;!Gnj)$ZM_V~4fOW0 zL3p6ceuwL1tfCOAko8|XWWinn>*mP`fCSNq1oE&^fiN(6mxH_FUOSLC5%^nmlcP(U zh|kHnoj882w>8(@cBQM%R{n4%R!WE&*;ak*AKq7QIBUE7e1XP#k(9>@g~2`JhzVHB zygx__mr!KR0WgNGiRR6=vl?1!bF*4;`xGdXvwVvFcQ$ms)_33rUJR{i8HeBBRew5b z_%?l^9dG9bR=A})tdZ$06~5Z0rulQwd-ggne)^p)_34_MZRX6v>)8Z^3_(Uty){ix z7e6CR6;m~vt{WGnO~+1&Lcrp$%7tK**Ga!R-;+E%^ZdW27Hbhz;NFQYu?wA0MndJC zhOuESYo-Ldma~k@4YW|UYdKZSyBAF63lufbC`P6_;;-*lHx}sTse3WzcQ>jdCTsb3 zB^ljFEgF|!hf~N(yrpFJG>M6vS)Xl_=ApOl;Pw#LmKCjv8nuiwO(?zIZC{byEY-49 z&+~g{H~1N`yZFfP;B^@P=Oy1fcj?qcz3W0)7n_Y4ml!_lDc|tLgy!^bbCY3~&k95; z5dFx1J_@Wx0HZ3B^xHj0eqd4&y`sL@2qtfcG$R=F^GZS;>At+Rd#U#6luFQ8lGT`Q z>BygiyiEjo)N}zhz|PPxtzM9#ahyu^FT-95`^Z{Y8|R?(oGYSn527XrnKE~^E3;^&O~2Q zcjiU=_fs~IhZLp%4*+{Wgug1EOCc0Ox-CUfmT)#Rz+UeeJ?R-ziMp0@|xLN*hp!5|h;>!Ev^aP4M zd-iO~zjNo#^T&`p`Q($g+;R&7H+>8?{mq*JAOH5}_KVQDIlg+{%JtM&TdWPJq7PM`;Y8`ZPM+iKbZ}j(m z;Oe=DCzJj}A`r^}IEHX=O`C1+aJb&42k{)w@MHn=PUqpu14yDmz@;<0gUJO=#(CDv zPhT4o5ENf1ZL=qVb`*-9LKa0y0)T{Y%7dTqJY?Z^l|rKiYoX9-6rJ_fuGuvZ7d9xA zukAaQP2mI;;+@2ZCpa+Xqs;qzN7pTHjg1fd>iL69=QU$5_*(B6<(DN>!|sSj9qIAJ zTb;U&8dH0XIVUeHa;Q+;s^mHBLA{XSOXkD*!hr$*oI2-3Of?4RHVPGAhNveS8V0t~e2j&;pFW08JehGtdEi*MV!Voc+V zdvd8v0lYX9k5;L`gG`H6t5?d0Clae0^h0p6q|+XEP}XD?LiU#)fDs+z4^$&~z8Um~ zw!U!^_Czp^MdQ_-rg*j(1`{Kb!D>=t1bSX@$7n{pLFV_4 zA%CkNDtTy+dpMNh(VfYh(|}U~F~dniZhMt}tu4FtiEZ1D4&h$wyFY*BZ$5p~`&QKN z8xic?(4K6ZZR@IsmPrVX%(JY1FUFDNE&b|84gKtZy{%kkDCa_J?(To-JMAtNP?mD|AMON} z+oT_Br()y6#Q1X>Jx=e6CX+E8$Yc`{*tL<7#CCrs$y^8@nMQ!NPdnH}xkzV6YKj&O zj_r*bH}2lO8&8m@RqXXIUViyy9J7D;!yn$TVZ-akx(Mz-GeVyOHv-G@WzDK+N~}P! zaX_TT;sq5c#*UzASqnEibVvMH3y6vG8u4fp5xFd^@@TO1V=t+R;Z(9{q-B>-~zK+ zMVZMujl$We*I>aZqo!)*v#<94)rYTcaM@(3%!oJKJ-d;X!F?K4M#vAu(tcmuA5O^% z!KE$6mG)$;XJRs$4#$#pn^%hBvc@3WqHJ5Q?=R-pSe5zxy%YNef|PB{6Sc4J9MPE% zPh?kZ-n1g%j^`D>Jmizb)0h{H+go0Kj^$mwulDTF>qu!zpVd1>5{u1b$VNm{xkZi{2aT9A;lW=phE z^ywtx@2RqJeqPy@vM6UH8lfUvZi+_}I9)($e$H&A@|UAYCue3`dh)3so>1{R#OOTz zOc6)Qq@1UejLWlROJi2F=ZqxO1-y+shw`X|gfXzytmfiWIZDqG*Cj7>BD^$f%6W0H zS(jqU3lLNZRZ95~edF{@xGSnd65(15eRx6qD;?ra>ENoe{G#1NCloVYxsR0}@w=Uz zJhXMo5C015gVz3|ABW9`#pZPIAL_4M zuFoejVV`rsI&c5;&3dsLU^M8XMRhI~DB5d9b1BraT%1upD_5zFwizWu9}K*bR5RYr zjA$3^B?1AUvNdbg03g9t`+1fVFE+%y*v%qg-k{6zQCM^uoN_~gAt1&0t}hvX`xAMy zR%th}%OrOhHRjb_8k<$E)!}2XwaSpl0w)q`NNBd3>+B~6J@^0m)tVZsfca`vI-R!4 zs7VwwAT-dmvOCoq$}hiW{hBMf-M#(yKeEl;Kdy3G7PQsQYH4V1txd`FvYv>f4o7VD zgC(#CUUmv*)5#as8Gf;MlD#hk3*qjhkAr?DMCvt)wa1o7C5? zTNsFD^m=WhU2C)G9A*Q8V||?+XyU8}CtpZ7k*czluwm(}ECuF^^%`E(3qZH|mq_RL z9UtGZw;x*v#OQQ7JF5<=4R91#R|@YxI=SqD?Sq+US}6QkmZ;UW4&&})>>LyxIgsqE zwavFHlIclCsrPPZr<+~gRUL|@f3bZ?snzZE=j-Pzt#2~!8jI1kY&bw4ZsKFjo2!74MoPmyQ`N(7bTToHbYW?s!F|)^y)+i>S8QhGpo|h}i9s#L)B9(gi>1P$O z$tl+-2K}~O`)4h)S7s|UO9{In-WtuDE1#Fe9BWo-hR2( zf^wnlm)^ZqI{#F3 z27{synjD_B@~R`6>gEDeY-)p6lUEt?2`>T!7%WC@CC(`DTO!wL4W}$6q^E#XMoy*K ziFf|by`W;!Nhmx7+t>iWLvo%S15x|dTW6lkxm`Oei!F$6IWL*2acrlM4kdBZ)#&)VA{FBl-$;uFhxz_Wb@2-G*mz zVTjGjOsx*f)C0mLI58M;z`_;jP91esW?6p2#+2!Xwe+Tx)}*yq6Dp-Hm1?tj`f>QE zQbNwHDr8rg({6t_zuN<($oGiy+UgvYJ4pXEljxn{Huqm0Ve8wHOx7Z&llB z+i*Uf%|Pe`D0yPoDr9IOi5BbZx;C6QCIwv*igg6dfxf8Aq)X~F9WH&78J2NHAkLZv z-|TWV`gnJwN^kw*t&6(b95=6OeD<*S>reJCXfXLB=|jGhJCfcv8kH5Cjdnc*AmBX! z!oY86)+up6>G7vcIt8=l{2Dz?S=Y7XQ=P3bL4TijTJ_goZU5dwFYMXfi$l203!Gbz zc??y?&)hf%0`=#50<5^~I;Aq3S>0lSQDkf+)8SO($xZn3R6u2zYqF^)qJ^PQ#$ix( z)tKg18-{}EmMXo=BI=258~^P`CgO8kI+IZk3LNS%)EXbYZTX@(jo*4;YkwfU_4(mw zGK=?6_(}GSBgPl%E!rl#j+u#GbMX!!=lsxq=Li~|{>DH1eE+`PdXuSP-U9NWm1wK7 z)Kt!S#cl5lPK+laq4wpg=C8kq!EEIkT{@9k;M{Vyrg>>)hfqesV%;?@5HnuO69HMU zhtZiF6-Is0)1!1YE2`$I9aAz;0ju?Fwo=3t8p(+xu=+~Ew*sfZN{i|G&y<#PQ?Dj_ ze0OTk7Px-7R%+C_lLzAo3$h??CZrgQJIDv8XRE*iyrh|v;xH^WG&D%1rE@c3$aN-F z^V0Idn>Bno5~<9DB*d=_;oPTk3X0lNrdqW&ja4_+{Yp&mr5d0xAam9PQ|knj+o@DC zG3l8W&IQE>b9rU9gixGvOG+owqs!T{6tUawm8qZ>QI%$k=?dm8@p#$RkmSVYRykYF zc?v$&Pc;i4c{Wui3u5LYm7e8ORPCTXQU!^BvbXok-~8_N*WZv%gZE|D4(c1{uUosO zGF#%KOJ{VJUNhWZ(2A?)t|-|~iPDi2X7iB^8FIpb=;RO2s(^KpaFtqnWi#X*5i&|9IGu!{U+WeIV=a z+P(YAE3SZDyx;QpDh=aF6!=m`uGtjz0f>uzQ1wOf{A7_pL7Wo1Q=2gTB$(*@?aGw%1;T@bY{f@%;18zwdqTd*FcwDw&JU zC*cJW2P6hND7c-0$Pd+ZO88&I7FGs!SvW~z4PDwzWb{G}5KgAtffNdF;nh4Z+dCEw zL)#&jgCaoFVKf;7<{AcP^s{`BteQ=F&E^hck3Z#$gU&73bSk5w_{iRI#92-AY@;3d zR?$C-ua`I?_|jVaf@V83%{B)$aI<2PGX&F2jJnBhm6h)U&-Myk(5voi803ZNKL_t(;%Mrw8 zS*S14Tqmpx7#vtRXcfw86KvB0l1}lUu>5(HW2#9J66xD zH|-k?|NHYp&ksbp>$I3=;&6wRhEh>DI2L_xtL^d*`?Edxn#uCknjE@7D1BlgzG;pV zw=&4zk0114oa!<=a&nlyiZQvS#pb;F_G_9OYfJ{+XKq=iw+whDgfj-L4pgd0`4reF&or9V``uJdZpjy` z)pD>t+XuoMI&2h4jJLT$mEHXI&9(D8>wk10)(HL%D51!OZok2^Kp zUm)Mb1yu}%O4V`MDqkQdm5S+%+5gNEwl2NwuCM(|% z=g`7Obn3uqm^K}f7X$~HPNvpmqsWj5iyTrU$^hX&WwuPT6cw>d%n_x7-b{qD^uRf4 z0Npe*AW_8JoK9C}B2~6Bgax_Lrv+P0EB{l+(PC@+CE84O3YXs!y|URK_9mQ_Z4Kun&y) zWTx9`IlGuvDGU_`&dAVf*R1)4erwoK1x`Sq+dN|H7`0_D6`o~Hv$ zWlL%Cuc(@W)4(^TFV#a#RnspBn20Ky(xn3V(mD-^KLf{ZiQBs@XG^b@Mj#c<$R!O$ zY4sI#ELZkCPpFH>8+i6Nzi{vUX*v;6s!zSjv*v)1?F}Ym`i8a3E`u735}MN9Esy@_ z=DR*t?&^*8^`XrlJ@%V>yQ-9!DV;T+w<3@Rff+dmV~@_4MjE` zB7RyGouyKq&!(a|OOr-l+Agms3T??EkTq(#H&)!d$WEbCGn-AHx_i^Juk1U9f4=iL z9)0xDPkiDNKm6ej*{&HF7??kQ{#g@+0|AD%RH{&0Rq`o#)<}QwK=hFec6=IbPMs3) zj}Wa{W@9+cTNhePK5|B2x+8&TrTOZmbuXh7D2O^bHJq zWqMs{YLK(CRVb|3@4+;3d8ZB1x_By&@HY`oJJqVOe)r4!PXajWtaEvV5zG%>z>^|iK}^7|5n!P0m*o= zlw=8_P+IEju$nYmlv;xpk1tBAW5_sb!l#U95-yWwS(EYTNjHm-Tru5NlkcAl1j7kH z&-E_*+g8szHsHCuyY<1R_QjGV_{CJyfOIRqxOMNIzA>bKv6RW>uUs3eH(Mozy-6i= zYKnCh_0InA?cdo0Rr$vj7+(1GvrR4aU9OhlNX}_gzim-XUZWn0W@c6C2ZEqE3hJm_ zpDXsb*%8ieUf}xS_HnfS(Nq?1j^eRJ8QN%;F~>al`bA6Xo!U8QlEJCVWUuvyb_|4g zvmJKrQ(I32;%QGb!;54wW6{WezRx?mTD!c(0tcWco}KT~JM~JVT5Z=0CO)++f5Uux zl|}RTksy9*j(C!zVcu;4H%1HVOpLb@YZe`B?kwkD*4XZUaqzw^$GSUfv{s>F;H419 zZa{FnBxj4a^m+%QbTS^xn2eIzh|9CagfhK$?tH$lv);WFc#*cix#jE`9fC^^J}s%j zVptbe7E=eIrI2!f2$zyfN0|A*9SaHkyjy4g-YSIVXwzkGQRCvwp?H-~Mf%Cgu)7%C7UTB(? z9S6Z`Fq%_ILow!q8&jc2oKobIp`{AZ8T^@kz_O!2XGQiVjwBg$P4LM z0&OW`vpTPcrt)}-No0gO9sqpU^Pwd`cx|+3R=3$kqiIhh8z~m;1`U`8Bxb$AD$G`j zMPLopb+w=R(5-2?CM8!pbH#D^ON?sjJ{eBa2v7t$FO%2Q+Cg=X zc_Mui{@kttE*=NReZp5f2ckdfXgtEW98KZms4s|<8@$$=)w0&W@Ps>f(j6T1hCluG zwR(+mZ=bi`rkigq9(--rjza^xPELIOgH_8N8f%SHZUwU;fR61B&5CC8tAi0>he`!& z4PhJFJAps<9E~O(h(<%yPQ8F=qXMkRO2cW^p~5)=3tTb-t@SnY9Y@C#{>jj>(NK50 zV?ncZBvCLbi#rCwo_NMHkj6mv@^%}b>|ioK5zE$@Mb0QJ;M-+jU*7@!N%5#JMN`+B zR8D{^!hW)dT8CeRYz93v9S*a3VZHg#ac_IA)nS9oq=2Tp15cL*ye5bjcj6tNUYPe;vqG7>&=G}`oWH{b8kr;An>pCoFS7BVdRXfj;pIgp8&x|fb zyVL>~Q41vFVVu!K{exv^G_O~9M2c}=+~jKSUc5w_a-^8d%1*m&a&*`8Pg$?N?v`@$ z?rYw@%{^@PzG61B4O?Dul<&VKC%ENQCIZo5pth!3-LWEg2`Lqf_ z3zd8!6-}$ndMFFdIB@%N)}jB5h!<`Ebqs~V?bYhHU9lvY%DNo(ul(sd|Nh^9x%1G# z`4sxzd+%i;{My&Pc4p*2-=0UFcyZokYt_Zv-n|DpXSG(ZSX`31&W!tq4nay58(|7L z8-V^1AFvQqjA)uevCPtrDoi5*SOXvdT$0GyPUhDD6lCMA>9iJFRe^sMaoO zJ2~Rpdt?Y;1UR)@u2=x2AUm0qkxl~YrWt3FEgjnG<}UxluKmZ|<9?4XeE;LyX|fyF zFV?X)OCc2U;86c2hiuXte&y(}#$s%+n+HccKYM1+oj0tVw|*^=8B)Ndx0uy#hpyyv z2AN;Bq|vfxID%@t+?fE$z&04l7C8X|l+5PWci7b`d9N=45QTi|?YbrP#xHz-n1-C) z?2OA*T`uKIy?zKxuzKQc?i`5#EV*l0H2{8IXfT!a#WUEs@(A889q7tV$NXAqS+wbj z>`Ah}!GQ?QMg)cAVAo5$#~RHwt6NTtM^@F@*S9;~vBY^e%oPHM~1c17DIU;mA zmjTRM?IILKAP z!iWfNCJsK~D&!ETgEE6%9*}48P-CRgirH{Z0C~=GR96c}Wf$*3zlcO*jW*dW8y5jc zrh{S4hTXy!?s>=Gf9Dsk9q2!ws(tW2nAPag5yy=H|*v$ucLWtOb@Ql;6Nn^7%+4E;pFuMk}P?3)_q@9vB-POLo{y6S$~RD)2}1QeOnB z4J3O$K!ix}!PF1&T5nK>k>43bGRfMUHy;o9MxxqOgR6daueVrbP=YV_gwj@nX4CvC z1|>K*7~~jeHq3V5DUicpI^Mg7mWYM&tC~glM6fRZ~XLkH?Qt`_to9w z-f&xk<4FHxHkKY8b}z{$cyH}Cwa*)W_=tDITxX3-H|kDOFQ7ZVm~ffN!4LMM%bIN) z=30MtH~>QkV-V6X%+_oiV0=mKiH1*gd`aH5sl%#Quj#7UI~v8La+XWq?@xzPSVQVT z!z0kMK~ZC4m86Mg3dh}Xoiep!D4fdV-m{_({zsfmibs|XIf(0g9_1^);Helr*x^JN zXsL7l&Fyoa+UMJ_tp4(ORrI}yNVeJ_?h3VicP%q!&VLW!?kRn#Tr`Z#EVXp|36 z%8~eDc$zkSBM=)wwcLca11SR1c`Pr_`uwHoKuF=hN+0;)PZLMCN+xA&<{cdx(=E7) za1JRI-#=!Nm2!-<$wl~dwqlDPpNmrYDKkFIDHWLGaw-bOdc9m760)Y`5#C6}YcQ#b=KmnBYW#C0K^650tV6%UGpRYgpb#DSH=fddDB^VAk0 zP?m-#MznqV_EDJ1;=w&a6)M}Gkjm1E^5fqg&x@sl{iX!M7IQ-+A}yT>ma21Fv!I%i zo5UnDb-*npllwfGE1AutXy$9lk2KM7@(!!Cz2vhf#`9iUM&< zOsX}%)QgwMYh`6J73H`5v;B$h^zM1$e1zbj?e}_nUOaj6$Ey z%T)zThp~B5=CW}W4z162G&Kp&$<(p3cbzTbg&2ka6pJNXhRoYHE#u27cXh}yOeX#3 zK6(3>zx}g4M~BZ@biSsKee7e+&CRPVzjRyYhgR0TbUcubW__v5i~giHj_6v%s`7)EH?5iDpo8ol4TBf~%%D># zJ)sOt+>z1%Kn{q?*f?5c`JWt~Ovf@$^+s-6x1!Y@oQ%MZUD!0+{z6}fK87qDN@d~T z0|&ybV%{cncu+RUU>C`ZyTeModDmnvGBjaWTJ_k$NsK!0zM}oTs~S#v;yeQn;gPg> zB&!9CIj9IiKk$#%YW?O;N1a`-Py6nBZf_ie3M@v9#w(T^t1WsKBnL+D%qT`+yHU*| z0UdujTNnwYmo^yP-pH#xK6SQw)E$Y&6N@_QYnxo?p_z>k{oTIkV^8f7N{7;7K;%&8 z*u1%e8gJV_TDxI(?QG|k{*bb+ef8X`I+ulifBycfOa|@Vj1Mob%*f=?h&q-{Dl{?pRuVU@TTr>x*GDo-4FE4DVm& zxN=dAFC%~au*arXqflob1FjP3%~Bp-M3#a9kMuCW%TuMoZPh=j!Z&_xdU=*e@6KNGu8NxKBl?9E0!Bq_I zC<6?#G-UFX`LMTWYG@&5xklm95tvJ*FN#2P59)+RpMv{NWTLW~pLzHPqcO$hYu89? zT#9thJ@?@Bq%vE{`mj>Yrg)WQV>r(H26eHJ1Z!4V%$gVwMGbkDq1B?b8yhQ47)7%f zjH(I{Say6+>pmO5$ctr}RW8?(#f!O=4k{RdN5*fQ9IkgM-BL%@2lKn&lc-K4CAAVCz4im;`YtmI=wCj5~AYB z(49>BFMj6Ezx&QFb{-t4xO4VXMy>b0_q{K?@B*I7H%Lo3+stkB)!H+kJoN9*}3rie&6UU)f2a3f|BGczd9GQ#{_*2&{abf=l$`x6& z&a6f4y|mFZ=}W$RT!3Z&FY6J}B9r0Fi^l^D zmcWZ^t-79x=)?qW_+lf~rbr^yJ1~h_`idoOuN)kxwwV@o)FC&2@_idUe!R9op5hfWNQ&;-Z|&mZ;m4+qUo^FOSccl_k!eZPG5Gwr zH8uA3FI;0>)olIl_EC`5O%83ZCn4Ui7$(I*5=d97%=$g!ahE|g+o^-iyR%yFjplX? z#UL2~aP3d#;rL6yoUKqiw|{caNYrIkub*GFe=G)1A9u&YDfIgD>x`dR*GTh1xXkHkrq`JwXiN>PRQms^wOFw6C0pt*xk%QJ_PN!kZ!iJe`q>2$Dd_3GwI7nSIACHk;kWN1%69RckWwtOFATNu0m4-A-ia08>B?;Cu)QE8DLHu$d z@PN}H%y6QiaM~w{kHQm#=8E;}?!Mz4W#Vd{i>y;wJgIDzHJVXcWKSNAD+Ni;=3Pk# z(PrdRnTco?7*wR~gHnkBNN5E0S4pW%+7gdmX_gf=;(yG_XFM8Vmsc?JB^I-4LCGs* zVkK^0fMPOFi>Xa;(awMdiJY0sVPqHgrw%kD%m=)fQ%zYC2uh_8@uh=xf8{%xPJQmb z+aCWHC}()=8$_iw-2SAgs$eH+eFfhbt-u}5|AFFewJ=tn>L$Rm$D z{`lkgzCqx=?e2F8)NhGnbVlSq`X!@|Bx`}$)tSsqP93r)avR!WT#+MH^WjL!Q6x+u zPm4L8v6s)k00_aLk%RP|-)IUa^6^ym!R@1Wt!e!0n`i&ULr0HJ#-aO|t{_0OqA!{W zrV5Me^mD2WP-Gx7Vm4Q0Pz}MrBP$|yw>os$Q1tkOV0?qJqtUKIEfz=Pm50{m@-4U>Np}M@4yMG66DCD))~? zg93{zgOE;T(4xb(YUGE;;{ao7%<6nR`^w26BTPJ3oVUmhdsTgv<*Idy6OLJr9&kre z1wZcJ(>XNgJof{aH{ZCV2KPN$oT?WJ4{RO!_JD^0n#~_Ll~{}HJvMAL>fimgWm|Wj z+`9K92>0c4oAEC>IN@gur%8oQUfJ`G<&DFUVmO|`R|~0{ZMqFzRsZqOwr_mr*9T5a zT-n`*ydI4t!trElodfWUI~zGN?6DekpSpFGTxWjnFy7Yl454^{cW4!dPI^P3Xo-Gy^}Ree;{@30_UnWGn)pu=Gi_N!Df-|28ho~_&S+I zD`$UTJd*Xqa?9%tP*MGIzX1Nw88*W4V$)#(Nt+{cdqRn)j|YJ4BUl4ZZ>%%*`;v2N zj3D4!L8QoJ&-8>@y)@edy%=Kx+tKK57<(D>nK*I^%~4OHyTNo>lX2J|wW_9klTG)Q zOMlPO0@BpXEKhq%Ejc3+w0#6KTp+nL!`hE$$QPyek#q!LS=<*W(Mrzcfb8yBny+2Apx!bppPxEGY(~f~eNimiPldnE*_oM? zL!{haFN<=t*U9*GgVF5DOB{l)7Xu;N8%nCoP2H~#7nzZk!r+v>!CBn?5AbyuUTfbnX`ENc%1_PiN$RC{3mb! z>u>(__`um$8kI?(eDcW;edt4<{p@EYt+pDww#wTV(z#g5Bc7rgW;0D8U(w-eb{JEc zJhpD3NZM&jwOCYf!Gni~bwO(_*U9ENR5hA{RgsB=yn7E#%xQ6Li!~qd<=8TMc)$C| zc@vXt|HyO(#5t8o)_v(sP zlNw1BoOn7f=XI@L)()6Dqfm^-(8L$DfaK8iC>2+9V*My&Yv3;aP$C#h&8aoqb8W}a zc=%h79>Up8jRCO}1wXEAGKWu0ymovdA(M(v`VY@4nFk!uDCDi;+>3KMnd96&9`AL>u}R%O5~uz7xO)A`>pJjdqi3g% z$yb_xk+#9b4TiFzM0So#&sMb_xW0J1myUC^06h?070t*P%hxJx6qM7@u{kQWW93^H z=?T@Dn3$-ls-pbV{UWW!n^NpQnwSmCms;SrZ2@N6H%Nkz9Yj;4sa~xZ7D@k3gJg*opH9{qdXVlzUP2r`LE z4!0YYUO967nI>aCm{aKxGGO@41~RH9M=lTy1gjjvnbC}+rKJUB)r`Ok_7XV&6`QUQ zy7Stl4!Z@V^&1xzQQPITfBsW%|EqtxAHKFXj?CQ$AAInlaLEojNC>d#s$mofB@PV* zUq0$a=oS@(B;@eqmv8L~7ji&2;I7UDa)zYOzi-%n6eqd!$Z3c4ILSBuUIn2wr~~*89E1FU!zUCvenAT=YD?t*`y#(#Eqktd;;gbg;YA1LS|R6-v$vm6fRk)NGPPzpk2A3^^VO; z_VW_cyjTnvpo_T&YCL zW>81ssjqx*%k`_~u3x-Nq1EB%B@|B7RT(CH3DzXM#H%`7<42F&|H59;yh=rt!_4j? z!t|@d!nII3m&dmbizZ&mQBS(hpKWz$y6g1rcoy?kEAE8UEGlFR>I^$hgxukDJeAvZ zJlNvW+btUSR8ooTuE9|0eSmSNS%6l`SGAgtPQ+1hFKRFj_>w2wiN%ekSBBzFqq1Im z3ND3!$Y$1W!wev60bF%I(tc8@B-J43yTyLGGL(XG@C3%5CR2&g#Oy>vp?= zcXC|#MSZJF_(n2^^lXN2uy@j8M4XF_$J0x7`ZWY%r{5M=lE_m28acr`ZDlmZPAN_~ za^+plrS(ub2PxW&MG}{138^TLaMp2pX~n2KW9g!ZW7U^wPq zMF6LQv#A^+PDMlJB!f}TOQaf7rKh5Capt4X3@PU+o*@`PPAe{D;}xM_m5?OF;c`Z4 zxttMF(ufJAmvnGaGF}u6AyNn@r#)u+jZCKye?@XEGMUt*sQHvhufq~e!e@i?z)@di ze9kEboOG3eFhNVjC>MsiLjIe^XG^l+jPh6J@H?L~rN$DOc)_-2`3kzlZ!2{2`taOd zZ%e=U_N3zUY_>Jwff2~@jI9EtO*&Q(PwAUDV;$;&l_5r zhiexW0=w}Ug&@MebSjA_c85F_@q5lHXU~~4=VH;O&|T4FYYV|UukEgK+RiCtOD&d4 zXIdKTKKH5HKlki@=gyrsZ{F+0xe&s8j*Wq8KsSkN?vZHv zJ*%4gJjRI-+)T)4@?t96HxYXj`UybWg`&C2vQQg7Jm^K2EOtQDg5@KV%`tM(;c=FZ zN6CeCmjBv1@@jwhTkq<6@RLjb-$Tdt4u((|;|J&IWBwjb0#FL#U5y1I!IFzAMhK+} zy=Gpfz>`%Xo%e+=N?LN}bvLzDqf z4eye(YMk@<-(h|1(8%@y9I7kBDdRQEnhOA3^y*b}94NNYNu%|a)`K__$8N8?-o(qY zX_bp>b-;<&H0pl(@Zlr9W9WwSnT%Cc2&Bb0R%24nx2bj>nYd<2byt)5!Ts)QTdfC& zfzQM_{QLj<2#avVtj3G3Kjk-XcT^31v`hA=J z>CbNlJ#w^n?1SHUYB-b$C$i6;2(N9col~C}_9WIVZClpWvS(l42X0@Vch>4uvRPNG z8-mQlsa(2HZPq9p%G?t_e?}IGWo1g*=C$6SJC<5dXLNo|bSESI1nzV41=c)_^dz|uK7@;+3=#r|qB4KYm|u{y#Z*3Hmc1xy zb+$rc=)#Huv!Aow{680Vnuv4O+5_ssqj(7>C%!XA#zYcXsw^6^C7liy1S={BUI!!I zaTaReayST~-*Cw?j*eCSAn8l~W4rkBONm6b3H%rsZ43lb5@~ydS5@wdq~*L)4j>Mu zewB+tp2*`WiA@smSUTio5T|$)An5ld6Y)v6TN*WZ7I~6GxnP9Q-PzeWE!#{cjh_Ue zGZKedrA_3OlM~}i15)t_&mY30r8z~Dgargxgpk@im5E%RQkfiJxJ#sU zrHn;eL8C!iNtgTrDWS7gu5n}GP$BMTW|QJD_(1@ZmkTZdLbO>`9M6i`L@^muB&VoC z5E!X4DD`r-?EUeSa<-!U(L_F{#tk}g)CyHJr-&D{ft-oGNa;W~qlhJ#O3Rr@?^pVj z0u%U{n0qxY9$AR+A4~xM_+R(?3y(;4w4(h3L6g}W2n5sVDS{N5z7X&}gHhqm>4uQUQLSU-};J-51xaT)l!NL1hOx|7uB=d*Ph3Y6O$5FQUorcAmG8EtQ`x zx^PbGUw-tKFaPT=;AeQ_O5uneKapFuY`Kt)leQiAOf74{jud4t_xP^vs{ZlIgF=kv z5F;wQBC06J7eq9$z2+%PKp?$ud?KFA|G%3% z?!CKfN00BH9z8NJ;>QL+CzwV^RtP2YR=J!FaA}bP&KO_=?5n^_#G~~Z_he}M!GX)x ztjrba;IXzDRWdEq+d@Wfsy25v*oNE`ibBfqIOC|Dqp~`qc|~oT;FrYtA~YZkRt>Mn zUT-_;OTRoMFyC0zqkp}_tTx~QRi(rlveh6P=$#n!#&>7(p?K=(SX5JN!X>Uis<3{@ z=TXzbi(=L(m>YsJ`D7@EFPpb_S8qAw)sUWLzTVW@VE@6dc7OU^SN!|OS3roENTvHm zLO*|M@0RVyE??62_N$iyv*z>CYE_$7&VA2~-3JFFP|miuxZZi~W&iS8fI*Bgcx!+7 z;ZH1Stv2lHnS=)MhU-?=E|?ceXEVt>Xc=lAj>|^n@sj5TlgV_( zqE+>IL$l>?{67I{&J7?Kv)f#(;qwE;KEx>wb zh+09r3ze~IEaMgfoz1gxytQ>XegNc^^Y{UxTJHH=Q6q0RW%#$p3ar= zG!IWmrA+`K2x>N)tz1stCGsNVdgTzLQsPKv(NZ9;rnR0E&;lY#ViS~!`=F~!r!!zx zr3hq;>EVoQ5j8LiD`(5)Sj>iuKb5CWmshHRR#O0JuZLR5(+O)9@po#}DWcplH#-`e z%bDsuTq4HiYcm)Xi?!#WI^UHt>plQvIF39RhKNf#8QNk&>*~e#6fADQ!c>o zb5bZ|#{FJw6z zAsY%mvm$)QwaXk1t0d%|wK}gCh^T$}ibWrNXYk*C^33bSDTlxG(o0|c>R12vZ~vCp z%2y+eY2~{Y!iiju;jy%MXS9{|Pe$j~m~LO${EO{_z?~^!>AM$NN6y2^Y-5L`{_+Kh ztW2kc0+FFz;k23T4b^kAtTc-N7@j!jB{taTM-F>>e2Gu2Z~nmLO@DsN{2xAZB8$y%g{y=Wyyej{|$pa_H2F3y@r9PMyjH0vajhh!%fB93_ z-G23Aht1fG8vFF)u77?SfpyQlH+<@*g{v2azVJxTw!v__L)Bhmgs=Li$71h(_hy~N z+!xI^n3a15qX^kzzq6DHr9_did_nVMR<~m^2OI@qpF6BxU{hJRtmcciE>b4LJ6|j? z<^mFb|2x;OT{>$^PpHqA#vBx^d9_hZ75;zrz5_6h<2w6#@BMHG9C|MV0TN*E6e&?u z?}{WxaqQnt?8GH*v7N+@9XoO2*ojMQ$8nR@yCsU0D3KJ{2@t)PJKz9Z@4fxs-jc`V z0RkwIlqj2P8Qh(ldGls=cIM5S_r3?Y8JiXqME7H=tkVe*Q3wZGB&SG$fxFq408n|0 zguAstHDLB17<3X!Z3d=-%(yEGd_dsB16q5~8J+aRO)}06HHxDM;cf}w)Ib=?^gE*M z2E?j_bN#tV9C^Z+Dj%p}OUaPhh}r>CD#QnQUV0;cCMHMB z1=+E6u0Zx5It!{5&N(?7g&Bk>oV&>UWLYwidQYYx4-%>A#8`B=~-}wUM4KbC&>>N||(JQ$5ha$z>j0HJ1QxI?;P%5dxBh$$}9P%ux=Cehv9eGN*JB&&Go*rdtXfjf7$$mH)u$R_DTqp>@7t+&p*pF417VJGCJ zeCu1^+PZZsHrs$Sy@0Eom+6Ch#577M<{@%1=rS&=!6m8% zTJo+9CB0Mbsk2TPkU*rX)(T)BoJqjPj_rsNc4Bb|-z*MLRcZ4?5<=lc8yT?dpaZA0kac+Y93dI?OH3On8W%OC-$>aaL!MvDtiI{7u&%zP9zQR(;pB zA40Q&&mz>$*)c5SvH%6mOecT$)WKO#077b!Qe4s8$`EkV_-v6WLvsY;#VXldyINyH z-K%3kXD|v!Ozht`>lEL;xxBGJ2=gJgH^}C2pEy2=C8Sl#o1C&ua+%sQ<6SpMroC~<7M`{H*MD)}pKmMs^BomG`$*Gk zy|#4~3Ml3+zK|`P(iW%@a|}^ncnpReq3yE*F*!ysIp8SKP+Hv4>!0<&lW{6;siC7Bgib?^i)c{Y#h}D;b#0=WC zI({ggJTw_wS-=MrH@02qF${`1f7~8QLhFnoh=23odgIi57zj`Z8xPZJpsxgDbWbc? zBI76o%yCyt!ewr+R(4tfZ;yNT)GAGK{+K5jO$9esa0Gl_AV?@~APWFoyGhHb*I*yT zic-R2kPW>4cZnXr0tyKmLmg9DcEDfA3ptyrG`#S`hwTn#**I#ZD&RhBEx7XhE-z
m?t@duikTaeze^`@hK4{zYv0;TjSz>hFki2Fh4voBmqeNkK}O{Ba67A=sXso242 z(8u98aG)em6K>#nS7T%2(@#I0mw1glVta@qSFIp=#|^85Ldg>7BFi!iSpjGje|g^x zGxP3K%SC0!zV4An9{J60esc{9*=Q*Oif{$&8ygGOG-wf*+Yw54IU$V2Yf3bKA>ukc z;UJA`jm6hDn(mddi_|M#Qj%3OPlnE#Py>67jLeP9=E)4sb@Q z3N=$BPa_u)+XHOf(+q?^B#=o6j_9xS%>C}I z$wxMo^jQNof4o#BsL+WGQkaq>>S4y>$1!Fcb`;@R7m5Q^ZmT2%rK~duxI)B`&y>j- zbaxyYSp=LfR`O?mb{jSo*gOb$tYkd#+<~r>1M`z1ra&lxi5kG{))y*-av|*ER3c_2 zS5P41G?l6jAEy21({I0hc4Boy5&n)$0ht~#CzDNeCIKt8&cqw$)4FDSKioG0;Mm*S zjUU@u49CqGZ|uZ$P{d&-VsVcnWDv6*eheQ%y+RmAlif{VN-$F_zEX(D9W=z63B^*C zYQc&^$-rC?Sc;fB<{9(}4}%Aoo7%RLYQoI})-r^mhDL*xIbck| zX6wZ48U+VP-Voe3R1jfmP-FLe2pkgVjghEY48TJ!X(b3Y@CD%{1Z~1OE!nK=e=ns6 zAZJ6uhDZ%vFaG9=;O%0dT+0WEIaZgxAwvNIx@zfce`>#8Vv0#$Q@3ni#p5rIlTB^-viFb=cwFwM9=Y-J-}=?OE4XxiB5c<4&u`qgap`Oy z$ggeXDvexJXHt%MlD+m2q593va;IhjTgnxDk>JH18>FQPM`&BET4{t}oVsPD=7rPq zvw;{+_sAg#v1voG7|10;76EwIpx{39T*ui#Gh7MLD5rV;X!q3Lw^x;_c>mKe*J}&& znKbBMVRmg)5D;=A`1;Z4MH*>}Wyr9(a=Aor&=wbJM*D{WMM7f}wrAMcOjzbN@sdFa zLWcurFQt%kr6R5`9A^u;5F!n7eq*5wRxYkkY}o3D1m0e&K4T3IxD!P(nl!-(#xsZ< zKI2R988od%M(dd%B=}fd%t&oBas1&l4rl<0?R46oIX)Oqrf%Kd?t-w&WLW1t7OO|E zmA-Lo_}PvzhSKm_&%8+$+)%BJBy47HV$a$t#0-cALmSJaXPmrWbj&}zcU@=ixLz$C znsBVCFO~?nU87dEfKy(ie)82*E`O-Ku4G-EPOMRV3r3USL>k_lZw$F$IZgO1 zXWt+8fsSYrj*qaHhX4&j5eUXDFctE^x@wI#w&hHdl+FN7ZX)hu9 zA=u}pa#^`baC{~NmH?FQ4sz8ZE({uT-Z;eMh9l^#bohY``wwrWq=XHJNb+EoYzTDQ zkWQ|(S@+#`GIkCy%f2pTFYLGFmLA0+XJsJE$jhK#nIK(s;3LWBn#NfsG$*SU%oBZ55C!Acg%rC{I^8$>w$ zz%?(cQ9y2Z(PjBP#~YU0rHP<+GDB|To@-8y4)`X(DRMX)D1v^#=_~0KpKU;{6xkf` zMsiF3B@@YeYALeni&Kc+&b<$aY8eE0M=P=scCL-tM?77y&nAA)_UE~J z(LKa7?6Zj_I{OmOb<4t5lSS}%QEo|w$vk8gs5lMqlk@s)B!VVXSm*K}hz&9%0d+tm z&=KQ?kwEVe?H~sO`YBD=VUuk}zmW|=3XyoejU=^q`xh?(7=X8vLCiiR8-Gh_N1vUnFM-tz(6Hy(cK;CVVsm zLglc7F*hsX_Swu(uP^K_99#lk%vxCVoEHY zFd1~8e&nXF{l}Bg5iVWo```cm?%lh0?AWn%w)g*6p@dD|-8z%;zwfHOhJ<&f^G6zm`D8w?<#U?h1)4H=#xv4@4+YEer01S}|I4#B8Y#13vFp*xlqFz#o!0f?sZ+t3~ zEQX5?`4yvgQ)$b*d+_90D9Z!Ea1j2N492c9oiizeQ3tB4F^ZKUjxU;W`y)a?QPOB| z_=B(rCr$thhTP-GXlrP}J0beW={oz3@iQ-~98FAG?1uD3q3(etOal;$}xs%x7+^Q2|H1z?~efjATn)v2VDz67uoxg3^=&9Hc*famL-3u3#n zy-ESha>Vt7Ee+_97rG6nfH02VT%&mW_^f%x3+oXC9!d!qzyKj|KInioqy?gBHJ_#s zG7*Re7DRYy7GGS(W<1~PfQStD%4Va`?uo&GtP-(V?DQ(5uxl;^LzEbd_86>aI84s@;Ep*12`6d za}hQzSif@lNJ|p3V{?fgt{aREL=uE2-nF!LTq|9;yqp~tm&6GupL16t5(nDRIh_e1 zNzmdnnV+vFe`c~dVS$drHsf$47o!`Z3_KL6A`y%o=`FV*GSxYvkV$DAzuS#cNWo}B zU~ue>@HaOWaf4Fl@@M}6S&U99S?sn^Hn-=-MDWEge#tX$h3hm?0uxgr$rFlUY6b)p zk`%~-4(S3+rhq1@Cgnmh1&{bPa`8JbjBw#QL1NB9I7&+gxRTs=g5u#s2It%)1^fk{ z__}hBpnylX5>g>k&_FUhmyPT<>Tyyy!(~Xz&aHnqze{JL@kD@k4#k3nqdlII%@>8Z z#w7jRu~amkQ+uf&fdQF@us)=!!5>kce(UoMmBlSt3h8oKKau zCdyajjLgxZ2w#%nT;LXA*mx{B{GS`E=t(e!{>PPjO~7f%v2p1)XziRkUER1sEaqR1 z@8c3RX2lGqK`os=`^q2u?wvQ^Bjj?L@B38OufEkB8sP~f=z%4QzpJ0%Gm6oiD+0+R zX`fI?rD1uAbLK1#_3`4lj8r%<7n>c0>VDCWzpbqe&VM-~AM6dr8ziuRYkpOkaO?V& zSnTt{s$V91@QGa8T7Um7GrxMSV`)+tX)qtPUMPGh;Q zZ*&HMyoqi}rN+$ju!Xo|UCH_?rBN+JrfEm`<&)-rdd32HW@0*m@+A^aBuc_;zS$8X zY*M5=ye~pn2TFG)Q(CB5RcmCVlP?_Xby{77Dw@T(Wm^kdZt9=&BA%jDz()M@5sL?; z)>LazEf@oP5FfQ77WBbT1H+yHi$*e;(VL2kQVN9j4J2qR1-!PiMip2-FvX`cySKKO z1DSw8?oQH09NM0ZbwiVzC#s?XvBlwQ#98?xAmjejcLXwuG% zjf5h}s7zE>r0MQ6(*)dTI2NWuOI%)DoR~Xshz7VV;QbLo5<|{qXhJio01$#zcm*@T zWS7~Wba|c55RFI7V0a79p0u18bMI;_XsFWK1Uy2XW+ILz9M&989)JnG(As~WPw z`Wc;d?t=Qe*(mRME){N)q!a%&Gaz%#kr~rB)!}W@ddv ztVcwpIW*yMh7-U*gxVWNbY@Q!;c0;RIP8q0Kar2h>znh*U9Vsk>BgSj2dkqa)o^Dzly3CqpE=NZ5L?=n3Au>p%d zdXL(5=v$;LQ}WvW8D`nA$;NeUv-!brx9C!P5i2r%5e09AM)&z-6f6#8^0@>~i~;bKuTKv6CaEQ+XjBVZNsA{FWckH}1gF@f}neH#@j1f2lh zE=-e{gD)nF=?S49sr-Won5R}mbPM2)vp6jzduR?hqvg1TeV0sj0Sg6_Jh*f+ z8?jogWadl%O9WSUht&mDMF#zqGRuCa+93n!)iQ_q*b9&Qcir}oTq3T&?{jB={jHX$ zg~bz{)7-yP;Y&-$x{Kk5{>)|fIGx;pjUi)-mBz`5v&C}wwPvvA;m2Ju>oDNN#1I!2 zTq{NZ zU0vV(?srM-5e!07DX?^r_u*F>dCHWi9*UZMHKO*I?pbi2NJaMlHVIs=lWBM?!l5jutuiUWWzjm!{= z>#B=Z))qS5A;h)OtHhN?jnfr?MGA(i)#*<%Bhz-Eh0vXW82swsBHdi6{_-8QJ@cV4 zSCp`_V8F-(AqRKox5zl?_A6qv zZ*DDy#J_JmDlIJRe5)tq4Ib^C*vaSaEH~{Rbl=`q+%+E!#aXxSY=7*D*Eg@N+q7-X z$nex_FCLOgg!k=eZm2AH{9un(!j~9L&-Ba{%6Y9#^+5Q8(qAFvDbVm#)3^HO8Bc7WIR_W4vP`uT>x=B zkZ3KEo-q3ed-tsN3P#?0SLiTr|NPMOv@fO?vhQfoizNI4DT^IR!FUF3FOo2ij{7D( z5qlusQYa}`a_qr0&IkMELVVK88PkrG-8&zGoUIqZP=Ub47IWBVr~RObik#t;Dw2Zb z2?D$Wf|wI?7seBE+V!j{~7Uyj_vY+f`3Z4T;Quh~IKNZJQyy<%1F!xfZj;?n}GFY8{HilPpzTZ4J&vF0IgI<$^S$R>*zcq33?{gB`bhM5omz?)_ZnW8Z3t z*_d1*nsiyzvxPCHvwE&`l)Q5mamtHxb&f#ng-(#oAfz$ikT4VUxnAeojJULHVWrq} zLezf!_1CEzf%-`5vTvt<*H7mPlR9`6uKpBTspL}TdXTJGsZ{Q-U zn}t>U=YRg^?YG}PH8ll8_WJtzg&E%e6a*JUtZo2tm=u^!>5$CumH`(Xk0zh&oCC(D zh=(+qUc%MMc?D7q^r-|k6278T8d5AV4-%T?^TRKlsn+l^!MSIS_g5R$QUPz%mQ}}H zY>zMb7r*NN;RE%Dhn=Hyfu51s|9GzZe?Pglu|y6b{#>i+^f7yAePdC5u?*u(EMy58 zvgT^-@#FnRI>+q(NH`E_Zzz!nd6*VZF@`*p8UVF8i($)RKc*G7t44nYG+vH7+&Acuau|D?2x#2tKq4JX0v-hWqhc9*cs^wH z#}E(`j*oARc^dS>)*{I~wkte#5LWY9P;ChDFbs#`4Z8QxhzI;ssCm$`E4*wNuAoz` zzIbh=K*(d48pU-crb@_yv3NR}<^n|*aRgY*Zfghzm}(ILvrEd>5DFnFQcp79|6za4 z*65fH?En3+&lxGKkZ-@QnlH*1u^@Xue1hHzt5~iTc^bo9`iJ5M%sZXV>q7PtFDri# zERpp?`V(dZD(6^VsE^n0|1^65`#guAwsQ3fIL+sckgL}r5Vf&Z0bK8u$G*RA_d`|H zHOad_-~Gh5o9S)_M{xO~Hl}UN;W_@jlLI9PF#$CvjUEye)0lQz2DT(PY!}MCW45t= z65BhMKXbN5g{AgHtI#_o+2f0Y$kAG$`4a%ymAB=(@Qv>Fv4rmgZ`w5%W5qV z_~Hnf$gl??ufiTA6-|;*nM8{*a$s&j7^x#JBR%DDxq;j- z`duG_F9ton*H2G>~xBm^Qpwg$&1f-+u&#}?eY zLTh$LU+lKE==q3l#WR!(rGyL$JnY~11;dHty)Ald5}cv9CnYFXtKL3g1@s3j!s$BY z&D&Q#`|9cLVe8w#7J+MsjX9<0-gZ)-MmPkSuxNRrN&a7J-TV|GW+T44sm1Te^h z>kY4tc%j(d(Wo}t!m#H+KNZUPVjg?e8$rk3+N>)!N&tq9K5>SK;GKxFF5xii^g@XA zV~z+6?eQO*MTbV*9!RVy7SH?RV@|-W@a(~)PQocta9^ zGy!JW*U_?Ok{rYFG^9B!AQ)jdeM6G$Sz7GFAp9UrcgOq*exK7 zi<$=%7N#sDOYN40{ZH_5-a?urj>o)i$!57QqVNcs)Q-B8ZXrwM@sGq@3J5Nwll%2j zZg3Jk=ZYAL8`VTK!3ze>ms0jJ^FaRK@%VaHtmEaMI_!JbZ`{hb=Zj~4_s=Uceg>C+ zIifaZYgkqwYCXvzumuv)(mt_#AJ7WlA!=}ZOF-|fZiZJPbp`<}pYt{2l56_;N zB77kT6g?X3ADBCfc~UNeMNbz<1T-bL#~DR98~lX9jDYHhq)YhSp*-Yt*cl+utGdW; zWmzNXcp&Yc@)kN*3=s3+N&j42houiRX5XNwL3%o|-Z>-0FT zVE*{vD8Q$|m0H5(OT?}y>?<-j1gO#gWu9K7;w$8w_7WL%w@N;96l@^ zy_07~twx>f=E|B-Bzp4j(ay2i)zyV}Y-tFEBW<-sFvoFtgJ1vYD_h&j9%VGh{js0<#)|O$j5O4jI&d)u^DlN{jp>?o~qIc zcC{9ax$x~~;9v@Fs|}+2))}kyqH!-g81Z=%*46WYq+ZOK3B)X(gh9rKadwvl`zt1# z7xxW#u*I?ZSMippcDZ{Iob;qK?SS%3ba+v{dAPyOx zMr+U`cq{`Boj@*PbC~5CA>N>r$KFw+LcmMH&NG#giG{F?!FD|oCA@J!@K5c+iFn8t z7XzY&awX&GBhQWNOQq1`;nQH^3#6xF;l=w0%Ne>33mL>~+~Z^*yJ%muYEx)m)3$Yr|)UsRrbHhKx1P}{g{w}9b1Yx0HNf^m=bQpqkfTSt@8 z9IEh|*DWZHlOQUQOX(K8AgX;f>P7#OC|MhluuzEW!wg+hse5LcTZ?-V}4EAMdwIQ9bxaW)l z-L^S_f0`xZ(9+2OM^VtymKwmom=hCpQ?^_Bsolt+0)n)a?gi|6!DQMITN+ANCHyT6<7JbAXhRhv^By03MMJjW&+Y7;t zFvw14U@KfAc2&&la}@~W>UFgWsU;FkSnM8{Pe|mNS~aIe$$tLS%;2<_2x*?q z#Ix2`fqCoUx8BB(LTp@xfW7Os8~93NFcO5l2P_}Jn_kM%DTL)^dZj{~Nz-d94RhYG zbQYeyZokFAtO!DJu11Li7j2fG$pF z6g<}EVvdB*?Vj-$$$5>%l9^EQ*Jb$$I!YwKWH6bMAU zCr=o)^3Lu_nuve0&(b+I|LMEdLNbDvc5}4>lhRM0?09f*+h@0#zR=U{@kie}HC*Qj ztZ%B-NtGu?J^Kdi|F2y$*4?8~$Xg4HUGoum^a9lzig}=JWB8%Rupb$5MP_|*Y@Br2 zSXQoZ`h_76Hb2A^ntjRW>LTEYFlciD0zk^@PcS8{jb$=mh$28usgl=k3*m49&Z&p{ ze1Oo#h6OKvTaB{RC<(`sWF%*$kacRv^@n~J1^_}lP!6zGZ6S@^bc9zxvgjREm-q89A|uB$SszO4VQb(wB18V2Z>&mB^wg)C`ccP=rbZ zk0?dWvnY|giXckDb&1Mw9=FJ!mvSj&QR;_3{2^7&&LgsrEK>6L2OJ0X0LP9U!%yV3 zXw}pvBiq7?^2kEEMUmd#-t$z6dT~#slUHORS$z4Bcd7lqD3OI^sVOLe3FRwa`3e$q z*RuRyN<|?1Pyh5!)E52qU;lNkiluL$TXXm`&8-a(O0YIBo%t&LiZ((aq*p1twzE(C zY<9=(k5)YVPrZ+Qvo7s;&$ilFg%flZS9s19!9LQhqKDEnNirTvDow`P=EUeLT#+FW z9A`o2&EOkTqg}5(Q~J?QFWSbWAk!VB1Fp{p0oaAgzmDgihX2nP5m$M%&44R!U1 z^7B5QP2*&v*jVsqw`}~+U%$3=>ku;Y$3On@=RWtjrL(V#RRAH0`7%}I>$f#R6=7@qaVP!(6Hx?7l<@=8gg*{;?!;u8Fb21u}3z&r> zF^*Au{#ZDc4hsQSZ8EYIB9Q>G3z-T5To=iJ@PvrW$N&=qzJE}d-D$7l?}#{0T>R%oc!{uBH3?2FA*ptIs%Ci0pXFDsAsv z2wLrMGCk2d@an-%rkH=n#`;wi#!<85p}nhq`NGMeesgK15ltYcQMeOk9W?2u#%7cL z$mug9t6D0$hG(C9tM7+jy5oDFyKQLH_R1Tb{p0hn%iglOUQw@-@|j0EPIvZBG6bAE zwya!dtU5j)OGIL=rIJII5W?%|BrJrJgmDNs*;1w;CnjjG@lIi34_FnLS>wIJ%)=nz z4mrbs5=Z}uIrKsqZ^9Fu4@6l^dV^5}%Mf^D*6Mgxd#HOZBp?*4bZE6xj&SEp08wBe zw68LXyJmvuUO0&|>8vxBz+J2LT?2DZ9i2ktp&bpnmO6czir+CE^7~>|Uu@PFGs)S( zNOBrG9tOi5P2E}}t;80J!@)9fwZ}OS5@UG#B&Orlu53B_$M;Q*b~(5LX7BMirA}DV z#+k9q6&Q3u4>Z$^i9V-7#ozsKT{sZe7V|UQNSZKo&sS7Ke*v8u(n&c7t1VTQSdN8j z<#%W~p^PgmEWB12x`z2!Ue5m2uYPq6^M9SS>pej9z?m~=F0mt=-k8QvrB*8tsPYnv zT%~L{2$o4Dyr}op-+i}X<6VY(|GwwRf31&BbNC|s^lmE!J{v;bOGO0o3>p?1>nzV6 z6MLd5o~d4AD4JplwW*-%gd zVOb^5d**`Bj$;^%J0f>Bs$ti`VKbp0 zFH-Pe+zfN`d4KHeY@|UiTV0;owzuw%He;H_{`skS7^lE55Y0R>?%J~2SSZX)S!M%{ zw38-5$jKt5aD_o|@bIzICk8EZ?v-1&*pqCnkdRz~Eu8`;DU+dAOB_!B=(KZZTjdLf z`VSl%YOK`9;>nxV)d1d~A>yT@NhY7OXHE6QjC*@?+3Q{7t>pzO898&HzQ^xt{rQB@fo`Iw?yTN&2E`ql7)>1NJrnRD#VFkkMghKjw<@ z0Vb19oBf%lLdoEi??A6hBj(<_QhR9Bi#<%8PAC;~)B=tz6rT?OtAr8C`aD2!1+RHj z*V#Aw^yz8rBErEqAl3abn%Ngc72u~-$%QEkP)#7P<5U3lED#ER*X{Wzmu*xCAZ$T( zLX5nta|PUyq0`n#I4)HPs#*$o!uMm_zeH0az?a0K3UR=YhA^#C801nF4(EBzvF;A5 z+ZH~$Z|dd(ab3G^Xn0U2l>_Y#&{%l{F{wg{0BM`-I`rZDd~%q_&wF@;rU;e`YPFhb z?C>7w{D~A{{=+}~!#g#VG#j`U){=MP@Ot|79w2+*QpPHor~AYkEh}3Ho!m8WL6Tsx z*b+X&JaonvjOy0jIx}sRM`k%3B0}D~x&XXjO$sz?Zszm2v(wY@6Hn>0m|W&4N44o* zrCK%B*-^yCG65hD8YIdI5wpoty~c%FMT|F z;({7AzYZ>g(X>63ERb>mKi6oGuwsFuXGX%&q{HUk)KoN=U@HZHl3)YS4YmisxDas| zL5KJ0qh{D(0L@wsT=%eh*6xLM1i(4R<~*>+007Ih4PKE!ol_yrWk4V?mX+SHu69Kk0X}%RXKHxb zDde#CY^Z(Z*wCCKa6?-a%yc$1l}uUPM+Yn*(om+Iwfmfba8;4IxuW2SH@aP(-~)SF z@4BH`ED>5A{#!OT0k>svVt(50g@{V*Nz%0O$+;T6u&}~((i#p#69y@_Mk_%4pj+zI zl^TIN7=!fu<(I}V2-lX&<^pMiuu%y(0L=EsQ&a9ZdH~97{2yU%U}gugo6uSl2Xu7A zCpt0YfOjgu(GhuUPoqlAWuG?tduRMmF&IRgN_J43i6Ak}K-8+_`eIqgA9$wIid_&a zg6>{dQc|Wxcp8(O7fI7K0+yV|9C5{9Hv*PmrV>r0)k3B{ltPSmAe=zU3}nn@$2=L| zU};%m4dj!d001BWNklPJ@0je0q!31#{o$xSAW3p%;3Z_@grzFLQ zLL~vA+wGsPXwYd2WX+okwB;PH$K&()0gwuP0Z#byOdRp1FzJz^HY98qZ32n+s!p@Z zzMyxT0p_V-SfLscl5eq4(J)VToSK%9Ko? zYy0QBx*b#6s;xbv+`4eTSintO0EAeAz`382Ky4MN0m+W%x&D&|24OUkN`%AGYIT7T z-#J5B7`2UyHAa8H%E|aSOqPtDN)8{I9NS)6Ub(OWXssT8_+glhEj0C6nE5@VK*C0p zsc^ul+wDCLl%KbyRo`t@7Ct0Ut8vc1g0avT3fYh)xvY(_gwpX zDEL;F8PZZ)sbb>_qg2Ro2jj3&Hv8fVp!RXu@If>?e6R06wt4TiD1#;B&>^BhB!dJj zXJ&qKavHL5RvQh|?Svs4?h3|K#J&sSAVg;}LK!^;sTbQtgxrI?CjVGR4b% zjy@L=a=cV0Y%Z4C0tvN<1AIDLAPy4tKoXYaFn7_2xHFCjVzNy8V~8;hG(%S?@%bGk z4{azq@b=)ywDW4b34<`_gz47L$69~-CWbRp87YhZCAMe93wg~yRZ>hh3 z&noOG-aIq@^3j36ynE|>Kx}r$cGoFg-uP=15#V(jMC|got)p}7ft@RCt`PPHN4w2K zGY*8xl86L1ZE75zvh|whVZS~x#HjCdmL^o5X3V=Nf=C1Z)?bTosl&(?C;j%pQ-BmUy&J;$d! z0P<@yNq8KVFP`*7(-@54;ZU^w5d!5s64xSE~Qiw$>>h?Kh`wfS18Rz@4j$ zipw;e))02OASB~4;WgW1i-0}60=y1bq2L!(y{1SEEjy%txLL7@@EFUB+V5d(XNzR@ z4X`Rh&A@<7r{HAxUP)bna^+1bv8-usGGMHf`l9pnh#(vaLm5GAyd^??gBC6i6BE;w zm6c|T1uj@{C-j(2J)qZW zt{ove*OgFQiA7>TDs1n6B_%F%MrzwbBN`!-h)9(BR%o?^0mcVnE0Wh_Ji@o@&fV*eoF2Bhf(w7mrC<>q z8yow?Cq9u&`9N+a5qdC|^y$Uj(}6d~y%2_Q9$-|^#SBE!K~xb!Vjh^9-xCR1oPh|B zQ6m%i(*V_Gb@$H%15v`M5voxlej`l^D2ePq0vZO<78J%$5UdEpjx@yLWQK4$M2ZX6 z1&|dOG*37_9%ApkW1CVU>>jbIWkRi*C(6W_sRWOi;nLGmhSwzqB(?zN1w0l*D`Y3q zjE+hFyg!OiEWs$uo0G6kwuO_GS`nBSwnqkRVTh80_AuyIsQDxu3amSPp6H-6vbs?6 zsU0Py8bPPUZ;%sSzkTC#PwYGU;#>U>-@IzanhL8k`XA5rNt8;d)Q;$n94_;T*E@+; zFqt=&=}z`dV>ck+bH@;9oym;&{B5F)L@D>j5(l8C1fn&(9%FQ%Pz{aE4w>!E)yA9F z)heaH3}j1`Y7a~L+(@jYsCf5AUhlv-Y8L=l8<4~VDaeSBs>yWIN`0)0oRV&IK9}2(~vO*=eu~xmSK{GTL{M2Iu@cZ0V zuhwdXy$(2S#_BXYjgSS6GLEPG!Nf26T`fi8G6mP-OF+`q@>tUrchna#XvDl^z~}YT zrBZ}p_eK+3*o4qAEu^rqLg*lPb3!4F-Ak=l6pAH0aOew#qC%CftaNW{(eYt>RiO+* z_UV}*`U>$iftgsQ;f}fpcfCS5vr0G`0UH?YHCjFy1P9?H0d0uJ!U_VG56Fg=Uh&IV zp$ht9Fwqvv1v--yYE&FWLXG+X8d{_{eoYO{6P$%<`}FiQKom%&H6zIIxr5M5Lx6_d z3<(>Nt#H_7Fc{#71%|1@G~{e7Lzq+{YNP8uME2R(QvnCUXk5gB{))f-KN^C|%h?zT zxGtx`q`rsTy1i#QSA@vI+OHH@(7DV8f;SMk{NBDwZM-5Kg$V`M<#$wG8$mNKWr@ct zUi%Vty{n&~L!vX-8YwFrnY1%_&$v~aBKA5p2cq_}A0VVFcbq0EB_gL-`p>Gv7P>-+ z$Z+}oBaj3Obm}{IxBvHVUtgNS zFMs(<$l2xPKabYAnd=wh5a9h+-1hOeYbkjt<4FN+!z6*cq9S4+pz4y*w=wrD6VoE0LOY z5y2PNl}bk(VFNcaY4P!l<+X~!)3&HS=1R|xcl3-xs)OrZG!%X0_Klm0MJ`WB&P(x` zaWz{o%i@7w40yQbVZRp&B=ka-T*w}_hoA4Y0|H#1O5fG2fd?M+sX`uS!WoK26J}TF zo+iz|-Cw7daj`Ew{N;6`?C$VL*8~?rE{p!g^GebYXg{*Fngk^9XagI2V9_39!K&_$Hp7^nB{E zA)E%>WK8Kfp&369p9K2Q7lSc92Qg*FZNYw91pA)1Cwx$K>jiALJNVMT^e;Q6fYnlH zR2C*?kDl%aw)dTTH)ZIOacsZ{>_VniKv&_U0#+piZ>$=T{^hsOx+Ea{5QgUXq_054 zx_y1QNX~nv$BF3?m?TCSAE1YoDxr{@Xe|_%5%G42KAiO@x-0FP^OeKxkAmHZNV_XWs%glqBD&P+h;V{Fo zii#qjX<>S7ZEeL)1JXYPP)N+BrKQkeS5;Mk!=a&}>gsA7d?BaFWXg3BHYez6T%;3Z zF8wmuyV}Ju&j4u+_At~v!_}_zkAVL2a`t`q-ACiuVQL_G!{0^8Qo98d@;U*t z8&betj>tm(mn92JHQ1tI(#a87SkXeV3sdqc!c_J7&woBg^Fw_D3rjwaXX2%tEbbqs z_!A!Yj$(vFW&;QGfpxjv~(0x zJXc*3n)6DzNprwoYt)=M`i!@(84}gPD)8k3SmVoI{xUQ-K(YhXg?TP9C2J^>js)F8 znzyk;Tw7hIQV}EJ8a!Tz#pAm-weEkrXLQQGMC&k^fApgt!6$NwJXifE42*O-N~oMK zz%c>gPOp{iT2t%rh5~`GN-CQ1#4zE)XEB}3bPPCP5?x?WhN46mUIN4;k-_I(rdF(8 zQCeE0f$p=uM2BN~gI3~j2M`qyGn$^8Xx59mCOsHi&z_mNuh(|hN?oZ+_|;#Ye6?eO z#)pF%ERQn&m9KAG^74T|} z`U2hS(>_9^hDM*BvCjHl2`3+{7sJzY+p4NJPLGNNTmtJ51;SC4PVv~kJfu-b?)z~U ztZDw|(WbBd`9?X9{@fcqjrGOf_~@1toB#TddsnRzp=yqdc}`9TCLQ4hJug0Me&Xp< zD!J&9kKaBVV?m3LJph|V>$e6+oZ+l74iWG3ge9b zYt>?l1)iDW>g%ZxGDess&#^=!2m&pV?CN^Nx-l!*<6!ZE1 zKz0vy6^1*9$HIRkVF>gPXXSD^Fk}ICfdv=XxDYLJEALgP|00rD!qA71?@=S1?;$zh zzN4dKVJ9w19V zkf6$P*B+18B1g;1*)Y(=J}k#O92ziUa$+0?3KkoT`&MO?(2V+!$60qF(45<4A zkOgnK&k|85o_zAj?|tukIkKP$;TvttrQqX1GpTU75IVs;J{2+#>izh~KmOnU{olC{ z=2E%^wLo5^nr%Th_E&%PSGBdZxvH1#7EnNEQhR%0w|w@qpS}C;yW85@a%7k77KpaU zL+yXS&fv9v@{^y;5m~ldkTU>%K!U$-wDkA)qn99>t0l}--TBup9>)((qXh*R{sJ#w*VxW8BC?B^;3IE!)~Tnu5oz_1aS*9?hmDzW$~%OH(y+{=bnYck%EN{h|$1j zgeHUfxh;a9^~pE0PF7Q!EnRwY&XW zKYnp(g1`Rtum9$6{^kQjkS*1SA>UT$By1vhI{ru4>C!T3ky=^0aeYA~8jr>S(7|S~ z4vsj9SS^qgIZRJD(LWot1(Hm}V8o_6Ltj%OEw467#q8()aD2`cfVBz4(6U11>5*Aa zFbXgcrNVscj@8xJt$E^bo&2x;W1$pdM}z9CcQ-)9-`_P$0FS`XA(B33W_G z_$QFpOI5m#OS5( z9GL2w2~4=cut)D0_s$05um&kkI==nl;aDWjRXq^~x{^?L5YGy2!)C_pU zc%r7@K92~#6O1$J@FI!i#COoolR-%eRIM&K-C9hC_~Q9iN7RSs;sb( zEF?ehMy&`R73fgKchG^Ho!b?FKG{ayn^3}tCu>$!Y18j!!} z%Hr6}2m)e2x)N$jLl(P~9!+=Bx2jp@I)HS(_&;W3WYBAV?4%Y1k*&f~naU0JFJl4j=IwjY8%pcGo=p z_Jq|Df=1Rwm`C$`EWDhINygt&ql{$eM{Ox_nm_08K_^OhK+K@TV*Ohzp~Oi$ST?(obUU9S)vKQSb4uS{+#Dv$~-v+jRpcDt^sdm^>kYc6N4>D? zAo`gBIaSczHvx73$8Krs8@F}zPhp=*=dfJ<(5l*^ww0APZ(lt)V*b^>({PJKh{x6% zL(iFRyEj%3Gv%HMv&G&$VY_epidmO`a$?Tz4YsXoA61HPs1!3I{;{zEzMQ93%4X+0 zFCQPep`}u<5htVZ(jx8uedGQOEoGgPo)^x}Bl-;5{c^8OBjq%g$(xF#)|mj*!*7kb z+X^M8%sxO|1G1yVD5{aLdIo&NMw-R)grdAeB$Q#jH4(H1qKJG>G$}jRXaA*PS7j8i z;EWL_c2(yD?JU+dey8JQjZHh5Z*<(YcMJSYkwkd4!nPi)uvtZF(F1?AN23rKwKAh# zArW%%W6&RZ^VH~<_nooXeKk$Bht2W+al#V1a?pOmYLh|AFP5?-sqpauPf3Bicfwb$ z6Iwkm3s1HdN`MR)OQqmk4mq2s>wUa17vX~N2T>amEtV(fhN#Q^73U=uj|oL0t93R_ zORieog0;!*aYC7Gu~{$~%?H_4cCO@}9{q z-7R@!!5gl;7A;K4D}_f~IsS2fiAC}%LcxV8RI=1x|7h;f-LMsw@_EfGYiI4ACnn8B z)7BMwiBXPqHw{rWok_aGu|axa_5FV<6$uBrI~DU?JQW}QYC)hR7p+w*FT!2oYYT&u zX`X;Ekr#@DZfU6?+-djwQaVKy-+Ol7Z?%su?huJCg|!b(li(Bi{PWLa@xZn-*Z+%l zI3#T7&cXpdBk3(xvl}W(iwccg9v=fB1#h!!{zB*S`Mf)JwJj}YqaDBf?Qh%L+p&&5 z_~3)@znpz!(w#;ya~5NlSYVX0?STx7PVA|Yi6o!NLFkwj)ip}3?#2#hvYC<#OfAUeoJJR8i2VI2VnzDNuh8iY3_=1Vry=?(GN ztnN|sxMlXHE$MP~(PN!+&OqW zy@QSztZXjF6G;_nWoJ5jUO&+frEEokl9g7QM`wQR4SxLY^&$~(@27rN*HCkGGDt%K z2!IU6?iJ<7CcLi=IR59bWzH7`%v_0t{nh}jq_L$*%a}tzop=IVX_aEJT%HP^m$T{g zl?L9yH%>a-A(LKCv<4QBY-T#1@cIMpGO^}suX?TH>tPKwZzvZ=Fy43}-=B))Vbb+TJG0h5v!^6WkqlSbEtv1$N zn7csKhB^tVIvhUZm0b;1uT+ysI$#oehU;kA@3~i(m$UOe8$41|@*cs*!W1%*%HqO2 zi>Blip+1r{QHq+lD3QE8mvuuXE zipaX&RjEbm%_E!lNY;{r8f4%eoyQ%(&++~RHtgPIlV8;*m<^a zsYa=j%hNn@ro3|H+8qk1G#HKB4?oo^VnAodqGx7f99{F~ytYe?Wxh05OCVCfTmYs8 z#)NM=>UTjT=L^Jo`{{wBuQ#vXo>waOi1py1haTFnVZ*b}K6~=yNhpvYLtw$c-`p#} z4WujBq{28{#ELf=1-0e%dYu}f=FyOAT!)=&DS3k+@NFxq8!HVxBi6j1sE=@jLR8nU zeeG-1#P{t!4cKGAeskD@m{%6{^5LNdh{rghX&A(&N?QPG%&fwbMuUmAkH@@sXD!S; zfF^<0w55?1Nzz^)hAc?DKmtO9&6Z2WG&B792#3I6C=SD4!rp+GXz9Qq5sP4%%0T*& zqun>`68lxMH^!X7q9l->Glf)clkQEWvLUmxciPu$_IPVF8(V8yLjkxRf?6i%T~)3)Wew1x2_=Cn?R7YPKwAsN zQx&B~NZHXCIwq-=3Ycu}@JuKjjkg%}#Tvzw#fE?^zChR;0{$Jt?h9>FOUug);YhTx zq+op71rfHr0g!qKuLIZ?9}&Wx#ezg`o%eqF{!LH4cJ|k=b$s9~Ncuv*-8Vapn3~D-(O~?( zwWbGlvZC>r&*g<-6>wjgbb{9rrjg59Tc$|*T^&aT9_yV7hoe9w%zkv)cau(gB8f1Q zz^{N!xk8M67URZsHFxh_Rbx`XqY>XDq-uXC);%zbpz%)~IE(jLUqQrALB9#ui2D;x zgbCC?T8aSgQwlk*Fjp;L145C{VI)K0km~CKQf;lDixcG87K`)(p&C+ws3jffxdx}bpRgZtK z+v`U3rHscBz5CORwu$I#za2sU_a)QOaD3C9<$xI(92^8oPy^%C3nrkj7=b<;>TSrZ zu)cttZL`hmbo!+g7MH{Jl`4xSfLp2|z?Gu>Cqid=Ih(Zi&2X5ENkWXy zRgH9T0?N4zxWR4`-(ijvMm)wnh~!G4EmZzd1V7=Vo^_rXq+n)Y#N#<`(M8CEzd5O$ zXfi+*F7B2rvlnrTim3b(6(xveGRH9PK^Be5rR0$%8%V7P_tZRSDOpP%S>(yl#0^a%7QCGKRmoR^wOP=kdm1v4NVAql}IM|Kw-^5fmXQ=ZK(QDz_+zJYX2J+r2Ty71^!MSNrCH zJko1+SJG_1<98HuJOUl$rnM_Y`Kq)BU5?)%C^OR#nV8gKl4N%Iv#QJ*PBM^zmIXO8ACpq%N6ADFBmKj6X z990Cv(HKz*A}L=kT(JYNMI;gY1zCI;WDz_PoAg+S<(a_0cx3UoX~#r&ch57=JVRRI zq81F?rluww66JUUtN65XkGKJ2IfxSE$9eZhKl)K@C3AToHH|iL<)lFPxLC#a zt8-*&H29&y%Y>{NIpK*?Qc{xp^^f=_D{ZF{)lbG}hr^?%ULHOxHdHpPWpRb{t{06; zNgU>#boxvr5Ht`dy=`kQbNxkUc@Ay=G-? zP3dvO^IL-T|IglgN6B^EXQF-kcFs9Y&Iyw+0}OH?01_kx29s1Um1xOnEo=RrcUP95 z|M0HQzOdRL$78SLV@b9ZOiHAfDIyUW0}N&`IftI^>6~-8{l2=lr_n^DD3TH>)&Y9z z)~#DPeD$kefWm>}$B!R6bm*oyzV*4ur6@1pi7Dhzq}$Wld{cz?<`G*y4|0cT@OePM z3QJf+qphZ{W_iI!0mOuKNC0t4DDG-DUmBN3 z<5|FKEZKI0$`h0-#Uim-1nc5=YRo7b;M+aIIpqlb2 zSXT!gJutK-EVDj)!3Dnaew%7XlX|yY^vxfS4UcUc+uN`jOoC5_D>Z81izW+TNym7` zb`pxees1FPPg$ES#x-B0AhQ_T>V3)3Uw-HH-oDO6T6%px1d!TOt66ojd?_*!7*Pt1 z=BFP!c-G0Bn@#R%>o925QknF`e0*Zg$J59@)uu5hrI0g*DNC5YdEwLq=t#Y-_F9X6 ze%*`KyFBGkR~f$ii6JnHUtEi=faLbqr|jD~@WYYyBH~j#SU&Hz zN_n9ePa!qenzpvuj5T7JNU*C_dti%MED>WYVL?7Svi!fkcRC!6%hlTNT@8+3-{2`F zhg)P*lPhg?R~w|b++wYHD5m3YB8$gaU%8yHRMnSo=7Hf#Q|Oj?01#>=6f@?-)$<`M&W=F zfh)jI0<;Y=p7Ngl^QM}HVW0v7ZV;qElnkmRumkUN#efN#d(AvS&H`p8fdF6td++>%q0w(G7LiNW6)H}x}o0a8;mC|4j>#PiX;)2%r^sBY`mok zSxQ^4QfoMQ6|S8Cwm9&|Jz@bB@C#}RG8_bF^Y}#-4eqP(($W$KUa_D67ed+qFch#1 zQBV?iFtUNkxG{l82pk{+A|nFIgIvHz_04a7vkVpy2LKmLR3w*8hiE822jlQ9EfC0c z5~w3C0d4%@OXO+|vESPd-R9Y@!xp?p(5QQv*Txs5G#NEMQ=O0)Ca_*>omdvAt}x2A>=-2Qvq?v;h{Ps8ZGyz{V>BZ@g2!>|BK>;m%cAMq7vCtBjH>AQN#?0kwlfX+N z)>@#u*NOzB``o6k%}BttuQY9+-?B4*Sn`D&w}stGGBRuHUn z5t-oV?k%UU&T8cnu}BjR$F^ALQGXJ*C|J*}N(ppR{Q0Yk|M01f9rfDdi!qyoG4c|F zW_r+O_ok^NSi*UfRHGMDGMv+8I_ZjQ@zTudw|{*88~@?4zx+>+KYx0fXKi?8HVmn~ zPqah9o$$wsj?iaz z*3P9dHx)=EUznY9&Ms^iP3k8ObT7ntCr4d8Km(%0kQ`vp)DP`$`}3!_wl`Qn!UxNl zOa}1`IurwoMBc7fV49#LSlfXOIR85yzwd8EKo>Yr{XpRY;KsIy{S;f_&zoyileVT+ zyEYqwF2k;Ewlo#G?^6v+*TN#Huw|R(%E+)mXME_H&iOIFrCMd{ps$ULnN4Oi2r>d0 z2swhzg^dsU8p(^ow@4pMd{F2<)|UN?H}$;-+)dL4 z>+(&x-WmcV2W$j~nE1tGkq;dQ!Xij0#F0mmEE|ChAqR2JQ~t#>R%HA`2(CL38_Nn1 zEe946zmm0}{1vjpE9A(9ls)A~gaAf!i69Uj0JZYx@Nl1#(zC_GBRs4L2zD(Yg&_rF z%U}8seni7>IVn8CRVGW~zbl7yDr<3TviA(RDZ*__aZ?L9Ez&O*gPc%7XUjv(Xim=1m2nPrC@n3TcGN+(vfrDcQmwB-@)P+ z#x*e&;aXo`nejOnvvIeCF36=4wOWL^f|A7(kb!&BA zdg&$Tm*kXQxvme#0)g?RI4A`>4(*>gdHU!>#}tCp!kVY0=59PWwAUummXtEzojJdt4l$On%~ zLbu5IKRL57>rQA?QnNy=5Q=+RYG0U%=Xt6u=yW+S92G?|=0H#1C#!2VB3Y=hOJ*5? zRM{*O)hGp05e;56sP6;g1Oe~K#L|hAOJFsQf~_d``2E{XIkTQvMo!GO)0dW`fl#W> zAl{*)zW&9-5A5s!VBOVU|93w+TdlVmrJd~IE;Zv>zH&Y=SXI3Y zrO}yuqg~yl&j0N645+G~e_(KY-UZpj`PB`%wwkY!F&Xym4qy=4j-}$Yg^lwUN1uN3 z$Q#q4i&NfxoyOl9GOh%5BB}WNoNsC^!V{6Lkjdny-Epl)Yat%Z^fc)^?dmtiUC<7mi)TQ?etLJ?Q%cE?UcD@mOOEaD z{>-C$a(t2gnQbx&->8<^^%5y5WLrF$xiq%&zn{A>KJV0Pg)zfjnP`I(du!71S1qGb8U<-r^(Tm zJus5v5U<6qpULYRGcKVRth02NEHV1ZKN-IGC!B$00BZ>EL_)!!-|GRRVqhZ?-ryIK zP=lb7h=p3*JP`eBECc!5&XymIw#KnRuTdY`wdFfMK6{rMfm-&$3om@-D_>b!UT*B$ z(-MjL*OG%>4KM!S`K@~&_~gMJh^K<&aF-O`-Kz!Y>Ejhas$L92cL7NQI2)?k^b(;D z`jrbrL=yH*QXpG$x#tV7pB#DcDQhf8;|2}?U=Cd+5jM)Ge>=Uf=pmZ3!_j0I#7;i{ zfvuEEKzZYU*+>bJdl0PQug4f~urTaMAUBOju;9;MTnolh`CScKonCs~oq!bHqCW+F zabcfte%V7bSAeSL3HuX*WFiZ`3TQ_W@hP)j_WeKJ+gndgg9~f^-~8J5PF-7oUb%hA z-0wem@YGuN;$jfT0HAh^u9ek|b0bq=wcFL5e4?xMiZi{Ziazz$@QO1Ch}>RpUfBq) zc|)Vq`9}{)_Sacf!&!q|(4Z5yn}thYip~~>2D@Ln?jKnV^CUtU&73@a1ytl+y9TE= z;+)xew*8A{rN|LV^Tk5BfIifyjIPeSIkN_(E8w3wGSpgc*AI5poEup_KC&41hL0TR z{r>;^v|J{J-N#0QR4?WS-Qn+#Iz5T()7z^%;+mmWqcg>uSO^gbA3infOMpiFx!nyb z?ub<*Jvr@LiKbf&id{SFd+N1YoAoW0fxr9@$Iw#{4~0$&R#gno8AxAW34P-yt~F28 zR`mVw#B~%k4w21N#%ee0?Qi78Q#?6TUl)VnWQ{>Jo5>YuaVDKpY50UD4Rtg^`oP}4 zm!{(*^IiUEgWve>>2njyyE|&lJ%i8B$HWvP7YW{)i^S9N{q;oS2f!~=k|I$ zYikaV+tbq0x^Le;nEL>rhgC?RRkR5}Hhw`_M|Nm-C2n+Z1j;eE0MHuczfvGO10L8y zO2$_}le+n?vO4di={}Bw7PvRgt|X@713Yq$YraZp~eBNukK# z5ftyr_?xMg_aU+;aQ{d&!cIm~!kC6b0Ou!fSjTzr3x`*g9=zus-xhN-ko%sCP>u!< z$&5{h^N=J!8rVb;c&wzM!jHr&L&|xTQ|96zyBoQ%e#GQ5g6GDo&ChO4ryPxoQc89+ zKK|m0s!Uerg1Kw5a#E!fklkjEh<49p%b%CCy6F=x5z@1ysW=Bp{0(9@iNH2g=_UK; z*7Dyrqsq1=>2RZ=qJt{a{5A2@BH_yNx_#qXlb)Z&+`^cos6c{==o=et2FT&U_+BYfa7jruI@t^)Z zZS5Y2dY#EwD4&kx(+L5U6ALJbSfB)wVPyfu0+U>2zaYyu9&z=1CkKRlsGAMaV zgQdo-I&tQD+|-mR6vZ@DfD`s4w0r@){zAdIiIu%H{ka{T|NQ)!m5ngirXdt~ea^Li zN9Wav<&_P;W5c(#Qz7MtW@mgNoq~>PpFcDCTc6l=DIgpH4@QA$wyFi0*u@zKsPV1! zwtbDpNlyY*fZ0f;THI-sf(<$m;mHL>x8MEB#Bv6mPVs8ZYHuk1vrBW0Rffw@R^p53 zZTkQ8#REEx;u|N{-k1(N(4hFqg$07+!C;+ZULW^-=}^n*<#;O3*l?7fG0}JirTAc* z;b5B<6n!vsC}lv>M2idhArgaRV=)m=`$F+0XJB-C{k8K`P}V80X?}SUa-Yy7z%*JE zDrFw{o`^!iK_pW^!!EtK$^dZ)wL+%Ss`l;OqS7dY68WMRs4jD19SR8{*2}1K_+~#&vxb7 z>>s~&DGdU4Hs|(*w5fzyE|l<#kQIT=qjRhAW}TqM0494Ow>XpH{YpA)j$niU!UiV^ z5HL1J_yLITURXeLP^P_JuYeXdwKS|bSHWxz4v=spY%|u*o)5;N>F%BNn(FY<;tELS zc!hP~%9SgeVMrKVhbW}UY|?3U(2fTT0|>k4;imD6PMt+Q_<$LoKo8*E%kaUxb*I)& zx_=tY1?v=T`z^ZWALzQ7c*46qCvJVBn1n=BkaaovN$ z;1d)8Ss-_?BXdjz$P~jDvj`qI#6dX9fCyX`_=GDtLO8IFaO@el7e*DiIQT_0e2!vs z<;Np9rc;pG&tqzkWN}&`k}Zh@);R7fPTvAVL&^XbUqL3MvRM!URU$+Hg>!6a!4H8m zE*Ag~3XBq>c=+W4@f8y1s>6lg09~0ZDuNI+1@{(Z#JW!a$#- zl1Y@IGLf6gk93d;w$(~ll43;y%58!;Xshx7Lz|`dV^xxiX%QB#%o zPBm#^2ZsVHh~)C$UvZ4Jwm?7&@(8%Pmw>SrpPN&p4cfZi9PLmXdP5__eB0i=c5Fz?L0TL!OeSlYu z1`ZR*h5U?=FNYOG0>jbifRx35zTkusIy_>efM9&MMgPDS+iMdWhy}QWm?|;taQa?7 zH}UHENtHq})Lwmf$G|H~VC#muZfKhT{sqdV{YfN3X!T%&#^3<`6mHQ==yv-C8n^H0 z05O>8T4C}waZX#Of#NxXLEUJM549O#aqv&ScXcC}+tt(jvy&rD&2~^#UpO!lY z@6N67tXBNw%+kn|SE!TKTjWNS2oj3bddU+y#Z%kNQVGnSZ;B;jBVdY?Ymvz{s2*W- zQtI-x*{f3y(EGJ2soNjDa($Up6PqK$bhX&|2G*J*d)i3D0F_8;u<5i)@WK#`Zq_Mn zCe=f`I?}0ZPgk9=q1hG9@ujrS8~fL*o(I|tJL~n=)KF?es%+LKc`BKzuC96M+mjRLU0}0bo(Mel?>h5^EcRdQP)HEw)>l?m zwrtsAvH)Ehkstb%%h77JH13de?Aihj@9X2&0{####M;{0ez|)YCh#Ty34hilHm>r#68fxuXORnMn`ItZlKT35cS1!_>A|Sj7G0v)PFwvLePytV2|jLYPO9-$tp5;i{~g0}Vb_1xpnyD;H&K{k~StwSGC z0^#baQ@4D1z);9jV1^}?!THh~&xH+L4Qe@zag^(~Sy`N1fW~O36^?7n`LqYu`b5tg z>p+9Dr+u25{`Fj2Rdz}xmlleGUYj5joR7q9CcPT!CrO)q71Ydno zFpUCH6VbgqU#gJ`z)iv8ZWNR{w;VpytbJ5Kfdd53AXtMyBH;tLgH4%^CNpoGn{H^X zg9dG=Drqz+q0Jgfo%`#w^D&~j8c-XmvXM9dH!^9n5XtgHG6QMJ!LF*a*Ou2eg1`G4 z%`I(>ug=Dwz2a=psg~Svg+%z7J$0Y?n~RUMTAz4u8_c}_)7UYgm;eAE07*naR4Z3P z(Nri93p&K2>-d%VPweSD+}|V?305{jQGb*dP5_vG?YE9R^XN8} zQVx^p(CT)q!?3qTafM&l+ivP@)NgCl*P2U$^=R%ncVc8MVo?beW|uEsUp+9`IJC9( zcmL-6rQvm$uIy+v=u)mwFj{BR+6*eCOgy&Y$w6TNIZ-exF2BZ}>aEjB=^~i8AjoJC zWqTWKQmF_WTjVw(o1b0wo}XBCF1x2z+@JWoHI)}ggy=E8S}d6MC3iHKBytIKyhy0x zm=jnr4S3zC<)4P$61Yshsm2fj+X)efq;VN45z+NV>7ibGGLs8HZIJ{7YF4bduArq60#}W(o%y6Si77 z?y<(TLvOU50F3&#pnpvSS+IfFK3fE@NJ>AP~$Gt>t!%FRfao!o`}L-XP(vKN-Bh19bqy7;R+!2|OjROE8|qatYP%1=;71XhNiyua}qzwtZ2^E;Tg zNE46fFQfwx(kCS$^z5v>$PgkE=Rjfsx$EtBXQ*IhvfyJwI+fgPND#SK#zD(N2L{v| zm68SFIVMuj1)TLs2(}8+iNp?8IRXlQQzEn=m!YB17p=r16$&$-wKcYhv(e!A3jK}( zARTrH+{m$<@|`?^XiBRF?b97r!xxsk38=It7&_}ptMnQWw25_f)?vxL=8U(g zgx6L=Sfs$FkuDT9?OG5o=Nx`QUZwfqh1t_+1HpXVo3X(}Avn1cxoWlC70F;N0aq{( zHqLvwBGY0dYKZ*dC zW?QXkV%FJFXZH9aII`mwb!~Fu%Gh!sk;%u?{oVC@w>Dn7zBVPKM$iy=Yy;<+i%=uno#jh^@bG6J z8f>XEB6)DFi$wHiwpZ1v$olixpbgaz$1~F#$$z@Akw}9rrQnTaW9hs~Na@AAQ$IUB zeQ|>Sl~3#%Yz1)Vsl+^~aLSeV(}#LyCg(0suD$%$#IXatef5^hQ>!|q#H=&6)R|j5 z>~kSrERn&?jU;lid?65tUAyWg8x8DG2>82t8fuMNrz^1L4Qpv8!m`;wTRTpMJvQZ} zH|b3j!!Z9Tqo3N@u(Tc;ha6)loJj#fQG0f@qnsV}=B15bC=}~&ueCI_om+}&Bs9)x zHrf*kgmH5*<;y~+q0=AHk1X~-P_yVtLbnWt8OD-KNbRUs9&A>N_`Gl=iY)b$%@a`b;sPQK-(n?n)=~QYbD>78b7u`I@j$B&=yM zOufM_6j@KY^l9+1!M_9`?N zkVr#A17J6|GlCXgWw)Em7It&{pxY7Hx<|V+?18eulto(IAZy=nxur75xU0F{_Jc0a zMvFs@)i$J7LQfB{=IGmp?{U%~2 zRp#=jEKE6%a8lQb4KU^`&g}JpD<(RkiFf-R@_!2S1!c9;cAi?g1m9(7NZ9n-H352K(EZe!J zt~bYKn)Un~*hMy*21G78}PhsZtYKmsH_aX7h8LYPEpfL65Al zG1AmGF?Xt0j|+BMAQW#CxzA5rlk^YZSo5K1rQ6o}7Z1chRVfv_x3(=g&fO(7815M! z9^Sim?_J`&$FG1Q36C4K7R+o!QiK@{Ru}V3G$X_BY6H_Rf z5^Kv;4Yojd0&aGPQ-Hr<{Nu1PjDj*)NzL^IOB@0hErsX2BDOc;)OVzJ!6zrXhnzkKxjKO6bOPwu&IsPzYLt-N~8wY$f@ug&nx z-s(sy2kzc;Q-L!}!F_e=6PM<$%{v|%YCAI2{>JI+uxdWL?D6y@6E_mDj}%C&`f95fgCh81A)dS-UXrwAGsX+N%v} z#l!o$``fEHof}*ag6B_>iJy4mIymJVY00I9kT;sD(J5?J&DrIsQ6Y?E3Q#}TX%LMr zdd|giTk5Kzz2wsm4XWj$BfYk_pr1RHKiY2{n^<`B(o8y)1{M0X;h8Tzx@*U-t)65d zl%tZgIL4REJDrn`FzEt{+S3SMLKU~I(Yx*>x1E--l6~$$Y+QtQ?*{K)5-mTz`z3* zxr$0e^BvnwMQJjXOy>k3X8YMA2c=945G*y1@QR%Fz+QxtUw_=W$MByxm?2c+XLF1E^U3p_Jvp>Y?IfCu~G6;Ak2fO z1*I*cZ5VO|%^UQ`_q#kFne^|Cvp+Ib{kS3@w*Xq;$!>cfmRRt*7B<#g(B*A1>GV1U zRA=Gr0mNOtWBFBTEW%X_+sNKvdUkY>cA0dr;fL~;9N7nR=~>EZsjY=&^UdJf{{>dY z9ZHOnG7RXTr9`lUgVB~K_Kn5tcFTOYM;98dRudg2zyw<&3)g294ILf4!rc)3?eqHx zg#yv++}i$wpI(3<#a*iP$}6vYkT_c=6(~dmhR*roi(sW?(Q_tGgc0lYGGZzm7k03J zUI60(pNO^*oK1o683bTLKiJ$W;YA`!pf^IgE`@GH)5~$~o-GY$uFR4u^M&K<5mz9| zMksweyx?oF=%dblf)=-^1> z7l2Rl1&=!*msayc;C*9~k>s@{|C7DiD!F{jUuaVmCoWw*HMaQR&W;`J)zfR#;AeWOS@k6$lk90wyKs|W35fA zQ%lp?0@$E6N+}8;5yAcd^TNsT@4s@jrN;2;xmiyziutp>uO%YVy*|CfYBUt~RjazJ zVrNVmNfv6fl7TAOU%xzs(+e+={mL@~zjOaX8nxoBh2R=P|M8Q3#b|uu+W7I28R#;{ z#T*(K7Bcfi{&G&f8q1_|Os0?nqZhi8fNWA_9t1O_Y8g&Sq_^N0$YS7Lm&H8bGg)@2 zIt_S-zJ8$7JmQEzN)@LtbSGl31i;5AgUz+Qd-}VZt=DFqm*Gk?r+S;X#H<-B>c}$L{uBW#B0Z*d+02&pS-Y7Ewv_WPxC@ox$xSE52CWPWZ=?C%7 zY_ZIzu8#%Iiv`l%rXvk3bgp#@XQNtgI&pqrf5{0CIsP4{!kf!GZZtAVA;X z(u5m8IIF>*VG>Lt&aM_bCK)fLGoYQ|L{wVN`DF3OX?XJ)e$ZEmd`<}nKwkn6Z*O1= zWCd9rl4ERgxx`I z>Ji-Wf%d>91-=om!C~-JWP3L+F3wd7*>;s;5Zdp;v3cL}%G%<(SRplRm%w#DS?TfSPTTUN_kCd>%^6iCbo;n%?r`Q(NgYe%bnblP#3`o8}9>#$3|xVXq!tG!Fi_vFCO6FCH6EXX2b{$aYS!~!3aCR2$hVPs$)5^E!Or@_HCNR-1~V`;K-g-hpG zBiX}UEe=o68%d}YFvOi9K)k#X(0qWouk}?|X(j0_^EW3~4>W7R=z($TiD&=kYfGJW zJwMB=`q&H#}8$3K}LamLW>P>Eej<;JF$v*5-C$i}3` zB1Q`W!3bqGi6}-RE6Rj4)QGRj1voIZ8DuSby3rt7T$1S^x&-T80vZ-HtIQgiL}an* zs!TdsB2zKBXsWOpO2^VL2}BsRQ7`ltxa3gfev9P!ORKRg^VAmOhJOkm8v>Owv8boJ zeJRXzSQKZV$r~l%gZYP-h9MwUQ4AR~aQMkH!xKx#?hhT^R$V2BHc1GfgHKQh9L8?n zoR#*ZgyldIh)NUpal`A8;M2% zb?WQtp>+Uz6G*>6(x3r@a-pymANXA7)bNJZAQ?DP<6MZ)LPb@bhHD>g=i%X+x-RqhB1)(z#@2bhDXMzc``ws0CPDiO#KQo!B{HH8sL}z^!GVRu~K7U&ZkQX zNuayPv*A5{@)TLISP+KpIeqfvo~^sp?OkG4-$emzzAX)&XpRDV8SB7V9nT4s3Pl%xoe?0Qbj?Ok#eb`JYaH%`ATefT=~JAgK>=M zibF7$2*R;`VFHvd;}DL9MI7!E{Ngd0h?g6I77CI?VSW)w!65>c367PVV)CW3phme| z1VZVhoDr*-%v1bmw7g8Bv`JXR1ObV40A$Hn6otXv7FwMPMEWQX?!UN4{3f9tH=U~F z&rYV&VBtgS;4RGv<2*7~QNeN|@MO}da`_Q0i{ci*;!-LdY3%~PkWH82IQsF8<0sud zKbtQhbm8{xH$VL;_VFG4klmE6nqI3m>oq&_c>wMu|Kh4+)+3VBI-|y5R45e?=*N0O z#_?t!y`$9Mqe$ea14fZ_&bzuScFpw*{ARr{R}`@Vi8t~9J8U?aaVR_LtfqT{Z0<9t z(kaMQi72HOqH?8)j2UMV7v=))Ty>R*#~3<$uZ%?Yib51Egej6XT`uJuaY^MiyXn^! zYGWXP>vE{Ch!AiQ+ZbR2@|snMM2L z(~l-Xk!rI_wYuU9CQHDJh3B;=&u5D-h{yqIiIV#iHJ(F^Gy$l^iOx}z$cSFaHS+CgAWE<+K zeRyA|-K?pysDVVe9>Ar9FBta*B8#qgwM83_LFq>hU^Ea;UY%N7bBD*~o%2rL_SV|d z<4bwysD^5hI!k|Bb*o(uYAy)3Fk7S7$e=SDwkLCP)7aPsz-+TYw!^W; zfA`Bzj=8fxb0Dd6lBY}QB%?G~u@#Ogr| zy>XiqJEq>ZQT~A^48t@Je75c4YpbYb-+?NLniudVlyU_PRb(>oVnPfF_EklwJH!^T zRuf%Yxg7L!gQ^I^FepJ_KH)HQE}M~91Vc~YhQ$2(cV-u^`#~l@_(V&~fDs>JRpBZJ z$UZtc3Q{`oI!~&k}sgdB}D%IwE;R2{Nf2hjX-)En`^`fR0(U2PV6=0&d;FXY7 zkvM*liSQMYx<2lTnTwMPhak97o?zH)v%VEkY`&DNQbC8;1d1v^hw{1r4_swo^0-^` zOhN>Q%LwfF0)bA}xU~f3csyxBn9073Q#)FW%NJ@`R2jcGmg3mB(f+6+HhsyarWtf% zp3hi{0SS9rLJ47)?g#()w~yYxAD1RLQ}OaVlaAe4xDK0#&}%FP&2}PV z6mj_192;{^zPO;!$&DttS__g77@!FmkdV1=oKAk8tlnu{R1gCdc|e0$$h9o=uC!5} zDizJ6B{z|=xfIbH*Hc=3e><^;{LV6gJ_wOY8xGKDw$fA~vk45J0%g>fNM)2_0jz2# zTegnQoZhN0Ku>a>C+t;cF3eqU3-(xzT5cl0v)n#Xv4GMByPLoB>|4-ve5Z&4XD zvuDqpBD}ZZm>?Vu?XbWQMgbb!F#FK0;2bc+qN6|q-FYB|n4p490ESY6tg#vb-GN7R z$S#L1!1Zt%N?3ump_M|AgO$h|1$=scC#U=&?kA@)^XkVvr z{ZnVvzA_#1#xqC(Uv5M)2U>Iu1}Pw(ipu>zKf30b_dWmLkL~ZZ{>5v{-b8+9t-278 zUIa5Vk7qY24_Ju;JCRbdu(~0liwm>s1n3KBpC_c~uA?$J@Ers8WfN&ry}75iv9rlK zw4<)Q)&%pD`?}11)iRZQuSRpTiU!C#x_xmdJONGm%+*D#=9s*og>U$xX1yG0Moyf% z{^)~)XU12cx4KHFtTt;$=hh?8C?bNCzS5{ukb^zYd9eta=z6t$OOqAL9kkjdQrQcW zYpxYfLvz*deRB6!RdS0_14U9NPhN50bC$nLSRLP1tJYJwi!+{o`J+9xW+i|t6fgeQ z<7;wZu{!11SamIjW7s1G+NxtU=1eZHl1WT@aIXkoJwLtX91+RH2l^X_7hJhuY`xLF z>JCmok0FYrpj^J___8|?h_SPmXuh@8)h;_SqpM-1h!1ukG%Su*@k~KYME=3gQh-{{ z?bQm$Mre2`NDf+%!;7Y3LW_0ljw>tSvjN(wRTO6fuT2O3{ru>>SdOQelm zTl6MVG!z<{U&nFIU{dYd+S1omgA}0D1zQ-m9+o!_gnwk5twH_x?{}j**kc^4E{nws z-U--z1)&<`YVdeq7emECw1&gj;BYoJM4Ys-i34f_zakI|!s@caWYPO(_*0kNQiUKE z&Rl$BwV_*wQx>-aAs1}f;Lvb6U9?c7X?~2NU*u(@lzk{5u=;1`p_HG)LhpI=qT~SC zoW)8g2uB(2l0}WI&LpwA)40$pc4`KsbV;wyT|W8v6rN` z>gCHtf?vTqTGkK;+AdQ#c<{bwo_VISeW404AB&eluvlcW3^Z-#N-!E8SfIIS7y;M- z+;HR>cnJ97Q=pMxjYm3IDhSz{$Xl~qhJr_QI81Q~JQi5fZCok{!R0!+TSPrKze00hR+I}2Kjs@ElnVpYh}UJLO9~8i z9|9UTeWi>sdj)iXXll7}97KZTxgrF>9f5G=uaH+|1T3Rq!4ZQV&*E&%Tig_bHhrUb zz-?gQD^~Oo^uiS>G04t0QpN5-AbvR)R1{io#YHGDAO%LUpzWeCaOF5yMA(hzM)}EW z6b5!N*ht`=;U3Al&N@^dbwRV-Xc=s&d2#`YjR8^cpDFO6U_`We&PTUGB^k+`9b;%l zTt?U|=70D3rzp7$J2bw6SPHbk{vr-!Dgst0ir5j*>-+LJ&BZ*y;QG?4KhN`vRD6w5 ztkFx9O5D$oL5L2=wu8-^j1q3_yvzLAYNJ|Yd;|1DomSKv%=nzDsH=;Pn3QOIAvkPr zAmWOAz%jBIET*fwElO$mo~Ppd?Y$_jM4=29!R2{FZ9Itz6MeksYA~p-vI0q4&Bmo@ z|APBMvyK8gIKvlgQ^(IvU+@a|8a48=X3X2?@zDxJ=dcSAl}cwoI<=YAi%`LFX9pYX zU;XM=@BIEfeuKL>5F2n^MJ5C5uvCGb4NHxXfb6k|FHd_X-6g^S#MNLD8cMK7)|Q4E z^>%||+6^OxFb7lA%Z0s0F;P>El@7}tpGs$o*Vd!pUO)s`9hmpVL6|4}^%8E|q|%LG=nL?;)70$EQa&C|%pv(EqkAOJ~3K~zZ93IJ5z z?P|GL3!~!fT7hpp;q;XSaFk|e*4N#^6x4@9&9qsRnVy_mc7+09HKusmyK1JFJfjOP zoyEdh5?iJ z508)dUEu?}J1qv~^RJB{Swod!prh))fA=^}r2G0Cet3K=6lOV_^My%=w`VXbkWkS` z_8VUuG|1_H{L$H3tJ+vwWT&%ABLgZU};i zE)amF5Sz{?cC`Qa&1?Q>g0z%Kh(#b6Pb;J%y;2$o#-WZ7!8{B~P*rj4VfiSrc#=Z} zu5Ggn!2Mv2+7ZiZ#B?qddu?)q?2Xt>K$X|Yq0;2JF&9opsWi1~i!qzcDVXGy;SqzB z{?bsZBhGv7iW3|r1GRRO&hp8YdYI1)XQ_-*GqxN(qEiDwlHC)7;G^!qq7Gf#P$FDc zSBLvpXc57cGO#tO4+pdjNR8bS^dr2*1_8=6uyrM1#apY*0)Svs8;O@AzgHgA3(4Z-fKvnx2|y0F zri}5l7RUq>IlESR)b{D6_>6>>H7MJ#F5VjX)E;$-50m+KW)ZV2Z*PulE2)?G|YE6?y+f;-W%2*^E@`V=s-tkCL>=!DF z3N25e5z6EunL-R^X90FNIFRqr8ElQYqTk$Lq)??6CM`k+J$Q>?^a-posbnG*2{Yk< zH14w%Ll#M1sTLIZVr-drB2xqEN0a$EX=80|6*#6y>hH{<7bH?iM4)5}u&sS#RfPbS zQJh@}xC>QQq*N^AYMbik5)ox|(ySsfk$i!0hca~b`uRZLZjjzEsozu1y9Q7x50wAAeJd0b=Wq!zg<7+Ok7!w zKtbxxdiCL6`_C>cOGMDcTU-l4D+v=w=QI+bQ3kW{WYA`%>W~JOEP0V)J|$B9$(K7Z zK10zYj=p-0yi8(%?vAPT#2bszY(6x*=vnl@?s(o8%lPA&18v4Z_Mi5=#*a*IU zX|}z_xH!F9+iV9tn=FzndP$}W8l~XzLw&9F#urad5}E>3({3H&j4FUz zPeoKf(BKe((iNC4g77OYX2q%K?Dc6#cvLmpE_!oJA_qNuq{=kktd@W+6QckJB(S&? z!Gh_WUvzmF*P+9a{{6c8Q!`;0??lWib8dw6)@$$IQupn*R?c~X4-68L8L;E8&%G9y zL%_hf&RT7RJqp}2Lj?yoLqPKa<_69Ny9L-6fqdXWAOI^D84ZP2!ajv#Yg4bGbGv1E z%C9y^`u5xSG(=^jumBH?3v`5j2ZuEHMsR=$2Yumibi?CO$fN+@EiEmG2JPDQ_4SBA zI{iIzAYfw~;?e{^Cs;>roA9hVb#)nH2E}=IdS9EaTf6a-ALmQcd}&Uk$cZ2m1SLo^0q6lj z=oy2QI=O{_V}Uh+Jp_Z3g8|6#K(P5dR1BmOg;ZRSPKwfDP?Df5@NFUmP68c`KU8`T;gl z8HtpxtI;29X|>yRLZeD+kbUFtUnT6qcW|J1VN?8IaQ1dchssI4YF&F z2sa)`#};`qu@J1faRim%_hzACQWrNf;Lm1n3lR!`BF`HO<}qrKCNBN1`}`dy+2K05 zE0hKhkEc>WPuwQe!HPIwGzhMMmE+EMlTkLj8b!!JjT(}aC+30x+{p0KYV>f6ZqXA( zf>1yX(l|~9Xy7A_DnNEj2*AOOKw{Dr$MpY4saQxgkrjZy|}cO7lDGdZ0% zipFLjUg=Nd+Rbve%Qv~mYB4Vq_V-u2LMc*TXay-Sc9SX@k1wx!AYSprp`NKFPduFg zOZU|Ur%j`PaOCB=b)rBco4-7@rc=srI|@MGWH-i=*%vQPAKTGx(#ocmy}eycX_;X$ zn45PoXWX9O`pu)^NX)2LPfRR5bze6))L%Y3Wl+n$_Vj_tMfbvb;5YBt}$V``heef!OhpIV=zJvx`GRy^(suv?B=UtdI#iYjtNF z(UQ&?9(Z%oe8#0C9#{l@o zctEQNrTkrw+xibwt8|j0D1G_zFmNqC1iS{02h7FMrM0ycX)Z1<4Gau`pB9OL%#637 zk%Mm=94Vlh*Vfm=f-f(dj@>`0IU#vP9{ls2nB zW*4b!o_qV>0nW~+!3si7zL@=mEUq#@xWm74+E^mVyG;i_i!C;vHy_J^We;MM{bf)2 zGlXERhvP!a5WY}AmiA9RBPH0R4RfiWI*3zB zk^O_hm$SGL=a#SD-U!&G%9SG@VI^c2LuAMm7wtnf9k`07V;g}BC2tC7*_+ZK#j8k} z6rcPfr*QHGt23lB0)oin+pmpKLDHCP?Mq*6e$PGvCh2I*}a-$dVmtHAFMv@X7)#>kWc<7gCieu42-ZbF zH{}Una}4xCmO=JLZ{4ku`tpuDcc8vtOw+HLgwOVPT zS>9m8p@2@M^I!jO&(YvbO6S(xQEA7(9J|ev1&QJ*Mbywhl~zhG2hv8RXm^|Gxyue7 z_(f>SsFfb>Feg08kx=|_lkM5#*QeJ!`+FO^>aG6RvdwCc>Wp7_WZ&@UjKdcM$=s%g z%|seH{VWE>>%;T8RPKdyQwRGRzx3q3?_LRvI-_JJ<_n+Q-+0!;b4SD}XYyD_`}*kB z)1wOvMgk4>KH#RKr{~szi60nhOJ{Rm|Lr4Ft~mIip*-MQ&tLtwwS~h~?BEapU0e@>%cV-EaCpLmL9@U>xnaN?3B*z` z^mAyi*{o4s7+V4+24{;*0c-9w?CF@as_GhRlTl*L;({xaOXt_zflR*8Q*T^y`WV1v z0e=PTJ7-7kKd{ZLv3jFvi&|pPDpCtXFQF9D`?#8*1qz8M$RyM{rOBX*Zmd4oY<^=Q z3dwd>ha*v3GVP9mz3{1iyFbYcFGnDUQ*Tlz)EZm?CKC|Gy#Wc{^FjVAk|2~@l$n8a8k?W(UVn2@DNpZoqMlnFR4YZciv2>S!m{n!p-aUtf<8 zK^+GupP88fQ5k-`f(O)VAYeQ~A3x~XV7u+^?gp&y>+5qkT}A(Lap5PtWRPd>q1qpX zwoQEX^Ev=)RHUY+hTGPGxp9!VQzDR=-U#OiK%l@CcH;_^i;qJ!)`3cKuREplYa4!V zoSkXd!w}#}U=R4S(^6f8QW5;H>5{n&ga=6v5XB&ZM1h9h3G^baKe#A3-oanKWyU~6 z2(T$UaEQZUR*c~CT*U^DYZ{!cxIut$aOcJuQ8+J8W6fq=9#{)lr`c9E|}$HdByb>~f#r7gb2bBGCBC zH55X!tRAT>tT3=nAQTdMX(U>fQ${e3vuL6+z=a>v5655b6a1oMG8ulFC+GN^C3#t- zAOfE?TD$xeJTY1gHg2v00DQ>;oeu>GIcn1pvP1>mLd;kWI(HQuk`^P`q9l`uelKDwhq8%UE}i3!0)_Hnd>KA5JF%MUH_1 zR5Yv_CL07yO6?Cja|PV5iJ;2>rNW1>#hIlf5n5BA2gWPnTT~5XE^CFJR!;rI7Av0 zzIW_!DA|bQ*L1y&Rn~U_vXKuOSEN)&HbhnkMwE_HBzurB&Eou$-(9c~))5j?U^H?` zrekn;{H-Bfg5rw+-J}xP9-jNmwR02;wLgqhZPE{j*|W_Dh&yFCQ;ShVQkDB=a!b2ou@R zkAv0V+)`*ygSJ{HaYr*4Qz-aV7i`j~kM@~QEJU!DV10|THzgoH!#+2ezJzGP%~{ON zA{ch@RjGB@(qhyCZi1eT!HNh=o+vbGoLR}sh)5*`xLk-wwh6thX5(mt59Sak9maRC zL36lWv!huHZU=~hV6|yA2*224uc`-U(N+_Mm=7Y)X z;dVV3jkHn`Bv$nbK}TENn$y3nwI&ozpBSFqwx#Z|&i2<95`hpjp0mS)DK7hC`?pwx zI_1}2Sw#>oPyXmYEi8{>NiTQhN81Cs^4i)OkO=?`Y6_?gc*=3cg0PMK8h+pz?2`B; zMrS-8tTZ5jBQpA=wzigQ9|XdW$e@wqD?|WHce~v{)$jmP<3r$VP`I&g;ulc6zP=s+ zpticIIQ-W|{}d&V7FXWnscNX|pPP#VD1sAtMB*q99`Vc7h$~*@FA7X6b^p9H42;dhOky;3LpFLjk66qjciee}Io9_?zCu?H^hs!Hp?rheMR-|d zSfo(t>Kn0Ja4BQ;A9ce}DlSbnYs4^Hx3;Q{1}*}Alj#iq#s4Wy`56`qLW$H{KY8xZ z=f7$*8%v;*PaivSu!drH2yXXg3K3BaCSf@dT$u6#E2>PC@cpq^JH=qnqg0tvS@?3P zC>K+x(7JDvoyTLj>F^=Az5sT)^9df&GI_qFC;?G{)JPyvrUi;>qXB2)5|Ch(mY{cF z2^JAbE)tbV#FZp@ER<;f@+XJ}#GfcCxDZ;RNDI}_ri|11W)fgpO%;N(3Mfuxk655O z7YgE#)P~zDJO#EdFrKqjlK0EU&5vgilW9O|LR{b z5}3L#t=$Dd-c(&J+644KenN#>UDqXt9Aw#Dy;}CZ-yVXVS;UQsqB`Ks13HDBf;3FJ zC1GA7me0hY>k?Chm6b&klC_LGHjuKBIrHwz2+)&Ar$+hpRqgHX+HefITc(glD2PH5 z?LB1&!;s)HkVoB#R2sMq^~5U>w#^2Oqh;vY{F##a5nxR*ptkq?=-J|yo#3N=hbjfj z8U0c`=m~TR={y!&r?dGSPb^Uy71kPwNDjsR3Q@G$P_&xFA{lfW5^jB7`j)E_(j@%d z+uHv6A5Y$;79%4gCr_RP6{>Rb-X;FKeuY5@Set-gIbjC^>g6SKg+)hdH3)m-WG14# zY6%?&H*+Ef3|*R>ARiQZ$E}@&`$?yF0_33G4!;W2OWSmu?_T&!^)_!?^4Lm3V z*gkYR<)cT3HUi1)9a>!E1uvMU9{I>_(JdgAf= zYKdqx9ZkxFd}mtp{51$l7tj{rY~l5*aiIR8jyjuFG_&A(^UB;%SM7nVEhk6k2~^GJ zpj&mXNxYviJG_y`8r`|oI2dd}GHB3A!L{+@#hk9Db61~;P9?HY|NN;D@>MK#?BVTl zsrVnyu3U0NX1vKRiwyevtW{kPMluk+7@OTVHNJuZOe}9aw5#JPxWEa|RZ$>?tt|2M z5>XDQP)OFnBGOg+@b

F3&<+xy`8V?Q3L}`jaaN4a^Qve4|Es>dNA>I|u`iI59u8 zr@uyP^!ww)kPVMFxsKD6>WOU~&%Jn_7mmpc>Xs&}TBoV1wpTaRy)^A#52ZlG$Gy$b zcH=;e=DATf=#dyCJDNJ5(MTN5z+2G=X0I>kISwADdW&)+RGs`n6qe=)|Iez^3@bEA* z9U>U+N{E^DHrxzmZCa@q63{+O(}RP9{1Oh@CUamn;be}G4%EbiOD2>;I5Ul2kJTR> zw3Nbdeppr=L-r9j!kla`UP){i({1#^aE9SyXapA&+ii+|L^<^NH0`QX}&j(ZI z$I&(xs<)@d!fvw-cd%E?=Y1Y{ZJZ5PM4`O6Oo2lJqGCrWF7S&VwkP$t_=5;h!a+q&O8JL@quE;cG0!;nSrh z1=TT6PN03Hhh34dxDm)rT;`8L&eCOZs{E_uSw)n5wt{L>C|3kheFRlvycLl|o;*(Bc(s7|Nb zAzygC>)>3+O{FgD^&32Sdv$($sq#Y)yGdy%@d-B7Q@M;>tJK>Z3^Fo?8VJ|7%IrPHLjsm21e*Q8Z)-dSy`bsPB} z0d&F(31-U-O0y#S(2j;Ohu&$_Sd8j2yTN5)*?Y;ij9KVE`r9WfStgtH4K_9K8UUS2 zBwl%a==^N@>_pTPiZ6uXee=S)c5I@z``CHDc58`k*S6LtpT~lSaQn`fA~$H8Yg`(Q z@}*;g7$}}u44(SYD}V6V2l~f+d~3EUtB5I=!S9Bd!P6Pl$`fOO2iBB&!sviTA%gIH zNZ6;-<}IzYEdS~o#p89>r_YZ0ceS{zI{8>I(=`@!s?-1a{MnP;ql|7ZzA>+h<{gG=VqnvpMQQZiy;x62Gz-t3D1^} z+L1XQMwsv2(Zx^&CIBYooxI?_ych~_~4oz zS+&;_mWj=lY~SGM#x0Isi#{4bZBfjI=O#kX;2RrjYO2dLR-4}8%IVE#W}-4G60gbEZ!{0xT#5fbwq;z9{q zgN(ULFJ*flS+yk9F0>PJMgkck5QO8~oZ$j&O@`#$-ri0sB5;rczhERBMm9AymQ_^A zslvh298r6+(JGCrO?yuzE6?$Irh)5Aj~A zsu-rFZ+PXG{9dZ%)#}3d#UaH&lA+PqtTsEkba1BVCy97C9t$OtaWOc`Fky)f+0ycZ zBn9YmwF2_@pm(3}>twB49T@UkCh%M{)fFSK(}#iZaA@3OfDuqw#V~Fv%5Z^y7asB*>CI`-IFgJlYVckx%@7Vc+Q>(UBR=D3DiRFsbdwYRPr5eyLS{BHKkF<;jDe`_CU}LCxa6kRs)@M(2J0)`mOwa;OxI~O zjQLW>F9@<64qh5u#<@_!W>n9FguW($RQuHd4;*oZkgmxP;1M8rZZ`7a-J4%MH~)rL zo?cj7TW#G?Wtl&)$vozw?Q^=2gy<3yD#$ z|E?B0esW$O3a)Y+*H@YS(e#8jPAj|hGRO5zo0#Ew<(CqYLFqTLM zqVYxaF~f0exuw#Xsf7T7_UT1`clQ{k4L7t`1HonJbtW?nRjzSQo`R@S4UR9=S50oH zs5vy4cWObCq|)Qw=x0B;eln7KeH?@rN1>Nh(dlIJo^}^D85hDyjM5 z!?54hL}wdJd+R8M?*scIUw7P#p3-vJtbwW z?)9IO#}`x9ri{Y!mQ4LoXYvu~UnXN`sed*?{X44JAig*S6e>wIIEPtK2q`|{z1y^z za+`WCz{)LG@4^lEC2Q~E$nW#>Unb6epEv!D$NzP0fjs0c#@rg21qKo0CRRpRpGD&F zNIDr!Cb2|@PHGx?m9(3IOiwH~ine2ln+S8N-CmimW_^9R>zyN7A^tSm170QG#)^fv zEEd?CGzaG3%d$;fU|8`y$j|Fqn){M*jsI+oO)H=_2wkn(ZV$cD``So+Yh8U+j(K=_ zy-{5GU(h*|gd|E6+dA2_U|Od$V79DWr#9HlCFP|h)uk0R4yW5Was{Q@4YR~NJepHHiE6+ z#f-MclM;5O<+9mO@?-7VL#KO#nE%5XPznW*yv{Mbhc?4fcpzL_UK%i09`5sCXS1{1 zpv|TJ?&!v zmCT-2=j+2hcq6M{gvWgt~Cl^*Xl>O_$^GL*xbdTP*y{*h{n#EO( zQsHvhc#*psbe_1iXTr}G?fORN*4FaZMk5x3W+A{jEMv&;=7(bG*+8Pkq4S|^fMOD> zq>LP!jM68hQ7Gm@N%-ZVw6Z@c_AU^Yqw#8yrz@IVqe&D`qZ_L&w=~+a->sfkf`^K0h%r=`O3lvr@)TqBd6= z)ar$qY0&u3V%Z?+nT|-aP4`5&!m6?8FG0!Z%OQq``F43egs`X} zH<#0S^C~ObIP~^%8~y-q99M3E>%iG7{AyyeEKdWF@)IqK5s5TkqM48Pf zwZH;lsj@KBixbRLE@vWnT@iLFmP7bUoP46CFp+;=Z}MUkVZ|iHKn_hp#0L!Jy_#H% zkUuMwl8-~>F6p&GS|jR@xNIq$Qb8#wYcIhP^1O`Y#ti{=tQLYi+eGdy$~bgP;Xb+p)TfmE@y?aq}*LvZn4@f zaSN4`p};gVdQzX8Xe!fK8et$PmQ0Aejf&;u+c&m;{oDJmlJw-sle}JbnXeM(o!?qt zX9WRc_nqB;lodh0SY(TYQ@!)?P%`6>rIABd$)bPsXWwVsKq38+d$x{hDn`6`^2@EO zH1Awn0@ zCs#ZO5RpaJtRLgb!~oxmhhrU9Zqd{`^<`#Fr3G6%F$lf6+A>c#83;!ClI<4by7~$z z6PTXfxuN0buXV?f?1tjQb6y{2=9CJ%QCn7Bfk*gMJeiFN=Fjik*J?8x!+ERWIOrN* z5KwY_Hn6{E{^Xdi!m8iY=xS~J;P;CH#^j?otYXL_ib$}?_W%hdLl@sdDipOp&Glviaimz z?6+^J`NH0YbK}AP_58?-y^FLzLhkPAaI@PqxEK=yBU|b!6drK&t2C&xJ!5kRyT=(1 z(|o@vK@p+t{GLG1$lOQvu6ydhh2D{cL}nIj-CkXyVOG_s<`#noP7Q2dTW?_5sMnxA zx~i&VVjc=juC=xwV~zs73FfXz(tS@oTm|By357z8sTjSxho?4ZhaG zBqiNNDo?hZot-?+a{P;bxl28HWQlxI=PFYDx)|%m*~J#PHqKr=^|EmMB^?<3NXk76 zo;(m0f#UU8&1w0P5l#GGguR|=Z;oXgFj`8)2yRj&wP`U`=liK89nVA>ycm?b{&J$Lu|otw=i#UF*%aXjwdjoCQ`ADUXm(VixB7H4oD&% z^NwC%u;4!EKj87i((>u71JRdA!jX}w^w~14Y557od=vGe-n}3JR>Dz*%C_H;p!)fC z!1a07)|-q8&0=X`Ai~obzg(CElyYV95t*MzPY)DAK+|bUnaog=Zvznvmu!@Ut3xS7 zrO_so#_6d^o5fsMZ?OE}ym;M`jzzSoko0|!327mmYO?59a0FZzPQw-K7;2 zUu`5K7e-17jew6#S+2>wlnDk^5-#J(NFX>jl8z^&nux_z=XP~nn}oAji)585o;io< zlKdl40a}13j8;Cz2jYsvsf@t>APE0v{763=_sd zxFyMW1cG-a6U(8emt(0T!wdbGH+s&rwz;*LHJ|jJq;=@hdw=VXOrdd(ieoOfxNQGCr+BKc0&*qfDo>Gf|+H^g9v%}jqE}rO#hALKf!kR5~ zzqejBKANTPDF25th2|pWd9WOe2sQ=Um!o84RqL&mGPlEBWplcn?o!dEC2)6Xk$}JP z(V@Aq6L#%>b+fVB6`QZO4q(<~@+zge_*7`}hN zGZBPjE3mC}fS(vykBo;oA%umAU6GvgA=ZVpog5vVP1QJY$_+LRCxmSvA@+tzl232b zqokhdo{O@lF|ZiFW0j4Z0fhMOhL1sumD-IT-QIxPc@SzM0Wm6L(y4#zfi+We{{Q(8 zFNR_%gFzRK#O-#|Uw!GJ(J9~l{l{gKbKXQMqEVZg%75^}DZca_9d-L|?tlg1b{GSp z=;*u;FpWr_=>$P9i*elGI!y+Fvt{xCyy8XwEe$opbJzvPQn+$3EL)rpNb(6@fnKFp zS84j^bK^WLBHO;GK!Km^(Ei}5!*!*$eK&3F_35x4RcgzDU$KUV!y1_9Hlu--i6oLx zS5`Nbo$Q&+oawr~z4N(|?5Yw2qa+ED6Vx z6N@2y6Rj;#Zmke1{^HAg+XGO((!c6I1@j{eK7dZZF_aRJ57KBJjnSOR)MPT_(pWa| zf(%_9g*G>LN>je6KkCS(<3t0`0LPh~IbdiUK71JJNL^hWkX;#^mUVqI7n#jzEvk-B zHa55EC!d#{dJ5y&@{)D7=0}({z}d|8Oy87ymBwV^CK?QuLL99u(Nduwn2qrQn@V+1 z%L=#14aAQmTY8E@I42+n1ol)_;-(khlFof$jN8cV#!H2am&X8HK%>8VpM_j(+&6o0 zP4{zozw7xS8^!jlGxY4UOj8m9MjC6{d$++5k=*FPw$sn|`NE}BnD7V*QwF?66jpAk zFrW-jKTa9W{UbrTcMauk`??qaW#FGPZ>f}fpDI5y0i)0$E3I0F7j4;4L0HbVX)vdlH z09&gfVlZL0Y__HQ_s^lA7?7w39n$5;#tV6SCv&kBRkjjdD)bfOtkf=H1$tIXVMKT~=sH#@6 zYK`b9gn+8qLXO9fpi`n0!Y`6YNkmEnc6HNyJzsjOqoHXr=*y)Oid+hrF`_c1N)BQ`N=~zIEVZ)) zz{MoEob{Fda+?V?uD8Wg(^}m{Z#Bdv9XePx-&`;pb(r*0BNy@j>mbUiS=)K?OlEVa z-)+WKq75;uOj;?zV$Ai1Aj}5%IT080rIkb0oB+A;aB<) z5i)>=^PzHR)7?W;TN_)ATD3o&g`;oLsw|o`0E^dv8*iN=do0hv6+S71N~H|VNVb^6 zkW8`}9I!*}Jw6*34sH}`y#@(r?k^r)gRJ0-U;Wp|Up}*IU6UY_gkyK@-RQKN{?Fsj z|M2kxGMB()H6?a`B$l5K20EsNtY3-l!@C0Vu zl9QD@YquI}T}E$Uv{i{odRfk^2ss-uWk{XDwQwKei7aA!6hOs*k{@YM%Zh`Dz<})AI_QMxWKY665sob%%vw_X|X%BroiSFj;v=`5jGu>xzU$wfe zOmpV^)NSR-U{WCuEjHVXk)&?i7u{KB{hN=kUR5qEBhC4fKR-G5r%w+~_+u_>MWquL zj5&;mhoS9;;&-;YaP5JTS=V%U>_V*CroXMZ;i0O^Of>YfCl8E{&EbS59F52D4DSu5 z!s=5!lOMRX2hWjQe8p~SOw0-mF;yl(xQkh+?PNiq^)mKj4 zd)F2?K@sf0us-3)%A6Mc?~sew@lBsotpg=4P2qg{ z8MRVxD&TA!At)f0C=pNQioPW*H;W-qlKfzE1KW0R?^tjb3Z=sV zGNdF@Ag@iJNr`6RDIkwYGq>g}eGo>koAR(#Xa1 zoaH|@0X_&6dhG%ZO3f?9L(ZShC6?@tbC=7a43M3?7(eiy zfOjz(@{W#wQl3Fli5wdfpUvZ7_|UuXAwi{b|t3Y=-NNou(7hL z9ExEMomP{CEzX0u&yv{~&=o84(N3;HA0 zC$9g6lIPgSz}(nzw_$N}i$%q*E8PkMcJJ1a$y%MZhFbSka5hD~{`%_(t2S=j_-++@ zc|K;`Im+dgW*Oc?@GT%o^o3}6IVvsB7Rb_-LNV?M-K)SiI|`6kno;!5hr6cOjTCQz zxxZGp9}wRt2OWYJ{Ypn&ZUD{PzVwlSnOGfyksDI&<>q+{Q`d5m8-L#y zEg)7bMF)~qKDMHO8>he67NE5?irna&cer}b?uS03X8u*mk$3SAYo>*=nfVwxg=Z*s z4@1G2a8wzJhWxlZ3dN(W4>Kv@pCX5UIaoeSqrxhpKx54R!h@4Wy_isx8O7TcGyKw8 zSU9F~>as}A;`O!ayz^HHrLz_j3q3)kmunTWsaZNABHKD~|Hdzg3hu#RBF#x7ba7&FQ#&LnW-tIvs z9UB{+89w6DFZ@Cfwp1~SQ7hK8RzAP~!c}UD1n3v-6%tFv{flvjUIqI(l*r<+2AgiI zt60E@wNIX5Cf4&XwZsZl@YQA~r}fqrJlCzQGULf>A)18e!&9gP)m|9cEPUq}>*e4Q z70J195^P>)Qenb{?g7=L%A)zoeN8CCwYHT1_=jI9bDQfc@lUE}p9C+7KYH#=z#G`M zq51si43%8nSPt7^&#u)ko)|!~L1%^uZ8Pbxsv*EPW#nYj-q1(x=$!FJYRYZ(6^`n1 zyWL`#ocDDN&B#po4J);>y3Bgw#RFN5zO=k#b8T5tYx1PzRW6gDaodfo0j2^`qe@X; zRq^n?+Z)Tx^Ye?jP*i5pgI1pQ&*=|hfPzkn9(T}jU@)TN-;1M z_88Nv%8Y9&jr}u`ZycQ1+wNLjZaO|5LJYFD%6iut*Qal;!Ep83I-C8mo7nh89<|(+ za>$`4W&%&VaOT3$9EQXH=F1OaDAT>ky#Jg3;gf%Lr0eJeMpeYS%j@?DiVqe5J)zf5 z5AA5Je)-V(me!iPx3@X1#-|Qlz_<>)a;0M8x!1a67)aJ@CjH^pPK}N%hS@2S=>(G= zWB)&V{`d#>34M{u?zlVZ|DTn!2b+RBtwl{bA+mWX=dO~I%T#(e8L)+wHgxyYfIsWZCMrV^7!w!kn6$Ov{zx^rF|s1>~e^}UQz@pgx}>` zm$fBt;Q9|b0f$(`bL3C2ke1Q`2ofShAj9RA%D7V46*5~9^j1?{DSn|f3MUr}5mVZw z_M{29czgNm^1#a@T^_QW`YrsuyrAn$eD%_=cvlL%;;pw-=sVBnI*a?aj|Rw|@`k1w z@7?|IW7;BM802taQknTTTN+h~o3W~MUo z1;pSGLWCqu{15KI?wiUI_l?cQ>^5_OXC;J%GNFf%=kp4wxpm#1WBuhDf+s7n&L-^l z%Ci_l*C{ty6jh=5Q{$%kJ3rRc+`?z9QERk1Jyy2`LFQ8H%Y_QR!;_hr+0nj3Hr3R| zCbPy^Dg>PGq6~XQ<&?^fmYNk|D=u-&v?AnPzeJ)7vc?p0IH@c(sf=)ekUeG;JM#Os z49zI*#ly-!`N}6CxhE5;a5#o#l2WxvXVh8j`VzH#b0T|wHY^Fk@mP|7vtkf8sFcFk z2xBU;W{lj+WF;1Lxmok+?bSAuDkGD(mzmlt&CIWzt14kZOwET5o*c!@TvLtffm>Ir zHOdd)wP|WDuy1FieheG{03ZNKL_t)C!(x2)aL?GH|ISU#AKbm>*<+BXW8iGM0!|H) zSi@7I2+FdU^vNV@dWo)|=r!*0^q%!W;CnjB8^ zvnRZ}D;&qW2Wrd)tYNHaDLXcv=<}%hW0^LmqjOFD*$d-plb-SR1GlXXhNx-)(=@yb z7wmGC0*Nv{U&^e;MQ<3(dL>p99xL;#6*l+j(drM}z5yKZ`Ty~wnQ-ROHH}9nqqqcW zD>KzOv~H_zIFw{T0@;1Ym*{ZmY0O9}dwAG?cboH5JF7aYt#xjLMbA{5otyXf4vzd3 zYihALl#f@A55kg%?9S6wme^iDKN6br@tFVqL)(Ay;<;&0;D7wiz5nYsx53pp(z_t| zA-Ir?Wz0&|_ARY@ceJf(u2{ROg7vi9ZmcY|VrS4{H-6>oPcaF;dUllWP3#rqWO#qX z$^6#Vs)Hv7#GU|$Qi)y5C!Rm{?;q5L78l}>Pqg{HWg3|wRjr&`2;8@^V$W&^$PBRf zwx@=7y|=$-GX$OjMiFC!xq+|<3xKDnMIlZG>;k4&uU?&B_Q>XXdbk0-1YnJr84)r` zXlHbyfH|Zh98g_XRRPhDes^QX}^P?<}^vomb*kw0Kv z0>^ltsjI6iye!6X@I9h#iNpfsLl`hw7D!93YKq$v(hKtS6<`_;jI>k$nioedoYOrp ztHQdXw4|i9!qAUMTPANV*B2AM3z6TqC)dW=$SxSig%}ICoA*G>D!)LrW?IG{0_0;z z5JbrD0t*@jheR^YLtkNHGc6ZGw#Y>6QHr~Kzv4Q7r6!ugO2Uk)L-$!2I450gJA5{(){q-R#~fcds1lZy?-MZV}li1f&X%Y3#dnq4f2 z_|h{L;!s;Dlcj?5Z7V{=hO>BT@mk@5Qa@fp{#em03?d@irS=zu8In;;5(pTVf2};J zh?9RKQqfWffyI}cvtO(h<%z;DKEmW675eM(tCnX+7bD&^AH3Jvl_6kdWs82&}Du0-#FE z6vu!5z0`%D*1OCpfy%^xWK~*`Yl+8u&OehXEp1uTSzPG5e(v`N2QD1ZBnQ^jYV{Tn zc21UB?uhStVN!;fTy2f}>UlFu@r}RP6m|8q*LfEUd%O=C9b?wPcxEn?9`fSbQQ$+y z1cvS{NLa(NgtL-;3|@;dZ!CSCULMRTNBv2d)~l-koANW$VMcYRMsznVEG@Vq1|{l} zY%T!7*~M;k>pQE>3z3XUn+@iN{Ws>~C+ElAdd0u~fhlJqTv);3j~K0SM8boMvz z-Gnrl1sqMWFjWv6+}u7k?f=JTj=L>}7O&^AJGXnX zx~|FKOMOwsqCFihMEjEgF_PmkeIb;h#heDs=k9E%cN;vx_}@R*_y0cAcYnL%%<+@m z<8wmAGMl?+Yil%-Jli$GDne^Bme@^VA~WkDZ#?pq?=A$RwNA^Hj_UhwUHh9m${yTQ zQRcR_S6iyxtdbbwvnU8rG=s86t$5|=;IoG>{JRfr|NJ96@88}2H{W~hnZvzHQxEN! zN(ZCyj>a-Er{xDs@p+=c8;JG~Pv?1hIi^Ocf$u6ZOh@96+`Db}))t&?G3<-Jb>p~> z7La(-KxAf84xlHWKko=c+t$`rpj*_|)Uf;pVM|jR5fEl`(9}$kAaYiNkV#0+)=+={ zfMLT%b!4I3VNR`T5BL^`#-`AWDs=}|ty<+-Tp$xh7~~z`X~r4E)rilf%7XhT6tyen zQ|dq<6m98kBKZb*6svwA4rf)cX3d(ygEHrm1Jy%FFL6!^x1617|icPWWu3TUME+I!`q?<(9gK!mnGU~9{YS{*;0>T z9*IU{yKcJ!@J)A=l5o=c$6r+c(eDds2L}_YEEo0%FykOa;1^*}&es^9 zQ0vSlli0Y-A9N$~EZ%Jq1C3S{DbkF@um(e2&ChF``h1s`st@7W0q1hK1)`U^jc|`hd}BE_?DVQijz=k zWA63>pl5S96;Gf;D&19S)G2cX-UvAg4aNF|@3!!rOW9JBVre>Y_*|t-D30We6vdg4 z8(-!nHKAFobz+Uae85D5!wDgBIRNh8#b#ljG;T|$wf2~)A){S-iOd+iN!g(Q?q zt4f<_QXqW;|5$}jo$p^~vP5hxG9#EF-=%o}!O21nztSgsSgKs6Z!sR-^zlu1J$UW! z^Bq5}p{zbM{wmgv#WGm1WCgiII!erjsmZQf?!y-ICEJTD%A}IpAN=?UwK{Y9@g}zk zg-9tv0uG5t1__IGfaQ=?f_k7f0y{MkMB9pg$i8Gqs?l%&Pr&_AzHcZ3vMgF1@ zwp7=2roP(cv>7~pX%TXTCqSNrn2N#h3isZnAmJ(|KmLg!SuP8wu!)f$l=6Y#Y@Dhv z3WkNZo}~i=9SA!o7Z|y*f}OoEA7539;W))iAkpN~VHvQwM2`|AraXYods}T@{KDup zP?ZNgNx~^e8p!$jgcv2Oh^NxN0F5A|zn^|!+m|2PgHQVxUhl)@3XAC0x-v*0_ibzK z9h+Ya#7do}Qh+})@;HoM;6N)Kkp0SVw1%T`jB$N%jmOgxQdJ z9K6IY2pd}^BnLkry(TM)U_NCO0;?1w4ag*17G`rQgABgdR5oCMKtK+X^2;9`m=0C} z5`Zfxw2%)mQDC?{{*91pH;TO)hGk)hmMMZEtL38630g34X^5$$(uSKWr?b$wylDuU z#fCLhkqBb2Vk||6AXe^$Q$$_4h_SMT_ zSN_X5vh}`?oYb4Tk9@bysm{pN0td0pL5*$iMEYfFRsI`oZ0n; zQo!i&@bvJ3I%lx5(;>s!4n&cEvm=`=aU(4%z7+5AvJ|S2aH9m;oSSBfTTPOomw{OqJzxwinP&=MKc;SUZ-2xD6)q1Vs>pwn% zp}cKvf<_FMJ@7_9+-SO59NU7B78swYjVN%*CXy(H10ibyD~`F58ShWXEfmw(j4)4> z136UQp+U7(yS>5aq%TC3#%8=FChhcONM|!NR5+a`43`B&f56NU)<(&S4en?>5=*UZ zEbr=>c3vpwGVauis{oc%Ncj(uSjR+EpQtq-FzVPVINABGeio{=f zz4seGKKjb*J+xO-eOcq06n3e*XTm{N7&-aT@c=$4cXqfC6y4kI`tJ{|!Y|$%1DRwvk;i~MQ+*HG(6?yLussZ1j7jyxmw(<+l+{o zSwNmRKOT&vW)=fo{Zm*@L>c(mLl-j8&7rl>w)j7XuCowqs&aOX&e8~9{pJhD&y9cM zk01Ht&)vOwb?txu`g12v3tdl~O_n&!!o?=7jqn;@PHg<9GoeVb#9{b%kM3EFD_suL zcTf4WrPlxa>85q9W!Qm}Uc!yv>u&+(S)ex4+5AYd?{K)HzS&Z$LYsR<4v;s7^Zsk- z@{G5P`b?(MEYGag=}w}T%`rBjk9slQY^C+W&*O)q+>+beEYp;O|~;H ze!bHsq>F_vgyBC1<;`jD@Uwq;sC#G2-jCv^@zSE+@|8aj>OH&PA|Kk?W>sk+iqIb} z>5XqW$G4gQ?}mC!MX7c0%}x7}C88rFL#%RFuEXDIac>eIS#=&-FPV}DXCvIr3r57p z%ts96nxurYiYqazO%Opa>!}wul06aO7fCw0XJaNM#{055l?Xx#Zc^cuM)tE)I8Vtz zJ}xn;Y(^;5++~E!kJwnB%0e}fm6g~DtAkzYjbciv>TJ4;HMYg{S0iv3Kq zZ>zMip|c5#-L$o>2D-(D)~fSk^Gzkz`K$@$K&3nzPRWP7nHMiCwpUoUx77UaAG{c5 zk0Kb^&|X7jzVK&1`Sy9yxMyu;nOToRP+_SlX7zW_@ z_yp27ENznmMox|&KfYnZ2F?*pLJna+oJkz1Ho|E{&R}AR2wwcyP*aegN&DO2dq^w@ z0wn1qB2l;^KrbnuLMrB5@&{xyj#1~retRLpjgzalz{;8R>al-`cMEg&FR>2qdeJK$ zYQ^QdUfhig-?J@%1!8X?ctPLR_8Y%bQGU^!$iG2_*<(psDpL_Je!5o_2j)RVOgV9K z(I0RX?V_xRR(#pHbw{tsdh+LgwayS!YK<(3q`Lw?DK$-Qb?L&vfp2w9Zu&s`&3m!B zP@MKU&%t(m7tV&J54YDTElv=2UhsLHiQmO&Jdsx0P+M}~=-^dyJ#^?0v(!yD-Si8> z*+`V_dV#svK(OnSZoLZR4XWmshEitb;A)5>rAE0!uNa?=40wgH-g8PtZMmVd41eex z$YBM^BJccs=}}nqb(ZR1@AY7sn*B^9yuL`vC-fo(6efQd9dJ%C8jUD-X|FPst}GF} zpxSc#x>c3_5WdXgTi4X?KQRdDS!mj+p*n*fV149?!rAP)#>(+opI)o_$nEQ%JJuJ9 zB?Lt=o=9dgJJ#2Mwy}$L=+tm$OU2F&jo7EdV##wy`fuJ)f9T}!VlaAAF0U%Fne8SF zd*5-}CSybG2i7Q_IXd~mPyk0cIJ0DlfyZ5~!Fb>9b+e29P$cpEvA)J~=f0a-s_Sb` zMwO@ogG*SdP$i2Fno9bObED8gga#q5$M7j5lO08r9*LK?*6d#2_`vQCC^5cZtlVzc zy}7ZhY-wu_5d)2Qx@YS1|IZU>^CTQKLX@u892oL`cvIE3j?$w&b1Vib)x0mJJis zjYY`c62#8G<#=-KntEGR-OCqzWHmG!*xF&n>WU<^_KJ-QA{56Vhs)nuaiPCj=QO)2n;Ke(Ei~@k@`2wl7x8fZ zZ5{*`hqkgMeEzgmyCh94E;lDvm!v&Y-KSkUb{B_V<-E0H^_c0uo_OMatxZoFO=d7z zAu@t(EJ>}`CuZOH&KnmFx^MYNOXtSC{In3|8Yc^j-u|waDvUGj5JeQ~e6QikLt84+YL#$#E`*zMr%s6rZlE)JOq;9BgOicIg(wP$!Vx6C zqP+2b58k^jN&|rSgc~%<)zBD1(Ve^2{>P8s;txho^-iAYpBe-mMiX`mRz6@jaAjE){E_qenh#e>ppz@dV77XS7SXkov5;ETI+1s8$LDSJ2B)H zQudt8(^S%=&YkI-8lUr1gvS@UV?$F?Yx7_cFuw_c%XA!GvTVTU$*ea>>uheTUHgIU z`|emv{O|qm-@>ODs+p`J33E7I#JaZ1 z(aCv{y-I=mMxDxtzswNK6NP-wj@9n!+OzZN?t|kGc9w2fReR)QUqemlu8j>N6P_1O z4dO%oft?+SF1cQ#X6rz1F`Vcf|LB*$^O=3y{_xYc?O5Lsi)X(1!vlhFlHcqA=o>Bi zmQ{^i^LVot>xzj$ylOu9(6(yWJ8Yv~oD67!8^`sv0H~COox^RI8VsP6MsGJebklQF z=|qNkjhPFvF(=G=plWE-2#J|$CDI6Y5iLu|fp3gS5I}5hUM1V`Tk^$TxzUw0)lHl} z2?+KCJrW#eMutOznECwq^FV5tp9Kv|axO4Kit7%Oo6;plC|3Mnxlj{|L�#A+!{L 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 literal 0 HcmV?d00001 diff --git a/talk/20110921/parent-foci.html b/talk/20110921/parent-foci.html new file mode 100755 index 0000000000000..e14a51d1564ef --- /dev/null +++ b/talk/20110921/parent-foci.html @@ -0,0 +1,82 @@ + + + + + Force Layouts - Parent Foci + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/patent-suits.html b/talk/20110921/patent-suits.html new file mode 100755 index 0000000000000..9d499012e7b22 --- /dev/null +++ b/talk/20110921/patent-suits.html @@ -0,0 +1,173 @@ + + + + + Force Layouts - Mobile Patent Suits + + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/positive-charge.html b/talk/20110921/positive-charge.html new file mode 100755 index 0000000000000..84170351a05fb --- /dev/null +++ b/talk/20110921/positive-charge.html @@ -0,0 +1,62 @@ + + + + + Force Layouts - Positive Charge + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/quantitative-foci.html b/talk/20110921/quantitative-foci.html new file mode 100755 index 0000000000000..151a9090f866a --- /dev/null +++ b/talk/20110921/quantitative-foci.html @@ -0,0 +1,88 @@ + + + + + Force Layouts - Quantitative Foci + + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/relaxation.html b/talk/20110921/relaxation.html new file mode 100755 index 0000000000000..0a0134b8e463f --- /dev/null +++ b/talk/20110921/relaxation.html @@ -0,0 +1,123 @@ + + + + + Force Layouts - Constraints Relaxation + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/ribbon.html b/talk/20110921/ribbon.html new file mode 100755 index 0000000000000..fe4c10bb03e3f --- /dev/null +++ b/talk/20110921/ribbon.html @@ -0,0 +1,83 @@ + + + + + Force Layouts - Ribbon + + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/smile.png b/talk/20110921/smile.png new file mode 100755 index 0000000000000000000000000000000000000000..963a3dad5f3e7d557efb018155e2a58d84a10ee0 GIT binary patch literal 725 zcmV;`0xJE9P)OVHn51@65W|?zXO$ zPy{O*QDjI(vFpKDh$2Bc=%I@zyVX(fqV*RD-8&UUbO;n7!6-KDkYI#_h54&>T|vXO zHCtV0-@8|tK@AHh%TH}8%@h8B3DMEbJqZQheLfrk#c!KdL z*E{>K>cXA?ijz#bC!)PE5s5?l>#262i#a&?Nmz3OX@a`zI`r5sfSnQ@I+7eT4s}5X zYT;~ugtFG5?Hy*-z^FL}Aq`kdPhfo>>uk8DhbjP>67^g%X7l5aGB)AtqyhO2%C=}= zrwmaVqB;t*x*1=`uNUZ~@o<;^Vz?CA?lBtsL)yv(pvTpE0Mgn;T>^?bYr9CGL>VmUfUz(c(~S$+cne?TI0$I}9ngg8FfDIX zM9DTEVI{^Tw6^9LOD|Ryoxy_RAXWjegrZlcW8=lpYb?$#d&w@SyjsXCtRwYox$KSy z#!by%4jiN*i;VneNuI#mhb*!StDevmET!|9pUESh2tybF=KCNm%)46Oj}k^?Zt{!~ zi6RhOLCb|0rrs=K`dyZ;B!c?{;_+Gp115ao(nVJ0!hy)W%lD*-20|!F!bV!1>#M`I-LZ`Yyl#g;I#O185Y;00000NkvXX Hu0mjf0U1 + + + + + + + + + + diff --git a/talk/20110921/states.html b/talk/20110921/states.html new file mode 100755 index 0000000000000..e2d35f96d09e0 --- /dev/null +++ b/talk/20110921/states.html @@ -0,0 +1,113 @@ + + + + + Force Layouts - United States + + + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/static.html b/talk/20110921/static.html new file mode 100755 index 0000000000000..693bf93e1f731 --- /dev/null +++ b/talk/20110921/static.html @@ -0,0 +1,68 @@ + + + + + Force Layouts - Static + + + + + + +
    +
    + +
    
    +nodes.push({
    +  x: mouse.x,
    +  y: mouse.y
    +});
    +      
    +
    + + + + diff --git a/talk/20110921/style.css b/talk/20110921/style.css new file mode 100755 index 0000000000000..67ae4b493dbb1 --- /dev/null +++ b/talk/20110921/style.css @@ -0,0 +1,55 @@ +body { + overflow: hidden; + margin: 0; + font: 14px "Helvetica Neue"; +} + +svg { + width: 1280px; + height: 800px; +} + +#chart, #header { + position: absolute; + top: 0; +} + +#header { + z-index: 1; + display: block; +} + +#header { + top: 80px; + left: 140px; + font: 300 36px "Helvetica Neue"; +} + +pre { + font-size: 18px; +} + +line { + stroke: #000; + stroke-width: 1.5px; +} + +.string, .regexp { + color: #f39; +} + +.keyword { + color: #00c; +} + +.comment { + color: #555; +} + +.number { + color: #369; +} + +.class, .special { + color: #1181B8; +} diff --git a/talk/20110921/transition.html b/talk/20110921/transition.html new file mode 100755 index 0000000000000..ad35d284f2dce --- /dev/null +++ b/talk/20110921/transition.html @@ -0,0 +1,75 @@ + + + + + Force Layouts - Transition + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/tree.html b/talk/20110921/tree.html new file mode 100755 index 0000000000000..62ee558baef74 --- /dev/null +++ b/talk/20110921/tree.html @@ -0,0 +1,73 @@ + + + + + Force Layouts - Tree + + + + + + +
    +
    + +
    + + + diff --git a/talk/20110921/twitter.png b/talk/20110921/twitter.png new file mode 100755 index 0000000000000000000000000000000000000000..38d05450fd8c400d7cb0b6207b4049e4ea46471b GIT binary patch literal 1089 zcmV-H1it%;P)dbVG7wVRUJ4ZXi@?ZDjy9FETVQ zFgf3W2idN&Q3k%YPx)2nKLS0!DkuD0>oh$zV z7b>_A7lpbIe{4#GB4(qA2!f!NVlWb`NsKr#(_}K4zIpfF<6>sQOlRJmbe#6UgW=A3 z=X~xt=YH>uBO*AC1HgqVSKrQr;R`9>&vP5hRI7jAC>B3{>DYs>H`bg6z{P7Tzj_A- zX733CM%*-BD%IEIu`z5a&7V<3yjxj%@$jMh_5eQk>B>9ViHX-9%^sj^4BJW*i}V%1 za~yJRnrte?kL6v;>+A2nI`{DT6o4C!oSqH>)?-B>RzxBg=<5@SP>2=lv0^$1aKn+) z04@N2kQbn$O<#B2$tv35xoPl&{2qW3LrH54{VjWvm9$1lZL=#?tzH4Jj-T(hEe#E3?C*3jO*4QI#CGmIuWjkzaQ1&` zg|3&pUIDT0#_0g?=3AE%{r$k@xo3|vb9gKnfF=MX_8Gu!2M8vPB>RhS>C3B}f8}JN zi)uavMg*~GK!*x+GvnQ5jcKI00$p0r3&4Pvw#HPgEs#B;j@F?C-IAX@F^RIoRLvF8 z(&ZR-sKEQDl9f=4@JAF;wcIVbMF~Z)o~RB0Kkw{XUg&OG+K%C^wcwYP>)by*+&e(a z40MrVymlr0YVjY$amaYJ8+|+s2)y*Z0a~OumTsrOZCjF&JPV5j#MDGp;wqS0lx!x= ziHF9Sofu3E88^4Uh+T?D2Lm>v_V4}i>5l$N#eB28$-Vh(V$568fhQ)@e7fpbJX+21 zJS3CBP)+n{)d6GIfvKG0_}Bp77xxbl`d}nV1~4}ZktJ9mRy>uja&#!*iw&1zYzGNF z;mlOThD!EPtup{yu_osxPx0@Sh_OKP#*B~e*a4~{{8qV + + + + Force Layouts - Position Verlet + + + + + + +
    + +
    +
    
    +var friction = .9;
    +
    +for (var i = 0; i < nodes.length; i++) {
    +  var o = nodes[i];
    +  o.x -= (o.px - (o.px = o.x)) * friction;
    +  o.y -= (o.py - (o.py = o.y)) * friction;
    +}
    +      
    +
    + + + + diff --git a/talk/20110921/world-countries.json b/talk/20110921/world-countries.json new file mode 100755 index 0000000000000..14d8bf9a59ef2 --- /dev/null +++ b/talk/20110921/world-countries.json @@ -0,0 +1,246 @@ +{"type":"FeatureCollection","features":[ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-163.71289063,-78.59559631],[-163.1056366,-78.22330475],[-161.24511719,-78.38008118],[-160.24621582,-78.69356537],[-159.48219299,-79.0463028],[-159.20806885,-79.49697876],[-161.12753296,-79.6341095],[-162.43980408,-79.2813797],[-163.02728271,-78.92876434],[-163.06645203,-78.86988068],[-163.71289063,-78.59559631],[-163.71289063,-78.59559631]],[[-127.28314209,-73.46179199],[-126.55847168,-73.24619293],[-125.55957031,-73.48126984],[-124.03182983,-73.87317657],[-124.61942291,-73.83399963],[-125.91217041,-73.7360611],[-127.28314209,-73.46179199],[-127.28314209,-73.46179199]],[[-122.62168121,-73.65766907],[-122.40625,-73.32454681],[-121.2114563,-73.50097656],[-119.9187851,-73.65769196],[-118.72410583,-73.48126984],[-119.29199982,-73.83399963],[-120.23213196,-74.08878326],[-121.62276459,-74.01042175],[-122.62168121,-73.65766907],[-122.62168121,-73.65766907]],[[-102.33065796,-71.89414978],[-101.70388031,-71.71773529],[-100.4309082,-71.85498047],[-98.98146057,-71.93334198],[-97.88466644,-72.07045746],[-96.78787231,-71.95292664],[-96.20027161,-72.52114868],[-96.98365021,-72.44277954],[-98.19802856,-72.48195648],[-99.43199158,-72.44277954],[-100.78344727,-72.5015564],[-101.80187988,-72.30565643],[-102.33065796,-71.89414978],[-102.33065796,-71.89414978]],[[-74.06821442,-71.34552002],[-73.38273621,-71.22786713],[-72.22717285,-71.2670517],[-71.93340302,-70.75760651],[-71.87463379,-70.38527679],[-71.89421844,-69.58197021],[-71.32620239,-69.11161041],[-70.40558624,-68.95488739],[-69.87688446,-69.32720947],[-69.64182281,-69.69941711],[-69.21091461,-70.15009308],[-68.87798309,-70.58129883],[-68.60372925,-71.03197479],[-68.48626709,-71.48265839],[-68.6625061,-71.87456512],[-68.93667603,-72.24688721],[-70.11182404,-72.38401794],[-71.22833252,-72.57991028],[-72.54047394,-72.56031799],[-72.05086517,-72.16841125],[-73.22595978,-72.30565643],[-74.342453,-72.44277954],[-75.10629272,-72.14881897],[-75.16500854,-71.73731995],[-74.06821442,-71.34552002],[-74.06821442,-71.34552002]],[[-66.89974976,-80.06528473],[-64.64746094,-80.10449219],[-62.49300385,-80.20244598],[-61.74874878,-79.79094696],[-61.21990967,-79.43821716],[-60.18182755,-79.84971619],[-60.47559357,-80.35915375],[-60.76942825,-80.80983734],[-62.86512375,-80.67272186],[-65.0978775,-80.73148346],[-66.35144043,-80.39834595],[-66.35144043,-80.35915375],[-66.89974976,-80.06528473],[-66.89974976,-80.06528473]],[[-49.19412613,-78.04699707],[-48.68492126,-78.04694366],[-47.19641113,-77.83146667],[-45.6882782,-78.04694366],[-44.45436096,-78.47808838],[-44.02349854,-79.08547974],[-43.90596008,-79.51657104],[-43.86681366,-80.02602386],[-45.41407776,-80.33956909],[-47.03967667,-80.59436035],[-48.91992569,-80.82943726],[-51.01564026,-81.02544403],[-53.38555908,-80.96656036],[-54.69781113,-80.63353729],[-54.52148819,-80.22203827],[-52.38668823,-79.94765472],[-51.52484512,-79.61452484],[-50.89810562,-79.18343353],[-50.44764328,-78.81111145],[-49.84051132,-78.45844269],[-49.19412613,-78.04699707],[-49.19412613,-78.04699707]],[[166.6000061,-77],[168.36000061,-77.25894165],[169.44999695,-77.3499527],[169.55000305,-77.5999527],[168.25,-77.79997253],[166.8999939,-77.89992523],[166.1499939,-77.5999527],[166.1499939,-77.25],[166.6000061,-77],[166.6000061,-77]],[[180,-90],[-180,-90],[-180,-84.71335602],[-179.94250488,-84.72142792],[-179.0585022,-84.13928986],[-177.25665283,-84.45284271],[-176.02278137,-84.08053589],[-174.29908752,-84.41366577],[-172.88896179,-84.06093597],[-169.95111084,-83.88463593],[-169,-84.11782074],[-168.53010559,-84.23735809],[-167.02207947,-84.57038116],[-164.18212891,-84.82517242],[-161.92959595,-85.13872528],[-158.07121277,-85.37378693],[-155.19226074,-85.09954834],[-150.94192505,-85.29544067],[-148.53285217,-85.6089859],[-145.88891602,-85.31502533],[-143.10760498,-85.04077148],[-142.89215088,-84.57038116],[-146.82887268,-84.53121185],[-150.06060791,-84.29613495],[-150.90274048,-83.90422058],[-153.58616638,-83.68862152],[-153.40968323,-83.2379303],[-153.03767395,-82.82643127],[-152.66542053,-82.45411682],[-152.8613739,-82.0426178],[-154.52618408,-81.76836395],[-155.29014587,-81.41564178],[-156.83735657,-81.1020813],[-154.40858459,-81.16085052],[-152.09765625,-81.00414276],[-150.64808655,-81.33727264],[-148.86592102,-81.04331207],[-147.22065735,-80.67098999],[-146.41769409,-80.33785248],[-146.77023315,-79.92634583],[-148.06278992,-79.65209961],[-149.53181458,-79.35813141],[-151.58834839,-79.29936218],[-153.39021301,-79.16223145],[-155.32931519,-79.06417084],[-155.97550964,-78.69184875],[-157.26831055,-78.37830353],[-158.05174255,-78.02568817],[-158.36509705,-76.88910675],[-157.8752594,-76.98714447],[-156.97441101,-77.30069733],[-155.32931519,-77.2026825],[-153.74275208,-77.06550598],[-152.92007446,-77.49664307],[-151.33369446,-77.39864349],[-150.00195313,-77.1831665],[-148.74833679,-76.90879059],[-147.61236572,-76.57564545],[-146.1043396,-76.47770691],[-146.14334106,-76.1053772],[-146.49586487,-75.73305511],[-146.20222473,-75.38033295],[-144.9094696,-75.20401764],[-144.32199097,-75.53716278],[-142.79426575,-75.34114075],[-141.63858032,-75.08648682],[-140.20895386,-75.06678009],[-138.85751343,-74.96883392],[-137.50601196,-74.73374939],[-136.42875671,-74.51815033],[-135.21437073,-74.30266571],[-134.43112183,-74.36144257],[-133.74555969,-74.43978882],[-132.25700378,-74.30266571],[-130.92527771,-74.47896576],[-129.55410767,-74.4593811],[-128.24183655,-74.32225037],[-126.89051819,-74.42020416],[-125.40200806,-74.51815033],[-124.01145935,-74.47896576],[-122.56212616,-74.49856567],[-121.07349396,-74.51815033],[-119.70246887,-74.47896576],[-118.68414307,-74.18500519],[-117.46977234,-74.02828979],[-116.21619415,-74.24389648],[-115.02153015,-74.06746674],[-113.94432831,-73.71473694],[-113.29795837,-74.02828979],[-112.94541931,-74.38102722],[-112.29905701,-74.71416473],[-111.2610321,-74.42020416],[-110.0662384,-74.79252625],[-108.71479034,-74.91005707],[-107.55930328,-75.18443298],[-106.14907837,-75.12566376],[-104.87599182,-74.94924164],[-103.36789703,-74.98841858],[-102.0164566,-75.12566376],[-100.64548492,-75.30196381],[-100.11658478,-74.87088013],[-100.76295471,-74.53773499],[-101.25267029,-74.18500519],[-102.54523468,-74.10665131],[-103.11325073,-73.73432922],[-103.32872009,-73.36201477],[-103.68125916,-72.61745453],[-102.91748047,-72.75461578],[-101.60520935,-72.81337738],[-100.31246948,-72.75461578],[-99.13739014,-72.91132355],[-98.11889648,-73.20529175],[-97.68795013,-73.55802917],[-96.33649445,-73.61679077],[-95.04393768,-73.47966003],[-93.67290497,-73.28365326],[-92.4389267,-73.16611481],[-91.42050171,-73.40119171],[-90.08864594,-73.32282257],[-89.22692108,-72.55870056],[-88.42383575,-73.00939941],[-87.26828003,-73.18569946],[-86.01472473,-73.0877533],[-85.19216919,-73.47966003],[-83.8799057,-73.51883698],[-82.66564941,-73.63637543],[-81.47085571,-73.85198975],[-80.68741608,-73.47966003],[-80.29576111,-73.12693787],[-79.29685211,-73.51883698],[-77.92581177,-73.42089844],[-76.90732574,-73.63637543],[-76.22184753,-73.9695282],[-74.88999176,-73.8715744],[-73.85195923,-73.65597534],[-72.83346558,-73.40119171],[-71.61920166,-73.26406097],[-70.20893097,-73.14653015],[-68.93590546,-73.00939941],[-67.95658875,-72.79379272],[-67.36898041,-72.48023987],[-67.1340332,-72.04914856],[-67.25151062,-71.63764954],[-67.56493378,-71.24573517],[-67.91747284,-70.85394287],[-68.23082733,-70.46192169],[-68.48536682,-70.10930634],[-68.54418182,-69.71740723],[-68.44618225,-69.32549286],[-67.9761734,-68.95317078],[-67.5844574,-68.54166412],[-67.42774963,-68.14982605],[-67.62363434,-67.71874237],[-67.74111176,-67.326828],[-67.25151062,-66.87613678],[-66.70307922,-66.58217621],[-66.05671692,-66.20986176],[-65.37122345,-65.89631653],[-64.56820679,-65.60246277],[-64.17649078,-65.17137146],[-63.62812805,-64.8970108],[-63.00134659,-64.64222717],[-62.0416832,-64.58345032],[-61.41490555,-64.27001953],[-60.70982742,-64.07401276],[-59.88721466,-63.95646286],[-59.16255569,-63.70174408],[-58.59453583,-63.38818741],[-57.81110382,-63.2706604],[-57.22356415,-63.525383],[-57.59568787,-63.85852051],[-58.61412048,-64.15235901],[-59.04501724,-64.36797333],[-59.78933334,-64.21124268],[-60.61193848,-64.30919647],[-61.2973671,-64.54427338],[-62.02209091,-64.79905701],[-62.51174927,-65.09290314],[-62.64880753,-65.48480988],[-62.59010696,-65.85712433],[-62.12003326,-66.1902771],[-62.80552292,-66.42546082],[-63.74565125,-66.50382996],[-64.29402161,-66.83695984],[-64.88162231,-67.15040588],[-65.50840759,-67.58148956],[-65.66500092,-67.95380402],[-65.31246185,-68.365242],[-64.78368378,-68.6788559],[-63.96107101,-68.91399384],[-63.19724274,-69.22753906],[-62.78593063,-69.61933136],[-62.57052231,-69.99164581],[-62.27668762,-70.38356018],[-61.80667114,-70.71670532],[-61.51290894,-71.0890274],[-61.37578583,-72.00997162],[-61.08195114,-72.38230133],[-61.00365448,-72.77420044],[-60.69023132,-73.16611481],[-60.82735443,-73.69515228],[-61.37578583,-74.10665131],[-61.9633255,-74.43978882],[-63.29518127,-74.57691956],[-63.74565125,-74.92964172],[-64.3527298,-75.26279449],[-65.86094666,-75.63511658],[-67.19280243,-75.79183197],[-68.44618225,-76.00743103],[-69.79763031,-76.22292328],[-70.60070801,-76.6344223],[-72.2066803,-76.67359924],[-73.96943665,-76.6344223],[-75.55594635,-76.71289063],[-77.24034119,-76.71289063],[-76.9269104,-77.10468292],[-75.39929199,-77.28104401],[-74.28279114,-77.55541992],[-73.65601349,-77.90803528],[-74.77251434,-78.22158813],[-76.49608612,-78.12363434],[-77.92581177,-78.37830353],[-77.98458862,-78.78980255],[-78.02370453,-79.18171692],[-76.84862518,-79.5148468],[-76.63314819,-79.88717651],[-75.35999298,-80.25949097],[-73.24476624,-80.41620636],[-71.44290161,-80.69058228],[-70.01309204,-81.00414276],[-68.19165039,-81.31768799],[-65.70417786,-81.47440338],[-63.25599289,-81.7487793],[-61.55202484,-82.0426178],[-59.69138336,-82.37575531],[-58.71212387,-82.84603119],[-58.22246552,-83.21834564],[-57.00811386,-82.86562347],[-55.36285782,-82.57177734],[-53.6197319,-82.25823212],[-51.54362106,-82.00344086],[-49.76129532,-81.72918701],[-47.27391052,-81.70948029],[-44.82566833,-81.84671783],[-42.80834961,-82.08179474],[-42.16201401,-81.65070343],[-40.77136612,-81.35686493],[-38.24479294,-81.33727264],[-36.26660538,-81.12166595],[-34.38635635,-80.90618896],[-32.3102951,-80.76893616],[-30.09708405,-80.59263611],[-28.54979897,-80.33785248],[-29.25488663,-79.98511505],[-29.68578148,-79.63239288],[-29.68578148,-79.26018524],[-31.62479401,-79.29936218],[-33.68128967,-79.45608521],[-35.6398735,-79.45608521],[-35.91407776,-79.08376312],[-35.77700424,-78.3392334],[-35.32653427,-78.12363434],[-33.89675903,-77.88843536],[-32.21237183,-77.65343475],[-30.99804306,-77.35946655],[-29.78371429,-77.06550598],[-28.88276291,-76.67359924],[-27.51173782,-76.49729156],[-26.16031837,-76.36016846],[-25.47481537,-76.28168488],[-23.92752266,-76.24250793],[-22.4585762,-76.1053772],[-21.22468185,-75.90937042],[-20.01036072,-75.67429352],[-18.91353798,-75.43909454],[-17.52293777,-75.12566376],[-16.64158249,-74.79252625],[-15.70147419,-74.49856567],[-15.40767384,-74.10665131],[-16.46531296,-73.8715744],[-16.11275482,-73.46007538],[-15.44684219,-73.14653015],[-14.40879631,-72.95051575],[-13.31198788,-72.71543884],[-12.29351044,-72.40188599],[-11.51007652,-72.00997162],[-11.02043819,-71.539711],[-10.29576778,-71.26533508],[-9.10102654,-71.32410431],[-8.61136246,-71.65723419],[-7.41662979,-71.69642639],[-7.3774662,-71.32410431],[-6.86822796,-70.93231201],[-5.79099321,-71.03025818],[-5.53638697,-71.40257263],[-4.34165907,-71.46134186],[-3.04898667,-71.28491974],[-1.7954886,-71.16738129],[-0.65948927,-71.22615051],[-0.22861987,-71.63764954],[0.86821002,-71.30451202],[1.88668001,-71.12821198],[3.02265,-70.99108124],[4.13905001,-70.85394287],[5.15751982,-70.61875916],[6.27392006,-70.46192169],[7.13569021,-70.24642944],[7.74285984,-69.89370728],[8.48711967,-70.14848328],[9.52515984,-70.01124573],[10.24985981,-70.48151398],[10.81783009,-70.83423615],[11.95382977,-70.63834381],[12.40429974,-70.24642944],[13.42276001,-69.97206116],[14.73501015,-70.03083038],[15.12674046,-70.40314484],[15.94933987,-70.03083038],[17.02656937,-69.91329956],[18.20170975,-69.87412262],[19.2593708,-69.89370728],[20.37574959,-70.01124573],[21.45298004,-70.07001495],[21.92304993,-70.40314484],[22.56937981,-70.69712067],[23.66617966,-70.52081299],[24.84133911,-70.48151398],[25.97731972,-70.48151398],[27.09371948,-70.46192169],[28.09259033,-70.32479858],[29.15023041,-70.20726013],[30.03160095,-69.93288422],[30.97172928,-69.75658417],[31.99019051,-69.65863037],[32.75403976,-69.38425446],[33.30245972,-68.83562469],[33.87044144,-68.50255585],[34.90850067,-68.65921021],[35.30020142,-69.01193237],[36.16199875,-69.24713135],[37.20003891,-69.1686554],[37.90513992,-69.52138519],[38.6493988,-69.77616882],[39.66786957,-69.54096985],[40.02040863,-69.10988617],[40.92137146,-68.93357849],[41.95941162,-68.60044098],[42.93870926,-68.46331787],[44.11386108,-68.26735687],[44.89730835,-68.05187988],[45.71990967,-67.81668091],[46.5033493,-67.60108185],[47.44345856,-67.71874237],[48.34442139,-67.36600494],[48.99074936,-67.09162903],[49.9308815,-67.11122131],[50.75349045,-66.87613678],[50.94932938,-66.52341461],[51.79153061,-66.2490387],[52.61412811,-66.05314636],[53.61302948,-65.89631653],[54.53356934,-65.81794739],[55.41492844,-65.87671661],[56.3550415,-65.97478485],[57.15806961,-66.2490387],[57.25600052,-66.68013],[58.13734818,-67.01326752],[58.74451065,-67.28765106],[59.93930054,-67.40518188],[60.60519028,-67.67955017],[61.4277916,-67.95380402],[62.38748932,-68.01258087],[63.19049835,-67.81668091],[64.05233765,-67.40518188],[64.99243927,-67.62072754],[65.97174072,-67.73832703],[66.9118576,-67.85586548],[67.89115143,-67.93421936],[68.8900528,-67.93421936],[69.71263885,-68.97275543],[69.67344666,-69.22753906],[69.55593872,-69.67822266],[68.59622955,-69.93288422],[67.81276703,-70.3052063],[67.94988251,-70.69712067],[69.06629181,-70.67753601],[68.92917633,-71.06943512],[68.41999817,-71.4417572],[67.94988251,-71.85325623],[68.71375275,-72.16680908],[69.86929321,-72.26474762],[71.02488708,-72.0883255],[71.57327271,-71.69642639],[71.90627289,-71.32410431],[72.45465088,-71.01066589],[73.08141327,-70.71670532],[73.33602905,-70.36397552],[73.86486816,-69.87412262],[74.49156952,-69.77616882],[75.62757111,-69.73699188],[76.62647247,-69.61933136],[77.64489746,-69.4626236],[78.134552,-69.07070923],[78.42835999,-68.69838715],[79.11385345,-68.32613373],[80.09314728,-68.07146454],[80.93534088,-67.87545013],[81.48377991,-67.54230499],[82.05175018,-67.36600494],[82.77642059,-67.20928955],[83.77532196,-67.30724335],[84.67623138,-67.20928955],[85.65553284,-67.09162903],[86.75234985,-67.15040588],[87.47702789,-66.87613678],[87.98626709,-66.20989227],[88.3584137,-66.48423767],[88.82846069,-66.95450592],[89.67064667,-67.15040588],[90.63036346,-67.22887421],[91.59011841,-67.11122131],[92.60855103,-67.18969727],[93.54866028,-67.20928955],[94.17542267,-67.11122131],[95.01760864,-67.16999054],[95.78147888,-67.3855896],[96.68240356,-67.24846649],[97.75961304,-67.24846649],[98.68019104,-67.11122131],[99.71820831,-67.24846649],[100.3841629,-66.91532898],[100.89334869,-66.58217621],[101.57888794,-66.30781555],[102.83241272,-65.5632782],[103.47870636,-65.70041656],[104.2425766,-65.97478485],[104.90846252,-66.32740021],[106.18157959,-66.93482971],[107.16088104,-66.95450592],[108.08139038,-66.95450592],[109.15860748,-66.83695984],[110.23583221,-66.69972992],[111.05847931,-66.42546082],[111.74397278,-66.13150024],[112.86038208,-66.0923233],[113.6046524,-65.87671661],[114.38804626,-66.07273865],[114.89729309,-66.38628387],[115.60237885,-66.69972992],[116.69918823,-66.66053772],[117.38468933,-66.91532898],[118.57946014,-67.16999054],[119.83293152,-67.26805115],[120.87101746,-67.18969727],[121.65441132,-66.87613678],[122.32037354,-66.56259155],[123.22129059,-66.48423767],[124.12226105,-66.62136078],[125.16027832,-66.71930695],[126.10040283,-66.56259155],[127.0014267,-66.56259155],[127.88275146,-66.66053772],[128.80326843,-66.75849152],[129.70423889,-66.58217621],[130.78146362,-66.42546082],[131.79995728,-66.38628387],[132.93588257,-66.38628387],[133.85647583,-66.28821564],[134.75738525,-66.20986176],[135.03161621,-65.72000122],[135.07078552,-65.3085022],[135.69749451,-65.58287811],[135.87379456,-66.03356171],[136.20675659,-66.4450531],[136.61807251,-66.77819824],[137.46026611,-66.95450592],[138.59625244,-66.89573669],[139.90844727,-66.87613678],[140.80943298,-66.81737518],[142.12167358,-66.81737518],[143.06184387,-66.79779053],[144.37408447,-66.83695984],[145.49043274,-66.91532898],[146.1955719,-67.22887421],[145.99967957,-67.60108185],[146.64604187,-67.89503479],[147.72325134,-68.13024139],[148.83966064,-68.38489532],[150.13230896,-68.56125641],[151.48374939,-68.71804047],[152.50224304,-68.87481689],[153.63818359,-68.89446259],[154.2845459,-68.56125641],[155.16592407,-68.83562469],[155.92977905,-69.14913177],[156.81111145,-69.38425446],[158.02549744,-69.48220825],[159.18103027,-69.5997467],[159.67068481,-69.99164581],[160.80662537,-70.22684479],[161.57049561,-70.57958221],[162.68690491,-70.73629761],[163.84243774,-70.71670532],[164.91966248,-70.77547455],[166.11445618,-70.75588226],[167.30912781,-70.83423615],[168.42559814,-70.97149658],[169.46362305,-71.20655823],[170.50164795,-71.40257263],[171.20678711,-71.69642639],[171.08921814,-72.0883255],[170.5604248,-72.44106293],[170.10992432,-72.89173889],[169.75737,-73.24447632],[169.287323,-73.65597534],[167.9750824,-73.81269073],[167.38749695,-74.16542053],[166.0947876,-74.38102722],[165.64439392,-74.77294159],[164.95884705,-75.14524841],[164.23417664,-75.45868683],[163.82286072,-75.87018585],[163.5682373,-76.24250793],[163.4703064,-76.6931839],[163.48991394,-77.06550598],[164.05787659,-77.45735168],[164.27337646,-77.82967377],[164.74342346,-78.18247223],[166.60411072,-78.31952667],[166.99577332,-78.75073242],[165.19387817,-78.90744781],[163.66619873,-79.12294006],[161.76638794,-79.16223145],[160.9241333,-79.73046112],[160.74789429,-80.20072937],[160.31697083,-80.57303619],[159.78819275,-80.94536591],[161.11999512,-81.27850342],[161.62928772,-81.69000244],[162.49101257,-82.06221008],[163.70533752,-82.39533997],[165.09596252,-82.70890808],[166.60411072,-83.02245331],[168.89564514,-83.33588409],[169.40484619,-83.8258667],[172.28393555,-84.04134369],[173.22412109,-84.41366577],[175.98570251,-84.15888214],[177.13999939,-84.31687164],[178.27726746,-84.472435],[180,-84.71335602],[180,-90],[180,-90]]]},"properties":{"name":"Antarctica"},"id":"AQ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[74.92,37.24],[74.57,37.03],[72.56,36.82],[71.24,36.13],[71.65,35.42],[71.08,34.06],[69.91,34.04],[70.33,33.33],[69.51,33.03],[69.33,31.94],[66.72,31.21],[66.26,29.85],[62.48,29.41],[60.87,29.86],[61.85,31.02],[60.84,31.5],[60.58,33.07],[60.94,33.52],[60.51,34.14],[61.28,35.61],[62.72,35.25],[63.12,35.86],[64.5,36.28],[64.8,37.12],[66.54,37.37],[67.78,37.19],[69.32,37.12],[70.97,38.47],[71.59,37.9],[71.68,36.68],[73.31,37.46],[74.92,37.24]]]]},"properties":{"name":"Afghanistan"},"id":"AF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[19.44,41.02],[19.37,41.85],[19.65,42.62],[20.07,42.56],[20.59,41.88],[20.82,40.91],[20.98,40.86],[20.01,39.69],[19.29,40.42],[19.44,41.02]]]]},"properties":{"name":"Albania"},"id":"AL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[2.96,36.8],[8.62,36.94],[8.18,36.52],[8.25,34.64],[7.49,33.89],[9.06,32.1],[9.54,30.23],[9.95,27.82],[9.87,26.51],[9.4,26.15],[10.25,24.61],[11.56,24.3],[11.99,23.52],[5.81,19.45],[4.25,19.15],[3.33,18.98],[3.23,19.82],[1.8,20.31],[-4.81,25],[-6.66,26.13],[-8.67,27.29],[-8.67,27.67],[-8.67,28.71],[-3.63,30.97],[-3.82,31.7],[-1.18,32.11],[-1.75,34.75],[-2.21,35.09],[0.95,36.45],[2.96,36.8]]]]},"properties":{"name":"Algeria"},"id":"DZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-170.64,-14.29],[-170.83,-14.33],[-170.56,-14.27],[-170.64,-14.29]]],[[[-169.44,-14.26],[-169.51,-14.28],[-169.54,-14.23],[-169.44,-14.26]]]]},"properties":{"name":"Samoa"},"id":"WS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[1.78,42.57],[1.72,42.51],[1.45,42.6],[1.78,42.57]]]]},"properties":{"name":"Andorra"},"id":"AD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14,-5.85],[16.58,-5.9],[17.62,-8.1],[19.37,-8],[19.54,-7],[21.78,-7.28],[22.25,-11.21],[23.99,-10.87],[24.02,-13.01],[22,-13],[22,-16.17],[23.48,-17.63],[23.28,-17.66],[20.85,-18.02],[18.45,-17.39],[13.99,-17.42],[13.16,-16.95],[11.75,-17.25],[12.51,-13.43],[13.79,-11.79],[12.98,-9.09],[13.39,-8.39],[12.24,-6.1],[13.18,-5.86],[14,-5.85]]],[[[13.09,-4.66],[12.21,-5.77],[12.03,-5.01],[12.78,-4.39],[13.09,-4.63],[13.09,-4.66]]]]},"properties":{"name":"Angola"},"id":"AO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-61.69,17.02],[-61.89,17.11],[-61.79,17.16],[-61.69,17.02]]],[[[-61.73,17.61],[-61.85,17.58],[-61.87,17.7],[-61.73,17.61]]]]},"properties":{"name":"Antigua and Barbuda"},"id":"AG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[45.08,39.77],[45.82,39.55],[46.18,38.84],[45,39.42],[44.81,39.63],[44.78,39.71],[45.08,39.77]]],[[[45.51,40.61],[45.52,40.67],[45.57,40.63],[45.51,40.61]]],[[[46.57,41.87],[47.77,41.2],[48.58,41.84],[50.37,40.26],[49.49,40.15],[48.89,38.44],[48.02,38.84],[48.36,39.39],[47.98,39.72],[46.54,38.88],[46.54,39.56],[45.6,39.98],[46,40.23],[45.15,41.2],[45.02,41.3],[46.52,41.05],[46.45,41.9],[46.57,41.87]]]]},"properties":{"name":"Azerbaijan"},"id":"AZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-68.26,-52.99],[-68.54,-53.23],[-67.36,-54.03],[-65.14,-54.65],[-66.45,-55.05],[-68.64,-54.79],[-68.62,-52.64],[-68.26,-52.99]]],[[[-65.75,-22.11],[-65.19,-22.09],[-64.59,-22.21],[-64.32,-22.87],[-63.94,-22],[-62.64,-22.24],[-61.01,-23.81],[-57.76,-25.18],[-57.58,-25.55],[-58.6,-27.32],[-55.74,-27.44],[-54.7,-26.44],[-54.6,-25.57],[-53.86,-25.68],[-53.81,-27.13],[-55.77,-28.23],[-57.61,-30.18],[-57.81,-30.75],[-58.2,-32.45],[-58.15,-33.05],[-58.43,-33.1],[-58.53,-33.52],[-58.47,-34.54],[-57.19,-35.32],[-57.38,-35.96],[-56.66,-36.9],[-58.3,-38.49],[-62.38,-38.8],[-62.02,-39.38],[-62.39,-40.9],[-65.13,-40.85],[-65.01,-42.09],[-64.45,-42.45],[-63.75,-42.09],[-63.58,-42.62],[-64.96,-42.67],[-64.3,-42.99],[-65.32,-43.65],[-65.6,-45.02],[-66.95,-45.26],[-67.58,-46],[-66.82,-46.99],[-65.78,-47.19],[-66.24,-47.86],[-65.79,-47.96],[-67.58,-49.03],[-67.9,-49.99],[-69.01,-50.01],[-68.37,-50.15],[-69.41,-51.08],[-68.97,-51.57],[-69.61,-51.63],[-68.99,-51.62],[-68.44,-52.38],[-71.91,-52],[-72.4,-51.51],[-72.29,-50.65],[-73.17,-50.75],[-73.58,-49.54],[-72.56,-48.8],[-72.36,-47.47],[-71.67,-46.68],[-71.78,-45.65],[-71.3,-45.29],[-72.08,-44.77],[-71.11,-44.54],[-71.86,-44.37],[-72.13,-42.29],[-71.73,-42.1],[-71.7,-39.58],[-70.82,-38.57],[-71.19,-36.84],[-70.42,-36.14],[-70.57,-35.25],[-69.81,-34.24],[-70.53,-31.19],[-69.83,-30.19],[-69.66,-28.4],[-68.29,-26.92],[-68.57,-24.77],[-67.34,-24.02],[-67.18,-22.82],[-66.22,-21.78],[-65.75,-22.11]]]]},"properties":{"name":"Argentina"},"id":"AR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[145.11,-40.82],[146.59,-41.19],[148.22,-40.85],[148,-43.23],[147.32,-42.85],[146.92,-43.62],[146.04,-43.5],[144.68,-41.22],[144.7,-40.76],[145.11,-40.82]]],[[[142.51,-10.87],[143.78,-14.41],[144.51,-14.17],[145.32,-14.95],[146.28,-18.88],[148.78,-20.23],[149.66,-22.5],[150.64,-22.34],[150.87,-23.51],[153.18,-25.95],[153.03,-27.18],[153.63,-28.67],[153.05,-31.04],[150.16,-35.94],[149.97,-37.52],[147.76,-37.98],[146.22,-38.71],[146.39,-39.15],[145.45,-38.23],[144.9,-38.5],[144.93,-37.87],[143.54,-38.86],[141.57,-38.42],[139.81,-37.3],[139.82,-36.55],[139.08,-35.68],[139.67,-36.23],[139.1,-35.62],[139.36,-35.37],[138.09,-35.62],[138.51,-35.03],[138.1,-34.14],[137.74,-35.14],[136.83,-35.25],[137.44,-34.93],[137.95,-33.56],[137.77,-32.52],[135.95,-35.01],[135.11,-34.6],[135.51,-34.62],[134.18,-32.49],[131.15,-31.47],[125.97,-32.27],[124.28,-32.99],[123.54,-33.91],[120,-33.93],[117.93,-35.13],[115.01,-34.26],[114.99,-33.52],[115.71,-33.27],[115.74,-31.87],[114.89,-29.2],[113.22,-26.24],[113.86,-26.51],[113.47,-25.54],[114.22,-26.31],[113.39,-24.43],[114.02,-21.85],[114.15,-22.53],[116.71,-20.65],[121.03,-19.59],[122.35,-18.11],[122.17,-17.24],[122.92,-16.42],[123.58,-17.6],[123.6,-16.99],[123.92,-17.2],[123.57,-16.17],[123.73,-16.14],[123.89,-16.38],[123.96,-16.25],[124.24,-16.41],[124.9,-16.42],[124.4,-16.33],[124.43,-16.1],[124.59,-16.11],[124.73,-15.81],[124.4,-15.87],[124.45,-15.49],[125.18,-15.52],[124.83,-15.16],[125.43,-15.14],[125.14,-14.74],[125.61,-14.22],[125.64,-14.64],[126.04,-14.52],[126.02,-13.92],[126.29,-14.23],[126.86,-13.75],[127.42,-13.95],[128.17,-14.7],[128.01,-15.5],[128.53,-14.76],[129.73,-15.2],[129.94,-14.77],[129.37,-14.33],[130.58,-12.4],[132.75,-12.13],[131.98,-11.13],[135.23,-12.29],[135.91,-11.76],[135.67,-12.2],[136.04,-12.47],[136.56,-11.93],[136.98,-12.36],[136.46,-13.25],[135.92,-13.28],[135.46,-14.94],[139.26,-17.34],[140.49,-17.64],[141.43,-16.08],[141.58,-12.99],[141.94,-12.88],[141.59,-12.55],[142.51,-10.87]]]]},"properties":{"name":"Australia"},"id":"AU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[13.83,48.77],[14.7,48.58],[15.03,49.02],[16.95,48.62],[17.17,48.01],[16.45,47.7],[16.51,47.01],[16.11,46.87],[13.72,46.53],[12.13,47],[10.47,46.87],[9.6,47.06],[9.53,47.27],[9.57,47.54],[13.02,47.47],[12.76,48.12],[13.83,48.77]]]]},"properties":{"name":"Austria"},"id":"AT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-73.04,21.14],[-73.69,20.94],[-73.02,21.33],[-73.04,21.14]]],[[[-77.74,24.03],[-77.68,24.3],[-77.57,23.74],[-77.74,24.03]]],[[[-78.19,25.2],[-77.72,24.51],[-78.02,24.27],[-78.44,24.61],[-78.19,25.2]]],[[[-77.92,26.75],[-78.71,26.49],[-78.98,26.7],[-77.92,26.75]]],[[[-77.74,26.91],[-77.04,26.51],[-77.2,25.88],[-77.15,26.55],[-77.74,26.91]]]]},"properties":{"name":"Bahamas, The"},"id":"BS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[50.53,26.23],[50.57,25.81],[50.46,25.97],[50.53,26.23]]]]},"properties":{"name":"Bahrain"},"id":"BH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[90.76,22.06],[90.6,22.78],[90.88,22.46],[90.76,22.06]]],[[[88.43,26.55],[89.74,26.16],[89.85,25.29],[92.41,25.03],[91.16,23.64],[91.61,22.94],[92.28,23.71],[92.6,21.98],[92.26,21.05],[92.32,20.74],[91.7,22.49],[90.83,22.69],[90.59,23.6],[90.27,21.85],[90.02,21.86],[90.07,22.16],[89.93,22],[90,22.48],[89.58,21.7],[89.62,22.32],[89.25,21.64],[89.06,22.12],[88.75,24.22],[88.04,24.68],[89.01,25.29],[88.11,25.84],[88.43,26.55]],[[90.24,22.19],[90.06,21.99],[90.22,22.11],[90.24,22.19]]]]},"properties":{"name":"Bangladesh"},"id":"BD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[45.15,41.2],[46,40.23],[45.6,39.98],[46.54,39.56],[46.54,38.88],[46.18,38.84],[45.82,39.55],[45.08,39.77],[44.78,39.71],[43.66,40.11],[43.46,41.11],[45.02,41.3],[45.15,41.2]],[[45.57,40.63],[45.52,40.67],[45.51,40.61],[45.57,40.63]]]]},"properties":{"name":"Armenia"},"id":"AM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-59.53,13.05],[-59.64,13.33],[-59.43,13.16],[-59.53,13.05]]]]},"properties":{"name":"Barbados"},"id":"BB"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[4.3,51.26],[4.25,51.38],[5.04,51.49],[6.01,50.76],[6.13,50.13],[6.03,50.18],[5.81,49.55],[4.83,50.17],[4.15,49.98],[2.54,51.09],[3.37,51.37],[4.24,51.35],[4.3,51.26]]]]},"properties":{"name":"Belgium"},"id":"BE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-64.78,32.27],[-64.86,32.27],[-64.67,32.38],[-64.78,32.27]]]]},"properties":{"name":"Bermuda"},"id":"BM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[90.47,28.07],[91.66,27.76],[92.07,26.86],[89.64,26.72],[88.92,27.32],[89.59,28.14],[90.47,28.07]]]]},"properties":{"name":"Bhutan"},"id":"BT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-65.19,-22.09],[-65.75,-22.11],[-66.22,-21.78],[-67.18,-22.82],[-67.88,-22.83],[-68.76,-20.41],[-68.44,-19.43],[-69.48,-17.64],[-69.5,-17.51],[-68.82,-16.34],[-69.42,-15.62],[-68.67,-12.5],[-69.57,-10.95],[-68.58,-11.11],[-66.63,-9.91],[-65.38,-9.7],[-64.99,-12.01],[-60.47,-13.81],[-60.16,-16.26],[-58.33,-16.28],[-58.4,-17.25],[-57.52,-18.2],[-58.16,-20.17],[-59.1,-19.35],[-61.74,-19.65],[-62.64,-22.24],[-63.94,-22],[-64.32,-22.87],[-64.59,-22.21],[-65.19,-22.09]]]]},"properties":{"name":"Bolivia"},"id":"BO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[17.65,42.89],[17.58,42.94],[16.14,44.2],[15.79,45.17],[19.04,44.86],[19.62,44.05],[19.23,43.51],[18.46,42.57],[17.65,42.89]]]]},"properties":{"name":"Bosnia and Herzegovina"},"id":"BA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[26.96,-23.75],[25.51,-25.68],[23.01,-25.3],[21.67,-26.86],[20.64,-26.83],[20.81,-25.88],[20,-24.77],[20,-22.01],[20.99,-22],[20.99,-18.32],[23.3,-18],[23.62,-18.49],[25.26,-17.8],[26.17,-19.53],[27.71,-20.51],[28.02,-21.57],[29.37,-22.19],[26.96,-23.75]]]]},"properties":{"name":"Botswana"},"id":"BW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.36,-54.46],[3.37,-54.4],[3.48,-54.4],[3.36,-54.46]]]]},"properties":{"name":"Bouvet Island"},"id":"BV"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-51.9,-1.48],[-51.89,-1.18],[-51.66,-1.08],[-51.61,-0.73],[-51.2,-0.53],[-51.27,-1.01],[-51.9,-1.48]]],[[[-49.71,-0.23],[-48.37,-0.29],[-48.63,-1.06],[-49.17,-1.61],[-50.58,-1.8],[-50.66,-0.28],[-49.71,-0.23]]],[[[-60.1,5.22],[-60.15,4.52],[-59.57,3.9],[-59.99,2.69],[-59.64,1.73],[-58.81,1.19],[-56.47,1.94],[-55.9,1.89],[-55.97,2.53],[-54.6,2.33],[-52.91,2.2],[-51.68,4.03],[-51.54,4.39],[-51.09,3.91],[-50.68,2.16],[-49.93,1.71],[-49.9,1.17],[-51.26,-0.14],[-51.7,-0.75],[-51.71,-1.03],[-51.92,-1.17],[-51.94,-1.34],[-52.71,-1.6],[-52.21,-1.69],[-50.85,-0.92],[-50.66,-1.77],[-51.34,-1.65],[-51.45,-2.27],[-51.31,-1.76],[-50.85,-2.51],[-50.68,-1.81],[-49.29,-1.71],[-49.49,-2.56],[-48.7,-1.47],[-48.18,-1.47],[-48.5,-1.46],[-48.24,-0.87],[-47.43,-0.58],[-45.33,-1.31],[-45.35,-1.74],[-44.86,-1.43],[-44.36,-2.34],[-44.79,-3.3],[-44.06,-2.41],[-44.34,-2.83],[-43.35,-2.37],[-41.25,-3.02],[-40,-2.85],[-37.17,-4.92],[-35.42,-5.21],[-34.8,-7.63],[-35.29,-9.18],[-37.15,-10.75],[-38.04,-12.63],[-38.49,-13.02],[-38.9,-12.71],[-39.13,-17.68],[-40.97,-21.99],[-42.03,-22.92],[-43.08,-22.67],[-44.66,-23.05],[-44.58,-23.36],[-46.38,-23.87],[-48.21,-25.46],[-48.72,-25.42],[-48.36,-25.58],[-48.8,-26.07],[-48.49,-27.21],[-48.77,-28.52],[-52.07,-32.17],[-50.57,-30.46],[-51.28,-30.01],[-51.27,-30.8],[-53.37,-33.74],[-53.52,-33.15],[-53.09,-32.73],[-53.88,-31.97],[-55.58,-30.85],[-56.01,-31.08],[-56.81,-30.11],[-57.61,-30.18],[-55.77,-28.23],[-53.81,-27.13],[-53.86,-25.68],[-54.6,-25.57],[-54.33,-24.68],[-54.41,-23.92],[-55.41,-23.96],[-55.85,-22.29],[-57.99,-22.09],[-58.16,-20.17],[-57.52,-18.2],[-58.4,-17.25],[-58.33,-16.28],[-60.16,-16.26],[-60.47,-13.81],[-64.99,-12.01],[-65.38,-9.7],[-66.63,-9.91],[-68.58,-11.11],[-69.57,-10.95],[-70.63,-11.01],[-70.51,-9.43],[-72.14,-10],[-72.37,-9.49],[-73.21,-9.41],[-72.96,-8.98],[-74.01,-7.54],[-73.12,-6.45],[-72.85,-5.12],[-70.77,-4.15],[-69.96,-4.24],[-69.38,-1.34],[-70.04,0.59],[-69.12,0.65],[-69.84,1.07],[-69.85,1.71],[-67.91,1.75],[-67.42,2.14],[-66.87,1.22],[-65.52,0.65],[-63.39,2.15],[-64.05,2.48],[-64.8,4.28],[-62.88,3.56],[-62.75,4.03],[-60.99,4.52],[-60.73,5.2],[-60.1,5.22]]]]},"properties":{"name":"Brazil"},"id":"BR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-88.38,18.48],[-88.3,18.48],[-88.21,16.97],[-88.91,15.89],[-89.22,15.89],[-89.14,17.82],[-88.38,18.48]]]]},"properties":{"name":"Belize"},"id":"BZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[72.49,-7.38],[72.36,-7.27],[72.45,-7.23],[72.49,-7.38]]]]},"properties":{"name":"British Indian Ocean Territory"},"id":"IO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[161.55,-10.28],[162.39,-10.84],[161.28,-10.33],[161.55,-10.28]]],[[[159.94,-9.43],[160.83,-9.86],[159.83,-9.8],[159.6,-9.32],[159.94,-9.43]]],[[[160.97,-8.85],[161.38,-9.64],[160.58,-8.33],[160.97,-8.85]]],[[[157.63,-8.24],[157.81,-8.62],[157.21,-8.24],[157.63,-8.24]]],[[[159.85,-8.33],[159.89,-8.57],[158.49,-7.55],[159.85,-8.33]]],[[[157.43,-7.32],[156.94,-7.22],[156.44,-6.64],[157.43,-7.32]]]]},"properties":{"name":"Solomon Islands"},"id":"SB"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-64.42,18.44],[-64.41,18.51],[-64.32,18.51],[-64.42,18.44]]]]},"properties":{"name":"British Virgin Islands"},"id":"VG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[115.22,4.8],[115.34,4.31],[115.03,4.82],[115.15,4.9],[115.22,4.8]]],[[[114.98,4.89],[115.02,4.9],[114.64,4.02],[114.1,4.59],[114.98,4.89]]]]},"properties":{"name":"Brunei"},"id":"BN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[27.88,42.84],[27.45,42.47],[28.01,41.98],[27.39,42.01],[26.36,41.71],[26.29,41.71],[25.29,41.24],[22.94,41.34],[22.37,42.32],[23,43.19],[22.37,43.83],[22.68,44.22],[24.18,43.68],[27.04,44.15],[28.58,43.75],[27.88,42.84]]]]},"properties":{"name":"Bulgaria"},"id":"BG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[97.81,28.34],[98.7,27.54],[98.78,26.64],[98.71,25.86],[97.55,24.74],[97.54,23.94],[98.89,24.16],[98.93,23.19],[99.57,22.94],[99.16,22.16],[99.96,22.05],[100.21,21.43],[101.15,21.57],[100.09,20.35],[100.08,20.35],[98.05,19.81],[97.77,18.57],[97.35,18.56],[98.93,16.39],[98.2,15.07],[99.17,13.73],[99.66,11.83],[98.74,10.35],[98.55,9.98],[98.89,11.7],[97.8,14.88],[97.74,16.56],[97.38,16.49],[96.88,17.45],[96.78,16.7],[96.24,16.8],[95.43,15.73],[95.36,16.14],[94.85,15.78],[94.99,16.25],[94.65,15.85],[94.63,16.34],[94.25,15.96],[94.61,17.55],[93.99,19.46],[93.73,19.93],[93.13,19.84],[93.08,20.55],[92.86,20.12],[92.26,21.05],[92.6,21.98],[93.2,22.26],[93.34,24.08],[94.15,23.86],[95.14,26.61],[96.19,27.27],[97.14,27.09],[96.89,27.61],[97.35,28.22],[97.81,28.34]]]]},"properties":{"name":"Burma"},"id":"MM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[29.23,-3.75],[29.02,-2.74],[29.85,-2.76],[29.95,-2.31],[30.57,-2.4],[30.83,-3.26],[29.42,-4.45],[29.23,-3.75]]]]},"properties":{"name":"Burundi"},"id":"BI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[26.61,55.67],[28.17,56.15],[30.93,55.6],[30.78,54.79],[32.74,53.46],[31.27,53.02],[31.78,52.11],[30.94,52.07],[30.55,51.25],[25.78,51.94],[23.6,51.53],[23.64,52.08],[23.17,52.28],[23.94,52.73],[23.5,53.95],[25.79,54.16],[25.79,54.87],[26.82,55.28],[26.61,55.67]]]]},"properties":{"name":"Belarus"},"id":"BY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[107.49,14.45],[107.55,12.35],[105.85,11.66],[106.2,10.77],[105.1,10.96],[104.45,10.42],[103.62,10.5],[103.56,11.16],[103.13,10.88],[102.92,11.64],[102.38,13.57],[103.18,14.33],[105.21,14.35],[106.06,13.93],[106,14.37],[107.55,14.71],[107.49,14.45]]]]},"properties":{"name":"Cambodia"},"id":"KH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14.58,12.74],[15.68,9.99],[13.96,9.64],[15.2,8.49],[15.5,7.53],[14.42,6.04],[14.73,4.62],[16.21,2.22],[16.07,1.65],[13.29,2.16],[12.52,2.28],[11.34,2.17],[10.03,2.17],[9.81,2.34],[9.72,3.87],[8.98,4.1],[8.59,4.81],[9.8,6.8],[10.62,7.07],[11.34,6.44],[11.86,7.08],[13.81,11.06],[14.65,11.58],[14.07,13.08],[14.5,13],[14.58,12.74]]]]},"properties":{"name":"Cameroon"},"id":"CM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-127.23,50.64],[-125.45,50.32],[-123.29,48.41],[-125.11,48.73],[-124.81,49.24],[-125.48,48.92],[-125.9,49.44],[-126.54,49.37],[-126.09,49.66],[-127.9,50.11],[-127.41,50.59],[-128.42,50.77],[-127.23,50.64]]],[[[-53.76,48.5],[-52.98,48.6],[-53.95,48.18],[-53.55,47.53],[-52.83,48.1],[-53.27,47.61],[-52.61,47.52],[-53.1,46.64],[-53.62,46.64],[-53.59,47.16],[-54.19,46.82],[-53.87,47.4],[-54.2,47.86],[-55.69,46.86],[-55.98,46.95],[-54.94,47.78],[-55.59,47.4],[-56.17,47.5],[-55.77,47.96],[-56.84,47.52],[-59.41,47.89],[-58.42,48.49],[-59.26,48.48],[-58.4,49.13],[-57.88,48.97],[-58.22,49.39],[-57.7,49.46],[-57.38,50.69],[-55.9,51.63],[-55.41,51.56],[-56.09,51.37],[-55.73,51.08],[-56.85,49.54],[-56.15,50.15],[-55.49,50.01],[-56.13,49.43],[-55.14,49.55],[-55.38,49.04],[-53.78,49.4],[-53.49,49.22],[-54.1,48.81],[-53.76,48.5]],[[-53.76,48.5],[-54.09,48.43],[-54.14,48.36],[-53.76,48.5]]],[[[-85.48,65.79],[-84.92,65.21],[-84.44,65.46],[-81.76,64.5],[-81.99,63.99],[-80.17,63.77],[-81.08,63.45],[-83.07,64.19],[-85.27,63.12],[-85.72,63.72],[-87.19,63.59],[-86.19,64.1],[-86.1,65.53],[-85.48,65.79]]],[[[-95.9,66.95],[-95.22,66.97],[-95.71,67.73],[-95.47,68.06],[-93.55,68.59],[-93.67,68.97],[-94.63,68.76],[-94.3,69.3],[-93.36,69.37],[-96.53,70.13],[-95.79,70.54],[-96.61,70.79],[-96.5,71.28],[-94.61,71.86],[-95.22,71.94],[-93.71,71.76],[-92.97,71.34],[-93.03,70.85],[-91.51,70.17],[-92.92,69.67],[-90.31,69.45],[-91.45,69.35],[-90.44,68.87],[-90.27,68.24],[-89.31,69.25],[-88.05,68.82],[-87.79,68.33],[-88.37,67.96],[-87.51,67.11],[-86.52,67.35],[-85.66,68.73],[-84.53,69.02],[-85.47,69.27],[-85.57,69.86],[-82.26,69.64],[-83.23,69.54],[-81.33,69.18],[-82.06,68.87],[-81.27,68.63],[-82.64,68.5],[-81.24,67.47],[-81.5,67],[-83.4,66.35],[-83.92,66.88],[-84.27,66.72],[-84.37,66.97],[-84.92,67.06],[-84.64,66.98],[-85.23,66.88],[-84.6,66.94],[-83.69,66.19],[-86.78,66.53],[-85.9,66.17],[-87.4,65.32],[-91.43,65.95],[-86.93,65.14],[-88.11,64.14],[-90.12,64.13],[-89.81,63.94],[-90.28,64],[-90.21,63.61],[-92.48,63.81],[-90.63,63.06],[-92.42,62.83],[-91.89,62.6],[-93.62,61.94],[-93.24,61.78],[-93.98,61.46],[-94.82,59.64],[-94.23,58.78],[-94.36,58.22],[-94.14,58.76],[-93.15,58.74],[-92.42,57.34],[-92.88,56.91],[-90.82,57.26],[-85.71,55.63],[-85.12,55.34],[-85.42,54.99],[-82.31,55.15],[-82.3,53.02],[-81.55,52.44],[-81.88,52.19],[-80.44,51.46],[-81.02,51.03],[-80.12,51.3],[-79.33,50.72],[-79.75,51.18],[-79.32,51.66],[-78.85,51.17],[-79.04,51.77],[-78.51,52.46],[-79.05,54.18],[-79.76,54.65],[-77.75,55.3],[-76.53,56.32],[-76.86,57.72],[-78.57,58.64],[-77.77,59.71],[-77.31,59.56],[-77.43,59.91],[-76.76,60.16],[-77.59,60.06],[-77.41,60.54],[-77.83,60.64],[-77.51,60.84],[-78.19,60.79],[-77.47,61.54],[-78.16,62.28],[-77.51,62.56],[-74.57,62.1],[-73.68,62.48],[-72.01,61.68],[-72.3,61.57],[-71.58,61.61],[-71.89,61.43],[-71.39,61.14],[-69.52,61.07],[-69.62,60.07],[-70.95,60.06],[-69.6,59.83],[-69.76,59.32],[-69.23,59.23],[-70.15,58.78],[-69.82,58.59],[-68.36,58.78],[-68.34,58.13],[-69.37,57.77],[-68.4,58.04],[-68,58.58],[-68.13,58.07],[-67.72,58.46],[-67.71,57.92],[-66.39,58.85],[-66.06,58.32],[-65.99,58.9],[-65.32,59.04],[-65.56,59.49],[-64.98,59.38],[-65.53,59.72],[-64.47,60.28],[-64.83,59.99],[-64.17,60.02],[-63.72,59.51],[-64.06,59.38],[-63.36,59.2],[-64.04,59.02],[-62.85,58.69],[-63.59,58.3],[-62.56,58.48],[-63.34,57.98],[-62.45,58.18],[-62.67,57.93],[-61.88,57.63],[-62.55,57.5],[-61.36,57.09],[-61.67,56.62],[-62.57,56.79],[-60.67,55.59],[-60.33,55.78],[-60.68,54.99],[-59.78,55.33],[-59.43,55.14],[-59.94,54.75],[-59.16,55.24],[-59.39,54.98],[-57.35,54.58],[-60.13,53.53],[-60.86,53.79],[-60.1,53.5],[-60.42,53.27],[-57.79,54.07],[-58.18,54.24],[-57.38,54.15],[-57.34,53.44],[-56.46,53.78],[-55.81,53.34],[-56.17,53.03],[-55.76,52.61],[-56.5,52.59],[-55.65,52.44],[-56.2,52.44],[-55.7,52.08],[-56.95,51.42],[-58.63,51.28],[-60.01,50.25],[-66.47,50.26],[-67.38,49.33],[-69.06,48.77],[-71.3,46.74],[-68.21,48.64],[-65,49.22],[-64.22,48.9],[-64.55,48.88],[-64.25,48.49],[-66.84,47.99],[-64.8,47.81],[-65.37,47.09],[-64.8,47.08],[-64.5,46.24],[-62.46,45.61],[-61.92,45.89],[-60.96,45.31],[-64.2,44.58],[-65.48,43.46],[-66.17,43.86],[-65.84,44.58],[-66.19,44.42],[-64.49,45.34],[-64.16,44.98],[-63.36,45.36],[-64.94,45.33],[-64.28,45.8],[-64.75,46.09],[-64.78,45.61],[-67.21,45.18],[-67.8,45.7],[-67.79,47.07],[-69.23,47.47],[-70.88,45.24],[-74.99,44.99],[-76.8,43.63],[-78.72,43.63],[-79.18,43.47],[-78.99,42.82],[-82.7,41.68],[-83.17,42.05],[-82.13,43.59],[-82.54,45.36],[-84.13,46.53],[-88.37,48.31],[-91.42,48.04],[-94.61,48.72],[-95.08,49.36],[-95.15,49],[-122.76,49],[-123.21,49.13],[-122.85,49.44],[-123.24,49.34],[-123.16,49.7],[-123.96,49.51],[-123.53,49.7],[-123.83,50.16],[-123.98,49.8],[-124.77,49.99],[-124.35,50.5],[-125.08,50.32],[-124.81,50.92],[-125.71,50.43],[-126.27,50.63],[-125.62,50.75],[-125.63,51.1],[-126.13,50.68],[-126.56,50.84],[-126.18,50.95],[-127.18,50.93],[-127.03,50.82],[-127.54,51.01],[-126.66,51.19],[-127.79,51.17],[-126.62,51.68],[-127.88,51.67],[-127.17,52.31],[-126.67,51.98],[-126.73,52.37],[-127.19,52.38],[-127.02,52.85],[-128.39,52.29],[-128.13,52.88],[-128.97,53.55],[-127.87,53.24],[-128.81,53.62],[-128.6,54.03],[-129.27,53.38],[-130.05,53.89],[-129.47,54.24],[-130.48,54.36],[-129.96,54.32],[-130.37,54.65],[-129.91,54.61],[-130.17,54.85],[-129.47,55.47],[-130.11,55],[-130.16,55.09],[-129.94,55.28],[-130.1,55.56],[-130.13,55.72],[-130.02,55.91],[-131.82,56.6],[-133.43,58.46],[-135.47,59.8],[-137.48,58.91],[-139.07,60.35],[-141,60.31],[-141,69.64],[-134.31,68.68],[-134.55,69.09],[-132.89,69.65],[-129.4,70.12],[-133.49,68.83],[-132.92,68.69],[-133.35,68.83],[-127.52,70.22],[-128,70.59],[-125.43,69.31],[-124.82,69.71],[-125.2,70],[-124.44,70.15],[-124.5,69.73],[-124.04,69.7],[-124.45,69.37],[-121.68,69.79],[-114.07,68.48],[-115.54,67.92],[-115.1,67.8],[-110.08,68.01],[-108.02,67.29],[-108.62,67.15],[-107.25,66.35],[-107.75,66.92],[-107.08,66.82],[-107.89,68.08],[-106.43,68.15],[-106.47,68.34],[-105.74,68.42],[-105.64,68.63],[-106.54,68.51],[-106.54,68.29],[-107.89,68.27],[-107.6,68.17],[-108.82,68.27],[-106.23,68.94],[-105.49,68.73],[-105.54,68.41],[-104.61,68.24],[-104.5,68.03],[-102.25,67.73],[-98.35,67.8],[-98.62,68.07],[-97.51,67.6],[-97.12,67.79],[-98.71,68.37],[-95.98,68.25],[-96.46,67.48],[-95.33,67.03],[-95.9,66.95]],[[-95.9,66.95],[-96.46,67.06],[-95.63,66.68],[-95.9,66.95]],[[-93.52,63.84],[-92.51,63.82],[-93.78,64.19],[-93.52,63.84]],[[-70.78,48.38],[-69.83,48.17],[-71.05,48.45],[-70.78,48.38]]],[[[-114,72.8],[-114.6,72.6],[-113.03,73.01],[-111.22,72.72],[-111.66,72.28],[-109.78,72.43],[-110.76,72.97],[-109.66,72.92],[-108.62,72.55],[-107.83,71.6],[-107.25,71.9],[-108.29,73.15],[-106.76,73.29],[-105.33,72.75],[-104.36,71.57],[-104.59,71.07],[-101,70.17],[-100.87,69.79],[-103.48,69.69],[-103.02,69.49],[-103.19,69.11],[-102.31,69.5],[-101.75,69.18],[-102.89,68.8],[-105.14,68.9],[-106.6,69.5],[-109.1,68.71],[-113.27,68.45],[-113.52,69.18],[-116.53,69.41],[-117.44,69.99],[-111.49,70.34],[-117.56,70.6],[-118.42,70.99],[-115.06,71.52],[-118.11,71.37],[-117.7,71.67],[-119.13,71.77],[-117.35,72.92],[-114.56,73.38],[-114,72.8]]],[[[-73.35,68.33],[-74.82,69.08],[-76.66,68.7],[-75.59,69.22],[-77.2,69.65],[-76.98,69.94],[-77.63,69.74],[-77.68,70.19],[-79.01,70.68],[-79.59,70.4],[-78.79,69.89],[-81.76,70.12],[-80.95,69.71],[-82.1,70.11],[-83.01,70.3],[-81.71,69.93],[-81.74,69.87],[-82.02,69.87],[-82.14,69.78],[-83.07,70.01],[-85.82,70],[-86.55,70.23],[-86.37,70.53],[-87.92,70.24],[-89.55,71.09],[-87,70.99],[-89.83,71.33],[-90.05,71.95],[-88.41,73.52],[-85.07,73.8],[-86.73,72.72],[-86.24,72.42],[-86.42,72.01],[-84.83,71.27],[-86.82,70.99],[-84.8,70.92],[-84.63,71.67],[-86.05,72.01],[-84.16,72.02],[-85.69,72.89],[-83.95,72.75],[-85.45,73.12],[-83.63,72.98],[-85.19,73.23],[-81.55,73.72],[-80.25,72.73],[-81.38,72.24],[-80.52,72.5],[-80.97,71.88],[-79.67,72.13],[-80.17,72.32],[-79.8,72.5],[-79.01,72.27],[-79.2,71.96],[-77.79,71.79],[-78.87,72.23],[-77,72.13],[-78.56,72.44],[-77.61,72.75],[-75.19,72.49],[-74.95,72.25],[-76.35,71.89],[-74.12,71.98],[-75.39,71.68],[-74.63,71.66],[-75.08,71.18],[-73.75,71.78],[-74.24,71.2],[-73.62,71.58],[-73.38,71.39],[-73.9,71.06],[-73.05,71.27],[-73.38,70.98],[-72.54,71.66],[-71.12,71.26],[-72.57,70.61],[-70.6,71.05],[-71.8,70.43],[-71.16,70.53],[-71.54,70.02],[-69.9,70.88],[-70.5,70.48],[-68.31,70.56],[-70.47,69.84],[-67.79,70.26],[-67.13,69.73],[-70.03,69.54],[-66.8,69.34],[-69.02,69.35],[-68.08,69.22],[-69.03,68.97],[-68.18,69.15],[-67.71,69.02],[-68.56,68.96],[-67.77,68.78],[-69.4,68.86],[-68.04,68.68],[-68.9,68.6],[-68.47,68.61],[-68.71,68.57],[-67.5,68.54],[-67.61,68.38],[-66.71,68.44],[-67.88,68.27],[-67.23,68.36],[-67.01,68.32],[-67.6,68.16],[-67.01,68.29],[-66.77,68.24],[-66.95,68.01],[-66.18,68.02],[-66.73,67.87],[-66.36,67.82],[-65.91,68.16],[-66.01,67.63],[-64.72,67.99],[-65.2,67.65],[-64.51,67.81],[-63.9,67.31],[-64.8,67.36],[-63.96,67.27],[-64.69,67],[-63.11,67.33],[-63.77,66.81],[-62.1,67.05],[-61.26,66.63],[-62.9,66.33],[-61.95,66.02],[-62.97,66.15],[-62.32,65.81],[-63.72,65.68],[-63.32,65.59],[-63.55,64.89],[-65.51,65.74],[-64.36,66.35],[-65.92,65.95],[-65.47,66.39],[-66.07,66.12],[-67.05,66.64],[-67.74,66.57],[-67.28,66.28],[-67.99,66.51],[-67.19,65.91],[-68.85,66.19],[-64.66,64.03],[-64.99,63.82],[-64.53,63.25],[-65.3,63.81],[-64.63,62.9],[-65.25,62.99],[-65.19,62.56],[-66.64,63.37],[-66.55,62.99],[-67.91,63.76],[-67.69,63.37],[-69,63.75],[-65.99,62.24],[-66.07,61.87],[-71.4,63.05],[-72.15,63.45],[-71.23,63.6],[-72.32,63.68],[-73.38,64.27],[-73.3,64.66],[-74.06,64.33],[-74.64,64.9],[-74.99,64.8],[-74.69,64.37],[-75.82,64.61],[-76.67,64.18],[-78.18,64.57],[-77.42,65.46],[-75.77,65.22],[-75.37,64.71],[-75.19,65.1],[-75.95,65.32],[-73.5,65.47],[-74.47,66.15],[-72.26,67.25],[-73.35,68.33]],[[-73.35,68.33],[-73.21,68.38],[-73.32,68.39],[-73.35,68.33]]],[[[-99.8,73.89],[-96.96,73.74],[-98.45,72.87],[-96.52,72.71],[-96.3,72.42],[-96.87,72.04],[-96.49,71.91],[-98.27,71.9],[-98.04,71.53],[-98.73,71.27],[-102.74,72.72],[-102.14,73.09],[-100.41,72.74],[-100.03,72.93],[-100.58,73.17],[-99.77,73.21],[-101.62,73.49],[-100.43,73.41],[-101.12,73.73],[-99.8,73.89]]],[[[-92.64,74.1],[-90.19,73.9],[-92.1,72.74],[-94.32,72.76],[-93.46,72.46],[-94.06,71.98],[-95.21,71.99],[-94.75,72.15],[-95.67,72.81],[-95.67,73.72],[-92.64,74.1]]],[[[-120.15,74.27],[-117.42,74.23],[-115.32,73.48],[-119.14,72.63],[-120.25,72.26],[-120.54,71.52],[-122.78,71.09],[-126,71.97],[-123.77,73.76],[-124.77,74.34],[-120.15,74.27]]],[[[-94.36,75.59],[-93.49,75.26],[-93.47,74.7],[-96.62,74.99],[-94.36,75.59]]],[[[-98.42,76.67],[-97.51,76.19],[-97.94,75.74],[-97.28,75.4],[-98.17,75.33],[-97.58,75.14],[-100.15,74.99],[-100.78,75.35],[-98.95,75.71],[-102.88,75.62],[-101.18,75.78],[-101.91,76.08],[-101.39,76.25],[-102.17,76.24],[-101.89,76.44],[-99.89,75.89],[-99.44,75.97],[-100.15,76.13],[-99.41,76.16],[-100.98,76.5],[-98.42,76.67]]],[[[-108.65,76.81],[-108.08,76.28],[-108.4,76.05],[-107.63,75.99],[-108.02,75.78],[-106.34,76.05],[-105.39,75.64],[-106.01,75.05],[-112.75,74.4],[-114.45,74.67],[-110.91,75.23],[-117.68,75.25],[-115,75.69],[-117.25,75.6],[-114.82,75.88],[-116.73,75.92],[-114.66,76.16],[-115.93,76.29],[-114.9,76.52],[-112.45,76.18],[-111.25,75.52],[-108.9,75.48],[-110.06,75.89],[-109.31,76.11],[-110.39,76.39],[-108.65,76.81]]],[[[-95.66,77.06],[-93.18,76.74],[-93.55,76.39],[-91.41,76.69],[-89.29,76.3],[-91.61,76.26],[-88.95,75.43],[-81.54,75.81],[-79.57,75.45],[-80.44,75.04],[-79.33,74.89],[-81.81,74.46],[-83.51,74.9],[-83.47,74.58],[-84.29,74.5],[-88.5,74.5],[-88.55,74.91],[-91.54,74.65],[-92.49,75.21],[-92.11,75.86],[-93.08,76.36],[-95.38,76.23],[-94.8,76.32],[-96.96,76.73],[-95.66,77.06]]],[[[-116.35,77.54],[-115.39,77.31],[-116.28,77.18],[-115.9,76.69],[-117.1,76.3],[-118.06,76.41],[-117.84,76.82],[-118.97,76.51],[-118.57,76.34],[-119.08,76.08],[-119.65,76.3],[-119.48,75.97],[-119.87,75.86],[-123.04,76.08],[-119.15,77.33],[-116.35,77.54]]],[[[-96.77,78.68],[-94.89,78.1],[-97.1,77.8],[-97.78,78.03],[-96.87,78.13],[-98.41,78.5],[-96.77,78.68]]],[[[-103.59,79.33],[-99.95,78.73],[-98.95,78.06],[-99.91,77.78],[-104.47,78.27],[-105.05,78.49],[-103.32,78.73],[-105.63,79.16],[-103.59,79.33]]],[[[-92.73,81.31],[-88.78,80.13],[-87.68,80.41],[-88.07,80.12],[-86.96,79.9],[-87.46,79.53],[-84.9,79.27],[-87.62,78.65],[-88,78.81],[-87.72,79.08],[-88.16,78.99],[-87.91,78.55],[-88.8,78.61],[-88.82,78.15],[-89.98,78.61],[-89.45,78.16],[-92.06,78.21],[-92.99,78.47],[-91.64,78.55],[-94.29,78.99],[-90.36,79.25],[-95.09,79.27],[-95.78,79.43],[-94.28,79.76],[-95.85,79.65],[-96.8,80.09],[-94.38,79.98],[-94.75,80.08],[-94.08,80.18],[-96.68,80.34],[-93.79,80.53],[-95.53,80.82],[-93.09,81.16],[-94.27,81.35],[-92.73,81.31]]],[[[-70.11,83.11],[-66.3,82.93],[-68.64,82.63],[-64.73,82.9],[-61.08,82.32],[-64.36,81.73],[-69.29,81.72],[-66.61,81.51],[-70.21,81.17],[-64.44,81.48],[-69.43,80.38],[-70.83,80.56],[-70.15,80.19],[-72.42,80.21],[-70.5,80.08],[-71.46,79.9],[-71.18,79.78],[-78.05,79.35],[-74.44,79.06],[-78.89,79.06],[-74.72,78.71],[-76.69,78.51],[-75.06,78.31],[-76.91,78.2],[-75.58,78.11],[-75.92,77.96],[-78.26,78],[-77.72,77.61],[-78.69,77.32],[-81.93,77.68],[-81.17,77.34],[-82.17,77.29],[-81.83,77.16],[-77.78,76.79],[-81.05,76.13],[-80.77,76.42],[-82.73,76.82],[-82.13,76.44],[-89.68,76.57],[-86.74,77.17],[-88.07,77.82],[-84.48,77.29],[-84.61,77.39],[-83.46,77.35],[-83.84,77.46],[-82.32,78.07],[-83.9,77.49],[-84.78,77.52],[-84.43,77.72],[-84.95,77.6],[-85.35,77.73],[-85.05,77.83],[-85.4,77.82],[-84.33,77.9],[-85.68,77.93],[-84.13,78.17],[-84.97,78.2],[-84.64,78.59],[-85.49,78.1],[-87.54,78.14],[-86.86,78.73],[-82.34,78.57],[-83.25,78.83],[-81.48,79.05],[-84.75,79.03],[-83.36,79.05],[-86.49,79.76],[-85.26,79.92],[-86.51,80.3],[-79.9,79.65],[-83.2,80.32],[-78.04,80.57],[-79.96,80.61],[-76.48,80.87],[-78.93,80.88],[-76.75,81.44],[-80.92,80.66],[-85.07,80.51],[-86.74,80.6],[-82.36,81.18],[-87.59,80.63],[-89.47,80.91],[-84.73,81.28],[-89.82,81.01],[-90.35,81.17],[-87.24,81.49],[-91.96,81.66],[-88.08,82.1],[-84.6,81.89],[-86.88,82.2],[-85.05,82.48],[-79.23,81.82],[-82.73,82.4],[-80.58,82.55],[-81.47,82.82],[-78.5,82.68],[-80.43,82.89],[-79.79,82.96],[-75.89,82.59],[-76.23,82.44],[-75.4,82.61],[-77.38,82.99],[-72.63,82.69],[-73.65,82.93],[-70.11,83.11]]]]},"properties":{"name":"Canada"},"id":"CA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-24.37,14.81],[-24.53,14.92],[-24.38,15.05],[-24.37,14.81]]],[[[-23.45,14.98],[-23.68,14.94],[-23.77,15.25],[-23.45,14.98]]],[[[-22.71,16.04],[-22.96,16.09],[-22.8,16.24],[-22.71,16.04]]],[[[-24.03,16.59],[-24.32,16.48],[-24.43,16.64],[-24.03,16.59]]],[[[-25.28,16.91],[-25.33,17.1],[-24.97,17.11],[-25.28,16.91]]]]},"properties":{"name":"Cape Verde"},"id":"CV"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-81.1,19.31],[-81.4,19.29],[-81.25,19.35],[-81.1,19.31]]]]},"properties":{"name":"Cayman Islands"},"id":"KY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[19.06,8.58],[18.99,8.96],[20.37,9.11],[21.72,10.64],[22.87,10.92],[23.67,9.87],[23.52,8.71],[25.25,7.85],[27.46,5.02],[25.89,5.19],[22.9,4.82],[22.38,4.13],[20.59,4.41],[19.42,5.13],[18.54,4.34],[18.62,3.48],[16.66,3.53],[16.21,2.22],[14.73,4.62],[14.42,6.04],[15.5,7.53],[18.59,8.04],[19.06,8.58]]]]},"properties":{"name":"Central African Republic"},"id":"CF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[80.27,9.78],[80.82,9.26],[81.13,8.5],[81.36,8.49],[81.88,7.29],[81.66,6.44],[80.59,5.92],[80.05,6.24],[79.7,8.08],[80.05,9.59],[80.61,9.44],[79.93,9.74],[80.27,9.78]]]]},"properties":{"name":"Sri Lanka"},"id":"LK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14.5,13],[14.07,13.08],[13.63,13.72],[13.47,14.46],[15.49,16.91],[16,20.35],[15.2,21.5],[15,23],[16,23.45],[24,19.5],[24,15.7],[22.94,15.56],[21.83,12.8],[22.47,12.62],[22.87,10.92],[21.72,10.64],[20.37,9.11],[18.99,8.96],[19.06,8.58],[18.59,8.04],[15.5,7.53],[15.2,8.49],[13.96,9.64],[15.68,9.99],[14.58,12.74],[14.5,13]]]]},"properties":{"name":"Chad"},"id":"TD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-68.4,-54.96],[-69.06,-55.06],[-68.21,-55.27],[-68.75,-55.27],[-68.16,-55.4],[-68.05,-55.71],[-68.38,-55.48],[-68.94,-55.46],[-68.78,-55.38],[-68.91,-55.34],[-68.8,-55.19],[-69.43,-55.16],[-69.17,-55.51],[-70.03,-55.16],[-68.4,-54.96]]],[[[-67.78,-54.92],[-67.05,-55.14],[-68.36,-54.94],[-67.78,-54.92]]],[[[-71.26,-54.08],[-71.12,-54.38],[-71.7,-54.16],[-71.26,-54.08]]],[[[-71.67,-53.94],[-71.85,-54.34],[-72.26,-53.94],[-71.67,-53.94]]],[[[-70.44,-53.86],[-70.37,-54.04],[-70.67,-53.93],[-70.52,-54.23],[-70.88,-54.05],[-70.53,-53.56],[-70.44,-53.86]]],[[[-72.91,-53.43],[-72.14,-53.8],[-72.87,-54.14],[-72.73,-53.84],[-73.59,-53.76],[-72.91,-53.43]]],[[[-74.36,-52.95],[-74.75,-52.76],[-73.09,-53.35],[-74.36,-52.95]]],[[[-70.92,-54.71],[-70.77,-54.68],[-70.87,-54.69],[-70.92,-54.71],[-72,-54.46],[-70.13,-54.55],[-70.88,-54.13],[-70.14,-54.43],[-70.06,-54.25],[-69.77,-54.56],[-69.86,-54.28],[-69.24,-54.45],[-69.38,-54.69],[-69.18,-54.58],[-69.16,-54.46],[-68.99,-54.43],[-70.04,-54.1],[-70.18,-53.81],[-69.36,-53.35],[-70.45,-53.37],[-70.1,-52.9],[-70.42,-52.77],[-68.62,-52.64],[-68.64,-54.79],[-70.92,-54.71]]],[[[-74.26,-51.25],[-74.32,-50.92],[-74.19,-51.2],[-74.26,-51.25]]],[[[-74.4,-50.86],[-74.41,-51.09],[-74.96,-50.97],[-74.4,-50.86]]],[[[-74.69,-50.89],[-74.95,-50.73],[-74.75,-50.7],[-74.69,-50.89]]],[[[-74.36,-50.49],[-74.19,-50.85],[-74.67,-50.48],[-74.36,-50.49]]],[[[-75.05,-50.17],[-75.46,-50.36],[-75.4,-50.04],[-75.05,-50.17]]],[[[-75.29,-49.1],[-75.66,-49.22],[-75.36,-48.99],[-75.29,-49.1]]],[[[-74.61,-48.46],[-74.41,-49.73],[-74.77,-50.06],[-74.65,-49.36],[-75.02,-49.9],[-75.47,-49.33],[-74.92,-49.34],[-75.05,-48.8],[-74.61,-48.7],[-75.03,-48.5],[-74.74,-48.12],[-74.61,-48.46]]],[[[-75.24,-48.27],[-75.23,-48.71],[-75.58,-48.09],[-75.24,-48.27]]],[[[-74.93,-48.16],[-75.04,-48.44],[-75.26,-48.07],[-74.93,-48.16]]],[[[-74.46,-45.78],[-74.39,-45.44],[-74.21,-45.64],[-74.46,-45.78]]],[[[-73.65,-45.76],[-73.78,-45.67],[-73.7,-45.44],[-73.65,-45.76]]],[[[-74.02,-45.43],[-73.82,-45.48],[-74.14,-45.58],[-74.02,-45.43]]],[[[-73.98,-45.27],[-73.78,-45.34],[-74.17,-45.25],[-73.98,-45.27]]],[[[-73.85,-45],[-73.73,-45.28],[-74.24,-45.16],[-73.85,-45]]],[[[-74.21,-44.78],[-74.41,-44.63],[-73.87,-44.69],[-74.21,-44.78]]],[[[-72.72,-44.55],[-72.98,-44.61],[-72.83,-44.69],[-73.22,-44.94],[-73.41,-44.82],[-73.21,-44.8],[-73.39,-44.79],[-73.46,-44.64],[-73.23,-44.42],[-72.72,-44.55]]],[[[-73.89,-41.82],[-73.37,-42.25],[-73.82,-42.51],[-73.49,-43.11],[-73.86,-43.4],[-74.41,-43.24],[-73.89,-41.82]]],[[[-69.48,-17.64],[-68.44,-19.43],[-68.76,-20.41],[-67.88,-22.83],[-67.18,-22.82],[-67.34,-24.02],[-68.57,-24.77],[-68.29,-26.92],[-69.66,-28.4],[-69.83,-30.19],[-70.53,-31.19],[-69.81,-34.24],[-70.57,-35.25],[-70.42,-36.14],[-71.19,-36.84],[-70.82,-38.57],[-71.7,-39.58],[-71.73,-42.1],[-72.13,-42.29],[-71.86,-44.37],[-71.11,-44.54],[-72.08,-44.77],[-71.3,-45.29],[-71.78,-45.65],[-71.67,-46.68],[-72.36,-47.47],[-72.56,-48.8],[-73.58,-49.54],[-73.17,-50.75],[-72.29,-50.65],[-72.4,-51.51],[-71.91,-52],[-68.44,-52.38],[-70.81,-52.73],[-71.28,-53.89],[-72.45,-53.4],[-71.8,-53.52],[-71.17,-52.81],[-72.55,-53.07],[-72.19,-53.18],[-72.65,-53.32],[-72.4,-53.54],[-73.22,-53.23],[-71.48,-52.63],[-72.8,-52.54],[-72.98,-53.07],[-73.45,-53.01],[-72.89,-52.52],[-73.69,-52.73],[-73.73,-52.03],[-73.33,-52.22],[-72.99,-52.07],[-72.86,-52.26],[-72.78,-52.06],[-72.94,-52.09],[-72.7,-51.98],[-72.9,-52.46],[-72.47,-51.79],[-73.24,-51.46],[-72.56,-51.78],[-73.28,-51.61],[-72.92,-51.86],[-73.24,-52.09],[-73.39,-51.66],[-73.28,-52.16],[-73.56,-52.05],[-73.64,-51.82],[-73.4,-52.02],[-73.46,-51.69],[-73.91,-51.62],[-73.89,-51.37],[-73.6,-51.62],[-73.71,-51.16],[-74.25,-50.94],[-73.53,-50.71],[-73.72,-50.56],[-73.57,-50.4],[-74.05,-50.83],[-74.29,-50.48],[-73.88,-50.54],[-74.69,-50.2],[-73.87,-50.29],[-74.33,-49.63],[-73.71,-49.76],[-74.11,-49.48],[-73.83,-49.03],[-74.37,-49.43],[-74.02,-48.41],[-74.65,-48.02],[-73.22,-48],[-73.72,-47.53],[-73.93,-47.85],[-74.74,-47.72],[-74.04,-47.62],[-74.53,-47.44],[-73.93,-47.04],[-74.27,-46.79],[-75.01,-46.75],[-74.94,-46.44],[-75.41,-46.93],[-75.72,-46.73],[-74.36,-45.79],[-74.14,-45.81],[-73.97,-46.09],[-74.08,-46.19],[-74.31,-46.25],[-74.49,-46.19],[-74.34,-46.27],[-74.05,-46.2],[-74,-46.29],[-73.85,-46.35],[-74.02,-46.22],[-73.88,-46.14],[-73.76,-46.24],[-73.77,-46.3],[-73.81,-46.39],[-74,-46.56],[-73.91,-46.6],[-73.84,-46.59],[-73.18,-45.67],[-73.59,-45.78],[-73.52,-45.46],[-72.83,-45.42],[-73.39,-44.98],[-73.14,-44.94],[-72.77,-44.75],[-72.61,-44.47],[-73.29,-44.14],[-72.54,-42.56],[-72.85,-42.28],[-72.42,-42.45],[-72.86,-41.91],[-72.31,-41.44],[-73.75,-41.75],[-73.49,-41.52],[-74,-40.97],[-73.22,-39.41],[-73.64,-37.21],[-73.19,-37.14],[-71.44,-32.64],[-71.52,-28.97],[-70.45,-25.36],[-70.62,-23.49],[-70.05,-21.43],[-70.41,-18.35],[-69.5,-17.51],[-69.48,-17.64]],[[-74.07,-46.01],[-74.16,-46.14],[-74.07,-46.1],[-74.07,-46.01]]]]},"properties":{"name":"Chile"},"id":"CL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[110.72,20.06],[111.03,19.64],[110.05,18.38],[108.69,18.51],[108.63,19.28],[109.26,19.9],[110.72,20.06]]],[[[123.38,53.53],[126.1,52.76],[127.53,49.79],[130.67,48.86],[130.99,47.69],[134.74,48.27],[133.12,45.13],[131.86,45.35],[130.95,44.84],[131.31,43.39],[130.41,42.72],[130.6,42.42],[129.91,43.01],[129.71,42.44],[128.06,42],[128.16,41.38],[126.91,41.8],[124.37,40.09],[121.15,38.72],[121.75,39.35],[121.23,39.54],[122.3,40.51],[121.18,40.92],[118.92,39.13],[117.74,39.1],[117.67,38.39],[118.84,38.15],[119.23,37.14],[120.74,37.84],[122.56,37.4],[122.5,36.89],[120.09,36.2],[119.18,34.88],[120.25,34.31],[120.84,32.64],[121.9,31.75],[119.63,32.26],[121.88,30.97],[120.15,30.19],[122.13,29.89],[121.45,29.51],[121.98,29.59],[121.41,29.16],[121.61,28.72],[121.14,28.84],[121.58,28.27],[120.59,28.08],[120.84,27.88],[120.13,26.64],[119.55,26.75],[119.94,26.35],[119.09,26.14],[119.71,25.99],[119.65,25.36],[119.31,25.61],[118.62,24.54],[117.79,24.46],[118.12,24.26],[116.52,23.42],[116.48,22.94],[114.22,22.55],[114.03,22.51],[113.48,23.05],[113.55,22.21],[113.53,22.19],[113.17,22.57],[113.39,22.18],[112.94,21.87],[110.4,21.38],[110.28,20.25],[109.92,20.23],[109.57,21.72],[109.14,21.4],[108.48,21.94],[107.99,21.54],[106.69,22.03],[106.71,22.86],[105.58,23.06],[105.35,23.33],[103.96,22.5],[102.48,22.77],[102.14,22.4],[101.57,22.21],[101.79,21.14],[101.15,21.57],[100.21,21.43],[99.96,22.05],[99.16,22.16],[99.57,22.94],[98.93,23.19],[98.89,24.16],[97.54,23.94],[97.55,24.74],[98.71,25.86],[98.78,26.64],[98.7,27.54],[97.81,28.34],[97.35,28.22],[96.4,28.35],[96.62,28.79],[96.08,29.47],[95.39,29.04],[94.65,29.33],[92.54,27.86],[91.66,27.76],[90.47,28.07],[89.59,28.14],[88.92,27.32],[88.83,28.01],[88.14,27.87],[86.01,27.88],[82.1,30.34],[81.03,30.2],[78.77,31.31],[78.4,32.55],[79.53,32.75],[78.08,35.45],[77.82,35.5],[76.17,35.82],[75.86,36.66],[74.82,37.02],[74.57,37.03],[74.92,37.24],[74.86,38.47],[73.82,38.61],[73.66,39.45],[74.86,40.52],[76.35,40.35],[76.87,41.01],[78.08,41.04],[80.23,42.2],[80.38,43.03],[80.82,43.16],[80.52,44.73],[79.87,44.9],[82.56,45.13],[82.32,45.57],[83.04,47.21],[85.53,47.06],[85.76,48.39],[87.35,49.09],[87.84,49.17],[88.65,48.18],[90.07,47.89],[91.02,46.6],[90.9,45.25],[95.42,44.29],[96.38,42.73],[100.84,42.68],[105.01,41.58],[107.47,42.47],[110.44,42.78],[111.96,43.69],[111.42,44.38],[111.98,45.09],[113.64,44.75],[117.42,46.58],[119.9,46.68],[118.54,47.99],[117.37,47.65],[115.59,47.92],[116.71,49.83],[117.87,49.52],[119.21,50.02],[120.78,52.11],[120.03,52.77],[120.86,53.28],[123.38,53.53]]]]},"properties":{"name":"China"},"id":"CN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[121.73,25.14],[121.84,24.48],[120.72,21.93],[120.11,23.62],[121.01,25.01],[121.73,25.14]]]]},"properties":{"name":"Taiwan"},"id":"TW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[105.7,-10.51],[105.63,-10.44],[105.74,-10.38],[105.7,-10.51]]]]},"properties":{"name":"Christmas Island"},"id":"CX"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[96.86,-12.2],[96.82,-12.18],[96.83,-12.13],[96.86,-12.2]]]]},"properties":{"name":"Cocos (Keeling) Islands"},"id":"CC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-71.56,12.45],[-71.32,11.85],[-71.98,11.66],[-72.49,11.12],[-73.38,9.17],[-72.78,9.08],[-72,7.02],[-70.12,6.98],[-69.25,6.08],[-67.45,6.19],[-67.86,4.56],[-67.29,3.4],[-67.83,2.83],[-67.19,2.39],[-66.87,1.22],[-67.42,2.14],[-67.91,1.75],[-69.85,1.71],[-69.84,1.07],[-69.12,0.65],[-70.04,0.59],[-69.38,-1.34],[-69.96,-4.24],[-70.72,-3.78],[-70.29,-2.51],[-71.7,-2.15],[-72.88,-2.51],[-73.56,-1.37],[-75.29,-0.12],[-77.38,0.38],[-78.59,1.24],[-78.81,1.44],[-78.57,2.43],[-77.74,2.6],[-77.03,3.92],[-77.43,4.03],[-77.34,6.57],[-77.89,7.23],[-77.22,7.94],[-77.37,8.67],[-76.76,7.92],[-76.93,8.57],[-75.63,9.45],[-75.27,10.8],[-74.86,11.13],[-74.39,10.74],[-74.16,11.33],[-73.28,11.3],[-71.56,12.45]]]]},"properties":{"name":"Colombia"},"id":"CO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[44.49,-12.09],[44.51,-12.38],[44.21,-12.16],[44.49,-12.09]]],[[[43.46,-11.94],[43.22,-11.76],[43.28,-11.38],[43.46,-11.94]]]]},"properties":{"name":"Comoros"},"id":"KM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[45.2,-12.85],[45.1,-12.99],[45.08,-12.66],[45.2,-12.85]]]]},"properties":{"name":"Mayotte"},"id":"YT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.78,-4.39],[12.03,-5.01],[11.14,-3.93],[11.93,-3.64],[11.57,-2.33],[12.48,-2.33],[12.65,-1.82],[13,-2.37],[13.76,-2.09],[14.11,-2.49],[14.43,-1.89],[14.52,-0.61],[13.85,-0.2],[14.49,0.91],[14.19,1.39],[13.19,1.22],[13.29,2.16],[16.07,1.65],[16.21,2.22],[16.66,3.53],[18.62,3.48],[17.71,-0.54],[16.2,-2.18],[15.89,-3.94],[14.66,-4.91],[14.4,-4.28],[13.41,-4.88],[13.09,-4.63],[12.78,-4.39]]]]},"properties":{"name":"Congo, Republic of the"},"id":"CG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[25.89,5.19],[27.46,5.02],[28.36,4.29],[29.64,4.64],[30.86,3.49],[30.73,2.45],[31.3,2.12],[29.96,0.83],[29.6,-1.39],[29.02,-2.74],[29.23,-3.75],[29.42,-4.45],[29.55,-6.3],[30.77,-8.19],[28.9,-8.48],[28.37,-9.26],[28.7,-10.65],[28.36,-11.55],[29.03,-12.38],[29.81,-12.16],[29.8,-13.45],[29.02,-13.4],[27.2,-11.57],[26.87,-11.97],[26,-11.9],[25.33,-11.19],[24.45,-11.46],[23.99,-10.87],[22.25,-11.21],[21.78,-7.28],[19.54,-7],[19.37,-8],[17.62,-8.1],[16.58,-5.9],[14,-5.85],[13.18,-5.86],[12.21,-5.77],[13.09,-4.66],[13.09,-4.63],[13.41,-4.88],[14.4,-4.28],[14.66,-4.91],[15.89,-3.94],[16.2,-2.18],[17.71,-0.54],[18.62,3.48],[18.54,4.34],[19.42,5.13],[20.59,4.41],[22.38,4.13],[22.9,4.82],[25.89,5.19]]]]},"properties":{"name":"Congo, Democratic Republic of the"},"id":"CD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-157.89,-21.94],[-157.96,-21.9],[-157.92,-21.88],[-157.89,-21.94]]],[[[-159.74,-21.25],[-159.83,-21.2],[-159.75,-21.19],[-159.74,-21.25]]],[[[-157.32,-20.19],[-157.33,-20.13],[-157.31,-20.15],[-157.32,-20.19]]]]},"properties":{"name":"Cook Islands"},"id":"CK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-85.09,11.01],[-83.65,10.92],[-82.56,9.56],[-82.93,9.47],[-82.9,8.03],[-84.74,9.97],[-85.24,10.2],[-85.14,9.59],[-85.66,9.91],[-85.69,11.08],[-85.09,11.01]]]]},"properties":{"name":"Costa Rica"},"id":"CR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[17.3,43.01],[17.65,42.89],[18.46,42.57],[18.5,42.45],[17.3,43.01]]],[[[16.85,43.27],[16.4,43.33],[16.75,43.36],[16.85,43.27]]],[[[14.46,44.91],[14.49,44.61],[14.29,44.91],[14.4,44.92],[14.32,45.17],[14.46,44.91]]],[[[14.76,44.94],[14.43,45.08],[14.54,45.24],[14.76,44.94]]],[[[16.57,46.48],[16.61,46.48],[17.67,45.83],[18.82,45.91],[19.42,45.23],[19.04,44.86],[15.79,45.17],[16.14,44.2],[17.58,42.94],[16.88,43.4],[15.99,43.5],[14.48,45.31],[14.29,45.32],[14.17,44.98],[13.9,44.77],[13.59,45.48],[15.17,45.43],[15.65,46.22],[16.57,46.48]]]]},"properties":{"name":"Croatia"},"id":"HR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-82.55,21.57],[-83.19,21.62],[-82.97,21.94],[-82.55,21.57]]],[[[-82,23.19],[-80.03,22.95],[-74.13,20.19],[-77.72,19.83],[-77.24,20.66],[-78.05,20.7],[-78.75,21.64],[-81.82,22.18],[-82.16,22.4],[-81.65,22.49],[-81.89,22.68],[-82.76,22.7],[-83.37,22.2],[-83.93,22.16],[-84.03,21.91],[-84.95,21.86],[-84.34,22.01],[-84.4,22.33],[-84.08,22.66],[-82,23.19]]]]},"properties":{"name":"Cuba"},"id":"CU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[33.65,35.35],[34.59,35.69],[33.03,34.56],[32.27,35.04],[33.65,35.35]]]]},"properties":{"name":"Cyprus"},"id":"CY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14.7,48.58],[13.83,48.77],[12.09,50.32],[14.83,50.87],[16.34,50.66],[16.64,50.11],[17.72,50.32],[18.85,49.52],[16.95,48.62],[15.03,49.02],[14.7,48.58]]]]},"properties":{"name":"Czech Republic"},"id":"CZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[2.48,6.34],[1.64,6.22],[1.4,9.43],[0.78,10.38],[0.92,11],[2.4,11.9],[2.84,12.4],[3.6,11.69],[3.86,10.58],[2.79,9.04],[2.72,6.37],[2.48,6.34]]]]},"properties":{"name":"Benin"},"id":"BJ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[10.75,55.48],[10.5,55.03],[9.68,55.5],[10.75,55.48]]],[[[12.57,55.99],[12.07,54.97],[10.87,55.73],[12.57,55.99]]],[[[8.92,56.92],[8.77,56.69],[8.51,56.74],[8.92,56.92]]],[[[9.97,57.07],[10.31,56.98],[10.31,56.75],[9.87,56.65],[10.96,56.44],[9.55,55.71],[9.77,54.89],[9.45,54.83],[8.66,54.91],[8.62,55.43],[8.09,55.55],[8.17,56.65],[8.73,56.48],[8.68,56.62],[9.08,56.81],[9.15,56.7],[9.06,56.57],[9.27,56.63],[9.32,56.53],[9.18,56.92],[9.97,57.07]]],[[[10.43,57.59],[10.34,56.99],[10.01,57.09],[9.12,57.05],[8.67,56.95],[8.42,56.68],[8.59,56.69],[8.55,56.58],[8.24,56.71],[8.62,57.12],[9.39,57.15],[9.95,57.58],[10.65,57.74],[10.43,57.59]]]]},"properties":{"name":"Denmark"},"id":"DK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-61.36,15.2],[-61.45,15.63],[-61.25,15.46],[-61.36,15.2]]]]},"properties":{"name":"Dominica"},"id":"DM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-70.78,19.85],[-69.22,19.36],[-69.63,19.1],[-68.73,18.95],[-68.45,18.36],[-70.69,18.43],[-71.42,17.6],[-71.77,18.04],[-71.75,19.71],[-70.78,19.85]]]]},"properties":{"name":"Dominican Republic"},"id":"DO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-91.22,-0.01],[-90.81,-0.73],[-91.38,-1.03],[-91.08,-0.59],[-91.61,0],[-91.22,-0.01]]],[[[-78.59,1.24],[-77.38,0.38],[-75.29,-0.12],[-75.63,-0.11],[-75.22,-0.97],[-75.56,-1.53],[-78.34,-3.42],[-78.71,-4.58],[-79.05,-5.01],[-79.65,-4.43],[-80.47,-4.44],[-80.34,-3.38],[-79.76,-2.01],[-80.26,-2.74],[-80.89,-2.32],[-80.91,-1.03],[-80.26,-0.63],[-80.06,0.83],[-78.81,1.44],[-78.59,1.24]]]]},"properties":{"name":"Ecuador"},"id":"EC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-89.34,14.42],[-87.75,13.86],[-87.82,13.41],[-88.54,13.19],[-90.1,13.75],[-89.35,14.43],[-89.34,14.42]]]]},"properties":{"name":"El Salvador"},"id":"SV"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[10.03,2.17],[11.34,2.17],[11.35,1],[9.8,1],[9.36,1.17],[9.81,2.34],[10.03,2.17]]]]},"properties":{"name":"Equatorial Guinea"},"id":"GQ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[36.54,14.26],[37.29,14.45],[37.57,14.1],[37.91,14.88],[38.45,14.42],[40.23,14.44],[42.4,12.47],[41.79,11.01],[42.94,11],[42.85,10.22],[44.01,9.01],[47.99,8],[44.95,4.9],[43.69,4.89],[41.91,3.98],[40.78,4.29],[39.52,3.41],[35.94,4.62],[34.7,6.68],[32.99,7.92],[33.25,8.46],[34.12,8.58],[34.29,10.55],[34.86,10.73],[35.1,11.83],[36.14,12.71],[36.54,14.26]]]]},"properties":{"name":"Ethiopia"},"id":"ET"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[38.8,17.65],[39.72,15.08],[39.88,15.49],[41.17,14.63],[43.12,12.71],[42.4,12.47],[40.23,14.44],[38.45,14.42],[37.91,14.88],[37.57,14.1],[37.29,14.45],[36.54,14.26],[37,17.07],[38.6,17.99],[38.8,17.65]]]]},"properties":{"name":"Eritrea"},"id":"ER"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[22.99,58.6],[23.33,58.44],[21.99,57.92],[21.83,58.5],[22.99,58.6]]],[[[22.75,59],[23.05,58.84],[22.04,58.94],[22.75,59]]],[[[25.78,59.63],[28.02,59.48],[27.43,58.81],[27.82,57.87],[27.37,57.54],[25.29,58.08],[24.31,57.87],[24.56,58.33],[23.73,58.37],[23.46,59.21],[25.78,59.63]]]]},"properties":{"name":"Estonia"},"id":"EE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-7.05,62.07],[-7.2,62.02],[-7.44,62.14],[-7.05,62.07]]],[[[-6.71,61.94],[-7.23,62.17],[-7.21,62.28],[-6.71,61.94]]],[[[-6.66,62.09],[-7.06,62.31],[-6.6,62.2],[-6.66,62.09]]]]},"properties":{"name":"Faroe Islands"},"id":"FO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-59.21,-51.41],[-60.37,-52.16],[-60.98,-52.06],[-60.18,-51.76],[-60.64,-51.36],[-59.21,-51.41]]],[[[-58.7,-51.34],[-57.73,-51.69],[-59.72,-52.12],[-58.7,-51.34]]]]},"properties":{"name":"Falkland Islands (Islas Malvinas)"},"id":"FK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-37.5,-54.01],[-35.78,-54.77],[-38.03,-54.05],[-37.5,-54.01]]]]},"properties":{"name":"South Georgia South Sandwich Islands"},"id":"GS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[179.96,-16.2],[179.48,-16.7],[179.93,-16.46],[179.9,-16.77],[178.48,-16.78],[179.96,-16.2]]],[[[-179.97,-16.17],[-180,-16.15],[-179.94,-16.13],[-179.97,-16.17]]]]},"properties":{"name":"Fiji"},"id":"FJ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[28.17,69.91],[29.18,69.64],[28.96,69.05],[28.43,68.9],[28.82,68.84],[28.69,68.2],[30.03,67.69],[29.07,66.9],[30.13,65.72],[29.64,64.93],[30.58,64.22],[29.99,63.74],[31.59,62.91],[27.81,60.55],[22.91,59.8],[23.34,60.02],[23.09,60.35],[21.36,60.65],[21.67,61.55],[21.06,62.61],[21.5,63.21],[25.45,64.95],[25.31,65.51],[24.17,65.81],[23.66,66.31],[24.01,66.8],[23.43,67.47],[23.67,67.94],[21.81,68.57],[20.58,69.06],[21.32,69.33],[22.4,68.71],[24.93,68.58],[26.45,69.93],[28.17,69.91]]]]},"properties":{"name":"Finland"},"id":"FI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[20.08,60.35],[19.94,60.04],[19.65,60.26],[20.08,60.35]]]]},"properties":{"name":"Aland Islands"},"id":"AX"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.45,42.68],[9.18,41.36],[8.58,42.38],[9.35,43],[9.45,42.68]]],[[[2.54,51.09],[4.15,49.98],[4.83,50.17],[5.81,49.55],[6.36,49.46],[8.23,48.96],[7.59,47.58],[6.99,47.5],[5.97,46.21],[6.79,46.43],[7.04,45.93],[7.13,45.26],[6.62,45.11],[6.98,44.28],[7.66,44.17],[7.53,43.79],[7.44,43.76],[7.42,43.77],[7.39,43.73],[6.17,43.05],[3.96,43.54],[3.08,43.07],[3.18,42.44],[1.72,42.51],[1.78,42.57],[1.45,42.6],[-1.78,43.36],[-1.04,44.68],[-1.25,44.66],[-1.08,45.56],[-0.54,44.9],[-0.78,45.46],[-1.24,45.7],[-1.11,46.32],[-2.13,46.84],[-2.13,47.28],[-1.73,47.21],[-4.37,47.8],[-4.73,48.04],[-4.19,48.3],[-4.78,48.51],[-1.37,48.64],[-1.94,49.72],[0.42,49.45],[0.07,49.53],[1.46,50.12],[1.63,50.88],[2.54,51.09]]]]},"properties":{"name":"France"},"id":"FR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-53.49,5.57],[-52.29,4.94],[-52.04,4.33],[-51.85,4.65],[-51.68,4.03],[-52.91,2.2],[-54.6,2.33],[-54,3.45],[-54.48,4.75],[-54.17,5.35],[-53.94,5.74],[-53.49,5.57]]]]},"properties":{"name":"French Guiana"},"id":"GF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-149.21,-17.73],[-149.18,-17.87],[-149.63,-17.55],[-149.21,-17.73]]],[[[-151.4,-16.89],[-151.48,-16.9],[-151.48,-16.74],[-151.4,-16.89]]],[[[-138.96,-9.74],[-138.81,-9.74],[-139.17,-9.78],[-138.96,-9.74]]],[[[-140.03,-8.9],[-140.19,-8.95],[-140.25,-8.8],[-140.03,-8.9]]]]},"properties":{"name":"French Polynesia"},"id":"PF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[69,-48.8],[69.58,-49.3],[70.57,-49.25],[69.77,-49.39],[70.25,-49.69],[68.8,-49.72],[69,-48.8]]]]},"properties":{"name":"French Southern and Antarctic Lands"},"id":"TF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[42.87,11.59],[43.25,11.47],[42.94,11],[41.79,11.01],[42.4,12.47],[43.12,12.71],[43.41,12.06],[42.51,11.57],[42.87,11.59]]]]},"properties":{"name":"Djibouti"},"id":"DJ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.52,2.28],[13.29,2.16],[13.19,1.22],[14.19,1.39],[14.49,0.91],[13.85,-0.2],[14.52,-0.61],[14.43,-1.89],[14.11,-2.49],[13.76,-2.09],[13,-2.37],[12.65,-1.82],[12.48,-2.33],[11.57,-2.33],[11.93,-3.64],[11.14,-3.93],[9.62,-2.38],[8.71,-0.64],[9.3,-0.37],[9.35,0.36],[9.92,0.19],[9.3,0.53],[9.8,1],[11.35,1],[11.34,2.17],[12.52,2.28]]]]},"properties":{"name":"Gabon"},"id":"GA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[41.55,42.41],[40,43.38],[42.85,43.18],[43.91,42.58],[44.93,42.76],[46.45,41.9],[46.52,41.05],[45.02,41.3],[43.46,41.11],[42.83,41.58],[41.53,41.52],[41.55,42.41]]]]},"properties":{"name":"Georgia"},"id":"GE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-16.73,13.45],[-16.2,13.25],[-16.16,13.43],[-15.3,13.49],[-16.14,13.45],[-16.39,13.33],[-16.57,13.59],[-15.07,13.83],[-13.8,13.41],[-15.11,13.6],[-15.29,13.37],[-15.8,13.35],[-15.81,13.16],[-16.75,13.06],[-16.73,13.45]]]]},"properties":{"name":"Gambia, The"},"id":"GM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[34.33,31.26],[34.27,31.22],[34.22,31.32],[34.49,31.6],[34.33,31.26]]],[[[35.28,32.52],[35.55,32.39],[35.48,31.5],[34.88,31.39],[35.28,32.52]],[[35.25,31.79],[35.26,31.79],[35.25,31.81],[35.25,31.79]]]]},"properties":{"name":"Palestine"},"id":"PS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[10.98,54.38],[10.82,53.89],[12.53,54.47],[14.28,53.7],[14.83,50.87],[12.09,50.32],[13.83,48.77],[12.76,48.12],[13.02,47.47],[9.57,47.54],[7.7,47.54],[7.59,47.58],[8.23,48.96],[6.36,49.46],[6.13,50.13],[6.01,50.76],[5.96,51.81],[6.83,51.97],[7.07,52.39],[6.69,52.55],[7.21,53.24],[7.3,53.69],[8.5,53.35],[8.67,53.89],[9.83,53.54],[8.9,53.94],[8.6,54.33],[9.02,54.5],[8.28,54.75],[8.66,54.91],[9.45,54.83],[10.98,54.38]]]]},"properties":{"name":"Germany"},"id":"DE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[0.64,5.85],[0.66,5.75],[0.26,5.76],[-0.8,5.21],[-1.61,5.02],[-2.06,4.73],[-2.93,5.1],[-3.25,6.61],[-2.49,8.2],[-2.69,9.48],[-2.83,11],[-0.15,11.14],[0.73,8.32],[0.53,6.95],[1.2,6.1],[0.69,5.75],[0.63,5.95],[0.51,6.06],[0.41,6.08],[0.37,6.04],[0.26,6.1],[0.21,6.09],[0.36,6.02],[0.42,6.07],[0.49,6.04],[0.61,5.95],[0.64,5.85]]]]},"properties":{"name":"Ghana"},"id":"GH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-5.33,36.16],[-5.34,36.11],[-5.36,36.16],[-5.33,36.16]]]]},"properties":{"name":"Gibraltar"},"id":"GI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[175.59,-1.92],[175.55,-1.82],[175.59,-1.88],[175.59,-1.92]]],[[[175.04,-1.55],[175,-1.53],[175.05,-1.43],[175.04,-1.55]]],[[[173.62,0.13],[173.6,0.21],[173.63,0.22],[173.62,0.13]]],[[[173.02,1.01],[173.08,0.95],[172.98,0.82],[173.02,1.01]]],[[[173.01,1.71],[172.93,1.94],[173.03,1.82],[173.01,1.71]]],[[[172.87,3.06],[172.77,3],[172.75,3.02],[172.87,3.06]]]]},"properties":{"name":"Kiribati"},"id":"KI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[23.86,35.52],[26.29,35.13],[24.75,34.94],[23.52,35.29],[23.86,35.52]]],[[[23.46,38.85],[24.56,37.99],[22.83,38.83],[23.46,38.85]]],[[[26.29,41.71],[26.36,41.71],[26.63,41.35],[26.04,40.74],[23.74,40.75],[24.4,40.15],[23.35,40.25],[23.71,39.91],[22.59,40.48],[23.34,39.18],[22.94,39.36],[23.07,39.04],[22.52,38.86],[24.07,38.2],[24.03,37.65],[23.52,38.04],[22.99,37.88],[23.51,37.43],[22.73,37.57],[23.2,36.43],[22.63,36.8],[22.49,36.39],[22.15,37.02],[21.7,36.82],[21.11,37.85],[21.86,38.34],[23.23,38.15],[22.4,38.45],[21.15,38.3],[20.73,38.8],[21.15,39],[20.01,39.69],[20.98,40.86],[22.94,41.34],[25.29,41.24],[26.29,41.71]]]]},"properties":{"name":"Greece"},"id":"GR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-52.69,69.92],[-51.83,69.63],[-53.57,69.23],[-54.27,69.4],[-53.35,69.58],[-54.99,69.69],[-54.39,69.68],[-54.94,69.85],[-54.23,69.91],[-54.83,70.08],[-54.43,70.31],[-52.69,69.92]]],[[[-23.61,72.83],[-21.93,72.4],[-22.76,72.44],[-22.13,72.27],[-22.56,72.14],[-24.48,72.83],[-23.61,72.83]]],[[[-32.3,83.57],[-25.65,83.29],[-35.62,82.9],[-25.14,83.16],[-24.75,83],[-25.9,82.78],[-21.31,82.61],[-25.07,82.15],[-31.62,82.21],[-29.9,82.09],[-33.1,81.77],[-25.2,81.99],[-27.63,81.49],[-27.33,81.38],[-22.02,81.93],[-22.23,81.47],[-24.51,80.54],[-19.94,81.68],[-20.31,81.45],[-16.7,81.93],[-12.16,81.6],[-16.01,80.73],[-21.25,80.58],[-16.11,80.5],[-20.55,80.11],[-20.33,79.76],[-17.45,80.06],[-19.63,79.66],[-19.87,79.15],[-19.08,79.2],[-21.18,78.81],[-20.91,78.62],[-22.04,77.69],[-19.24,77.76],[-18.96,77.63],[-21.05,77.54],[-18.4,77.34],[-18.31,76.81],[-22.74,76.7],[-19.81,76.23],[-21.98,75.99],[-19.83,75.91],[-19.34,75.4],[-19.88,75.15],[-22.25,75.66],[-20.52,75.14],[-22.44,75.16],[-18.98,74.48],[-22.48,74.31],[-21.82,73.65],[-21.75,74.06],[-20.28,73.88],[-20.5,73.45],[-22.38,73.25],[-24.03,73.7],[-22.18,73.62],[-24.04,73.81],[-24.46,73.54],[-25.69,73.95],[-24.67,73.51],[-27.34,73.49],[-26.39,73.24],[-27.73,73.13],[-25.05,73.08],[-27.39,72.84],[-24.84,72.72],[-24.61,72.52],[-25.91,72.41],[-22.49,71.89],[-23.13,71.63],[-21.9,71.74],[-22.47,71.26],[-21.81,71.51],[-21.69,71.15],[-22.33,71.05],[-21.68,71.07],[-21.93,70.8],[-21.47,70.54],[-22.38,70.44],[-22.51,70.85],[-22.62,70.45],[-23.35,70.44],[-24.74,71.33],[-28.64,72.12],[-27.33,71.71],[-28.47,71.55],[-25.41,71.35],[-28.41,70.98],[-27.91,70.87],[-29.21,70.39],[-26.32,70.37],[-28.54,70.04],[-25.23,70.41],[-22.08,70.13],[-26.36,68.67],[-29.38,68.2],[-31.57,68.07],[-32.49,68.62],[-32.12,67.86],[-33.2,67.69],[-34.72,66.34],[-35.85,66.43],[-35.59,66.11],[-37.19,65.77],[-37.81,66.03],[-37.18,66.34],[-38.11,66.39],[-37.69,66.26],[-38.48,66.01],[-38.24,65.63],[-40.1,65.57],[-39.76,65.24],[-41.16,64.96],[-40.36,64.35],[-41.57,64.27],[-40.57,64.11],[-40.52,63.7],[-41.62,63.79],[-40.75,63.51],[-41.91,63.46],[-41.43,63.13],[-42.17,63.2],[-41.76,62.84],[-43.15,62.76],[-42.16,62.38],[-42.98,62.52],[-42.12,62.01],[-43.08,61.59],[-42.51,61.36],[-43.25,61.34],[-42.63,61.1],[-43.61,61.13],[-42.7,61.06],[-43.53,60.84],[-42.75,60.68],[-44.2,60.59],[-43.14,60.08],[-44.1,60.38],[-45.15,60.07],[-44.47,60.56],[-45.19,60.13],[-44.63,60.73],[-45.98,60.57],[-45.25,60.9],[-46.22,60.75],[-45.2,61.19],[-46.07,60.92],[-45.77,61.33],[-46.86,60.8],[-48.24,60.82],[-47.69,61],[-48.41,60.99],[-47.92,61.32],[-49.3,61.56],[-48.6,61.64],[-49.15,61.72],[-48.76,61.98],[-49.44,61.84],[-48.84,62.08],[-49.67,62],[-49.29,62.17],[-50.32,62.5],[-49.7,63.06],[-50.38,62.78],[-50.15,63.02],[-50.61,63.09],[-50.06,63.23],[-51.11,63.34],[-50.28,63.4],[-51.22,63.44],[-50.5,63.67],[-51.56,63.71],[-50.92,63.93],[-51.6,64.03],[-50.05,64.19],[-51.76,64.18],[-50.17,64.45],[-50.86,64.63],[-49.58,64.34],[-50,64.87],[-50.98,65.22],[-50.64,64.75],[-52.01,64.2],[-52.12,64.72],[-51.25,65.02],[-52.21,64.81],[-52.1,65.24],[-52.56,65.33],[-50.55,65.71],[-52.5,65.39],[-53.27,65.75],[-51.83,66.06],[-53.46,66.03],[-50,66.98],[-53.48,66.1],[-53.12,66.29],[-53.63,66.5],[-52.42,66.55],[-53.45,66.64],[-52.23,66.84],[-53.97,67.07],[-50.35,67.18],[-53.88,67.26],[-52.5,67.77],[-50.07,67.51],[-51.23,67.7],[-50.42,67.84],[-51.06,67.97],[-53.75,67.6],[-53.19,68.04],[-52.06,67.98],[-53.32,68.18],[-50.15,67.93],[-51.43,68.2],[-50.82,68.5],[-53.39,68.33],[-50.87,68.61],[-51.29,68.75],[-51.07,69.13],[-50.21,68.96],[-50.69,69.12],[-50.38,69.34],[-51.12,69.2],[-50.2,69.52],[-50.88,69.49],[-50.21,70.02],[-54.63,70.65],[-50.49,70.51],[-51.95,71.02],[-50.93,70.99],[-51.23,71.14],[-52.25,71.12],[-51.65,71.36],[-52.56,71.17],[-51.35,71.49],[-52.98,71.42],[-51.64,71.71],[-53.25,71.7],[-52.68,72],[-53.32,71.82],[-53.56,72.36],[-53.96,72.32],[-53.4,71.85],[-54.1,71.71],[-53.92,71.44],[-55.91,71.68],[-54.38,72.22],[-55.3,71.93],[-54.68,72.37],[-55.63,72.46],[-54.3,72.48],[-55.7,73.07],[-55.09,73.36],[-56.08,73.65],[-55.61,73.72],[-56.41,74.07],[-56.13,74.28],[-57.33,74.11],[-56.19,74.55],[-58.7,75.35],[-58.21,75.44],[-58.41,75.72],[-60.88,76.15],[-68.5,76.09],[-69.63,76.38],[-67.98,76.68],[-71.38,77.06],[-66.45,77.13],[-69.1,77.27],[-66.06,77.49],[-69.25,77.45],[-73.05,78.16],[-65.98,79.1],[-64.82,79.53],[-65.07,80.01],[-63.78,80.15],[-67.48,80.33],[-63.68,81.14],[-62.79,80.75],[-63.37,81.16],[-61.06,81.12],[-61.31,81.36],[-60.77,81.5],[-61.45,81.75],[-60.81,81.88],[-56.48,81.33],[-59.47,82],[-54.51,82.37],[-53.56,82.12],[-53.63,81.51],[-52.9,82.03],[-49.61,81.64],[-51.07,81.93],[-49.43,81.93],[-51.12,82.49],[-50.32,82.52],[-44.64,81.75],[-44.18,81.83],[-44.93,81.99],[-44.62,82.28],[-42.3,82.22],[-45.77,82.76],[-39.75,82.4],[-46.89,82.96],[-43.39,82.91],[-45.52,83.12],[-42.7,83.27],[-38.57,82.74],[-39.15,82.98],[-36.88,83.15],[-38.86,83.43],[-32.3,83.57]]]]},"properties":{"name":"Greenland"},"id":"GL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-61.75,12],[-61.61,12.23],[-61.63,12.05],[-61.75,12]]],[[[-61.43,12.45],[-61.5,12.44],[-61.43,12.53],[-61.43,12.45]]]]},"properties":{"name":"Grenada"},"id":"GD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-61.35,16.33],[-61.7,15.95],[-61.78,16.33],[-61.35,16.33]]]]},"properties":{"name":"Guadeloupe"},"id":"GP"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[144.71,13.23],[144.66,13.43],[144.88,13.65],[144.71,13.23]]]]},"properties":{"name":"Guam"},"id":"GU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-90.63,13.93],[-92.25,14.55],[-91.73,16.07],[-90.44,16.09],[-91.44,17.24],[-90.98,17.26],[-90.98,17.82],[-89.14,17.82],[-89.22,15.89],[-88.91,15.89],[-88.21,15.72],[-89.35,14.43],[-90.1,13.75],[-90.63,13.93]]]]},"properties":{"name":"Guatemala"},"id":"GT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-13.6,9.73],[-15.02,10.96],[-14.69,11.51],[-13.71,11.72],[-13.71,12.68],[-11.37,12.41],[-10.65,11.89],[-9.16,12.49],[-8.53,11.49],[-8.68,10.97],[-8.29,11.01],[-7.97,10.17],[-7.65,8.38],[-8.2,8.5],[-7.95,8.02],[-8.47,7.56],[-9.49,7.36],[-9.48,8.35],[-10.27,8.49],[-10.7,8.3],[-10.57,9.06],[-11.21,10],[-12.46,9.89],[-13.3,9.03],[-13.6,9.73]]]]},"properties":{"name":"Guinea"},"id":"GN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-59.79,8.34],[-58.47,7.35],[-58.65,6.43],[-58.31,6.89],[-57.2,6.15],[-57.25,5.49],[-58.05,4.01],[-56.47,1.94],[-58.81,1.19],[-59.64,1.73],[-59.99,2.69],[-59.57,3.9],[-60.15,4.52],[-60.1,5.22],[-60.73,5.2],[-61.39,5.94],[-61.13,6.71],[-60.29,7.06],[-60.72,7.54],[-59.83,8.24],[-59.99,8.54],[-59.79,8.34]]]]},"properties":{"name":"Guyana"},"id":"GY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-72.67,19.92],[-71.75,19.71],[-71.77,18.04],[-74.45,18.34],[-74.27,18.67],[-72.35,18.53],[-72.72,19.45],[-73.47,19.69],[-72.67,19.92]]]]},"properties":{"name":"Haiti"},"id":"HT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[73.77,-53.13],[73.47,-53.19],[73.23,-52.99],[73.77,-53.13]]]]},"properties":{"name":"Heard Island and McDonald Islands"},"id":"HM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.45,41.9],[12.45,41.91],[12.46,41.9],[12.45,41.9]]]]},"properties":{"name":"Holy See (Vatican City)"},"id":"VA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-85.84,16.01],[-84.26,15.83],[-83.13,14.99],[-83.24,14.98],[-84.91,14.81],[-87.3,12.99],[-87.82,13.41],[-87.75,13.86],[-89.34,14.42],[-89.35,14.43],[-88.21,15.72],[-85.84,16.01]]]]},"properties":{"name":"Honduras"},"id":"HN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[114.25,22.2],[114.12,22.28],[114.2,22.29],[114.25,22.2]]],[[[113.9,22.2],[113.83,22.23],[114.05,22.34],[113.9,22.2]]],[[[114.22,22.47],[114.03,22.51],[114.22,22.55],[114.22,22.47]]]]},"properties":{"name":"Hong Kong"},"id":"HK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[18.82,45.91],[17.67,45.83],[16.61,46.48],[16.11,46.87],[16.51,47.01],[16.45,47.7],[17.17,48.01],[17.25,48.02],[18.66,47.76],[20.66,48.56],[22.15,48.41],[22.89,47.95],[20.73,46.18],[20.26,46.11],[18.82,45.91]]]]},"properties":{"name":"Hungary"},"id":"HU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-15.07,66.14],[-14.34,65.78],[-14.56,65.49],[-13.61,65.51],[-14.03,65.19],[-13.5,65.07],[-14.93,64.26],[-18.71,63.39],[-21.05,63.95],[-22.69,63.81],[-21.51,64.65],[-24.06,64.89],[-21.84,65.03],[-22.56,65.17],[-21.7,65.45],[-24.54,65.5],[-23.23,65.74],[-23.87,65.87],[-23.21,65.84],[-23.82,66.01],[-23.47,66.2],[-22.42,65.85],[-22.94,66.47],[-21.4,66.03],[-21.78,65.77],[-21.08,65.16],[-20.18,66.13],[-19.45,65.73],[-18.78,66.19],[-18.07,65.64],[-18.3,66.17],[-16.59,66.09],[-16.53,66.51],[-14.71,66.37],[-15.07,66.14]]]]},"properties":{"name":"Iceland"},"id":"IS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[78.08,35.45],[79.53,32.75],[78.4,32.55],[78.77,31.31],[81.03,30.2],[80.06,28.84],[82.07,27.91],[83.29,27.34],[84.15,27.51],[85.86,26.57],[88.01,26.36],[88.14,27.87],[88.83,28.01],[88.92,27.32],[89.64,26.72],[92.07,26.86],[91.66,27.76],[92.54,27.86],[94.65,29.33],[95.39,29.04],[96.08,29.47],[96.62,28.79],[96.4,28.35],[97.35,28.22],[96.89,27.61],[97.14,27.09],[96.19,27.27],[95.14,26.61],[94.15,23.86],[93.34,24.08],[93.2,22.26],[92.6,21.98],[92.28,23.71],[91.61,22.94],[91.16,23.64],[92.41,25.03],[89.85,25.29],[89.74,26.16],[88.43,26.55],[88.11,25.84],[89.01,25.29],[88.04,24.68],[88.75,24.22],[89.06,22.12],[89.07,21.61],[88.71,21.57],[88.67,22.2],[88.25,21.55],[88.2,22.16],[87.91,22.42],[88.17,22.09],[86.96,21.38],[87.03,20.67],[86.42,19.98],[85.43,19.89],[82.36,17.1],[82.3,16.58],[80.28,15.7],[79.86,10.29],[79.32,10.28],[78.91,9.48],[79.45,9.15],[78.4,9.09],[77.54,8.07],[76.58,8.88],[73.45,16.06],[72.66,19.87],[72.93,20.77],[72.56,21.38],[73.13,21.75],[72.5,21.98],[72.92,22.27],[72.15,22.28],[72.11,21.2],[70.82,20.7],[68.94,22.29],[70.17,22.55],[70.51,23.1],[69.22,22.84],[68.43,23.43],[68.74,23.84],[68.2,23.77],[68.78,24.33],[71.11,24.42],[69.58,27.17],[70.37,28.02],[71.9,27.96],[74.69,31.05],[74.61,31.88],[75.38,32.21],[74.02,33.19],[74.3,33.98],[73.94,34.65],[76.87,34.66],[77.82,35.5],[78.08,35.45]]]]},"properties":{"name":"India"},"id":"IN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[120.03,-9.38],[120.72,-10.2],[118.93,-9.56],[120.03,-9.38]]],[[[125.16,-9.07],[125.13,-9.44],[124.44,-10.16],[123.49,-10.32],[124.05,-9.34],[124.34,-9.46],[124.45,-9.18],[124.95,-8.95],[125.16,-9.07]]],[[[116.55,-8.78],[115.84,-8.76],[116.39,-8.2],[116.55,-8.78]]],[[[124.58,-8.14],[125.14,-8.33],[124.35,-8.45],[124.58,-8.14]]],[[[118.31,-8.37],[119,-8.31],[119.18,-8.72],[116.75,-9.01],[117.12,-8.38],[117.97,-8.75],[118.28,-8.59],[117.74,-8.15],[118.31,-8.37]]],[[[122.98,-8.15],[122.83,-8.6],[121.77,-8.89],[119.8,-8.72],[120.52,-8.26],[122.29,-8.64],[122.98,-8.15]]],[[[115.5,-8.18],[115.13,-8.85],[114.45,-8.1],[115.5,-8.18]]],[[[126.72,-7.67],[125.77,-8.01],[125.97,-7.66],[126.72,-7.67]]],[[[138.97,-7.56],[138.44,-8.38],[137.64,-8.43],[138.15,-7.51],[138.97,-7.56]]],[[[131.74,-7.21],[131.11,-8],[131.24,-7.48],[131.74,-7.21]]],[[[113.99,-6.88],[113.5,-7.23],[112.69,-7.05],[113.99,-6.88]]],[[[106.16,-6.01],[108.31,-6.26],[108.73,-6.82],[110.39,-6.98],[110.92,-6.41],[112.56,-6.91],[112.85,-7.6],[114.45,-7.8],[114.37,-8.52],[114.62,-8.75],[108.16,-7.78],[105.24,-6.81],[106.16,-6.01]]],[[[134.58,-5.43],[134.73,-5.97],[134.3,-6.03],[134.58,-5.43]]],[[[123.21,-4.7],[122.65,-5.69],[122.9,-4.49],[123.21,-4.7]]],[[[126.99,-3.14],[127.24,-3.62],[126.7,-3.83],[126.02,-3.35],[126.99,-3.14]]],[[[129.81,-2.92],[130.58,-3.13],[130.83,-3.87],[128.17,-3.07],[127.91,-3.54],[128.17,-2.86],[129.81,-2.92]]],[[[107.83,-2.54],[108.27,-2.76],[108.07,-3.24],[107.61,-3.21],[107.83,-2.54]]],[[[133.59,-2.53],[133.5,-2.43],[133.61,-2.48],[133.59,-2.53]]],[[[134.57,-2.45],[134.52,-2.4],[134.57,-2.29],[134.57,-2.45]]],[[[134.37,-2.16],[134.33,-2.09],[134.39,-2],[134.37,-2.16]]],[[[130.19,-2.06],[129.72,-1.89],[130.35,-1.68],[130.19,-2.06]]],[[[125.01,-1.72],[125.32,-1.89],[124.33,-1.88],[125.01,-1.72]]],[[[136.29,-1.69],[136.9,-1.8],[135.42,-1.61],[136.29,-1.69]]],[[[106.09,-1.77],[106.72,-3.1],[105.13,-2.07],[105.57,-1.53],[106.09,-1.77]]],[[[127.88,-1.43],[128.15,-1.68],[127.38,-1.63],[127.88,-1.43]]],[[[133.11,-0.54],[134.11,-0.84],[134.16,-2.32],[135,-3.34],[137.86,-1.47],[141,-2.61],[141.01,-9.13],[139.99,-8.19],[140.15,-7.88],[138.91,-8.3],[139.1,-7.56],[138.66,-7.2],[139.22,-7.16],[138.56,-6.91],[139.19,-6.97],[138.06,-5.41],[134.22,-3.96],[133.64,-3.49],[133.83,-2.96],[132.9,-4.09],[132.82,-3.3],[131.96,-2.78],[133.24,-2.42],[133.68,-2.72],[133.94,-2.1],[132.3,-2.27],[130.96,-1.4],[132.27,-0.38],[133.11,-0.54]]],[[[130.88,-0.02],[131.26,-0.39],[130.21,-0.21],[130.88,-0.02]]],[[[97.53,1.42],[97.81,0.55],[97.11,1.39],[97.53,1.42]]],[[[125.14,1.42],[124.25,0.38],[120.24,0.35],[120.07,-0.61],[120.67,-1.4],[121.62,-0.8],[123.45,-0.84],[121.3,-1.8],[122.9,-4.4],[121.55,-4.75],[120.77,-2.61],[120.2,-2.96],[120.46,-5.62],[119.46,-5.56],[119.51,-3.53],[118.92,-3.57],[118.76,-2.77],[119.86,-0.84],[119.62,-0.01],[120.03,0.71],[120.95,1.34],[123.84,0.83],[124.97,1.69],[125.14,1.42]]],[[[127.89,1.8],[127.79,0.8],[128.73,1.56],[128.21,0.78],[128.91,0.2],[127.88,0.31],[128.4,-0.89],[127.67,-0.23],[127.39,1.05],[128.05,2.2],[127.89,1.8]]],[[[116.05,4.28],[117.59,4.17],[117.83,3.7],[117.03,3.59],[118.1,2.31],[117.87,1.88],[119.01,0.98],[117.89,1.12],[117.62,-0.78],[116.74,-1.02],[116.22,-1.78],[116.6,-2.23],[115.98,-3.59],[114.71,-4.18],[114.48,-3.5],[113.06,-2.99],[111.89,-3.57],[111.75,-2.74],[110.24,-2.98],[110.06,-1.33],[109.27,-0.86],[108.85,0.81],[109.65,2.07],[110.56,0.85],[111.83,1],[112.47,1.57],[114.56,1.43],[116.05,4.28]]],[[[95.74,5.59],[97.52,5.25],[100,2.6],[100.94,1.82],[101.06,2.29],[102.93,0.7],[102.54,0.17],[103.74,0.28],[103.36,-0.7],[104.38,-1.04],[104.88,-2.15],[104.53,-2.77],[104.86,-2.29],[105.61,-2.39],[106.06,-3.03],[105.73,-5.9],[105.27,-5.44],[105.14,-5.8],[104.54,-5.51],[104.56,-5.93],[101.63,-3.25],[100.29,-0.81],[99.14,0.26],[98.77,1.75],[95.53,4.68],[95.23,5.57],[95.74,5.59]]]]},"properties":{"name":"Indonesia"},"id":"ID"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[45,39.42],[46.18,38.84],[46.54,38.88],[47.98,39.72],[48.36,39.39],[48.02,38.84],[48.89,38.44],[49.1,37.64],[51.1,36.73],[53.94,36.8],[53.91,37.35],[57.21,38.28],[59.34,37.54],[60.33,36.66],[61.16,36.65],[61.28,35.61],[60.51,34.14],[60.94,33.52],[60.58,33.07],[60.84,31.5],[61.85,31.02],[60.87,29.86],[61.91,28.55],[62.78,28.27],[62.78,27.26],[63.34,27.12],[63.18,26.63],[61.86,26.23],[61.61,25.2],[57.32,25.77],[56.69,27.15],[54.79,26.49],[53.75,26.71],[51.43,27.94],[50.05,30.21],[49.55,30.01],[48.98,30.51],[48.55,29.96],[47.69,31],[47.86,31.8],[47.43,32.4],[46.11,32.97],[45.4,33.98],[45.8,34.91],[46.35,35.82],[45.41,35.99],[44.79,37.15],[44.03,39.38],[44.81,39.63],[45,39.42]]]]},"properties":{"name":"Iran"},"id":"IR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[45.8,34.91],[45.4,33.98],[46.11,32.97],[47.43,32.4],[47.86,31.8],[47.69,31],[48.55,29.96],[47.94,30.02],[47.93,30.02],[47.17,30.02],[46.55,29.1],[44.72,29.2],[42.08,31.11],[39.2,32.15],[38.79,33.38],[41,34.42],[41.29,36.36],[42.36,37.11],[44.79,37.15],[45.41,35.99],[46.35,35.82],[45.8,34.91]]]]},"properties":{"name":"Iraq"},"id":"IQ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-7.41,54.95],[-8.16,54.44],[-6.27,54.1],[-6.01,52.95],[-6.36,52.18],[-9.23,51.48],[-10.34,51.78],[-9.76,52.15],[-10.46,52.18],[-8.82,52.67],[-9.94,52.56],[-8.94,53.26],[-10.18,53.41],[-9.56,53.86],[-10.11,54.23],[-8.47,54.27],[-8.19,54.63],[-8.8,54.69],[-8.32,55.11],[-6.93,55.24],[-7.25,55.07],[-7.41,54.95]]]]},"properties":{"name":"Ireland"},"id":"IE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[35.26,31.79],[35.25,31.79],[35.25,31.81],[35.26,31.79]]],[[[35.62,33.25],[35.65,32.69],[35.55,32.39],[35.28,32.52],[34.88,31.39],[35.48,31.5],[34.98,29.55],[34.9,29.49],[34.27,31.22],[34.33,31.26],[34.49,31.6],[35.1,33.09],[35.62,33.25]]]]},"properties":{"name":"Israel"},"id":"IL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[15.53,38.14],[15.08,36.65],[12.42,37.8],[13.32,38.22],[15.53,38.14]]],[[[9.51,41.15],[9.57,39.15],[8.41,38.96],[8.19,40.91],[9.51,41.15]]],[[[12.13,47],[13.72,46.53],[13.38,46.3],[13.72,45.6],[12.28,45.47],[12.37,44.25],[13.62,43.55],[14.74,42.09],[16.14,41.91],[15.93,41.48],[18.51,40.14],[18.35,39.79],[16.91,40.45],[16.49,39.77],[17.17,38.96],[16.06,37.92],[15.63,38.01],[16.22,38.91],[15.67,40.03],[11.1,42.39],[10.11,44.01],[8.75,44.43],[7.53,43.79],[7.66,44.17],[6.98,44.28],[6.62,45.11],[7.13,45.26],[7.04,45.93],[7.86,45.92],[8.44,46.46],[9.04,45.84],[9.28,46.5],[10.13,46.23],[10.47,46.87],[12.13,47]],[[12.46,43.9],[12.51,43.99],[12.42,43.96],[12.46,43.9]],[[12.45,41.9],[12.46,41.9],[12.45,41.91],[12.45,41.9]]]]},"properties":{"name":"Italy"},"id":"IT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-4.79,5.17],[-7.53,4.35],[-7.42,5.84],[-8.61,6.51],[-8.47,7.56],[-7.95,8.02],[-8.2,8.5],[-7.65,8.38],[-7.97,10.17],[-6.99,10.15],[-6.24,10.74],[-6.11,10.2],[-5.52,10.44],[-4.7,9.7],[-3.63,9.95],[-2.69,9.48],[-2.49,8.2],[-3.25,6.61],[-2.93,5.1],[-4.79,5.17]]]]},"properties":{"name":"Cote d'Ivoire"},"id":"CI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-77.13,17.88],[-78.34,18.36],[-76.95,18.39],[-76.22,17.9],[-77.13,17.88]]]]},"properties":{"name":"Jamaica"},"id":"JM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[131.21,33.6],[131.67,33.65],[131.99,32.83],[131.34,31.37],[130.67,31],[130.81,31.68],[130.64,31.18],[130.23,31.25],[130.16,32.01],[130.61,32.79],[130.21,33.17],[130.35,32.66],[129.75,32.56],[129.58,33.35],[130.69,33.94],[131.21,33.6]]],[[[134.22,34.34],[134.75,33.83],[134.19,33.24],[133.6,33.5],[132.8,32.74],[132.37,33.47],[132.02,33.34],[132.9,34.11],[134.22,34.34]]],[[[141.27,41.34],[142.07,39.55],[141.53,38.27],[140.95,38.15],[140.84,35.74],[140.33,35.13],[139.77,34.95],[139.97,35.66],[138.85,34.59],[138.74,35.12],[138.21,34.6],[137.04,34.56],[137.35,34.72],[136.85,35.08],[136.52,34.69],[136.9,34.27],[135.77,33.45],[135.06,33.88],[135.33,34.72],[132.37,34.36],[132.05,33.77],[130.89,33.92],[130.95,34.42],[133.09,35.58],[136.07,35.65],[136.79,37.36],[137.36,37.5],[136.86,37.09],[137.3,36.75],[138.58,37.4],[140.02,39.38],[139.85,40.6],[140.35,41.25],[141.15,40.86],[141.23,41.23],[140.76,41.17],[141.27,41.34]]],[[[142.05,45.4],[143.77,44.09],[144.78,43.91],[145.34,44.34],[145.26,43.31],[145.82,43.37],[143.99,42.91],[143.24,41.92],[141.79,42.61],[140.46,42.57],[140.28,42.25],[141.2,41.8],[140.07,41.42],[139.84,42.62],[140.47,43.37],[141.41,43.29],[141.58,45.23],[142.05,45.4]]]]},"properties":{"name":"Japan"},"id":"JP"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[69.19,55.34],[70.84,55.3],[71.19,54.1],[73.76,54.07],[73.44,53.44],[76.81,54.45],[76.52,53.99],[77.91,53.27],[80.08,50.76],[80.69,51.31],[81.47,50.74],[83.46,51],[85.26,49.59],[86.77,49.79],[87.35,49.09],[85.76,48.39],[85.53,47.06],[83.04,47.21],[82.32,45.57],[82.56,45.13],[79.87,44.9],[80.52,44.73],[80.82,43.16],[80.38,43.03],[80.23,42.2],[79.19,42.8],[74.29,43.22],[73.58,43.04],[73.52,42.41],[71.75,42.82],[70.97,42.25],[69.06,41.38],[68.46,40.6],[67.94,41.18],[66.72,41.17],[66.53,42],[66.03,42],[66.12,43],[64.93,43.74],[62.03,43.48],[58.57,45.57],[56,45],[56,41.33],[54.17,42.34],[53.01,42.14],[52.44,41.74],[52.74,42.71],[51.27,43.15],[50.24,44.58],[51.57,44.51],[50.95,44.86],[51.41,45.37],[53.23,45.34],[52.73,45.55],[53.19,46.71],[51.19,47.11],[49.22,46.35],[48.56,46.56],[49.03,46.78],[48.2,47.7],[47.38,47.69],[46.5,48.42],[47.52,50.44],[48.8,49.94],[48.7,50.59],[50.77,51.77],[53.43,51.49],[54.52,50.53],[54.65,51.04],[55.69,50.53],[56.51,51.08],[58.34,51.16],[59.54,50.48],[61.38,50.78],[61.69,51.27],[60,51.96],[61.06,52.34],[60.69,52.68],[61.1,52.98],[62.12,53],[61.18,53.31],[61.58,53.51],[60.91,53.62],[61.01,53.95],[65.22,54.32],[69.19,55.34]]]]},"properties":{"name":"Kazakhstan"},"id":"KZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[34.96,29.36],[34.98,29.55],[35.48,31.5],[35.55,32.39],[35.65,32.69],[36.84,32.31],[38.79,33.38],[39.2,32.15],[37.01,31.51],[38,30.5],[37.5,30],[36.07,29.19],[34.96,29.36]]]]},"properties":{"name":"Jordan"},"id":"JO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[35.94,4.62],[39.52,3.41],[40.78,4.29],[41.91,3.98],[40.99,2.83],[41,-0.87],[41.56,-1.67],[40.24,-2.66],[39.2,-4.67],[37.61,-3.5],[37.6,-3],[33.92,-1],[33.91,0.1],[35.01,1.9],[34,4.22],[34.39,4.61],[35.94,4.62]]]]},"properties":{"name":"Kenya"},"id":"KE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[130.64,42.41],[130.7,42.29],[129.7,41.65],[129.71,40.83],[127.51,39.72],[127.39,39.2],[128.36,38.63],[126.69,37.83],[125.59,38.03],[125.34,37.67],[124.66,38.12],[125.65,38.63],[125.14,38.8],[125.45,39.58],[124.62,39.59],[124.37,40.09],[126.91,41.8],[128.16,41.38],[128.06,42],[129.71,42.44],[129.91,43.01],[130.6,42.42],[130.64,42.41]]]]},"properties":{"name":"Korea, North"},"id":"KP"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[128.53,38.33],[129.43,37.06],[129.44,35.48],[126.56,34.3],[126.25,35.12],[126.87,36.05],[126.12,36.71],[126.99,36.91],[126.69,37.83],[128.36,38.63],[128.53,38.33]]]]},"properties":{"name":"Korea, South"},"id":"KR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[47.93,30.02],[47.94,30.02],[48.17,29.55],[47.71,29.38],[48.42,28.55],[46.55,29.1],[47.17,30.02],[47.93,30.02]]]]},"properties":{"name":"Kuwait"},"id":"KW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[80.23,42.2],[78.08,41.04],[76.87,41.01],[76.35,40.35],[74.86,40.52],[73.66,39.45],[69.31,39.54],[69.54,40.13],[70.98,40.24],[73.17,40.82],[71.69,41.56],[71.42,41.12],[70.19,41.53],[71.28,42.2],[70.97,42.25],[71.75,42.82],[73.52,42.41],[73.58,43.04],[74.29,43.22],[79.19,42.8],[80.23,42.2]]]]},"properties":{"name":"Kyrgyzstan"},"id":"KG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[107.55,14.71],[106,14.37],[106.06,13.93],[105.21,14.35],[105.64,15.66],[104.75,16.53],[104.72,17.5],[103.4,18.43],[102.68,17.82],[102.09,18.21],[100.92,17.57],[101.28,19.56],[100.5,19.53],[100.58,20.16],[100.09,20.35],[101.15,21.57],[101.79,21.14],[101.57,22.21],[102.14,22.4],[102.98,21.74],[103.17,20.85],[104.64,20.66],[104.38,20.44],[104.98,20],[103.88,19.29],[105.19,18.64],[106.69,16.46],[107.46,16.08],[107.18,15.78],[107.7,15.27],[107.55,14.71]]]]},"properties":{"name":"Laos"},"id":"LA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[35.62,33.25],[35.1,33.09],[35.97,34.65],[36.62,34.2],[35.62,33.25]]]]},"properties":{"name":"Lebanon"},"id":"LB"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[27.56,-30.4],[27.01,-29.63],[28.57,-28.61],[29.43,-29.28],[29.17,-29.91],[28.08,-30.65],[27.56,-30.4]]]]},"properties":{"name":"Lesotho"},"id":"LS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[21.07,56.44],[21.73,57.58],[22.61,57.76],[23.79,56.97],[24.41,57.26],[24.31,57.87],[25.29,58.08],[27.37,57.54],[27.86,57.3],[28.17,56.15],[26.61,55.67],[25,56.3],[21.05,56.08],[21.07,56.44]]]]},"properties":{"name":"Latvia"},"id":"LV"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-10.81,6.4],[-11.49,6.93],[-10.27,8.49],[-9.48,8.35],[-9.49,7.36],[-8.47,7.56],[-8.61,6.51],[-7.42,5.84],[-7.53,4.35],[-10.81,6.4]]]]},"properties":{"name":"Liberia"},"id":"LR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.95,27.82],[9.54,30.23],[10.21,30.73],[10.29,31.69],[11.57,32.44],[11.53,33.17],[15.17,32.4],[15.76,31.39],[19,30.27],[20.06,30.86],[20.08,32.18],[21.62,32.93],[25.15,31.65],[24.71,30.17],[25,22],[25,20],[24,20],[24,19.5],[16,23.45],[15,23],[14.23,22.61],[11.99,23.52],[11.56,24.3],[10.25,24.61],[9.4,26.15],[9.87,26.51],[9.95,27.82]]]]},"properties":{"name":"Libya"},"id":"LY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.53,47.27],[9.6,47.06],[9.47,47.06],[9.53,47.27]]]]},"properties":{"name":"Liechtenstein"},"id":"LI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[25,56.3],[26.61,55.67],[26.82,55.28],[25.79,54.87],[25.79,54.16],[23.5,53.95],[22.79,54.36],[22.84,54.9],[21.43,55.25],[21.26,55.25],[21.05,56.08],[25,56.3]]]]},"properties":{"name":"Lithuania"},"id":"LT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[6.03,50.18],[6.13,50.13],[6.36,49.46],[5.81,49.55],[6.03,50.18]]]]},"properties":{"name":"Luxembourg"},"id":"LU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[113.53,22.19],[113.55,22.21],[113.55,22.18],[113.53,22.19]]]]},"properties":{"name":"Macau"},"id":"MO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[49.36,-12.09],[50.43,-15.58],[50.17,-15.98],[49.63,-15.56],[49.79,-16.83],[47.13,-24.93],[45.21,-25.59],[44.02,-24.99],[43.24,-22.28],[44.48,-19.97],[43.94,-17.48],[44.46,-16.18],[46.48,-15.97],[46.34,-15.62],[47.22,-15.45],[47.45,-14.67],[47.43,-15.11],[48,-14.77],[47.91,-13.6],[48.74,-13.43],[48.73,-12.43],[49.36,-12.09]]]]},"properties":{"name":"Madagascar"},"id":"MG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[34.73,-12.1],[34.7,-12.08],[34.72,-12.03],[34.75,-12.04],[34.73,-12.1]]],[[[34.62,-12.04],[34.6,-12.01],[34.63,-12.01],[34.62,-12.04]]],[[[33.13,-9.49],[34.33,-9.73],[34.97,-11.57],[34.38,-12.16],[34.57,-13.34],[35.92,-14.89],[35.81,-16.02],[35.14,-16.55],[35.29,-17.13],[34.26,-15.9],[34.52,-14.57],[33.63,-14.54],[33.22,-14.01],[32.68,-13.61],[33.55,-12.36],[33.25,-10.89],[33.7,-10.56],[32.94,-9.41],[33.13,-9.49]]]]},"properties":{"name":"Malawi"},"id":"MW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[100.65,6.45],[101.14,5.63],[102.1,6.24],[103.41,4.86],[103.44,2.93],[104.28,1.37],[103.96,1.65],[103.51,1.27],[101.28,2.84],[100.13,6.42],[100.65,6.45]]],[[[116.79,6.58],[117.18,6.99],[117.74,6.39],[117.5,5.9],[118.01,6.06],[117.96,5.68],[119.28,5.34],[118.14,4.89],[118.55,4.35],[117.59,4.17],[116.05,4.28],[114.56,1.43],[112.47,1.57],[111.83,1],[110.56,0.85],[109.65,2.07],[111.38,1.34],[111,1.58],[111.44,2.69],[113.01,3.16],[114.1,4.59],[114.64,4.02],[115.02,4.9],[115.03,4.82],[115.34,4.31],[115.22,4.8],[115.15,4.9],[116.76,7.02],[116.79,6.58]]]]},"properties":{"name":"Malaysia"},"id":"MY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[73.18,-0.69],[73.16,-0.68],[73.17,-0.68],[73.18,-0.69]]],[[[73.2,-0.68],[73.19,-0.68],[73.2,-0.67],[73.2,-0.68]]],[[[73.13,-0.67],[73.13,-0.67],[73.12,-0.65],[73.13,-0.67]]],[[[73.23,-0.65],[73.23,-0.63],[73.24,-0.62],[73.23,-0.65]]],[[[73.12,-0.64],[73.09,-0.61],[73.09,-0.58],[73.12,-0.64]]],[[[73.25,-0.61],[73.24,-0.59],[73.25,-0.58],[73.25,-0.61]]]]},"properties":{"name":"Maldives"},"id":"MV"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-8.53,11.49],[-9.16,12.49],[-10.65,11.89],[-11.37,12.41],[-12.24,14.76],[-11.49,15.65],[-10.9,15.11],[-9.34,15.7],[-5.5,15.5],[-6.58,25],[-4.81,25],[1.8,20.31],[3.23,19.82],[3.33,18.98],[4.25,19.15],[4.25,18.65],[4.2,16.39],[3.52,15.36],[0.24,14.92],[-0.73,15.08],[-2.47,14.29],[-3.44,13.17],[-3.96,13.5],[-4.42,12.3],[-5.27,11.84],[-5.52,10.44],[-6.11,10.2],[-6.24,10.74],[-6.99,10.15],[-7.97,10.17],[-8.29,11.01],[-8.68,10.97],[-8.53,11.49]]]]},"properties":{"name":"Mali"},"id":"ML"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[14.56,35.82],[14.37,35.85],[14.33,35.98],[14.56,35.82]]],[[[14.27,36.01],[14.18,36.06],[14.34,36.03],[14.27,36.01]]]]},"properties":{"name":"Malta"},"id":"MT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-60.86,14.4],[-61.17,14.88],[-60.94,14.74],[-60.86,14.4]]]]},"properties":{"name":"Martinique"},"id":"MQ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.66,26.13],[-4.81,25],[-6.58,25],[-5.5,15.5],[-9.34,15.7],[-10.9,15.11],[-11.49,15.65],[-12.24,14.76],[-14.35,16.64],[-16.28,16.52],[-16.53,16.06],[-16.04,17.73],[-16.51,19.35],[-16.2,20.22],[-16.92,21.16],[-17.05,20.76],[-16.95,21.34],[-15.74,21.34],[-13,21.34],[-13.11,22.89],[-12,23.45],[-12,26],[-8.67,26],[-8.67,27.29],[-6.66,26.13]]]]},"properties":{"name":"Mauritania"},"id":"MR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[57.57,-20.51],[57.3,-20.45],[57.62,-19.99],[57.57,-20.51]]]]},"properties":{"name":"Mauritius"},"id":"MU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-113.05,31.97],[-111.05,31.33],[-106.4,31.75],[-103.38,29.02],[-102.31,29.89],[-101.41,29.77],[-99.51,27.57],[-99.1,26.43],[-97.14,25.97],[-97.89,22.6],[-95.91,18.83],[-94.48,18.15],[-92,18.73],[-91.48,18.44],[-90.45,19.98],[-90.33,21.03],[-87.03,21.59],[-86.77,21.15],[-87.74,19.67],[-87.41,19.58],[-87.85,18.19],[-88.04,18.87],[-88.3,18.48],[-88.38,18.48],[-89.14,17.82],[-90.98,17.82],[-90.98,17.26],[-91.44,17.24],[-90.44,16.09],[-91.73,16.07],[-92.25,14.55],[-92.77,15.17],[-93.93,16.09],[-94.37,16.29],[-94.06,16.04],[-94.72,16.2],[-94.58,16.32],[-94.79,16.26],[-94.86,16.43],[-96.48,15.64],[-97.79,15.97],[-104.98,19.34],[-105.68,20.39],[-105.24,20.57],[-105.54,20.79],[-105.19,21.44],[-105.82,22.66],[-108.04,25.07],[-109.11,25.53],[-108.83,25.8],[-109.39,25.76],[-109.1,26.28],[-110.53,27.37],[-110.51,27.87],[-112.16,28.97],[-113.09,31.23],[-115.03,31.97],[-114.55,30],[-111.56,26.72],[-110.66,24.34],[-109.41,23.47],[-110,22.89],[-112.09,24.76],[-112.4,26.27],[-114.99,27.72],[-113.98,27.7],[-114.31,27.87],[-114.06,28.53],[-115.69,29.77],[-117.12,32.54],[-114.72,32.72],[-113.05,31.97]]]]},"properties":{"name":"Mexico"},"id":"MX"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[7.44,43.76],[7.39,43.73],[7.42,43.77],[7.44,43.76]]]]},"properties":{"name":"Monaco"},"id":"MC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[91.02,46.6],[90.07,47.89],[88.65,48.18],[87.84,49.17],[92.32,50.81],[97.34,49.73],[98.29,50.29],[97.83,51],[98.93,52.14],[102.22,51.33],[102.33,50.57],[102.92,50.32],[106.66,50.34],[108.57,49.33],[110.79,49.15],[114.31,50.28],[116.71,49.83],[115.59,47.92],[117.37,47.65],[118.54,47.99],[119.9,46.68],[117.42,46.58],[113.64,44.75],[111.98,45.09],[111.42,44.38],[111.96,43.69],[110.44,42.78],[107.47,42.47],[105.01,41.58],[100.84,42.68],[96.38,42.73],[95.42,44.29],[90.9,45.25],[91.02,46.6]]]]},"properties":{"name":"Mongolia"},"id":"MN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[28.12,46.85],[26.63,48.26],[27.76,48.45],[29.14,47.99],[29.95,46.81],[30.12,46.39],[28.99,46.48],[28.21,45.45],[28.12,46.85]]]]},"properties":{"name":"Moldova"},"id":"MD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[18.46,42.57],[19.23,43.51],[20.35,42.89],[20.07,42.56],[19.65,42.62],[19.37,41.85],[18.5,42.45],[18.46,42.57]]]]},"properties":{"name":"Montenegro"},"id":"ME"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-62.17,16.67],[-62.24,16.71],[-62.2,16.81],[-62.17,16.67]]]]},"properties":{"name":"Montserrat"},"id":"MS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-9.05,32.73],[-6.81,34.05],[-5.92,35.79],[-5.4,35.92],[-4.42,35.15],[-2.99,35.42],[-2.21,35.09],[-1.75,34.75],[-1.18,32.11],[-3.82,31.7],[-3.63,30.97],[-8.67,28.71],[-8.67,27.67],[-13.17,27.67],[-10.14,29.43],[-9.64,30.17],[-9.81,31.45],[-9.05,32.73]]]]},"properties":{"name":"Morocco"},"id":"MA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[40.5,-11.03],[40.59,-15.48],[39.09,-16.99],[36.84,-17.88],[36.25,-18.89],[34.9,-19.86],[34.62,-19.62],[35.55,-22.23],[35.5,-24.11],[32.81,-25.61],[32.89,-26.85],[32.13,-26.84],[31.97,-25.96],[32.02,-24.46],[31.3,-22.41],[32.49,-21.34],[33.02,-19.94],[32.7,-18.94],[32.99,-17.27],[32.98,-16.71],[30.42,-16.01],[30.42,-15.63],[30.21,-14.98],[33.22,-14.01],[33.63,-14.54],[34.52,-14.57],[34.26,-15.9],[35.29,-17.13],[35.14,-16.55],[35.81,-16.02],[35.92,-14.89],[34.57,-13.34],[34.38,-12.16],[34.97,-11.57],[37.46,-11.73],[40.44,-10.48],[40.5,-11.03]],[[34.6,-12.01],[34.62,-12.04],[34.63,-12.01],[34.6,-12.01]],[[34.72,-12.03],[34.7,-12.08],[34.73,-12.1],[34.75,-12.04],[34.72,-12.03]]]]},"properties":{"name":"Mozambique"},"id":"MZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[56.04,24.94],[56.37,24.98],[57.16,23.94],[58.61,23.63],[59.81,22.23],[58.52,20.41],[57.83,20.22],[57.8,18.97],[56.81,18.75],[56.35,17.93],[55.44,17.83],[55.04,17.02],[53.11,16.64],[52,19],[55,20],[55.67,22],[55.2,22.7],[56.04,24.94]]],[[[56.37,26.38],[56.27,25.64],[56.18,25.65],[56.08,26.07],[56.37,26.38]]]]},"properties":{"name":"Oman"},"id":"OM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[23.28,-17.66],[23.48,-17.63],[24.97,-17.56],[25.26,-17.8],[23.62,-18.49],[23.3,-18],[20.99,-18.32],[20.99,-22],[20,-22.01],[20,-24.77],[20,-28.42],[18.18,-28.91],[17.4,-28.71],[17.06,-28.03],[16.49,-28.58],[15.29,-27.32],[14.51,-22.55],[11.8,-18.08],[11.75,-17.25],[13.16,-16.95],[13.99,-17.42],[18.45,-17.39],[20.85,-18.02],[23.28,-17.66]]]]},"properties":{"name":"Namibia"},"id":"NA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[166.93,-0.55],[166.93,-0.49],[166.96,-0.51],[166.93,-0.55]]]]},"properties":{"name":"Nauru"},"id":"NR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[82.07,27.91],[80.06,28.84],[81.03,30.2],[82.1,30.34],[86.01,27.88],[88.14,27.87],[88.01,26.36],[85.86,26.57],[84.15,27.51],[83.29,27.34],[82.07,27.91]]]]},"properties":{"name":"Nepal"},"id":"NP"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[3.76,51.35],[3.37,51.37],[4.24,51.35],[3.76,51.35]]],[[[5.76,52.42],[5.43,52.26],[5.14,52.38],[5.64,52.6],[5.86,52.54],[5.76,52.42]]],[[[5.42,52.64],[5.05,52.39],[5.04,52.63],[5.42,52.64]]],[[[6.87,53.42],[7.21,53.24],[6.69,52.55],[7.07,52.39],[6.83,51.97],[5.96,51.81],[6.01,50.76],[5.04,51.49],[4.25,51.38],[3.44,51.54],[4.29,51.45],[3.69,51.71],[4.17,51.69],[3.87,51.81],[4.58,52.46],[5.42,52.25],[5.77,52.41],[5.88,52.51],[5.86,52.61],[5.6,52.66],[5.6,52.76],[5.72,52.84],[5.37,52.88],[5.42,52.96],[5.36,53.07],[5.1,52.95],[5.3,52.71],[5.03,52.63],[5.03,52.38],[4.58,52.47],[4.73,52.96],[6.87,53.42]]]]},"properties":{"name":"Netherlands"},"id":"NL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-68.2,12.22],[-68.25,12.02],[-68.42,12.26],[-68.2,12.22]]],[[[-68.97,12.2],[-69.16,12.37],[-68.75,12.04],[-68.97,12.2]]]]},"properties":{"name":"Netherlands Antilles"},"id":"AN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-69.88,12.41],[-70.06,12.54],[-70.06,12.63],[-69.88,12.41]]]]},"properties":{"name":"Aruba"},"id":"AW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[164.32,-20.33],[167.01,-22.32],[165.26,-21.56],[163.99,-20.09],[164.32,-20.33]]]]},"properties":{"name":"New Caledonia"},"id":"NC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[167.42,-16.11],[167.77,-16.54],[167.18,-15.9],[167.42,-16.11]]],[[[166.8,-15.16],[167.06,-14.95],[167.24,-15.52],[166.76,-15.64],[166.59,-14.62],[166.8,-15.16]]]]},"properties":{"name":"Vanuatu"},"id":"VU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[172.86,-40.51],[173.11,-41.31],[174.32,-41],[174.29,-41.75],[172.76,-43.24],[173.09,-43.86],[171.29,-44.34],[170.78,-45.88],[169.01,-46.68],[166.48,-46.01],[168.37,-44.04],[170.79,-42.9],[172.11,-40.89],[172.86,-40.51]]],[[[173.04,-34.44],[173.27,-35.02],[174.32,-35.23],[174.85,-36.85],[175.58,-37.24],[175.35,-36.48],[175.84,-36.75],[175.99,-37.64],[177.16,-38.01],[178.57,-37.71],[177.91,-39.26],[177.05,-39.2],[176.83,-40.18],[175.32,-41.61],[174.59,-41.28],[175.16,-40.1],[173.75,-39.29],[174.59,-38.82],[174.97,-37.75],[174.55,-37.07],[174.89,-37.06],[174.19,-36.5],[174.51,-36.23],[173.91,-35.87],[174.08,-36.41],[173.4,-35.57],[173.66,-35.31],[173.09,-35.21],[172.72,-34.5],[173.04,-34.44]]]]},"properties":{"name":"New Zealand"},"id":"NZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-83.24,14.98],[-83.13,14.99],[-83.83,11.87],[-83.65,10.92],[-85.09,11.01],[-85.69,11.08],[-87.69,12.91],[-87.3,12.99],[-84.91,14.81],[-83.24,14.98]]]]},"properties":{"name":"Nicaragua"},"id":"NI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[4.25,18.65],[4.25,19.15],[5.81,19.45],[11.99,23.52],[14.23,22.61],[15,23],[15.2,21.5],[16,20.35],[15.49,16.91],[13.47,14.46],[13.63,13.72],[12.46,13.07],[10.72,13.39],[9.63,12.8],[7.82,13.35],[6.93,13],[5.87,13.75],[4.14,13.48],[3.6,11.69],[2.84,12.4],[2.4,11.9],[2.14,12.69],[0.99,13.05],[1.29,13.35],[0.6,13.7],[0.24,14.92],[3.52,15.36],[4.2,16.39],[4.25,18.65]]]]},"properties":{"name":"Niger"},"id":"NE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[5.87,13.75],[6.93,13],[7.82,13.35],[9.63,12.8],[10.72,13.39],[12.46,13.07],[13.63,13.72],[14.07,13.08],[14.65,11.58],[13.81,11.06],[11.86,7.08],[11.34,6.44],[10.62,7.07],[9.8,6.8],[8.59,4.81],[6.96,4.73],[7.01,4.37],[6.77,4.77],[6.85,4.35],[6.1,4.27],[5.45,4.92],[5.64,5.54],[5.26,5.44],[5.5,5.62],[4.53,6.3],[2.72,6.37],[2.79,9.04],[3.86,10.58],[3.6,11.69],[4.14,13.48],[5.87,13.75]]]]},"properties":{"name":"Nigeria"},"id":"NG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-169.89,-19.15],[-169.93,-19.02],[-169.82,-18.97],[-169.89,-19.15]]]]},"properties":{"name":"Niue"},"id":"NU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[167.96,-29.08],[167.91,-29.01],[168,-29.03],[167.96,-29.08]]]]},"properties":{"name":"Norfolk Island"},"id":"NF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[13.97,68.24],[14.14,68.24],[13.45,68.07],[13.97,68.24]]],[[[15.03,68.35],[14.2,68.15],[15.17,68.45],[15.03,68.35]]],[[[15.38,68.85],[15.06,68.57],[14.37,68.68],[15.38,68.85]]],[[[15.99,68.75],[15.74,68.53],[16.57,68.65],[14.99,68.25],[15.64,68.95],[15.99,68.75]]],[[[17.64,69.52],[18.07,69.43],[17.88,69.24],[18,69.19],[16.78,69.06],[17.64,69.52]]],[[[18.89,69.69],[18,69.59],[18.69,69.88],[18.89,69.69]]],[[[23.6,70.58],[23.23,70.28],[22.85,70.41],[23.6,70.58]]],[[[23.45,70.78],[22.78,70.52],[21.95,70.65],[23.45,70.78]]],[[[5.34,61.59],[4.94,61.68],[6.76,61.87],[5.15,61.89],[5.15,62.21],[6.36,62.06],[5.92,62.22],[6.31,62.37],[6.54,62.1],[6.39,62.37],[6.7,62.45],[6.87,62.42],[7,62.25],[6.94,62.11],[7.04,62.09],[7.42,62.23],[6.98,62.31],[6.92,62.36],[6.97,62.37],[6.78,62.48],[6.26,62.45],[6.65,62.5],[6.25,62.57],[8.15,62.69],[7.04,62.97],[8.55,62.65],[7.88,63.01],[8.53,62.84],[8.16,63.12],[9.65,63.62],[10.26,63.26],[10.05,63.41],[10.91,63.45],[11.49,64.02],[11.31,64.12],[10.57,63.8],[11.08,63.84],[10.94,63.74],[10.05,63.5],[9.79,63.66],[10.1,63.76],[9.54,63.76],[12.94,65.31],[12.25,65.23],[12.67,65.92],[13.18,65.85],[12.67,66.07],[14.15,66.32],[13.03,66.19],[13.54,66.3],[12.97,66.52],[13.73,66.6],[13.23,66.71],[13.99,66.78],[13.55,66.93],[15.74,67.17],[14.36,67.23],[15.9,67.56],[14.76,67.81],[15.97,68.25],[16.22,67.89],[16.5,67.79],[16.21,68],[16.52,67.95],[16.36,68.03],[16.72,68.07],[16.1,68.28],[16.81,68.13],[16.32,68.37],[17.35,68.17],[17.55,68.52],[16.46,68.51],[17.68,68.65],[17.24,68.75],[17.79,68.76],[17.43,68.91],[18.15,69.15],[18,69.28],[18.26,69.49],[19.44,69.23],[18.94,69.61],[19.76,69.81],[19.68,69.43],[20.3,69.97],[19.95,69.26],[21.31,70.02],[22.1,69.74],[21.8,70.03],[22.1,70.11],[21.3,70.25],[23.31,69.94],[24.73,70.62],[24.25,70.78],[24.59,70.96],[25.91,70.89],[25.07,70.5],[25.23,70.09],[26.57,70.94],[26.5,70.36],[27.03,70.47],[27.65,71.11],[28.55,70.97],[27.65,70.61],[28.3,70.71],[27.85,70.48],[28.34,70.51],[28.04,70.06],[29.04,70.87],[31.08,70.29],[28.61,70.11],[29.67,69.97],[29.49,69.66],[30.85,69.79],[28.96,69.05],[29.18,69.64],[28.17,69.91],[26.45,69.93],[24.93,68.58],[22.4,68.71],[21.32,69.33],[20.58,69.06],[20.1,69.04],[20.35,68.79],[19.94,68.34],[18.09,68.51],[17.88,67.95],[16.73,67.9],[15.47,66.28],[14.5,66.13],[14.49,65.31],[13.66,64.58],[14.12,64.47],[13.99,64.02],[12.14,63.58],[12.12,61.73],[12.86,61.36],[12.21,61],[12.49,60.11],[11.82,59.85],[11.43,58.99],[10.8,59.19],[10.53,59.88],[10.23,59.04],[9.54,59.11],[8.21,58.12],[6.6,58.07],[5.46,58.74],[6.62,59.05],[5.87,59.07],[6.47,59.56],[5.18,59.51],[7.11,60.49],[5.75,59.99],[5.73,60.39],[5.14,60.35],[5.7,60.69],[4.93,60.8],[6.59,61.15],[7.11,60.86],[7.57,61.48],[5.4,61.07],[4.95,61.26],[5.63,61.36],[4.95,61.41],[5.8,61.45],[5.34,61.59]],[[5.34,61.59],[5.35,61.59],[5.28,61.59],[5.34,61.59]]]]},"properties":{"name":"Norway"},"id":"NO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[145.28,14.16],[145.12,14.12],[145.24,14.19],[145.28,14.16]]],[[[145.62,14.91],[145.57,15.01],[145.63,15.08],[145.62,14.91]]],[[[145.74,15.13],[145.68,15.11],[145.82,15.27],[145.74,15.13]]],[[[145.74,18.04],[145.78,18.17],[145.82,18.16],[145.74,18.04]]],[[[145.68,18.72],[145.66,18.81],[145.71,18.77],[145.68,18.72]]]]},"properties":{"name":"Northern Mariana Islands"},"id":"MP"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[163.01,5.26],[162.9,5.31],[163.02,5.38],[163.01,5.26]]],[[[158.3,6.79],[158.12,6.93],[158.32,6.93],[158.3,6.79]]],[[[138.21,9.52],[138.06,9.42],[138.13,9.57],[138.21,9.52]]]]},"properties":{"name":"Micronesia, Federated States of"},"id":"FM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[168.77,7.3],[168.79,7.29],[168.67,7.33],[168.77,7.3]]],[[[168.57,7.4],[168.55,7.42],[168.56,7.47],[168.57,7.4]]],[[[168.97,7.57],[168.94,7.62],[168.97,7.6],[168.97,7.57]]]]},"properties":{"name":"Marshall Islands"},"id":"MH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[134.56,7.37],[134.49,7.44],[134.63,7.73],[134.56,7.37]]]]},"properties":{"name":"Palau"},"id":"PW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[74.82,37.02],[75.86,36.66],[76.17,35.82],[77.82,35.5],[76.87,34.66],[73.94,34.65],[74.3,33.98],[74.02,33.19],[75.38,32.21],[74.61,31.88],[74.69,31.05],[71.9,27.96],[70.37,28.02],[69.58,27.17],[71.11,24.42],[68.78,24.33],[68.2,23.77],[67.49,23.89],[66.36,25.61],[64.65,25.16],[61.61,25.2],[61.86,26.23],[63.18,26.63],[63.34,27.12],[62.78,27.26],[62.78,28.27],[61.91,28.55],[60.87,29.86],[62.48,29.41],[66.26,29.85],[66.72,31.21],[69.33,31.94],[69.51,33.03],[70.33,33.33],[69.91,34.04],[71.08,34.06],[71.65,35.42],[71.24,36.13],[72.56,36.82],[74.57,37.03],[74.82,37.02]]]]},"properties":{"name":"Pakistan"},"id":"PK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-79.46,9.57],[-77.37,8.67],[-77.22,7.94],[-77.89,7.23],[-78.43,8.05],[-78.14,8.4],[-77.78,8.15],[-78.98,9.14],[-80.47,8.21],[-79.99,7.52],[-80.43,7.24],[-81.74,8.16],[-82.9,8.03],[-82.93,9.47],[-82.56,9.56],[-82.24,9],[-81.2,8.78],[-79.46,9.57]]]]},"properties":{"name":"Panama"},"id":"PA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[152.24,-4.21],[152.1,-5.46],[150.47,-6.28],[148.32,-5.68],[149.88,-5.54],[150.09,-5.01],[150.16,-5.55],[150.92,-5.49],[151.68,-4.91],[151.51,-4.2],[152.24,-4.21]]],[[[141.89,-2.97],[144.51,-3.82],[145.74,-4.8],[145.77,-5.49],[147.48,-5.97],[147.87,-6.66],[146.96,-6.75],[147.18,-7.46],[148.14,-8.07],[148.6,-9.08],[149.31,-9.02],[149.22,-9.47],[150.01,-9.63],[149.91,-10.05],[150.88,-10.23],[150.21,-10.7],[147.95,-10.15],[146.09,-8.09],[144.52,-7.5],[144.21,-7.8],[143.66,-7.47],[143.96,-7.98],[143.36,-7.9],[143.61,-8.24],[142.14,-8.23],[143.11,-8.47],[143.33,-9.03],[141.01,-9.13],[141,-2.61],[141.89,-2.97]]]]},"properties":{"name":"Papua New Guinea"},"id":"PG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-54.33,-24.68],[-54.6,-25.57],[-54.7,-26.44],[-55.74,-27.44],[-58.6,-27.32],[-57.58,-25.55],[-57.76,-25.18],[-61.01,-23.81],[-62.64,-22.24],[-61.74,-19.65],[-59.1,-19.35],[-58.16,-20.17],[-57.99,-22.09],[-55.85,-22.29],[-55.41,-23.96],[-54.41,-23.92],[-54.33,-24.68]]]]},"properties":{"name":"Paraguay"},"id":"PY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-78.71,-4.58],[-78.34,-3.42],[-75.56,-1.53],[-75.22,-0.97],[-75.63,-0.11],[-75.29,-0.12],[-73.56,-1.37],[-72.88,-2.51],[-71.7,-2.15],[-70.29,-2.51],[-70.72,-3.78],[-69.96,-4.24],[-70.77,-4.15],[-72.85,-5.12],[-73.12,-6.45],[-74.01,-7.54],[-72.96,-8.98],[-73.21,-9.41],[-72.37,-9.49],[-72.14,-10],[-70.51,-9.43],[-70.63,-11.01],[-69.57,-10.95],[-68.67,-12.5],[-69.42,-15.62],[-68.82,-16.34],[-69.5,-17.51],[-70.41,-18.35],[-75.93,-14.66],[-78.99,-8.23],[-79.98,-6.76],[-81.17,-6.09],[-80.87,-5.65],[-81.29,-4.31],[-80.34,-3.38],[-80.47,-4.44],[-79.65,-4.43],[-79.05,-5.01],[-78.71,-4.58]]]]},"properties":{"name":"Peru"},"id":"PE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[126.05,9.23],[126.59,7.28],[126.19,6.27],[125.65,7.24],[125.41,5.56],[125.26,6.09],[124.19,6.21],[124.27,7.37],[123.68,7.81],[122.83,7.28],[122.62,7.77],[121.92,6.99],[122.22,7.96],[123.38,8.73],[123.82,8.48],[123.67,7.95],[124.73,8.49],[124.8,9],[125.51,9.01],[125.44,9.81],[126.05,9.23]]],[[[124.48,10.05],[124.37,9.63],[123.79,9.73],[124.48,10.05]]],[[[123.56,10.79],[123.01,9.03],[122.45,9.97],[122.95,10.89],[123.56,10.79]]],[[[124.02,11.12],[124.03,10.38],[123.31,9.41],[124.02,11.12]]],[[[119.51,11.34],[119.71,10.5],[117.19,8.33],[119.31,10.58],[119.22,10.96],[119.46,10.72],[119.51,11.34]]],[[[124.64,11.29],[125.03,11.2],[125.01,10.03],[124.29,11.54],[124.64,11.29]]],[[[122.23,11.8],[123.15,11.6],[123.13,11.17],[121.94,10.42],[121.85,11.76],[122.23,11.8]]],[[[124.46,12.52],[125.3,12.46],[125.76,11.01],[124.84,11.47],[124.46,12.52]]],[[[123.67,12.35],[124.08,11.72],[123.53,12.21],[123.16,11.91],[123.24,12.61],[123.67,12.35]]],[[[120.72,13.48],[121.5,13.15],[121.22,12.23],[120.3,13.44],[120.72,13.48]]],[[[121.26,18.57],[122.24,18.51],[122.53,17.1],[121.38,15.33],[121.73,14.17],[122.23,13.9],[122.71,14.34],[123.1,13.67],[123.34,14.09],[123.92,13.79],[123.53,13.58],[124.2,13.06],[124.08,12.54],[122.56,13.94],[122.61,13.16],[121.75,13.96],[120.66,13.77],[120.96,14.64],[120.09,14.79],[119.79,16.32],[120.42,16.16],[120.57,18.49],[121.26,18.57]]]]},"properties":{"name":"Philippines"},"id":"PH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-128.29,-24.41],[-128.34,-24.33],[-128.3,-24.33],[-128.29,-24.41]]]]},"properties":{"name":"Pitcairn Islands"},"id":"PN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[18.85,49.52],[17.72,50.32],[16.64,50.11],[16.34,50.66],[14.83,50.87],[14.28,53.7],[17.9,54.82],[19.8,54.44],[22.79,54.36],[23.5,53.95],[23.94,52.73],[23.17,52.28],[23.64,52.08],[23.6,51.53],[24.11,50.57],[22.56,49.08],[18.85,49.52]]]]},"properties":{"name":"Poland"},"id":"PL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-8.2,41.87],[-6.59,41.95],[-6.19,41.58],[-6.93,41.02],[-7.02,39.67],[-7.53,39.67],[-6.95,39.03],[-7.43,37.25],[-8.99,37.02],[-8.67,38.41],[-9.18,38.42],[-8.98,38.95],[-9.48,38.71],[-8.66,40.69],[-8.75,41.95],[-8.2,41.87]]]]},"properties":{"name":"Portugal"},"id":"PT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-14.52,12.68],[-13.71,12.68],[-13.71,11.72],[-14.69,11.51],[-15.02,10.96],[-15.51,11.34],[-15.03,11.59],[-15.56,11.72],[-15,11.97],[-15.96,11.73],[-15.7,12],[-16.25,11.93],[-16.11,12.33],[-16.72,12.32],[-14.52,12.68]]]]},"properties":{"name":"Guinea-Bissau"},"id":"GW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[124.45,-9.18],[124.34,-9.46],[124.05,-9.34],[124.45,-9.18]]],[[[127.25,-8.48],[125.13,-9.44],[125.16,-9.07],[124.95,-8.95],[127.25,-8.48]]]]},"properties":{"name":"Timor-Leste"},"id":"TL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-67,18.5],[-65.6,18.23],[-67.19,17.93],[-67,18.5]]]]},"properties":{"name":"Puerto Rico"},"id":"PR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[51.52,25.38],[51.22,24.62],[50.83,24.75],[51.04,26.05],[51.57,25.91],[51.52,25.38]]]]},"properties":{"name":"Qatar"},"id":"QA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[55.71,-21],[55.67,-21.37],[55.22,-21.03],[55.71,-21]]]]},"properties":{"name":"Reunion"},"id":"RE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[20.73,46.18],[22.89,47.95],[24.92,47.71],[26.63,48.26],[28.12,46.85],[28.21,45.45],[29.66,45.21],[29.55,44.82],[28.87,44.94],[28.58,43.75],[27.04,44.15],[24.18,43.68],[22.68,44.22],[22.48,44.71],[21.4,44.78],[21.51,45.15],[20.26,46.11],[20.73,46.18]]]]},"properties":{"name":"Romania"},"id":"RO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[143.66,49.31],[143.02,49.14],[142.53,48],[143.09,46.8],[143.49,46.81],[143.47,46.09],[142.71,46.74],[142.08,45.89],[141.85,48.75],[142.27,51.12],[141.64,52.32],[141.77,53.37],[142.8,53.7],[142.39,54.24],[142.7,54.42],[143.29,53.13],[143.22,51.52],[144.75,48.64],[143.66,49.31]],[[143.66,49.31],[143.25,49.38],[143.32,49.31],[143.66,49.31]]],[[[21.43,55.25],[22.84,54.9],[22.79,54.36],[19.8,54.44],[20.4,54.68],[19.87,54.64],[19.97,54.96],[20.94,55.29],[20.53,54.97],[21.09,54.89],[21.26,55.25],[21.43,55.25]]],[[[-179.63,68.91],[-175.46,67.71],[-174.83,67.38],[-175,66.67],[-174.46,66.3],[-173.76,66.45],[-174.65,67.06],[-173.67,67.13],[-171.73,66.96],[-169.69,66.07],[-170.64,65.61],[-171.54,65.83],[-171.12,65.48],[-172.8,65.68],[-172.13,65.09],[-173.2,64.79],[-172.36,64.46],[-173.19,64.25],[-173.41,64.62],[-175.45,64.78],[-176.08,65.47],[-178.56,65.52],[-178.91,65.99],[-178.52,66.4],[-179.7,66.18],[-179.32,65.54],[-180,65.07],[-180,68.98],[-179.63,68.91]]],[[[55.33,73.33],[56.59,73.14],[55.62,72.96],[56.26,72.96],[55.43,72.78],[55.95,72.67],[55.12,72.45],[55.58,72.2],[55.22,71.93],[57.64,70.73],[53.46,70.81],[54.24,71.13],[51.42,71.74],[53.22,72.65],[52.38,72.72],[53.38,72.88],[53.15,73.16],[55.33,73.33]]],[[[139.19,76.07],[140.48,75.64],[141.62,76.01],[141.36,76.18],[145.39,75.52],[143.95,75.03],[142.9,75.13],[142.5,75.36],[142.51,75.45],[143.04,75.67],[142.45,75.71],[142.16,75.38],[142.61,75.1],[143.71,74.94],[139.1,74.65],[136.86,75.35],[137.4,75.35],[136.96,75.6],[137.74,75.75],[137.45,75.95],[139.19,76.07]]],[[[68.27,76.96],[68.86,76.54],[61.29,75.33],[59.15,74.44],[58.18,74.57],[58.74,74.27],[57.26,74.08],[57.72,73.71],[56.56,73.88],[57.61,73.66],[56.72,73.67],[57.25,73.49],[56.76,73.25],[55.91,73.44],[54.22,73.32],[55.18,73.71],[53.63,73.76],[55.87,74.1],[55.07,74.26],[56.98,74.69],[55.83,74.8],[56.68,74.95],[55.8,75.15],[58,75.67],[68.27,76.96]]],[[[104.27,77.68],[106.29,77.36],[104.12,77.09],[107.5,76.92],[106.4,76.51],[111.1,76.76],[113.89,75.85],[113.51,75.53],[112.34,75.85],[113.72,75.41],[105.21,72.76],[110.91,73.7],[109.53,73.77],[110.2,74.02],[112.89,73.96],[113.5,73.33],[113.49,72.96],[113.1,72.85],[113.18,72.72],[113.53,72.63],[114.04,72.6],[113.36,72.69],[113.23,72.74],[113.15,72.83],[113.53,72.96],[113.55,73.24],[114.03,73.34],[113.48,73.5],[118.63,73.57],[118.99,73.49],[118.39,73.24],[119.82,72.94],[126.37,72.35],[127.22,71.39],[127.33,71.9],[126.72,72.39],[127.66,72.35],[131.13,70.73],[132.73,71.94],[133.68,71.43],[135.86,71.64],[137.85,71.11],[138.07,71.57],[139.93,71.48],[139.34,71.95],[140.2,72.2],[139.09,72.23],[141.02,72.59],[140.75,72.89],[146.85,72.35],[144.39,72.17],[146.93,72.31],[144.96,71.96],[145.32,71.66],[147.14,72.32],[149.19,72.22],[150.08,71.88],[148.82,71.67],[152.54,70.84],[159.05,70.87],[160.04,70.41],[159.73,69.83],[161,69.59],[161.41,68.98],[160.85,68.52],[161.58,68.91],[161.45,69.39],[164.01,69.77],[167.79,69.78],[168.28,69.24],[170.61,68.76],[171.03,69.04],[170.12,69.61],[170.47,70.13],[176.11,69.89],[180,68.98],[180,65.07],[178.52,64.59],[176.9,65.08],[176.3,65.05],[177.3,64.83],[174.44,64.69],[177.49,64.76],[179.56,62.62],[179.06,62.28],[176.98,62.87],[177.27,62.57],[172.71,61.43],[170.25,59.91],[169.21,60.62],[166.14,59.82],[166.35,60.49],[164.83,59.78],[163.64,60.05],[163.19,59.05],[161.94,58.07],[162.35,57.68],[163.21,57.84],[162.74,57.36],[163.35,56.2],[162.39,56.4],[161.71,55.5],[162.11,54.76],[160.01,54.14],[160.06,53.09],[158.43,53.02],[158.28,51.94],[156.67,50.88],[155.54,55.3],[155.95,56.67],[156.98,57.41],[156.75,57.73],[158.23,58.02],[161.91,60.42],[163.66,60.87],[164.13,62.28],[165.64,62.45],[163.26,62.54],[162.95,61.81],[163.29,61.66],[160.14,60.58],[160.39,61.03],[159.78,60.94],[159.83,61.26],[160.35,61.95],[157.49,61.8],[154.23,59.88],[154.11,59.46],[155.19,59.36],[154.74,59.13],[151.31,58.84],[151.07,59.11],[152.29,59.23],[149.6,59.77],[148.9,59.24],[142.16,59.07],[135.15,54.86],[136.82,54.65],[136.76,53.77],[137.74,54.32],[137.31,53.53],[138.55,53.99],[138.44,53.51],[138.64,54.3],[139.75,54.31],[141.42,53.29],[140.71,53.11],[141.51,52.21],[140.46,50.71],[140.7,50.09],[140.18,48.45],[135.13,43.5],[133.15,42.68],[131.81,43.33],[130.7,42.29],[130.64,42.41],[130.6,42.42],[130.41,42.72],[131.31,43.39],[130.95,44.84],[131.86,45.35],[133.12,45.13],[134.74,48.27],[130.99,47.69],[130.67,48.86],[127.53,49.79],[126.1,52.76],[123.38,53.53],[120.86,53.28],[120.03,52.77],[120.78,52.11],[119.21,50.02],[117.87,49.52],[116.71,49.83],[114.31,50.28],[110.79,49.15],[108.57,49.33],[106.66,50.34],[102.92,50.32],[102.33,50.57],[102.22,51.33],[98.93,52.14],[97.83,51],[98.29,50.29],[97.34,49.73],[92.32,50.81],[87.84,49.17],[87.35,49.09],[86.77,49.79],[85.26,49.59],[83.46,51],[81.47,50.74],[80.69,51.31],[80.08,50.76],[77.91,53.27],[76.52,53.99],[76.81,54.45],[73.44,53.44],[73.76,54.07],[71.19,54.1],[70.84,55.3],[69.19,55.34],[65.22,54.32],[61.01,53.95],[60.91,53.62],[61.58,53.51],[61.18,53.31],[62.12,53],[61.1,52.98],[60.69,52.68],[61.06,52.34],[60,51.96],[61.69,51.27],[61.38,50.78],[59.54,50.48],[58.34,51.16],[56.51,51.08],[55.69,50.53],[54.65,51.04],[54.52,50.53],[53.43,51.49],[50.77,51.77],[48.7,50.59],[48.8,49.94],[47.52,50.44],[46.5,48.42],[47.38,47.69],[48.2,47.7],[49.03,46.78],[48.56,46.56],[49.22,46.35],[48.71,45.83],[47.38,45.74],[46.68,44.52],[47.41,43.5],[47.7,43.87],[47.46,43.02],[48.58,41.84],[47.77,41.2],[46.57,41.87],[46.45,41.9],[44.93,42.76],[43.91,42.58],[42.85,43.18],[40,43.38],[36.58,45.18],[37.74,45.3],[37.94,46.03],[38.57,46.09],[37.73,46.67],[39.3,47.08],[38.24,47.11],[38.85,47.86],[39.8,47.86],[39.66,48.62],[40.08,48.87],[39.7,49.01],[40.14,49.6],[38.02,49.9],[37.46,50.44],[35.61,50.37],[35.37,51.04],[34.38,51.26],[34.1,51.65],[34.42,51.81],[33.42,52.36],[31.78,52.11],[31.27,53.02],[32.74,53.46],[30.78,54.79],[30.93,55.6],[28.17,56.15],[27.86,57.3],[27.37,57.54],[27.82,57.87],[27.43,58.81],[28.02,59.48],[30.25,59.98],[28.6,60.38],[28.69,60.74],[27.81,60.55],[31.59,62.91],[29.99,63.74],[30.58,64.22],[29.64,64.93],[30.13,65.72],[29.07,66.9],[30.03,67.69],[28.69,68.2],[28.82,68.84],[28.43,68.9],[28.96,69.05],[30.85,69.79],[33.09,69.75],[32.03,69.64],[33.52,69.42],[33.02,68.95],[33.72,69.33],[35.97,69.17],[40.99,67.72],[41.22,66.84],[38.61,66.05],[31.85,67.15],[34.85,65.9],[34.38,65.38],[34.79,64.55],[37.41,63.8],[37.98,64.32],[36.44,64.94],[37.03,65.21],[38.41,64.86],[38.05,64.64],[40.51,64.54],[39.75,65.55],[42.17,66.52],[44.17,65.87],[44.5,66.91],[43.75,67.32],[44.25,68.27],[43.31,68.68],[46.52,68.14],[46.71,67.81],[44.91,67.37],[46.39,66.74],[47.7,66.99],[47.99,67.65],[49.1,67.63],[48.59,67.93],[52.27,68.31],[52.73,68.47],[52.49,68.59],[52.65,68.65],[52.29,68.61],[53.78,68.97],[54.56,68.99],[53.59,68.9],[54.02,68.86],[53.95,68.4],[53.21,68.26],[54.79,68.16],[58.9,69],[59.43,68.75],[59.07,68.42],[59.84,68.37],[60.91,68.9],[60.14,69.57],[60.87,69.86],[64.15,69.54],[68.44,68.22],[69.22,68.96],[66.8,69.57],[67.34,70.75],[66.62,71.05],[68.47,71.82],[69.33,72.95],[71.56,72.91],[72.83,72.71],[72.88,72.28],[71.8,71.47],[72.84,70.87],[72.42,70.27],[72.55,68.98],[73.65,68.46],[71.41,66.97],[71.56,66.65],[68.97,66.8],[72,66.22],[74.74,67.69],[74.33,68.38],[74.64,68.77],[76.59,68.97],[77.32,68.52],[77.09,67.78],[79.04,67.57],[77.46,67.76],[78.17,68.26],[77.63,68.91],[73.75,69.17],[73.52,69.76],[74.31,70.67],[73.02,71.42],[74.96,72.11],[74.83,72.83],[75.72,72.56],[75.24,71.38],[76.92,71.07],[79.11,71],[76.1,71.93],[78.1,71.88],[77.37,72.1],[78.54,72.4],[83.26,71.72],[82.26,71.26],[82.08,70.57],[82.35,70.2],[82.16,70.58],[83.12,70.89],[82.64,70.17],[83.11,70.07],[83.75,70.46],[83.15,71.24],[83.63,71.62],[80.72,72.53],[80.82,72.97],[80.23,73.17],[80.51,73.57],[87.09,73.86],[85.78,73.46],[86.78,72.99],[85.85,73.48],[87.66,73.89],[85.95,74.28],[87.13,74.37],[85.79,74.63],[86.03,74.81],[86.91,74.61],[87.79,75.02],[86.99,75.15],[94.16,75.94],[92.87,75.95],[93.16,76.1],[99.28,76.21],[99.77,76.03],[99.09,75.55],[100.19,75.17],[99.17,75.57],[99.88,76.09],[98.81,76.49],[102.23,76.38],[100.85,76.88],[104.27,77.68]]],[[[102.97,79.33],[102.39,78.83],[103.95,79.13],[105.41,78.56],[99.34,78.02],[101.62,78.98],[100.99,79.06],[101.55,79.35],[102.97,79.33]]],[[[97.61,80.17],[98.03,80.07],[97.19,79.7],[100.02,79.82],[99.04,79.29],[99.94,78.95],[97.3,78.85],[92.85,79.55],[97.61,80.17]]]]},"properties":{"name":"Russia"},"id":"RU"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[29.95,-2.31],[29.85,-2.76],[29.02,-2.74],[29.6,-1.39],[30.48,-1.06],[30.89,-2.08],[30.57,-2.4],[29.95,-2.31]]]]},"properties":{"name":"Rwanda"},"id":"RW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-63.03,18.02],[-63.14,18.06],[-63.01,18.07],[-63.03,18.02]]]]},"properties":{"name":"Saint Barthelemy"},"id":"BL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-5.66,-15.99],[-5.79,-15.99],[-5.7,-15.9],[-5.66,-15.99]]]]},"properties":{"name":"Saint Helena"},"id":"SH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-62.55,17.09],[-62.62,17.11],[-62.6,17.2],[-62.55,17.09]]],[[[-62.7,17.34],[-62.63,17.22],[-62.86,17.37],[-62.7,17.34]]]]},"properties":{"name":"Saint Kitts and Nevis"},"id":"KN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-63.17,18.16],[-62.97,18.27],[-62.99,18.23],[-63.17,18.16]]]]},"properties":{"name":"Anguilla"},"id":"AI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-60.95,13.71],[-61.08,13.88],[-60.93,14.11],[-60.95,13.71]]]]},"properties":{"name":"Saint Lucia"},"id":"LC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-63.01,18.08],[-63.01,18.07],[-63.14,18.06],[-63.01,18.08]]]]},"properties":{"name":"Saint Martin"},"id":"MF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-56.15,46.76],[-56.24,46.76],[-56.17,46.81],[-56.15,46.76]]],[[[-56.27,46.99],[-56.37,46.78],[-56.39,47.12],[-56.27,46.99]]]]},"properties":{"name":"Saint Pierre and Miquelon"},"id":"PM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-61.17,13.13],[-61.28,13.21],[-61.18,13.38],[-61.17,13.13]]]]},"properties":{"name":"Saint Vincent and the Grenadines"},"id":"VC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[12.42,43.96],[12.51,43.99],[12.46,43.9],[12.42,43.96]]]]},"properties":{"name":"San Marino"},"id":"SM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[6.52,0.02],[6.47,0.26],[6.69,0.4],[6.52,0.02]]],[[[7.42,1.56],[7.33,1.61],[7.41,1.7],[7.42,1.56]]]]},"properties":{"name":"Sao Tome and Principe"},"id":"ST"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[44.72,29.2],[46.55,29.1],[48.42,28.55],[48.84,27.62],[50.16,26.66],[49.99,26.02],[50.83,24.75],[51.22,24.62],[51.58,24.26],[52.58,22.94],[55.2,22.7],[55.67,22],[55,20],[52,19],[48.77,18.27],[46.33,15.62],[46.33,16.67],[44.47,17.41],[43.31,17.46],[42.79,16.38],[40.76,19.76],[39.18,21.1],[38.45,23.78],[37.44,24.37],[35.16,28.06],[34.57,28.09],[34.96,29.36],[36.07,29.19],[37.5,30],[38,30.5],[37.01,31.51],[39.2,32.15],[42.08,31.11],[44.72,29.2]]]]},"properties":{"name":"Saudi Arabia"},"id":"SA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-17.15,14.61],[-17.54,14.76],[-16.53,16.06],[-16.28,16.52],[-14.35,16.64],[-12.24,14.76],[-11.37,12.41],[-13.71,12.68],[-14.52,12.68],[-16.72,12.32],[-15.39,12.83],[-16.76,12.56],[-16.75,13.06],[-15.81,13.16],[-15.8,13.35],[-15.29,13.37],[-15.11,13.6],[-13.8,13.41],[-15.07,13.83],[-16.57,13.59],[-16.36,14.17],[-16.78,14.01],[-17.15,14.61]]]]},"properties":{"name":"Senegal"},"id":"SN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[20.07,42.56],[20.35,42.89],[19.23,43.51],[19.62,44.05],[19.04,44.86],[19.42,45.23],[18.82,45.91],[20.26,46.11],[21.51,45.15],[21.4,44.78],[22.48,44.71],[22.68,44.22],[22.37,43.83],[23,43.19],[22.37,42.32],[20.59,41.88],[20.07,42.56]]]]},"properties":{"name":"Serbia"},"id":"RS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[55.54,-4.76],[55.38,-4.63],[55.46,-4.55],[55.54,-4.76]]]]},"properties":{"name":"Seychelles"},"id":"SC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-11.21,10],[-10.57,9.06],[-10.7,8.3],[-10.27,8.49],[-11.49,6.93],[-12.96,7.9],[-13.3,9.03],[-12.46,9.89],[-11.21,10]]]]},"properties":{"name":"Sierra Leone"},"id":"SL"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[103.99,1.38],[103.64,1.32],[103.71,1.43],[103.99,1.38]]]]},"properties":{"name":"Singapore"},"id":"SG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[17.25,48.02],[17.17,48.01],[16.95,48.62],[18.85,49.52],[22.56,49.08],[22.15,48.41],[20.66,48.56],[18.66,47.76],[17.25,48.02]]]]},"properties":{"name":"Slovakia"},"id":"SK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[105.58,23.06],[106.71,22.86],[106.69,22.03],[107.99,21.54],[106.64,21.02],[105.61,18.98],[108.83,15.42],[109.47,12.89],[109.27,11.89],[108,10.7],[107.27,10.38],[106.74,10.67],[106.42,10.31],[106.78,10.08],[106.29,10.25],[106.62,9.81],[106.12,10.24],[106.54,9.58],[105.82,10],[106.19,9.37],[105.02,8.59],[105.11,9.95],[104.45,10.42],[105.1,10.96],[106.2,10.77],[105.85,11.66],[107.55,12.35],[107.49,14.45],[107.55,14.71],[107.7,15.27],[107.18,15.78],[107.46,16.08],[106.69,16.46],[105.19,18.64],[103.88,19.29],[104.98,20],[104.38,20.44],[104.64,20.66],[103.17,20.85],[102.98,21.74],[102.14,22.4],[102.48,22.77],[103.96,22.5],[105.35,23.33],[105.58,23.06]]]]},"properties":{"name":"Vietnam"},"id":"VN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[13.72,46.53],[16.11,46.87],[16.61,46.48],[16.57,46.48],[15.65,46.22],[15.17,45.43],[13.59,45.48],[13.72,45.6],[13.38,46.3],[13.72,46.53]]]]},"properties":{"name":"Slovenia"},"id":"SI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[42.94,11],[43.25,11.47],[44.28,10.45],[44.9,10.42],[50.77,11.98],[51.28,11.84],[51.01,10.44],[51.41,10.45],[50.9,10.32],[50.84,9.43],[47.95,4.46],[43.49,0.65],[41.56,-1.67],[41,-0.87],[40.99,2.83],[41.91,3.98],[43.69,4.89],[44.95,4.9],[47.99,8],[44.01,9.01],[42.85,10.22],[42.94,11]]]]},"properties":{"name":"Somalia"},"id":"SO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[29.89,-22.19],[31.3,-22.41],[32.02,-24.46],[31.97,-25.96],[31.33,-25.75],[30.9,-26.31],[31.16,-27.2],[31.99,-27.32],[32.13,-26.84],[32.89,-26.85],[32.39,-28.54],[27.9,-33.04],[25.7,-34.03],[22.54,-34.01],[20,-34.82],[18.79,-34.09],[18.4,-34.3],[17.85,-32.83],[18.29,-32.62],[18.28,-31.89],[16.49,-28.58],[17.06,-28.03],[17.4,-28.71],[18.18,-28.91],[20,-28.42],[20,-24.77],[20.81,-25.88],[20.64,-26.83],[21.67,-26.86],[23.01,-25.3],[25.51,-25.68],[26.96,-23.75],[29.37,-22.19],[29.89,-22.19]],[[28.57,-28.61],[27.01,-29.63],[27.56,-30.4],[28.08,-30.65],[29.17,-29.91],[29.43,-29.28],[28.57,-28.61]]]]},"properties":{"name":"South Africa"},"id":"ZA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[32.99,-17.27],[32.7,-18.94],[33.02,-19.94],[32.49,-21.34],[31.3,-22.41],[29.89,-22.19],[29.37,-22.19],[28.02,-21.57],[27.71,-20.51],[26.17,-19.53],[25.26,-17.8],[27.04,-17.96],[28.93,-15.97],[30.42,-15.63],[30.42,-16.01],[32.98,-16.71],[32.99,-17.27]]]]},"properties":{"name":"Zimbabwe"},"id":"ZW"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-16.34,28.37],[-16.67,27.98],[-16.91,28.34],[-16.34,28.37]]],[[[3.25,39.73],[3.06,39.26],[2.36,39.56],[3.25,39.73]]],[[[-7.86,43.76],[-1.78,43.36],[1.45,42.6],[1.72,42.51],[3.18,42.44],[3.18,41.87],[0.96,41.03],[0.05,40.04],[-0.34,39.44],[0.21,38.73],[-0.72,37.61],[-2.13,36.73],[-4.4,36.72],[-5.33,36.16],[-5.36,36.16],[-6.04,36.18],[-6.36,36.86],[-7.43,37.25],[-6.95,39.03],[-7.53,39.67],[-7.02,39.67],[-6.93,41.02],[-6.19,41.58],[-6.59,41.95],[-8.2,41.87],[-8.75,41.95],[-9.21,43.15],[-7.86,43.76]]]]},"properties":{"name":"Spain"},"id":"ES"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-15.74,21.34],[-16.95,21.34],[-17.05,20.76],[-16.92,21.94],[-16.49,22.33],[-16.36,22.57],[-16.28,22.9],[-16.16,22.99],[-16.18,23.08],[-16.08,23.32],[-15.77,23.78],[-15.78,23.91],[-16.01,23.67],[-15.84,23.9],[-15.58,24.06],[-15.18,24.49],[-15.03,24.54],[-14.9,24.69],[-14.48,26.17],[-13.57,26.73],[-13.17,27.67],[-8.67,27.67],[-8.67,27.29],[-8.67,26],[-12,26],[-12,23.45],[-13.11,22.89],[-13,21.34],[-15.74,21.34]]]]},"properties":{"name":"Western Sahara"},"id":"EH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[31.45,22],[36.89,22],[37.43,18.86],[38.6,17.99],[37,17.07],[36.54,14.26],[36.14,12.71],[35.1,11.83],[34.86,10.73],[34.29,10.55],[34.12,8.58],[33.25,8.46],[32.99,7.92],[34.7,6.68],[35.94,4.62],[34.39,4.61],[34,4.22],[33.52,3.75],[30.86,3.49],[29.64,4.64],[28.36,4.29],[27.46,5.02],[25.25,7.85],[23.52,8.71],[23.67,9.87],[22.87,10.92],[22.47,12.62],[21.83,12.8],[22.94,15.56],[24,15.7],[24,19.5],[24,20],[25,20],[25,22],[31.45,22]]]]},"properties":{"name":"Sudan"},"id":"SD"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-55.13,5.82],[-54.03,5.82],[-54.17,5.35],[-54.48,4.75],[-54,3.45],[-54.6,2.33],[-55.97,2.53],[-55.9,1.89],[-56.47,1.94],[-58.05,4.01],[-57.25,5.49],[-56.97,6],[-55.13,5.82]]]]},"properties":{"name":"Suriname"},"id":"SR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[23.34,78.2],[23.06,78.02],[24.91,77.75],[22.64,77.25],[22.78,77.55],[20.86,77.46],[21.64,77.91],[20.9,78.11],[23.34,78.2]]],[[[21.5,78.57],[22.27,78.26],[20.12,78.47],[21.5,78.57]]],[[[16.82,79.87],[18.1,79.72],[17.64,79.37],[18.36,79.63],[18.92,79.16],[21.55,78.77],[18.97,78.46],[19.09,78.1],[16.61,76.57],[15.5,76.88],[16.52,77],[13.91,77.53],[16.22,77.43],[14.74,77.66],[17.01,77.93],[13.94,77.72],[13.59,78.05],[17.3,78.42],[16.33,78.45],[16.83,78.67],[15.46,78.45],[15.38,78.84],[13.01,78.2],[12.36,78.48],[13.2,78.54],[11.33,78.96],[12.51,78.91],[11.76,79.08],[12.11,79.3],[11.24,79.09],[10.68,79.54],[13.82,79.88],[12.45,79.57],[14.06,79.26],[13.89,79.54],[14.58,79.8],[16.45,78.9],[15.64,79.83],[16.82,79.87]]],[[[20.04,80.46],[22.23,79.98],[22.89,80.49],[23.36,80.43],[23.1,80.12],[24.84,80.35],[27.24,79.9],[23.51,79.18],[19.64,79.6],[22.31,79.8],[18.77,79.72],[17.78,80.13],[20.04,80.46]]]]},"properties":{"name":"Svalbard"},"id":"SJ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[30.9,-26.31],[31.33,-25.75],[31.97,-25.96],[32.13,-26.84],[31.99,-27.32],[31.16,-27.2],[30.9,-26.31]]]]},"properties":{"name":"Swaziland"},"id":"SZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[21.81,68.57],[23.67,67.94],[23.43,67.47],[24.01,66.8],[23.66,66.31],[24.17,65.81],[21.77,65.72],[22.2,65.55],[21.26,65.34],[21.62,65.14],[21.04,64.82],[21.58,64.44],[20.78,63.87],[18.21,62.78],[17.7,62.99],[18.05,62.6],[17.33,62.49],[17.65,62.23],[17.15,60.95],[19.08,59.76],[17.94,59.34],[17.59,59.81],[17.73,59.44],[16.02,59.49],[17.38,59.25],[18.65,59.32],[16.19,58.63],[16.94,58.48],[16.41,58.47],[16.82,58.2],[16.42,57.89],[16.69,57.47],[15.87,56.09],[14.7,56.16],[14.19,55.39],[12.98,55.4],[12.45,56.3],[12.89,56.64],[11.7,57.7],[11.8,58.32],[11.2,58.4],[11.11,59],[11.43,58.99],[11.82,59.85],[12.49,60.11],[12.21,61],[12.86,61.36],[12.12,61.73],[12.14,63.58],[13.99,64.02],[14.12,64.47],[13.66,64.58],[14.49,65.31],[14.5,66.13],[15.47,66.28],[16.73,67.9],[17.88,67.95],[18.09,68.51],[19.94,68.34],[20.35,68.79],[20.1,69.04],[20.58,69.06],[21.81,68.57]]]]},"properties":{"name":"Sweden"},"id":"SE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[7.7,47.54],[9.57,47.54],[9.53,47.27],[9.47,47.06],[9.6,47.06],[10.47,46.87],[10.13,46.23],[9.28,46.5],[9.04,45.84],[8.44,46.46],[7.86,45.92],[7.04,45.93],[6.79,46.43],[5.97,46.21],[6.99,47.5],[7.59,47.58],[7.7,47.54]]],[[[8.71,47.7],[8.68,47.69],[8.67,47.71],[8.71,47.7]]]]},"properties":{"name":"Switzerland"},"id":"CH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[42.36,37.11],[41.29,36.36],[41,34.42],[38.79,33.38],[36.84,32.31],[35.65,32.69],[35.62,33.25],[36.62,34.2],[35.97,34.65],[35.92,35.93],[36.69,36.24],[36.66,36.83],[42.36,37.11]]]]},"properties":{"name":"Syria"},"id":"SY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[74.92,37.24],[73.31,37.46],[71.68,36.68],[71.59,37.9],[70.97,38.47],[69.32,37.12],[67.78,37.19],[68.38,38.2],[67.44,39.48],[68.54,39.55],[69.01,40.09],[68.6,40.18],[70.42,41.05],[70.8,40.73],[70.38,40.38],[70.98,40.24],[69.54,40.13],[69.31,39.54],[73.66,39.45],[73.82,38.61],[74.86,38.47],[74.92,37.24]]]]},"properties":{"name":"Tajikistan"},"id":"TJ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[100.08,20.35],[100.09,20.35],[100.58,20.16],[100.5,19.53],[101.28,19.56],[100.92,17.57],[102.09,18.21],[102.68,17.82],[103.4,18.43],[104.72,17.5],[104.75,16.53],[105.64,15.66],[105.21,14.35],[103.18,14.33],[102.38,13.57],[102.92,11.64],[102.06,12.57],[100.85,12.68],[100.98,13.46],[100.07,13.42],[100.02,12.19],[99.15,10.37],[99.24,9.25],[99.85,9.3],[100.42,7.16],[102.1,6.24],[101.14,5.63],[100.65,6.45],[100.13,6.42],[98.66,8.38],[98.27,8.27],[98.74,10.35],[99.66,11.83],[99.17,13.73],[98.2,15.07],[98.93,16.39],[97.35,18.56],[97.77,18.57],[98.05,19.81],[100.08,20.35]]]]},"properties":{"name":"Thailand"},"id":"TH"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[1.4,9.43],[1.64,6.22],[1.2,6.1],[0.53,6.95],[0.73,8.32],[-0.15,11.14],[0.92,11],[0.78,10.38],[1.4,9.43]]]]},"properties":{"name":"Togo"},"id":"TG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-171.84,-9.21],[-171.86,-9.21],[-171.85,-9.17],[-171.84,-9.21]]]]},"properties":{"name":"Tokelau"},"id":"TK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-175.15,-21.18],[-175.36,-21.1],[-175.05,-21.14],[-175.15,-21.18]]]]},"properties":{"name":"Tonga"},"id":"TO"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-60.92,10.8],[-61.01,10.14],[-61.92,10.04],[-61.46,10.28],[-61.66,10.71],[-60.92,10.8]]],[[[-60.64,11.2],[-60.85,11.16],[-60.53,11.35],[-60.64,11.2]]]]},"properties":{"name":"Trinidad and Tobago"},"id":"TT"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[56.18,25.65],[56.27,25.64],[56.37,24.98],[56.04,24.94],[55.2,22.7],[52.58,22.94],[51.58,24.26],[54.12,24.14],[56.08,26.07],[56.18,25.65]]]]},"properties":{"name":"United Arab Emirates"},"id":"AE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[9.85,37.14],[10.38,36.72],[11.07,37.05],[10.46,36.12],[11.13,35.24],[10.01,34.17],[11.53,33.17],[11.57,32.44],[10.29,31.69],[10.21,30.73],[9.54,30.23],[9.06,32.1],[7.49,33.89],[8.25,34.64],[8.18,36.52],[8.62,36.94],[9.85,37.14]]]]},"properties":{"name":"Tunisia"},"id":"TN"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[35.1,41.96],[38.36,40.91],[40.15,40.92],[41.53,41.52],[42.83,41.58],[43.46,41.11],[43.66,40.11],[44.78,39.71],[44.81,39.63],[44.03,39.38],[44.79,37.15],[42.36,37.11],[36.66,36.83],[36.69,36.24],[35.92,35.93],[36.02,36.93],[32.81,36.03],[31.05,36.85],[29.68,36.12],[28.45,36.88],[27.38,36.68],[28.33,37.04],[27.25,36.97],[27.6,37.23],[27.19,37.35],[27.27,37.96],[26.28,38.26],[26.37,38.66],[27.16,38.44],[26.73,38.65],[26.95,39.55],[26.07,39.48],[26.71,40.38],[29.94,40.72],[29.17,41.23],[31.23,41.09],[33.33,42.02],[35.1,41.96]]],[[[27.39,42.01],[28.01,41.98],[29.04,41.06],[27.51,40.98],[26.18,40.05],[26.83,40.59],[26.04,40.74],[26.63,41.35],[26.36,41.71],[27.39,42.01]]]]},"properties":{"name":"Turkey"},"id":"TR"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[58.78,42.66],[60.01,42.22],[60.14,41.38],[61.87,41.13],[62.55,39.93],[64.38,38.95],[66.64,38],[66.54,37.37],[64.8,37.12],[64.5,36.28],[63.12,35.86],[62.72,35.25],[61.28,35.61],[61.16,36.65],[60.33,36.66],[59.34,37.54],[57.21,38.28],[53.91,37.35],[53.98,38.92],[53.16,39.18],[53.26,39.66],[53.73,39.52],[53.58,39.97],[53,39.76],[52.72,40.45],[52.92,41.08],[53.75,40.62],[54.73,41.1],[53.8,42.12],[52.95,41.97],[52.88,41.05],[52.44,41.74],[53.01,42.14],[54.17,42.34],[56,41.33],[57.04,41.26],[56.99,41.89],[58.78,42.66]]]]},"properties":{"name":"Turkmenistan"},"id":"TM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-71.66,21.82],[-71.66,21.74],[-71.85,21.85],[-71.66,21.82]]],[[[-71.88,21.85],[-72.03,21.94],[-71.91,21.94],[-71.88,21.85]]]]},"properties":{"name":"Turks and Caicos Islands"},"id":"TC"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[179.22,-8.55],[179.2,-8.46],[179.23,-8.5],[179.22,-8.55]]]]},"properties":{"name":"Tuvalu"},"id":"TV"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[34,4.22],[35.01,1.9],[33.91,0.1],[33.92,-1],[31.68,-1],[30.48,-1.06],[29.6,-1.39],[29.96,0.83],[31.3,2.12],[30.73,2.45],[30.86,3.49],[33.52,3.75],[34,4.22]]]]},"properties":{"name":"Uganda"},"id":"UG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[33.42,52.36],[34.42,51.81],[34.1,51.65],[34.38,51.26],[35.37,51.04],[35.61,50.37],[37.46,50.44],[38.02,49.9],[40.14,49.6],[39.7,49.01],[40.08,48.87],[39.66,48.62],[39.8,47.86],[38.85,47.86],[38.24,47.11],[35.91,46.65],[34.99,46.08],[35.34,46.32],[35.2,46.44],[35.21,46.39],[35.05,46.26],[34.7,46.18],[34.56,45.98],[33.67,46.22],[35.13,45.33],[35.34,45.33],[35.05,45.61],[34.76,46.02],[34.67,46.09],[34.83,46.07],[34.9,45.88],[35.05,45.65],[35.31,45.38],[35.48,45.29],[36.64,45.38],[33.96,44.38],[33.37,44.58],[33.54,45.11],[32.48,45.4],[33.61,46.15],[31.79,46.28],[32.06,46.4],[31.51,46.58],[32.36,46.46],[32.65,46.64],[32.02,46.63],[31.75,47.25],[31.91,46.65],[31.48,46.63],[31.59,46.8],[30.83,46.55],[30.25,45.88],[29.75,45.62],[29.63,45.82],[29.66,45.21],[28.21,45.45],[28.99,46.48],[30.12,46.39],[29.95,46.81],[29.14,47.99],[27.76,48.45],[26.63,48.26],[24.92,47.71],[22.89,47.95],[22.15,48.41],[22.56,49.08],[24.11,50.57],[23.6,51.53],[25.78,51.94],[30.55,51.25],[30.94,52.07],[31.78,52.11],[33.42,52.36]]]]},"properties":{"name":"Ukraine"},"id":"UA"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[20.82,40.91],[20.59,41.88],[22.37,42.32],[22.94,41.34],[20.98,40.86],[20.82,40.91]]]]},"properties":{"name":"Macedonia"},"id":"MK"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[25.32,31.5],[29.07,30.82],[31.03,31.6],[31.92,31.53],[32.14,31.07],[34.22,31.32],[34.27,31.22],[34.9,29.49],[34.25,27.73],[33.24,28.55],[32.57,30.01],[32.34,29.6],[35.81,23.92],[35.48,23.94],[35.67,22.97],[36.89,22],[31.45,22],[25,22],[24.71,30.17],[25.15,31.65],[25.32,31.5]]]]},"properties":{"name":"Egypt"},"id":"EG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-6.35,55.24],[-5.43,54.48],[-6.27,54.1],[-8.16,54.44],[-7.41,54.95],[-7.25,55.07],[-6.35,55.24]]],[[[-5.78,56.51],[-6.37,56.31],[-6.32,56.6],[-5.78,56.51]]],[[[-6.14,57.57],[-5.66,57.2],[-6.79,57.45],[-6.14,57.57]]],[[[-6.2,58.36],[-7.12,57.82],[-7.04,58.23],[-6.2,58.36]]],[[[-3.01,58.63],[-4.44,57.57],[-1.77,57.46],[-3.28,56.36],[-2.58,56.27],[-3.73,56.03],[-1.63,55.58],[-1.3,54.76],[-0.07,54.11],[0.12,53.56],[-0.72,53.7],[0.24,53.4],[0.000037000000134,52.88],[1.68,52.75],[1.59,52.08],[0.38,51.45],[1.41,51.18],[-5.68,50.04],[-4.23,51.19],[-3.03,51.21],[-2.38,51.76],[-3.35,51.38],[-5.25,51.73],[-4.13,52.33],[-4.13,52.91],[-4.76,52.79],[-4.2,53.21],[-2.7,53.35],[-3.11,53.55],[-2.81,54.22],[-3.63,54.51],[-3.04,54.98],[-4.95,54.65],[-5.17,55],[-4.61,55.49],[-4.92,55.7],[-4.88,55.94],[-4.48,55.92],[-4.83,56.11],[-5.3,55.85],[-5.03,56.23],[-5.78,55.3],[-5.12,56.82],[-6.24,56.71],[-5.4,57.11],[-5.82,57.82],[-5.1,57.85],[-5.46,58.08],[-5,58.62],[-3.01,58.63]]],[[[-2.79,58.95],[-3.19,58.91],[-3.35,59.11],[-2.79,58.95]]],[[[-1.3,60.49],[-1.27,59.85],[-1.69,60.28],[-1.3,60.49]]]]},"properties":{"name":"United Kingdom"},"id":"GB"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.59,49.42],[-2.67,49.43],[-2.5,49.51],[-2.59,49.42]]]]},"properties":{"name":"Guernsey"},"id":"GG"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.01,49.21],[-2.21,49.18],[-2.25,49.25],[-2.01,49.21]]]]},"properties":{"name":"Jersey"},"id":"JE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-4.78,54.06],[-4.35,54.41],[-4.39,54.19],[-4.78,54.06]]]]},"properties":{"name":"Isle of Man"},"id":"IM"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[31.68,-1],[33.92,-1],[37.6,-3],[37.61,-3.5],[39.2,-4.67],[38.78,-6.05],[39.55,-6.99],[39.39,-8.9],[40.44,-10.48],[37.46,-11.73],[34.97,-11.57],[34.33,-9.73],[33.13,-9.49],[32.94,-9.41],[30.77,-8.19],[29.55,-6.3],[29.42,-4.45],[30.83,-3.26],[30.57,-2.4],[30.89,-2.08],[30.48,-1.06],[31.68,-1]]]]},"properties":{"name":"Tanzania"},"id":"TZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-155.01,19.33],[-155.86,19.03],[-155.86,20.27],[-155.16,19.96],[-155.01,19.33]]],[[[-156.47,20.9],[-155.99,20.75],[-156.42,20.59],[-156.47,20.9]]],[[[-157.73,21.41],[-158.1,21.3],[-158.27,21.58],[-157.73,21.41]]],[[[-159.43,21.88],[-159.79,22.06],[-159.35,22.22],[-159.43,21.88]]],[[[-95.08,49.36],[-94.61,48.72],[-91.42,48.04],[-88.37,48.31],[-84.13,46.53],[-82.54,45.36],[-82.13,43.59],[-83.17,42.05],[-82.7,41.68],[-78.99,42.82],[-79.18,43.47],[-78.72,43.63],[-76.8,43.63],[-74.99,44.99],[-70.88,45.24],[-69.23,47.47],[-67.79,47.07],[-67.8,45.7],[-67.21,45.18],[-67.19,44.66],[-68.8,44.58],[-70.73,43.12],[-70.58,42.65],[-71.04,42.31],[-69.94,41.67],[-71.19,41.47],[-71.39,41.81],[-71.51,41.37],[-74,40.71],[-73.96,41.31],[-74.42,39.36],[-74.96,38.92],[-75.56,39.62],[-75.03,40.01],[-75.59,39.65],[-75.04,38.42],[-75.96,37.15],[-75.64,37.96],[-76.36,38.86],[-75.83,39.58],[-76.62,39.25],[-76.31,38.05],[-77.24,38.4],[-77.06,38.91],[-77.32,38.35],[-76.24,37.9],[-76.35,37.62],[-77.13,38.17],[-76.27,37.08],[-77.23,37.3],[-75.99,36.91],[-75.53,35.8],[-75.94,36.72],[-75.79,36.07],[-76.71,36.26],[-76.73,35.94],[-75.72,35.81],[-76.15,35.34],[-77.05,35.53],[-76.47,35.27],[-76.94,34.98],[-76.34,34.89],[-77.43,34.74],[-77.93,33.93],[-78.83,33.73],[-80.47,32.32],[-80.84,32.52],[-81.5,31.13],[-80.03,26.79],[-80.4,25.18],[-81.09,25.12],[-81.74,25.96],[-81.78,26.71],[-82.06,26.54],[-82.66,27.46],[-82.42,27.92],[-82.85,27.86],[-82.63,28.88],[-83.67,29.91],[-85.35,29.68],[-86.26,30.5],[-88.02,30.22],[-88.02,30.7],[-88.13,30.31],[-90.42,30.2],[-89.4,30.05],[-89.75,29.63],[-89.01,29.18],[-89.4,28.93],[-90.18,29.57],[-90.21,29.09],[-91.25,29.24],[-91.84,29.83],[-92.31,29.54],[-93.85,29.99],[-93.86,29.68],[-94.77,29.36],[-94.48,29.56],[-95.06,29.72],[-95.14,29.06],[-96.21,28.49],[-96.64,28.72],[-96.4,28.44],[-97.52,27.87],[-97.41,27.33],[-97.77,27.46],[-97.14,25.97],[-99.1,26.43],[-99.51,27.57],[-101.41,29.77],[-102.31,29.89],[-103.38,29.02],[-106.4,31.75],[-111.05,31.33],[-113.05,31.97],[-114.72,32.72],[-117.12,32.54],[-118.53,34.05],[-120.62,34.57],[-120.61,35.14],[-122.49,37.52],[-122.39,37.82],[-122.01,37.47],[-122.39,37.96],[-122.24,38.06],[-121.42,38.01],[-122.37,38.16],[-122.49,37.83],[-123,38.01],[-124.33,40.27],[-124.04,41.43],[-124.52,42.87],[-123.95,46.18],[-123.16,46.2],[-124,46.32],[-123.8,46.98],[-124.16,46.94],[-124.72,48.4],[-122.75,48.16],[-123.15,47.37],[-122.45,47.77],[-122.88,47.06],[-122.31,47.4],[-122.76,49],[-95.15,49],[-95.08,49.36]]],[[[-156.45,71.26],[-155.59,71.16],[-155.97,70.76],[-155.09,71.15],[-152.25,70.84],[-152.5,70.65],[-152.08,70.57],[-152.63,70.56],[-151.97,70.44],[-143.28,70.12],[-141,69.64],[-141,60.31],[-139.07,60.35],[-137.48,58.91],[-135.47,59.8],[-133.43,58.46],[-131.82,56.6],[-130.02,55.91],[-130.17,55.75],[-130.14,55.54],[-129.99,55.28],[-130.36,54.91],[-130.69,54.76],[-131.01,55],[-130.46,55.33],[-131.06,55.12],[-130.61,55.3],[-131.01,56.11],[-132.16,55.58],[-131.77,56.2],[-133.51,57.19],[-133.06,57.35],[-133.64,57.7],[-133,57.51],[-133.56,57.9],[-133.12,57.86],[-134.05,58.07],[-133.77,58.52],[-134.76,58.38],[-135.34,59.47],[-135.09,58.23],[-135.92,58.38],[-135.77,58.9],[-137.06,59.07],[-136.03,58.39],[-136.65,58.22],[-139.71,59.5],[-139.49,59.98],[-139.29,59.57],[-138.89,59.81],[-139.5,60.03],[-140.4,59.7],[-141.39,60.14],[-143.92,59.99],[-144.94,60.3],[-144.61,60.72],[-145.29,60.35],[-146.65,60.7],[-146.12,60.84],[-146.76,60.96],[-146.3,61.13],[-147.87,60.83],[-147.72,61.28],[-148.7,60.79],[-148.2,60.63],[-148.68,60.45],[-147.94,60.46],[-148.44,59.95],[-149.42,60.12],[-150.91,59.24],[-151.98,59.28],[-150.99,59.78],[-151.88,59.75],[-151.41,60.73],[-149.03,60.85],[-150.06,61.15],[-149.42,61.51],[-153.1,60.29],[-152.58,60.06],[-154.26,59.14],[-153.27,58.85],[-156.55,56.98],[-158.42,56.44],[-158.12,56.23],[-158.51,55.99],[-161.25,55.35],[-161.56,55.62],[-161.97,55.1],[-162.63,55.3],[-162.56,54.96],[-163.36,54.81],[-161.8,55.89],[-160.25,55.77],[-160.35,56.29],[-157.4,57.49],[-157.61,58.09],[-157.14,58.16],[-157.55,58.38],[-156.78,59.15],[-158.19,58.61],[-158.49,59],[-157.99,58.9],[-158.54,59.18],[-158.9,58.4],[-160.33,59.06],[-162.17,58.65],[-161.57,59.1],[-161.99,59.14],[-161.71,59.5],[-162.24,60.06],[-162.15,60.25],[-162.37,60.18],[-161.88,60.7],[-162.57,60.32],[-162.52,59.99],[-164.07,59.82],[-165.43,60.56],[-163.55,60.9],[-165.15,60.93],[-164.82,61.11],[-165.12,61.08],[-165.14,61.26],[-165.16,61.17],[-165.37,61.2],[-165.29,61.25],[-165.15,61.42],[-165.06,61.42],[-165,61.47],[-164.85,61.49],[-164.72,61.63],[-164.76,61.63],[-165.02,61.5],[-165.08,61.43],[-165.16,61.43],[-165.29,61.33],[-165.27,61.31],[-165.31,61.26],[-165.41,61.21],[-165.34,61.16],[-165.39,61.07],[-166.2,61.59],[-165.25,62.45],[-164.64,62.42],[-164.48,62.75],[-164.88,62.84],[-164.41,63.21],[-161.15,63.51],[-160.78,63.87],[-161.53,64.42],[-160.78,64.72],[-162.79,64.34],[-166.12,64.57],[-166.96,65.19],[-166.06,65.26],[-168.13,65.67],[-164.35,66.59],[-163.63,66.57],[-164.19,66.2],[-163.66,66.07],[-161,66.2],[-161.91,66.27],[-162.64,66.87],[-162.34,66.96],[-161.6,66.45],[-160.23,66.4],[-161.51,66.53],[-161.9,66.73],[-161.5,66.98],[-162.35,67.16],[-163.73,67.11],[-164.12,67.61],[-166.83,68.35],[-166.22,68.88],[-163.65,69.11],[-161.94,70.31],[-159.94,70.59],[-159.84,70.27],[-159.29,70.53],[-160.12,70.62],[-159.67,70.8],[-156.45,71.26]]]]},"properties":{"name":"United States"},"id":"US"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-64.76,17.77],[-64.56,17.75],[-64.9,17.68],[-64.76,17.77]]]]},"properties":{"name":"Virgin Islands"},"id":"VI"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-2.83,11],[-2.69,9.48],[-3.63,9.95],[-4.7,9.7],[-5.52,10.44],[-5.27,11.84],[-4.42,12.3],[-3.96,13.5],[-3.44,13.17],[-2.47,14.29],[-0.73,15.08],[0.24,14.92],[0.6,13.7],[1.29,13.35],[0.99,13.05],[2.14,12.69],[2.4,11.9],[0.92,11],[-0.15,11.14],[-2.83,11]]]]},"properties":{"name":"Burkina Faso"},"id":"BF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-57.81,-30.75],[-57.61,-30.18],[-56.81,-30.11],[-56.01,-31.08],[-55.58,-30.85],[-53.88,-31.97],[-53.09,-32.73],[-53.52,-33.15],[-53.37,-33.74],[-54.15,-34.67],[-56.32,-34.91],[-57.12,-34.46],[-57.84,-34.49],[-58.4,-33.93],[-58.36,-33.13],[-58.15,-33.1],[-58.05,-32.93],[-58.2,-32.45],[-57.81,-30.75]]]]},"properties":{"name":"Uruguay"},"id":"UY"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[64.38,38.95],[62.55,39.93],[61.87,41.13],[60.14,41.38],[60.01,42.22],[58.78,42.66],[56.99,41.89],[57.04,41.26],[56,41.33],[56,45],[58.57,45.57],[62.03,43.48],[64.93,43.74],[66.12,43],[66.03,42],[66.53,42],[66.72,41.17],[67.94,41.18],[68.46,40.6],[69.06,41.38],[70.97,42.25],[71.28,42.2],[70.19,41.53],[71.42,41.12],[71.69,41.56],[73.17,40.82],[70.98,40.24],[70.38,40.38],[70.8,40.73],[70.42,41.05],[68.6,40.18],[69.01,40.09],[68.54,39.55],[67.44,39.48],[68.38,38.2],[67.78,37.19],[66.54,37.37],[66.64,38],[64.38,38.95]]]]},"properties":{"name":"Uzbekistan"},"id":"UZ"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-69.77,11.7],[-68.42,11.18],[-68.16,10.5],[-66.24,10.64],[-65.08,10.06],[-63.7,10.49],[-64.26,10.66],[-61.88,10.73],[-62.92,10.53],[-62.62,10.12],[-63.02,10.1],[-60.85,9.44],[-61.6,8.55],[-59.99,8.54],[-59.83,8.24],[-60.72,7.54],[-60.29,7.06],[-61.13,6.71],[-61.39,5.94],[-60.73,5.2],[-60.99,4.52],[-62.75,4.03],[-62.88,3.56],[-64.8,4.28],[-64.05,2.48],[-63.39,2.15],[-65.52,0.65],[-66.87,1.22],[-67.19,2.39],[-67.83,2.83],[-67.29,3.4],[-67.86,4.56],[-67.45,6.19],[-69.25,6.08],[-70.12,6.98],[-72,7.02],[-72.78,9.08],[-73.38,9.17],[-72.49,11.12],[-71.98,11.66],[-71.32,11.85],[-71.97,11.56],[-71.58,10.71],[-72.13,9.81],[-71.62,9.04],[-71.06,9.34],[-71.5,10.96],[-69.8,11.43],[-70.24,11.63],[-70.03,12.2],[-69.77,11.7]]]]},"properties":{"name":"Venezuela"},"id":"VE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-178.04,-14.32],[-178.14,-14.32],[-178.19,-14.24],[-178.04,-14.32]]],[[[-176.16,-13.35],[-176.16,-13.21],[-176.12,-13.26],[-176.16,-13.35]]]]},"properties":{"name":"Wallis and Futuna"},"id":"WF"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[-171.43,-14.02],[-172.06,-13.87],[-171.82,-13.81],[-171.43,-14.02]]],[[[-172.29,-13.49],[-172.21,-13.81],[-172.78,-13.53],[-172.29,-13.49]]]]},"properties":{"name":"Samoa"},"id":"WS"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[52.23,15.67],[43.96,12.59],[43.25,13.21],[42.79,16.38],[43.31,17.46],[44.47,17.41],[46.33,16.67],[46.33,15.62],[48.77,18.27],[52,19],[53.11,16.64],[52.3,16.27],[52.23,15.67]]]]},"properties":{"name":"Yemen"},"id":"YE"}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[24.97,-17.56],[23.48,-17.63],[22,-16.17],[22,-13],[24.02,-13.01],[23.99,-10.87],[24.45,-11.46],[25.33,-11.19],[26,-11.9],[26.87,-11.97],[27.2,-11.57],[29.02,-13.4],[29.8,-13.45],[29.81,-12.16],[29.03,-12.38],[28.36,-11.55],[28.7,-10.65],[28.37,-9.26],[28.9,-8.48],[30.77,-8.19],[32.94,-9.41],[33.7,-10.56],[33.25,-10.89],[33.55,-12.36],[32.68,-13.61],[33.22,-14.01],[30.21,-14.98],[30.42,-15.63],[28.93,-15.97],[27.04,-17.96],[25.26,-17.8],[24.97,-17.56]]]]},"properties":{"name":"Zambia"},"id":"ZM"}]} \ No newline at end of file