@swissgeo/coordinates 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@turf+bbox-clip@7.3.1/node_modules/@turf/bbox-clip/dist/esm/index.js","../../../node_modules/.pnpm/@turf+center@7.3.1/node_modules/@turf/center/dist/esm/index.js","../../../node_modules/.pnpm/@turf+jsts@2.7.2/node_modules/@turf/jsts/dist/jsts.min.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/adder.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/math.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/noop.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/stream.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/area.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/cartesian.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/bounds.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/compose.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/rotation.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/circle.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/buffer.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/line.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/pointEqual.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/polygon.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/ascending.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/bisector.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/bisect.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/merge.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/extent.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/polygonContains.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/length.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/identity.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/path/area.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/path/bounds.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/path/measure.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/index.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/antimeridian.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/clip/circle.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/transform.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/fit.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/resample.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/index.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/azimuthal.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/azimuthalEqualArea.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/azimuthalEquidistant.js","../../../node_modules/.pnpm/d3-geo@1.7.1/node_modules/d3-geo/src/projection/equirectangular.js","../../../node_modules/.pnpm/@turf+buffer@7.3.1/node_modules/@turf/buffer/dist/esm/index.js","../src/coordinatesUtils.ts","../src/extentUtils.ts","../../log/dist/index.js","../src/registerProj4.ts","../src/index.ts"],"sourcesContent":["// index.ts\nimport {\n lineString,\n multiLineString,\n multiPolygon,\n polygon\n} from \"@turf/helpers\";\nimport { getGeom } from \"@turf/invariant\";\n\n// lib/lineclip.ts\nfunction lineclip(points, bbox, result) {\n var len = points.length, codeA = bitCode(points[0], bbox), part = [], i, codeB, lastCode;\n let a;\n let b;\n if (!result) result = [];\n for (i = 1; i < len; i++) {\n a = points[i - 1];\n b = points[i];\n codeB = lastCode = bitCode(b, bbox);\n while (true) {\n if (!(codeA | codeB)) {\n part.push(a);\n if (codeB !== lastCode) {\n part.push(b);\n if (i < len - 1) {\n result.push(part);\n part = [];\n }\n } else if (i === len - 1) {\n part.push(b);\n }\n break;\n } else if (codeA & codeB) {\n break;\n } else if (codeA) {\n a = intersect(a, b, codeA, bbox);\n codeA = bitCode(a, bbox);\n } else {\n b = intersect(a, b, codeB, bbox);\n codeB = bitCode(b, bbox);\n }\n }\n codeA = lastCode;\n }\n if (part.length) result.push(part);\n return result;\n}\nfunction polygonclip(points, bbox) {\n var result, edge, prev, prevInside, i, p, inside;\n for (edge = 1; edge <= 8; edge *= 2) {\n result = [];\n prev = points[points.length - 1];\n prevInside = !(bitCode(prev, bbox) & edge);\n for (i = 0; i < points.length; i++) {\n p = points[i];\n inside = !(bitCode(p, bbox) & edge);\n if (inside !== prevInside) result.push(intersect(prev, p, edge, bbox));\n if (inside) result.push(p);\n prev = p;\n prevInside = inside;\n }\n points = result;\n if (!points.length) break;\n }\n return result;\n}\nfunction intersect(a, b, edge, bbox) {\n return edge & 8 ? [a[0] + (b[0] - a[0]) * (bbox[3] - a[1]) / (b[1] - a[1]), bbox[3]] : edge & 4 ? [a[0] + (b[0] - a[0]) * (bbox[1] - a[1]) / (b[1] - a[1]), bbox[1]] : edge & 2 ? [bbox[2], a[1] + (b[1] - a[1]) * (bbox[2] - a[0]) / (b[0] - a[0])] : edge & 1 ? [bbox[0], a[1] + (b[1] - a[1]) * (bbox[0] - a[0]) / (b[0] - a[0])] : null;\n}\nfunction bitCode(p, bbox) {\n var code = 0;\n if (p[0] < bbox[0]) code |= 1;\n else if (p[0] > bbox[2]) code |= 2;\n if (p[1] < bbox[1]) code |= 4;\n else if (p[1] > bbox[3]) code |= 8;\n return code;\n}\n\n// index.ts\nfunction bboxClip(feature, bbox) {\n const geom = getGeom(feature);\n const type = geom.type;\n const properties = feature.type === \"Feature\" ? feature.properties : {};\n let coords = geom.coordinates;\n switch (type) {\n case \"LineString\":\n case \"MultiLineString\": {\n const lines = [];\n if (type === \"LineString\") {\n coords = [coords];\n }\n coords.forEach((line) => {\n lineclip(line, bbox, lines);\n });\n if (lines.length === 1) {\n return lineString(lines[0], properties);\n }\n return multiLineString(lines, properties);\n }\n case \"Polygon\":\n return polygon(clipPolygon(coords, bbox), properties);\n case \"MultiPolygon\":\n return multiPolygon(\n coords.map((poly) => {\n return clipPolygon(poly, bbox);\n }),\n properties\n );\n default:\n throw new Error(\"geometry \" + type + \" not supported\");\n }\n}\nfunction clipPolygon(rings, bbox) {\n const outRings = [];\n for (const ring of rings) {\n const clipped = polygonclip(ring, bbox);\n if (clipped.length > 0) {\n if (clipped[0][0] !== clipped[clipped.length - 1][0] || clipped[0][1] !== clipped[clipped.length - 1][1]) {\n clipped.push(clipped[0]);\n }\n if (clipped.length >= 4) {\n outRings.push(clipped);\n }\n }\n }\n return outRings;\n}\nvar index_default = bboxClip;\nexport {\n bboxClip,\n index_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { bbox } from \"@turf/bbox\";\nimport { point } from \"@turf/helpers\";\nfunction center(geojson, options = {}) {\n const ext = bbox(geojson);\n const x = (ext[0] + ext[2]) / 2;\n const y = (ext[1] + ext[3]) / 2;\n return point([x, y], options.properties, options);\n}\nvar index_default = center;\nexport {\n center,\n index_default as default\n};\n//# sourceMappingURL=index.js.map","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).jsts=e()}(this,(function(){\"use strict\";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n<e;n++)i[n]=t[n];return i}function e(t,e,n){return e=u(e),function(t,e){if(e&&(\"object\"==typeof e||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t)}(t,h()?Reflect.construct(e,n||[],u(t).constructor):e.apply(t,n))}function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(t,e,n){if(h())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,e);var r=new(t.bind.apply(t,i));return n&&c(r,n.prototype),r}function r(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(t,v(i.key),i)}}function s(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}function a(t,e){var n=\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(!n){if(Array.isArray(t)||(n=y(t))||e){n&&(t=n);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var s,a=!0,o=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){o=!0,s=t},f:function(){try{a||null==n.return||n.return()}finally{if(o)throw s}}}}function o(){return o=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var i=function(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(i){var r=Object.getOwnPropertyDescriptor(i,e);return r.get?r.get.call(arguments.length<3?t:n):r.value}},o.apply(null,arguments)}function u(t){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},u(t)}function l(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,\"prototype\",{writable:!1}),e&&c(t,e)}function h(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(h=function(){return!!t})()}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function f(t,e,n,i){var r=o(u(1&i?t.prototype:t),e,n);return 2&i&&\"function\"==typeof r?function(t){return r.apply(n,t)}:r}function g(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(e)||y(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function v(t){var e=function(t,e){if(\"object\"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e);if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(t)}(t,\"string\");return\"symbol\"==typeof e?e:e+\"\"}function y(e,n){if(e){if(\"string\"==typeof e)return t(e,n);var i={}.toString.call(e).slice(8,-1);return\"Object\"===i&&e.constructor&&(i=e.constructor.name),\"Map\"===i||\"Set\"===i?Array.from(e):\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?t(e,n):void 0}}function d(t){var e=\"function\"==typeof Map?new Map:void 0;return d=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf(\"[native code]\")}catch(e){return\"function\"==typeof t}}(t))return t;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return i(t,arguments,u(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,t)},d(t)}var _=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getEndCapStyle\",value:function(){return this._endCapStyle}},{key:\"isSingleSided\",value:function(){return this._isSingleSided}},{key:\"setQuadrantSegments\",value:function(e){this._quadrantSegments=e,0===this._quadrantSegments&&(this._joinStyle=t.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=t.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),e<=0&&(this._quadrantSegments=1),this._joinStyle!==t.JOIN_ROUND&&(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS)}},{key:\"getJoinStyle\",value:function(){return this._joinStyle}},{key:\"setJoinStyle\",value:function(t){this._joinStyle=t}},{key:\"setSimplifyFactor\",value:function(t){this._simplifyFactor=t<0?0:t}},{key:\"getSimplifyFactor\",value:function(){return this._simplifyFactor}},{key:\"getQuadrantSegments\",value:function(){return this._quadrantSegments}},{key:\"setEndCapStyle\",value:function(t){this._endCapStyle=t}},{key:\"getMitreLimit\",value:function(){return this._mitreLimit}},{key:\"setMitreLimit\",value:function(t){this._mitreLimit=t}},{key:\"setSingleSided\",value:function(t){this._isSingleSided=t}}],[{key:\"constructor_\",value:function(){if(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=t.CAP_ROUND,this._joinStyle=t.JOIN_ROUND,this._mitreLimit=t.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=t.DEFAULT_SIMPLIFY_FACTOR,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this.setQuadrantSegments(e)}else if(2===arguments.length){var n=arguments[0],i=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(i)}else if(4===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2],o=arguments[3];this.setQuadrantSegments(r),this.setEndCapStyle(s),this.setJoinStyle(a),this.setMitreLimit(o)}}},{key:\"bufferDistanceError\",value:function(t){var e=Math.PI/2/t;return 1-Math.cos(e/2)}}])}();_.CAP_ROUND=1,_.CAP_FLAT=2,_.CAP_SQUARE=3,_.JOIN_ROUND=1,_.JOIN_MITRE=2,_.JOIN_BEVEL=3,_.DEFAULT_QUADRANT_SEGMENTS=8,_.DEFAULT_MITRE_LIMIT=5,_.DEFAULT_SIMPLIFY_FACTOR=.01;var p=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({Exception:i})[0],r}return l(i,t),s(i,[{key:\"toString\",value:function(){return this.message}}])}(d(Error)),m=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({IllegalArgumentException:i})[0],r}return l(i,t),s(i)}(p),k=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t){}}])}();function x(){}function I(){}function E(){}var N,T,S,L,C,R,w,O,b=function(){return s((function t(){n(this,t)}),null,[{key:\"equalsWithTolerance\",value:function(t,e,n){return Math.abs(t-e)<=n}}])}(),M=function(){return s((function t(e,i){n(this,t),this.low=i||0,this.high=e||0}),null,[{key:\"toBinaryString\",value:function(t){var e,n=\"\";for(e=2147483648;e>0;e>>>=1)n+=(t.high&e)===e?\"1\":\"0\";for(e=2147483648;e>0;e>>>=1)n+=(t.low&e)===e?\"1\":\"0\";return n}}])}();function A(){}function P(){}A.NaN=NaN,A.isNaN=function(t){return Number.isNaN(t)},A.isInfinite=function(t){return!Number.isFinite(t)},A.MAX_VALUE=Number.MAX_VALUE,A.POSITIVE_INFINITY=Number.POSITIVE_INFINITY,A.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,\"function\"==typeof Float64Array&&\"function\"==typeof Int32Array?(R=2146435072,w=new Float64Array(1),O=new Int32Array(w.buffer),A.doubleToLongBits=function(t){w[0]=t;var e=0|O[0],n=0|O[1];return(n&R)===R&&1048575&n&&0!==e&&(e=0,n=2146959360),new M(n,e)},A.longBitsToDouble=function(t){return O[0]=t.low,O[1]=t.high,w[0]}):(N=1023,T=Math.log2,S=Math.floor,L=Math.pow,C=function(){for(var t=53;t>0;t--){var e=L(2,t)-1;if(S(T(e))+1===t)return e}return 0}(),A.doubleToLongBits=function(t){var e,n,i,r,s,a,o,u,l;if(t<0||1/t===Number.NEGATIVE_INFINITY?(a=1<<31,t=-t):a=0,0===t)return new M(u=a,l=0);if(t===1/0)return new M(u=2146435072|a,l=0);if(t!=t)return new M(u=2146959360,l=0);if(r=0,l=0,(e=S(t))>1)if(e<=C)(r=S(T(e)))<=20?(l=0,u=e<<20-r&1048575):(l=e%(n=L(2,i=r-20))<<32-i,u=e/n&1048575);else for(i=e,l=0;0!==(i=S(n=i/2));)r++,l>>>=1,l|=(1&u)<<31,u>>>=1,n!==i&&(u|=524288);if(o=r+N,s=0===e,e=t-e,r<52&&0!==e)for(i=0;;){if((n=2*e)>=1?(e=n-1,s?(o--,s=!1):(i<<=1,i|=1,r++)):(e=n,s?0==--o&&(r++,s=!1):(i<<=1,r++)),20===r)u|=i,i=0;else if(52===r){l|=i;break}if(1===n){r<20?u|=i<<20-r:r<52&&(l|=i<<52-r);break}}return u|=o<<20,new M(u|=a,l)},A.longBitsToDouble=function(t){var e,n,i,r,s=t.high,a=t.low,o=s&1<<31?-1:1;for(i=((2146435072&s)>>20)-N,r=0,n=1<<19,e=1;e<=20;e++)s&n&&(r+=L(2,-e)),n>>>=1;for(n=1<<31,e=21;e<=52;e++)a&n&&(r+=L(2,-e)),n>>>=1;if(-1023===i){if(0===r)return 0*o;i=-1022}else{if(1024===i)return 0===r?o/0:NaN;r+=1}return o*r*L(2,i)});var D=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({RuntimeException:i})[0],r}return l(i,t),s(i)}(p),F=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,null,[{key:\"constructor_\",value:function(){if(0===arguments.length)D.constructor_.call(this);else if(1===arguments.length){var t=arguments[0];D.constructor_.call(this,t)}}}])}(D),G=function(){function t(){n(this,t)}return s(t,null,[{key:\"shouldNeverReachHere\",value:function(){if(0===arguments.length)t.shouldNeverReachHere(null);else if(1===arguments.length){var e=arguments[0];throw new F(\"Should never reach here\"+(null!==e?\": \"+e:\"\"))}}},{key:\"isTrue\",value:function(){if(1===arguments.length){var e=arguments[0];t.isTrue(e,null)}else if(2===arguments.length){var n=arguments[1];if(!arguments[0])throw null===n?new F:new F(n)}}},{key:\"equals\",value:function(){if(2===arguments.length){var e=arguments[0],n=arguments[1];t.equals(e,n,null)}else if(3===arguments.length){var i=arguments[0],r=arguments[1],s=arguments[2];if(!r.equals(i))throw new F(\"Expected \"+i+\" but encountered \"+r+(null!==s?\": \"+s:\"\"))}}}])}(),q=new ArrayBuffer(8),Y=new Float64Array(q),z=new Int32Array(q),X=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getM\",value:function(){return A.NaN}},{key:\"setOrdinate\",value:function(e,n){switch(e){case t.X:this.x=n;break;case t.Y:this.y=n;break;case t.Z:this.setZ(n);break;default:throw new m(\"Invalid ordinate index: \"+e)}}},{key:\"equals2D\",value:function(){if(1===arguments.length){var t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){var e=arguments[0],n=arguments[1];return!!b.equalsWithTolerance(this.x,e.x,n)&&!!b.equalsWithTolerance(this.y,e.y,n)}}},{key:\"setM\",value:function(e){throw new m(\"Invalid ordinate index: \"+t.M)}},{key:\"getZ\",value:function(){return this.z}},{key:\"getOrdinate\",value:function(e){switch(e){case t.X:return this.x;case t.Y:return this.y;case t.Z:return this.getZ()}throw new m(\"Invalid ordinate index: \"+e)}},{key:\"equals3D\",value:function(t){return this.x===t.x&&this.y===t.y&&(this.getZ()===t.getZ()||A.isNaN(this.getZ())&&A.isNaN(t.getZ()))}},{key:\"equals\",value:function(e){return e instanceof t&&this.equals2D(e)}},{key:\"equalInZ\",value:function(t,e){return b.equalsWithTolerance(this.getZ(),t.getZ(),e)}},{key:\"setX\",value:function(t){this.x=t}},{key:\"compareTo\",value:function(t){var e=t;return this.x<e.x?-1:this.x>e.x?1:this.y<e.y?-1:this.y>e.y?1:0}},{key:\"getX\",value:function(){return this.x}},{key:\"setZ\",value:function(t){this.z=t}},{key:\"clone\",value:function(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return G.shouldNeverReachHere(\"this shouldn't happen because this class is Cloneable\"),null;throw t}}},{key:\"copy\",value:function(){return new t(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\", \"+this.getZ()+\")\"}},{key:\"distance3D\",value:function(t){var e=this.x-t.x,n=this.y-t.y,i=this.getZ()-t.getZ();return Math.sqrt(e*e+n*n+i*i)}},{key:\"getY\",value:function(){return this.y}},{key:\"setY\",value:function(t){this.y=t}},{key:\"distance\",value:function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)}},{key:\"hashCode\",value:function(){var e=17;return e=37*(e=37*e+t.hashCode(this.x))+t.hashCode(this.y)}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ()}},{key:\"interfaces_\",get:function(){return[x,I,E]}}],[{key:\"constructor_\",value:function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)t.constructor_.call(this,0,0);else if(1===arguments.length){var e=arguments[0];t.constructor_.call(this,e.x,e.y,e.getZ())}else if(2===arguments.length){var n=arguments[0],i=arguments[1];t.constructor_.call(this,n,i,t.NULL_ORDINATE)}else if(3===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2];this.x=r,this.y=s,this.z=a}}},{key:\"hashCode\",value:function(t){return Y[0]=t,z[0]^z[1]}}])}(),B=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"compare\",value:function(e,n){var i=t.compare(e.x,n.x);if(0!==i)return i;var r=t.compare(e.y,n.y);return 0!==r?r:this._dimensionsToTest<=2?0:t.compare(e.getZ(),n.getZ())}},{key:\"interfaces_\",get:function(){return[P]}}],[{key:\"constructor_\",value:function(){if(this._dimensionsToTest=2,0===arguments.length)t.constructor_.call(this,2);else if(1===arguments.length){var e=arguments[0];if(2!==e&&3!==e)throw new m(\"only 2 or 3 dimensions may be specified\");this._dimensionsToTest=e}}},{key:\"compare\",value:function(t,e){return t<e?-1:t>e?1:A.isNaN(t)?A.isNaN(e)?0:-1:A.isNaN(e)?1:0}}])}();X.DimensionalComparator=B,X.NULL_ORDINATE=A.NaN,X.X=0,X.Y=1,X.Z=2,X.M=3;var U=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getArea\",value:function(){return this.getWidth()*this.getHeight()}},{key:\"equals\",value:function(e){if(!(e instanceof t))return!1;var n=e;return this.isNull()?n.isNull():this._maxx===n.getMaxX()&&this._maxy===n.getMaxY()&&this._minx===n.getMinX()&&this._miny===n.getMinY()}},{key:\"intersection\",value:function(e){if(this.isNull()||e.isNull()||!this.intersects(e))return new t;var n=this._minx>e._minx?this._minx:e._minx,i=this._miny>e._miny?this._miny:e._miny;return new t(n,this._maxx<e._maxx?this._maxx:e._maxx,i,this._maxy<e._maxy?this._maxy:e._maxy)}},{key:\"isNull\",value:function(){return this._maxx<this._minx}},{key:\"getMaxX\",value:function(){return this._maxx}},{key:\"covers\",value:function(){if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];return this.covers(e.x,e.y)}if(arguments[0]instanceof t){var n=arguments[0];return!this.isNull()&&!n.isNull()&&(n.getMinX()>=this._minx&&n.getMaxX()<=this._maxx&&n.getMinY()>=this._miny&&n.getMaxY()<=this._maxy)}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];return!this.isNull()&&(i>=this._minx&&i<=this._maxx&&r>=this._miny&&r<=this._maxy)}}},{key:\"intersects\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return!this.isNull()&&!e.isNull()&&!(e._minx>this._maxx||e._maxx<this._minx||e._miny>this._maxy||e._maxy<this._miny)}if(arguments[0]instanceof X){var n=arguments[0];return this.intersects(n.x,n.y)}}else if(2===arguments.length){if(arguments[0]instanceof X&&arguments[1]instanceof X){var i=arguments[0],r=arguments[1];return!this.isNull()&&(!((i.x<r.x?i.x:r.x)>this._maxx)&&(!((i.x>r.x?i.x:r.x)<this._minx)&&(!((i.y<r.y?i.y:r.y)>this._maxy)&&!((i.y>r.y?i.y:r.y)<this._miny))))}if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var s=arguments[0],a=arguments[1];return!this.isNull()&&!(s>this._maxx||s<this._minx||a>this._maxy||a<this._miny)}}}},{key:\"getMinY\",value:function(){return this._miny}},{key:\"getDiameter\",value:function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return Math.sqrt(t*t+e*e)}},{key:\"getMinX\",value:function(){return this._minx}},{key:\"expandToInclude\",value:function(){if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];this.expandToInclude(e.x,e.y)}else if(arguments[0]instanceof t){var n=arguments[0];if(n.isNull())return null;this.isNull()?(this._minx=n.getMinX(),this._maxx=n.getMaxX(),this._miny=n.getMinY(),this._maxy=n.getMaxY()):(n._minx<this._minx&&(this._minx=n._minx),n._maxx>this._maxx&&(this._maxx=n._maxx),n._miny<this._miny&&(this._miny=n._miny),n._maxy>this._maxy&&(this._maxy=n._maxy))}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.isNull()?(this._minx=i,this._maxx=i,this._miny=r,this._maxy=r):(i<this._minx&&(this._minx=i),i>this._maxx&&(this._maxx=i),r<this._miny&&(this._miny=r),r>this._maxy&&(this._maxy=r))}}},{key:\"minExtent\",value:function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t<e?t:e}},{key:\"getWidth\",value:function(){return this.isNull()?0:this._maxx-this._minx}},{key:\"compareTo\",value:function(t){var e=t;return this.isNull()?e.isNull()?0:-1:e.isNull()?1:this._minx<e._minx?-1:this._minx>e._minx?1:this._miny<e._miny?-1:this._miny>e._miny?1:this._maxx<e._maxx?-1:this._maxx>e._maxx?1:this._maxy<e._maxy?-1:this._maxy>e._maxy?1:0}},{key:\"translate\",value:function(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}},{key:\"copy\",value:function(){return new t(this)}},{key:\"toString\",value:function(){return\"Env[\"+this._minx+\" : \"+this._maxx+\", \"+this._miny+\" : \"+this._maxy+\"]\"}},{key:\"setToNull\",value:function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}},{key:\"disjoint\",value:function(t){return!(!this.isNull()&&!t.isNull())||(t._minx>this._maxx||t._maxx<this._minx||t._miny>this._maxy||t._maxy<this._miny)}},{key:\"getHeight\",value:function(){return this.isNull()?0:this._maxy-this._miny}},{key:\"maxExtent\",value:function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}},{key:\"expandBy\",value:function(){if(1===arguments.length){var t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=e,this._maxx+=e,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}},{key:\"contains\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.covers(e)}if(arguments[0]instanceof X){var n=arguments[0];return this.covers(n)}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];return this.covers(i,r)}}},{key:\"centre\",value:function(){return this.isNull()?null:new X((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}},{key:\"init\",value:function(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof t){var n=arguments[0];this._minx=n._minx,this._maxx=n._maxx,this._miny=n._miny,this._maxy=n._maxy}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.init(i.x,r.x,i.y,r.y)}else if(4===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2],u=arguments[3];s<a?(this._minx=s,this._maxx=a):(this._minx=a,this._maxx=s),o<u?(this._miny=o,this._maxy=u):(this._miny=u,this._maxy=o)}}},{key:\"getMaxY\",value:function(){return this._maxy}},{key:\"distance\",value:function(t){if(this.intersects(t))return 0;var e=0;this._maxx<t._minx?e=t._minx-this._maxx:this._minx>t._maxx&&(e=this._minx-t._maxx);var n=0;return this._maxy<t._miny?n=t._miny-this._maxy:this._miny>t._maxy&&(n=this._miny-t._maxy),0===e?n:0===n?e:Math.sqrt(e*e+n*n)}},{key:\"hashCode\",value:function(){var t=17;return t=37*(t=37*(t=37*(t=37*t+X.hashCode(this._minx))+X.hashCode(this._maxx))+X.hashCode(this._miny))+X.hashCode(this._maxy)}},{key:\"interfaces_\",get:function(){return[x,E]}}],[{key:\"constructor_\",value:function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof X){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.init(i.x,r.x,i.y,r.y)}else if(4===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2],u=arguments[3];this.init(s,a,o,u)}}},{key:\"intersects\",value:function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2];return n.x>=(t.x<e.x?t.x:e.x)&&n.x<=(t.x>e.x?t.x:e.x)&&n.y>=(t.y<e.y?t.y:e.y)&&n.y<=(t.y>e.y?t.y:e.y)}if(4===arguments.length){var i=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3],o=Math.min(s.x,a.x),u=Math.max(s.x,a.x),l=Math.min(i.x,r.x),h=Math.max(i.x,r.x);return!(l>u)&&(!(h<o)&&(o=Math.min(s.y,a.y),u=Math.max(s.y,a.y),l=Math.min(i.y,r.y),h=Math.max(i.y,r.y),!(l>u)&&!(h<o)))}}}])}(),V=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isGeometryCollection\",value:function(){return this.getTypeCode()===t.TYPECODE_GEOMETRYCOLLECTION}},{key:\"getFactory\",value:function(){return this._factory}},{key:\"getGeometryN\",value:function(t){return this}},{key:\"getArea\",value:function(){return 0}},{key:\"isRectangle\",value:function(){return!1}},{key:\"equalsExact\",value:function(t){return this===t||this.equalsExact(t,0)}},{key:\"geometryChanged\",value:function(){this.apply(t.geometryChangedFilter)}},{key:\"geometryChangedAction\",value:function(){this._envelope=null}},{key:\"equalsNorm\",value:function(t){return null!==t&&this.norm().equalsExact(t.norm())}},{key:\"getLength\",value:function(){return 0}},{key:\"getNumGeometries\",value:function(){return 1}},{key:\"compareTo\",value:function(){var t;if(1===arguments.length){var e=arguments[0];return t=e,this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e)}if(2===arguments.length){var n=arguments[0],i=arguments[1];return t=n,this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(n,i)}}},{key:\"getUserData\",value:function(){return this._userData}},{key:\"getSRID\",value:function(){return this._SRID}},{key:\"getEnvelope\",value:function(){return this.getFactory().toGeometry(this.getEnvelopeInternal())}},{key:\"checkNotGeometryCollection\",value:function(e){if(e.getTypeCode()===t.TYPECODE_GEOMETRYCOLLECTION)throw new m(\"This method does not support GeometryCollection arguments\")}},{key:\"equal\",value:function(t,e,n){return 0===n?t.equals(e):t.distance(e)<=n}},{key:\"norm\",value:function(){var t=this.copy();return t.normalize(),t}},{key:\"reverse\",value:function(){var t=this.reverseInternal();return null!=this.envelope&&(t.envelope=this.envelope.copy()),t.setSRID(this.getSRID()),t}},{key:\"copy\",value:function(){var t=this.copyInternal();return t.envelope=null==this._envelope?null:this._envelope.copy(),t._SRID=this._SRID,t._userData=this._userData,t}},{key:\"getPrecisionModel\",value:function(){return this._factory.getPrecisionModel()}},{key:\"getEnvelopeInternal\",value:function(){return null===this._envelope&&(this._envelope=this.computeEnvelopeInternal()),new U(this._envelope)}},{key:\"setSRID\",value:function(t){this._SRID=t}},{key:\"setUserData\",value:function(t){this._userData=t}},{key:\"compare\",value:function(t,e){for(var n=t.iterator(),i=e.iterator();n.hasNext()&&i.hasNext();){var r=n.next(),s=i.next(),a=r.compareTo(s);if(0!==a)return a}return n.hasNext()?1:i.hasNext()?-1:0}},{key:\"hashCode\",value:function(){return this.getEnvelopeInternal().hashCode()}},{key:\"isEquivalentClass\",value:function(t){return this.getClass()===t.getClass()}},{key:\"isGeometryCollectionOrDerived\",value:function(){return this.getTypeCode()===t.TYPECODE_GEOMETRYCOLLECTION||this.getTypeCode()===t.TYPECODE_MULTIPOINT||this.getTypeCode()===t.TYPECODE_MULTILINESTRING||this.getTypeCode()===t.TYPECODE_MULTIPOLYGON}},{key:\"interfaces_\",get:function(){return[I,x,E]}},{key:\"getClass\",value:function(){return t}}],[{key:\"hasNonEmptyElements\",value:function(t){for(var e=0;e<t.length;e++)if(!t[e].isEmpty())return!0;return!1}},{key:\"hasNullElements\",value:function(t){for(var e=0;e<t.length;e++)if(null===t[e])return!0;return!1}}])}();V.constructor_=function(t){t&&(this._envelope=null,this._userData=null,this._factory=t,this._SRID=t.getSRID())},V.TYPECODE_POINT=0,V.TYPECODE_MULTIPOINT=1,V.TYPECODE_LINESTRING=2,V.TYPECODE_LINEARRING=3,V.TYPECODE_MULTILINESTRING=4,V.TYPECODE_POLYGON=5,V.TYPECODE_MULTIPOLYGON=6,V.TYPECODE_GEOMETRYCOLLECTION=7,V.TYPENAME_POINT=\"Point\",V.TYPENAME_MULTIPOINT=\"MultiPoint\",V.TYPENAME_LINESTRING=\"LineString\",V.TYPENAME_LINEARRING=\"LinearRing\",V.TYPENAME_MULTILINESTRING=\"MultiLineString\",V.TYPENAME_POLYGON=\"Polygon\",V.TYPENAME_MULTIPOLYGON=\"MultiPolygon\",V.TYPENAME_GEOMETRYCOLLECTION=\"GeometryCollection\",V.geometryChangedFilter={get interfaces_(){return[k]},filter:function(t){t.geometryChangedAction()}};var H=function(){function t(){n(this,t)}return s(t,null,[{key:\"toLocationSymbol\",value:function(e){switch(e){case t.EXTERIOR:return\"e\";case t.BOUNDARY:return\"b\";case t.INTERIOR:return\"i\";case t.NONE:return\"-\"}throw new m(\"Unknown location value: \"+e)}}])}();H.INTERIOR=0,H.BOUNDARY=1,H.EXTERIOR=2,H.NONE=-1;var Z=function(){return s((function t(){n(this,t)}),[{key:\"add\",value:function(){}},{key:\"addAll\",value:function(){}},{key:\"isEmpty\",value:function(){}},{key:\"iterator\",value:function(){}},{key:\"size\",value:function(){}},{key:\"toArray\",value:function(){}},{key:\"remove\",value:function(){}}])}(),j=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({NoSuchElementException:i})[0],r}return l(i,t),s(i)}(p),W=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({UnsupportedOperationException:i})[0],r}return l(i,t),s(i)}(p),K=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i,[{key:\"contains\",value:function(){}}])}(Z),J=function(t){function i(t){var r;return n(this,i),(r=e(this,i)).map=new Map,t instanceof Z&&r.addAll(t),r}return l(i,t),s(i,[{key:\"contains\",value:function(t){var e=t.hashCode?t.hashCode():t;return!!this.map.has(e)}},{key:\"add\",value:function(t){var e=t.hashCode?t.hashCode():t;return!this.map.has(e)&&!!this.map.set(e,t)}},{key:\"addAll\",value:function(t){var e,n=a(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.add(i)}}catch(t){n.e(t)}finally{n.f()}return!0}},{key:\"remove\",value:function(){throw new W}},{key:\"size\",value:function(){return this.map.size}},{key:\"isEmpty\",value:function(){return 0===this.map.size}},{key:\"toArray\",value:function(){return Array.from(this.map.values())}},{key:\"iterator\",value:function(){return new Q(this.map)}},{key:Symbol.iterator,value:function(){return this.map}}])}(K),Q=function(){return s((function t(e){n(this,t),this.iterator=e.values();var i=this.iterator.next(),r=i.done,s=i.value;this.done=r,this.value=s}),[{key:\"next\",value:function(){if(this.done)throw new j;var t=this.value,e=this.iterator.next(),n=e.done,i=e.value;return this.done=n,this.value=i,t}},{key:\"hasNext\",value:function(){return!this.done}},{key:\"remove\",value:function(){throw new W}}])}(),$=function(){function t(){n(this,t)}return s(t,null,[{key:\"opposite\",value:function(e){return e===t.LEFT?t.RIGHT:e===t.RIGHT?t.LEFT:e}}])}();$.ON=0,$.LEFT=1,$.RIGHT=2;var tt=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({EmptyStackException:i})[0],r}return l(i,t),s(i)}(p),et=function(t){function i(t){var r;return n(this,i),(r=e(this,i,[t])).name=Object.keys({IndexOutOfBoundsException:i})[0],r}return l(i,t),s(i)}(p),nt=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i,[{key:\"get\",value:function(){}},{key:\"set\",value:function(){}},{key:\"isEmpty\",value:function(){}}])}(Z),it=function(t){function i(){var t;return n(this,i),(t=e(this,i)).array=[],t}return l(i,t),s(i,[{key:\"add\",value:function(t){return this.array.push(t),!0}},{key:\"get\",value:function(t){if(t<0||t>=this.size())throw new et;return this.array[t]}},{key:\"push\",value:function(t){return this.array.push(t),t}},{key:\"pop\",value:function(){if(0===this.array.length)throw new tt;return this.array.pop()}},{key:\"peek\",value:function(){if(0===this.array.length)throw new tt;return this.array[this.array.length-1]}},{key:\"empty\",value:function(){return 0===this.array.length}},{key:\"isEmpty\",value:function(){return this.empty()}},{key:\"search\",value:function(t){return this.array.indexOf(t)}},{key:\"size\",value:function(){return this.array.length}},{key:\"toArray\",value:function(){return this.array.slice()}}])}(nt);function rt(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}var st=function(){return s((function t(e){n(this,t),this.str=e}),[{key:\"append\",value:function(t){this.str+=t}},{key:\"setCharAt\",value:function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)}},{key:\"toString\",value:function(){return this.str}}])}(),at=function(){function t(e){n(this,t),this.value=e}return s(t,[{key:\"intValue\",value:function(){return this.value}},{key:\"compareTo\",value:function(t){return this.value<t?-1:this.value>t?1:0}}],[{key:\"compare\",value:function(t,e){return t<e?-1:t>e?1:0}},{key:\"isNan\",value:function(t){return Number.isNaN(t)}},{key:\"valueOf\",value:function(e){return new t(e)}}])}(),ot=function(){return s((function t(){n(this,t)}),null,[{key:\"isWhitespace\",value:function(t){return t<=32&&t>=0||127===t}},{key:\"toUpperCase\",value:function(t){return t.toUpperCase()}}])}(),ut=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"le\",value:function(t){return this._hi<t._hi||this._hi===t._hi&&this._lo<=t._lo}},{key:\"extractSignificantDigits\",value:function(e,n){var i=this.abs(),r=t.magnitude(i._hi),s=t.TEN.pow(r);(i=i.divide(s)).gt(t.TEN)?(i=i.divide(t.TEN),r+=1):i.lt(t.ONE)&&(i=i.multiply(t.TEN),r-=1);for(var a=r+1,o=new st,u=t.MAX_PRINT_DIGITS-1,l=0;l<=u;l++){e&&l===a&&o.append(\".\");var h=Math.trunc(i._hi);if(h<0)break;var c=!1,f=0;h>9?(c=!0,f=\"9\"):f=\"0\"+h,o.append(f),i=i.subtract(t.valueOf(h)).multiply(t.TEN),c&&i.selfAdd(t.TEN);var g=!0,v=t.magnitude(i._hi);if(v<0&&Math.abs(v)>=u-l&&(g=!1),!g)break}return n[0]=r,o.toString()}},{key:\"sqr\",value:function(){return this.multiply(this)}},{key:\"doubleValue\",value:function(){return this._hi+this._lo}},{key:\"subtract\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return this.add(e.negate())}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.add(-n)}}},{key:\"equals\",value:function(){if(1===arguments.length&&arguments[0]instanceof t){var e=arguments[0];return this._hi===e._hi&&this._lo===e._lo}}},{key:\"isZero\",value:function(){return 0===this._hi&&0===this._lo}},{key:\"selfSubtract\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e._hi,-e._lo)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.isNaN()?this:this.selfAdd(-n,0)}}},{key:\"getSpecialNumberString\",value:function(){return this.isZero()?\"0.0\":this.isNaN()?\"NaN \":null}},{key:\"min\",value:function(t){return this.le(t)?this:t}},{key:\"selfDivide\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.selfDivide(e._hi,e._lo)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.selfDivide(n,0)}}else if(2===arguments.length){var i,r,s,a,o=arguments[0],u=arguments[1],l=null,h=null,c=null,f=null;return s=this._hi/o,f=(l=(c=t.SPLIT*s)-(l=c-s))*(h=(f=t.SPLIT*o)-(h=f-o))-(a=s*o)+l*(r=o-h)+(i=s-l)*h+i*r,f=s+(c=(this._hi-a-f+this._lo-s*u)/o),this._hi=f,this._lo=s-f+c,this}}},{key:\"dump\",value:function(){return\"DD<\"+this._hi+\", \"+this._lo+\">\"}},{key:\"divide\",value:function(){if(arguments[0]instanceof t){var e,n,i,r,s=arguments[0],a=null,o=null,u=null,l=null;return e=(i=this._hi/s._hi)-(a=(u=t.SPLIT*i)-(a=u-i)),l=a*(o=(l=t.SPLIT*s._hi)-(o=l-s._hi))-(r=i*s._hi)+a*(n=s._hi-o)+e*o+e*n,new t(l=i+(u=(this._hi-r-l+this._lo-i*s._lo)/s._hi),i-l+u)}if(\"number\"==typeof arguments[0]){var h=arguments[0];return A.isNaN(h)?t.createNaN():t.copy(this).selfDivide(h,0)}}},{key:\"ge\",value:function(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}},{key:\"pow\",value:function(e){if(0===e)return t.valueOf(1);var n=new t(this),i=t.valueOf(1),r=Math.abs(e);if(r>1)for(;r>0;)r%2==1&&i.selfMultiply(n),(r/=2)>0&&(n=n.sqr());else i=n;return e<0?i.reciprocal():i}},{key:\"ceil\",value:function(){if(this.isNaN())return t.NaN;var e=Math.ceil(this._hi),n=0;return e===this._hi&&(n=Math.ceil(this._lo)),new t(e,n)}},{key:\"compareTo\",value:function(t){var e=t;return this._hi<e._hi?-1:this._hi>e._hi?1:this._lo<e._lo?-1:this._lo>e._lo?1:0}},{key:\"rint\",value:function(){return this.isNaN()?this:this.add(.5).floor()}},{key:\"setValue\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return this.init(e),this}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.init(n),this}}},{key:\"max\",value:function(t){return this.ge(t)?this:t}},{key:\"sqrt\",value:function(){if(this.isZero())return t.valueOf(0);if(this.isNegative())return t.NaN;var e=1/Math.sqrt(this._hi),n=this._hi*e,i=t.valueOf(n),r=this.subtract(i.sqr())._hi*(.5*e);return i.add(r)}},{key:\"selfAdd\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.selfAdd(e._hi,e._lo)}if(\"number\"==typeof arguments[0]){var n,i,r,s,a,o=arguments[0],u=null;return u=(r=this._hi+o)-(s=r-this._hi),i=(a=(u=o-s+(this._hi-u))+this._lo)+(r-(n=r+a)),this._hi=n+i,this._lo=i+(n-this._hi),this}}else if(2===arguments.length){var l,h,c,f,g=arguments[0],v=arguments[1],y=null,d=null,_=null;c=this._hi+g,h=this._lo+v,d=c-(_=c-this._hi),y=h-(f=h-this._lo);var p=(l=c+(_=(d=g-_+(this._hi-d))+h))+(_=(y=v-f+(this._lo-y))+(_+(c-l))),m=_+(l-p);return this._hi=p,this._lo=m,this}}},{key:\"selfMultiply\",value:function(){if(1===arguments.length){if(arguments[0]instanceof t){var e=arguments[0];return this.selfMultiply(e._hi,e._lo)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return this.selfMultiply(n,0)}}else if(2===arguments.length){var i,r,s=arguments[0],a=arguments[1],o=null,u=null,l=null,h=null;o=(l=t.SPLIT*this._hi)-this._hi,h=t.SPLIT*s,o=l-o,i=this._hi-o,u=h-s;var c=(l=this._hi*s)+(h=o*(u=h-u)-l+o*(r=s-u)+i*u+i*r+(this._hi*a+this._lo*s)),f=h+(o=l-c);return this._hi=c,this._lo=f,this}}},{key:\"selfSqr\",value:function(){return this.selfMultiply(this)}},{key:\"floor\",value:function(){if(this.isNaN())return t.NaN;var e=Math.floor(this._hi),n=0;return e===this._hi&&(n=Math.floor(this._lo)),new t(e,n)}},{key:\"negate\",value:function(){return this.isNaN()?this:new t(-this._hi,-this._lo)}},{key:\"clone\",value:function(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}},{key:\"multiply\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return e.isNaN()?t.createNaN():t.copy(this).selfMultiply(e)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return A.isNaN(n)?t.createNaN():t.copy(this).selfMultiply(n,0)}}},{key:\"isNaN\",value:function(){return A.isNaN(this._hi)}},{key:\"intValue\",value:function(){return Math.trunc(this._hi)}},{key:\"toString\",value:function(){var e=t.magnitude(this._hi);return e>=-3&&e<=20?this.toStandardNotation():this.toSciNotation()}},{key:\"toStandardNotation\",value:function(){var e=this.getSpecialNumberString();if(null!==e)return e;var n=new Array(1).fill(null),i=this.extractSignificantDigits(!0,n),r=n[0]+1,s=i;if(\".\"===i.charAt(0))s=\"0\"+i;else if(r<0)s=\"0.\"+t.stringOfChar(\"0\",-r)+i;else if(-1===i.indexOf(\".\")){var a=r-i.length;s=i+t.stringOfChar(\"0\",a)+\".0\"}return this.isNegative()?\"-\"+s:s}},{key:\"reciprocal\",value:function(){var e,n,i,r,s=null,a=null,o=null,u=null;e=(i=1/this._hi)-(s=(o=t.SPLIT*i)-(s=o-i)),a=(u=t.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(r=i*this._hi)-(u=s*(a=u-a)-r+s*(n=this._hi-a)+e*a+e*n)-i*this._lo)/this._hi);return new t(l,i-l+o)}},{key:\"toSciNotation\",value:function(){if(this.isZero())return t.SCI_NOT_ZERO;var e=this.getSpecialNumberString();if(null!==e)return e;var n=new Array(1).fill(null),i=this.extractSignificantDigits(!1,n),r=t.SCI_NOT_EXPONENT_CHAR+n[0];if(\"0\"===i.charAt(0))throw new IllegalStateException(\"Found leading zero: \"+i);var s=\"\";i.length>1&&(s=i.substring(1));var a=i.charAt(0)+\".\"+s;return this.isNegative()?\"-\"+a+r:a+r}},{key:\"abs\",value:function(){return this.isNaN()?t.NaN:this.isNegative()?this.negate():new t(this)}},{key:\"isPositive\",value:function(){return this._hi>0||0===this._hi&&this._lo>0}},{key:\"lt\",value:function(t){return this._hi<t._hi||this._hi===t._hi&&this._lo<t._lo}},{key:\"add\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return t.copy(this).selfAdd(e)}if(\"number\"==typeof arguments[0]){var n=arguments[0];return t.copy(this).selfAdd(n)}}},{key:\"init\",value:function(){if(1===arguments.length){if(\"number\"==typeof arguments[0]){var e=arguments[0];this._hi=e,this._lo=0}else if(arguments[0]instanceof t){var n=arguments[0];this._hi=n._hi,this._lo=n._lo}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this._hi=i,this._lo=r}}},{key:\"gt\",value:function(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>t._lo}},{key:\"isNegative\",value:function(){return this._hi<0||0===this._hi&&this._lo<0}},{key:\"trunc\",value:function(){return this.isNaN()?t.NaN:this.isPositive()?this.floor():this.ceil()}},{key:\"signum\",value:function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}},{key:\"interfaces_\",get:function(){return[E,x,I]}}],[{key:\"constructor_\",value:function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if(\"number\"==typeof arguments[0]){var e=arguments[0];this.init(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}else if(\"string\"==typeof arguments[0]){var i=arguments[0];t.constructor_.call(this,t.parse(i))}}else if(2===arguments.length){var r=arguments[0],s=arguments[1];this.init(r,s)}}},{key:\"determinant\",value:function(){if(\"number\"==typeof arguments[3]&&\"number\"==typeof arguments[2]&&\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var e=arguments[0],n=arguments[1],i=arguments[2],r=arguments[3];return t.determinant(t.valueOf(e),t.valueOf(n),t.valueOf(i),t.valueOf(r))}if(arguments[3]instanceof t&&arguments[2]instanceof t&&arguments[0]instanceof t&&arguments[1]instanceof t){var s=arguments[1],a=arguments[2],o=arguments[3];return arguments[0].multiply(o).selfSubtract(s.multiply(a))}}},{key:\"sqr\",value:function(e){return t.valueOf(e).selfMultiply(e)}},{key:\"valueOf\",value:function(){if(\"string\"==typeof arguments[0]){var e=arguments[0];return t.parse(e)}if(\"number\"==typeof arguments[0])return new t(arguments[0])}},{key:\"sqrt\",value:function(e){return t.valueOf(e).sqrt()}},{key:\"parse\",value:function(e){for(var n=0,i=e.length;ot.isWhitespace(e.charAt(n));)n++;var r=!1;if(n<i){var s=e.charAt(n);\"-\"!==s&&\"+\"!==s||(n++,\"-\"===s&&(r=!0))}for(var a=new t,o=0,u=0,l=0,h=!1;!(n>=i);){var c=e.charAt(n);if(n++,ot.isDigit(c)){var f=c-\"0\";a.selfMultiply(t.TEN),a.selfAdd(f),o++}else{if(\".\"!==c){if(\"e\"===c||\"E\"===c){var g=e.substring(n);try{l=at.parseInt(g)}catch(t){throw t instanceof NumberFormatException?new NumberFormatException(\"Invalid exponent \"+g+\" in string \"+e):t}break}throw new NumberFormatException(\"Unexpected character '\"+c+\"' at position \"+n+\" in string \"+e)}u=o,h=!0}}var v=a;h||(u=o);var y=o-u-l;if(0===y)v=a;else if(y>0){var d=t.TEN.pow(y);v=a.divide(d)}else if(y<0){var _=t.TEN.pow(-y);v=a.multiply(_)}return r?v.negate():v}},{key:\"createNaN\",value:function(){return new t(A.NaN,A.NaN)}},{key:\"copy\",value:function(e){return new t(e)}},{key:\"magnitude\",value:function(t){var e=Math.abs(t),n=Math.log(e)/Math.log(10),i=Math.trunc(Math.floor(n));return 10*Math.pow(10,i)<=e&&(i+=1),i}},{key:\"stringOfChar\",value:function(t,e){for(var n=new st,i=0;i<e;i++)n.append(t);return n.toString()}}])}();ut.PI=new ut(3.141592653589793,12246467991473532e-32),ut.TWO_PI=new ut(6.283185307179586,24492935982947064e-32),ut.PI_2=new ut(1.5707963267948966,6123233995736766e-32),ut.E=new ut(2.718281828459045,14456468917292502e-32),ut.NaN=new ut(A.NaN,A.NaN),ut.EPS=123259516440783e-46,ut.SPLIT=134217729,ut.MAX_PRINT_DIGITS=32,ut.TEN=ut.valueOf(10),ut.ONE=ut.valueOf(1),ut.SCI_NOT_EXPONENT_CHAR=\"E\",ut.SCI_NOT_ZERO=\"0.0E0\";var lt=function(){function t(){n(this,t)}return s(t,null,[{key:\"orientationIndex\",value:function(e,n,i){var r=t.orientationIndexFilter(e,n,i);if(r<=1)return r;var s=ut.valueOf(n.x).selfAdd(-e.x),a=ut.valueOf(n.y).selfAdd(-e.y),o=ut.valueOf(i.x).selfAdd(-n.x),u=ut.valueOf(i.y).selfAdd(-n.y);return s.selfMultiply(u).selfSubtract(a.selfMultiply(o)).signum()}},{key:\"signOfDet2x2\",value:function(){if(arguments[3]instanceof ut&&arguments[2]instanceof ut&&arguments[0]instanceof ut&&arguments[1]instanceof ut){var t=arguments[1],e=arguments[2],n=arguments[3];return arguments[0].multiply(n).selfSubtract(t.multiply(e)).signum()}if(\"number\"==typeof arguments[3]&&\"number\"==typeof arguments[2]&&\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var i=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3],o=ut.valueOf(i),u=ut.valueOf(r),l=ut.valueOf(s),h=ut.valueOf(a);return o.multiply(h).selfSubtract(u.multiply(l)).signum()}}},{key:\"intersection\",value:function(t,e,n,i){var r=new ut(t.y).selfSubtract(e.y),s=new ut(e.x).selfSubtract(t.x),a=new ut(t.x).selfMultiply(e.y).selfSubtract(new ut(e.x).selfMultiply(t.y)),o=new ut(n.y).selfSubtract(i.y),u=new ut(i.x).selfSubtract(n.x),l=new ut(n.x).selfMultiply(i.y).selfSubtract(new ut(i.x).selfMultiply(n.y)),h=s.multiply(l).selfSubtract(u.multiply(a)),c=o.multiply(a).selfSubtract(r.multiply(l)),f=r.multiply(u).selfSubtract(o.multiply(s)),g=h.selfDivide(f).doubleValue(),v=c.selfDivide(f).doubleValue();return A.isNaN(g)||A.isInfinite(g)||A.isNaN(v)||A.isInfinite(v)?null:new X(g,v)}},{key:\"orientationIndexFilter\",value:function(e,n,i){var r=null,s=(e.x-i.x)*(n.y-i.y),a=(e.y-i.y)*(n.x-i.x),o=s-a;if(s>0){if(a<=0)return t.signum(o);r=s+a}else{if(!(s<0))return t.signum(o);if(a>=0)return t.signum(o);r=-s-a}var u=t.DP_SAFE_EPSILON*r;return o>=u||-o>=u?t.signum(o):2}},{key:\"signum\",value:function(t){return t>0?1:t<0?-1:0}}])}();lt.DP_SAFE_EPSILON=1e-15;var ht=function(){return s((function t(){n(this,t)}),[{key:\"getM\",value:function(t){if(this.hasM()){var e=this.getDimension()-this.getMeasures();return this.getOrdinate(t,e)}return A.NaN}},{key:\"setOrdinate\",value:function(t,e,n){}},{key:\"getZ\",value:function(t){return this.hasZ()?this.getOrdinate(t,2):A.NaN}},{key:\"size\",value:function(){}},{key:\"getOrdinate\",value:function(t,e){}},{key:\"getCoordinate\",value:function(){}},{key:\"getCoordinateCopy\",value:function(t){}},{key:\"createCoordinate\",value:function(){}},{key:\"getDimension\",value:function(){}},{key:\"hasM\",value:function(){return this.getMeasures()>0}},{key:\"getX\",value:function(t){}},{key:\"hasZ\",value:function(){return this.getDimension()-this.getMeasures()>2}},{key:\"getMeasures\",value:function(){return 0}},{key:\"expandEnvelope\",value:function(t){}},{key:\"copy\",value:function(){}},{key:\"getY\",value:function(t){}},{key:\"toCoordinateArray\",value:function(){}},{key:\"interfaces_\",get:function(){return[I]}}])}();ht.X=0,ht.Y=1,ht.Z=2,ht.M=3;var ct=function(){function t(){n(this,t)}return s(t,null,[{key:\"index\",value:function(t,e,n){return lt.orientationIndex(t,e,n)}},{key:\"isCCW\",value:function(){if(arguments[0]instanceof Array){var e=arguments[0],n=e.length-1;if(n<3)throw new m(\"Ring has fewer than 4 points, so orientation cannot be determined\");for(var i=e[0],r=0,s=1;s<=n;s++){var a=e[s];a.y>i.y&&(i=a,r=s)}var o=r;do{(o-=1)<0&&(o=n)}while(e[o].equals2D(i)&&o!==r);var u=r;do{u=(u+1)%n}while(e[u].equals2D(i)&&u!==r);var l=e[o],h=e[u];if(l.equals2D(i)||h.equals2D(i)||l.equals2D(h))return!1;var c=t.index(l,i,h);return 0===c?l.x>h.x:c>0}if(rt(arguments[0],ht)){var f=arguments[0],g=f.size()-1;if(g<3)throw new m(\"Ring has fewer than 4 points, so orientation cannot be determined\");for(var v=f.getCoordinate(0),y=0,d=1;d<=g;d++){var _=f.getCoordinate(d);_.y>v.y&&(v=_,y=d)}var p=null,k=y;do{(k-=1)<0&&(k=g),p=f.getCoordinate(k)}while(p.equals2D(v)&&k!==y);var x=null,I=y;do{I=(I+1)%g,x=f.getCoordinate(I)}while(x.equals2D(v)&&I!==y);if(p.equals2D(v)||x.equals2D(v)||p.equals2D(x))return!1;var E=t.index(p,v,x);return 0===E?p.x>x.x:E>0}}}])}();ct.CLOCKWISE=-1,ct.RIGHT=ct.CLOCKWISE,ct.COUNTERCLOCKWISE=1,ct.LEFT=ct.COUNTERCLOCKWISE,ct.COLLINEAR=0,ct.STRAIGHT=ct.COLLINEAR;var ft=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getCoordinate\",value:function(){return this._minCoord}},{key:\"getRightmostSide\",value:function(t,e){var n=this.getRightmostSideOfSegment(t,e);return n<0&&(n=this.getRightmostSideOfSegment(t,e-1)),n<0&&(this._minCoord=null,this.checkForRightmostCoordinate(t)),n}},{key:\"findRightmostEdgeAtVertex\",value:function(){var t=this._minDe.getEdge().getCoordinates();G.isTrue(this._minIndex>0&&this._minIndex<t.length,\"rightmost point expected to be interior vertex of edge\");var e=t[this._minIndex-1],n=t[this._minIndex+1],i=ct.index(this._minCoord,n,e),r=!1;(e.y<this._minCoord.y&&n.y<this._minCoord.y&&i===ct.COUNTERCLOCKWISE||e.y>this._minCoord.y&&n.y>this._minCoord.y&&i===ct.CLOCKWISE)&&(r=!0),r&&(this._minIndex=this._minIndex-1)}},{key:\"getRightmostSideOfSegment\",value:function(t,e){var n=t.getEdge().getCoordinates();if(e<0||e+1>=n.length)return-1;if(n[e].y===n[e+1].y)return-1;var i=$.LEFT;return n[e].y<n[e+1].y&&(i=$.RIGHT),i}},{key:\"getEdge\",value:function(){return this._orientedDe}},{key:\"checkForRightmostCoordinate\",value:function(t){for(var e=t.getEdge().getCoordinates(),n=0;n<e.length-1;n++)(null===this._minCoord||e[n].x>this._minCoord.x)&&(this._minDe=t,this._minIndex=n,this._minCoord=e[n])}},{key:\"findRightmostEdgeAtNode\",value:function(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)}},{key:\"findEdge\",value:function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();n.isForward()&&this.checkForRightmostCoordinate(n)}G.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),\"inconsistency in rightmost processing\"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===$.LEFT&&(this._orientedDe=this._minDe.getSym())}}],[{key:\"constructor_\",value:function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null}}])}(),gt=function(t){function i(t,r){var s;return n(this,i),(s=e(this,i,[r?t+\" [ \"+r+\" ]\":t])).pt=r?new X(r):void 0,s.name=Object.keys({TopologyException:i})[0],s}return l(i,t),s(i,[{key:\"getCoordinate\",value:function(){return this.pt}}])}(D),vt=function(){return s((function t(){n(this,t),this.array=[]}),[{key:\"addLast\",value:function(t){this.array.push(t)}},{key:\"removeFirst\",value:function(){return this.array.shift()}},{key:\"isEmpty\",value:function(){return 0===this.array.length}}])}(),yt=function(t){function i(t){var r;return n(this,i),(r=e(this,i)).array=[],t instanceof Z&&r.addAll(t),r}return l(i,t),s(i,[{key:\"interfaces_\",get:function(){return[nt,Z]}},{key:\"ensureCapacity\",value:function(){}},{key:\"add\",value:function(t){return 1===arguments.length?this.array.push(t):this.array.splice(arguments[0],0,arguments[1]),!0}},{key:\"clear\",value:function(){this.array=[]}},{key:\"addAll\",value:function(t){var e,n=a(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.array.push(i)}}catch(t){n.e(t)}finally{n.f()}}},{key:\"set\",value:function(t,e){var n=this.array[t];return this.array[t]=e,n}},{key:\"iterator\",value:function(){return new dt(this)}},{key:\"get\",value:function(t){if(t<0||t>=this.size())throw new et;return this.array[t]}},{key:\"isEmpty\",value:function(){return 0===this.array.length}},{key:\"sort\",value:function(t){t?this.array.sort((function(e,n){return t.compare(e,n)})):this.array.sort()}},{key:\"size\",value:function(){return this.array.length}},{key:\"toArray\",value:function(){return this.array.slice()}},{key:\"remove\",value:function(t){for(var e=0,n=this.array.length;e<n;e++)if(this.array[e]===t)return!!this.array.splice(e,1);return!1}},{key:Symbol.iterator,value:function(){return this.array.values()}}])}(nt),dt=function(){return s((function t(e){n(this,t),this.arrayList=e,this.position=0}),[{key:\"next\",value:function(){if(this.position===this.arrayList.size())throw new j;return this.arrayList.get(this.position++)}},{key:\"hasNext\",value:function(){return this.position<this.arrayList.size()}},{key:\"set\",value:function(t){return this.arrayList.set(this.position-1,t)}},{key:\"remove\",value:function(){this.arrayList.remove(this.arrayList.get(this.position))}}])}(),_t=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"clearVisitedEdges\",value:function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){t.next().setVisited(!1)}}},{key:\"getRightmostCoordinate\",value:function(){return this._rightMostCoord}},{key:\"computeNodeDepth\",value:function(t){for(var e=null,n=t.getEdges().iterator();n.hasNext();){var i=n.next();if(i.isVisited()||i.getSym().isVisited()){e=i;break}}if(null===e)throw new gt(\"unable to find edge to compute depths at \"+t.getCoordinate());t.getEdges().computeDepths(e);for(var r=t.getEdges().iterator();r.hasNext();){var s=r.next();s.setVisited(!0),this.copySymDepths(s)}}},{key:\"computeDepth\",value:function(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.getNode(),e.getLabel(),e.setEdgeDepths($.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)}},{key:\"create\",value:function(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()}},{key:\"findResultEdges\",value:function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth($.RIGHT)>=1&&e.getDepth($.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}}},{key:\"computeDepths\",value:function(t){var e=new J,n=new vt,i=t.getNode();for(n.addLast(i),e.add(i),t.setVisited(!0);!n.isEmpty();){var r=n.removeFirst();e.add(r),this.computeNodeDepth(r);for(var s=r.getEdges().iterator();s.hasNext();){var a=s.next().getSym();if(!a.isVisited()){var o=a.getNode();e.contains(o)||(n.addLast(o),e.add(o))}}}}},{key:\"compareTo\",value:function(t){var e=t;return this._rightMostCoord.x<e._rightMostCoord.x?-1:this._rightMostCoord.x>e._rightMostCoord.x?1:0}},{key:\"getEnvelope\",value:function(){if(null===this._env){for(var t=new U,e=this._dirEdgeList.iterator();e.hasNext();)for(var n=e.next().getEdge().getCoordinates(),i=0;i<n.length-1;i++)t.expandToInclude(n[i]);this._env=t}return this._env}},{key:\"addReachable\",value:function(t){var e=new it;for(e.add(t);!e.empty();){var n=e.pop();this.add(n,e)}}},{key:\"copySymDepths\",value:function(t){var e=t.getSym();e.setDepth($.LEFT,t.getDepth($.RIGHT)),e.setDepth($.RIGHT,t.getDepth($.LEFT))}},{key:\"add\",value:function(t,e){t.setVisited(!0),this._nodes.add(t);for(var n=t.getEdges().iterator();n.hasNext();){var i=n.next();this._dirEdgeList.add(i);var r=i.getSym().getNode();r.isVisited()||e.push(r)}}},{key:\"getNodes\",value:function(){return this._nodes}},{key:\"getDirectedEdges\",value:function(){return this._dirEdgeList}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._finder=null,this._dirEdgeList=new yt,this._nodes=new yt,this._rightMostCoord=null,this._env=null,this._finder=new ft}}])}(),pt=function(){return s((function t(){n(this,t)}),null,[{key:\"intersection\",value:function(t,e,n,i){var r=t.x<e.x?t.x:e.x,s=t.y<e.y?t.y:e.y,a=t.x>e.x?t.x:e.x,o=t.y>e.y?t.y:e.y,u=n.x<i.x?n.x:i.x,l=n.y<i.y?n.y:i.y,h=n.x>i.x?n.x:i.x,c=n.y>i.y?n.y:i.y,f=((r>u?r:u)+(a<h?a:h))/2,g=((s>l?s:l)+(o<c?o:c))/2,v=t.x-f,y=t.y-g,d=e.x-f,_=e.y-g,p=n.x-f,m=n.y-g,k=i.x-f,x=i.y-g,I=y-_,E=d-v,N=v*_-d*y,T=m-x,S=k-p,L=p*x-k*m,C=I*S-T*E,R=(E*L-S*N)/C,w=(T*N-I*L)/C;return A.isNaN(R)||A.isInfinite(R)||A.isNaN(w)||A.isInfinite(w)?null:new X(R+f,w+g)}}])}(),mt=function(){return s((function t(){n(this,t)}),null,[{key:\"arraycopy\",value:function(t,e,n,i,r){for(var s=0,a=e;a<e+r;a++)n[i+s]=t[a],s++}},{key:\"getProperty\",value:function(t){return{\"line.separator\":\"\\n\"}[t]}}])}(),kt=function(){function t(){n(this,t)}return s(t,null,[{key:\"log10\",value:function(e){var n=Math.log(e);return A.isInfinite(n)||A.isNaN(n)?n:n/t.LOG_10}},{key:\"min\",value:function(t,e,n,i){var r=t;return e<r&&(r=e),n<r&&(r=n),i<r&&(r=i),r}},{key:\"clamp\",value:function(){if(\"number\"==typeof arguments[2]&&\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var t=arguments[0],e=arguments[1],n=arguments[2];return t<e?e:t>n?n:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var i=arguments[0],r=arguments[1],s=arguments[2];return i<r?r:i>s?s:i}}},{key:\"wrap\",value:function(t,e){return t<0?e- -t%e:t%e}},{key:\"max\",value:function(){if(3===arguments.length){var t=arguments[1],e=arguments[2],n=arguments[0];return t>n&&(n=t),e>n&&(n=e),n}if(4===arguments.length){var i=arguments[1],r=arguments[2],s=arguments[3],a=arguments[0];return i>a&&(a=i),r>a&&(a=r),s>a&&(a=s),a}}},{key:\"average\",value:function(t,e){return(t+e)/2}}])}();kt.LOG_10=Math.log(10);var xt=function(){function t(){n(this,t)}return s(t,null,[{key:\"segmentToSegment\",value:function(e,n,i,r){if(e.equals(n))return t.pointToSegment(e,i,r);if(i.equals(r))return t.pointToSegment(r,e,n);var s=!1;if(U.intersects(e,n,i,r)){var a=(n.x-e.x)*(r.y-i.y)-(n.y-e.y)*(r.x-i.x);if(0===a)s=!0;else{var o=(e.y-i.y)*(r.x-i.x)-(e.x-i.x)*(r.y-i.y),u=((e.y-i.y)*(n.x-e.x)-(e.x-i.x)*(n.y-e.y))/a,l=o/a;(l<0||l>1||u<0||u>1)&&(s=!0)}}else s=!0;return s?kt.min(t.pointToSegment(e,i,r),t.pointToSegment(n,i,r),t.pointToSegment(i,e,n),t.pointToSegment(r,e,n)):0}},{key:\"pointToSegment\",value:function(t,e,n){if(e.x===n.x&&e.y===n.y)return t.distance(e);var i=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),r=((t.x-e.x)*(n.x-e.x)+(t.y-e.y)*(n.y-e.y))/i;if(r<=0)return t.distance(e);if(r>=1)return t.distance(n);var s=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/i;return Math.abs(s)*Math.sqrt(i)}},{key:\"pointToLinePerpendicular\",value:function(t,e,n){var i=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),r=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/i;return Math.abs(r)*Math.sqrt(i)}},{key:\"pointToSegmentString\",value:function(e,n){if(0===n.length)throw new m(\"Line array must contain at least one vertex\");for(var i=e.distance(n[0]),r=0;r<n.length-1;r++){var s=t.pointToSegment(e,n[r],n[r+1]);s<i&&(i=s)}return i}}])}(),It=function(){return s((function t(){n(this,t)}),[{key:\"create\",value:function(){if(1===arguments.length)arguments[0]instanceof Array||rt(arguments[0],ht);else if(2===arguments.length);else if(3===arguments.length){var t=arguments[0],e=arguments[1];return this.create(t,e)}}}])}(),Et=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t){}}])}(),Nt=function(){return s((function t(){n(this,t)}),null,[{key:\"ofLine\",value:function(t){var e=t.size();if(e<=1)return 0;var n=0,i=new X;t.getCoordinate(0,i);for(var r=i.x,s=i.y,a=1;a<e;a++){t.getCoordinate(a,i);var o=i.x,u=i.y,l=o-r,h=u-s;n+=Math.sqrt(l*l+h*h),r=o,s=u}return n}}])}(),Tt=s((function t(){n(this,t)})),St=function(){function t(){n(this,t)}return s(t,null,[{key:\"copyCoord\",value:function(t,e,n,i){for(var r=Math.min(t.getDimension(),n.getDimension()),s=0;s<r;s++)n.setOrdinate(i,s,t.getOrdinate(e,s))}},{key:\"isRing\",value:function(t){var e=t.size();return 0===e||!(e<=3)&&(t.getOrdinate(0,ht.X)===t.getOrdinate(e-1,ht.X)&&t.getOrdinate(0,ht.Y)===t.getOrdinate(e-1,ht.Y))}},{key:\"scroll\",value:function(){if(2===arguments.length){if(rt(arguments[0],ht)&&Number.isInteger(arguments[1])){var e=arguments[0],n=arguments[1];t.scroll(e,n,t.isRing(e))}else if(rt(arguments[0],ht)&&arguments[1]instanceof X){var i=arguments[0],r=arguments[1],s=t.indexOf(r,i);if(s<=0)return null;t.scroll(i,s)}}else if(3===arguments.length){var a=arguments[0],o=arguments[1],u=arguments[2];if(o<=0)return null;for(var l=a.copy(),h=u?a.size()-1:a.size(),c=0;c<h;c++)for(var f=0;f<a.getDimension();f++)a.setOrdinate(c,f,l.getOrdinate((o+c)%h,f));if(u)for(var g=0;g<a.getDimension();g++)a.setOrdinate(h,g,a.getOrdinate(0,g))}}},{key:\"isEqual\",value:function(t,e){var n=t.size();if(n!==e.size())return!1;for(var i=Math.min(t.getDimension(),e.getDimension()),r=0;r<n;r++)for(var s=0;s<i;s++){var a=t.getOrdinate(r,s),o=e.getOrdinate(r,s);if(t.getOrdinate(r,s)!==e.getOrdinate(r,s)&&(!A.isNaN(a)||!A.isNaN(o)))return!1}return!0}},{key:\"minCoordinateIndex\",value:function(){if(1===arguments.length){var e=arguments[0];return t.minCoordinateIndex(e,0,e.size()-1)}if(3===arguments.length){for(var n=arguments[0],i=arguments[2],r=-1,s=null,a=arguments[1];a<=i;a++){var o=n.getCoordinate(a);(null===s||s.compareTo(o)>0)&&(s=o,r=a)}return r}}},{key:\"extend\",value:function(e,n,i){var r=e.create(i,n.getDimension()),s=n.size();if(t.copy(n,0,r,0,s),s>0)for(var a=s;a<i;a++)t.copy(n,s-1,r,a,1);return r}},{key:\"reverse\",value:function(e){for(var n=e.size()-1,i=Math.trunc(n/2),r=0;r<=i;r++)t.swap(e,r,n-r)}},{key:\"swap\",value:function(t,e,n){if(e===n)return null;for(var i=0;i<t.getDimension();i++){var r=t.getOrdinate(e,i);t.setOrdinate(e,i,t.getOrdinate(n,i)),t.setOrdinate(n,i,r)}}},{key:\"copy\",value:function(e,n,i,r,s){for(var a=0;a<s;a++)t.copyCoord(e,n+a,i,r+a)}},{key:\"ensureValidRing\",value:function(e,n){var i=n.size();return 0===i?n:i<=3?t.createClosedRing(e,n,4):n.getOrdinate(0,ht.X)===n.getOrdinate(i-1,ht.X)&&n.getOrdinate(0,ht.Y)===n.getOrdinate(i-1,ht.Y)?n:t.createClosedRing(e,n,i+1)}},{key:\"indexOf\",value:function(t,e){for(var n=0;n<e.size();n++)if(t.x===e.getOrdinate(n,ht.X)&&t.y===e.getOrdinate(n,ht.Y))return n;return-1}},{key:\"createClosedRing\",value:function(e,n,i){var r=e.create(i,n.getDimension()),s=n.size();t.copy(n,0,r,0,s);for(var a=s;a<i;a++)t.copy(n,0,r,a,1);return r}},{key:\"minCoordinate\",value:function(t){for(var e=null,n=0;n<t.size();n++){var i=t.getCoordinate(n);(null===e||e.compareTo(i)>0)&&(e=i)}return e}}])}(),Lt=function(){function t(){n(this,t)}return s(t,null,[{key:\"toDimensionSymbol\",value:function(e){switch(e){case t.FALSE:return t.SYM_FALSE;case t.TRUE:return t.SYM_TRUE;case t.DONTCARE:return t.SYM_DONTCARE;case t.P:return t.SYM_P;case t.L:return t.SYM_L;case t.A:return t.SYM_A}throw new m(\"Unknown dimension value: \"+e)}},{key:\"toDimensionValue\",value:function(e){switch(ot.toUpperCase(e)){case t.SYM_FALSE:return t.FALSE;case t.SYM_TRUE:return t.TRUE;case t.SYM_DONTCARE:return t.DONTCARE;case t.SYM_P:return t.P;case t.SYM_L:return t.L;case t.SYM_A:return t.A}throw new m(\"Unknown dimension symbol: \"+e)}}])}();Lt.P=0,Lt.L=1,Lt.A=2,Lt.FALSE=-1,Lt.TRUE=-2,Lt.DONTCARE=-3,Lt.SYM_FALSE=\"F\",Lt.SYM_TRUE=\"T\",Lt.SYM_DONTCARE=\"*\",Lt.SYM_P=\"0\",Lt.SYM_L=\"1\",Lt.SYM_A=\"2\";var Ct=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t){}}])}(),Rt=function(){return s((function t(){n(this,t)}),[{key:\"filter\",value:function(t,e){}},{key:\"isDone\",value:function(){}},{key:\"isGeometryChanged\",value:function(){}}])}(),wt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){return this.isEmpty()?new U:this._points.expandEnvelope(new U)}},{key:\"isRing\",value:function(){return this.isClosed()&&this.isSimple()}},{key:\"getCoordinates\",value:function(){return this._points.toCoordinateArray()}},{key:\"copyInternal\",value:function(){return new i(this._points.copy(),this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t;if(this._points.size()!==n._points.size())return!1;for(var r=0;r<this._points.size();r++)if(!this.equal(this._points.getCoordinate(r),n._points.getCoordinate(r),e))return!1;return!0}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){for(var t=0;t<Math.trunc(this._points.size()/2);t++){var e=this._points.size()-1-t;if(!this._points.getCoordinate(t).equals(this._points.getCoordinate(e))){if(this._points.getCoordinate(t).compareTo(this._points.getCoordinate(e))>0){var n=this._points.copy();St.reverse(n),this._points=n}return null}}}},{key:\"getCoordinate\",value:function(){return this.isEmpty()?null:this._points.getCoordinate(0)}},{key:\"getBoundaryDimension\",value:function(){return this.isClosed()?Lt.FALSE:0}},{key:\"isClosed\",value:function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}},{key:\"reverseInternal\",value:function(){var t=this._points.copy();return St.reverse(t),this.getFactory().createLineString(t)}},{key:\"getEndPoint\",value:function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_LINESTRING}},{key:\"getDimension\",value:function(){return 1}},{key:\"getLength\",value:function(){return Nt.ofLine(this._points)}},{key:\"getNumPoints\",value:function(){return this._points.size()}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){for(var t=arguments[0],e=0,n=0;e<this._points.size()&&n<t._points.size();){var i=this._points.getCoordinate(e).compareTo(t._points.getCoordinate(n));if(0!==i)return i;e++,n++}return e<this._points.size()?1:n<t._points.size()?-1:0}if(2===arguments.length){var r=arguments[0];return arguments[1].compare(this._points,r._points)}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et))for(var t=arguments[0],e=0;e<this._points.size();e++)t.filter(this._points.getCoordinate(e));else if(rt(arguments[0],Rt)){var n=arguments[0];if(0===this._points.size())return null;for(var i=0;i<this._points.size()&&(n.filter(this._points,i),!n.isDone());i++);n.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){arguments[0].filter(this)}else if(rt(arguments[0],k)){arguments[0].filter(this)}}},{key:\"getBoundary\",value:function(){throw new W}},{key:\"isEquivalentClass\",value:function(t){return t instanceof i}},{key:\"getCoordinateN\",value:function(t){return this._points.getCoordinate(t)}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_LINESTRING}},{key:\"getCoordinateSequence\",value:function(){return this._points}},{key:\"isEmpty\",value:function(){return 0===this._points.size()}},{key:\"init\",value:function(t){if(null===t&&(t=this.getFactory().getCoordinateSequenceFactory().create([])),1===t.size())throw new m(\"Invalid number of points in LineString (found \"+t.size()+\" - must be 0 or >= 2)\");this._points=t}},{key:\"isCoordinate\",value:function(t){for(var e=0;e<this._points.size();e++)if(this._points.getCoordinate(e).equals(t))return!0;return!1}},{key:\"getStartPoint\",value:function(){return this.isEmpty()?null:this.getPointN(0)}},{key:\"getPointN\",value:function(t){return this.getFactory().createPoint(this._points.getCoordinate(t))}},{key:\"interfaces_\",get:function(){return[Tt]}}],[{key:\"constructor_\",value:function(){if(this._points=null,0===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];V.constructor_.call(this,e),this.init(t)}}}])}(V),Ot=s((function t(){n(this,t)})),bt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){if(this.isEmpty())return new U;var t=new U;return t.expandToInclude(this._coordinates.getX(0),this._coordinates.getY(0)),t}},{key:\"getCoordinates\",value:function(){return this.isEmpty()?[]:[this.getCoordinate()]}},{key:\"copyInternal\",value:function(){return new i(this._coordinates.copy(),this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&(!(!this.isEmpty()||!t.isEmpty())||this.isEmpty()===t.isEmpty()&&this.equal(t.getCoordinate(),this.getCoordinate(),e))}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){}},{key:\"getCoordinate\",value:function(){return 0!==this._coordinates.size()?this._coordinates.getCoordinate(0):null}},{key:\"getBoundaryDimension\",value:function(){return Lt.FALSE}},{key:\"reverseInternal\",value:function(){return this.getFactory().createPoint(this._coordinates.copy())}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_POINT}},{key:\"getDimension\",value:function(){return 0}},{key:\"getNumPoints\",value:function(){return this.isEmpty()?0:1}},{key:\"getX\",value:function(){if(null===this.getCoordinate())throw new IllegalStateException(\"getX called on empty Point\");return this.getCoordinate().x}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){var t=arguments[0];return this.getCoordinate().compareTo(t.getCoordinate())}if(2===arguments.length){var e=arguments[0];return arguments[1].compare(this._coordinates,e._coordinates)}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et)){var t=arguments[0];if(this.isEmpty())return null;t.filter(this.getCoordinate())}else if(rt(arguments[0],Rt)){var e=arguments[0];if(this.isEmpty())return null;e.filter(this._coordinates,0),e.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){arguments[0].filter(this)}else if(rt(arguments[0],k)){arguments[0].filter(this)}}},{key:\"getBoundary\",value:function(){return this.getFactory().createGeometryCollection()}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_POINT}},{key:\"getCoordinateSequence\",value:function(){return this._coordinates}},{key:\"getY\",value:function(){if(null===this.getCoordinate())throw new IllegalStateException(\"getY called on empty Point\");return this.getCoordinate().y}},{key:\"isEmpty\",value:function(){return 0===this._coordinates.size()}},{key:\"init\",value:function(t){null===t&&(t=this.getFactory().getCoordinateSequenceFactory().create([])),G.isTrue(t.size()<=1),this._coordinates=t}},{key:\"isSimple\",value:function(){return!0}},{key:\"interfaces_\",get:function(){return[Ot]}}],[{key:\"constructor_\",value:function(){this._coordinates=null;var t=arguments[0],e=arguments[1];V.constructor_.call(this,e),this.init(t)}}])}(V),Mt=function(){function t(){n(this,t)}return s(t,null,[{key:\"ofRing\",value:function(){if(arguments[0]instanceof Array){var e=arguments[0];return Math.abs(t.ofRingSigned(e))}if(rt(arguments[0],ht)){var n=arguments[0];return Math.abs(t.ofRingSigned(n))}}},{key:\"ofRingSigned\",value:function(){if(arguments[0]instanceof Array){var t=arguments[0];if(t.length<3)return 0;for(var e=0,n=t[0].x,i=1;i<t.length-1;i++){var r=t[i].x-n,s=t[i+1].y;e+=r*(t[i-1].y-s)}return e/2}if(rt(arguments[0],ht)){var a=arguments[0],o=a.size();if(o<3)return 0;var u=new X,l=new X,h=new X;a.getCoordinate(0,l),a.getCoordinate(1,h);var c=l.x;h.x-=c;for(var f=0,g=1;g<o-1;g++)u.y=l.y,l.x=h.x,l.y=h.y,a.getCoordinate(g+1,h),h.x-=c,f+=l.x*(u.y-h.y);return f/2}}}])}(),At=function(){return s((function t(){n(this,t)}),null,[{key:\"sort\",value:function(){var t=arguments,e=arguments[0];if(1===arguments.length)e.sort((function(t,e){return t.compareTo(e)}));else if(2===arguments.length)e.sort((function(e,n){return t[1].compare(e,n)}));else if(3===arguments.length){var n=e.slice(arguments[1],arguments[2]);n.sort();var i=e.slice(0,arguments[1]).concat(n,e.slice(arguments[2],e.length));e.splice(0,e.length);var r,s=a(i);try{for(s.s();!(r=s.n()).done;){var o=r.value;e.push(o)}}catch(t){s.e(t)}finally{s.f()}}else if(4===arguments.length){var u=e.slice(arguments[1],arguments[2]);u.sort((function(e,n){return t[3].compare(e,n)}));var l=e.slice(0,arguments[1]).concat(u,e.slice(arguments[2],e.length));e.splice(0,e.length);var h,c=a(l);try{for(c.s();!(h=c.n()).done;){var f=h.value;e.push(f)}}catch(t){c.e(t)}finally{c.f()}}}},{key:\"asList\",value:function(t){var e,n=new yt,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;n.add(r)}}catch(t){i.e(t)}finally{i.f()}return n}},{key:\"copyOf\",value:function(t,e){return t.slice(0,e)}}])}(),Pt=s((function t(){n(this,t)})),Dt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){return this._shell.getEnvelopeInternal()}},{key:\"getCoordinates\",value:function(){if(this.isEmpty())return[];for(var t=new Array(this.getNumPoints()).fill(null),e=-1,n=this._shell.getCoordinates(),i=0;i<n.length;i++)t[++e]=n[i];for(var r=0;r<this._holes.length;r++)for(var s=this._holes[r].getCoordinates(),a=0;a<s.length;a++)t[++e]=s[a];return t}},{key:\"getArea\",value:function(){var t=0;t+=Mt.ofRing(this._shell.getCoordinateSequence());for(var e=0;e<this._holes.length;e++)t-=Mt.ofRing(this._holes[e].getCoordinateSequence());return t}},{key:\"copyInternal\",value:function(){for(var t=this._shell.copy(),e=new Array(this._holes.length).fill(null),n=0;n<this._holes.length;n++)e[n]=this._holes[n].copy();return new i(t,e,this._factory)}},{key:\"isRectangle\",value:function(){if(0!==this.getNumInteriorRing())return!1;if(null===this._shell)return!1;if(5!==this._shell.getNumPoints())return!1;for(var t=this._shell.getCoordinateSequence(),e=this.getEnvelopeInternal(),n=0;n<5;n++){var i=t.getX(n);if(i!==e.getMinX()&&i!==e.getMaxX())return!1;var r=t.getY(n);if(r!==e.getMinY()&&r!==e.getMaxY())return!1}for(var s=t.getX(0),a=t.getY(0),o=1;o<=4;o++){var u=t.getX(o),l=t.getY(o);if(u!==s===(l!==a))return!1;s=u,a=l}return!0}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t,r=this._shell,s=n._shell;if(!r.equalsExact(s,e))return!1;if(this._holes.length!==n._holes.length)return!1;for(var a=0;a<this._holes.length;a++)if(!this._holes[a].equalsExact(n._holes[a],e))return!1;return!0}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){if(0===arguments.length){this._shell=this.normalized(this._shell,!0);for(var t=0;t<this._holes.length;t++)this._holes[t]=this.normalized(this._holes[t],!1);At.sort(this._holes)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(e.isEmpty())return null;var i=e.getCoordinateSequence(),r=St.minCoordinateIndex(i,0,i.size()-2);St.scroll(i,r,!0),ct.isCCW(i)===n&&St.reverse(i)}}},{key:\"getCoordinate\",value:function(){return this._shell.getCoordinate()}},{key:\"getNumInteriorRing\",value:function(){return this._holes.length}},{key:\"getBoundaryDimension\",value:function(){return 1}},{key:\"reverseInternal\",value:function(){for(var t=this.getExteriorRing().reverse(),e=new Array(this.getNumInteriorRing()).fill(null),n=0;n<e.length;n++)e[n]=this.getInteriorRingN(n).reverse();return this.getFactory().createPolygon(t,e)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_POLYGON}},{key:\"getDimension\",value:function(){return 2}},{key:\"getLength\",value:function(){var t=0;t+=this._shell.getLength();for(var e=0;e<this._holes.length;e++)t+=this._holes[e].getLength();return t}},{key:\"getNumPoints\",value:function(){for(var t=this._shell.getNumPoints(),e=0;e<this._holes.length;e++)t+=this._holes[e].getNumPoints();return t}},{key:\"convexHull\",value:function(){return this.getExteriorRing().convexHull()}},{key:\"normalized\",value:function(t,e){var n=t.copy();return this.normalize(n,e),n}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){var t=arguments[0],e=this._shell,n=t._shell;return e.compareToSameClass(n)}if(2===arguments.length){var i=arguments[1],r=arguments[0],s=this._shell,a=r._shell,o=s.compareToSameClass(a,i);if(0!==o)return o;for(var u=this.getNumInteriorRing(),l=r.getNumInteriorRing(),h=0;h<u&&h<l;){var c=this.getInteriorRingN(h),f=r.getInteriorRingN(h),g=c.compareToSameClass(f,i);if(0!==g)return g;h++}return h<u?1:h<l?-1:0}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et)){var t=arguments[0];this._shell.apply(t);for(var e=0;e<this._holes.length;e++)this._holes[e].apply(t)}else if(rt(arguments[0],Rt)){var n=arguments[0];if(this._shell.apply(n),!n.isDone())for(var i=0;i<this._holes.length&&(this._holes[i].apply(n),!n.isDone());i++);n.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){arguments[0].filter(this)}else if(rt(arguments[0],k)){var r=arguments[0];r.filter(this),this._shell.apply(r);for(var s=0;s<this._holes.length;s++)this._holes[s].apply(r)}}},{key:\"getBoundary\",value:function(){if(this.isEmpty())return this.getFactory().createMultiLineString();var t=new Array(this._holes.length+1).fill(null);t[0]=this._shell;for(var e=0;e<this._holes.length;e++)t[e+1]=this._holes[e];return t.length<=1?this.getFactory().createLinearRing(t[0].getCoordinateSequence()):this.getFactory().createMultiLineString(t)}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_POLYGON}},{key:\"getExteriorRing\",value:function(){return this._shell}},{key:\"isEmpty\",value:function(){return this._shell.isEmpty()}},{key:\"getInteriorRingN\",value:function(t){return this._holes[t]}},{key:\"interfaces_\",get:function(){return[Pt]}}],[{key:\"constructor_\",value:function(){this._shell=null,this._holes=null;var t=arguments[0],e=arguments[1],n=arguments[2];if(V.constructor_.call(this,n),null===t&&(t=this.getFactory().createLinearRing()),null===e&&(e=[]),V.hasNullElements(e))throw new m(\"holes must not contain null elements\");if(t.isEmpty()&&V.hasNonEmptyElements(e))throw new m(\"shell is empty but holes are not\");this._shell=t,this._holes=e}}])}(V),Ft=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i)}(K),Gt=function(t){function i(t){var r;return n(this,i),(r=e(this,i)).array=[],t instanceof Z&&r.addAll(t),r}return l(i,t),s(i,[{key:\"contains\",value:function(t){var e,n=a(this.array);try{for(n.s();!(e=n.n()).done;){if(0===e.value.compareTo(t))return!0}}catch(t){n.e(t)}finally{n.f()}return!1}},{key:\"add\",value:function(t){if(this.contains(t))return!1;for(var e=0,n=this.array.length;e<n;e++){if(1===this.array[e].compareTo(t))return!!this.array.splice(e,0,t)}return this.array.push(t),!0}},{key:\"addAll\",value:function(t){var e,n=a(t);try{for(n.s();!(e=n.n()).done;){var i=e.value;this.add(i)}}catch(t){n.e(t)}finally{n.f()}return!0}},{key:\"remove\",value:function(){throw new W}},{key:\"size\",value:function(){return this.array.length}},{key:\"isEmpty\",value:function(){return 0===this.array.length}},{key:\"toArray\",value:function(){return this.array.slice()}},{key:\"iterator\",value:function(){return new qt(this.array)}}])}(Ft),qt=function(){return s((function t(e){n(this,t),this.array=e,this.position=0}),[{key:\"next\",value:function(){if(this.position===this.array.length)throw new j;return this.array[this.position++]}},{key:\"hasNext\",value:function(){return this.position<this.array.length}},{key:\"remove\",value:function(){throw new W}}])}(),Yt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeEnvelopeInternal\",value:function(){for(var t=new U,e=0;e<this._geometries.length;e++)t.expandToInclude(this._geometries[e].getEnvelopeInternal());return t}},{key:\"getGeometryN\",value:function(t){return this._geometries[t]}},{key:\"getCoordinates\",value:function(){for(var t=new Array(this.getNumPoints()).fill(null),e=-1,n=0;n<this._geometries.length;n++)for(var i=this._geometries[n].getCoordinates(),r=0;r<i.length;r++)t[++e]=i[r];return t}},{key:\"getArea\",value:function(){for(var t=0,e=0;e<this._geometries.length;e++)t+=this._geometries[e].getArea();return t}},{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];if(!this.isEquivalentClass(t))return!1;var n=t;if(this._geometries.length!==n._geometries.length)return!1;for(var r=0;r<this._geometries.length;r++)if(!this._geometries[r].equalsExact(n._geometries[r],e))return!1;return!0}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"normalize\",value:function(){for(var t=0;t<this._geometries.length;t++)this._geometries[t].normalize();At.sort(this._geometries)}},{key:\"getCoordinate\",value:function(){return this.isEmpty()?null:this._geometries[0].getCoordinate()}},{key:\"getBoundaryDimension\",value:function(){for(var t=Lt.FALSE,e=0;e<this._geometries.length;e++)t=Math.max(t,this._geometries[e].getBoundaryDimension());return t}},{key:\"reverseInternal\",value:function(){for(var t=this._geometries.length,e=new yt(t),n=0;n<t;n++)e.add(this._geometries[n].reverse());return this.getFactory().buildGeometry(e)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_GEOMETRYCOLLECTION}},{key:\"getDimension\",value:function(){for(var t=Lt.FALSE,e=0;e<this._geometries.length;e++)t=Math.max(t,this._geometries[e].getDimension());return t}},{key:\"getLength\",value:function(){for(var t=0,e=0;e<this._geometries.length;e++)t+=this._geometries[e].getLength();return t}},{key:\"getNumPoints\",value:function(){for(var t=0,e=0;e<this._geometries.length;e++)t+=this._geometries[e].getNumPoints();return t}},{key:\"getNumGeometries\",value:function(){return this._geometries.length}},{key:\"compareToSameClass\",value:function(){if(1===arguments.length){var t=arguments[0],e=new Gt(At.asList(this._geometries)),n=new Gt(At.asList(t._geometries));return this.compare(e,n)}if(2===arguments.length){for(var i=arguments[1],r=arguments[0],s=this.getNumGeometries(),a=r.getNumGeometries(),o=0;o<s&&o<a;){var u=this.getGeometryN(o),l=r.getGeometryN(o),h=u.compareToSameClass(l,i);if(0!==h)return h;o++}return o<s?1:o<a?-1:0}}},{key:\"apply\",value:function(){if(rt(arguments[0],Et))for(var t=arguments[0],e=0;e<this._geometries.length;e++)this._geometries[e].apply(t);else if(rt(arguments[0],Rt)){var n=arguments[0];if(0===this._geometries.length)return null;for(var i=0;i<this._geometries.length&&(this._geometries[i].apply(n),!n.isDone());i++);n.isGeometryChanged()&&this.geometryChanged()}else if(rt(arguments[0],Ct)){var r=arguments[0];r.filter(this);for(var s=0;s<this._geometries.length;s++)this._geometries[s].apply(r)}else if(rt(arguments[0],k)){var a=arguments[0];a.filter(this);for(var o=0;o<this._geometries.length;o++)this._geometries[o].apply(a)}}},{key:\"getBoundary\",value:function(){return V.checkNotGeometryCollection(this),G.shouldNeverReachHere(),null}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_GEOMETRYCOLLECTION}},{key:\"isEmpty\",value:function(){for(var t=0;t<this._geometries.length;t++)if(!this._geometries[t].isEmpty())return!1;return!0}}],[{key:\"constructor_\",value:function(){if(this._geometries=null,0===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];if(V.constructor_.call(this,e),null===t&&(t=[]),V.hasNullElements(t))throw new m(\"geometries must not contain null elements\");this._geometries=t}}}])}(V),zt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"isValid\",value:function(){return!0}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&f(i,\"equalsExact\",this,1).call(this,t,e)}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"getCoordinate\",value:function(){if(1===arguments.length&&Number.isInteger(arguments[0])){var t=arguments[0];return this._geometries[t].getCoordinate()}return f(i,\"getCoordinate\",this,1).apply(this,arguments)}},{key:\"getBoundaryDimension\",value:function(){return Lt.FALSE}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_MULTIPOINT}},{key:\"getDimension\",value:function(){return 0}},{key:\"getBoundary\",value:function(){return this.getFactory().createGeometryCollection()}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_MULTIPOINT}},{key:\"interfaces_\",get:function(){return[Ot]}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Yt.constructor_.call(this,t,e)}}])}(Yt),Xt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){return new i(this._points.copy(),this._factory)}},{key:\"getBoundaryDimension\",value:function(){return Lt.FALSE}},{key:\"isClosed\",value:function(){return!!this.isEmpty()||f(i,\"isClosed\",this,1).call(this)}},{key:\"reverseInternal\",value:function(){var t=this._points.copy();return St.reverse(t),this.getFactory().createLinearRing(t)}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_LINEARRING}},{key:\"validateConstruction\",value:function(){if(!this.isEmpty()&&!f(i,\"isClosed\",this,1).call(this))throw new m(\"Points of LinearRing do not form a closed linestring\");if(this.getCoordinateSequence().size()>=1&&this.getCoordinateSequence().size()<i.MINIMUM_VALID_SIZE)throw new m(\"Invalid number of points in LinearRing (found \"+this.getCoordinateSequence().size()+\" - must be 0 or >= 4)\")}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_LINEARRING}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];wt.constructor_.call(this,t,e),this.validateConstruction()}}])}(wt);Xt.MINIMUM_VALID_SIZE=4;var Bt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"setOrdinate\",value:function(t,e){switch(t){case i.X:this.x=e;break;case i.Y:this.y=e;break;default:throw new m(\"Invalid ordinate index: \"+t)}}},{key:\"getZ\",value:function(){return X.NULL_ORDINATE}},{key:\"getOrdinate\",value:function(t){switch(t){case i.X:return this.x;case i.Y:return this.y}throw new m(\"Invalid ordinate index: \"+t)}},{key:\"setZ\",value:function(t){throw new m(\"CoordinateXY dimension 2 does not support z-ordinate\")}},{key:\"copy\",value:function(){return new i(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\")\"}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ()}}],[{key:\"constructor_\",value:function(){if(0===arguments.length)X.constructor_.call(this);else if(1===arguments.length){if(arguments[0]instanceof i){var t=arguments[0];X.constructor_.call(this,t.x,t.y)}else if(arguments[0]instanceof X){var e=arguments[0];X.constructor_.call(this,e.x,e.y)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];X.constructor_.call(this,n,r,X.NULL_ORDINATE)}}}])}(X);Bt.X=0,Bt.Y=1,Bt.Z=-1,Bt.M=-1;var Ut=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getM\",value:function(){return this._m}},{key:\"setOrdinate\",value:function(t,e){switch(t){case i.X:this.x=e;break;case i.Y:this.y=e;break;case i.M:this._m=e;break;default:throw new m(\"Invalid ordinate index: \"+t)}}},{key:\"setM\",value:function(t){this._m=t}},{key:\"getZ\",value:function(){return X.NULL_ORDINATE}},{key:\"getOrdinate\",value:function(t){switch(t){case i.X:return this.x;case i.Y:return this.y;case i.M:return this._m}throw new m(\"Invalid ordinate index: \"+t)}},{key:\"setZ\",value:function(t){throw new m(\"CoordinateXY dimension 2 does not support z-ordinate\")}},{key:\"copy\",value:function(){return new i(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\" m=\"+this.getM()+\")\"}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ(),this._m=t.getM()}}],[{key:\"constructor_\",value:function(){if(this._m=null,0===arguments.length)X.constructor_.call(this),this._m=0;else if(1===arguments.length){if(arguments[0]instanceof i){var t=arguments[0];X.constructor_.call(this,t.x,t.y),this._m=t._m}else if(arguments[0]instanceof X){var e=arguments[0];X.constructor_.call(this,e.x,e.y),this._m=this.getM()}}else if(3===arguments.length){var n=arguments[0],r=arguments[1],s=arguments[2];X.constructor_.call(this,n,r,X.NULL_ORDINATE),this._m=s}}}])}(X);Ut.X=0,Ut.Y=1,Ut.Z=-1,Ut.M=2;var Vt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getM\",value:function(){return this._m}},{key:\"setOrdinate\",value:function(t,e){switch(t){case X.X:this.x=e;break;case X.Y:this.y=e;break;case X.Z:this.z=e;break;case X.M:this._m=e;break;default:throw new m(\"Invalid ordinate index: \"+t)}}},{key:\"setM\",value:function(t){this._m=t}},{key:\"getOrdinate\",value:function(t){switch(t){case X.X:return this.x;case X.Y:return this.y;case X.Z:return this.getZ();case X.M:return this.getM()}throw new m(\"Invalid ordinate index: \"+t)}},{key:\"copy\",value:function(){return new i(this)}},{key:\"toString\",value:function(){return\"(\"+this.x+\", \"+this.y+\", \"+this.getZ()+\" m=\"+this.getM()+\")\"}},{key:\"setCoordinate\",value:function(t){this.x=t.x,this.y=t.y,this.z=t.getZ(),this._m=t.getM()}}],[{key:\"constructor_\",value:function(){if(this._m=null,0===arguments.length)X.constructor_.call(this),this._m=0;else if(1===arguments.length){if(arguments[0]instanceof i){var t=arguments[0];X.constructor_.call(this,t),this._m=t._m}else if(arguments[0]instanceof X){var e=arguments[0];X.constructor_.call(this,e),this._m=this.getM()}}else if(4===arguments.length){var n=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3];X.constructor_.call(this,n,r,s),this._m=a}}}])}(X),Ht=function(){function t(){n(this,t)}return s(t,null,[{key:\"measures\",value:function(t){return t instanceof Bt?0:t instanceof Ut||t instanceof Vt?1:0}},{key:\"dimension\",value:function(t){return t instanceof Bt?2:t instanceof Ut?3:t instanceof Vt?4:3}},{key:\"create\",value:function(){if(1===arguments.length){var e=arguments[0];return t.create(e,0)}if(2===arguments.length){var n=arguments[0],i=arguments[1];return 2===n?new Bt:3===n&&0===i?new X:3===n&&1===i?new Ut:4===n&&1===i?new Vt:new X}}}])}(),Zt=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getCoordinate\",value:function(t){return this.get(t)}},{key:\"addAll\",value:function(){if(2===arguments.length&&\"boolean\"==typeof arguments[1]&&rt(arguments[0],Z)){for(var t=arguments[1],e=!1,n=arguments[0].iterator();n.hasNext();)this.add(n.next(),t),e=!0;return e}return f(i,\"addAll\",this,1).apply(this,arguments)}},{key:\"clone\",value:function(){for(var t=f(i,\"clone\",this,1).call(this),e=0;e<this.size();e++)t.add(e,this.get(e).clone());return t}},{key:\"toCoordinateArray\",value:function(){if(0===arguments.length)return this.toArray(i.coordArrayType);if(1===arguments.length){if(arguments[0])return this.toArray(i.coordArrayType);for(var t=this.size(),e=new Array(t).fill(null),n=0;n<t;n++)e[n]=this.get(t-n-1);return e}}},{key:\"add\",value:function(){if(1===arguments.length){var t=arguments[0];return f(i,\"add\",this,1).call(this,t)}if(2===arguments.length){if(arguments[0]instanceof Array&&\"boolean\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];return this.add(e,n,!0),!0}if(arguments[0]instanceof X&&\"boolean\"==typeof arguments[1]){var r=arguments[0];if(!arguments[1]&&this.size()>=1)if(this.get(this.size()-1).equals2D(r))return null;f(i,\"add\",this,1).call(this,r)}else if(arguments[0]instanceof Object&&\"boolean\"==typeof arguments[1]){var s=arguments[0],a=arguments[1];return this.add(s,a),!0}}else if(3===arguments.length){if(\"boolean\"==typeof arguments[2]&&arguments[0]instanceof Array&&\"boolean\"==typeof arguments[1]){var o=arguments[0],u=arguments[1];if(arguments[2])for(var l=0;l<o.length;l++)this.add(o[l],u);else for(var h=o.length-1;h>=0;h--)this.add(o[h],u);return!0}if(\"boolean\"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof X){var c=arguments[0],g=arguments[1];if(!arguments[2]){var v=this.size();if(v>0){if(c>0)if(this.get(c-1).equals2D(g))return null;if(c<v)if(this.get(c).equals2D(g))return null}}f(i,\"add\",this,1).call(this,c,g)}}else if(4===arguments.length){var y=arguments[0],d=arguments[1],_=arguments[2],p=arguments[3],m=1;_>p&&(m=-1);for(var k=_;k!==p;k+=m)this.add(y[k],d);return!0}}},{key:\"closeRing\",value:function(){if(this.size()>0){var t=this.get(0).copy();this.add(t,!1)}}}],[{key:\"constructor_\",value:function(){if(0===arguments.length);else if(1===arguments.length){var t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.ensureCapacity(e.length),this.add(e,n)}}}])}(yt);Zt.coordArrayType=new Array(0).fill(null);var jt=function(){function t(){n(this,t)}return s(t,null,[{key:\"isRing\",value:function(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])}},{key:\"ptNotInList\",value:function(e,n){for(var i=0;i<e.length;i++){var r=e[i];if(t.indexOf(r,n)<0)return r}return null}},{key:\"scroll\",value:function(e,n){var i=t.indexOf(n,e);if(i<0)return null;var r=new Array(e.length).fill(null);mt.arraycopy(e,i,r,0,e.length-i),mt.arraycopy(e,0,r,e.length-i,i),mt.arraycopy(r,0,e,0,e.length)}},{key:\"equals\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];if(t===e)return!0;if(null===t||null===e)return!1;if(t.length!==e.length)return!1;for(var n=0;n<t.length;n++)if(!t[n].equals(e[n]))return!1;return!0}if(3===arguments.length){var i=arguments[0],r=arguments[1],s=arguments[2];if(i===r)return!0;if(null===i||null===r)return!1;if(i.length!==r.length)return!1;for(var a=0;a<i.length;a++)if(0!==s.compare(i[a],r[a]))return!1;return!0}}},{key:\"intersection\",value:function(t,e){for(var n=new Zt,i=0;i<t.length;i++)e.intersects(t[i])&&n.add(t[i],!0);return n.toCoordinateArray()}},{key:\"measures\",value:function(t){if(null===t||0===t.length)return 0;var e,n=0,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;n=Math.max(n,Ht.measures(r))}}catch(t){i.e(t)}finally{i.f()}return n}},{key:\"hasRepeatedPoints\",value:function(t){for(var e=1;e<t.length;e++)if(t[e-1].equals(t[e]))return!0;return!1}},{key:\"removeRepeatedPoints\",value:function(e){return t.hasRepeatedPoints(e)?new Zt(e,!1).toCoordinateArray():e}},{key:\"reverse\",value:function(t){for(var e=t.length-1,n=Math.trunc(e/2),i=0;i<=n;i++){var r=t[i];t[i]=t[e-i],t[e-i]=r}}},{key:\"removeNull\",value:function(t){for(var e=0,n=0;n<t.length;n++)null!==t[n]&&e++;var i=new Array(e).fill(null);if(0===e)return i;for(var r=0,s=0;s<t.length;s++)null!==t[s]&&(i[r++]=t[s]);return i}},{key:\"copyDeep\",value:function(){if(1===arguments.length){for(var t=arguments[0],e=new Array(t.length).fill(null),n=0;n<t.length;n++)e[n]=t[n].copy();return e}if(5===arguments.length)for(var i=arguments[0],r=arguments[1],s=arguments[2],a=arguments[3],o=arguments[4],u=0;u<o;u++)s[a+u]=i[r+u].copy()}},{key:\"isEqualReversed\",value:function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[t.length-n-1];if(0!==i.compareTo(r))return!1}return!0}},{key:\"envelope\",value:function(t){for(var e=new U,n=0;n<t.length;n++)e.expandToInclude(t[n]);return e}},{key:\"toCoordinateArray\",value:function(e){return e.toArray(t.coordArrayType)}},{key:\"dimension\",value:function(t){if(null===t||0===t.length)return 3;var e,n=0,i=a(t);try{for(i.s();!(e=i.n()).done;){var r=e.value;n=Math.max(n,Ht.dimension(r))}}catch(t){i.e(t)}finally{i.f()}return n}},{key:\"atLeastNCoordinatesOrNothing\",value:function(t,e){return e.length>=t?e:[]}},{key:\"indexOf\",value:function(t,e){for(var n=0;n<e.length;n++)if(t.equals(e[n]))return n;return-1}},{key:\"increasingDirection\",value:function(t){for(var e=0;e<Math.trunc(t.length/2);e++){var n=t.length-1-e,i=t[e].compareTo(t[n]);if(0!==i)return i}return 1}},{key:\"compare\",value:function(t,e){for(var n=0;n<t.length&&n<e.length;){var i=t[n].compareTo(e[n]);if(0!==i)return i;n++}return n<e.length?-1:n<t.length?1:0}},{key:\"minCoordinate\",value:function(t){for(var e=null,n=0;n<t.length;n++)(null===e||e.compareTo(t[n])>0)&&(e=t[n]);return e}},{key:\"extract\",value:function(t,e,n){e=kt.clamp(e,0,t.length);var i=(n=kt.clamp(n,-1,t.length))-e+1;n<0&&(i=0),e>=t.length&&(i=0),n<e&&(i=0);var r=new Array(i).fill(null);if(0===i)return r;for(var s=0,a=e;a<=n;a++)r[s++]=t[a];return r}}])}(),Wt=function(){return s((function t(){n(this,t)}),[{key:\"compare\",value:function(t,e){var n=t,i=e;return jt.compare(n,i)}},{key:\"interfaces_\",get:function(){return[P]}}])}(),Kt=function(){return s((function t(){n(this,t)}),[{key:\"compare\",value:function(t,e){var n=t,i=e;if(n.length<i.length)return-1;if(n.length>i.length)return 1;if(0===n.length)return 0;var r=jt.compare(n,i);return jt.isEqualReversed(n,i)?0:r}},{key:\"OLDcompare\",value:function(t,e){var n=t,i=e;if(n.length<i.length)return-1;if(n.length>i.length)return 1;if(0===n.length)return 0;for(var r=jt.increasingDirection(n),s=jt.increasingDirection(i),a=r>0?0:n.length-1,o=s>0?0:n.length-1,u=0;u<n.length;u++){var l=n[a].compareTo(i[o]);if(0!==l)return l;a+=r,o+=s}return 0}},{key:\"interfaces_\",get:function(){return[P]}}])}();jt.ForwardComparator=Wt,jt.BidirectionalComparator=Kt,jt.coordArrayType=new Array(0).fill(null);var Jt=function(){return s((function t(e){n(this,t),this.str=e}),[{key:\"append\",value:function(t){this.str+=t}},{key:\"setCharAt\",value:function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)}},{key:\"toString\",value:function(){return this.str}}])}(),Qt=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getM\",value:function(t){return this.hasM()?this._coordinates[t].getM():A.NaN}},{key:\"setOrdinate\",value:function(t,e,n){switch(e){case ht.X:this._coordinates[t].x=n;break;case ht.Y:this._coordinates[t].y=n;break;default:this._coordinates[t].setOrdinate(e,n)}}},{key:\"getZ\",value:function(t){return this.hasZ()?this._coordinates[t].getZ():A.NaN}},{key:\"size\",value:function(){return this._coordinates.length}},{key:\"getOrdinate\",value:function(t,e){switch(e){case ht.X:return this._coordinates[t].x;case ht.Y:return this._coordinates[t].y;default:return this._coordinates[t].getOrdinate(e)}}},{key:\"getCoordinate\",value:function(){if(1===arguments.length){var t=arguments[0];return this._coordinates[t]}if(2===arguments.length){var e=arguments[0];arguments[1].setCoordinate(this._coordinates[e])}}},{key:\"getCoordinateCopy\",value:function(t){var e=this.createCoordinate();return e.setCoordinate(this._coordinates[t]),e}},{key:\"createCoordinate\",value:function(){return Ht.create(this.getDimension(),this.getMeasures())}},{key:\"getDimension\",value:function(){return this._dimension}},{key:\"getX\",value:function(t){return this._coordinates[t].x}},{key:\"getMeasures\",value:function(){return this._measures}},{key:\"expandEnvelope\",value:function(t){for(var e=0;e<this._coordinates.length;e++)t.expandToInclude(this._coordinates[e]);return t}},{key:\"copy\",value:function(){for(var e=new Array(this.size()).fill(null),n=0;n<this._coordinates.length;n++){var i=this.createCoordinate();i.setCoordinate(this._coordinates[n]),e[n]=i}return new t(e,this._dimension,this._measures)}},{key:\"toString\",value:function(){if(this._coordinates.length>0){var t=new Jt(17*this._coordinates.length);t.append(\"(\"),t.append(this._coordinates[0]);for(var e=1;e<this._coordinates.length;e++)t.append(\", \"),t.append(this._coordinates[e]);return t.append(\")\"),t.toString()}return\"()\"}},{key:\"getY\",value:function(t){return this._coordinates[t].y}},{key:\"toCoordinateArray\",value:function(){return this._coordinates}},{key:\"interfaces_\",get:function(){return[ht,E]}}],[{key:\"constructor_\",value:function(){if(this._dimension=3,this._measures=0,this._coordinates=null,1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];t.constructor_.call(this,e,jt.dimension(e),jt.measures(e))}else if(Number.isInteger(arguments[0])){var n=arguments[0];this._coordinates=new Array(n).fill(null);for(var i=0;i<n;i++)this._coordinates[i]=new X}else if(rt(arguments[0],ht)){var r=arguments[0];if(null===r)return this._coordinates=new Array(0).fill(null),null;this._dimension=r.getDimension(),this._measures=r.getMeasures(),this._coordinates=new Array(r.size()).fill(null);for(var s=0;s<this._coordinates.length;s++)this._coordinates[s]=r.getCoordinateCopy(s)}}else if(2===arguments.length){if(arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var a=arguments[0],o=arguments[1];t.constructor_.call(this,a,o,jt.measures(a))}else if(Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var u=arguments[0],l=arguments[1];this._coordinates=new Array(u).fill(null),this._dimension=l;for(var h=0;h<u;h++)this._coordinates[h]=Ht.create(l)}}else if(3===arguments.length)if(Number.isInteger(arguments[2])&&arguments[0]instanceof Array&&Number.isInteger(arguments[1])){var c=arguments[0],f=arguments[1],g=arguments[2];this._dimension=f,this._measures=g,this._coordinates=null===c?new Array(0).fill(null):c}else if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var v=arguments[0],y=arguments[1],d=arguments[2];this._coordinates=new Array(v).fill(null),this._dimension=y,this._measures=d;for(var _=0;_<v;_++)this._coordinates[_]=this.createCoordinate()}}}])}(),$t=function(){function t(){n(this,t)}return s(t,[{key:\"readResolve\",value:function(){return t.instance()}},{key:\"create\",value:function(){if(1===arguments.length){if(arguments[0]instanceof Array)return new Qt(arguments[0]);if(rt(arguments[0],ht))return new Qt(arguments[0])}else{if(2===arguments.length){var t=arguments[1];return t>3&&(t=3),t<2&&(t=2),new Qt(arguments[0],t)}if(3===arguments.length){var e=arguments[2],n=arguments[1]-e;return e>1&&(e=1),n>3&&(n=3),n<2&&(n=2),new Qt(arguments[0],n+e,e)}}}},{key:\"interfaces_\",get:function(){return[It,E]}}],[{key:\"instance\",value:function(){return t.instanceObject}}])}();$t.instanceObject=new $t;var te=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&f(i,\"equalsExact\",this,1).call(this,t,e)}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"getBoundaryDimension\",value:function(){return 1}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_MULTIPOLYGON}},{key:\"getDimension\",value:function(){return 2}},{key:\"getBoundary\",value:function(){if(this.isEmpty())return this.getFactory().createMultiLineString();for(var t=new yt,e=0;e<this._geometries.length;e++)for(var n=this._geometries[e].getBoundary(),i=0;i<n.getNumGeometries();i++)t.add(n.getGeometryN(i));var r=new Array(t.size()).fill(null);return this.getFactory().createMultiLineString(t.toArray(r))}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_MULTIPOLYGON}},{key:\"interfaces_\",get:function(){return[Pt]}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Yt.constructor_.call(this,t,e)}}])}(Yt),ee=function(){return s((function t(){n(this,t)}),[{key:\"get\",value:function(){}},{key:\"put\",value:function(){}},{key:\"size\",value:function(){}},{key:\"values\",value:function(){}},{key:\"entrySet\",value:function(){}}])}(),ne=function(t){function i(){var t;return n(this,i),(t=e(this,i)).map=new Map,t}return l(i,t),s(i,[{key:\"get\",value:function(t){return this.map.get(t)||null}},{key:\"put\",value:function(t,e){return this.map.set(t,e),e}},{key:\"values\",value:function(){for(var t=new yt,e=this.map.values(),n=e.next();!n.done;)t.add(n.value),n=e.next();return t}},{key:\"entrySet\",value:function(){var t=new J;return this.map.entries().forEach((function(e){return t.add(e)})),t}},{key:\"size\",value:function(){return this.map.size()}}])}(ee),ie=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"equals\",value:function(e){if(!(e instanceof t))return!1;var n=e;return this._modelType===n._modelType&&this._scale===n._scale}},{key:\"compareTo\",value:function(t){var e=t,n=this.getMaximumSignificantDigits(),i=e.getMaximumSignificantDigits();return at.compare(n,i)}},{key:\"getScale\",value:function(){return this._scale}},{key:\"isFloating\",value:function(){return this._modelType===t.FLOATING||this._modelType===t.FLOATING_SINGLE}},{key:\"getType\",value:function(){return this._modelType}},{key:\"toString\",value:function(){var e=\"UNKNOWN\";return this._modelType===t.FLOATING?e=\"Floating\":this._modelType===t.FLOATING_SINGLE?e=\"Floating-Single\":this._modelType===t.FIXED&&(e=\"Fixed (Scale=\"+this.getScale()+\")\"),e}},{key:\"makePrecise\",value:function(){if(\"number\"==typeof arguments[0]){var e=arguments[0];return A.isNaN(e)||this._modelType===t.FLOATING_SINGLE?e:this._modelType===t.FIXED?Math.round(e*this._scale)/this._scale:e}if(arguments[0]instanceof X){var n=arguments[0];if(this._modelType===t.FLOATING)return null;n.x=this.makePrecise(n.x),n.y=this.makePrecise(n.y)}}},{key:\"getMaximumSignificantDigits\",value:function(){var e=16;return this._modelType===t.FLOATING?e=16:this._modelType===t.FLOATING_SINGLE?e=6:this._modelType===t.FIXED&&(e=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),e}},{key:\"setScale\",value:function(t){this._scale=Math.abs(t)}},{key:\"interfaces_\",get:function(){return[E,x]}}],[{key:\"constructor_\",value:function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=t.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof re){var e=arguments[0];this._modelType=e,e===t.FIXED&&this.setScale(1)}else if(\"number\"==typeof arguments[0]){var n=arguments[0];this._modelType=t.FIXED,this.setScale(n)}else if(arguments[0]instanceof t){var i=arguments[0];this._modelType=i._modelType,this._scale=i._scale}}},{key:\"mostPrecise\",value:function(t,e){return t.compareTo(e)>=0?t:e}}])}(),re=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"readResolve\",value:function(){return t.nameToTypeMap.get(this._name)}},{key:\"toString\",value:function(){return this._name}},{key:\"interfaces_\",get:function(){return[E]}}],[{key:\"constructor_\",value:function(){this._name=null;var e=arguments[0];this._name=e,t.nameToTypeMap.put(e,this)}}])}();re.nameToTypeMap=new ne,ie.Type=re,ie.FIXED=new re(\"FIXED\"),ie.FLOATING=new re(\"FLOATING\"),ie.FLOATING_SINGLE=new re(\"FLOATING SINGLE\"),ie.maximumPreciseValue=9007199254740992;var se=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"copyInternal\",value:function(){for(var t=new Array(this._geometries.length).fill(null),e=0;e<t.length;e++)t[e]=this._geometries[e].copy();return new i(t,this._factory)}},{key:\"equalsExact\",value:function(){if(2===arguments.length&&\"number\"==typeof arguments[1]&&arguments[0]instanceof V){var t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&f(i,\"equalsExact\",this,1).call(this,t,e)}return f(i,\"equalsExact\",this,1).apply(this,arguments)}},{key:\"getBoundaryDimension\",value:function(){return this.isClosed()?Lt.FALSE:0}},{key:\"isClosed\",value:function(){if(this.isEmpty())return!1;for(var t=0;t<this._geometries.length;t++)if(!this._geometries[t].isClosed())return!1;return!0}},{key:\"getTypeCode\",value:function(){return V.TYPECODE_MULTILINESTRING}},{key:\"getDimension\",value:function(){return 1}},{key:\"getBoundary\",value:function(){throw new W}},{key:\"getGeometryType\",value:function(){return V.TYPENAME_MULTILINESTRING}},{key:\"interfaces_\",get:function(){return[Tt]}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Yt.constructor_.call(this,t,e)}}])}(Yt),ae=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"createEmpty\",value:function(t){switch(t){case-1:return this.createGeometryCollection();case 0:return this.createPoint();case 1:return this.createLineString();case 2:return this.createPolygon();default:throw new m(\"Invalid dimension: \"+t)}}},{key:\"toGeometry\",value:function(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new X(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new X(t.getMinX(),t.getMinY()),new X(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new X(t.getMinX(),t.getMinY()),new X(t.getMinX(),t.getMaxY()),new X(t.getMaxX(),t.getMaxY()),new X(t.getMaxX(),t.getMinY()),new X(t.getMinX(),t.getMinY())]),null)}},{key:\"createLineString\",value:function(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(rt(arguments[0],ht))return new wt(arguments[0],this)}}},{key:\"createMultiLineString\",value:function(){return 0===arguments.length?new se(null,this):1===arguments.length?new se(arguments[0],this):void 0}},{key:\"buildGeometry\",value:function(e){for(var n=null,i=!1,r=!1,s=e.iterator();s.hasNext();){var a=s.next(),o=a.getTypeCode();null===n&&(n=o),o!==n&&(i=!0),a instanceof Yt&&(r=!0)}if(null===n)return this.createGeometryCollection();if(i||r)return this.createGeometryCollection(t.toGeometryArray(e));var u=e.iterator().next();if(e.size()>1){if(u instanceof Dt)return this.createMultiPolygon(t.toPolygonArray(e));if(u instanceof wt)return this.createMultiLineString(t.toLineStringArray(e));if(u instanceof bt)return this.createMultiPoint(t.toPointArray(e));G.shouldNeverReachHere(\"Unhandled geometry type: \"+u.getGeometryType())}return u}},{key:\"createMultiPointFromCoords\",value:function(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}},{key:\"createPoint\",value:function(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof X){var t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(rt(arguments[0],ht))return new bt(arguments[0],this)}}},{key:\"getCoordinateSequenceFactory\",value:function(){return this._coordinateSequenceFactory}},{key:\"createPolygon\",value:function(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(rt(arguments[0],ht)){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}if(arguments[0]instanceof Xt){var n=arguments[0];return this.createPolygon(n,null)}}else if(2===arguments.length){return new Dt(arguments[0],arguments[1],this)}}},{key:\"getSRID\",value:function(){return this._SRID}},{key:\"createGeometryCollection\",value:function(){return 0===arguments.length?new Yt(null,this):1===arguments.length?new Yt(arguments[0],this):void 0}},{key:\"getPrecisionModel\",value:function(){return this._precisionModel}},{key:\"createLinearRing\",value:function(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(rt(arguments[0],ht))return new Xt(arguments[0],this)}}},{key:\"createMultiPolygon\",value:function(){return 0===arguments.length?new te(null,this):1===arguments.length?new te(arguments[0],this):void 0}},{key:\"createMultiPoint\",value:function(){if(0===arguments.length)return new zt(null,this);if(1===arguments.length){if(arguments[0]instanceof Array)return new zt(arguments[0],this);if(rt(arguments[0],ht)){var t=arguments[0];if(null===t)return this.createMultiPoint(new Array(0).fill(null));for(var e=new Array(t.size()).fill(null),n=0;n<t.size();n++){var i=this.getCoordinateSequenceFactory().create(1,t.getDimension(),t.getMeasures());St.copy(t,n,i,0,1),e[n]=this.createPoint(i)}return this.createMultiPoint(e)}}}},{key:\"interfaces_\",get:function(){return[E]}}],[{key:\"constructor_\",value:function(){if(this._precisionModel=null,this._coordinateSequenceFactory=null,this._SRID=null,0===arguments.length)t.constructor_.call(this,new ie,0);else if(1===arguments.length){if(rt(arguments[0],It)){var e=arguments[0];t.constructor_.call(this,new ie,0,e)}else if(arguments[0]instanceof ie){var n=arguments[0];t.constructor_.call(this,n,0,t.getDefaultCoordinateSequenceFactory())}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];t.constructor_.call(this,i,r,t.getDefaultCoordinateSequenceFactory())}else if(3===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2];this._precisionModel=s,this._coordinateSequenceFactory=o,this._SRID=a}}},{key:\"toMultiPolygonArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toGeometryArray\",value:function(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"getDefaultCoordinateSequenceFactory\",value:function(){return $t.instance()}},{key:\"toMultiLineStringArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toLineStringArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toMultiPointArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toLinearRingArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toPointArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"toPolygonArray\",value:function(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}},{key:\"createPointFromInternalCoord\",value:function(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}}])}(),oe=\"XY\",ue=\"XYZ\",le=\"XYM\",he=\"XYZM\",ce={POINT:\"Point\",LINE_STRING:\"LineString\",LINEAR_RING:\"LinearRing\",POLYGON:\"Polygon\",MULTI_POINT:\"MultiPoint\",MULTI_LINE_STRING:\"MultiLineString\",MULTI_POLYGON:\"MultiPolygon\",GEOMETRY_COLLECTION:\"GeometryCollection\",CIRCLE:\"Circle\"},fe=\"EMPTY\",ge=1,ve=2,ye=3,de=4,_e=5,pe=6;for(var me in ce)ce[me].toUpperCase();var ke=function(){return s((function t(e){n(this,t),this.wkt=e,this.index_=-1}),[{key:\"isAlpha_\",value:function(t){return t>=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\"}},{key:\"isNumeric_\",value:function(t,e){return t>=\"0\"&&t<=\"9\"||\".\"==t&&!(void 0!==e&&e)}},{key:\"isWhiteSpace_\",value:function(t){return\" \"==t||\"\\t\"==t||\"\\r\"==t||\"\\n\"==t}},{key:\"nextChar_\",value:function(){return this.wkt.charAt(++this.index_)}},{key:\"nextToken\",value:function(){var t,e=this.nextChar_(),n=this.index_,i=e;if(\"(\"==e)t=ve;else if(\",\"==e)t=_e;else if(\")\"==e)t=ye;else if(this.isNumeric_(e)||\"-\"==e)t=de,i=this.readNumber_();else if(this.isAlpha_(e))t=ge,i=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(\"\"!==e)throw new Error(\"Unexpected character: \"+e);t=pe}return{position:n,value:i,type:t}}},{key:\"readNumber_\",value:function(){var t,e=this.index_,n=!1,i=!1;do{\".\"==t?n=!0:\"e\"!=t&&\"E\"!=t||(i=!0),t=this.nextChar_()}while(this.isNumeric_(t,n)||!i&&(\"e\"==t||\"E\"==t)||i&&(\"-\"==t||\"+\"==t));return parseFloat(this.wkt.substring(e,this.index_--))}},{key:\"readText_\",value:function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}])}(),xe=function(){return s((function t(e,i){n(this,t),this.lexer_=e,this.token_,this.layout_=oe,this.factory=i}),[{key:\"consume_\",value:function(){this.token_=this.lexer_.nextToken()}},{key:\"isTokenType\",value:function(t){return this.token_.type==t}},{key:\"match\",value:function(t){var e=this.isTokenType(t);return e&&this.consume_(),e}},{key:\"parse\",value:function(){return this.consume_(),this.parseGeometry_()}},{key:\"parseGeometryLayout_\",value:function(){var t=oe,e=this.token_;if(this.isTokenType(ge)){var n=e.value;\"Z\"===n?t=ue:\"M\"===n?t=le:\"ZM\"===n&&(t=he),t!==oe&&this.consume_()}return t}},{key:\"parseGeometryCollectionText_\",value:function(){if(this.match(ve)){var t=[];do{t.push(this.parseGeometry_())}while(this.match(_e));if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parsePointText_\",value:function(){if(this.match(ve)){var t=this.parsePoint_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return null;throw new Error(this.formatErrorMessage_())}},{key:\"parseLineStringText_\",value:function(){if(this.match(ve)){var t=this.parsePointList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parsePolygonText_\",value:function(){if(this.match(ve)){var t=this.parseLineStringTextList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parseMultiPointText_\",value:function(){var t;if(this.match(ve)){if(t=this.token_.type==ve?this.parsePointTextList_():this.parsePointList_(),this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parseMultiLineStringText_\",value:function(){if(this.match(ve)){var t=this.parseLineStringTextList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parseMultiPolygonText_\",value:function(){if(this.match(ve)){var t=this.parsePolygonTextList_();if(this.match(ye))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())}},{key:\"parsePoint_\",value:function(){for(var t=[],e=this.layout_.length,n=0;n<e;++n){var i=this.token_;if(!this.match(de))break;t.push(i.value)}if(t.length==e)return t;throw new Error(this.formatErrorMessage_())}},{key:\"parsePointList_\",value:function(){for(var t=[this.parsePoint_()];this.match(_e);)t.push(this.parsePoint_());return t}},{key:\"parsePointTextList_\",value:function(){for(var t=[this.parsePointText_()];this.match(_e);)t.push(this.parsePointText_());return t}},{key:\"parseLineStringTextList_\",value:function(){for(var t=[this.parseLineStringText_()];this.match(_e);)t.push(this.parseLineStringText_());return t}},{key:\"parsePolygonTextList_\",value:function(){for(var t=[this.parsePolygonText_()];this.match(_e);)t.push(this.parsePolygonText_());return t}},{key:\"isEmptyGeometry_\",value:function(){var t=this.isTokenType(ge)&&this.token_.value==fe;return t&&this.consume_(),t}},{key:\"formatErrorMessage_\",value:function(){return\"Unexpected `\"+this.token_.value+\"` at position \"+this.token_.position+\" in `\"+this.lexer_.wkt+\"`\"}},{key:\"parseGeometry_\",value:function(){var t=this.factory,e=function(t){return i(X,g(t))},n=function(n){var i=n.map((function(n){return t.createLinearRing(n.map(e))}));return i.length>1?t.createPolygon(i[0],i.slice(1)):t.createPolygon(i[0])},r=this.token_;if(this.match(ge)){var s=r.value;if(this.layout_=this.parseGeometryLayout_(),\"GEOMETRYCOLLECTION\"==s){var a=this.parseGeometryCollectionText_();return t.createGeometryCollection(a)}switch(s){case\"POINT\":var o=this.parsePointText_();return o?t.createPoint(i(X,g(o))):t.createPoint();case\"LINESTRING\":var u=this.parseLineStringText_().map(e);return t.createLineString(u);case\"LINEARRING\":var l=this.parseLineStringText_().map(e);return t.createLinearRing(l);case\"POLYGON\":var h=this.parsePolygonText_();return h&&0!==h.length?n(h):t.createPolygon();case\"MULTIPOINT\":var c=this.parseMultiPointText_();if(!c||0===c.length)return t.createMultiPoint();var f=c.map(e).map((function(e){return t.createPoint(e)}));return t.createMultiPoint(f);case\"MULTILINESTRING\":var v=this.parseMultiLineStringText_().map((function(n){return t.createLineString(n.map(e))}));return t.createMultiLineString(v);case\"MULTIPOLYGON\":var y=this.parseMultiPolygonText_();if(!y||0===y.length)return t.createMultiPolygon();var d=y.map(n);return t.createMultiPolygon(d);default:throw new Error(\"Invalid geometry type: \"+s)}}throw new Error(this.formatErrorMessage_())}}])}();function Ie(t){if(t.isEmpty())return\"\";var e=t.getCoordinate(),n=[e.x,e.y];return void 0===e.z||Number.isNaN(e.z)||n.push(e.z),void 0===e.m||Number.isNaN(e.m)||n.push(e.m),n.join(\" \")}function Ee(t){for(var e=t.getCoordinates().map((function(t){var e=[t.x,t.y];return void 0===t.z||Number.isNaN(t.z)||e.push(t.z),void 0===t.m||Number.isNaN(t.m)||e.push(t.m),e})),n=[],i=0,r=e.length;i<r;++i)n.push(e[i].join(\" \"));return n.join(\", \")}function Ne(t){var e=[];e.push(\"(\"+Ee(t.getExteriorRing())+\")\");for(var n=0,i=t.getNumInteriorRing();n<i;++n)e.push(\"(\"+Ee(t.getInteriorRingN(n))+\")\");return e.join(\", \")}var Te={Point:Ie,LineString:Ee,LinearRing:Ee,Polygon:Ne,MultiPoint:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(\"(\"+Ie(t.getGeometryN(n))+\")\");return e.join(\", \")},MultiLineString:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(\"(\"+Ee(t.getGeometryN(n))+\")\");return e.join(\", \")},MultiPolygon:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(\"(\"+Ne(t.getGeometryN(n))+\")\");return e.join(\", \")},GeometryCollection:function(t){for(var e=[],n=0,i=t.getNumGeometries();n<i;++n)e.push(Se(t.getGeometryN(n)));return e.join(\", \")}};function Se(t){var e=t.getGeometryType(),n=Te[e];e=e.toUpperCase();var i=function(t){var e=\"\";if(t.isEmpty())return e;var n=t.getCoordinate();return void 0===n.z||Number.isNaN(n.z)||(e+=\"Z\"),void 0===n.m||Number.isNaN(n.m)||(e+=\"M\"),e}(t);return i.length>0&&(e+=\" \"+i),t.isEmpty()?e+\" \"+fe:e+\" (\"+n(t)+\")\"}var Le=function(){return s((function t(e){n(this,t),this.geometryFactory=e||new ae,this.precisionModel=this.geometryFactory.getPrecisionModel()}),[{key:\"read\",value:function(t){var e=new ke(t);return new xe(e,this.geometryFactory).parse()}},{key:\"write\",value:function(t){return Se(t)}}])}(),Ce=function(){return s((function t(e){n(this,t),this.parser=new Le(e)}),[{key:\"write\",value:function(t){return this.parser.write(t)}}],[{key:\"toLineString\",value:function(t,e){if(2!==arguments.length)throw new Error(\"Not implemented\");return\"LINESTRING ( \"+t.x+\" \"+t.y+\", \"+e.x+\" \"+e.y+\" )\"}}])}(),Re=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getIndexAlongSegment\",value:function(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}},{key:\"getTopologySummary\",value:function(){var t=new Jt;return this.isEndPoint()&&t.append(\" endpoint\"),this._isProper&&t.append(\" proper\"),this.isCollinear()&&t.append(\" collinear\"),t.toString()}},{key:\"computeIntersection\",value:function(t,e,n,i){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=n,this._inputLines[1][1]=i,this._result=this.computeIntersect(t,e,n,i)}},{key:\"getIntersectionNum\",value:function(){return this._result}},{key:\"computeIntLineIndex\",value:function(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((function(){return Array(2)})),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){var t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}},{key:\"isProper\",value:function(){return this.hasIntersection()&&this._isProper}},{key:\"setPrecisionModel\",value:function(t){this._precisionModel=t}},{key:\"isInteriorIntersection\",value:function(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){for(var t=arguments[0],e=0;e<this._result;e++)if(!this._intPt[e].equals2D(this._inputLines[t][0])&&!this._intPt[e].equals2D(this._inputLines[t][1]))return!0;return!1}}},{key:\"getIntersection\",value:function(t){return this._intPt[t]}},{key:\"isEndPoint\",value:function(){return this.hasIntersection()&&!this._isProper}},{key:\"hasIntersection\",value:function(){return this._result!==t.NO_INTERSECTION}},{key:\"getEdgeDistance\",value:function(e,n){return t.computeEdgeDistance(this._intPt[n],this._inputLines[e][0],this._inputLines[e][1])}},{key:\"isCollinear\",value:function(){return this._result===t.COLLINEAR_INTERSECTION}},{key:\"toString\",value:function(){return Ce.toLineString(this._inputLines[0][0],this._inputLines[0][1])+\" - \"+Ce.toLineString(this._inputLines[1][0],this._inputLines[1][1])+this.getTopologySummary()}},{key:\"getEndpoint\",value:function(t,e){return this._inputLines[t][e]}},{key:\"isIntersection\",value:function(t){for(var e=0;e<this._result;e++)if(this._intPt[e].equals2D(t))return!0;return!1}},{key:\"getIntersectionAlongSegment\",value:function(t,e){return this.computeIntLineIndex(),this._intPt[this._intLineIndex[t][e]]}}],[{key:\"constructor_\",value:function(){this._result=null,this._inputLines=Array(2).fill().map((function(){return Array(2)})),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new X,this._intPt[1]=new X,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0}},{key:\"computeEdgeDistance\",value:function(t,e,n){var i=Math.abs(n.x-e.x),r=Math.abs(n.y-e.y),s=-1;if(t.equals(e))s=0;else if(t.equals(n))s=i>r?i:r;else{var a=Math.abs(t.x-e.x),o=Math.abs(t.y-e.y);0!==(s=i>r?a:o)||t.equals(e)||(s=Math.max(a,o))}return G.isTrue(!(0===s&&!t.equals(e)),\"Bad distance calculation\"),s}},{key:\"nonRobustComputeEdgeDistance\",value:function(t,e,n){var i=t.x-e.x,r=t.y-e.y,s=Math.sqrt(i*i+r*r);return G.isTrue(!(0===s&&!t.equals(e)),\"Invalid distance calculation\"),s}}])}();Re.DONT_INTERSECT=0,Re.DO_INTERSECT=1,Re.COLLINEAR=2,Re.NO_INTERSECTION=0,Re.POINT_INTERSECTION=1,Re.COLLINEAR_INTERSECTION=2;var we=function(t){function i(){return n(this,i),e(this,i)}return l(i,t),s(i,[{key:\"isInSegmentEnvelopes\",value:function(t){var e=new U(this._inputLines[0][0],this._inputLines[0][1]),n=new U(this._inputLines[1][0],this._inputLines[1][1]);return e.contains(t)&&n.contains(t)}},{key:\"computeIntersection\",value:function(){if(3!==arguments.length)return f(i,\"computeIntersection\",this,1).apply(this,arguments);var t=arguments[0],e=arguments[1],n=arguments[2];if(this._isProper=!1,U.intersects(e,n,t)&&0===ct.index(e,n,t)&&0===ct.index(n,e,t))return this._isProper=!0,(t.equals(e)||t.equals(n))&&(this._isProper=!1),this._result=Re.POINT_INTERSECTION,null;this._result=Re.NO_INTERSECTION}},{key:\"intersection\",value:function(t,e,n,r){var s=this.intersectionSafe(t,e,n,r);return this.isInSegmentEnvelopes(s)||(s=new X(i.nearestEndpoint(t,e,n,r))),null!==this._precisionModel&&this._precisionModel.makePrecise(s),s}},{key:\"checkDD\",value:function(t,e,n,i,r){var s=lt.intersection(t,e,n,i),a=this.isInSegmentEnvelopes(s);mt.out.println(\"DD in env = \"+a+\" --------------------- \"+s),r.distance(s)>1e-4&&mt.out.println(\"Distance = \"+r.distance(s))}},{key:\"intersectionSafe\",value:function(t,e,n,r){var s=pt.intersection(t,e,n,r);return null===s&&(s=i.nearestEndpoint(t,e,n,r)),s}},{key:\"computeCollinearIntersection\",value:function(t,e,n,i){var r=U.intersects(t,e,n),s=U.intersects(t,e,i),a=U.intersects(n,i,t),o=U.intersects(n,i,e);return r&&s?(this._intPt[0]=n,this._intPt[1]=i,Re.COLLINEAR_INTERSECTION):a&&o?(this._intPt[0]=t,this._intPt[1]=e,Re.COLLINEAR_INTERSECTION):r&&a?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||s||o?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):r&&o?(this._intPt[0]=n,this._intPt[1]=e,!n.equals(e)||s||a?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):s&&a?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||r||o?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):s&&o?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||r||a?Re.COLLINEAR_INTERSECTION:Re.POINT_INTERSECTION):Re.NO_INTERSECTION}},{key:\"computeIntersect\",value:function(t,e,n,i){if(this._isProper=!1,!U.intersects(t,e,n,i))return Re.NO_INTERSECTION;var r=ct.index(t,e,n),s=ct.index(t,e,i);if(r>0&&s>0||r<0&&s<0)return Re.NO_INTERSECTION;var a=ct.index(n,i,t),o=ct.index(n,i,e);return a>0&&o>0||a<0&&o<0?Re.NO_INTERSECTION:0===r&&0===s&&0===a&&0===o?this.computeCollinearIntersection(t,e,n,i):(0===r||0===s||0===a||0===o?(this._isProper=!1,t.equals2D(n)||t.equals2D(i)?this._intPt[0]=t:e.equals2D(n)||e.equals2D(i)?this._intPt[0]=e:0===r?this._intPt[0]=new X(n):0===s?this._intPt[0]=new X(i):0===a?this._intPt[0]=new X(t):0===o&&(this._intPt[0]=new X(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,n,i)),Re.POINT_INTERSECTION)}}],[{key:\"nearestEndpoint\",value:function(t,e,n,i){var r=t,s=xt.pointToSegment(t,n,i),a=xt.pointToSegment(e,n,i);return a<s&&(s=a,r=e),(a=xt.pointToSegment(n,t,e))<s&&(s=a,r=n),(a=xt.pointToSegment(i,t,e))<s&&(s=a,r=i),r}}])}(Re),Oe=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"countSegment\",value:function(t,e){if(t.x<this._p.x&&e.x<this._p.x)return null;if(this._p.x===e.x&&this._p.y===e.y)return this._isPointOnSegment=!0,null;if(t.y===this._p.y&&e.y===this._p.y){var n=t.x,i=e.x;return n>i&&(n=e.x,i=t.x),this._p.x>=n&&this._p.x<=i&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var r=ct.index(t,e,this._p);if(r===ct.COLLINEAR)return this._isPointOnSegment=!0,null;e.y<t.y&&(r=-r),r===ct.LEFT&&this._crossingCount++}}},{key:\"isPointInPolygon\",value:function(){return this.getLocation()!==H.EXTERIOR}},{key:\"getLocation\",value:function(){return this._isPointOnSegment?H.BOUNDARY:this._crossingCount%2==1?H.INTERIOR:H.EXTERIOR}},{key:\"isOnSegment\",value:function(){return this._isPointOnSegment}}],[{key:\"constructor_\",value:function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var t=arguments[0];this._p=t}},{key:\"locatePointInRing\",value:function(){if(arguments[0]instanceof X&&rt(arguments[1],ht)){for(var e=arguments[1],n=new t(arguments[0]),i=new X,r=new X,s=1;s<e.size();s++)if(e.getCoordinate(s,i),e.getCoordinate(s-1,r),n.countSegment(i,r),n.isOnSegment())return n.getLocation();return n.getLocation()}if(arguments[0]instanceof X&&arguments[1]instanceof Array){for(var a=arguments[1],o=new t(arguments[0]),u=1;u<a.length;u++){var l=a[u],h=a[u-1];if(o.countSegment(l,h),o.isOnSegment())return o.getLocation()}return o.getLocation()}}}])}(),be=function(){function t(){n(this,t)}return s(t,null,[{key:\"isOnLine\",value:function(){if(arguments[0]instanceof X&&rt(arguments[1],ht)){for(var t=arguments[0],e=arguments[1],n=new we,i=new X,r=new X,s=e.size(),a=1;a<s;a++)if(e.getCoordinate(a-1,i),e.getCoordinate(a,r),n.computeIntersection(t,i,r),n.hasIntersection())return!0;return!1}if(arguments[0]instanceof X&&arguments[1]instanceof Array){for(var o=arguments[0],u=arguments[1],l=new we,h=1;h<u.length;h++){var c=u[h-1],f=u[h];if(l.computeIntersection(o,c,f),l.hasIntersection())return!0}return!1}}},{key:\"locateInRing\",value:function(t,e){return Oe.locatePointInRing(t,e)}},{key:\"isInRing\",value:function(e,n){return t.locateInRing(e,n)!==H.EXTERIOR}}])}(),Me=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"setAllLocations\",value:function(t){for(var e=0;e<this.location.length;e++)this.location[e]=t}},{key:\"isNull\",value:function(){for(var t=0;t<this.location.length;t++)if(this.location[t]!==H.NONE)return!1;return!0}},{key:\"setAllLocationsIfNull\",value:function(t){for(var e=0;e<this.location.length;e++)this.location[e]===H.NONE&&(this.location[e]=t)}},{key:\"isLine\",value:function(){return 1===this.location.length}},{key:\"merge\",value:function(t){if(t.location.length>this.location.length){var e=new Array(3).fill(null);e[$.ON]=this.location[$.ON],e[$.LEFT]=H.NONE,e[$.RIGHT]=H.NONE,this.location=e}for(var n=0;n<this.location.length;n++)this.location[n]===H.NONE&&n<t.location.length&&(this.location[n]=t.location[n])}},{key:\"getLocations\",value:function(){return this.location}},{key:\"flip\",value:function(){if(this.location.length<=1)return null;var t=this.location[$.LEFT];this.location[$.LEFT]=this.location[$.RIGHT],this.location[$.RIGHT]=t}},{key:\"toString\",value:function(){var t=new st;return this.location.length>1&&t.append(H.toLocationSymbol(this.location[$.LEFT])),t.append(H.toLocationSymbol(this.location[$.ON])),this.location.length>1&&t.append(H.toLocationSymbol(this.location[$.RIGHT])),t.toString()}},{key:\"setLocations\",value:function(t,e,n){this.location[$.ON]=t,this.location[$.LEFT]=e,this.location[$.RIGHT]=n}},{key:\"get\",value:function(t){return t<this.location.length?this.location[t]:H.NONE}},{key:\"isArea\",value:function(){return this.location.length>1}},{key:\"isAnyNull\",value:function(){for(var t=0;t<this.location.length;t++)if(this.location[t]===H.NONE)return!0;return!1}},{key:\"setLocation\",value:function(){if(1===arguments.length){var t=arguments[0];this.setLocation($.ON,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.location[e]=n}}},{key:\"init\",value:function(t){this.location=new Array(t).fill(null),this.setAllLocations(H.NONE)}},{key:\"isEqualOnSide\",value:function(t,e){return this.location[e]===t.location[e]}},{key:\"allPositionsEqual\",value:function(t){for(var e=0;e<this.location.length;e++)if(this.location[e]!==t)return!1;return!0}}],[{key:\"constructor_\",value:function(){if(this.location=null,1===arguments.length){if(arguments[0]instanceof Array){var e=arguments[0];this.init(e.length)}else if(Number.isInteger(arguments[0])){var n=arguments[0];this.init(1),this.location[$.ON]=n}else if(arguments[0]instanceof t){var i=arguments[0];if(this.init(i.location.length),null!==i)for(var r=0;r<this.location.length;r++)this.location[r]=i.location[r]}}else if(3===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2];this.init(3),this.location[$.ON]=s,this.location[$.LEFT]=a,this.location[$.RIGHT]=o}}}])}(),Ae=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getGeometryCount\",value:function(){var t=0;return this.elt[0].isNull()||t++,this.elt[1].isNull()||t++,t}},{key:\"setAllLocations\",value:function(t,e){this.elt[t].setAllLocations(e)}},{key:\"isNull\",value:function(t){return this.elt[t].isNull()}},{key:\"setAllLocationsIfNull\",value:function(){if(1===arguments.length){var t=arguments[0];this.setAllLocationsIfNull(0,t),this.setAllLocationsIfNull(1,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.elt[e].setAllLocationsIfNull(n)}}},{key:\"isLine\",value:function(t){return this.elt[t].isLine()}},{key:\"merge\",value:function(t){for(var e=0;e<2;e++)null===this.elt[e]&&null!==t.elt[e]?this.elt[e]=new Me(t.elt[e]):this.elt[e].merge(t.elt[e])}},{key:\"flip\",value:function(){this.elt[0].flip(),this.elt[1].flip()}},{key:\"getLocation\",value:function(){if(1===arguments.length){var t=arguments[0];return this.elt[t].get($.ON)}if(2===arguments.length){var e=arguments[0],n=arguments[1];return this.elt[e].get(n)}}},{key:\"toString\",value:function(){var t=new st;return null!==this.elt[0]&&(t.append(\"A:\"),t.append(this.elt[0].toString())),null!==this.elt[1]&&(t.append(\" B:\"),t.append(this.elt[1].toString())),t.toString()}},{key:\"isArea\",value:function(){if(0===arguments.length)return this.elt[0].isArea()||this.elt[1].isArea();if(1===arguments.length){var t=arguments[0];return this.elt[t].isArea()}}},{key:\"isAnyNull\",value:function(t){return this.elt[t].isAnyNull()}},{key:\"setLocation\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.elt[t].setLocation($.ON,e)}else if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2];this.elt[n].setLocation(i,r)}}},{key:\"isEqualOnSide\",value:function(t,e){return this.elt[0].isEqualOnSide(t.elt[0],e)&&this.elt[1].isEqualOnSide(t.elt[1],e)}},{key:\"allPositionsEqual\",value:function(t,e){return this.elt[t].allPositionsEqual(e)}},{key:\"toLine\",value:function(t){this.elt[t].isArea()&&(this.elt[t]=new Me(this.elt[t].location[0]))}}],[{key:\"constructor_\",value:function(){if(this.elt=new Array(2).fill(null),1===arguments.length){if(Number.isInteger(arguments[0])){var e=arguments[0];this.elt[0]=new Me(e),this.elt[1]=new Me(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.elt[0]=new Me(n.elt[0]),this.elt[1]=new Me(n.elt[1])}}else if(2===arguments.length){var i=arguments[0],r=arguments[1];this.elt[0]=new Me(H.NONE),this.elt[1]=new Me(H.NONE),this.elt[i].setLocation(r)}else if(3===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2];this.elt[0]=new Me(s,a,o),this.elt[1]=new Me(s,a,o)}else if(4===arguments.length){var u=arguments[0],l=arguments[1],h=arguments[2],c=arguments[3];this.elt[0]=new Me(H.NONE,H.NONE,H.NONE),this.elt[1]=new Me(H.NONE,H.NONE,H.NONE),this.elt[u].setLocations(l,h,c)}}},{key:\"toLineLabel\",value:function(e){for(var n=new t(H.NONE),i=0;i<2;i++)n.setLocation(i,e.getLocation(i));return n}}])}(),Pe=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"computeRing\",value:function(){if(null!==this._ring)return null;for(var t=new Array(this._pts.size()).fill(null),e=0;e<this._pts.size();e++)t[e]=this._pts.get(e);this._ring=this._geometryFactory.createLinearRing(t),this._isHole=ct.isCCW(this._ring.getCoordinates())}},{key:\"isIsolated\",value:function(){return 1===this._label.getGeometryCount()}},{key:\"computePoints\",value:function(t){this._startDe=t;var e=t,n=!0;do{if(null===e)throw new gt(\"Found null DirectedEdge\");if(e.getEdgeRing()===this)throw new gt(\"Directed Edge visited twice during ring-building at \"+e.getCoordinate());this._edges.add(e);var i=e.getLabel();G.isTrue(i.isArea()),this.mergeLabel(i),this.addPoints(e.getEdge(),e.isForward(),n),n=!1,this.setEdgeRing(e,this),e=this.getNext(e)}while(e!==this._startDe)}},{key:\"getLinearRing\",value:function(){return this._ring}},{key:\"getCoordinate\",value:function(t){return this._pts.get(t)}},{key:\"computeMaxNodeDegree\",value:function(){this._maxNodeDegree=0;var t=this._startDe;do{var e=t.getNode().getEdges().getOutgoingDegree(this);e>this._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2}},{key:\"addPoints\",value:function(t,e,n){var i=t.getCoordinates();if(e){var r=1;n&&(r=0);for(var s=r;s<i.length;s++)this._pts.add(i[s])}else{var a=i.length-2;n&&(a=i.length-1);for(var o=a;o>=0;o--)this._pts.add(i[o])}}},{key:\"isHole\",value:function(){return this._isHole}},{key:\"setInResult\",value:function(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)}},{key:\"containsPoint\",value:function(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!be.isInRing(t,e.getCoordinates()))return!1;for(var n=this._holes.iterator();n.hasNext();){if(n.next().containsPoint(t))return!1}return!0}},{key:\"addHole\",value:function(t){this._holes.add(t)}},{key:\"isShell\",value:function(){return null===this._shell}},{key:\"getLabel\",value:function(){return this._label}},{key:\"getEdges\",value:function(){return this._edges}},{key:\"getMaxNodeDegree\",value:function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree}},{key:\"getShell\",value:function(){return this._shell}},{key:\"mergeLabel\",value:function(){if(1===arguments.length){var t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){var e=arguments[1],n=arguments[0].getLocation(e,$.RIGHT);if(n===H.NONE)return null;if(this._label.getLocation(e)===H.NONE)return this._label.setLocation(e,n),null}}},{key:\"setShell\",value:function(t){this._shell=t,null!==t&&t.addHole(this)}},{key:\"toPolygon\",value:function(t){for(var e=new Array(this._holes.size()).fill(null),n=0;n<this._holes.size();n++)e[n]=this._holes.get(n).getLinearRing();return t.createPolygon(this.getLinearRing(),e)}}],[{key:\"constructor_\",value:function(){if(this._startDe=null,this._maxNodeDegree=-1,this._edges=new yt,this._pts=new yt,this._label=new Ae(H.NONE),this._ring=null,this._isHole=null,this._shell=null,this._holes=new yt,this._geometryFactory=null,0===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];this._geometryFactory=e,this.computePoints(t),this.computeRing()}}}])}(),De=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"setEdgeRing\",value:function(t,e){t.setMinEdgeRing(e)}},{key:\"getNext\",value:function(t){return t.getNextMin()}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Pe.constructor_.call(this,t,e)}}])}(Pe),Fe=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"buildMinimalRings\",value:function(){var t=new yt,e=this._startDe;do{if(null===e.getMinEdgeRing()){var n=new De(e,this._geometryFactory);t.add(n)}e=e.getNext()}while(e!==this._startDe);return t}},{key:\"setEdgeRing\",value:function(t,e){t.setEdgeRing(e)}},{key:\"linkDirectedEdgesForMinimalEdgeRings\",value:function(){var t=this._startDe;do{t.getNode().getEdges().linkMinimalDirectedEdges(this),t=t.getNext()}while(t!==this._startDe)}},{key:\"getNext\",value:function(t){return t.getNext()}}],[{key:\"constructor_\",value:function(){var t=arguments[0],e=arguments[1];Pe.constructor_.call(this,t,e)}}])}(Pe),Ge=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"setVisited\",value:function(t){this._isVisited=t}},{key:\"setInResult\",value:function(t){this._isInResult=t}},{key:\"isCovered\",value:function(){return this._isCovered}},{key:\"isCoveredSet\",value:function(){return this._isCoveredSet}},{key:\"setLabel\",value:function(t){this._label=t}},{key:\"getLabel\",value:function(){return this._label}},{key:\"setCovered\",value:function(t){this._isCovered=t,this._isCoveredSet=!0}},{key:\"updateIM\",value:function(t){G.isTrue(this._label.getGeometryCount()>=2,\"found partial label\"),this.computeIM(t)}},{key:\"isInResult\",value:function(){return this._isInResult}},{key:\"isVisited\",value:function(){return this._isVisited}}],[{key:\"constructor_\",value:function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._label=t}}}])}(),qe=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"isIncidentEdgeInResult\",value:function(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1}},{key:\"isIsolated\",value:function(){return 1===this._label.getGeometryCount()}},{key:\"getCoordinate\",value:function(){return this._coord}},{key:\"print\",value:function(t){t.println(\"node \"+this._coord+\" lbl: \"+this._label)}},{key:\"computeIM\",value:function(t){}},{key:\"computeMergedLocation\",value:function(t,e){var n=H.NONE;if(n=this._label.getLocation(e),!t.isNull(e)){var i=t.getLocation(e);n!==H.BOUNDARY&&(n=i)}return n}},{key:\"setLabel\",value:function(){if(2!==arguments.length||!Number.isInteger(arguments[1])||!Number.isInteger(arguments[0]))return f(i,\"setLabel\",this,1).apply(this,arguments);var t=arguments[0],e=arguments[1];null===this._label?this._label=new Ae(t,e):this._label.setLocation(t,e)}},{key:\"getEdges\",value:function(){return this._edges}},{key:\"mergeLabel\",value:function(){if(arguments[0]instanceof i){var t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof Ae)for(var e=arguments[0],n=0;n<2;n++){var r=this.computeMergedLocation(e,n);this._label.getLocation(n)===H.NONE&&this._label.setLocation(n,r)}}},{key:\"add\",value:function(t){this._edges.insert(t),t.setNode(this)}},{key:\"setLabelBoundary\",value:function(t){if(null===this._label)return null;var e=H.NONE;null!==this._label&&(e=this._label.getLocation(t));var n=null;switch(e){case H.BOUNDARY:n=H.INTERIOR;break;case H.INTERIOR:default:n=H.BOUNDARY}this._label.setLocation(t,n)}}],[{key:\"constructor_\",value:function(){this._coord=null,this._edges=null;var t=arguments[0],e=arguments[1];this._coord=t,this._edges=e,this._label=new Ae(0,H.NONE)}}])}(Ge),Ye=function(t){function i(){return n(this,i),e(this,i,arguments)}return l(i,t),s(i)}(ee);function ze(t){return null==t?0:t.color}function Xe(t){return null==t?null:t.parent}function Be(t,e){null!==t&&(t.color=e)}function Ue(t){return null==t?null:t.left}function Ve(t){return null==t?null:t.right}var He=function(t){function i(){var t;return n(this,i),(t=e(this,i)).root_=null,t.size_=0,t}return l(i,t),s(i,[{key:\"get\",value:function(t){for(var e=this.root_;null!==e;){var n=t.compareTo(e.key);if(n<0)e=e.left;else{if(!(n>0))return e.value;e=e.right}}return null}},{key:\"put\",value:function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:0,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var n,i,r=this.root_;do{if(n=r,(i=t.compareTo(r.key))<0)r=r.left;else{if(!(i>0)){var s=r.value;return r.value=e,s}r=r.right}}while(null!==r);var a={key:t,left:null,right:null,value:e,parent:n,color:0,getValue:function(){return this.value},getKey:function(){return this.key}};return i<0?n.left=a:n.right=a,this.fixAfterInsertion(a),this.size_++,null}},{key:\"fixAfterInsertion\",value:function(t){var e;for(t.color=1;null!=t&&t!==this.root_&&1===t.parent.color;)Xe(t)===Ue(Xe(Xe(t)))?1===ze(e=Ve(Xe(Xe(t))))?(Be(Xe(t),0),Be(e,0),Be(Xe(Xe(t)),1),t=Xe(Xe(t))):(t===Ve(Xe(t))&&(t=Xe(t),this.rotateLeft(t)),Be(Xe(t),0),Be(Xe(Xe(t)),1),this.rotateRight(Xe(Xe(t)))):1===ze(e=Ue(Xe(Xe(t))))?(Be(Xe(t),0),Be(e,0),Be(Xe(Xe(t)),1),t=Xe(Xe(t))):(t===Ue(Xe(t))&&(t=Xe(t),this.rotateRight(t)),Be(Xe(t),0),Be(Xe(Xe(t)),1),this.rotateLeft(Xe(Xe(t))));this.root_.color=0}},{key:\"values\",value:function(){var t=new yt,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=i.successor(e));)t.add(e.value);return t}},{key:\"entrySet\",value:function(){var t=new J,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=i.successor(e));)t.add(e);return t}},{key:\"rotateLeft\",value:function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}}},{key:\"rotateRight\",value:function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right===t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}}},{key:\"getFirstEntry\",value:function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t}},{key:\"size\",value:function(){return this.size_}},{key:\"containsKey\",value:function(t){for(var e=this.root_;null!==e;){var n=t.compareTo(e.key);if(n<0)e=e.left;else{if(!(n>0))return!0;e=e.right}}return!1}}],[{key:\"successor\",value:function(t){var e;if(null===t)return null;if(null!==t.right){for(e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var n=t;null!==e&&n===e.right;)n=e,e=e.parent;return e}}])}(Ye),Ze=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"find\",value:function(t){return this.nodeMap.get(t)}},{key:\"addNode\",value:function(){if(arguments[0]instanceof X){var t=arguments[0],e=this.nodeMap.get(t);return null===e&&(e=this.nodeFact.createNode(t),this.nodeMap.put(t,e)),e}if(arguments[0]instanceof qe){var n=arguments[0],i=this.nodeMap.get(n.getCoordinate());return null===i?(this.nodeMap.put(n.getCoordinate(),n),n):(i.mergeLabel(n),i)}}},{key:\"print\",value:function(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"iterator\",value:function(){return this.nodeMap.values().iterator()}},{key:\"values\",value:function(){return this.nodeMap.values()}},{key:\"getBoundaryNodes\",value:function(t){for(var e=new yt,n=this.iterator();n.hasNext();){var i=n.next();i.getLabel().getLocation(t)===H.BOUNDARY&&e.add(i)}return e}},{key:\"add\",value:function(t){var e=t.getCoordinate();this.addNode(e).add(t)}}],[{key:\"constructor_\",value:function(){this.nodeMap=new He,this.nodeFact=null;var t=arguments[0];this.nodeFact=t}}])}(),je=function(){function t(){n(this,t)}return s(t,null,[{key:\"isNorthern\",value:function(e){return e===t.NE||e===t.NW}},{key:\"isOpposite\",value:function(t,e){return t!==e&&2===(t-e+4)%4}},{key:\"commonHalfPlane\",value:function(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var n=t<e?t:e;return 0===n&&3===(t>e?t:e)?3:n}},{key:\"isInHalfPlane\",value:function(e,n){return n===t.SE?e===t.SE||e===t.SW:e===n||e===n+1}},{key:\"quadrant\",value:function(){if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];if(0===e&&0===n)throw new m(\"Cannot compute the quadrant for point ( \"+e+\", \"+n+\" )\");return e>=0?n>=0?t.NE:t.SE:n>=0?t.NW:t.SW}if(arguments[0]instanceof X&&arguments[1]instanceof X){var i=arguments[0],r=arguments[1];if(r.x===i.x&&r.y===i.y)throw new m(\"Cannot compute the quadrant for two identical points \"+i);return r.x>=i.x?r.y>=i.y?t.NE:t.SE:r.y>=i.y?t.NW:t.SW}}}])}();je.NE=0,je.NW=1,je.SW=2,je.SE=3;var We=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"compareDirection\",value:function(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrant<t._quadrant?-1:ct.index(t._p0,t._p1,this._p1)}},{key:\"getDy\",value:function(){return this._dy}},{key:\"getCoordinate\",value:function(){return this._p0}},{key:\"setNode\",value:function(t){this._node=t}},{key:\"print\",value:function(t){var e=Math.atan2(this._dy,this._dx),n=this.getClass().getName(),i=n.lastIndexOf(\".\"),r=n.substring(i+1);t.print(\" \"+r+\": \"+this._p0+\" - \"+this._p1+\" \"+this._quadrant+\":\"+e+\" \"+this._label)}},{key:\"compareTo\",value:function(t){var e=t;return this.compareDirection(e)}},{key:\"getDirectedCoordinate\",value:function(){return this._p1}},{key:\"getDx\",value:function(){return this._dx}},{key:\"getLabel\",value:function(){return this._label}},{key:\"getEdge\",value:function(){return this._edge}},{key:\"getQuadrant\",value:function(){return this._quadrant}},{key:\"getNode\",value:function(){return this._node}},{key:\"toString\",value:function(){var t=Math.atan2(this._dy,this._dx),e=this.getClass().getName(),n=e.lastIndexOf(\".\");return\" \"+e.substring(n+1)+\": \"+this._p0+\" - \"+this._p1+\" \"+this._quadrant+\":\"+t+\" \"+this._label}},{key:\"computeLabel\",value:function(t){}},{key:\"init\",value:function(t,e){this._p0=t,this._p1=e,this._dx=e.x-t.x,this._dy=e.y-t.y,this._quadrant=je.quadrant(this._dx,this._dy),G.isTrue(!(0===this._dx&&0===this._dy),\"EdgeEnd with identical endpoints found\")}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,1===arguments.length){var e=arguments[0];this._edge=e}else if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2];t.constructor_.call(this,n,i,r,null)}else if(4===arguments.length){var s=arguments[0],a=arguments[1],o=arguments[2],u=arguments[3];t.constructor_.call(this,s),this.init(a,o),this._label=u}}}])}(),Ke=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getNextMin\",value:function(){return this._nextMin}},{key:\"getDepth\",value:function(t){return this._depth[t]}},{key:\"setVisited\",value:function(t){this._isVisited=t}},{key:\"computeDirectedLabel\",value:function(){this._label=new Ae(this._edge.getLabel()),this._isForward||this._label.flip()}},{key:\"getNext\",value:function(){return this._next}},{key:\"setDepth\",value:function(t,e){if(-999!==this._depth[t]&&this._depth[t]!==e)throw new gt(\"assigned depths do not match\",this.getCoordinate());this._depth[t]=e}},{key:\"isInteriorAreaEdge\",value:function(){for(var t=!0,e=0;e<2;e++)this._label.isArea(e)&&this._label.getLocation(e,$.LEFT)===H.INTERIOR&&this._label.getLocation(e,$.RIGHT)===H.INTERIOR||(t=!1);return t}},{key:\"setNextMin\",value:function(t){this._nextMin=t}},{key:\"print\",value:function(t){f(i,\"print\",this,1).call(this,t),t.print(\" \"+this._depth[$.LEFT]+\"/\"+this._depth[$.RIGHT]),t.print(\" (\"+this.getDepthDelta()+\")\"),this._isInResult&&t.print(\" inResult\")}},{key:\"setMinEdgeRing\",value:function(t){this._minEdgeRing=t}},{key:\"isLineEdge\",value:function(){var t=this._label.isLine(0)||this._label.isLine(1),e=!this._label.isArea(0)||this._label.allPositionsEqual(0,H.EXTERIOR),n=!this._label.isArea(1)||this._label.allPositionsEqual(1,H.EXTERIOR);return t&&e&&n}},{key:\"setEdgeRing\",value:function(t){this._edgeRing=t}},{key:\"getMinEdgeRing\",value:function(){return this._minEdgeRing}},{key:\"getDepthDelta\",value:function(){var t=this._edge.getDepthDelta();return this._isForward||(t=-t),t}},{key:\"setInResult\",value:function(t){this._isInResult=t}},{key:\"getSym\",value:function(){return this._sym}},{key:\"isForward\",value:function(){return this._isForward}},{key:\"getEdge\",value:function(){return this._edge}},{key:\"printEdge\",value:function(t){this.print(t),t.print(\" \"),this._isForward?this._edge.print(t):this._edge.printReverse(t)}},{key:\"setSym\",value:function(t){this._sym=t}},{key:\"setVisitedEdge\",value:function(t){this.setVisited(t),this._sym.setVisited(t)}},{key:\"setEdgeDepths\",value:function(t,e){var n=this.getEdge().getDepthDelta();this._isForward||(n=-n);var i=1;t===$.LEFT&&(i=-1);var r=$.opposite(t),s=e+n*i;this.setDepth(t,e),this.setDepth(r,s)}},{key:\"getEdgeRing\",value:function(){return this._edgeRing}},{key:\"isInResult\",value:function(){return this._isInResult}},{key:\"setNext\",value:function(t){this._next=t}},{key:\"isVisited\",value:function(){return this._isVisited}}],[{key:\"constructor_\",value:function(){this._isForward=null,this._isInResult=!1,this._isVisited=!1,this._sym=null,this._next=null,this._nextMin=null,this._edgeRing=null,this._minEdgeRing=null,this._depth=[0,-999,-999];var t=arguments[0],e=arguments[1];if(We.constructor_.call(this,t),this._isForward=e,e)this.init(t.getCoordinate(0),t.getCoordinate(1));else{var n=t.getNumPoints()-1;this.init(t.getCoordinate(n),t.getCoordinate(n-1))}this.computeDirectedLabel()}},{key:\"depthFactor\",value:function(t,e){return t===H.EXTERIOR&&e===H.INTERIOR?1:t===H.INTERIOR&&e===H.EXTERIOR?-1:0}}])}(We),Je=function(){return s((function t(){n(this,t)}),[{key:\"createNode\",value:function(t){return new qe(t,null)}}])}(),Qe=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"printEdges\",value:function(t){t.println(\"Edges:\");for(var e=0;e<this._edges.size();e++){t.println(\"edge \"+e+\":\");var n=this._edges.get(e);n.print(t),n.eiList.print(t)}}},{key:\"find\",value:function(t){return this._nodes.find(t)}},{key:\"addNode\",value:function(){if(arguments[0]instanceof qe){var t=arguments[0];return this._nodes.addNode(t)}if(arguments[0]instanceof X){var e=arguments[0];return this._nodes.addNode(e)}}},{key:\"getNodeIterator\",value:function(){return this._nodes.iterator()}},{key:\"linkResultDirectedEdges\",value:function(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().linkResultDirectedEdges()}}},{key:\"debugPrintln\",value:function(t){mt.out.println(t)}},{key:\"isBoundaryNode\",value:function(t,e){var n=this._nodes.find(e);if(null===n)return!1;var i=n.getLabel();return null!==i&&i.getLocation(t)===H.BOUNDARY}},{key:\"linkAllDirectedEdges\",value:function(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().linkAllDirectedEdges()}}},{key:\"matchInSameDirection\",value:function(t,e,n,i){return!!t.equals(n)&&(ct.index(t,e,i)===ct.COLLINEAR&&je.quadrant(t,e)===je.quadrant(n,i))}},{key:\"getEdgeEnds\",value:function(){return this._edgeEndList}},{key:\"debugPrint\",value:function(t){mt.out.print(t)}},{key:\"getEdgeIterator\",value:function(){return this._edges.iterator()}},{key:\"findEdgeInSameDirection\",value:function(t,e){for(var n=0;n<this._edges.size();n++){var i=this._edges.get(n),r=i.getCoordinates();if(this.matchInSameDirection(t,e,r[0],r[1]))return i;if(this.matchInSameDirection(t,e,r[r.length-1],r[r.length-2]))return i}return null}},{key:\"insertEdge\",value:function(t){this._edges.add(t)}},{key:\"findEdgeEnd\",value:function(t){for(var e=this.getEdgeEnds().iterator();e.hasNext();){var n=e.next();if(n.getEdge()===t)return n}return null}},{key:\"addEdges\",value:function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();this._edges.add(n);var i=new Ke(n,!0),r=new Ke(n,!1);i.setSym(r),r.setSym(i),this.add(i),this.add(r)}}},{key:\"add\",value:function(t){this._nodes.add(t),this._edgeEndList.add(t)}},{key:\"getNodes\",value:function(){return this._nodes.values()}},{key:\"findEdge\",value:function(t,e){for(var n=0;n<this._edges.size();n++){var i=this._edges.get(n),r=i.getCoordinates();if(t.equals(r[0])&&e.equals(r[1]))return i}return null}}],[{key:\"constructor_\",value:function(){if(this._edges=new yt,this._nodes=null,this._edgeEndList=new yt,0===arguments.length)this._nodes=new Ze(new Je);else if(1===arguments.length){var t=arguments[0];this._nodes=new Ze(t)}}},{key:\"linkResultDirectedEdges\",value:function(t){for(var e=t.iterator();e.hasNext();){e.next().getEdges().linkResultDirectedEdges()}}}])}(),$e=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"sortShellsAndHoles\",value:function(t,e,n){for(var i=t.iterator();i.hasNext();){var r=i.next();r.isHole()?n.add(r):e.add(r)}}},{key:\"computePolygons\",value:function(t){for(var e=new yt,n=t.iterator();n.hasNext();){var i=n.next().toPolygon(this._geometryFactory);e.add(i)}return e}},{key:\"placeFreeHoles\",value:function(e,n){for(var i=n.iterator();i.hasNext();){var r=i.next();if(null===r.getShell()){var s=t.findEdgeRingContaining(r,e);if(null===s)throw new gt(\"unable to assign hole to a shell\",r.getCoordinate(0));r.setShell(s)}}}},{key:\"buildMinimalEdgeRings\",value:function(t,e,n){for(var i=new yt,r=t.iterator();r.hasNext();){var s=r.next();if(s.getMaxNodeDegree()>2){s.linkDirectedEdgesForMinimalEdgeRings();var a=s.buildMinimalRings(),o=this.findShell(a);null!==o?(this.placePolygonHoles(o,a),e.add(o)):n.addAll(a)}else i.add(s)}return i}},{key:\"buildMaximalEdgeRings\",value:function(t){for(var e=new yt,n=t.iterator();n.hasNext();){var i=n.next();if(i.isInResult()&&i.getLabel().isArea()&&null===i.getEdgeRing()){var r=new Fe(i,this._geometryFactory);e.add(r),r.setInResult()}}return e}},{key:\"placePolygonHoles\",value:function(t,e){for(var n=e.iterator();n.hasNext();){var i=n.next();i.isHole()&&i.setShell(t)}}},{key:\"getPolygons\",value:function(){return this.computePolygons(this._shellList)}},{key:\"findShell\",value:function(t){for(var e=0,n=null,i=t.iterator();i.hasNext();){var r=i.next();r.isHole()||(n=r,e++)}return G.isTrue(e<=1,\"found two shells in MinimalEdgeRing list\"),n}},{key:\"add\",value:function(){if(1===arguments.length){var t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){var e=arguments[0],n=arguments[1];Qe.linkResultDirectedEdges(n);var i=this.buildMaximalEdgeRings(e),r=new yt,s=this.buildMinimalEdgeRings(i,this._shellList,r);this.sortShellsAndHoles(s,this._shellList,r),this.placeFreeHoles(this._shellList,r)}}}],[{key:\"constructor_\",value:function(){this._geometryFactory=null,this._shellList=new yt;var t=arguments[0];this._geometryFactory=t}},{key:\"findEdgeRingContaining\",value:function(t,e){for(var n=t.getLinearRing(),i=n.getEnvelopeInternal(),r=n.getCoordinateN(0),s=null,a=null,o=e.iterator();o.hasNext();){var u=o.next(),l=u.getLinearRing(),h=l.getEnvelopeInternal();if(!h.equals(i)&&h.contains(i)){r=jt.ptNotInList(n.getCoordinates(),l.getCoordinates());var c=!1;be.isInRing(r,l.getCoordinates())&&(c=!0),c&&(null===s||a.contains(h))&&(a=(s=u).getLinearRing().getEnvelopeInternal())}}return s}}])}(),tn=function(){return s((function t(){n(this,t)}),[{key:\"getBounds\",value:function(){}}])}(),en=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getItem\",value:function(){return this._item}},{key:\"getBounds\",value:function(){return this._bounds}},{key:\"interfaces_\",get:function(){return[tn,E]}}],[{key:\"constructor_\",value:function(){this._bounds=null,this._item=null;var t=arguments[0],e=arguments[1];this._bounds=t,this._item=e}}])}(),nn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"poll\",value:function(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t}},{key:\"size\",value:function(){return this._size}},{key:\"reorder\",value:function(t){for(var e=null,n=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(n)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,n)}},{key:\"clear\",value:function(){this._size=0,this._items.clear()}},{key:\"peek\",value:function(){return this.isEmpty()?null:this._items.get(1)}},{key:\"isEmpty\",value:function(){return 0===this._size}},{key:\"add\",value:function(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)}}],[{key:\"constructor_\",value:function(){this._size=null,this._items=null,this._size=0,this._items=new yt,this._items.add(null)}}])}(),rn=function(){return s((function t(){n(this,t)}),[{key:\"insert\",value:function(t,e){}},{key:\"remove\",value:function(t,e){}},{key:\"query\",value:function(){}}])}(),sn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getLevel\",value:function(){return this._level}},{key:\"size\",value:function(){return this._childBoundables.size()}},{key:\"getChildBoundables\",value:function(){return this._childBoundables}},{key:\"addChildBoundable\",value:function(t){G.isTrue(null===this._bounds),this._childBoundables.add(t)}},{key:\"isEmpty\",value:function(){return this._childBoundables.isEmpty()}},{key:\"getBounds\",value:function(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds}},{key:\"interfaces_\",get:function(){return[tn,E]}}],[{key:\"constructor_\",value:function(){if(this._childBoundables=new yt,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._level=t}}}])}(),an={reverseOrder:function(){return{compare:function(t,e){return e.compareTo(t)}}},min:function(t){return an.sort(t),t.get(0)},sort:function(t,e){var n=t.toArray();e?At.sort(n,e):At.sort(n);for(var i=t.iterator(),r=0,s=n.length;r<s;r++)i.next(),i.set(n[r])},singletonList:function(t){var e=new yt;return e.add(t),e}},on=function(){function t(){n(this,t)}return s(t,null,[{key:\"maxDistance\",value:function(e,n,i,r,s,a,o,u){var l=t.distance(e,n,s,a);return l=Math.max(l,t.distance(e,n,o,u)),l=Math.max(l,t.distance(i,r,s,a)),l=Math.max(l,t.distance(i,r,o,u))}},{key:\"distance\",value:function(t,e,n,i){var r=n-t,s=i-e;return Math.sqrt(r*r+s*s)}},{key:\"maximumDistance\",value:function(e,n){var i=Math.min(e.getMinX(),n.getMinX()),r=Math.min(e.getMinY(),n.getMinY()),s=Math.max(e.getMaxX(),n.getMaxX()),a=Math.max(e.getMaxY(),n.getMaxY());return t.distance(i,r,s,a)}},{key:\"minMaxDistance\",value:function(e,n){var i=e.getMinX(),r=e.getMinY(),s=e.getMaxX(),a=e.getMaxY(),o=n.getMinX(),u=n.getMinY(),l=n.getMaxX(),h=n.getMaxY(),c=t.maxDistance(i,r,i,a,o,u,o,h);return c=Math.min(c,t.maxDistance(i,r,i,a,o,u,l,u)),c=Math.min(c,t.maxDistance(i,r,i,a,l,h,o,h)),c=Math.min(c,t.maxDistance(i,r,i,a,l,h,l,u)),c=Math.min(c,t.maxDistance(i,r,s,r,o,u,o,h)),c=Math.min(c,t.maxDistance(i,r,s,r,o,u,l,u)),c=Math.min(c,t.maxDistance(i,r,s,r,l,h,o,h)),c=Math.min(c,t.maxDistance(i,r,s,r,l,h,l,u)),c=Math.min(c,t.maxDistance(s,a,i,a,o,u,o,h)),c=Math.min(c,t.maxDistance(s,a,i,a,o,u,l,u)),c=Math.min(c,t.maxDistance(s,a,i,a,l,h,o,h)),c=Math.min(c,t.maxDistance(s,a,i,a,l,h,l,u)),c=Math.min(c,t.maxDistance(s,a,s,r,o,u,o,h)),c=Math.min(c,t.maxDistance(s,a,s,r,o,u,l,u)),c=Math.min(c,t.maxDistance(s,a,s,r,l,h,o,h)),c=Math.min(c,t.maxDistance(s,a,s,r,l,h,l,u))}}])}(),un=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"maximumDistance\",value:function(){return on.maximumDistance(this._boundable1.getBounds(),this._boundable2.getBounds())}},{key:\"expandToQueue\",value:function(e,n){var i=t.isComposite(this._boundable1),r=t.isComposite(this._boundable2);if(i&&r)return t.area(this._boundable1)>t.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,!1,e,n),null):(this.expand(this._boundable2,this._boundable1,!0,e,n),null);if(i)return this.expand(this._boundable1,this._boundable2,!1,e,n),null;if(r)return this.expand(this._boundable2,this._boundable1,!0,e,n),null;throw new m(\"neither boundable is composite\")}},{key:\"isLeaves\",value:function(){return!(t.isComposite(this._boundable1)||t.isComposite(this._boundable2))}},{key:\"compareTo\",value:function(t){var e=t;return this._distance<e._distance?-1:this._distance>e._distance?1:0}},{key:\"expand\",value:function(e,n,i,r,s){for(var a=e.getChildBoundables().iterator();a.hasNext();){var o=a.next(),u=null;(u=i?new t(n,o,this._itemDistance):new t(o,n,this._itemDistance)).getDistance()<s&&r.add(u)}}},{key:\"getBoundable\",value:function(t){return 0===t?this._boundable1:this._boundable2}},{key:\"getDistance\",value:function(){return this._distance}},{key:\"distance\",value:function(){return this.isLeaves()?this._itemDistance.distance(this._boundable1,this._boundable2):this._boundable1.getBounds().distance(this._boundable2.getBounds())}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._boundable1=null,this._boundable2=null,this._distance=null,this._itemDistance=null;var t=arguments[0],e=arguments[1],n=arguments[2];this._boundable1=t,this._boundable2=e,this._itemDistance=n,this._distance=this.distance()}},{key:\"area\",value:function(t){return t.getBounds().getArea()}},{key:\"isComposite\",value:function(t){return t instanceof sn}}])}(),ln=function(){return s((function t(){n(this,t)}),[{key:\"visitItem\",value:function(t){}}])}(),hn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"queryInternal\",value:function(){if(rt(arguments[2],ln)&&arguments[0]instanceof Object&&arguments[1]instanceof sn)for(var t=arguments[0],e=arguments[2],n=arguments[1].getChildBoundables(),i=0;i<n.size();i++){var r=n.get(i);this.getIntersectsOp().intersects(r.getBounds(),t)&&(r instanceof sn?this.queryInternal(t,r,e):r instanceof en?e.visitItem(r.getItem()):G.shouldNeverReachHere())}else if(rt(arguments[2],nt)&&arguments[0]instanceof Object&&arguments[1]instanceof sn)for(var s=arguments[0],a=arguments[2],o=arguments[1].getChildBoundables(),u=0;u<o.size();u++){var l=o.get(u);this.getIntersectsOp().intersects(l.getBounds(),s)&&(l instanceof sn?this.queryInternal(s,l,a):l instanceof en?a.add(l.getItem()):G.shouldNeverReachHere())}}},{key:\"getNodeCapacity\",value:function(){return this._nodeCapacity}},{key:\"lastNode\",value:function(t){return t.get(t.size()-1)}},{key:\"size\",value:function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.size(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var n=e.next();n instanceof sn?t+=this.size(n):n instanceof en&&(t+=1)}return t}}},{key:\"removeItem\",value:function(t,e){for(var n=null,i=t.getChildBoundables().iterator();i.hasNext();){var r=i.next();r instanceof en&&r.getItem()===e&&(n=r)}return null!==n&&(t.getChildBoundables().remove(n),!0)}},{key:\"itemsTree\",value:function(){if(0===arguments.length){this.build();var t=this.itemsTree(this._root);return null===t?new yt:t}if(1===arguments.length){for(var e=arguments[0],n=new yt,i=e.getChildBoundables().iterator();i.hasNext();){var r=i.next();if(r instanceof sn){var s=this.itemsTree(r);null!==s&&n.add(s)}else r instanceof en?n.add(r.getItem()):G.shouldNeverReachHere()}return n.size()<=0?null:n}}},{key:\"insert\",value:function(t,e){G.isTrue(!this._built,\"Cannot insert items into an STR packed R-tree after it has been built.\"),this._itemBoundables.add(new en(t,e))}},{key:\"boundablesAtLevel\",value:function(){if(1===arguments.length){var t=arguments[0],e=new yt;return this.boundablesAtLevel(t,this._root,e),e}if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2];if(G.isTrue(n>-2),i.getLevel()===n)return r.add(i),null;for(var s=i.getChildBoundables().iterator();s.hasNext();){var a=s.next();a instanceof sn?this.boundablesAtLevel(n,a,r):(G.isTrue(a instanceof en),-1===n&&r.add(a))}return null}}},{key:\"query\",value:function(){if(1===arguments.length){var t=arguments[0];this.build();var e=new yt;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.queryInternal(t,this._root,e),e}if(2===arguments.length){var n=arguments[0],i=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),n)&&this.queryInternal(n,this._root,i)}}},{key:\"build\",value:function(){if(this._built)return null;this._root=this._itemBoundables.isEmpty()?this.createNode(0):this.createHigherLevels(this._itemBoundables,-1),this._itemBoundables=null,this._built=!0}},{key:\"getRoot\",value:function(){return this.build(),this._root}},{key:\"remove\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.remove(t,this._root,e)}if(3===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2],s=this.removeItem(i,r);if(s)return!0;for(var a=null,o=i.getChildBoundables().iterator();o.hasNext();){var u=o.next();if(this.getIntersectsOp().intersects(u.getBounds(),n)&&(u instanceof sn&&(s=this.remove(n,u,r)))){a=u;break}}return null!==a&&a.getChildBoundables().isEmpty()&&i.getChildBoundables().remove(a),s}}},{key:\"createHigherLevels\",value:function(t,e){G.isTrue(!t.isEmpty());var n=this.createParentBoundables(t,e+1);return 1===n.size()?n.get(0):this.createHigherLevels(n,e+1)}},{key:\"depth\",value:function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var n=e.next();if(n instanceof sn){var i=this.depth(n);i>t&&(t=i)}}return t+1}}},{key:\"createParentBoundables\",value:function(t,e){G.isTrue(!t.isEmpty());var n=new yt;n.add(this.createNode(e));var i=new yt(t);an.sort(i,this.getComparator());for(var r=i.iterator();r.hasNext();){var s=r.next();this.lastNode(n).getChildBoundables().size()===this.getNodeCapacity()&&n.add(this.createNode(e)),this.lastNode(n).addChildBoundable(s)}return n}},{key:\"isEmpty\",value:function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()}},{key:\"interfaces_\",get:function(){return[E]}}],[{key:\"constructor_\",value:function(){if(this._root=null,this._built=!1,this._itemBoundables=new yt,this._nodeCapacity=null,0===arguments.length)t.constructor_.call(this,t.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){var e=arguments[0];G.isTrue(e>1,\"Node capacity must be greater than 1\"),this._nodeCapacity=e}}},{key:\"compareDoubles\",value:function(t,e){return t>e?1:t<e?-1:0}}])}();hn.IntersectsOp=function(){},hn.DEFAULT_NODE_CAPACITY=10;var cn=function(){return s((function t(){n(this,t)}),[{key:\"distance\",value:function(t,e){}}])}(),fn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"createParentBoundablesFromVerticalSlices\",value:function(t,e){G.isTrue(t.length>0);for(var n=new yt,i=0;i<t.length;i++)n.addAll(this.createParentBoundablesFromVerticalSlice(t[i],e));return n}},{key:\"nearestNeighbourK\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return this.nearestNeighbourK(t,A.POSITIVE_INFINITY,e)}if(3===arguments.length){var n=arguments[0],r=arguments[2],s=arguments[1],a=new nn;a.add(n);for(var o=new nn;!a.isEmpty()&&s>=0;){var u=a.poll(),l=u.getDistance();if(l>=s)break;if(u.isLeaves())if(o.size()<r)o.add(u);else o.peek().getDistance()>l&&(o.poll(),o.add(u)),s=o.peek().getDistance();else u.expandToQueue(a,s)}return i.getItems(o)}}},{key:\"createNode\",value:function(t){return new gn(t)}},{key:\"size\",value:function(){return 0===arguments.length?f(i,\"size\",this,1).call(this):f(i,\"size\",this,1).apply(this,arguments)}},{key:\"insert\",value:function(){if(!(2===arguments.length&&arguments[1]instanceof Object&&arguments[0]instanceof U))return f(i,\"insert\",this,1).apply(this,arguments);var t=arguments[0],e=arguments[1];if(t.isNull())return null;f(i,\"insert\",this,1).call(this,t,e)}},{key:\"getIntersectsOp\",value:function(){return i.intersectsOp}},{key:\"verticalSlices\",value:function(t,e){for(var n=Math.trunc(Math.ceil(t.size()/e)),i=new Array(e).fill(null),r=t.iterator(),s=0;s<e;s++){i[s]=new yt;for(var a=0;r.hasNext()&&a<n;){var o=r.next();i[s].add(o),a++}}return i}},{key:\"query\",value:function(){if(1===arguments.length){var t=arguments[0];return f(i,\"query\",this,1).call(this,t)}if(2===arguments.length){var e=arguments[0],n=arguments[1];f(i,\"query\",this,1).call(this,e,n)}}},{key:\"getComparator\",value:function(){return i.yComparator}},{key:\"createParentBoundablesFromVerticalSlice\",value:function(t,e){return f(i,\"createParentBoundables\",this,1).call(this,t,e)}},{key:\"remove\",value:function(){if(2===arguments.length&&arguments[1]instanceof Object&&arguments[0]instanceof U){var t=arguments[0],e=arguments[1];return f(i,\"remove\",this,1).call(this,t,e)}return f(i,\"remove\",this,1).apply(this,arguments)}},{key:\"depth\",value:function(){return 0===arguments.length?f(i,\"depth\",this,1).call(this):f(i,\"depth\",this,1).apply(this,arguments)}},{key:\"createParentBoundables\",value:function(t,e){G.isTrue(!t.isEmpty());var n=Math.trunc(Math.ceil(t.size()/this.getNodeCapacity())),r=new yt(t);an.sort(r,i.xComparator);var s=this.verticalSlices(r,Math.trunc(Math.ceil(Math.sqrt(n))));return this.createParentBoundablesFromVerticalSlices(s,e)}},{key:\"nearestNeighbour\",value:function(){if(1===arguments.length){if(rt(arguments[0],cn)){var t=arguments[0];if(this.isEmpty())return null;var e=new un(this.getRoot(),this.getRoot(),t);return this.nearestNeighbour(e)}if(arguments[0]instanceof un){var n=arguments[0],i=A.POSITIVE_INFINITY,r=null,s=new nn;for(s.add(n);!s.isEmpty()&&i>0;){var a=s.poll(),o=a.getDistance();if(o>=i)break;a.isLeaves()?(i=o,r=a):a.expandToQueue(s,i)}return null===r?null:[r.getBoundable(0).getItem(),r.getBoundable(1).getItem()]}}else{if(2===arguments.length){var u=arguments[0],l=arguments[1];if(this.isEmpty()||u.isEmpty())return null;var h=new un(this.getRoot(),u.getRoot(),l);return this.nearestNeighbour(h)}if(3===arguments.length){var c=arguments[2],f=new en(arguments[0],arguments[1]),g=new un(this.getRoot(),f,c);return this.nearestNeighbour(g)[0]}if(4===arguments.length){var v=arguments[2],y=arguments[3],d=new en(arguments[0],arguments[1]),_=new un(this.getRoot(),d,v);return this.nearestNeighbourK(_,y)}}}},{key:\"isWithinDistance\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1],n=A.POSITIVE_INFINITY,i=new nn;for(i.add(t);!i.isEmpty();){var r=i.poll(),s=r.getDistance();if(s>e)return!1;if(r.maximumDistance()<=e)return!0;if(r.isLeaves()){if((n=s)<=e)return!0}else r.expandToQueue(i,n)}return!1}if(3===arguments.length){var a=arguments[0],o=arguments[1],u=arguments[2],l=new un(this.getRoot(),a.getRoot(),o);return this.isWithinDistance(l,u)}}},{key:\"interfaces_\",get:function(){return[rn,E]}}],[{key:\"constructor_\",value:function(){if(0===arguments.length)i.constructor_.call(this,i.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){var t=arguments[0];hn.constructor_.call(this,t)}}},{key:\"centreX\",value:function(t){return i.avg(t.getMinX(),t.getMaxX())}},{key:\"avg\",value:function(t,e){return(t+e)/2}},{key:\"getItems\",value:function(t){for(var e=new Array(t.size()).fill(null),n=0;!t.isEmpty();){var i=t.poll();e[n]=i.getBoundable(0).getItem(),n++}return e}},{key:\"centreY\",value:function(t){return i.avg(t.getMinY(),t.getMaxY())}}])}(hn),gn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"computeBounds\",value:function(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var n=e.next();null===t?t=new U(n.getBounds()):t.expandToInclude(n.getBounds())}return t}}],[{key:\"constructor_\",value:function(){var t=arguments[0];sn.constructor_.call(this,t)}}])}(sn);fn.STRtreeNode=gn,fn.xComparator=new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[P]}},{key:\"compare\",value:function(t,e){return hn.compareDoubles(fn.centreX(t.getBounds()),fn.centreX(e.getBounds()))}}])}()),fn.yComparator=new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[P]}},{key:\"compare\",value:function(t,e){return hn.compareDoubles(fn.centreY(t.getBounds()),fn.centreY(e.getBounds()))}}])}()),fn.intersectsOp=new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[IntersectsOp]}},{key:\"intersects\",value:function(t,e){return t.intersects(e)}}])}()),fn.DEFAULT_NODE_CAPACITY=10;var vn=function(){function t(){n(this,t)}return s(t,null,[{key:\"relativeSign\",value:function(t,e){return t<e?-1:t>e?1:0}},{key:\"compare\",value:function(e,n,i){if(n.equals2D(i))return 0;var r=t.relativeSign(n.x,i.x),s=t.relativeSign(n.y,i.y);switch(e){case 0:return t.compareValue(r,s);case 1:return t.compareValue(s,r);case 2:return t.compareValue(s,-r);case 3:return t.compareValue(-r,s);case 4:return t.compareValue(-r,-s);case 5:return t.compareValue(-s,-r);case 6:return t.compareValue(-s,r);case 7:return t.compareValue(r,-s)}return G.shouldNeverReachHere(\"invalid octant value\"),0}},{key:\"compareValue\",value:function(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0}}])}(),yn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getCoordinate\",value:function(){return this.coord}},{key:\"print\",value:function(t){t.print(this.coord),t.print(\" seg # = \"+this.segmentIndex)}},{key:\"compareTo\",value:function(t){var e=t;return this.segmentIndex<e.segmentIndex?-1:this.segmentIndex>e.segmentIndex?1:this.coord.equals2D(e.coord)?0:this._isInterior?e._isInterior?vn.compare(this._segmentOctant,this.coord,e.coord):1:-1}},{key:\"isEndPoint\",value:function(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t}},{key:\"toString\",value:function(){return this.segmentIndex+\":\"+this.coord.toString()}},{key:\"isInterior\",value:function(){return this._isInterior}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var t=arguments[0],e=arguments[1],n=arguments[2],i=arguments[3];this._segString=t,this.coord=new X(e),this.segmentIndex=n,this._segmentOctant=i,this._isInterior=!e.equals2D(t.getCoordinate(n))}}])}(),dn=function(){return s((function t(){n(this,t)}),[{key:\"hasNext\",value:function(){}},{key:\"next\",value:function(){}},{key:\"remove\",value:function(){}}])}(),_n=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getSplitCoordinates\",value:function(){var t=new Zt;this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var i=e.next();this.addEdgeCoordinates(n,i,t),n=i}return t.toCoordinateArray()}},{key:\"addCollapsedNodes\",value:function(){var t=new yt;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var n=e.next().intValue();this.add(this._edge.getCoordinate(n),n)}}},{key:\"createSplitEdgePts\",value:function(t,e){var n=e.segmentIndex-t.segmentIndex+2;if(2===n)return[new X(t.coord),new X(e.coord)];var i=this._edge.getCoordinate(e.segmentIndex),r=e.isInterior()||!e.coord.equals2D(i);r||n--;var s=new Array(n).fill(null),a=0;s[a++]=new X(t.coord);for(var o=t.segmentIndex+1;o<=e.segmentIndex;o++)s[a++]=this._edge.getCoordinate(o);return r&&(s[a]=new X(e.coord)),s}},{key:\"print\",value:function(t){t.println(\"Intersections:\");for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"findCollapsesFromExistingVertices\",value:function(t){for(var e=0;e<this._edge.size()-2;e++){var n=this._edge.getCoordinate(e);this._edge.getCoordinate(e+1);var i=this._edge.getCoordinate(e+2);n.equals2D(i)&&t.add(at.valueOf(e+1))}}},{key:\"addEdgeCoordinates\",value:function(t,e,n){var i=this.createSplitEdgePts(t,e);n.add(i,!1)}},{key:\"iterator\",value:function(){return this._nodeMap.values().iterator()}},{key:\"addSplitEdges\",value:function(t){this.addEndpoints(),this.addCollapsedNodes();for(var e=this.iterator(),n=e.next();e.hasNext();){var i=e.next(),r=this.createSplitEdge(n,i);t.add(r),n=i}}},{key:\"findCollapseIndex\",value:function(t,e,n){if(!t.coord.equals2D(e.coord))return!1;var i=e.segmentIndex-t.segmentIndex;return e.isInterior()||i--,1===i&&(n[0]=t.segmentIndex+1,!0)}},{key:\"findCollapsesFromInsertedNodes\",value:function(t){for(var e=new Array(1).fill(null),n=this.iterator(),i=n.next();n.hasNext();){var r=n.next();this.findCollapseIndex(i,r,e)&&t.add(at.valueOf(e[0])),i=r}}},{key:\"getEdge\",value:function(){return this._edge}},{key:\"addEndpoints\",value:function(){var t=this._edge.size()-1;this.add(this._edge.getCoordinate(0),0),this.add(this._edge.getCoordinate(t),t)}},{key:\"createSplitEdge\",value:function(t,e){var n=this.createSplitEdgePts(t,e);return new xn(n,this._edge.getData())}},{key:\"add\",value:function(t,e){var n=new yn(this._edge,t,e,this._edge.getSegmentOctant(e)),i=this._nodeMap.get(n);return null!==i?(G.isTrue(i.coord.equals2D(t),\"Found equal nodes with different coordinates\"),i):(this._nodeMap.put(n,n),n)}},{key:\"checkSplitEdgesCorrectness\",value:function(t){var e=this._edge.getCoordinates(),n=t.get(0).getCoordinate(0);if(!n.equals2D(e[0]))throw new D(\"bad split edge start point at \"+n);var i=t.get(t.size()-1).getCoordinates(),r=i[i.length-1];if(!r.equals2D(e[e.length-1]))throw new D(\"bad split edge end point at \"+r)}}],[{key:\"constructor_\",value:function(){this._nodeMap=new He,this._edge=null;var t=arguments[0];this._edge=t}}])}(),pn=function(){function t(){n(this,t)}return s(t,null,[{key:\"octant\",value:function(){if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];if(0===e&&0===n)throw new m(\"Cannot compute the octant for point ( \"+e+\", \"+n+\" )\");var i=Math.abs(e),r=Math.abs(n);return e>=0?n>=0?i>=r?0:1:i>=r?7:6:n>=0?i>=r?3:2:i>=r?4:5}if(arguments[0]instanceof X&&arguments[1]instanceof X){var s=arguments[0],a=arguments[1],o=a.x-s.x,u=a.y-s.y;if(0===o&&0===u)throw new m(\"Cannot compute the octant for two identical points \"+s);return t.octant(o,u)}}}])}(),mn=function(){return s((function t(){n(this,t)}),[{key:\"getCoordinates\",value:function(){}},{key:\"size\",value:function(){}},{key:\"getCoordinate\",value:function(t){}},{key:\"isClosed\",value:function(){}},{key:\"setData\",value:function(t){}},{key:\"getData\",value:function(){}}])}(),kn=function(){return s((function t(){n(this,t)}),[{key:\"addIntersection\",value:function(t,e){}},{key:\"interfaces_\",get:function(){return[mn]}}])}(),xn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getCoordinates\",value:function(){return this._pts}},{key:\"size\",value:function(){return this._pts.length}},{key:\"getCoordinate\",value:function(t){return this._pts[t]}},{key:\"isClosed\",value:function(){return this._pts[0].equals(this._pts[this._pts.length-1])}},{key:\"getSegmentOctant\",value:function(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))}},{key:\"setData\",value:function(t){this._data=t}},{key:\"safeOctant\",value:function(t,e){return t.equals2D(e)?0:pn.octant(t,e)}},{key:\"getData\",value:function(){return this._data}},{key:\"addIntersection\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){var n=arguments[1],i=arguments[3],r=new X(arguments[0].getIntersection(i));this.addIntersection(r,n)}}},{key:\"toString\",value:function(){return Ce.toLineString(new Qt(this._pts))}},{key:\"getNodeList\",value:function(){return this._nodeList}},{key:\"addIntersectionNode\",value:function(t,e){var n=e,i=n+1;if(i<this._pts.length){var r=this._pts[i];t.equals2D(r)&&(n=i)}return this._nodeList.add(t,n)}},{key:\"addIntersections\",value:function(t,e,n){for(var i=0;i<t.getIntersectionNum();i++)this.addIntersection(t,e,n,i)}},{key:\"interfaces_\",get:function(){return[kn]}}],[{key:\"constructor_\",value:function(){this._nodeList=new _n(this),this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e}},{key:\"getNodedSubstrings\",value:function(){if(1===arguments.length){var e=arguments[0],n=new yt;return t.getNodedSubstrings(e,n),n}if(2===arguments.length)for(var i=arguments[1],r=arguments[0].iterator();r.hasNext();){r.next().getNodeList().addSplitEdges(i)}}}])}(),In=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"minX\",value:function(){return Math.min(this.p0.x,this.p1.x)}},{key:\"orientationIndex\",value:function(){if(arguments[0]instanceof t){var e=arguments[0],n=ct.index(this.p0,this.p1,e.p0),i=ct.index(this.p0,this.p1,e.p1);return n>=0&&i>=0||n<=0&&i<=0?Math.max(n,i):0}if(arguments[0]instanceof X){var r=arguments[0];return ct.index(this.p0,this.p1,r)}}},{key:\"toGeometry\",value:function(t){return t.createLineString([this.p0,this.p1])}},{key:\"isVertical\",value:function(){return this.p0.x===this.p1.x}},{key:\"equals\",value:function(e){if(!(e instanceof t))return!1;var n=e;return this.p0.equals(n.p0)&&this.p1.equals(n.p1)}},{key:\"intersection\",value:function(t){var e=new we;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}},{key:\"project\",value:function(){if(arguments[0]instanceof X){var e=arguments[0];if(e.equals(this.p0)||e.equals(this.p1))return new X(e);var n=this.projectionFactor(e),i=new X;return i.x=this.p0.x+n*(this.p1.x-this.p0.x),i.y=this.p0.y+n*(this.p1.y-this.p0.y),i}if(arguments[0]instanceof t){var r=arguments[0],s=this.projectionFactor(r.p0),a=this.projectionFactor(r.p1);if(s>=1&&a>=1)return null;if(s<=0&&a<=0)return null;var o=this.project(r.p0);s<0&&(o=this.p0),s>1&&(o=this.p1);var u=this.project(r.p1);return a<0&&(u=this.p0),a>1&&(u=this.p1),new t(o,u)}}},{key:\"normalize\",value:function(){this.p1.compareTo(this.p0)<0&&this.reverse()}},{key:\"angle\",value:function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}},{key:\"getCoordinate\",value:function(t){return 0===t?this.p0:this.p1}},{key:\"distancePerpendicular\",value:function(t){return xt.pointToLinePerpendicular(t,this.p0,this.p1)}},{key:\"minY\",value:function(){return Math.min(this.p0.y,this.p1.y)}},{key:\"midPoint\",value:function(){return t.midPoint(this.p0,this.p1)}},{key:\"projectionFactor\",value:function(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,i=e*e+n*n;return i<=0?A.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*n)/i}},{key:\"closestPoints\",value:function(t){var e=this.intersection(t);if(null!==e)return[e,e];var n=new Array(2).fill(null),i=A.MAX_VALUE,r=null,s=this.closestPoint(t.p0);i=s.distance(t.p0),n[0]=s,n[1]=t.p0;var a=this.closestPoint(t.p1);(r=a.distance(t.p1))<i&&(i=r,n[0]=a,n[1]=t.p1);var o=t.closestPoint(this.p0);(r=o.distance(this.p0))<i&&(i=r,n[0]=this.p0,n[1]=o);var u=t.closestPoint(this.p1);return(r=u.distance(this.p1))<i&&(i=r,n[0]=this.p1,n[1]=u),n}},{key:\"closestPoint\",value:function(t){var e=this.projectionFactor(t);return e>0&&e<1?this.project(t):this.p0.distance(t)<this.p1.distance(t)?this.p0:this.p1}},{key:\"maxX\",value:function(){return Math.max(this.p0.x,this.p1.x)}},{key:\"getLength\",value:function(){return this.p0.distance(this.p1)}},{key:\"compareTo\",value:function(t){var e=t,n=this.p0.compareTo(e.p0);return 0!==n?n:this.p1.compareTo(e.p1)}},{key:\"reverse\",value:function(){var t=this.p0;this.p0=this.p1,this.p1=t}},{key:\"equalsTopo\",value:function(t){return this.p0.equals(t.p0)&&this.p1.equals(t.p1)||this.p0.equals(t.p1)&&this.p1.equals(t.p0)}},{key:\"lineIntersection\",value:function(t){return pt.intersection(this.p0,this.p1,t.p0,t.p1)}},{key:\"maxY\",value:function(){return Math.max(this.p0.y,this.p1.y)}},{key:\"pointAlongOffset\",value:function(t,e){var n=this.p0.x+t*(this.p1.x-this.p0.x),i=this.p0.y+t*(this.p1.y-this.p0.y),r=this.p1.x-this.p0.x,s=this.p1.y-this.p0.y,a=Math.sqrt(r*r+s*s),o=0,u=0;if(0!==e){if(a<=0)throw new IllegalStateException(\"Cannot compute offset from zero-length line segment\");o=e*r/a,u=e*s/a}return new X(n-u,i+o)}},{key:\"setCoordinates\",value:function(){if(1===arguments.length){var t=arguments[0];this.setCoordinates(t.p0,t.p1)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.p0.x=e.x,this.p0.y=e.y,this.p1.x=n.x,this.p1.y=n.y}}},{key:\"segmentFraction\",value:function(t){var e=this.projectionFactor(t);return e<0?e=0:(e>1||A.isNaN(e))&&(e=1),e}},{key:\"toString\",value:function(){return\"LINESTRING( \"+this.p0.x+\" \"+this.p0.y+\", \"+this.p1.x+\" \"+this.p1.y+\")\"}},{key:\"isHorizontal\",value:function(){return this.p0.y===this.p1.y}},{key:\"reflect\",value:function(t){var e=this.p1.getY()-this.p0.getY(),n=this.p0.getX()-this.p1.getX(),i=this.p0.getY()*(this.p1.getX()-this.p0.getX())-this.p0.getX()*(this.p1.getY()-this.p0.getY()),r=e*e+n*n,s=e*e-n*n,a=t.getX(),o=t.getY();return new X((-s*a-2*e*n*o-2*e*i)/r,(s*o-2*e*n*a-2*n*i)/r)}},{key:\"distance\",value:function(){if(arguments[0]instanceof t){var e=arguments[0];return xt.segmentToSegment(this.p0,this.p1,e.p0,e.p1)}if(arguments[0]instanceof X){var n=arguments[0];return xt.pointToSegment(n,this.p0,this.p1)}}},{key:\"pointAlong\",value:function(t){var e=new X;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}},{key:\"hashCode\",value:function(){var t=A.doubleToLongBits(this.p0.x);t^=31*A.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),n=A.doubleToLongBits(this.p1.x);return n^=31*A.doubleToLongBits(this.p1.y),e^(Math.trunc(n)^Math.trunc(n>>32))}},{key:\"interfaces_\",get:function(){return[x,E]}}],[{key:\"constructor_\",value:function(){if(this.p0=null,this.p1=null,0===arguments.length)t.constructor_.call(this,new X,new X);else if(1===arguments.length){var e=arguments[0];t.constructor_.call(this,e.p0,e.p1)}else if(2===arguments.length){var n=arguments[0],i=arguments[1];this.p0=n,this.p1=i}else if(4===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2],o=arguments[3];t.constructor_.call(this,new X(r,s),new X(a,o))}}},{key:\"midPoint\",value:function(t,e){return new X((t.x+e.x)/2,(t.y+e.y)/2)}}])}(),En=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"overlap\",value:function(){if(2===arguments.length);else if(4===arguments.length){var t=arguments[1],e=arguments[2],n=arguments[3];arguments[0].getLineSegment(t,this._overlapSeg1),e.getLineSegment(n,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}}}],[{key:\"constructor_\",value:function(){this._overlapSeg1=new In,this._overlapSeg2=new In}}])}(),Nn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getLineSegment\",value:function(t,e){e.p0=this._pts[t],e.p1=this._pts[t+1]}},{key:\"computeSelect\",value:function(t,e,n,i){var r=this._pts[e],s=this._pts[n];if(n-e==1)return i.select(this,e),null;if(!t.intersects(r,s))return null;var a=Math.trunc((e+n)/2);e<a&&this.computeSelect(t,e,a,i),a<n&&this.computeSelect(t,a,n,i)}},{key:\"getCoordinates\",value:function(){for(var t=new Array(this._end-this._start+1).fill(null),e=0,n=this._start;n<=this._end;n++)t[e++]=this._pts[n];return t}},{key:\"computeOverlaps\",value:function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.computeOverlaps(this._start,this._end,t,t._start,t._end,e)}else if(6===arguments.length){var n=arguments[0],i=arguments[1],r=arguments[2],s=arguments[3],a=arguments[4],o=arguments[5];if(i-n==1&&a-s==1)return o.overlap(this,n,r,s),null;if(!this.overlaps(n,i,r,s,a))return null;var u=Math.trunc((n+i)/2),l=Math.trunc((s+a)/2);n<u&&(s<l&&this.computeOverlaps(n,u,r,s,l,o),l<a&&this.computeOverlaps(n,u,r,l,a,o)),u<i&&(s<l&&this.computeOverlaps(u,i,r,s,l,o),l<a&&this.computeOverlaps(u,i,r,l,a,o))}}},{key:\"setId\",value:function(t){this._id=t}},{key:\"select\",value:function(t,e){this.computeSelect(t,this._start,this._end,e)}},{key:\"getEnvelope\",value:function(){if(null===this._env){var t=this._pts[this._start],e=this._pts[this._end];this._env=new U(t,e)}return this._env}},{key:\"overlaps\",value:function(t,e,n,i,r){return U.intersects(this._pts[t],this._pts[e],n._pts[i],n._pts[r])}},{key:\"getEndIndex\",value:function(){return this._end}},{key:\"getStartIndex\",value:function(){return this._start}},{key:\"getContext\",value:function(){return this._context}},{key:\"getId\",value:function(){return this._id}}],[{key:\"constructor_\",value:function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var t=arguments[0],e=arguments[1],n=arguments[2],i=arguments[3];this._pts=t,this._start=e,this._end=n,this._context=i}}])}(),Tn=function(){function t(){n(this,t)}return s(t,null,[{key:\"findChainEnd\",value:function(t,e){for(var n=e;n<t.length-1&&t[n].equals2D(t[n+1]);)n++;if(n>=t.length-1)return t.length-1;for(var i=je.quadrant(t[n],t[n+1]),r=e+1;r<t.length;){if(!t[r-1].equals2D(t[r]))if(je.quadrant(t[r-1],t[r])!==i)break;r++}return r-1}},{key:\"getChains\",value:function(){if(1===arguments.length){var e=arguments[0];return t.getChains(e,null)}if(2===arguments.length){var n=arguments[0],i=arguments[1],r=new yt,s=0;do{var a=t.findChainEnd(n,s),o=new Nn(n,s,a,i);r.add(o),s=a}while(s<n.length-1);return r}}}])}(),Sn=function(){return s((function t(){n(this,t)}),[{key:\"computeNodes\",value:function(t){}},{key:\"getNodedSubstrings\",value:function(){}}])}(),Ln=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"setSegmentIntersector\",value:function(t){this._segInt=t}},{key:\"interfaces_\",get:function(){return[Sn]}}],[{key:\"constructor_\",value:function(){if(this._segInt=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this.setSegmentIntersector(t)}}}])}(),Cn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getMonotoneChains\",value:function(){return this._monoChains}},{key:\"getNodedSubstrings\",value:function(){return xn.getNodedSubstrings(this._nodedSegStrings)}},{key:\"getIndex\",value:function(){return this._index}},{key:\"add\",value:function(t){for(var e=Tn.getChains(t.getCoordinates(),t).iterator();e.hasNext();){var n=e.next();n.setId(this._idCounter++),this._index.insert(n.getEnvelope(),n),this._monoChains.add(n)}}},{key:\"computeNodes\",value:function(t){this._nodedSegStrings=t;for(var e=t.iterator();e.hasNext();)this.add(e.next());this.intersectChains()}},{key:\"intersectChains\",value:function(){for(var t=new Rn(this._segInt),e=this._monoChains.iterator();e.hasNext();)for(var n=e.next(),i=this._index.query(n.getEnvelope()).iterator();i.hasNext();){var r=i.next();if(r.getId()>n.getId()&&(n.computeOverlaps(r,t),this._nOverlaps++),this._segInt.isDone())return null}}}],[{key:\"constructor_\",value:function(){if(this._monoChains=new yt,this._index=new fn,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0,0===arguments.length);else if(1===arguments.length){var t=arguments[0];Ln.constructor_.call(this,t)}}}])}(Ln),Rn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"overlap\",value:function(){if(4!==arguments.length)return f(i,\"overlap\",this,1).apply(this,arguments);var t=arguments[1],e=arguments[2],n=arguments[3],r=arguments[0].getContext(),s=e.getContext();this._si.processIntersections(r,t,s,n)}}],[{key:\"constructor_\",value:function(){this._si=null;var t=arguments[0];this._si=t}}])}(En);Cn.SegmentOverlapAction=Rn;var wn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isDeletable\",value:function(t,e,n,i){var r=this._inputLine[t],s=this._inputLine[e],a=this._inputLine[n];return!!this.isConcave(r,s,a)&&(!!this.isShallow(r,s,a,i)&&this.isShallowSampled(r,s,t,n,i))}},{key:\"deleteShallowConcavities\",value:function(){for(var e=1,n=this.findNextNonDeletedIndex(e),i=this.findNextNonDeletedIndex(n),r=!1;i<this._inputLine.length;){var s=!1;this.isDeletable(e,n,i,this._distanceTol)&&(this._isDeleted[n]=t.DELETE,s=!0,r=!0),e=s?i:n,n=this.findNextNonDeletedIndex(e),i=this.findNextNonDeletedIndex(n)}return r}},{key:\"isShallowConcavity\",value:function(t,e,n,i){return ct.index(t,e,n)===this._angleOrientation&&xt.pointToSegment(e,t,n)<i}},{key:\"isShallowSampled\",value:function(e,n,i,r,s){var a=Math.trunc((r-i)/t.NUM_PTS_TO_CHECK);a<=0&&(a=1);for(var o=i;o<r;o+=a)if(!this.isShallow(e,n,this._inputLine[o],s))return!1;return!0}},{key:\"isConcave\",value:function(t,e,n){var i=ct.index(t,e,n)===this._angleOrientation;return i}},{key:\"simplify\",value:function(t){this._distanceTol=Math.abs(t),t<0&&(this._angleOrientation=ct.CLOCKWISE),this._isDeleted=new Array(this._inputLine.length).fill(null);var e=!1;do{e=this.deleteShallowConcavities()}while(e);return this.collapseLine()}},{key:\"findNextNonDeletedIndex\",value:function(e){for(var n=e+1;n<this._inputLine.length&&this._isDeleted[n]===t.DELETE;)n++;return n}},{key:\"isShallow\",value:function(t,e,n,i){return xt.pointToSegment(e,t,n)<i}},{key:\"collapseLine\",value:function(){for(var e=new Zt,n=0;n<this._inputLine.length;n++)this._isDeleted[n]!==t.DELETE&&e.add(this._inputLine[n]);return e.toCoordinateArray()}}],[{key:\"constructor_\",value:function(){this._inputLine=null,this._distanceTol=null,this._isDeleted=null,this._angleOrientation=ct.COUNTERCLOCKWISE;var t=arguments[0];this._inputLine=t}},{key:\"simplify\",value:function(e,n){return new t(e).simplify(n)}}])}();wn.INIT=0,wn.DELETE=1,wn.KEEP=1,wn.NUM_PTS_TO_CHECK=10;var On=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getCoordinates\",value:function(){return this._ptList.toArray(t.COORDINATE_ARRAY_TYPE)}},{key:\"setPrecisionModel\",value:function(t){this._precisionModel=t}},{key:\"addPt\",value:function(t){var e=new X(t);if(this._precisionModel.makePrecise(e),this.isRedundant(e))return null;this._ptList.add(e)}},{key:\"reverse\",value:function(){}},{key:\"addPts\",value:function(t,e){if(e)for(var n=0;n<t.length;n++)this.addPt(t[n]);else for(var i=t.length-1;i>=0;i--)this.addPt(t[i])}},{key:\"isRedundant\",value:function(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)<this._minimimVertexDistance}},{key:\"toString\",value:function(){return(new ae).createLineString(this.getCoordinates()).toString()}},{key:\"closeRing\",value:function(){if(this._ptList.size()<1)return null;var t=new X(this._ptList.get(0)),e=this._ptList.get(this._ptList.size()-1);if(t.equals(e))return null;this._ptList.add(t)}},{key:\"setMinimumVertexDistance\",value:function(t){this._minimimVertexDistance=t}}],[{key:\"constructor_\",value:function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new yt}}])}();On.COORDINATE_ARRAY_TYPE=new Array(0).fill(null);var bn=function(){function t(){n(this,t)}return s(t,null,[{key:\"toDegrees\",value:function(t){return 180*t/Math.PI}},{key:\"normalize\",value:function(e){for(;e>Math.PI;)e-=t.PI_TIMES_2;for(;e<=-Math.PI;)e+=t.PI_TIMES_2;return e}},{key:\"angle\",value:function(){if(1===arguments.length){var t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){var e=arguments[0],n=arguments[1],i=n.x-e.x,r=n.y-e.y;return Math.atan2(r,i)}}},{key:\"isAcute\",value:function(t,e,n){var i=t.x-e.x,r=t.y-e.y;return i*(n.x-e.x)+r*(n.y-e.y)>0}},{key:\"isObtuse\",value:function(t,e,n){var i=t.x-e.x,r=t.y-e.y;return i*(n.x-e.x)+r*(n.y-e.y)<0}},{key:\"interiorAngle\",value:function(e,n,i){var r=t.angle(n,e),s=t.angle(n,i);return Math.abs(s-r)}},{key:\"normalizePositive\",value:function(e){if(e<0){for(;e<0;)e+=t.PI_TIMES_2;e>=t.PI_TIMES_2&&(e=0)}else{for(;e>=t.PI_TIMES_2;)e-=t.PI_TIMES_2;e<0&&(e=0)}return e}},{key:\"angleBetween\",value:function(e,n,i){var r=t.angle(n,e),s=t.angle(n,i);return t.diff(r,s)}},{key:\"diff\",value:function(t,e){var n=null;return(n=t<e?e-t:t-e)>Math.PI&&(n=2*Math.PI-n),n}},{key:\"toRadians\",value:function(t){return t*Math.PI/180}},{key:\"getTurn\",value:function(e,n){var i=Math.sin(n-e);return i>0?t.COUNTERCLOCKWISE:i<0?t.CLOCKWISE:t.NONE}},{key:\"angleBetweenOriented\",value:function(e,n,i){var r=t.angle(n,e),s=t.angle(n,i)-r;return s<=-Math.PI?s+t.PI_TIMES_2:s>Math.PI?s-t.PI_TIMES_2:s}}])}();bn.PI_TIMES_2=2*Math.PI,bn.PI_OVER_2=Math.PI/2,bn.PI_OVER_4=Math.PI/4,bn.COUNTERCLOCKWISE=ct.COUNTERCLOCKWISE,bn.CLOCKWISE=ct.CLOCKWISE,bn.NONE=ct.COLLINEAR;var Mn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"addNextSegment\",value:function(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=ct.index(this._s0,this._s1,this._s2),i=n===ct.CLOCKWISE&&this._side===$.LEFT||n===ct.COUNTERCLOCKWISE&&this._side===$.RIGHT;0===n?this.addCollinear(e):i?this.addOutsideTurn(n,e):this.addInsideTurn(n,e)}},{key:\"addLineEndCap\",value:function(t,e){var n=new In(t,e),i=new In;this.computeOffsetSegment(n,$.LEFT,this._distance,i);var r=new In;this.computeOffsetSegment(n,$.RIGHT,this._distance,r);var s=e.x-t.x,a=e.y-t.y,o=Math.atan2(a,s);switch(this._bufParams.getEndCapStyle()){case _.CAP_ROUND:this._segList.addPt(i.p1),this.addDirectedFillet(e,o+Math.PI/2,o-Math.PI/2,ct.CLOCKWISE,this._distance),this._segList.addPt(r.p1);break;case _.CAP_FLAT:this._segList.addPt(i.p1),this._segList.addPt(r.p1);break;case _.CAP_SQUARE:var u=new X;u.x=Math.abs(this._distance)*Math.cos(o),u.y=Math.abs(this._distance)*Math.sin(o);var l=new X(i.p1.x+u.x,i.p1.y+u.y),h=new X(r.p1.x+u.x,r.p1.y+u.y);this._segList.addPt(l),this._segList.addPt(h)}}},{key:\"getCoordinates\",value:function(){return this._segList.getCoordinates()}},{key:\"addMitreJoin\",value:function(t,e,n,i){var r=pt.intersection(e.p0,e.p1,n.p0,n.p1);if(null!==r&&(i<=0?1:r.distance(t)/Math.abs(i))<=this._bufParams.getMitreLimit())return this._segList.addPt(r),null;this.addLimitedMitreJoin(e,n,i,this._bufParams.getMitreLimit())}},{key:\"addOutsideTurn\",value:function(e,n){if(this._offset0.p1.distance(this._offset1.p0)<this._distance*t.OFFSET_SEGMENT_SEPARATION_FACTOR)return this._segList.addPt(this._offset0.p1),null;this._bufParams.getJoinStyle()===_.JOIN_MITRE?this.addMitreJoin(this._s1,this._offset0,this._offset1,this._distance):this._bufParams.getJoinStyle()===_.JOIN_BEVEL?this.addBevelJoin(this._offset0,this._offset1):(n&&this._segList.addPt(this._offset0.p1),this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,e,this._distance),this._segList.addPt(this._offset1.p0))}},{key:\"createSquare\",value:function(t){this._segList.addPt(new X(t.x+this._distance,t.y+this._distance)),this._segList.addPt(new X(t.x+this._distance,t.y-this._distance)),this._segList.addPt(new X(t.x-this._distance,t.y-this._distance)),this._segList.addPt(new X(t.x-this._distance,t.y+this._distance)),this._segList.closeRing()}},{key:\"addSegments\",value:function(t,e){this._segList.addPts(t,e)}},{key:\"addFirstSegment\",value:function(){this._segList.addPt(this._offset1.p0)}},{key:\"addCornerFillet\",value:function(t,e,n,i,r){var s=e.x-t.x,a=e.y-t.y,o=Math.atan2(a,s),u=n.x-t.x,l=n.y-t.y,h=Math.atan2(l,u);i===ct.CLOCKWISE?o<=h&&(o+=2*Math.PI):o>=h&&(o-=2*Math.PI),this._segList.addPt(e),this.addDirectedFillet(t,o,h,i,r),this._segList.addPt(n)}},{key:\"addLastSegment\",value:function(){this._segList.addPt(this._offset1.p1)}},{key:\"initSideSegments\",value:function(t,e,n){this._s1=t,this._s2=e,this._side=n,this._seg1.setCoordinates(t,e),this.computeOffsetSegment(this._seg1,n,this._distance,this._offset1)}},{key:\"addLimitedMitreJoin\",value:function(t,e,n,i){var r=this._seg0.p1,s=bn.angle(r,this._seg0.p0),a=bn.angleBetweenOriented(this._seg0.p0,r,this._seg1.p1)/2,o=bn.normalize(s+a),u=bn.normalize(o+Math.PI),l=i*n,h=n-l*Math.abs(Math.sin(a)),c=r.x+l*Math.cos(u),f=r.y+l*Math.sin(u),g=new X(c,f),v=new In(r,g),y=v.pointAlongOffset(1,h),d=v.pointAlongOffset(1,-h);this._side===$.LEFT?(this._segList.addPt(y),this._segList.addPt(d)):(this._segList.addPt(d),this._segList.addPt(y))}},{key:\"addDirectedFillet\",value:function(t,e,n,i,r){var s=i===ct.CLOCKWISE?-1:1,a=Math.abs(e-n),o=Math.trunc(a/this._filletAngleQuantum+.5);if(o<1)return null;for(var u=a/o,l=new X,h=0;h<o;h++){var c=e+s*h*u;l.x=t.x+r*Math.cos(c),l.y=t.y+r*Math.sin(c),this._segList.addPt(l)}}},{key:\"computeOffsetSegment\",value:function(t,e,n,i){var r=e===$.LEFT?1:-1,s=t.p1.x-t.p0.x,a=t.p1.y-t.p0.y,o=Math.sqrt(s*s+a*a),u=r*n*s/o,l=r*n*a/o;i.p0.x=t.p0.x-l,i.p0.y=t.p0.y+u,i.p1.x=t.p1.x-l,i.p1.y=t.p1.y+u}},{key:\"addInsideTurn\",value:function(e,n){if(this._li.computeIntersection(this._offset0.p0,this._offset0.p1,this._offset1.p0,this._offset1.p1),this._li.hasIntersection())this._segList.addPt(this._li.getIntersection(0));else if(this._hasNarrowConcaveAngle=!0,this._offset0.p1.distance(this._offset1.p0)<this._distance*t.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR)this._segList.addPt(this._offset0.p1);else{if(this._segList.addPt(this._offset0.p1),this._closingSegLengthFactor>0){var i=new X((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(i);var r=new X((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(r)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}}},{key:\"createCircle\",value:function(t){var e=new X(t.x+this._distance,t.y);this._segList.addPt(e),this.addDirectedFillet(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()}},{key:\"addBevelJoin\",value:function(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)}},{key:\"init\",value:function(e){this._distance=e,this._maxCurveSegmentError=e*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new On,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(e*t.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)}},{key:\"addCollinear\",value:function(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===_.JOIN_BEVEL||this._bufParams.getJoinStyle()===_.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,ct.CLOCKWISE,this._distance))}},{key:\"closeRing\",value:function(){this._segList.closeRing()}},{key:\"hasNarrowConcaveAngle\",value:function(){return this._hasNarrowConcaveAngle}}],[{key:\"constructor_\",value:function(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new In,this._seg1=new In,this._offset0=new In,this._offset1=new In,this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],n=arguments[1],i=arguments[2];this._precisionModel=e,this._bufParams=n,this._li=new we,this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===_.JOIN_ROUND&&(this._closingSegLengthFactor=t.MAX_CLOSING_SEG_LEN_FACTOR),this.init(i)}}])}();Mn.OFFSET_SEGMENT_SEPARATION_FACTOR=.001,Mn.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR=.001,Mn.CURVE_VERTEX_SNAP_DISTANCE_FACTOR=1e-6,Mn.MAX_CLOSING_SEG_LEN_FACTOR=80;var An=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getOffsetCurve\",value:function(t,e){if(this._distance=e,0===e)return null;var n=e<0,i=Math.abs(e),r=this.getSegGen(i);t.length<=1?this.computePointCurve(t[0],r):this.computeOffsetCurve(t,n,r);var s=r.getCoordinates();return n&&jt.reverse(s),s}},{key:\"computeSingleSidedBufferCurve\",value:function(t,e,n){var i=this.simplifyTolerance(this._distance);if(e){n.addSegments(t,!0);var r=wn.simplify(t,-i),s=r.length-1;n.initSideSegments(r[s],r[s-1],$.LEFT),n.addFirstSegment();for(var a=s-2;a>=0;a--)n.addNextSegment(r[a],!0)}else{n.addSegments(t,!1);var o=wn.simplify(t,i),u=o.length-1;n.initSideSegments(o[0],o[1],$.LEFT),n.addFirstSegment();for(var l=2;l<=u;l++)n.addNextSegment(o[l],!0)}n.addLastSegment(),n.closeRing()}},{key:\"computeRingBufferCurve\",value:function(t,e,n){var i=this.simplifyTolerance(this._distance);e===$.RIGHT&&(i=-i);var r=wn.simplify(t,i),s=r.length-1;n.initSideSegments(r[s-1],r[0],e);for(var a=1;a<=s;a++){var o=1!==a;n.addNextSegment(r[a],o)}n.closeRing()}},{key:\"computeLineBufferCurve\",value:function(t,e){var n=this.simplifyTolerance(this._distance),i=wn.simplify(t,n),r=i.length-1;e.initSideSegments(i[0],i[1],$.LEFT);for(var s=2;s<=r;s++)e.addNextSegment(i[s],!0);e.addLastSegment(),e.addLineEndCap(i[r-1],i[r]);var a=wn.simplify(t,-n),o=a.length-1;e.initSideSegments(a[o],a[o-1],$.LEFT);for(var u=o-2;u>=0;u--)e.addNextSegment(a[u],!0);e.addLastSegment(),e.addLineEndCap(a[1],a[0]),e.closeRing()}},{key:\"computePointCurve\",value:function(t,e){switch(this._bufParams.getEndCapStyle()){case _.CAP_ROUND:e.createCircle(t);break;case _.CAP_SQUARE:e.createSquare(t)}}},{key:\"getLineCurve\",value:function(t,e){if(this._distance=e,this.isLineOffsetEmpty(e))return null;var n=Math.abs(e),i=this.getSegGen(n);if(t.length<=1)this.computePointCurve(t[0],i);else if(this._bufParams.isSingleSided()){var r=e<0;this.computeSingleSidedBufferCurve(t,r,i)}else this.computeLineBufferCurve(t,i);return i.getCoordinates()}},{key:\"getBufferParameters\",value:function(){return this._bufParams}},{key:\"simplifyTolerance\",value:function(t){return t*this._bufParams.getSimplifyFactor()}},{key:\"getRingCurve\",value:function(e,n,i){if(this._distance=i,e.length<=2)return this.getLineCurve(e,i);if(0===i)return t.copyCoordinates(e);var r=this.getSegGen(i);return this.computeRingBufferCurve(e,n,r),r.getCoordinates()}},{key:\"computeOffsetCurve\",value:function(t,e,n){var i=this.simplifyTolerance(this._distance);if(e){var r=wn.simplify(t,-i),s=r.length-1;n.initSideSegments(r[s],r[s-1],$.LEFT),n.addFirstSegment();for(var a=s-2;a>=0;a--)n.addNextSegment(r[a],!0)}else{var o=wn.simplify(t,i),u=o.length-1;n.initSideSegments(o[0],o[1],$.LEFT),n.addFirstSegment();for(var l=2;l<=u;l++)n.addNextSegment(o[l],!0)}n.addLastSegment()}},{key:\"isLineOffsetEmpty\",value:function(t){return 0===t||t<0&&!this._bufParams.isSingleSided()}},{key:\"getSegGen\",value:function(t){return new Mn(this._precisionModel,this._bufParams,t)}}],[{key:\"constructor_\",value:function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e}},{key:\"copyCoordinates\",value:function(t){for(var e=new Array(t.length).fill(null),n=0;n<e.length;n++)e[n]=new X(t[n]);return e}}])}(),Pn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"findStabbedSegments\",value:function(){if(1===arguments.length){for(var t=arguments[0],e=new yt,n=this._subgraphs.iterator();n.hasNext();){var i=n.next(),r=i.getEnvelope();t.y<r.getMinY()||t.y>r.getMaxY()||this.findStabbedSegments(t,i.getDirectedEdges(),e)}return e}if(3===arguments.length)if(rt(arguments[2],nt)&&arguments[0]instanceof X&&arguments[1]instanceof Ke)for(var s=arguments[0],a=arguments[1],o=arguments[2],u=a.getEdge().getCoordinates(),l=0;l<u.length-1;l++){if(this._seg.p0=u[l],this._seg.p1=u[l+1],this._seg.p0.y>this._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)<s.x||this._seg.isHorizontal()||s.y<this._seg.p0.y||s.y>this._seg.p1.y||ct.index(this._seg.p0,this._seg.p1,s)===ct.RIGHT)){var h=a.getDepth($.LEFT);this._seg.p0.equals(u[l])||(h=a.getDepth($.RIGHT));var c=new Dn(this._seg,h);o.add(c)}}else if(rt(arguments[2],nt)&&arguments[0]instanceof X&&rt(arguments[1],nt))for(var f=arguments[0],g=arguments[2],v=arguments[1].iterator();v.hasNext();){var y=v.next();y.isForward()&&this.findStabbedSegments(f,y,g)}}},{key:\"getDepth\",value:function(t){var e=this.findStabbedSegments(t);return 0===e.size()?0:an.min(e)._leftDepth}}],[{key:\"constructor_\",value:function(){this._subgraphs=null,this._seg=new In;var t=arguments[0];this._subgraphs=t}}])}(),Dn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"compareTo\",value:function(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==n||0!==(n=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?n:this._upwardSeg.compareTo(e._upwardSeg)}},{key:\"compareX\",value:function(t,e){var n=t.p0.compareTo(e.p0);return 0!==n?n:t.p1.compareTo(e.p1)}},{key:\"toString\",value:function(){return this._upwardSeg.toString()}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._upwardSeg=null,this._leftDepth=null;var t=arguments[0],e=arguments[1];this._upwardSeg=new In(t),this._leftDepth=e}}])}();Pn.DepthSegment=Dn;var Fn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,null,[{key:\"constructor_\",value:function(){p.constructor_.call(this,\"Projective point not representable on the Cartesian plane.\")}}])}(p),Gn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getY\",value:function(){var t=this.y/this.w;if(A.isNaN(t)||A.isInfinite(t))throw new Fn;return t}},{key:\"getX\",value:function(){var t=this.x/this.w;if(A.isNaN(t)||A.isInfinite(t))throw new Fn;return t}},{key:\"getCoordinate\",value:function(){var t=new X;return t.x=this.getX(),t.y=this.getY(),t}}],[{key:\"constructor_\",value:function(){if(this.x=null,this.y=null,this.w=null,0===arguments.length)this.x=0,this.y=0,this.w=1;else if(1===arguments.length){var e=arguments[0];this.x=e.x,this.y=e.y,this.w=1}else if(2===arguments.length){if(\"number\"==typeof arguments[0]&&\"number\"==typeof arguments[1]){var n=arguments[0],i=arguments[1];this.x=n,this.y=i,this.w=1}else if(arguments[0]instanceof t&&arguments[1]instanceof t){var r=arguments[0],s=arguments[1];this.x=r.y*s.w-s.y*r.w,this.y=s.x*r.w-r.x*s.w,this.w=r.x*s.y-s.x*r.y}else if(arguments[0]instanceof X&&arguments[1]instanceof X){var a=arguments[0],o=arguments[1];this.x=a.y-o.y,this.y=o.x-a.x,this.w=a.x*o.y-o.x*a.y}}else if(3===arguments.length){var u=arguments[0],l=arguments[1],h=arguments[2];this.x=u,this.y=l,this.w=h}else if(4===arguments.length){var c=arguments[0],f=arguments[1],g=arguments[2],v=arguments[3],y=c.y-f.y,d=f.x-c.x,_=c.x*f.y-f.x*c.y,p=g.y-v.y,m=v.x-g.x,k=g.x*v.y-v.x*g.y;this.x=d*k-m*_,this.y=p*_-y*k,this.w=y*m-p*d}}}])}(),qn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"area\",value:function(){return t.area(this.p0,this.p1,this.p2)}},{key:\"signedArea\",value:function(){return t.signedArea(this.p0,this.p1,this.p2)}},{key:\"interpolateZ\",value:function(e){if(null===e)throw new m(\"Supplied point is null.\");return t.interpolateZ(e,this.p0,this.p1,this.p2)}},{key:\"longestSideLength\",value:function(){return t.longestSideLength(this.p0,this.p1,this.p2)}},{key:\"isAcute\",value:function(){return t.isAcute(this.p0,this.p1,this.p2)}},{key:\"circumcentre\",value:function(){return t.circumcentre(this.p0,this.p1,this.p2)}},{key:\"area3D\",value:function(){return t.area3D(this.p0,this.p1,this.p2)}},{key:\"centroid\",value:function(){return t.centroid(this.p0,this.p1,this.p2)}},{key:\"inCentre\",value:function(){return t.inCentre(this.p0,this.p1,this.p2)}}],[{key:\"constructor_\",value:function(){this.p0=null,this.p1=null,this.p2=null;var t=arguments[0],e=arguments[1],n=arguments[2];this.p0=t,this.p1=e,this.p2=n}},{key:\"area\",value:function(t,e,n){return Math.abs(((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2)}},{key:\"signedArea\",value:function(t,e,n){return((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2}},{key:\"det\",value:function(t,e,n,i){return t*i-e*n}},{key:\"interpolateZ\",value:function(t,e,n,i){var r=e.x,s=e.y,a=n.x-r,o=i.x-r,u=n.y-s,l=i.y-s,h=a*l-o*u,c=t.x-r,f=t.y-s,g=(l*c-o*f)/h,v=(-u*c+a*f)/h;return e.getZ()+g*(n.getZ()-e.getZ())+v*(i.getZ()-e.getZ())}},{key:\"longestSideLength\",value:function(t,e,n){var i=t.distance(e),r=e.distance(n),s=n.distance(t),a=i;return r>a&&(a=r),s>a&&(a=s),a}},{key:\"circumcentreDD\",value:function(t,e,n){var i=ut.valueOf(t.x).subtract(n.x),r=ut.valueOf(t.y).subtract(n.y),s=ut.valueOf(e.x).subtract(n.x),a=ut.valueOf(e.y).subtract(n.y),o=ut.determinant(i,r,s,a).multiply(2),u=i.sqr().add(r.sqr()),l=s.sqr().add(a.sqr()),h=ut.determinant(r,u,a,l),c=ut.determinant(i,u,s,l),f=ut.valueOf(n.x).subtract(h.divide(o)).doubleValue(),g=ut.valueOf(n.y).add(c.divide(o)).doubleValue();return new X(f,g)}},{key:\"isAcute\",value:function(t,e,n){return!!bn.isAcute(t,e,n)&&(!!bn.isAcute(e,n,t)&&!!bn.isAcute(n,t,e))}},{key:\"circumcentre\",value:function(e,n,i){var r=i.x,s=i.y,a=e.x-r,o=e.y-s,u=n.x-r,l=n.y-s,h=2*t.det(a,o,u,l),c=t.det(o,a*a+o*o,l,u*u+l*l),f=t.det(a,a*a+o*o,u,u*u+l*l);return new X(r-c/h,s+f/h)}},{key:\"perpendicularBisector\",value:function(t,e){var n=e.x-t.x,i=e.y-t.y,r=new Gn(t.x+n/2,t.y+i/2,1),s=new Gn(t.x-i+n/2,t.y+n+i/2,1);return new Gn(r,s)}},{key:\"angleBisector\",value:function(t,e,n){var i=e.distance(t),r=i/(i+e.distance(n)),s=n.x-t.x,a=n.y-t.y;return new X(t.x+r*s,t.y+r*a)}},{key:\"area3D\",value:function(t,e,n){var i=e.x-t.x,r=e.y-t.y,s=e.getZ()-t.getZ(),a=n.x-t.x,o=n.y-t.y,u=n.getZ()-t.getZ(),l=r*u-s*o,h=s*a-i*u,c=i*o-r*a,f=l*l+h*h+c*c,g=Math.sqrt(f)/2;return g}},{key:\"centroid\",value:function(t,e,n){var i=(t.x+e.x+n.x)/3,r=(t.y+e.y+n.y)/3;return new X(i,r)}},{key:\"inCentre\",value:function(t,e,n){var i=e.distance(n),r=t.distance(n),s=t.distance(e),a=i+r+s,o=(i*t.x+r*e.x+s*n.x)/a,u=(i*t.y+r*e.y+s*n.y)/a;return new X(o,u)}}])}(),Yn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"addRingSide\",value:function(t,e,n,i,r){if(0===e&&t.length<Xt.MINIMUM_VALID_SIZE)return null;var s=i,a=r;t.length>=Xt.MINIMUM_VALID_SIZE&&ct.isCCW(t)&&(s=r,a=i,n=$.opposite(n));var o=this._curveBuilder.getRingCurve(t,n,e);this.addCurve(o,s,a)}},{key:\"addRingBothSides\",value:function(t,e){this.addRingSide(t,e,$.LEFT,H.EXTERIOR,H.INTERIOR),this.addRingSide(t,e,$.RIGHT,H.INTERIOR,H.EXTERIOR)}},{key:\"addPoint\",value:function(t){if(this._distance<=0)return null;var e=t.getCoordinates(),n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,H.EXTERIOR,H.INTERIOR)}},{key:\"addPolygon\",value:function(t){var e=this._distance,n=$.LEFT;this._distance<0&&(e=-this._distance,n=$.RIGHT);var i=t.getExteriorRing(),r=jt.removeRepeatedPoints(i.getCoordinates());if(this._distance<0&&this.isErodedCompletely(i,this._distance))return null;if(this._distance<=0&&r.length<3)return null;this.addRingSide(r,e,n,H.EXTERIOR,H.INTERIOR);for(var s=0;s<t.getNumInteriorRing();s++){var a=t.getInteriorRingN(s),o=jt.removeRepeatedPoints(a.getCoordinates());this._distance>0&&this.isErodedCompletely(a,-this._distance)||this.addRingSide(o,e,$.opposite(n),H.INTERIOR,H.EXTERIOR)}}},{key:\"isTriangleErodedCompletely\",value:function(t,e){var n=new qn(t[0],t[1],t[2]),i=n.inCentre();return xt.pointToSegment(i,n.p0,n.p1)<Math.abs(e)}},{key:\"addLineString\",value:function(t){if(this._curveBuilder.isLineOffsetEmpty(this._distance))return null;var e=jt.removeRepeatedPoints(t.getCoordinates());if(jt.isRing(e)&&!this._curveBuilder.getBufferParameters().isSingleSided())this.addRingBothSides(e,this._distance);else{var n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,H.EXTERIOR,H.INTERIOR)}}},{key:\"addCurve\",value:function(t,e,n){if(null===t||t.length<2)return null;var i=new xn(t,new Ae(0,H.BOUNDARY,e,n));this._curveList.add(i)}},{key:\"getCurves\",value:function(){return this.add(this._inputGeom),this._curveList}},{key:\"add\",value:function(t){if(t.isEmpty())return null;if(t instanceof Dt)this.addPolygon(t);else if(t instanceof wt)this.addLineString(t);else if(t instanceof bt)this.addPoint(t);else if(t instanceof zt)this.addCollection(t);else if(t instanceof se)this.addCollection(t);else if(t instanceof te)this.addCollection(t);else{if(!(t instanceof Yt))throw new W(t.getGeometryType());this.addCollection(t)}}},{key:\"isErodedCompletely\",value:function(t,e){var n=t.getCoordinates();if(n.length<4)return e<0;if(4===n.length)return this.isTriangleErodedCompletely(n,e);var i=t.getEnvelopeInternal(),r=Math.min(i.getHeight(),i.getWidth());return e<0&&2*Math.abs(e)>r}},{key:\"addCollection\",value:function(t){for(var e=0;e<t.getNumGeometries();e++){var n=t.getGeometryN(e);this.add(n)}}}],[{key:\"constructor_\",value:function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new yt;var t=arguments[0],e=arguments[1],n=arguments[2];this._inputGeom=t,this._distance=e,this._curveBuilder=n}}])}(),zn=function(){return s((function t(){n(this,t)}),[{key:\"locate\",value:function(t){}}])}(),Xn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"next\",value:function(){if(this._atStart)return this._atStart=!1,t.isAtomic(this._parent)&&this._index++,this._parent;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return this._subcollectionIterator.next();this._subcollectionIterator=null}if(this._index>=this._max)throw new j;var e=this._parent.getGeometryN(this._index++);return e instanceof Yt?(this._subcollectionIterator=new t(e),this._subcollectionIterator.next()):e}},{key:\"remove\",value:function(){throw new W(this.getClass().getName())}},{key:\"hasNext\",value:function(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}},{key:\"interfaces_\",get:function(){return[dn]}}],[{key:\"constructor_\",value:function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;var t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()}},{key:\"isAtomic\",value:function(t){return!(t instanceof Yt)}}])}(),Bn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"locate\",value:function(e){return t.locate(e,this._geom)}},{key:\"interfaces_\",get:function(){return[zn]}}],[{key:\"constructor_\",value:function(){this._geom=null;var t=arguments[0];this._geom=t}},{key:\"locatePointInPolygon\",value:function(e,n){if(n.isEmpty())return H.EXTERIOR;var i=n.getExteriorRing(),r=t.locatePointInRing(e,i);if(r!==H.INTERIOR)return r;for(var s=0;s<n.getNumInteriorRing();s++){var a=n.getInteriorRingN(s),o=t.locatePointInRing(e,a);if(o===H.BOUNDARY)return H.BOUNDARY;if(o===H.INTERIOR)return H.EXTERIOR}return H.INTERIOR}},{key:\"locatePointInRing\",value:function(t,e){return e.getEnvelopeInternal().intersects(t)?be.locateInRing(t,e.getCoordinates()):H.EXTERIOR}},{key:\"containsPointInPolygon\",value:function(e,n){return H.EXTERIOR!==t.locatePointInPolygon(e,n)}},{key:\"locateInGeometry\",value:function(e,n){if(n instanceof Dt)return t.locatePointInPolygon(e,n);if(n instanceof Yt)for(var i=new Xn(n);i.hasNext();){var r=i.next();if(r!==n){var s=t.locateInGeometry(e,r);if(s!==H.EXTERIOR)return s}}return H.EXTERIOR}},{key:\"isContained\",value:function(e,n){return H.EXTERIOR!==t.locate(e,n)}},{key:\"locate\",value:function(e,n){return n.isEmpty()?H.EXTERIOR:n.getEnvelopeInternal().intersects(e)?t.locateInGeometry(e,n):H.EXTERIOR}}])}(),Un=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getNextCW\",value:function(t){this.getEdges();var e=this._edgeList.indexOf(t),n=e-1;return 0===e&&(n=this._edgeList.size()-1),this._edgeList.get(n)}},{key:\"propagateSideLabels\",value:function(t){for(var e=H.NONE,n=this.iterator();n.hasNext();){var i=n.next().getLabel();i.isArea(t)&&i.getLocation(t,$.LEFT)!==H.NONE&&(e=i.getLocation(t,$.LEFT))}if(e===H.NONE)return null;for(var r=e,s=this.iterator();s.hasNext();){var a=s.next(),o=a.getLabel();if(o.getLocation(t,$.ON)===H.NONE&&o.setLocation(t,$.ON,r),o.isArea(t)){var u=o.getLocation(t,$.LEFT),l=o.getLocation(t,$.RIGHT);if(l!==H.NONE){if(l!==r)throw new gt(\"side location conflict\",a.getCoordinate());u===H.NONE&&G.shouldNeverReachHere(\"found single null side (at \"+a.getCoordinate()+\")\"),r=u}else G.isTrue(o.getLocation(t,$.LEFT)===H.NONE,\"found single null side\"),o.setLocation(t,$.RIGHT,r),o.setLocation(t,$.LEFT,r)}}}},{key:\"getCoordinate\",value:function(){var t=this.iterator();return t.hasNext()?t.next().getCoordinate():null}},{key:\"print\",value:function(t){mt.out.println(\"EdgeEndStar: \"+this.getCoordinate());for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"isAreaLabelsConsistent\",value:function(t){return this.computeEdgeEndLabels(t.getBoundaryNodeRule()),this.checkAreaLabelsConsistent(0)}},{key:\"checkAreaLabelsConsistent\",value:function(t){var e=this.getEdges();if(e.size()<=0)return!0;var n=e.size()-1,i=e.get(n).getLabel().getLocation(t,$.LEFT);G.isTrue(i!==H.NONE,\"Found unlabelled area edge\");for(var r=i,s=this.iterator();s.hasNext();){var a=s.next().getLabel();G.isTrue(a.isArea(t),\"Found non-area edge\");var o=a.getLocation(t,$.LEFT),u=a.getLocation(t,$.RIGHT);if(o===u)return!1;if(u!==r)return!1;r=o}return!0}},{key:\"findIndex\",value:function(t){this.iterator();for(var e=0;e<this._edgeList.size();e++){if(this._edgeList.get(e)===t)return e}return-1}},{key:\"iterator\",value:function(){return this.getEdges().iterator()}},{key:\"getEdges\",value:function(){return null===this._edgeList&&(this._edgeList=new yt(this._edgeMap.values())),this._edgeList}},{key:\"getLocation\",value:function(t,e,n){return this._ptInAreaLocation[t]===H.NONE&&(this._ptInAreaLocation[t]=Bn.locate(e,n[t].getGeometry())),this._ptInAreaLocation[t]}},{key:\"toString\",value:function(){var t=new st;t.append(\"EdgeEndStar: \"+this.getCoordinate()),t.append(\"\\n\");for(var e=this.iterator();e.hasNext();){var n=e.next();t.append(n),t.append(\"\\n\")}return t.toString()}},{key:\"computeEdgeEndLabels\",value:function(t){for(var e=this.iterator();e.hasNext();){e.next().computeLabel(t)}}},{key:\"computeLabelling\",value:function(t){this.computeEdgeEndLabels(t[0].getBoundaryNodeRule()),this.propagateSideLabels(0),this.propagateSideLabels(1);for(var e=[!1,!1],n=this.iterator();n.hasNext();)for(var i=n.next().getLabel(),r=0;r<2;r++)i.isLine(r)&&i.getLocation(r)===H.BOUNDARY&&(e[r]=!0);for(var s=this.iterator();s.hasNext();)for(var a=s.next(),o=a.getLabel(),u=0;u<2;u++)if(o.isAnyNull(u)){var l=H.NONE;if(e[u])l=H.EXTERIOR;else{var h=a.getCoordinate();l=this.getLocation(u,h,t)}o.setAllLocationsIfNull(u,l)}}},{key:\"getDegree\",value:function(){return this._edgeMap.size()}},{key:\"insertEdgeEnd\",value:function(t,e){this._edgeMap.put(t,e),this._edgeList=null}}],[{key:\"constructor_\",value:function(){this._edgeMap=new He,this._edgeList=null,this._ptInAreaLocation=[H.NONE,H.NONE]}}])}(),Vn=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"linkResultDirectedEdges\",value:function(){this.getResultAreaEdges();for(var t=null,e=null,n=this._SCANNING_FOR_INCOMING,i=0;i<this._resultAreaEdgeList.size();i++){var r=this._resultAreaEdgeList.get(i),s=r.getSym();if(r.getLabel().isArea())switch(null===t&&r.isInResult()&&(t=r),n){case this._SCANNING_FOR_INCOMING:if(!s.isInResult())continue;e=s,n=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(!r.isInResult())continue;e.setNext(r),n=this._SCANNING_FOR_INCOMING}}if(n===this._LINKING_TO_OUTGOING){if(null===t)throw new gt(\"no outgoing dirEdge found\",this.getCoordinate());G.isTrue(t.isInResult(),\"unable to link last incoming dirEdge\"),e.setNext(t)}}},{key:\"insert\",value:function(t){var e=t;this.insertEdgeEnd(e,e)}},{key:\"getRightmostEdge\",value:function(){var t=this.getEdges(),e=t.size();if(e<1)return null;var n=t.get(0);if(1===e)return n;var i=t.get(e-1),r=n.getQuadrant(),s=i.getQuadrant();return je.isNorthern(r)&&je.isNorthern(s)?n:je.isNorthern(r)||je.isNorthern(s)?0!==n.getDy()?n:0!==i.getDy()?i:(G.shouldNeverReachHere(\"found two horizontal edges incident on node\"),null):i}},{key:\"print\",value:function(t){mt.out.println(\"DirectedEdgeStar: \"+this.getCoordinate());for(var e=this.iterator();e.hasNext();){var n=e.next();t.print(\"out \"),n.print(t),t.println(),t.print(\"in \"),n.getSym().print(t),t.println()}}},{key:\"getResultAreaEdges\",value:function(){if(null!==this._resultAreaEdgeList)return this._resultAreaEdgeList;this._resultAreaEdgeList=new yt;for(var t=this.iterator();t.hasNext();){var e=t.next();(e.isInResult()||e.getSym().isInResult())&&this._resultAreaEdgeList.add(e)}return this._resultAreaEdgeList}},{key:\"updateLabelling\",value:function(t){for(var e=this.iterator();e.hasNext();){var n=e.next().getLabel();n.setAllLocationsIfNull(0,t.getLocation(0)),n.setAllLocationsIfNull(1,t.getLocation(1))}}},{key:\"linkAllDirectedEdges\",value:function(){this.getEdges();for(var t=null,e=null,n=this._edgeList.size()-1;n>=0;n--){var i=this._edgeList.get(n),r=i.getSym();null===e&&(e=r),null!==t&&r.setNext(t),t=i}e.setNext(t)}},{key:\"computeDepths\",value:function(){if(1===arguments.length){var t=arguments[0],e=this.findIndex(t),n=t.getDepth($.LEFT),i=t.getDepth($.RIGHT),r=this.computeDepths(e+1,this._edgeList.size(),n);if(this.computeDepths(0,e,r)!==i)throw new gt(\"depth mismatch at \"+t.getCoordinate())}else if(3===arguments.length){for(var s=arguments[1],a=arguments[2],o=arguments[0];o<s;o++){var u=this._edgeList.get(o);u.setEdgeDepths($.RIGHT,a),a=u.getDepth($.LEFT)}return a}}},{key:\"mergeSymLabels\",value:function(){for(var t=this.iterator();t.hasNext();){var e=t.next();e.getLabel().merge(e.getSym().getLabel())}}},{key:\"linkMinimalDirectedEdges\",value:function(t){for(var e=null,n=null,i=this._SCANNING_FOR_INCOMING,r=this._resultAreaEdgeList.size()-1;r>=0;r--){var s=this._resultAreaEdgeList.get(r),a=s.getSym();switch(null===e&&s.getEdgeRing()===t&&(e=s),i){case this._SCANNING_FOR_INCOMING:if(a.getEdgeRing()!==t)continue;n=a,i=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(s.getEdgeRing()!==t)continue;n.setNextMin(s),i=this._SCANNING_FOR_INCOMING}}i===this._LINKING_TO_OUTGOING&&(G.isTrue(null!==e,\"found null for first outgoing dirEdge\"),G.isTrue(e.getEdgeRing()===t,\"unable to link last incoming dirEdge\"),n.setNextMin(e))}},{key:\"getOutgoingDegree\",value:function(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();){e.next().isInResult()&&t++}return t}if(1===arguments.length){for(var n=arguments[0],i=0,r=this.iterator();r.hasNext();){r.next().getEdgeRing()===n&&i++}return i}}},{key:\"getLabel\",value:function(){return this._label}},{key:\"findCoveredLineEdges\",value:function(){for(var t=H.NONE,e=this.iterator();e.hasNext();){var n=e.next(),i=n.getSym();if(!n.isLineEdge()){if(n.isInResult()){t=H.INTERIOR;break}if(i.isInResult()){t=H.EXTERIOR;break}}}if(t===H.NONE)return null;for(var r=t,s=this.iterator();s.hasNext();){var a=s.next(),o=a.getSym();a.isLineEdge()?a.getEdge().setCovered(r===H.INTERIOR):(a.isInResult()&&(r=H.EXTERIOR),o.isInResult()&&(r=H.INTERIOR))}}},{key:\"computeLabelling\",value:function(t){f(i,\"computeLabelling\",this,1).call(this,t),this._label=new Ae(H.NONE);for(var e=this.iterator();e.hasNext();)for(var n=e.next().getEdge().getLabel(),r=0;r<2;r++){var s=n.getLocation(r);s!==H.INTERIOR&&s!==H.BOUNDARY||this._label.setLocation(r,H.INTERIOR)}}}],[{key:\"constructor_\",value:function(){this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2}}])}(Un),Hn=function(t){function i(){return n(this,i),e(this,i)}return l(i,t),s(i,[{key:\"createNode\",value:function(t){return new qe(t,new Vn)}}])}(Je),Zn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"compareTo\",value:function(e){var n=e;return t.compareOriented(this._pts,this._orientation,n._pts,n._orientation)}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=t.orientation(e)}},{key:\"orientation\",value:function(t){return 1===jt.increasingDirection(t)}},{key:\"compareOriented\",value:function(t,e,n,i){for(var r=e?1:-1,s=i?1:-1,a=e?t.length:-1,o=i?n.length:-1,u=e?0:t.length-1,l=i?0:n.length-1;;){var h=t[u].compareTo(n[l]);if(0!==h)return h;var c=(u+=r)===a,f=(l+=s)===o;if(c&&!f)return-1;if(!c&&f)return 1;if(c&&f)return 0}}}])}(),jn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"print\",value:function(t){t.print(\"MULTILINESTRING ( \");for(var e=0;e<this._edges.size();e++){var n=this._edges.get(e);e>0&&t.print(\",\"),t.print(\"(\");for(var i=n.getCoordinates(),r=0;r<i.length;r++)r>0&&t.print(\",\"),t.print(i[r].x+\" \"+i[r].y);t.println(\")\")}t.print(\") \")}},{key:\"addAll\",value:function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())}},{key:\"findEdgeIndex\",value:function(t){for(var e=0;e<this._edges.size();e++)if(this._edges.get(e).equals(t))return e;return-1}},{key:\"iterator\",value:function(){return this._edges.iterator()}},{key:\"getEdges\",value:function(){return this._edges}},{key:\"get\",value:function(t){return this._edges.get(t)}},{key:\"findEqualEdge\",value:function(t){var e=new Zn(t.getCoordinates());return this._ocaMap.get(e)}},{key:\"add\",value:function(t){this._edges.add(t);var e=new Zn(t.getCoordinates());this._ocaMap.put(e,t)}}],[{key:\"constructor_\",value:function(){this._edges=new yt,this._ocaMap=new He}}])}(),Wn=function(){return s((function t(){n(this,t)}),[{key:\"processIntersections\",value:function(t,e,n,i){}},{key:\"isDone\",value:function(){}}])}(),Kn=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isTrivialIntersection\",value:function(e,n,i,r){if(e===i&&1===this._li.getIntersectionNum()){if(t.isAdjacentSegments(n,r))return!0;if(e.isClosed()){var s=e.size()-1;if(0===n&&r===s||0===r&&n===s)return!0}}return!1}},{key:\"getProperIntersectionPoint\",value:function(){return this._properIntersectionPoint}},{key:\"hasProperInteriorIntersection\",value:function(){return this._hasProperInterior}},{key:\"getLineIntersector\",value:function(){return this._li}},{key:\"hasProperIntersection\",value:function(){return this._hasProper}},{key:\"processIntersections\",value:function(t,e,n,i){if(t===n&&e===i)return null;this.numTests++;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],a=n.getCoordinates()[i],o=n.getCoordinates()[i+1];this._li.computeIntersection(r,s,a,o),this._li.hasIntersection()&&(this.numIntersections++,this._li.isInteriorIntersection()&&(this.numInteriorIntersections++,this._hasInterior=!0),this.isTrivialIntersection(t,e,n,i)||(this._hasIntersection=!0,t.addIntersections(this._li,e,0),n.addIntersections(this._li,i,1),this._li.isProper()&&(this.numProperIntersections++,this._hasProper=!0,this._hasProperInterior=!0)))}},{key:\"hasIntersection\",value:function(){return this._hasIntersection}},{key:\"isDone\",value:function(){return!1}},{key:\"hasInteriorIntersection\",value:function(){return this._hasInterior}},{key:\"interfaces_\",get:function(){return[Wn]}}],[{key:\"constructor_\",value:function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._hasInterior=!1,this._properIntersectionPoint=null,this._li=null,this._isSelfIntersection=null,this.numIntersections=0,this.numInteriorIntersections=0,this.numProperIntersections=0,this.numTests=0;var t=arguments[0];this._li=t}},{key:\"isAdjacentSegments\",value:function(t,e){return 1===Math.abs(t-e)}}])}(),Jn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getSegmentIndex\",value:function(){return this.segmentIndex}},{key:\"getCoordinate\",value:function(){return this.coord}},{key:\"print\",value:function(t){t.print(this.coord),t.print(\" seg # = \"+this.segmentIndex),t.println(\" dist = \"+this.dist)}},{key:\"compareTo\",value:function(t){var e=t;return this.compare(e.segmentIndex,e.dist)}},{key:\"isEndPoint\",value:function(t){return 0===this.segmentIndex&&0===this.dist||this.segmentIndex===t}},{key:\"toString\",value:function(){return this.coord+\" seg # = \"+this.segmentIndex+\" dist = \"+this.dist}},{key:\"getDistance\",value:function(){return this.dist}},{key:\"compare\",value:function(t,e){return this.segmentIndex<t?-1:this.segmentIndex>t?1:this.dist<e?-1:this.dist>e?1:0}},{key:\"interfaces_\",get:function(){return[x]}}],[{key:\"constructor_\",value:function(){this.coord=null,this.segmentIndex=null,this.dist=null;var t=arguments[0],e=arguments[1],n=arguments[2];this.coord=new X(t),this.segmentIndex=e,this.dist=n}}])}(),Qn=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"print\",value:function(t){t.println(\"Intersections:\");for(var e=this.iterator();e.hasNext();){e.next().print(t)}}},{key:\"iterator\",value:function(){return this._nodeMap.values().iterator()}},{key:\"addSplitEdges\",value:function(t){this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var i=e.next(),r=this.createSplitEdge(n,i);t.add(r),n=i}}},{key:\"addEndpoints\",value:function(){var t=this.edge.pts.length-1;this.add(this.edge.pts[0],0,0),this.add(this.edge.pts[t],t,0)}},{key:\"createSplitEdge\",value:function(t,e){var n=e.segmentIndex-t.segmentIndex+2,i=this.edge.pts[e.segmentIndex],r=e.dist>0||!e.coord.equals2D(i);r||n--;var s=new Array(n).fill(null),a=0;s[a++]=new X(t.coord);for(var o=t.segmentIndex+1;o<=e.segmentIndex;o++)s[a++]=this.edge.pts[o];return r&&(s[a]=e.coord),new ri(s,new Ae(this.edge._label))}},{key:\"add\",value:function(t,e,n){var i=new Jn(t,e,n),r=this._nodeMap.get(i);return null!==r?r:(this._nodeMap.put(i,i),i)}},{key:\"isIntersection\",value:function(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1}}],[{key:\"constructor_\",value:function(){this._nodeMap=new He,this.edge=null;var t=arguments[0];this.edge=t}}])}(),$n=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"isIntersects\",value:function(){return!this.isDisjoint()}},{key:\"isCovers\",value:function(){return(t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])||t.isTrue(this._matrix[H.INTERIOR][H.BOUNDARY])||t.isTrue(this._matrix[H.BOUNDARY][H.INTERIOR])||t.isTrue(this._matrix[H.BOUNDARY][H.BOUNDARY]))&&this._matrix[H.EXTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.BOUNDARY]===Lt.FALSE}},{key:\"isCoveredBy\",value:function(){return(t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])||t.isTrue(this._matrix[H.INTERIOR][H.BOUNDARY])||t.isTrue(this._matrix[H.BOUNDARY][H.INTERIOR])||t.isTrue(this._matrix[H.BOUNDARY][H.BOUNDARY]))&&this._matrix[H.INTERIOR][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.EXTERIOR]===Lt.FALSE}},{key:\"set\",value:function(){if(1===arguments.length)for(var t=arguments[0],e=0;e<t.length;e++){var n=Math.trunc(e/3),i=e%3;this._matrix[n][i]=Lt.toDimensionValue(t.charAt(e))}else if(3===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2];this._matrix[r][s]=a}}},{key:\"isContains\",value:function(){return t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&this._matrix[H.EXTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.BOUNDARY]===Lt.FALSE}},{key:\"setAtLeast\",value:function(){if(1===arguments.length)for(var t=arguments[0],e=0;e<t.length;e++){var n=Math.trunc(e/3),i=e%3;this.setAtLeast(n,i,Lt.toDimensionValue(t.charAt(e)))}else if(3===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2];this._matrix[r][s]<a&&(this._matrix[r][s]=a)}}},{key:\"setAtLeastIfValid\",value:function(t,e,n){t>=0&&e>=0&&this.setAtLeast(t,e,n)}},{key:\"isWithin\",value:function(){return t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&this._matrix[H.INTERIOR][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.EXTERIOR]===Lt.FALSE}},{key:\"isTouches\",value:function(e,n){return e>n?this.isTouches(n,e):(e===Lt.A&&n===Lt.A||e===Lt.L&&n===Lt.L||e===Lt.L&&n===Lt.A||e===Lt.P&&n===Lt.A||e===Lt.P&&n===Lt.L)&&(this._matrix[H.INTERIOR][H.INTERIOR]===Lt.FALSE&&(t.isTrue(this._matrix[H.INTERIOR][H.BOUNDARY])||t.isTrue(this._matrix[H.BOUNDARY][H.INTERIOR])||t.isTrue(this._matrix[H.BOUNDARY][H.BOUNDARY])))}},{key:\"isOverlaps\",value:function(e,n){return e===Lt.P&&n===Lt.P||e===Lt.A&&n===Lt.A?t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&t.isTrue(this._matrix[H.INTERIOR][H.EXTERIOR])&&t.isTrue(this._matrix[H.EXTERIOR][H.INTERIOR]):e===Lt.L&&n===Lt.L&&(1===this._matrix[H.INTERIOR][H.INTERIOR]&&t.isTrue(this._matrix[H.INTERIOR][H.EXTERIOR])&&t.isTrue(this._matrix[H.EXTERIOR][H.INTERIOR]))}},{key:\"isEquals\",value:function(e,n){return e===n&&(t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&this._matrix[H.INTERIOR][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.EXTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.EXTERIOR][H.BOUNDARY]===Lt.FALSE)}},{key:\"toString\",value:function(){for(var t=new Jt(\"123456789\"),e=0;e<3;e++)for(var n=0;n<3;n++)t.setCharAt(3*e+n,Lt.toDimensionSymbol(this._matrix[e][n]));return t.toString()}},{key:\"setAll\",value:function(t){for(var e=0;e<3;e++)for(var n=0;n<3;n++)this._matrix[e][n]=t}},{key:\"get\",value:function(t,e){return this._matrix[t][e]}},{key:\"transpose\",value:function(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}},{key:\"matches\",value:function(e){if(9!==e.length)throw new m(\"Should be length 9: \"+e);for(var n=0;n<3;n++)for(var i=0;i<3;i++)if(!t.matches(this._matrix[n][i],e.charAt(3*n+i)))return!1;return!0}},{key:\"add\",value:function(t){for(var e=0;e<3;e++)for(var n=0;n<3;n++)this.setAtLeast(e,n,t.get(e,n))}},{key:\"isDisjoint\",value:function(){return this._matrix[H.INTERIOR][H.INTERIOR]===Lt.FALSE&&this._matrix[H.INTERIOR][H.BOUNDARY]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.INTERIOR]===Lt.FALSE&&this._matrix[H.BOUNDARY][H.BOUNDARY]===Lt.FALSE}},{key:\"isCrosses\",value:function(e,n){return e===Lt.P&&n===Lt.L||e===Lt.P&&n===Lt.A||e===Lt.L&&n===Lt.A?t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&t.isTrue(this._matrix[H.INTERIOR][H.EXTERIOR]):e===Lt.L&&n===Lt.P||e===Lt.A&&n===Lt.P||e===Lt.A&&n===Lt.L?t.isTrue(this._matrix[H.INTERIOR][H.INTERIOR])&&t.isTrue(this._matrix[H.EXTERIOR][H.INTERIOR]):e===Lt.L&&n===Lt.L&&0===this._matrix[H.INTERIOR][H.INTERIOR]}},{key:\"interfaces_\",get:function(){return[I]}}],[{key:\"constructor_\",value:function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map((function(){return Array(3)})),this.setAll(Lt.FALSE);else if(1===arguments.length)if(\"string\"==typeof arguments[0]){var e=arguments[0];t.constructor_.call(this),this.set(e)}else if(arguments[0]instanceof t){var n=arguments[0];t.constructor_.call(this),this._matrix[H.INTERIOR][H.INTERIOR]=n._matrix[H.INTERIOR][H.INTERIOR],this._matrix[H.INTERIOR][H.BOUNDARY]=n._matrix[H.INTERIOR][H.BOUNDARY],this._matrix[H.INTERIOR][H.EXTERIOR]=n._matrix[H.INTERIOR][H.EXTERIOR],this._matrix[H.BOUNDARY][H.INTERIOR]=n._matrix[H.BOUNDARY][H.INTERIOR],this._matrix[H.BOUNDARY][H.BOUNDARY]=n._matrix[H.BOUNDARY][H.BOUNDARY],this._matrix[H.BOUNDARY][H.EXTERIOR]=n._matrix[H.BOUNDARY][H.EXTERIOR],this._matrix[H.EXTERIOR][H.INTERIOR]=n._matrix[H.EXTERIOR][H.INTERIOR],this._matrix[H.EXTERIOR][H.BOUNDARY]=n._matrix[H.EXTERIOR][H.BOUNDARY],this._matrix[H.EXTERIOR][H.EXTERIOR]=n._matrix[H.EXTERIOR][H.EXTERIOR]}}},{key:\"matches\",value:function(){if(Number.isInteger(arguments[0])&&\"string\"==typeof arguments[1]){var e=arguments[0],n=arguments[1];return n===Lt.SYM_DONTCARE||(n===Lt.SYM_TRUE&&(e>=0||e===Lt.TRUE)||(n===Lt.SYM_FALSE&&e===Lt.FALSE||(n===Lt.SYM_P&&e===Lt.P||(n===Lt.SYM_L&&e===Lt.L||n===Lt.SYM_A&&e===Lt.A))))}if(\"string\"==typeof arguments[0]&&\"string\"==typeof arguments[1]){var i=arguments[1];return new t(arguments[0]).matches(i)}}},{key:\"isTrue\",value:function(t){return t>=0||t===Lt.TRUE}}])}(),ti=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"size\",value:function(){return this._size}},{key:\"addAll\",value:function(t){return null===t||0===t.length?null:(this.ensureCapacity(this._size+t.length),mt.arraycopy(t,0,this._data,this._size,t.length),void(this._size+=t.length))}},{key:\"ensureCapacity\",value:function(t){if(t<=this._data.length)return null;var e=Math.max(t,2*this._data.length);this._data=At.copyOf(this._data,e)}},{key:\"toArray\",value:function(){var t=new Array(this._size).fill(null);return mt.arraycopy(this._data,0,t,0,this._size),t}},{key:\"add\",value:function(t){this.ensureCapacity(this._size+1),this._data[this._size]=t,++this._size}}],[{key:\"constructor_\",value:function(){if(this._data=null,this._size=0,0===arguments.length)t.constructor_.call(this,10);else if(1===arguments.length){var e=arguments[0];this._data=new Array(e).fill(null)}}}])}(),ei=function(){function t(){n(this,t)}return s(t,[{key:\"getChainStartIndices\",value:function(t){var e=0,n=new ti(Math.trunc(t.length/2));n.add(e);do{var i=this.findChainEnd(t,e);n.add(i),e=i}while(e<t.length-1);return n.toArray()}},{key:\"findChainEnd\",value:function(t,e){for(var n=je.quadrant(t[e],t[e+1]),i=e+1;i<t.length;){if(je.quadrant(t[i-1],t[i])!==n)break;i++}return i-1}},{key:\"OLDgetChainStartIndices\",value:function(e){var n=0,i=new yt;i.add(n);do{var r=this.findChainEnd(e,n);i.add(r),n=r}while(n<e.length-1);return t.toIntArray(i)}}],[{key:\"toIntArray\",value:function(t){for(var e=new Array(t.size()).fill(null),n=0;n<e.length;n++)e[n]=t.get(n).intValue();return e}}])}(),ni=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"getCoordinates\",value:function(){return this.pts}},{key:\"getMaxX\",value:function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return e>n?e:n}},{key:\"getMinX\",value:function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return e<n?e:n}},{key:\"computeIntersectsForChain\",value:function(){if(4===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],i=arguments[3];this.computeIntersectsForChain(this.startIndex[t],this.startIndex[t+1],e,e.startIndex[n],e.startIndex[n+1],i)}else if(6===arguments.length){var r=arguments[0],s=arguments[1],a=arguments[2],o=arguments[3],u=arguments[4],l=arguments[5];if(s-r==1&&u-o==1)return l.addIntersections(this.e,r,a.e,o),null;if(!this.overlaps(r,s,a,o,u))return null;var h=Math.trunc((r+s)/2),c=Math.trunc((o+u)/2);r<h&&(o<c&&this.computeIntersectsForChain(r,h,a,o,c,l),c<u&&this.computeIntersectsForChain(r,h,a,c,u,l)),h<s&&(o<c&&this.computeIntersectsForChain(h,s,a,o,c,l),c<u&&this.computeIntersectsForChain(h,s,a,c,u,l))}}},{key:\"overlaps\",value:function(t,e,n,i,r){return U.intersects(this.pts[t],this.pts[e],n.pts[i],n.pts[r])}},{key:\"getStartIndexes\",value:function(){return this.startIndex}},{key:\"computeIntersects\",value:function(t,e){for(var n=0;n<this.startIndex.length-1;n++)for(var i=0;i<t.startIndex.length-1;i++)this.computeIntersectsForChain(n,t,i,e)}}],[{key:\"constructor_\",value:function(){this.e=null,this.pts=null,this.startIndex=null;var t=arguments[0];this.e=t,this.pts=t.getCoordinates();var e=new ei;this.startIndex=e.getChainStartIndices(this.pts)}}])}(),ii=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"getDepth\",value:function(t,e){return this._depth[t][e]}},{key:\"setDepth\",value:function(t,e,n){this._depth[t][e]=n}},{key:\"isNull\",value:function(){if(0===arguments.length){for(var e=0;e<2;e++)for(var n=0;n<3;n++)if(this._depth[e][n]!==t.NULL_VALUE)return!1;return!0}if(1===arguments.length){var i=arguments[0];return this._depth[i][1]===t.NULL_VALUE}if(2===arguments.length){var r=arguments[0],s=arguments[1];return this._depth[r][s]===t.NULL_VALUE}}},{key:\"normalize\",value:function(){for(var t=0;t<2;t++)if(!this.isNull(t)){var e=this._depth[t][1];this._depth[t][2]<e&&(e=this._depth[t][2]),e<0&&(e=0);for(var n=1;n<3;n++){var i=0;this._depth[t][n]>e&&(i=1),this._depth[t][n]=i}}}},{key:\"getDelta\",value:function(t){return this._depth[t][$.RIGHT]-this._depth[t][$.LEFT]}},{key:\"getLocation\",value:function(t,e){return this._depth[t][e]<=0?H.EXTERIOR:H.INTERIOR}},{key:\"toString\",value:function(){return\"A: \"+this._depth[0][1]+\",\"+this._depth[0][2]+\" B: \"+this._depth[1][1]+\",\"+this._depth[1][2]}},{key:\"add\",value:function(){if(1===arguments.length)for(var e=arguments[0],n=0;n<2;n++)for(var i=1;i<3;i++){var r=e.getLocation(n,i);r!==H.EXTERIOR&&r!==H.INTERIOR||(this.isNull(n,i)?this._depth[n][i]=t.depthAtLocation(r):this._depth[n][i]+=t.depthAtLocation(r))}else if(3===arguments.length){var s=arguments[0],a=arguments[1];arguments[2]===H.INTERIOR&&this._depth[s][a]++}}}],[{key:\"constructor_\",value:function(){this._depth=Array(2).fill().map((function(){return Array(3)}));for(var e=0;e<2;e++)for(var n=0;n<3;n++)this._depth[e][n]=t.NULL_VALUE}},{key:\"depthAtLocation\",value:function(e){return e===H.EXTERIOR?0:e===H.INTERIOR?1:t.NULL_VALUE}}])}();ii.NULL_VALUE=-1;var ri=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"getDepth\",value:function(){return this._depth}},{key:\"getCollapsedEdge\",value:function(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new i(t,Ae.toLineLabel(this._label))}},{key:\"isIsolated\",value:function(){return this._isIsolated}},{key:\"getCoordinates\",value:function(){return this.pts}},{key:\"setIsolated\",value:function(t){this._isIsolated=t}},{key:\"setName\",value:function(t){this._name=t}},{key:\"equals\",value:function(t){if(!(t instanceof i))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var n=!0,r=!0,s=this.pts.length,a=0;a<this.pts.length;a++)if(this.pts[a].equals2D(e.pts[a])||(n=!1),this.pts[a].equals2D(e.pts[--s])||(r=!1),!n&&!r)return!1;return!0}},{key:\"getCoordinate\",value:function(){if(0===arguments.length)return this.pts.length>0?this.pts[0]:null;if(1===arguments.length){var t=arguments[0];return this.pts[t]}}},{key:\"print\",value:function(t){t.print(\"edge \"+this._name+\": \"),t.print(\"LINESTRING (\");for(var e=0;e<this.pts.length;e++)e>0&&t.print(\",\"),t.print(this.pts[e].x+\" \"+this.pts[e].y);t.print(\") \"+this._label+\" \"+this._depthDelta)}},{key:\"computeIM\",value:function(t){i.updateIM(this._label,t)}},{key:\"isCollapsed\",value:function(){return!!this._label.isArea()&&(3===this.pts.length&&!!this.pts[0].equals(this.pts[2]))}},{key:\"isClosed\",value:function(){return this.pts[0].equals(this.pts[this.pts.length-1])}},{key:\"getMaximumSegmentIndex\",value:function(){return this.pts.length-1}},{key:\"getDepthDelta\",value:function(){return this._depthDelta}},{key:\"getNumPoints\",value:function(){return this.pts.length}},{key:\"printReverse\",value:function(t){t.print(\"edge \"+this._name+\": \");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+\" \");t.println(\"\")}},{key:\"getMonotoneChainEdge\",value:function(){return null===this._mce&&(this._mce=new ni(this)),this._mce}},{key:\"getEnvelope\",value:function(){if(null===this._env){this._env=new U;for(var t=0;t<this.pts.length;t++)this._env.expandToInclude(this.pts[t])}return this._env}},{key:\"addIntersection\",value:function(t,e,n,i){var r=new X(t.getIntersection(i)),s=e,a=t.getEdgeDistance(n,i),o=s+1;if(o<this.pts.length){var u=this.pts[o];r.equals2D(u)&&(s=o,a=0)}this.eiList.add(r,s,a)}},{key:\"toString\",value:function(){var t=new Jt;t.append(\"edge \"+this._name+\": \"),t.append(\"LINESTRING (\");for(var e=0;e<this.pts.length;e++)e>0&&t.append(\",\"),t.append(this.pts[e].x+\" \"+this.pts[e].y);return t.append(\") \"+this._label+\" \"+this._depthDelta),t.toString()}},{key:\"isPointwiseEqual\",value:function(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;e<this.pts.length;e++)if(!this.pts[e].equals2D(t.pts[e]))return!1;return!0}},{key:\"setDepthDelta\",value:function(t){this._depthDelta=t}},{key:\"getEdgeIntersectionList\",value:function(){return this.eiList}},{key:\"addIntersections\",value:function(t,e,n){for(var i=0;i<t.getIntersectionNum();i++)this.addIntersection(t,e,n,i)}}],[{key:\"constructor_\",value:function(){if(this.pts=null,this._env=null,this.eiList=new Qn(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new ii,this._depthDelta=0,1===arguments.length){var t=arguments[0];i.constructor_.call(this,t,null)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this.pts=e,this._label=n}}},{key:\"updateIM\",value:function(){if(!(2===arguments.length&&arguments[1]instanceof $n&&arguments[0]instanceof Ae))return f(i,\"updateIM\",this).apply(this,arguments);var t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,$.ON),t.getLocation(1,$.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,$.LEFT),t.getLocation(1,$.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,$.RIGHT),t.getLocation(1,$.RIGHT),2))}}])}(Ge),si=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"setWorkingPrecisionModel\",value:function(t){this._workingPrecisionModel=t}},{key:\"insertUniqueEdge\",value:function(e){var n=this._edgeList.findEqualEdge(e);if(null!==n){var i=n.getLabel(),r=e.getLabel();n.isPointwiseEqual(e)||(r=new Ae(e.getLabel())).flip(),i.merge(r);var s=t.depthDelta(r),a=n.getDepthDelta()+s;n.setDepthDelta(a)}else this._edgeList.add(e),e.setDepthDelta(t.depthDelta(e.getLabel()))}},{key:\"buildSubgraphs\",value:function(t,e){for(var n=new yt,i=t.iterator();i.hasNext();){var r=i.next(),s=r.getRightmostCoordinate(),a=new Pn(n).getDepth(s);r.computeDepth(a),r.findResultEdges(),n.add(r),e.add(r.getDirectedEdges(),r.getNodes())}}},{key:\"createSubgraphs\",value:function(t){for(var e=new yt,n=t.getNodes().iterator();n.hasNext();){var i=n.next();if(!i.isVisited()){var r=new _t;r.create(i),e.add(r)}}return an.sort(e,an.reverseOrder()),e}},{key:\"createEmptyResultGeometry\",value:function(){return this._geomFact.createPolygon()}},{key:\"getNoder\",value:function(t){if(null!==this._workingNoder)return this._workingNoder;var e=new Cn,n=new we;return n.setPrecisionModel(t),e.setSegmentIntersector(new Kn(n)),e}},{key:\"buffer\",value:function(t,e){var n=this._workingPrecisionModel;null===n&&(n=t.getPrecisionModel()),this._geomFact=t.getFactory();var i=new An(n,this._bufParams),r=new Yn(t,e,i).getCurves();if(r.size()<=0)return this.createEmptyResultGeometry();this.computeNodedEdges(r,n),this._graph=new Qe(new Hn),this._graph.addEdges(this._edgeList.getEdges());var s=this.createSubgraphs(this._graph),a=new $e(this._geomFact);this.buildSubgraphs(s,a);var o=a.getPolygons();return o.size()<=0?this.createEmptyResultGeometry():this._geomFact.buildGeometry(o)}},{key:\"computeNodedEdges\",value:function(t,e){var n=this.getNoder(e);n.computeNodes(t);for(var i=n.getNodedSubstrings().iterator();i.hasNext();){var r=i.next(),s=r.getCoordinates();if(2!==s.length||!s[0].equals2D(s[1])){var a=r.getData(),o=new ri(r.getCoordinates(),new Ae(a));this.insertUniqueEdge(o)}}}},{key:\"setNoder\",value:function(t){this._workingNoder=t}}],[{key:\"constructor_\",value:function(){this._bufParams=null,this._workingPrecisionModel=null,this._workingNoder=null,this._geomFact=null,this._graph=null,this._edgeList=new jn;var t=arguments[0];this._bufParams=t}},{key:\"depthDelta\",value:function(t){var e=t.getLocation(0,$.LEFT),n=t.getLocation(0,$.RIGHT);return e===H.INTERIOR&&n===H.EXTERIOR?1:e===H.EXTERIOR&&n===H.INTERIOR?-1:0}},{key:\"convertSegStrings\",value:function(t){for(var e=new ae,n=new yt;t.hasNext();){var i=t.next(),r=e.createLineString(i.getCoordinates());n.add(r)}return e.buildGeometry(n)}}])}(),ai=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"rescale\",value:function(){if(rt(arguments[0],Z))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.rescale(e.getCoordinates())}else if(arguments[0]instanceof Array){for(var n=arguments[0],i=0;i<n.length;i++)n[i].x=n[i].x/this._scaleFactor+this._offsetX,n[i].y=n[i].y/this._scaleFactor+this._offsetY;2===n.length&&n[0].equals2D(n[1])&&mt.out.println(n)}}},{key:\"scale\",value:function(){if(rt(arguments[0],Z)){for(var t=arguments[0],e=new yt(t.size()),n=t.iterator();n.hasNext();){var i=n.next();e.add(new xn(this.scale(i.getCoordinates()),i.getData()))}return e}if(arguments[0]instanceof Array){for(var r=arguments[0],s=new Array(r.length).fill(null),a=0;a<r.length;a++)s[a]=new X(Math.round((r[a].x-this._offsetX)*this._scaleFactor),Math.round((r[a].y-this._offsetY)*this._scaleFactor),r[a].getZ());return jt.removeRepeatedPoints(s)}}},{key:\"isIntegerPrecision\",value:function(){return 1===this._scaleFactor}},{key:\"getNodedSubstrings\",value:function(){var t=this._noder.getNodedSubstrings();return this._isScaled&&this.rescale(t),t}},{key:\"computeNodes\",value:function(t){var e=t;this._isScaled&&(e=this.scale(t)),this._noder.computeNodes(e)}},{key:\"interfaces_\",get:function(){return[Sn]}}],[{key:\"constructor_\",value:function(){if(this._noder=null,this._scaleFactor=null,this._offsetX=null,this._offsetY=null,this._isScaled=!1,2===arguments.length){var e=arguments[0],n=arguments[1];t.constructor_.call(this,e,n,0,0)}else if(4===arguments.length){var i=arguments[0],r=arguments[1];this._noder=i,this._scaleFactor=r,this._isScaled=!this.isIntegerPrecision()}}}])}(),oi=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"checkEndPtVertexIntersections\",value:function(){if(0===arguments.length)for(var t=this._segStrings.iterator();t.hasNext();){var e=t.next().getCoordinates();this.checkEndPtVertexIntersections(e[0],this._segStrings),this.checkEndPtVertexIntersections(e[e.length-1],this._segStrings)}else if(2===arguments.length)for(var n=arguments[0],i=arguments[1].iterator();i.hasNext();)for(var r=i.next().getCoordinates(),s=1;s<r.length-1;s++)if(r[s].equals(n))throw new D(\"found endpt/interior pt intersection at index \"+s+\" :pt \"+n)}},{key:\"checkInteriorIntersections\",value:function(){if(0===arguments.length)for(var t=this._segStrings.iterator();t.hasNext();)for(var e=t.next(),n=this._segStrings.iterator();n.hasNext();){var i=n.next();this.checkInteriorIntersections(e,i)}else if(2===arguments.length)for(var r=arguments[0],s=arguments[1],a=r.getCoordinates(),o=s.getCoordinates(),u=0;u<a.length-1;u++)for(var l=0;l<o.length-1;l++)this.checkInteriorIntersections(r,u,s,l);else if(4===arguments.length){var h=arguments[0],c=arguments[1],f=arguments[2],g=arguments[3];if(h===f&&c===g)return null;var v=h.getCoordinates()[c],y=h.getCoordinates()[c+1],d=f.getCoordinates()[g],_=f.getCoordinates()[g+1];if(this._li.computeIntersection(v,y,d,_),this._li.hasIntersection()&&(this._li.isProper()||this.hasInteriorIntersection(this._li,v,y)||this.hasInteriorIntersection(this._li,d,_)))throw new D(\"found non-noded intersection at \"+v+\"-\"+y+\" and \"+d+\"-\"+_)}}},{key:\"checkValid\",value:function(){this.checkEndPtVertexIntersections(),this.checkInteriorIntersections(),this.checkCollapses()}},{key:\"checkCollapses\",value:function(){if(0===arguments.length)for(var t=this._segStrings.iterator();t.hasNext();){var e=t.next();this.checkCollapses(e)}else if(1===arguments.length)for(var n=arguments[0].getCoordinates(),i=0;i<n.length-2;i++)this.checkCollapse(n[i],n[i+1],n[i+2])}},{key:\"hasInteriorIntersection\",value:function(t,e,n){for(var i=0;i<t.getIntersectionNum();i++){var r=t.getIntersection(i);if(!r.equals(e)&&!r.equals(n))return!0}return!1}},{key:\"checkCollapse\",value:function(e,n,i){if(e.equals(i))throw new D(\"found non-noded collapse at \"+t.fact.createLineString([e,n,i]))}}],[{key:\"constructor_\",value:function(){this._li=new we,this._segStrings=null;var t=arguments[0];this._segStrings=t}}])}();oi.fact=new ae;var ui=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"intersectsScaled\",value:function(t,e){var n=Math.min(t.x,e.x),i=Math.max(t.x,e.x),r=Math.min(t.y,e.y),s=Math.max(t.y,e.y),a=this._maxx<n||this._minx>i||this._maxy<r||this._miny>s;if(a)return!1;var o=this.intersectsToleranceSquare(t,e);return G.isTrue(!(a&&o),\"Found bad envelope test\"),o}},{key:\"initCorners\",value:function(t){var e=.5;this._minx=t.x-e,this._maxx=t.x+e,this._miny=t.y-e,this._maxy=t.y+e,this._corner[0]=new X(this._maxx,this._maxy),this._corner[1]=new X(this._minx,this._maxy),this._corner[2]=new X(this._minx,this._miny),this._corner[3]=new X(this._maxx,this._miny)}},{key:\"intersects\",value:function(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))}},{key:\"scale\",value:function(t){return Math.round(t*this._scaleFactor)}},{key:\"getCoordinate\",value:function(){return this._originalPt}},{key:\"copyScaled\",value:function(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)}},{key:\"getSafeEnvelope\",value:function(){if(null===this._safeEnv){var e=t.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new U(this._originalPt.x-e,this._originalPt.x+e,this._originalPt.y-e,this._originalPt.y+e)}return this._safeEnv}},{key:\"intersectsPixelClosure\",value:function(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))}},{key:\"intersectsToleranceSquare\",value:function(t,e){var n=!1,i=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.isProper()||(!(!n||!i)||(!!t.equals(this._pt)||!!e.equals(this._pt))))))}},{key:\"addSnappedNode\",value:function(t,e){var n=t.getCoordinate(e),i=t.getCoordinate(e+1);return!!this.intersects(n,i)&&(t.addIntersection(this.getCoordinate(),e),!0)}}],[{key:\"constructor_\",value:function(){this._li=null,this._pt=null,this._originalPt=null,this._ptScaled=null,this._p0Scaled=null,this._p1Scaled=null,this._scaleFactor=null,this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,this._corner=new Array(4).fill(null),this._safeEnv=null;var t=arguments[0],e=arguments[1],n=arguments[2];if(this._originalPt=t,this._pt=t,this._scaleFactor=e,this._li=n,e<=0)throw new m(\"Scale factor must be non-zero\");1!==e&&(this._pt=new X(this.scale(t.x),this.scale(t.y)),this._p0Scaled=new X,this._p1Scaled=new X),this.initCorners(this._pt)}}])}();ui.SAFE_ENV_EXPANSION_FACTOR=.75;var li=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"select\",value:function(){if(1===arguments.length);else if(2===arguments.length){var t=arguments[1];arguments[0].getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}}}],[{key:\"constructor_\",value:function(){this.selectedSegment=new In}}])}(),hi=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"snap\",value:function(){if(1===arguments.length){var t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){var e=arguments[0],i=arguments[1],r=arguments[2],a=e.getSafeEnvelope(),o=new ci(e,i,r);return this._index.query(a,new(function(){return s((function t(){n(this,t)}),[{key:\"interfaces_\",get:function(){return[ln]}},{key:\"visitItem\",value:function(t){t.select(a,o)}}])}())),o.isNodeAdded()}}}],[{key:\"constructor_\",value:function(){this._index=null;var t=arguments[0];this._index=t}}])}(),ci=function(t){function i(){var t;return n(this,i),t=e(this,i),i.constructor_.apply(t,arguments),t}return l(i,t),s(i,[{key:\"isNodeAdded\",value:function(){return this._isNodeAdded}},{key:\"select\",value:function(){if(!(2===arguments.length&&Number.isInteger(arguments[1])&&arguments[0]instanceof Nn))return f(i,\"select\",this,1).apply(this,arguments);var t=arguments[1],e=arguments[0].getContext();if(this._parentEdge===e&&(t===this._hotPixelVertexIndex||t+1===this._hotPixelVertexIndex))return null;this._isNodeAdded|=this._hotPixel.addSnappedNode(e,t)}}],[{key:\"constructor_\",value:function(){this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var t=arguments[0],e=arguments[1],n=arguments[2];this._hotPixel=t,this._parentEdge=e,this._hotPixelVertexIndex=n}}])}(li);hi.HotPixelSnapAction=ci;var fi=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"processIntersections\",value:function(t,e,n,i){if(t===n&&e===i)return null;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],a=n.getCoordinates()[i],o=n.getCoordinates()[i+1];if(this._li.computeIntersection(r,s,a,o),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var u=0;u<this._li.getIntersectionNum();u++)this._interiorIntersections.add(this._li.getIntersection(u));t.addIntersections(this._li,e,0),n.addIntersections(this._li,i,1)}}},{key:\"isDone\",value:function(){return!1}},{key:\"getInteriorIntersections\",value:function(){return this._interiorIntersections}},{key:\"interfaces_\",get:function(){return[Wn]}}],[{key:\"constructor_\",value:function(){this._li=null,this._interiorIntersections=null;var t=arguments[0];this._li=t,this._interiorIntersections=new yt}}])}(),gi=function(){return s((function t(){n(this,t),t.constructor_.apply(this,arguments)}),[{key:\"checkCorrectness\",value:function(t){var e=xn.getNodedSubstrings(t),n=new oi(e);try{n.checkValid()}catch(t){if(!(t instanceof p))throw t;t.printStackTrace()}}},{key:\"getNodedSubstrings\",value:function(){return xn.getNodedSubstrings(this._nodedSegStrings)}},{key:\"snapRound\",value:function(t,e){var n=this.findInteriorIntersections(t,e);this.computeIntersectionSnaps(n),this.computeVertexSnaps(t)}},{key:\"findInteriorIntersections\",value:function(t,e){var n=new fi(e);return this._noder.setSegmentIntersector(n),this._noder.computeNodes(t),n.getInteriorIntersections()}},{key:\"computeVertexSnaps\",value:function(){if(rt(arguments[0],Z))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.computeVertexSnaps(e)}else if(arguments[0]instanceof xn)for(var n=arguments[0],i=n.getCoordinates(),r=0;r<i.length;r++){var s=new ui(i[r],this._scaleFactor,this._li);this._pointSnapper.snap(s,n,r)&&n.addIntersection(i[r],r)}}},{key:\"computeNodes\",value:function(t){this._nodedSegStrings=t,this._noder=new Cn,this._pointSnapper=new hi(this._noder.getIndex()),this.snapRound(t,this._li)}},{key:\"computeIntersectionSnaps\",value:function(t){for(var e=t.iterator();e.hasNext();){var n=e.next(),i=new ui(n,this._scaleFactor,this._li);this._pointSnapper.snap(i)}}},{key:\"interfaces_\",get:function(){return[Sn]}}],[{key:\"constructor_\",value:function(){this._pm=null,this._li=null,this._scaleFactor=null,this._noder=null,this._pointSnapper=null,this._nodedSegStrings=null;var t=arguments[0];this._pm=t,this._li=new we,this._li.setPrecisionModel(t),this._scaleFactor=t.getScale()}}])}(),vi=function(){function t(){n(this,t),t.constructor_.apply(this,arguments)}return s(t,[{key:\"bufferFixedPrecision\",value:function(t){var e=new ai(new gi(new ie(1)),t.getScale()),n=new si(this._bufParams);n.setWorkingPrecisionModel(t),n.setNoder(e),this._resultGeometry=n.buffer(this._argGeom,this._distance)}},{key:\"bufferReducedPrecision\",value:function(){if(0===arguments.length){for(var e=t.MAX_PRECISION_DIGITS;e>=0;e--){try{this.bufferReducedPrecision(e)}catch(t){if(!(t instanceof gt))throw t;this._saveException=t}if(null!==this._resultGeometry)return null}throw this._saveException}if(1===arguments.length){var n=arguments[0],i=t.precisionScaleFactor(this._argGeom,this._distance,n),r=new ie(i);this.bufferFixedPrecision(r)}}},{key:\"computeGeometry\",value:function(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===ie.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()}},{key:\"setQuadrantSegments\",value:function(t){this._bufParams.setQuadrantSegments(t)}},{key:\"bufferOriginalPrecision\",value:function(){try{var t=new si(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof D))throw t;this._saveException=t}}},{key:\"getResultGeometry\",value:function(t){return this._distance=t,this.computeGeometry(),this._resultGeometry}},{key:\"setEndCapStyle\",value:function(t){this._bufParams.setEndCapStyle(t)}}],[{key:\"constructor_\",value:function(){if(this._argGeom=null,this._distance=null,this._bufParams=new _,this._resultGeometry=null,this._saveException=null,1===arguments.length){var t=arguments[0];this._argGeom=t}else if(2===arguments.length){var e=arguments[0],n=arguments[1];this._argGeom=e,this._bufParams=n}}},{key:\"bufferOp\",value:function(){if(2===arguments.length){var e=arguments[1];return new t(arguments[0]).getResultGeometry(e)}if(3===arguments.length){if(Number.isInteger(arguments[2])&&arguments[0]instanceof V&&\"number\"==typeof arguments[1]){var n=arguments[1],i=arguments[2],r=new t(arguments[0]);return r.setQuadrantSegments(i),r.getResultGeometry(n)}if(arguments[2]instanceof _&&arguments[0]instanceof V&&\"number\"==typeof arguments[1]){var s=arguments[1];return new t(arguments[0],arguments[2]).getResultGeometry(s)}}else if(4===arguments.length){var a=arguments[1],o=arguments[2],u=arguments[3],l=new t(arguments[0]);return l.setQuadrantSegments(o),l.setEndCapStyle(u),l.getResultGeometry(a)}}},{key:\"precisionScaleFactor\",value:function(t,e,n){var i=t.getEnvelopeInternal(),r=kt.max(Math.abs(i.getMaxX()),Math.abs(i.getMaxY()),Math.abs(i.getMinX()),Math.abs(i.getMinY()))+2*(e>0?e:0),s=n-Math.trunc(Math.log(r)/Math.log(10)+1);return Math.pow(10,s)}}])}();vi.CAP_ROUND=_.CAP_ROUND,vi.CAP_BUTT=_.CAP_FLAT,vi.CAP_FLAT=_.CAP_FLAT,vi.CAP_SQUARE=_.CAP_SQUARE,vi.MAX_PRECISION_DIGITS=12;var yi=[\"Point\",\"MultiPoint\",\"LineString\",\"MultiLineString\",\"Polygon\",\"MultiPolygon\"],di=function(){return s((function t(e){n(this,t),this.geometryFactory=e||new ae}),[{key:\"read\",value:function(t){var e,n=(e=\"string\"==typeof t?JSON.parse(t):t).type;if(!_i[n])throw new Error(\"Unknown GeoJSON type: \"+e.type);return-1!==yi.indexOf(n)?_i[n].call(this,e.coordinates):\"GeometryCollection\"===n?_i[n].call(this,e.geometries):_i[n].call(this,e)}},{key:\"write\",value:function(t){var e=t.getGeometryType();if(!pi[e])throw new Error(\"Geometry is not supported\");return pi[e].call(this,t)}}])}(),_i={Feature:function(t){var e={};for(var n in t)e[n]=t[n];if(t.geometry){var i=t.geometry.type;if(!_i[i])throw new Error(\"Unknown GeoJSON type: \"+t.type);e.geometry=this.read(t.geometry)}return t.bbox&&(e.bbox=_i.bbox.call(this,t.bbox)),e},FeatureCollection:function(t){var e={};if(t.features){e.features=[];for(var n=0;n<t.features.length;++n)e.features.push(this.read(t.features[n]))}return t.bbox&&(e.bbox=this.parse.bbox.call(this,t.bbox)),e},coordinates:function(t){for(var e=[],n=0;n<t.length;++n){var r=t[n];e.push(i(X,g(r)))}return e},bbox:function(t){return this.geometryFactory.createLinearRing([new X(t[0],t[1]),new X(t[2],t[1]),new X(t[2],t[3]),new X(t[0],t[3]),new X(t[0],t[1])])},Point:function(t){var e=i(X,g(t));return this.geometryFactory.createPoint(e)},MultiPoint:function(t){for(var e=[],n=0;n<t.length;++n)e.push(_i.Point.call(this,t[n]));return this.geometryFactory.createMultiPoint(e)},LineString:function(t){var e=_i.coordinates.call(this,t);return this.geometryFactory.createLineString(e)},MultiLineString:function(t){for(var e=[],n=0;n<t.length;++n)e.push(_i.LineString.call(this,t[n]));return this.geometryFactory.createMultiLineString(e)},Polygon:function(t){for(var e=_i.coordinates.call(this,t[0]),n=this.geometryFactory.createLinearRing(e),i=[],r=1;r<t.length;++r){var s=t[r],a=_i.coordinates.call(this,s),o=this.geometryFactory.createLinearRing(a);i.push(o)}return this.geometryFactory.createPolygon(n,i)},MultiPolygon:function(t){for(var e=[],n=0;n<t.length;++n){var i=t[n];e.push(_i.Polygon.call(this,i))}return this.geometryFactory.createMultiPolygon(e)},GeometryCollection:function(t){for(var e=[],n=0;n<t.length;++n){var i=t[n];e.push(this.read(i))}return this.geometryFactory.createGeometryCollection(e)}},pi={coordinate:function(t){var e=[t.x,t.y];return t.z&&e.push(t.z),t.m&&e.push(t.m),e},Point:function(t){return{type:\"Point\",coordinates:pi.coordinate.call(this,t.getCoordinate())}},MultiPoint:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=pi.Point.call(this,i);e.push(r.coordinates)}return{type:\"MultiPoint\",coordinates:e}},LineString:function(t){for(var e=[],n=t.getCoordinates(),i=0;i<n.length;++i){var r=n[i];e.push(pi.coordinate.call(this,r))}return{type:\"LineString\",coordinates:e}},MultiLineString:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=pi.LineString.call(this,i);e.push(r.coordinates)}return{type:\"MultiLineString\",coordinates:e}},Polygon:function(t){var e=[],n=pi.LineString.call(this,t._shell);e.push(n.coordinates);for(var i=0;i<t._holes.length;++i){var r=t._holes[i],s=pi.LineString.call(this,r);e.push(s.coordinates)}return{type:\"Polygon\",coordinates:e}},MultiPolygon:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=pi.Polygon.call(this,i);e.push(r.coordinates)}return{type:\"MultiPolygon\",coordinates:e}},GeometryCollection:function(t){for(var e=[],n=0;n<t._geometries.length;++n){var i=t._geometries[n],r=i.getGeometryType();e.push(pi[r].call(this,i))}return{type:\"GeometryCollection\",geometries:e}}};return{BufferOp:vi,GeoJSONReader:function(){return s((function t(e){n(this,t),this.parser=new di(e||new ae)}),[{key:\"read\",value:function(t){return this.parser.read(t)}}])}(),GeoJSONWriter:function(){return s((function t(){n(this,t),this.parser=new di(this.geometryFactory)}),[{key:\"write\",value:function(t){return this.parser.write(t)}}])}()}}));\n//# sourceMappingURL=jsts.min.js.map\n","// Adds floating point numbers with twice the normal precision.\n// Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and\n// Fast Robust Geometric Predicates, Discrete & Computational Geometry 18(3)\n// 305–363 (1997).\n// Code adapted from GeographicLib by Charles F. F. Karney,\n// http://geographiclib.sourceforge.net/\n\nexport default function() {\n return new Adder;\n}\n\nfunction Adder() {\n this.reset();\n}\n\nAdder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0; // exact error\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n};\n\nvar temp = new Adder;\n\nfunction add(adder, a, b) {\n var x = adder.s = a + b,\n bv = x - a,\n av = x - bv;\n adder.t = (a - av) + (b - bv);\n}\n","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","import adder from \"./adder\";\nimport {atan2, cos, quarterPi, radians, sin, tau} from \"./math\";\nimport noop from \"./noop\";\nimport stream from \"./stream\";\n\nexport var areaRingSum = adder();\n\nvar areaSum = adder(),\n lambda00,\n phi00,\n lambda0,\n cosPhi0,\n sinPhi0;\n\nexport var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians, phi *= radians;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n phi = phi / 2 + quarterPi; // half the angular distance from south pole\n\n // Spherical excess E for a spherical triangle with vertices: south pole,\n // previous point, current point. Uses a formula derived from Cagnoli’s\n // theorem. See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n var dLambda = lambda - lambda0,\n sdLambda = dLambda >= 0 ? 1 : -1,\n adLambda = sdLambda * dLambda,\n cosPhi = cos(phi),\n sinPhi = sin(phi),\n k = sinPhi0 * sinPhi,\n u = cosPhi0 * cosPhi + k * cos(adLambda),\n v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n\n // Advance the previous points.\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\nexport default function(object) {\n areaSum.reset();\n stream(object, areaStream);\n return areaSum * 2;\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","import adder from \"./adder\";\nimport {areaStream, areaRingSum} from \"./area\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace, spherical} from \"./cartesian\";\nimport {abs, degrees, epsilon, radians} from \"./math\";\nimport stream from \"./stream\";\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n lambda2, // previous lambda-coordinate\n lambda00, phi00, // first point\n p0, // previous 3D point\n deltaSum = adder(),\n ranges,\n range;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0, range[1] = lambda1;\n }\n};\n\nfunction boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n var p = cartesian([lambda * radians, phi * radians]);\n if (p0) {\n var normal = cartesianCross(p0, p),\n equatorial = [normal[1], -normal[0], 0],\n inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2,\n sign = delta > 0 ? 1 : -1,\n lambdai = inflection[0] * degrees * sign,\n phii,\n antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = inflection[1] * degrees;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n phii = -inflection[1] * degrees;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n } else {\n if (lambda1 >= lambda0) {\n if (lambda < lambda0) lambda0 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n range[0] = lambda0, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00 = lambda, phi00 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n areaStream.lineStart();\n}\n\nfunction boundsRingEnd() {\n boundsRingPoint(lambda00, phi00);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0 = -(lambda1 = 180);\n range[0] = lambda0, range[1] = lambda1;\n p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\nexport default function(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n\n phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n ranges = [];\n stream(feature, boundsStream);\n\n // First, sort ranges by their minimum longitudes.\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n\n // Then, merge any ranges that overlap.\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n\n // Finally, find the largest gap between the merged ranges.\n // The final bounding box will be the inverse of this gap.\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n }\n }\n\n ranges = range = null;\n\n return lambda0 === Infinity || phi0 === Infinity\n ? [[NaN, NaN], [NaN, NaN]]\n : [[lambda0, phi0], [lambda1, phi1]];\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose\";\nimport {asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math\";\n\nfunction rotationIdentity(lambda, phi) {\n return [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian\";\nimport constant from \"./constant\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math\";\nimport {rotateRadians} from \"./rotation\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(6),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import noop from \"../noop\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y) {\n line.push([x, y]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"./math\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n // If the first and last points of a segment are coincident, then treat as a\n // closed ring. TODO if all rings are closed, then the winding order of the\n // exterior ring should be checked.\n if (pointEqual(p0, p1)) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","export default function(arrays) {\n var n = arrays.length,\n m,\n i = -1,\n j = 0,\n merged,\n array;\n\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n\n return merged;\n}\n","import {abs, epsilon} from \"../math\";\nimport clipBuffer from \"./buffer\";\nimport clipLine from \"./line\";\nimport clipPolygon from \"./polygon\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport function clipExtent(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipPolygon(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n\nexport default function() {\n var x0 = 0,\n y0 = 0,\n x1 = 960,\n y1 = 500,\n cache,\n cacheStream,\n clip;\n\n return clip = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipExtent(x0, y0, x1, y1)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n }\n };\n}\n","import adder from \"./adder\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian\";\nimport {asin, atan2, cos, epsilon, pi, quarterPi, sin, tau} from \"./math\";\n\nvar sum = adder();\n\nexport default function(polygon, point) {\n var lambda = point[0],\n phi = point[1],\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n sum.reset();\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = point0[0],\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = point1[0],\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon) ^ (winding & 1);\n}\n","import adder from \"./adder\";\nimport {abs, atan2, cos, radians, sin, sqrt} from \"./math\";\nimport noop from \"./noop\";\nimport stream from \"./stream\";\n\nvar lengthSum = adder(),\n lambda0,\n sinPhi0,\n cosPhi0;\n\nvar lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n};\n\nfunction lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n}\n\nfunction lengthPointFirst(lambda, phi) {\n lambda *= radians, phi *= radians;\n lambda0 = lambda, sinPhi0 = sin(phi), cosPhi0 = cos(phi);\n lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n lambda *= radians, phi *= radians;\n var sinPhi = sin(phi),\n cosPhi = cos(phi),\n delta = abs(lambda - lambda0),\n cosDelta = cos(delta),\n sinDelta = sin(delta),\n x = cosPhi * sinDelta,\n y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\nexport default function(object) {\n lengthSum.reset();\n stream(object, lengthStream);\n return +lengthSum;\n}\n","export default function(x) {\n return x;\n}\n","import adder from \"../adder\";\nimport {abs} from \"../math\";\nimport noop from \"../noop\";\n\nvar areaSum = adder(),\n areaRingSum = adder(),\n x00,\n y00,\n x0,\n y0;\n\nvar areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;\n areaSum.add(abs(areaRingSum));\n areaRingSum.reset();\n },\n result: function() {\n var area = areaSum / 2;\n areaSum.reset();\n return area;\n }\n};\n\nfunction areaRingStart() {\n areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n areaStream.point = areaPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n areaRingSum.add(y0 * x - x0 * y);\n x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n areaPoint(x00, y00);\n}\n\nexport default areaStream;\n","import noop from \"../noop\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","import adder from \"../adder\";\nimport {sqrt} from \"../math\";\nimport noop from \"../noop\";\n\nvar lengthSum = adder(),\n lengthRing,\n x00,\n y00,\n x0,\n y0;\n\nvar lengthStream = {\n point: noop,\n lineStart: function() {\n lengthStream.point = lengthPointFirst;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint(x00, y00);\n lengthStream.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length = +lengthSum;\n lengthSum.reset();\n return length;\n }\n};\n\nfunction lengthPointFirst(x, y) {\n lengthStream.point = lengthPoint;\n x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n x0 -= x, y0 -= y;\n lengthSum.add(sqrt(x0 * x0 + y0 * y0));\n x0 = x, y0 = y;\n}\n\nexport default lengthStream;\n","import clipBuffer from \"./buffer\";\nimport clipPolygon from \"./polygon\";\nimport {epsilon, halfPi} from \"../math\";\nimport polygonContains from \"../polygonContains\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(rotate, sink) {\n var line = clipLine(sink),\n rotatedStart = rotate.invert(start[0], start[1]),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, rotatedStart);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipPolygon(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n var point = rotate(lambda, phi);\n if (pointVisible(lambda = point[0], phi = point[1])) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n var point = rotate(lambda, phi);\n line.point(point[0], point[1]);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n var point = rotate(lambda, phi);\n ringSink.point(point[0], point[1]);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian\";\nimport {circleStream} from \"../circle\";\nimport {abs, cos, epsilon, pi, sqrt} from \"../math\";\nimport pointEqual from \"../pointEqual\";\nimport clip from \"./index\";\n\nexport default function(radius, delta) {\n var cr = cos(radius),\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n // Handle degeneracies.\n // TODO ignore if not clipping polygons.\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2)) {\n point1[0] += epsilon;\n point1[1] += epsilon;\n v = visible(point1[0], point1[1]);\n }\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1]);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream\";\nimport boundsStream from \"../path/bounds\";\n\nexport function fitExtent(projection, extent, object) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n clip = projection.clipExtent && projection.clipExtent();\n\n projection\n .scale(150)\n .translate([0, 0]);\n\n if (clip != null) projection.clipExtent(null);\n\n geoStream(object, projection.stream(boundsStream));\n\n var b = boundsStream.result(),\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n\n if (clip != null) projection.clipExtent(clip);\n\n return projection\n .scale(k * 150)\n .translate([x, y]);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n","import {cartesian} from \"../cartesian\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math\";\nimport {transformer} from \"../transform\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian\";\nimport clipCircle from \"../clip/circle\";\nimport {clipExtent} from \"../clip/extent\";\nimport compose from \"../compose\";\nimport identity from \"../identity\";\nimport {degrees, radians, sqrt} from \"../math\";\nimport {rotateRadians} from \"../rotation\";\nimport {transformer} from \"../transform\";\nimport {fitExtent, fitSize} from \"./fit\";\nimport resample from \"./resample\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n dx, dy, lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, projectRotate, // rotate\n theta = null, preclip = clipAntimeridian, // clip angle\n x0 = null, y0, x1, y1, postclip = identity, // clip extent\n delta2 = 0.5, projectResample = resample(projectTransform, delta2), // precision\n cache,\n cacheStream;\n\n function projection(point) {\n point = projectRotate(point[0] * radians, point[1] * radians);\n return [point[0] * k + dx, dy - point[1] * k];\n }\n\n function invert(point) {\n point = projectRotate.invert((point[0] - dx) / k, (dy - point[1]) / k);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n function projectTransform(x, y) {\n return x = project(x, y), [x[0] * k + dx, dy - x[1] * k];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(preclip(rotate, projectResample(postclip(cacheStream = stream))));\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians, 6 * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n function recenter() {\n projectRotate = compose(rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma), project);\n var center = project(lambda, phi);\n dx = x - center[0] * k;\n dy = y + center[1] * k;\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {asin, sqrt} from \"../math\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal\";\nimport projection from \"./index\";\n\nexport var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n});\n\nexport default function() {\n return projection(azimuthalEqualAreaRaw)\n .scale(124.75)\n .clipAngle(180 - 1e-3);\n}\n","import {acos, sin} from \"../math\";\nimport {azimuthalRaw, azimuthalInvert} from \"./azimuthal\";\nimport projection from \"./index\";\n\nexport var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n});\n\nazimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n});\n\nexport default function() {\n return projection(azimuthalEquidistantRaw)\n .scale(79.4188)\n .clipAngle(180 - 1e-3);\n}\n","import projection from \"./index\";\n\nexport function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\nexport default function() {\n return projection(equirectangularRaw)\n .scale(152.63);\n}\n","// index.js\nimport { center } from \"@turf/center\";\nimport jsts from \"@turf/jsts\";\nimport { geomEach, featureEach } from \"@turf/meta\";\nimport { geoAzimuthalEquidistant } from \"d3-geo\";\nimport {\n feature,\n featureCollection,\n radiansToLength,\n lengthToRadians,\n earthRadius\n} from \"@turf/helpers\";\nvar { BufferOp, GeoJSONReader, GeoJSONWriter } = jsts;\nfunction buffer(geojson, radius, options) {\n options = options || {};\n var units = options.units || \"kilometers\";\n var steps = options.steps || 8;\n if (!geojson) throw new Error(\"geojson is required\");\n if (typeof options !== \"object\") throw new Error(\"options must be an object\");\n if (typeof steps !== \"number\") throw new Error(\"steps must be an number\");\n if (radius === void 0) throw new Error(\"radius is required\");\n if (steps <= 0) throw new Error(\"steps must be greater than 0\");\n var results = [];\n switch (geojson.type) {\n case \"GeometryCollection\":\n geomEach(geojson, function(geometry) {\n var buffered = bufferFeature(geometry, radius, units, steps);\n if (buffered) results.push(buffered);\n });\n return featureCollection(results);\n case \"FeatureCollection\":\n featureEach(geojson, function(feature2) {\n var multiBuffered = bufferFeature(feature2, radius, units, steps);\n if (multiBuffered) {\n featureEach(multiBuffered, function(buffered) {\n if (buffered) results.push(buffered);\n });\n }\n });\n return featureCollection(results);\n }\n return bufferFeature(geojson, radius, units, steps);\n}\nfunction bufferFeature(geojson, radius, units, steps) {\n var properties = geojson.properties || {};\n var geometry = geojson.type === \"Feature\" ? geojson.geometry : geojson;\n if (geometry.type === \"GeometryCollection\") {\n var results = [];\n geomEach(geojson, function(geometry2) {\n var buffered2 = bufferFeature(geometry2, radius, units, steps);\n if (buffered2) results.push(buffered2);\n });\n return featureCollection(results);\n }\n var projection = defineProjection(geometry);\n var projected = {\n type: geometry.type,\n coordinates: projectCoords(geometry.coordinates, projection)\n };\n var reader = new GeoJSONReader();\n var geom = reader.read(projected);\n var distance = radiansToLength(lengthToRadians(radius, units), \"meters\");\n var buffered = BufferOp.bufferOp(geom, distance, steps);\n var writer = new GeoJSONWriter();\n buffered = writer.write(buffered);\n if (coordsIsNaN(buffered.coordinates)) return void 0;\n var result = {\n type: buffered.type,\n coordinates: unprojectCoords(buffered.coordinates, projection)\n };\n return feature(result, properties);\n}\nfunction coordsIsNaN(coords) {\n if (Array.isArray(coords[0])) return coordsIsNaN(coords[0]);\n return isNaN(coords[0]);\n}\nfunction projectCoords(coords, proj) {\n if (typeof coords[0] !== \"object\") return proj(coords);\n return coords.map(function(coord) {\n return projectCoords(coord, proj);\n });\n}\nfunction unprojectCoords(coords, proj) {\n if (typeof coords[0] !== \"object\") return proj.invert(coords);\n return coords.map(function(coord) {\n return unprojectCoords(coord, proj);\n });\n}\nfunction defineProjection(geojson) {\n var coords = center(geojson).geometry.coordinates;\n var rotation = [-coords[0], -coords[1]];\n return geoAzimuthalEquidistant().rotate(rotation).scale(earthRadius);\n}\nvar index_default = buffer;\nexport {\n buffer,\n index_default as default\n};\n//# sourceMappingURL=index.js.map","import { formatThousand, isNumber, round } from '@swissgeo/numbers'\nimport proj4 from 'proj4'\n\nimport type CoordinateSystem from '@/proj/CoordinateSystem'\n\nimport { allCoordinateSystems, WGS84 } from '@/proj'\n\nexport type SingleCoordinate = [number, number]\nexport type Single3DCoordinate = [number, number, number]\n\nfunction isValidCoordinate(input: unknown): boolean {\n if (!Array.isArray(input) || input.length === 0) {\n return false\n }\n return typeof input[0] === 'number' && typeof input[1] === 'number'\n}\n\n/**\n * Returns rounded coordinate with thousands separator and comma.\n *\n * @param coordinate The raw coordinate as array.\n * @param digits Decimal digits to round to.\n * @param [withThousandsSeparator=true] If thousands should be separated with a single quote\n * character. Default is `true`\n * @param [enforceDigit=false] If set to true, we want to have that many figures after the period.\n * Otherwise, we don't care. Default is `false`\n * @returns Formatted coordinate.\n * @see https://stackoverflow.com/a/2901298/4840446\n */\nfunction toRoundedString(\n coordinate: SingleCoordinate,\n digits: number,\n withThousandsSeparator: boolean = true,\n enforceDigit: boolean = false\n): string | undefined {\n if (\n !Array.isArray(coordinate) ||\n coordinate.length !== 2 ||\n !coordinate.every(isNumber) ||\n coordinate.some(\n (value) => value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY\n )\n ) {\n return\n }\n return coordinate\n .map((value) => {\n const roundedValue: number = round(value, digits)\n let stringValue: string\n if (enforceDigit) {\n stringValue = roundedValue.toFixed(digits)\n } else {\n stringValue = roundedValue.toString()\n }\n if (withThousandsSeparator) {\n return formatThousand(stringValue)\n }\n return stringValue\n })\n .join(', ')\n}\n\n/**\n * Wraps the provided coordinates in the world extents (i.e. the coordinate range that if equivalent\n * to the wgs84 [-180, 180])\n *\n * @param coordinates The coordinates (or array of coordinates) to wrap\n * @param projection Projection of the coordinates\n * @returns Coordinates wrapped on the X axis\n */\nfunction wrapXCoordinates<T extends SingleCoordinate | SingleCoordinate[]>(\n coordinates: T,\n projection: CoordinateSystem\n): T {\n if (projection.usesMercatorPyramid && projection.bounds && Array.isArray(coordinates)) {\n if (coordinates.length === 2 && coordinates.every(isNumber)) {\n const [x, y] = coordinates as SingleCoordinate\n if (x >= projection.bounds.lowerX && x <= projection.bounds.upperX) {\n return coordinates\n }\n const boundsWidth = projection.bounds.upperX - projection.bounds.lowerX\n const worldsAway = Math.floor((x - projection.bounds.lowerX) / boundsWidth)\n const offset = worldsAway * boundsWidth\n return [x - offset, y] as T\n } else if (coordinates.every(Array.isArray)) {\n return (coordinates as SingleCoordinate[]).map((coordinate) =>\n wrapXCoordinates(coordinate, projection)\n ) as T\n }\n }\n return coordinates\n}\n\n/**\n * Returns the coordinates unwrapped if they were placed into an extra array. This can happen when\n * dealing with GeoJSON coordinate, where some geometry types require coordinate in a format such as\n * [ [ [x,y], [x,y] ], [...feature2...] ]\n *\n * Most of our backends only deal with the first feature of such array, this function will unwrap\n * it, or return the array as is if it is not required\n */\nfunction unwrapGeometryCoordinates(\n geometryCoordinates?: SingleCoordinate[] | SingleCoordinate[][] | SingleCoordinate[][][]\n): SingleCoordinate[] {\n if (!geometryCoordinates) {\n return []\n }\n\n if (geometryCoordinates.every((value) => isValidCoordinate(value))) {\n return geometryCoordinates as SingleCoordinate[]\n } else {\n return unwrapGeometryCoordinates(\n (geometryCoordinates as SingleCoordinate[][] | SingleCoordinate[][][])[0]\n )\n }\n}\n\n/**\n * Remove any Z value from a set of coordinates\n *\n * @param coordinates\n */\nfunction removeZValues(coordinates: SingleCoordinate[] | Single3DCoordinate[]): SingleCoordinate[] {\n if (Array.isArray(coordinates)) {\n if (coordinates.every((coordinate) => coordinate.length === 2)) {\n return coordinates\n } else if (coordinates.some((coordinate) => coordinate.length > 2)) {\n return coordinates.map((coordinate) => [coordinate[0], coordinate[1]])\n }\n }\n throw new Error('Invalid coordinates received, cannot remove Z values')\n}\n\nfunction reprojectAndRound<T extends SingleCoordinate | SingleCoordinate[]>(\n from: CoordinateSystem,\n into: CoordinateSystem,\n coordinates: T\n): T {\n if (!from || !into) {\n throw new Error('Invalid arguments, must receive two CRS')\n }\n if (!isValidCoordinate(coordinates)) {\n throw new Error(\n 'Invalid coordinates received, must be an array of number or an array of coordinates'\n )\n }\n const depthOne = coordinates[0]\n if (Array.isArray(depthOne)) {\n return (coordinates as SingleCoordinate[]).map((coordinate) =>\n reprojectAndRound(from, into, coordinate)\n ) as T\n }\n return proj4(from.epsg, into.epsg, coordinates as SingleCoordinate).map((value) =>\n into.roundCoordinateValue(value)\n ) as T\n}\n\nfunction parseCRS(crs?: string): CoordinateSystem | undefined {\n const epsgNumber = crs?.split(':').pop()\n if (!epsgNumber) {\n return\n }\n\n if (epsgNumber === 'WGS84') {\n return WGS84\n }\n return allCoordinateSystems.find((system) => system.epsg === `EPSG:${epsgNumber}`)\n}\n\nexport interface SwissGeoCoordinatesUtils {\n toRoundedString: typeof toRoundedString\n wrapXCoordinates: typeof wrapXCoordinates\n unwrapGeometryCoordinates: typeof unwrapGeometryCoordinates\n removeZValues: typeof removeZValues\n reprojectAndRound: typeof reprojectAndRound\n parseCRS: typeof parseCRS\n}\n\nconst coordinatesUtils: SwissGeoCoordinatesUtils = {\n toRoundedString,\n wrapXCoordinates,\n unwrapGeometryCoordinates,\n removeZValues,\n reprojectAndRound,\n parseCRS,\n}\nexport { coordinatesUtils }\nexport default coordinatesUtils\n","import { round } from '@swissgeo/numbers'\nimport { bbox, bboxClip, bboxPolygon, buffer, point } from '@turf/turf'\nimport proj4 from 'proj4'\n\nimport type { SingleCoordinate } from '@/coordinatesUtils'\nimport type { CoordinateSystem } from '@/proj'\n\nimport { WGS84 } from '@/proj'\n\nexport type FlatExtent = [number, number, number, number]\nexport type NormalizedExtent = [[number, number], [number, number]]\n\n/**\n * @param fromProj Current projection used to describe the extent\n * @param toProj Target projection we want the extent be expressed in\n * @param extent An extent, described as `[minx, miny, maxx, maxy].` or `[[minx, miny], [maxx,\n * maxy]]`\n * @returns The reprojected extent\n */\nexport function projExtent<T extends FlatExtent | NormalizedExtent>(\n fromProj: CoordinateSystem,\n toProj: CoordinateSystem,\n extent: T\n): T {\n if (extent.length === 4) {\n const bottomLeft = proj4(fromProj.epsg, toProj.epsg, [\n extent[0],\n extent[1],\n ]) as SingleCoordinate\n const topRight = proj4(fromProj.epsg, toProj.epsg, [\n extent[2],\n extent[3],\n ]) as SingleCoordinate\n return [...bottomLeft, ...topRight].map((value) => toProj.roundCoordinateValue(value)) as T\n } else if (extent.length === 2) {\n const bottomLeft = proj4(fromProj.epsg, toProj.epsg, extent[0]).map((value) =>\n toProj.roundCoordinateValue(value)\n )\n const topRight = proj4(fromProj.epsg, toProj.epsg, extent[1]).map((value) =>\n toProj.roundCoordinateValue(value)\n )\n return [bottomLeft, topRight] as T\n }\n return extent\n}\n\n/**\n * Return an extent normalized to [[x, y], [x, y]] from a flat extent\n *\n * @param extent Extent to normalize\n * @returns Extent in the form [[x, y], [x, y]]\n */\nexport function normalizeExtent(extent: FlatExtent | NormalizedExtent): NormalizedExtent {\n let extentNormalized = extent\n if (extent?.length === 4) {\n // convert to the flat extent to [[x, y], [x, y]]\n extentNormalized = [\n [extent[0], extent[1]],\n [extent[2], extent[3]],\n ]\n }\n return extentNormalized as NormalizedExtent\n}\n\n/**\n * Flatten extent\n *\n * @param extent Extent to flatten\n * @returns Flatten extent in from [minx, miny, maxx, maxy]\n */\nexport function flattenExtent(extent: FlatExtent | NormalizedExtent): FlatExtent {\n let flattenExtent = extent\n if (extent?.length === 2) {\n flattenExtent = [...extent[0], ...extent[1]]\n }\n return flattenExtent as FlatExtent\n}\n\n/**\n * Get the intersection of the extent with the current projection, as a flatten extent expressed in\n * the current projection\n *\n * @param extent Such as [minx, miny, maxx, maxy]. or [bottomLeft, topRight]\n * @param extentProjection\n * @param currentProjection\n */\nexport function getExtentIntersectionWithCurrentProjection(\n extent: FlatExtent | NormalizedExtent,\n extentProjection: CoordinateSystem,\n currentProjection: CoordinateSystem\n): FlatExtent | undefined {\n if (\n (extent?.length !== 4 && extent?.length !== 2) ||\n !extentProjection ||\n !currentProjection ||\n !currentProjection.bounds\n ) {\n return undefined\n }\n let currentProjectionAsExtentProjection: FlatExtent = currentProjection.bounds\n .flatten as FlatExtent\n if (extentProjection.epsg !== currentProjection.epsg) {\n // We used to reproject the extent here, but there's problem arising if current projection is LV95 and\n // the extent is going a little bit out of Switzerland.\n // As LV95 is quite location-locked, the further we get, the bigger the mathematical errors start growing.\n // So to counteract that, we transform the current projection bounds in the extent projection to do the comparison.\n currentProjectionAsExtentProjection = projExtent(\n currentProjection,\n extentProjection,\n currentProjectionAsExtentProjection\n )\n }\n let intersectionOfExtents = bbox(bboxClip(bboxPolygon(currentProjectionAsExtentProjection), flattenExtent(extent)))\n\n if (\n !intersectionOfExtents || intersectionOfExtents.length !== 4 ||\n intersectionOfExtents.every((value) => Math.abs(value) === Infinity)\n ) {\n return undefined\n }\n if (extentProjection.epsg !== currentProjection.epsg) {\n // if we transformed the current projection extent above, we now need to output the correct proj\n intersectionOfExtents = projExtent(extentProjection, currentProjection, intersectionOfExtents)\n }\n\n return intersectionOfExtents\n}\n\nexport function getExtentCenter(extent: FlatExtent | NormalizedExtent): SingleCoordinate {\n const [topLeft, bottomRight] = normalizeExtent(extent)\n return [(topLeft[0] + bottomRight[0]) / 2, (topLeft[1] + bottomRight[1]) / 2]\n}\n\ninterface ConfigCreatePixelExtentAround {\n /**\n * Number of pixels the extent should be (if s100 is given, a box of 100x100 pixels with the\n * coordinate at its center will be returned)\n */\n size: number\n /** Where the center of the \"size\" pixel(s) extent should be. */\n coordinate: SingleCoordinate\n /** Projection used to describe the coordinates */\n projection: CoordinateSystem\n /** Current map resolution, necessary to calculate how much distance \"size\" pixel(s) means. */\n resolution: number\n /** Tells if the extent's value should be rounded before being returned. Default is `false` */\n rounded?: boolean\n}\n\nexport function createPixelExtentAround(\n config: ConfigCreatePixelExtentAround\n): FlatExtent | undefined {\n const { size, coordinate, projection, resolution, rounded = false } = config\n if (!size || !coordinate || !projection || !resolution) {\n return undefined\n }\n let coordinatesWgs84 = coordinate\n if (projection.epsg !== WGS84.epsg) {\n coordinatesWgs84 = proj4(projection.epsg, WGS84.epsg, coordinate)\n }\n const bufferAround = buffer(\n point(coordinatesWgs84),\n // sphere of the wanted number of pixels as radius around the coordinate\n size * resolution,\n { units: 'meters' }\n )\n if (!bufferAround) {\n return undefined\n }\n const extent: FlatExtent = projExtent(WGS84, projection, bbox(bufferAround) as FlatExtent)\n\n if (rounded) {\n return extent.map((value: number) => round(value)) as FlatExtent\n }\n return extent\n}\n\nexport interface SwissGeoExtentUtils {\n projExtent: typeof projExtent\n normalizeExtent: typeof normalizeExtent\n flattenExtent: typeof flattenExtent\n getExtentIntersectionWithCurrentProjection: typeof getExtentIntersectionWithCurrentProjection\n createPixelExtentAround: typeof createPixelExtentAround\n getExtentCenter: typeof getExtentCenter\n}\n\nconst extentUtils: SwissGeoExtentUtils = {\n projExtent,\n normalizeExtent,\n flattenExtent,\n getExtentIntersectionWithCurrentProjection,\n createPixelExtentAround,\n getExtentCenter,\n}\nexport { extentUtils }\nexport default extentUtils\n","var u = /* @__PURE__ */ ((c) => (c[c.Error = 0] = \"Error\", c[c.Warn = 1] = \"Warn\", c[c.Info = 2] = \"Info\", c[c.Debug = 3] = \"Debug\", c))(u || {}), a = /* @__PURE__ */ ((c) => (c.Red = \"oklch(63.7% 0.237 25.331)\", c.Orange = \"oklch(70.5% 0.213 47.604)\", c.Amber = \"oklch(76.9% 0.188 70.08)\", c.Yellow = \"oklch(79.5% 0.184 86.047)\", c.Lime = \"oklch(76.8% 0.233 130.85)\", c.Green = \"oklch(72.3% 0.219 149.579)\", c.Emerald = \"oklch(69.6% 0.17 162.48)\", c.Teal = \"oklch(70.4% 0.14 182.503)\", c.Cyan = \"oklch(71.5% 0.143 215.221)\", c.Sky = \"oklch(68.5% 0.169 237.323)\", c.Blue = \"oklch(62.3% 0.214 259.815)\", c.Indigo = \"oklch(58.5% 0.233 277.117)\", c.Violet = \"oklch(60.6% 0.25 292.717)\", c.Purple = \"oklch(62.7% 0.265 303.9)\", c.Fuchsia = \"oklch(66.7% 0.295 322.15)\", c.Pink = \"oklch(65.6% 0.241 354.308)\", c.Rose = \"oklch(64.5% 0.246 16.439)\", c.Slate = \"oklch(55.4% 0.046 257.417)\", c.Gray = \"oklch(55.1% 0.027 264.364)\", c.Zinc = \"oklch(55.2% 0.016 285.938)\", c.Neutral = \"oklch(55.6% 0 0)\", c.Stone = \"oklch(55.3% 0.013 58.071)\", c))(a || {});\nfunction r(c) {\n return `color: #000; font-weight: bold; background-color: ${c}; padding: 2px 4px; border-radius: 4px;`;\n}\nfunction l(c) {\n return c.flatMap((t) => {\n if (t && typeof t == \"object\" && \"messages\" in t && Array.isArray(t.messages)) {\n const k = [];\n if (\"title\" in t && typeof t.title == \"string\") {\n k.push(`%c[${t.title}]%c`);\n let n = \"oklch(55.4% 0.046 257.417)\";\n \"titleColor\" in t && typeof t.titleColor == \"string\" && (n = t.titleColor), k.push(r(n)), k.push(\"\");\n }\n return k.push(...t.messages), k;\n }\n return t;\n });\n}\nfunction h(c, t) {\n if (p.wantedLevels.includes(c))\n switch (c) {\n case 0:\n console.error(...l(t));\n break;\n case 1:\n console.warn(...l(t));\n break;\n case 2:\n console.info(...l(t));\n break;\n case 3:\n console.debug(...l(t));\n break;\n }\n}\nconst p = {\n wantedLevels: [\n 0,\n 1\n /* Warn */\n ],\n error: (...c) => h(0, c),\n warn: (...c) => h(1, c),\n info: (...c) => h(2, c),\n debug: (...c) => h(3, c)\n};\nexport {\n u as LogLevel,\n a as LogPreDefinedColor,\n p as default\n};\n","import type proj4 from 'proj4'\n\nimport log from '@swissgeo/log'\n\nimport type CoordinateSystem from '@/proj/CoordinateSystem'\n\nimport { LV03, LV95, WEBMERCATOR } from '@/proj'\n\n/**\n * Proj4 comes with [EPSG:4326]{@link https://epsg.io/4326} as default projection.\n *\n * By default, this adds the two Swiss projections ([LV95/EPSG:2056]{@link https://epsg.io/2056} and\n * [LV03/EPSG:21781]{@link https://epsg.io/21781}) and metric Web Mercator\n * ([EPSG:3857]{@link https://epsg.io/3857}) definitions to proj4\n *\n * Further projection can be added by settings the param projections (do not forget to include LV95,\n * LV03 and/or WebMercator if you intended to use them too)\n */\nconst registerProj4 = (\n proj4Instance: typeof proj4,\n projections: CoordinateSystem[] = [WEBMERCATOR, LV95, LV03]\n): void => {\n // adding projection defining a transformation matrix to proj4 (these projection matrices can be found on the epsg.io website)\n projections\n .filter((projection) => projection.proj4transformationMatrix)\n .forEach((projection) => {\n try {\n proj4Instance.defs(projection.epsg, projection.proj4transformationMatrix)\n } catch (err) {\n const error = err ? (err as Error) : new Error('Unknown error')\n log.error('Error while setting up projection in proj4', projection.epsg, error)\n throw error\n }\n })\n}\n\nexport { registerProj4 }\nexport default registerProj4\n","/** @module swissgeo/coordinates */\n\nimport proj4 from 'proj4'\n\nimport type { SwissGeoCoordinatesUtils } from '@/coordinatesUtils'\nimport type { SwissGeoExtentUtils } from '@/extentUtils'\nimport type { SwissGeoCoordinateCRS } from '@/proj'\n\nimport { coordinatesUtils } from '@/coordinatesUtils'\nimport { extentUtils } from '@/extentUtils'\nimport crs from '@/proj'\nimport registerProj4 from '@/registerProj4'\n\nexport * from '@/proj'\nexport * from '@/registerProj4'\nexport * from '@/coordinatesUtils'\nexport * from '@/extentUtils'\n\n// registering local instance of proj4, needed for some @swissgeo/coordinates functions\nregisterProj4(proj4)\n\ninterface SwissGeoCoordinates extends SwissGeoCoordinateCRS {\n coordinatesUtils: SwissGeoCoordinatesUtils\n extentUtils: SwissGeoExtentUtils\n registerProj4: typeof registerProj4\n}\n\nconst coordinates: SwissGeoCoordinates = { ...crs, coordinatesUtils, extentUtils, registerProj4 }\nexport default coordinates\n"],"names":["lineclip","points","bbox","result","len","codeA","bitCode","part","i","codeB","lastCode","a","b","intersect","polygonclip","edge","prev","prevInside","p","inside","code","bboxClip","feature","geom","getGeom","type","properties","coords","lines","line","lineString","multiLineString","polygon","clipPolygon","multiPolygon","poly","rings","outRings","ring","clipped","center","geojson","options","ext","x","y","point","t","e","module","this","n","u","h","c","r","v","s","o","l","f","g","d","_","m","k","I","E","N","T","S","L","C","R","w","O","M","A","P","D","F","G","q","Y","z","X","B","U","V","H","Z","j","W","K","J","Q","$","tt","et","nt","it","rt","st","at","ot","ut","lt","ht","ct","ft","gt","vt","yt","dt","_t","pt","mt","kt","xt","It","Et","Nt","Tt","St","Lt","Ct","Rt","wt","Ot","bt","Mt","At","Pt","Dt","Ft","Gt","qt","Yt","zt","Xt","Bt","Ut","Vt","Ht","Zt","jt","Wt","Kt","Jt","Qt","$t","te","ee","ne","ie","re","se","ae","oe","ue","le","he","ce","fe","ge","ve","ye","de","_e","pe","me","ke","xe","Ie","Ee","Ne","Te","Se","Le","Ce","Re","we","Oe","be","Me","Ae","Pe","De","Fe","Ge","qe","Ye","ze","Xe","Be","Ue","Ve","He","Ze","je","We","Ke","Je","Qe","$e","tn","en","nn","rn","sn","an","on","un","ln","hn","cn","fn","gn","vn","yn","dn","_n","xn","pn","mn","kn","In","En","Nn","Tn","Sn","Ln","Cn","Rn","wn","On","bn","Mn","An","Pn","Dn","Fn","Gn","qn","Yn","zn","Xn","Bn","Un","Vn","Hn","Zn","jn","Wn","Kn","Jn","Qn","ri","$n","ti","ei","ni","ii","si","ai","oi","ui","li","hi","ci","fi","gi","vi","yi","di","_i","pi","adder","Adder","add","temp","bv","av","epsilon","halfPi","quarterPi","tau","degrees","radians","abs","atan","atan2","cos","sin","sqrt","acos","asin","noop","streamGeometry","geometry","stream","streamGeometryType","streamObjectType","object","features","coordinates","streamLine","streamPolygon","geometries","closed","coordinate","geoStream","spherical","cartesian","lambda","phi","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","circleStream","radius","delta","direction","t0","t1","cosRadius","sinRadius","step","circleRadius","clipBuffer","clipLine","x0","y0","x1","y1","ax","ay","bx","by","dx","dy","pointEqual","Intersection","other","entry","segments","compareIntersection","startInside","interpolate","subject","clip","segment","p0","p1","link","start","current","isSubject","array","ascending","bisector","compare","ascendingComparator","lo","mid","merge","arrays","merged","clipMax","clipMin","clipExtent","visible","from","to","a1","corner","comparePoint","ca","cb","activeStream","bufferStream","x__","y__","v__","x_","y_","v_","first","clean","clipStream","lineStart","lineEnd","polygonStart","polygonEnd","polygonInside","winding","a0","b0","b1","cleanInside","linePoint","sum","polygonContains","normal","angle","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","sign","absDelta","antimeridian","arc","intersection","phiArc","identity","boundsStream","boundsPoint","bounds","pointVisible","rotate","sink","rotatedStart","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","pointLine","ringSegments","validSegment","clipAntimeridian","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","clipCircle","cr","smallRadius","notHemisphere","c0","v0","v00","point2","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","polar","meridian","q1","transformer","methods","TransformStream","key","fitExtent","projection","extent","fitSize","size","maxDepth","cosMinDistance","resample","project","delta2","resampleNone","resampleLineTo","depth","d2","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","transformRadians","projectionMutator","projectAt","projectRotate","theta","preclip","postclip","projectResample","projectTransform","cache","cacheStream","invert","reset","recenter","azimuthalRaw","scale","cx","cy","azimuthalInvert","sc","cc","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","geoAzimuthalEquidistant","equirectangularRaw","BufferOp","GeoJSONReader","GeoJSONWriter","jsts","buffer","units","steps","results","geomEach","buffered","bufferFeature","featureCollection","featureEach","feature2","multiBuffered","geometry2","buffered2","defineProjection","projected","projectCoords","reader","distance","radiansToLength","lengthToRadians","writer","coordsIsNaN","unprojectCoords","proj","coord","earthRadius","isValidCoordinate","input","toRoundedString","digits","withThousandsSeparator","enforceDigit","isNumber","value","roundedValue","round","stringValue","formatThousand","wrapXCoordinates","boundsWidth","offset","unwrapGeometryCoordinates","geometryCoordinates","removeZValues","reprojectAndRound","into","depthOne","proj4","parseCRS","crs","epsgNumber","WGS84","allCoordinateSystems","system","coordinatesUtils","projExtent","fromProj","toProj","bottomLeft","topRight","normalizeExtent","extentNormalized","flattenExtent","getExtentIntersectionWithCurrentProjection","extentProjection","currentProjection","currentProjectionAsExtentProjection","intersectionOfExtents","bboxPolygon","getExtentCenter","topLeft","bottomRight","createPixelExtentAround","config","resolution","rounded","coordinatesWgs84","bufferAround","extentUtils","registerProj4","proj4Instance","projections","WEBMERCATOR","LV95","LV03","err","error","log"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]}