topojson=function(){function e(e,t){function n(t){var n=e.arcs[t],r=n[0],o=[0,0];return n.forEach(function(e){o[0]+=e[0],o[1]+=e[1]}),[r,o]}var r={},o={};t.forEach(function(e){var t,a,i=n(e),u=i[0],c=i[1];if(t=o[u])if(delete o[t.end],t.push(e),t.end=c,a=r[c]){delete r[a.start];var s=a===t?t:t.concat(a);r[s.start=t.start]=o[s.end=a.end]=s}else if(a=o[c]){delete r[a.start],delete o[a.end];var s=t.concat(a.map(function(e){return~e}).reverse());r[s.start=t.start]=o[s.end=a.start]=s}else r[t.start]=o[t.end]=t;else if(t=r[c])if(delete r[t.start],t.unshift(e),t.start=u,a=o[u]){delete o[a.end];var f=a===t?t:a.concat(t);r[f.start=a.start]=o[f.end=t.end]=f}else if(a=r[u]){delete r[a.start],delete o[a.end];var f=a.map(function(e){return~e}).reverse().concat(t);r[f.start=a.end]=o[f.end=t.end]=f}else r[t.start]=o[t.end]=t;else if(t=r[u])if(delete r[t.start],t.unshift(~e),t.start=c,a=o[c]){delete o[a.end];var f=a===t?t:a.concat(t);r[f.start=a.start]=o[f.end=t.end]=f}else if(a=r[c]){delete r[a.start],delete o[a.end];var f=a.map(function(e){return~e}).reverse().concat(t);r[f.start=a.end]=o[f.end=t.end]=f}else r[t.start]=o[t.end]=t;else if(t=o[c])if(delete o[t.end],t.push(~e),t.end=u,a=o[u]){delete r[a.start];var s=a===t?t:t.concat(a);r[s.start=t.start]=o[s.end=a.end]=s}else if(a=r[u]){delete r[a.start],delete o[a.end];var s=t.concat(a.map(function(e){return~e}).reverse());r[s.start=t.start]=o[s.end=a.start]=s}else r[t.start]=o[t.end]=t;else t=[e],r[t.start=u]=o[t.end=c]=t});var a=[];for(var i in o)a.push(o[i]);return a}function t(t,n,r){function a(e){0>e&&(e=~e),(l[e]||(l[e]=[])).push(f)}function i(e){e.forEach(a)}function u(e){e.forEach(i)}function c(e){e.type==="GeometryCollection"?e.geometries.forEach(c):e.type in d&&(f=e,d[e.type](e.arcs))}var s=[];if(arguments.length>1){var f,l=[],d={LineString:i,MultiLineString:u,Polygon:u,MultiPolygon:function(e){e.forEach(u)}};c(n),l.forEach(arguments.length<3?function(e,t){s.push(t)}:function(e,t){r(e[0],e[e.length-1])&&s.push(t)})}else for(var p=0,h=t.arcs.length;h>p;++p)s.push(p);return o(t,{type:"MultiLineString",arcs:e(t,s)})}function n(e,t){return t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(t){return r(e,t)})}:r(e,t)}function r(e,t){var n={type:"Feature",id:t.id,properties:t.properties||{},geometry:o(e,t)};return t.id==null&&delete n.id,n}function o(e,t){function n(e,t){t.length&&t.pop();for(var n,r=h[0>e?~e:e],o=0,i=r.length,u=0,c=0;i>o;++o)t.push([(u+=(n=r[o])[0])*f+d,(c+=n[1])*l+p]);0>e&&a(t,i)}function r(e){return[e[0]*f+d,e[1]*l+p]}function o(e){for(var t=[],r=0,o=e.length;o>r;++r)n(e[r],t);return t.length<2&&t.push(t[0].slice()),t}function i(e){for(var t=o(e);t.length<4;)t.push(t[0].slice());return t}function u(e){return e.map(i)}function c(e){var t=e.type;return"GeometryCollection"===t?{type:t,geometries:e.geometries.map(c)}:t in v?{type:t,coordinates:v[t](e)}:null}var s=e.transform,f=s.scale[0],l=s.scale[1],d=s.translate[0],p=s.translate[1],h=e.arcs,v={Point:function(e){return r(e.coordinates)},MultiPoint:function(e){return e.coordinates.map(r)},LineString:function(e){return o(e.arcs)},MultiLineString:function(e){return e.arcs.map(o)},Polygon:function(e){return u(e.arcs)},MultiPolygon:function(e){return e.arcs.map(u)}};return c(t)}function a(e,t){for(var n,r=e.length,o=r-t;o<--r;)n=e[o],e[o++]=e[r],e[r]=n}function i(e,t){for(var n=0,r=e.length;r>n;){var o=n+r>>>1;e[o]e&&(e=~e);var n=o[e];n?n.push(t):o[e]=[t]})}function n(e,n){e.forEach(function(e){t(e,n)})}function r(e,t){e.type==="GeometryCollection"?e.geometries.forEach(function(e){r(e,t)}):e.type in u&&u[e.type](e.arcs,t)}var o={},a=e.map(function(){return[]}),u={LineString:t,MultiLineString:n,Polygon:n,MultiPolygon:function(e,t){e.forEach(function(e){n(e,t)})}};e.forEach(r);for(var c in o)for(var s=o[c],f=s.length,l=0;f>l;++l)for(var d=l+1;f>d;++d){var p,h=s[l],v=s[d];(p=a[h])[c=i(p,v)]!==v&&p.splice(c,0,v),(p=a[v])[c=i(p,h)]!==h&&p.splice(c,0,h)}return a}return{version:"1.2.3",mesh:t,feature:n,neighbors:u}}();