import{r as ia}from"./pako-Xa-UToif.js";var ni={},me;function ie(){if(me)return ni;me=1;var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return ni.encode=function(i,e){for(var s="",a,n,h,r,f,o,l,c=0;c>2,f=(a&3)<<4|n>>4,o=(n&15)<<2|h>>6,l=h&63,isNaN(n)?o=l=64:isNaN(h)&&(l=64),s=s+t.charAt(r)+t.charAt(f)+t.charAt(o)+t.charAt(l);return s},ni.decode=function(i,e){var s="",a,n,h,r,f,o,l,c=0;for(i=i.replace(/[^A-Za-z0-9\+\/\=]/g,"");c>4,n=(f&15)<<4|o>>2,h=(o&3)<<6|l,s=s+String.fromCharCode(a),o!=64&&(s=s+String.fromCharCode(n)),l!=64&&(s=s+String.fromCharCode(h));return s},ni}var Y={},xe;function Yt(){if(xe)return Y;if(xe=1,Y.base64=!0,Y.array=!0,Y.string=!0,Y.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",Y.nodebuffer=typeof Buffer<"u",Y.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")Y.blob=!1;else{var t=new ArrayBuffer(0);try{Y.blob=new Blob([t],{type:"application/zip"}).size===0}catch{try{var i=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,e=new i;e.append(t),Y.blob=e.getBlob("application/zip").size===0}catch{Y.blob=!1}}}return Y}var Gi={},hi={},wt={},Ee;function ea(){if(Ee)return wt;Ee=1;var t=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",i=ia();return wt.uncompressInputType=t?"uint8array":"array",wt.compressInputType=t?"uint8array":"array",wt.magic="\b\0",wt.compress=function(e,s){return i.deflateRaw(e,{level:s.level||-1})},wt.uncompress=function(e){return i.inflateRaw(e)},wt}var we;function ee(){return we||(we=1,hi.STORE={magic:"\0\0",compress:function(t,i){return t},uncompress:function(t){return t},compressInputType:null,uncompressInputType:null},hi.DEFLATE=ea()),hi}var oi={exports:{}},Se;function se(){return Se||(Se=1,oi.exports=function(t,i){return new Buffer(t,i)},oi.exports.test=function(t){return Buffer.isBuffer(t)}),oi.exports}var pe;function ot(){return pe||(pe=1,(function(t){var i=Yt(),e=ee(),s=se();t.string2binary=function(o){for(var l="",c=0;c1;)try{d==="array"||d==="nodebuffer"?c.push(String.fromCharCode.apply(null,o.slice(g,Math.min(g+l,u)))):c.push(String.fromCharCode.apply(null,o.subarray(g,Math.min(g+l,u)))),g+=l}catch{l=Math.floor(l/2)}return c.join("")}t.applyFromCharCode=h;function r(o,l){for(var c=0;c"u"||!s.length)return 0;var n=t.getTypeOf(s)!=="string";typeof a>"u"&&(a=0);var h=0,r=0,f=0;a=a^-1;for(var o=0,l=s.length;o>>8^h;return a^-1},Ii}var _t={},Ae;function _s(){return Ae||(Ae=1,_t.LOCAL_FILE_HEADER="PK",_t.CENTRAL_FILE_HEADER="PK",_t.CENTRAL_DIRECTORY_END="PK",_t.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",_t.ZIP64_CENTRAL_DIRECTORY_END="PK",_t.DATA_DESCRIPTOR="PK\x07\b"),_t}var tt={},be;function vs(){return be||(be=1,tt.base64=!1,tt.binary=!1,tt.dir=!1,tt.createFolders=!1,tt.date=null,tt.compression=null,tt.compressionOptions=null,tt.comment=null,tt.unixPermissions=null,tt.dosPermissions=null),tt}var Ni,Ce;function Ms(){if(Ce)return Ni;Ce=1;function t(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}return t.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},Ni=t,Ni}var fi={},Ge;function aa(){if(Ge)return fi;Ge=1;for(var t=ot(),i=Yt(),e=se(),s=new Array(256),a=0;a<256;a++)s[a]=a>=252?6:a>=248?5:a>=240?4:a>=224?3:a>=192?2:1;s[254]=s[254]=1;var n=function(f){var o,l,c,u,d,g=f.length,M=0;for(u=0;u>>6,o[d++]=128|l&63):l<65536?(o[d++]=224|l>>>12,o[d++]=128|l>>>6&63,o[d++]=128|l&63):(o[d++]=240|l>>>18,o[d++]=128|l>>>12&63,o[d++]=128|l>>>6&63,o[d++]=128|l&63);return o},h=function(f,o){var l;for(o=o||f.length,o>f.length&&(o=f.length),l=o-1;l>=0&&(f[l]&192)===128;)l--;return l<0||l===0?o:l+s[f[l]]>o?l:o},r=function(f){var o,l,c,u,d=f.length,g=new Array(d*2);for(l=0,o=0;o4){g[l++]=65533,o+=u-1;continue}for(c&=u===2?31:u===3?15:7;u>1&&o1){g[l++]=65533;continue}c<65536?g[l++]=c:(c-=65536,g[l++]=55296|c>>10&1023,g[l++]=56320|c&1023)}return g.length!==l&&(g.subarray?g=g.subarray(0,l):g.length=l),t.applyFromCharCode(g)};return fi.utf8encode=function(o){return i.nodebuffer?e(o,"utf-8"):n(o)},fi.utf8decode=function(o){if(i.nodebuffer)return t.transformTo("nodebuffer",o).toString("utf-8");o=t.transformTo(i.uint8array?"uint8array":"array",o);for(var l=[],c=0,u=o.length,d=65536;c"u"?"":(this.options.base64&&(y=n.decode(y)),_&&this.options.binary?y=z.utf8decode(y):y=i.transformTo("string",y),!_&&!this.options.binary&&(y=i.transformTo("string",z.utf8encode(y))),y)},M=function(_,y,E){this.name=_,this.dir=E.dir,this.date=E.date,this.comment=E.comment,this.unixPermissions=E.unixPermissions,this.dosPermissions=E.dosPermissions,this._data=y,this.options=E,this._initialMetadata={dir:E.dir,date:E.date}};M.prototype={asText:function(){return g.call(this,!0)},asBinary:function(){return g.call(this,!1)},asNodeBuffer:function(){var _=d(this);return i.transformTo("nodebuffer",_)},asUint8Array:function(){var _=d(this);return i.transformTo("uint8array",_)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var v=function(_,y){var E="",A;for(A=0;A>>8;return E},S=function(){var _={},y,E;for(y=0;y"u"&&(_[E]=arguments[y][E]);return _},p=function(_){return _=_||{},_.base64===!0&&(_.binary===null||_.binary===void 0)&&(_.binary=!0),_=S(_,a),_.date=_.date||new Date,_.compression!==null&&(_.compression=_.compression.toUpperCase()),_},P=function(_,y,E){var A=i.getTypeOf(y),C;if(E=p(E),typeof E.unixPermissions=="string"&&(E.unixPermissions=parseInt(E.unixPermissions,8)),E.unixPermissions&&E.unixPermissions&16384&&(E.dir=!0),E.dosPermissions&&E.dosPermissions&16&&(E.dir=!0),E.dir&&(_=b(_)),E.createFolders&&(C=G(_))&&I.call(this,C,!0),E.dir||y===null||typeof y>"u")E.base64=!1,E.binary=!1,y=null,A=null;else if(A==="string")E.binary&&!E.base64&&E.optimizedBinaryString!==!0&&(y=i.string2binary(y));else{if(E.base64=!1,E.binary=!0,!A&&!(y instanceof r))throw new Error("The data of '"+_+"' is in an unsupported format !");A==="arraybuffer"&&(y=i.transformTo("uint8array",y))}var N=new M(_,y,E);return this.files[_]=N,N},G=function(_){_.slice(-1)=="/"&&(_=_.substring(0,_.length-1));var y=_.lastIndexOf("/");return y>0?_.substring(0,y):""},b=function(_){return _.slice(-1)!="/"&&(_+="/"),_},I=function(_,y){return y=typeof y<"u"?y:!1,_=b(_),this.files[_]||P.call(this,_,null,{dir:!0,createFolders:y}),this.files[_]},B=function(_,y,E){var A=new r,C;return _._data instanceof r?(A.uncompressedSize=_._data.uncompressedSize,A.crc32=_._data.crc32,A.uncompressedSize===0||_.dir?(y=h.STORE,A.compressedContent="",A.crc32=0):_._data.compressionMethod===y.magic?A.compressedContent=_._data.getCompressedContent():(C=_._data.getContent(),A.compressedContent=y.compress(i.transformTo(y.compressInputType,C),E))):(C=d(_),(!C||C.length===0||_.dir)&&(y=h.STORE,C=""),A.uncompressedSize=C.length,A.crc32=e(C),A.compressedContent=y.compress(i.transformTo(y.compressInputType,C),E)),A.compressedSize=A.compressedContent.length,A.compressionMethod=y.magic,A},q=function(_,y){var E=_;return _||(E=y?16893:33204),(E&65535)<<16},U=function(_,y){return(_||0)&63},rt=function(_,y,E,A,C){E.compressedContent;var N=i.transformTo("string",o.utf8encode(y.name)),Tt=y.comment||"",ft=i.transformTo("string",o.utf8encode(Tt)),Et=N.length!==y.name.length,Ft=ft.length!==Tt.length,Lt=y.options,K,Q,lt="",ct="",dt="",nt,gt;y._initialMetadata.dir!==y.dir?nt=y.dir:nt=Lt.dir,y._initialMetadata.date!==y.date?gt=y.date:gt=Lt.date;var ri=0,Ci=0;nt&&(ri|=16),C==="UNIX"?(Ci=798,ri|=q(y.unixPermissions,nt)):(Ci=20,ri|=U(y.dosPermissions)),K=gt.getHours(),K=K<<6,K=K|gt.getMinutes(),K=K<<5,K=K|gt.getSeconds()/2,Q=gt.getFullYear()-1980,Q=Q<<4,Q=Q|gt.getMonth()+1,Q=Q<<5,Q=Q|gt.getDate(),Et&&(ct=v(1,1)+v(e(N),4)+N,lt+="up"+v(ct.length,2)+ct),Ft&&(dt=v(1,1)+v(this.crc32(ft),4)+ft,lt+="uc"+v(dt.length,2)+dt);var J="";J+=` \0`,J+=Et||Ft?"\0\b":"\0\0",J+=E.compressionMethod,J+=v(K,2),J+=v(Q,2),J+=v(E.crc32,4),J+=v(E.compressedSize,4),J+=v(E.uncompressedSize,4),J+=v(N.length,2),J+=v(lt.length,2);var Ys=s.LOCAL_FILE_HEADER+J+N+lt,ta=s.CENTRAL_FILE_HEADER+v(Ci,2)+J+v(ft.length,2)+"\0\0\0\0"+v(ri,4)+v(A,4)+N+lt+ft;return{fileRecord:Ys,dirRecord:ta,compressedObject:E}},z={load:function(_,y){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(_){var y=[],E,A,C,N;for(E in this.files)this.files.hasOwnProperty(E)&&(C=this.files[E],N=new M(C.name,C._data,S(C.options)),A=E.slice(this.root.length,E.length),E.slice(0,this.root.length)===this.root&&_(A,N)&&y.push(N));return y},file:function(_,y,E){if(arguments.length===1)if(i.isRegExp(_)){var A=_;return this.filter(function(C,N){return!N.dir&&A.test(C)})}else return this.filter(function(C,N){return!N.dir&&C===_})[0]||null;else _=this.root+_,P.call(this,_,y,E);return this},folder:function(_){if(!_)return this;if(i.isRegExp(_))return this.filter(function(C,N){return N.dir&&_.test(C)});var y=this.root+_,E=I.call(this,y),A=this.clone();return A.root=E.name,A},remove:function(_){_=this.root+_;var y=this.files[_];if(y||(_.slice(-1)!="/"&&(_+="/"),y=this.files[_]),y&&!y.dir)delete this.files[_];else for(var E=this.filter(function(C,N){return N.name.slice(0,_.length)===_}),A=0;A=this.index;a--)s=(s<<8)+this.byteAt(a);return this.index+=e,s},readString:function(e){return t.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1)}},Oi=i,Oi}var Ti,Be;function ms(){if(Be)return Ti;Be=1;var t=ys(),i=ot();function e(s,a){this.data=s,a||(this.data=i.string2binary(this.data)),this.length=this.data.length,this.index=0}return e.prototype=new t,e.prototype.byteAt=function(s){return this.data.charCodeAt(s)},e.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)},e.prototype.readData=function(s){this.checkOffset(s);var a=this.data.slice(this.index,this.index+s);return this.index+=s,a},Ti=e,Ti}var Fi,Oe;function xs(){if(Oe)return Fi;Oe=1;var t=ys();function i(e){e&&(this.data=e,this.length=this.data.length,this.index=0)}return i.prototype=new t,i.prototype.byteAt=function(e){return this.data[e]},i.prototype.lastIndexOfSignature=function(e){for(var s=e.charCodeAt(0),a=e.charCodeAt(1),n=e.charCodeAt(2),h=e.charCodeAt(3),r=this.length-4;r>=0;--r)if(this.data[r]===s&&this.data[r+1]===a&&this.data[r+2]===n&&this.data[r+3]===h)return r;return-1},i.prototype.readData=function(e){if(this.checkOffset(e),e===0)return new Uint8Array(0);var s=this.data.subarray(this.index,this.index+e);return this.index+=e,s},Fi=i,Fi}var Li,Te;function ha(){if(Te)return Li;Te=1;var t=xs();function i(e){this.data=e,this.length=this.data.length,this.index=0}return i.prototype=new t,i.prototype.readData=function(e){this.checkOffset(e);var s=this.data.slice(this.index,this.index+e);return this.index+=e,s},Li=i,Li}var Ui,Fe;function oa(){if(Fe)return Ui;Fe=1;var t=ms(),i=ot(),e=Ms(),s=ae(),a=0,n=3;function h(r,f){this.options=r,this.loadOptions=f}return h.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},prepareCompressedContent:function(r,f,o){return function(){var l=r.index;r.setIndex(f);var c=r.readData(o);return r.setIndex(l),c}},prepareContent:function(r,f,o,l,c){return function(){var u=i.transformTo(l.uncompressInputType,this.getCompressedContent()),d=l.uncompress(u);if(d.length!==c)throw new Error("Bug : uncompressed data size mismatch");return d}},readLocalPart:function(r){var f,o;if(r.skip(22),this.fileNameLength=r.readInt(2),o=r.readInt(2),this.fileName=r.readString(this.fileNameLength),r.skip(o),this.compressedSize==-1||this.uncompressedSize==-1)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)");if(f=i.findCompression(this.compressionMethod),f===null)throw new Error("Corrupted zip : compression "+i.pretty(this.compressionMethod)+" unknown (inner file : "+this.fileName+")");if(this.decompressed=new e,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(r,r.index,this.compressedSize,f),this.decompressed.getContent=this.prepareContent(r,r.index,this.compressedSize,f,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=i.transformTo("string",this.decompressed.getContent()),s.crc32(this.decompressed)!==this.crc32))throw new Error("Corrupted zip : CRC32 mismatch")},readCentralPart:function(r){if(this.versionMadeBy=r.readInt(2),this.versionNeeded=r.readInt(2),this.bitFlag=r.readInt(2),this.compressionMethod=r.readString(2),this.date=r.readDate(),this.crc32=r.readInt(4),this.compressedSize=r.readInt(4),this.uncompressedSize=r.readInt(4),this.fileNameLength=r.readInt(2),this.extraFieldsLength=r.readInt(2),this.fileCommentLength=r.readInt(2),this.diskNumberStart=r.readInt(2),this.internalFileAttributes=r.readInt(2),this.externalFileAttributes=r.readInt(4),this.localHeaderOffset=r.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");this.fileName=r.readString(this.fileNameLength),this.readExtraFields(r),this.parseZIP64ExtraField(r),this.fileComment=r.readString(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var r=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),r===a&&(this.dosPermissions=this.externalFileAttributes&63),r===n&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileName.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(r){if(this.extraFields[1]){var f=new t(this.extraFields[1].value);this.uncompressedSize===i.MAX_VALUE_32BITS&&(this.uncompressedSize=f.readInt(8)),this.compressedSize===i.MAX_VALUE_32BITS&&(this.compressedSize=f.readInt(8)),this.localHeaderOffset===i.MAX_VALUE_32BITS&&(this.localHeaderOffset=f.readInt(8)),this.diskNumberStart===i.MAX_VALUE_32BITS&&(this.diskNumberStart=f.readInt(4))}},readExtraFields:function(r){var f=r.index,o,l,c;for(this.extraFields=this.extraFields||{};r.index1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var o,l;for(o=0;oArray.isArray(s)&&s[0]==="ID");return e&&e.length>=3?{authority:e[1],code:parseInt(e[2],10)}:null}static convertUnit(i,e="unit"){if(!i||i.length<3)return{type:e,name:"unknown",conversion_factor:null};const s=i[1],a=parseFloat(i[2])||null,n=i.find(r=>Array.isArray(r)&&r[0]==="ID"),h=n?{authority:n[1],code:parseInt(n[2],10)}:null;return{type:e,name:s,conversion_factor:a,id:h}}static convertAxis(i){const e=i[1]||"Unknown";let s;const a=e.match(/^\((.)\)$/);if(a){const o=a[1].toUpperCase();if(o==="E")s="east";else if(o==="N")s="north";else if(o==="U")s="up";else throw new Error(`Unknown axis abbreviation: ${o}`)}else s=i[2]?i[2].toLowerCase():"unknown";const n=i.find(o=>Array.isArray(o)&&o[0]==="ORDER"),h=n?parseInt(n[1],10):null,r=i.find(o=>Array.isArray(o)&&(o[0]==="LENGTHUNIT"||o[0]==="ANGLEUNIT"||o[0]==="SCALEUNIT")),f=this.convertUnit(r);return{name:e,direction:s,unit:f,order:h}}static extractAxes(i){return i.filter(e=>Array.isArray(e)&&e[0]==="AXIS").map(e=>this.convertAxis(e)).sort((e,s)=>(e.order||0)-(s.order||0))}static convert(i,e={}){switch(i[0]){case"PROJCRS":e.type="ProjectedCRS",e.name=i[1],e.base_crs=i.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")?this.convert(i.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")):null,e.conversion=i.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")?this.convert(i.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")):null;const s=i.find(u=>Array.isArray(u)&&u[0]==="CS");s&&(e.coordinate_system={type:s[1],axis:this.extractAxes(i)});const a=i.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT");if(a){const u=this.convertUnit(a);e.coordinate_system.unit=u}e.id=this.getId(i);break;case"BASEGEOGCRS":case"GEOGCRS":e.type="GeographicCRS",e.name=i[1];const n=i.find(u=>Array.isArray(u)&&(u[0]==="DATUM"||u[0]==="ENSEMBLE"));if(n){const u=this.convert(n);n[0]==="ENSEMBLE"?e.datum_ensemble=u:e.datum=u;const d=i.find(g=>Array.isArray(g)&&g[0]==="PRIMEM");d&&d[1]!=="Greenwich"&&(u.prime_meridian={name:d[1],longitude:parseFloat(d[2])})}e.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(i)},e.id=this.getId(i);break;case"DATUM":e.type="GeodeticReferenceFrame",e.name=i[1],e.ellipsoid=i.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")?this.convert(i.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":e.type="DatumEnsemble",e.name=i[1],e.members=i.filter(u=>Array.isArray(u)&&u[0]==="MEMBER").map(u=>({type:"DatumEnsembleMember",name:u[1],id:this.getId(u)}));const h=i.find(u=>Array.isArray(u)&&u[0]==="ENSEMBLEACCURACY");h&&(e.accuracy=parseFloat(h[1]));const r=i.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID");r&&(e.ellipsoid=this.convert(r)),e.id=this.getId(i);break;case"ELLIPSOID":e.type="Ellipsoid",e.name=i[1],e.semi_major_axis=parseFloat(i[2]),e.inverse_flattening=parseFloat(i[3]),i.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT")&&this.convert(i.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT"),e);break;case"CONVERSION":e.type="Conversion",e.name=i[1],e.method=i.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(i.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,e.parameters=i.filter(u=>Array.isArray(u)&&u[0]==="PARAMETER").map(u=>this.convert(u));break;case"METHOD":e.type="Method",e.name=i[1],e.id=this.getId(i);break;case"PARAMETER":e.type="Parameter",e.name=i[1],e.value=parseFloat(i[2]),e.unit=this.convertUnit(i.find(u=>Array.isArray(u)&&(u[0]==="LENGTHUNIT"||u[0]==="ANGLEUNIT"||u[0]==="SCALEUNIT"))),e.id=this.getId(i);break;case"BOUNDCRS":e.type="BoundCRS";const f=i.find(u=>Array.isArray(u)&&u[0]==="SOURCECRS");if(f){const u=f.find(d=>Array.isArray(d));e.source_crs=u?this.convert(u):null}const o=i.find(u=>Array.isArray(u)&&u[0]==="TARGETCRS");if(o){const u=o.find(d=>Array.isArray(d));e.target_crs=u?this.convert(u):null}const l=i.find(u=>Array.isArray(u)&&u[0]==="ABRIDGEDTRANSFORMATION");l?e.transformation=this.convert(l):e.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(e.type="Transformation",e.name=i[1],e.method=i.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(i.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,e.parameters=i.filter(u=>Array.isArray(u)&&(u[0]==="PARAMETER"||u[0]==="PARAMETERFILE")).map(u=>{if(u[0]==="PARAMETER")return this.convert(u);if(u[0]==="PARAMETERFILE")return{name:u[1],value:u[2],id:{authority:"EPSG",code:8656}}}),e.parameters.length===7){const u=e.parameters[6];u.name==="Scale difference"&&(u.value=Math.round((u.value-1)*1e12)/1e6)}e.id=this.getId(i);break;case"AXIS":e.coordinate_system||(e.coordinate_system={type:"unspecified",axis:[]}),e.coordinate_system.axis.push(this.convertAxis(i));break;case"LENGTHUNIT":const c=this.convertUnit(i,"LinearUnit");e.coordinate_system&&e.coordinate_system.axis&&e.coordinate_system.axis.forEach(u=>{u.unit||(u.unit=c)}),c.conversion_factor&&c.conversion_factor!==1&&e.semi_major_axis&&(e.semi_major_axis={value:e.semi_major_axis,unit:c});break;default:e.keyword=i[0];break}return e}}class ma extends Es{static convert(i,e={}){return super.convert(i,e),e.coordinate_system&&e.coordinate_system.subtype==="Cartesian"&&delete e.coordinate_system,e.usage&&delete e.usage,e}}class xa extends Es{static convert(i,e={}){super.convert(i,e);const s=i.find(n=>Array.isArray(n)&&n[0]==="CS");s&&(e.coordinate_system={subtype:s[1],axis:this.extractAxes(i)});const a=i.find(n=>Array.isArray(n)&&n[0]==="USAGE");if(a){const n=a.find(f=>Array.isArray(f)&&f[0]==="SCOPE"),h=a.find(f=>Array.isArray(f)&&f[0]==="AREA"),r=a.find(f=>Array.isArray(f)&&f[0]==="BBOX");e.usage={},n&&(e.usage.scope=n[1]),h&&(e.usage.area=h[1]),r&&(e.usage.bbox=r.slice(1))}return e}}function Ea(t){return t.find(i=>Array.isArray(i)&&i[0]==="USAGE")?"2019":(t.find(i=>Array.isArray(i)&&i[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function wa(t){return(Ea(t)==="2019"?xa:ma).convert(t)}function Sa(t){const i=t.toUpperCase();return i.includes("PROJCRS")||i.includes("GEOGCRS")||i.includes("BOUNDCRS")||i.includes("VERTCRS")||i.includes("LENGTHUNIT")||i.includes("ANGLEUNIT")||i.includes("SCALEUNIT")?"WKT2":(i.includes("PROJCS")||i.includes("GEOGCS")||i.includes("LOCAL_CS")||i.includes("VERT_CS")||i.includes("UNIT"),"WKT1")}var Zt=1,ws=2,Ss=3,Mi=4,ps=5,re=-1,pa=/\s/,Pa=/[A-Za-z]/,Aa=/[A-Za-z84_]/,Pi=/[,\]]/,Ps=/[\d\.E\-\+]/;function ut(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=Zt}ut.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==Mi)for(;pa.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case Zt:return this.neutral(t);case ws:return this.keyword(t);case Mi:return this.quoted(t);case ps:return this.afterquote(t);case Ss:return this.number(t);case re:return}};ut.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=Mi;return}if(Pi.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};ut.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=Zt;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=Zt,this.currentObject=this.stack.pop(),this.currentObject||(this.state=re);return}};ut.prototype.number=function(t){if(Ps.test(t)){this.word+=t;return}if(Pi.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};ut.prototype.quoted=function(t){if(t==='"'){this.state=ps;return}this.word+=t};ut.prototype.keyword=function(t){if(Aa.test(t)){this.word+=t;return}if(t==="["){var i=[];i.push(this.word),this.level++,this.root===null?this.root=i:this.currentObject.push(i),this.stack.push(this.currentObject),this.currentObject=i,this.state=Zt;return}if(Pi.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};ut.prototype.neutral=function(t){if(Pa.test(t)){this.word=t,this.state=ws;return}if(t==='"'){this.word="",this.state=Mi;return}if(Ps.test(t)){this.word=t,this.state=Ss;return}if(Pi.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};ut.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(i==="polar stereographic"||i==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=st(t.lat0>0?90:-90),delete t.lat1)}function We(t){let i={units:null,to_meter:void 0};return typeof t=="string"?(i.units=t.toLowerCase(),i.units==="metre"&&(i.units="meter"),i.units==="meter"&&(i.to_meter=1)):t&&t.name&&(i.units=t.name.toLowerCase(),i.units==="metre"&&(i.units="meter"),i.to_meter=t.conversion_factor),i}function He(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Ve(t,i){t.ellipsoid.radius?(i.a=t.ellipsoid.radius,i.rf=0):(i.a=He(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?i.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(i.rf=i.a/(i.a-He(t.ellipsoid.semi_minor_axis))))}function yi(t,i={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(yi(t.source_crs,i),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?i.nadgrids=t.transformation.parameters[0].value:i.datum_params=t.transformation.parameters.map(e=>e.value)),i):(Object.keys(t).forEach(e=>{const s=t[e];if(s!==null)switch(e){case"name":if(i.srsCode)break;i.name=s,i.srsCode=s;break;case"type":s==="GeographicCRS"?i.projName="longlat":s==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(i.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":s.ellipsoid&&(i.ellps=s.ellipsoid.name,Ve(s,i)),s.prime_meridian&&(i.from_greenwich=s.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":i.ellps=s.name,Ve(s,i);break;case"prime_meridian":i.long0=(s.longitude||0)*Math.PI/180;break;case"coordinate_system":if(s.axis){if(i.axis=s.axis.map(a=>{const n=a.direction;if(n==="east")return"e";if(n==="north")return"n";if(n==="west")return"w";if(n==="south")return"s";throw new Error(`Unknown axis direction: ${n}`)}).join("")+"u",s.unit){const{units:a,to_meter:n}=We(s.unit);i.units=a,i.to_meter=n}else if(s.axis[0]&&s.axis[0].unit){const{units:a,to_meter:n}=We(s.axis[0].unit);i.units=a,i.to_meter=n}}break;case"id":s.authority&&s.code&&(i.title=s.authority+":"+s.code);break;case"conversion":s.method&&s.method.name&&(i.projName=s.method.name),s.parameters&&s.parameters.forEach(a=>{const n=a.name.toLowerCase().replace(/\s+/g,"_"),h=a.value;a.unit&&a.unit.conversion_factor?i[n]=h*a.unit.conversion_factor:a.unit==="degree"?i[n]=h*Math.PI/180:i[n]=h});break;case"unit":s.name&&(i.units=s.name.toLowerCase(),i.units==="metre"&&(i.units="meter")),s.conversion_factor&&(i.to_meter=s.conversion_factor);break;case"base_crs":yi(s,i),i.datumCode=s.id?s.id.authority+"_"+s.id.code:s.name;break}}),i.latitude_of_false_origin!==void 0&&(i.lat0=i.latitude_of_false_origin),i.longitude_of_false_origin!==void 0&&(i.long0=i.longitude_of_false_origin),i.latitude_of_standard_parallel!==void 0&&(i.lat0=i.latitude_of_standard_parallel,i.lat1=i.latitude_of_standard_parallel),i.latitude_of_1st_standard_parallel!==void 0&&(i.lat1=i.latitude_of_1st_standard_parallel),i.latitude_of_2nd_standard_parallel!==void 0&&(i.lat2=i.latitude_of_2nd_standard_parallel),i.latitude_of_projection_centre!==void 0&&(i.lat0=i.latitude_of_projection_centre),i.longitude_of_projection_centre!==void 0&&(i.longc=i.longitude_of_projection_centre),i.easting_at_false_origin!==void 0&&(i.x0=i.easting_at_false_origin),i.northing_at_false_origin!==void 0&&(i.y0=i.northing_at_false_origin),i.latitude_of_natural_origin!==void 0&&(i.lat0=i.latitude_of_natural_origin),i.longitude_of_natural_origin!==void 0&&(i.long0=i.longitude_of_natural_origin),i.longitude_of_origin!==void 0&&(i.long0=i.longitude_of_origin),i.false_easting!==void 0&&(i.x0=i.false_easting),i.easting_at_projection_centre&&(i.x0=i.easting_at_projection_centre),i.false_northing!==void 0&&(i.y0=i.false_northing),i.northing_at_projection_centre&&(i.y0=i.northing_at_projection_centre),i.standard_parallel_1!==void 0&&(i.lat1=i.standard_parallel_1),i.standard_parallel_2!==void 0&&(i.lat2=i.standard_parallel_2),i.scale_factor_at_natural_origin!==void 0&&(i.k0=i.scale_factor_at_natural_origin),i.scale_factor_at_projection_centre!==void 0&&(i.k0=i.scale_factor_at_projection_centre),i.scale_factor_on_pseudo_standard_parallel!==void 0&&(i.k0=i.scale_factor_on_pseudo_standard_parallel),i.azimuth!==void 0&&(i.alpha=i.azimuth),i.azimuth_at_projection_centre!==void 0&&(i.alpha=i.azimuth_at_projection_centre),i.angle_from_rectified_to_skew_grid&&(i.rectified_grid_angle=i.angle_from_rectified_to_skew_grid),As(i),i)}var Ga=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function Ia(t,i){var e=i[0],s=i[1];!(e in t)&&s in t&&(t[e]=t[s],i.length===3&&(t[e]=i[2](t[e])))}function bs(t){for(var i=Object.keys(t),e=0,s=i.length;e-1;var i=yt(t,"authority");if(i){var e=yt(i,"epsg");return e&&Xe.indexOf(e)>-1}}function Ta(t){var i=yt(t,"extension");if(i)return yt(i,"proj4")}function Fa(t){return t[0]==="+"}function La(t){if(Da(t)){if(Ra(t))return k[t];if(Ba(t)){var i=mi(t);if(Oa(i))return k["EPSG:3857"];var e=Ta(i);return e?Zi(e):i}if(Fa(t))return Zi(t)}else return"projName"in t?t:mi(t)}function Ze(t,i){t=t||{};var e,s;if(!i)return t;for(s in i)e=i[s],e!==void 0&&(t[s]=e);return t}function ht(t,i,e){var s=t*i;return e/Math.sqrt(1-s*s)}function ti(t){return t<0?-1:1}function w(t,i){return i||Math.abs(t)<=F?t:t-ti(t)*Xt}function at(t,i,e){var s=t*e,a=.5*t;return s=Math.pow((1-s)/(1+s),a),Math.tan(.5*(m-i))/s}function Qt(t,i){for(var e=.5*t,s,a,n=m-2*Math.atan(i),h=0;h<=15;h++)if(s=t*Math.sin(n),a=m-2*Math.atan(i*Math.pow((1-s)/(1+s),e))-n,n+=a,Math.abs(a)<=1e-10)return n;return-9999}function Ua(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=ht(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function qa(t){var i=t.x,e=t.y;if(e*X>90&&e*X<-90&&i*X>180&&i*X<-180)return null;var s,a;if(Math.abs(Math.abs(e)-m)<=x)return null;if(this.sphere)s=this.x0+this.a*this.k0*w(i-this.long0,this.over),a=this.y0+this.a*this.k0*Math.log(Math.tan(D+.5*e));else{var n=Math.sin(e),h=at(this.e,e,n);s=this.x0+this.a*this.k0*w(i-this.long0,this.over),a=this.y0-this.a*this.k0*Math.log(h)}return t.x=s,t.y=a,t}function ka(t){var i=t.x-this.x0,e=t.y-this.y0,s,a;if(this.sphere)a=m-2*Math.atan(Math.exp(-e/(this.a*this.k0)));else{var n=Math.exp(-e/(this.a*this.k0));if(a=Qt(this.e,n),a===-9999)return null}return s=w(this.long0+i/(this.a*this.k0),this.over),t.x=s,t.y=a,t}var za=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const ja={init:Ua,forward:qa,inverse:ka,names:za};function $a(){}function Qe(t){return t}var Cs=["longlat","identity"];const Wa={init:$a,forward:Qe,inverse:Qe,names:Cs};var Ha=[ja,Wa],St={},Ct=[];function Gs(t,i){var e=Ct.length;return t.names?(Ct[e]=t,t.names.forEach(function(s){St[s.toLowerCase()]=e}),this):(console.log(i),!0)}function Is(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function Va(t){if(!t)return!1;var i=t.toLowerCase();if(typeof St[i]<"u"&&Ct[St[i]]||(i=Is(i),i in St&&Ct[St[i]]))return Ct[St[i]]}function Xa(){Ha.forEach(Gs)}const Za={start:Xa,add:Gs,get:Va};var Ns={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Qa=Ns.WGS84;function Ka(t,i,e,s){var a=t*t,n=i*i,h=(a-n)/a,r=0;s?(t*=1-h*(_a+h*(va+h*Ma)),a=t*t,h=0):r=Math.sqrt(h);var f=(a-n)/n;return{es:h,e:r,ep2:f}}function Ja(t,i,e,s,a){if(!t){var n=yt(Ns,s);n||(n=Qa),t=n.a,i=n.b,e=n.rf}return e&&!i&&(i=(1-1/e)*t),(e===0||Math.abs(t-i)3&&(r.datum_params[3]!==0||r.datum_params[4]!==0||r.datum_params[5]!==0||r.datum_params[6]!==0)&&(r.datum_type=Pt,r.datum_params[3]*=jt,r.datum_params[4]*=jt,r.datum_params[5]*=jt,r.datum_params[6]=r.datum_params[6]/1e6+1)),h&&(r.datum_type=Nt,r.grids=h),r.a=e,r.b=s,r.es=a,r.ep2=n,r}var ne={};function ir(t,i,e){return i instanceof ArrayBuffer?er(t,i,e):{ready:sr(t,i)}}function er(t,i,e){var s=!0;e!==void 0&&e.includeErrorFields===!1&&(s=!1);var a=new DataView(i),n=nr(a),h=hr(a,n),r=or(a,h,n,s),f={header:h,subgrids:r};return ne[t]=f,f}async function sr(t,i){for(var e=[],s=await i.getImageCount(),a=s-1;a>=0;a--){var n=await i.getImage(a),h=await n.readRasters(),r=h,f=[n.getWidth(),n.getHeight()],o=n.getBoundingBox().map(Ke),l=[n.fileDirectory.ModelPixelScale[0],n.fileDirectory.ModelPixelScale[1]].map(Ke),c=o[0]+(f[0]-1)*l[0],u=o[3]-(f[1]-1)*l[1],d=r[0],g=r[1],M=[];for(let p=f[1]-1;p>=0;p--)for(let P=f[0]-1;P>=0;P--){var v=p*f[0]+P;M.push([-vt(g[v]),vt(d[v])])}e.push({del:l,lim:f,ll:[-c,u],cvs:M})}var S={header:{nSubgrids:s},subgrids:e};return ne[t]=S,S}function ar(t){if(t===void 0)return null;var i=t.split(",");return i.map(rr)}function rr(t){if(t.length===0)return null;var i=t[0]==="@";return i&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!i,grid:null,isNull:!0}:{name:t,mandatory:!i,grid:ne[t]||null,isNull:!1}}function Ke(t){return t*Math.PI/180}function vt(t){return t/3600*Math.PI/180}function nr(t){var i=t.getInt32(8,!1);return i===11?!1:(i=t.getInt32(8,!0),i!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function hr(t,i){return{nFields:t.getInt32(8,i),nSubgridFields:t.getInt32(24,i),nSubgrids:t.getInt32(40,i),shiftType:Qi(t,56,64).trim(),fromSemiMajorAxis:t.getFloat64(120,i),fromSemiMinorAxis:t.getFloat64(136,i),toSemiMajorAxis:t.getFloat64(152,i),toSemiMinorAxis:t.getFloat64(168,i)}}function Qi(t,i,e){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(i,e)))}function or(t,i,e,s){for(var a=176,n=[],h=0;h5e-11?!1:t.datum_type===pt?t.datum_params[0]===i.datum_params[0]&&t.datum_params[1]===i.datum_params[1]&&t.datum_params[2]===i.datum_params[2]:t.datum_type===Pt?t.datum_params[0]===i.datum_params[0]&&t.datum_params[1]===i.datum_params[1]&&t.datum_params[2]===i.datum_params[2]&&t.datum_params[3]===i.datum_params[3]&&t.datum_params[4]===i.datum_params[4]&&t.datum_params[5]===i.datum_params[5]&&t.datum_params[6]===i.datum_params[6]:!0}function Ds(t,i,e){var s=t.x,a=t.y,n=t.z?t.z:0,h,r,f,o;if(a<-m&&a>-1.001*m)a=-m;else if(a>m&&a<1.001*m)a=m;else{if(a<-m)return{x:-1/0,y:-1/0,z:t.z};if(a>m)return{x:1/0,y:1/0,z:t.z}}return s>Math.PI&&(s-=2*Math.PI),r=Math.sin(a),o=Math.cos(a),f=r*r,h=e/Math.sqrt(1-i*f),{x:(h+n)*o*Math.cos(s),y:(h+n)*o*Math.sin(s),z:(h*(1-i)+n)*r}}function Rs(t,i,e,s){var a=1e-12,n=a*a,h=30,r,f,o,l,c,u,d,g,M,v,S,p,P,G=t.x,b=t.y,I=t.z?t.z:0,B,q,U;if(r=Math.sqrt(G*G+b*b),f=Math.sqrt(G*G+b*b+I*I),r/en&&Ps.y||d>s.x||vr&&Math.abs(f.y)>r);if(h<0)return console.log("Inverse grid shift iterator failed to converge."),s;s.x=w(n.x+e.ll[0]),s.y=n.y+e.ll[1]}else isNaN(n.x)||(s.x=t.x+n.x,s.y=t.y+n.y);return s}function Ye(t,i){var e={x:t.x/i.del[0],y:t.y/i.del[1]},s={x:Math.floor(e.x),y:Math.floor(e.y)},a={x:e.x-1*s.x,y:e.y-1*s.y},n={x:Number.NaN,y:Number.NaN},h;if(s.x<0||s.x>=i.lim[0]||s.y<0||s.y>=i.lim[1])return n;h=s.y*i.lim[0]+s.x;var r={x:i.cvs[h][0],y:i.cvs[h][1]};h++;var f={x:i.cvs[h][0],y:i.cvs[h][1]};h+=i.lim[0];var o={x:i.cvs[h][0],y:i.cvs[h][1]};h--;var l={x:i.cvs[h][0],y:i.cvs[h][1]},c=a.x*a.y,u=a.x*(1-a.y),d=(1-a.x)*(1-a.y),g=(1-a.x)*a.y;return n.x=d*r.x+u*f.x+g*l.x+c*o.x,n.y=d*r.y+u*f.y+g*l.y+c*o.y,n}function ts(t,i,e){var s=e.x,a=e.y,n=e.z||0,h,r,f,o={};for(f=0;f<3;f++)if(!(i&&f===2&&e.z===void 0))switch(f===0?(h=s,"ew".indexOf(t.axis[f])!==-1?r="x":r="y"):f===1?(h=a,"ns".indexOf(t.axis[f])!==-1?r="y":r="x"):(h=n,r="z"),t.axis[f]){case"e":o[r]=h;break;case"w":o[r]=-h;break;case"n":o[r]=h;break;case"s":o[r]=-h;break;case"u":e[r]!==void 0&&(o.z=h);break;case"d":e[r]!==void 0&&(o.z=-h);break;default:return null}return o}function Bs(t){var i={x:t[0],y:t[1]};return t.length>2&&(i.z=t[2]),t.length>3&&(i.m=t[3]),i}function Mr(t){is(t.x),is(t.y)}function is(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function yr(t,i){return(t.datum.datum_type===pt||t.datum.datum_type===Pt||t.datum.datum_type===Nt)&&i.datumCode!=="WGS84"||(i.datum.datum_type===pt||i.datum.datum_type===Pt||i.datum.datum_type===Nt)&&t.datumCode!=="WGS84"}function xi(t,i,e,s){var a;Array.isArray(e)?e=Bs(e):e={x:e.x,y:e.y,z:e.z,m:e.m};var n=e.z!==void 0;if(Mr(e),t.datum&&i.datum&&yr(t,i)&&(a=new et("WGS84"),e=xi(t,a,e,s),t=a),s&&t.axis!=="enu"&&(e=ts(t,!1,e)),t.projName==="longlat")e={x:e.x*T,y:e.y*T,z:e.z||0};else if(t.to_meter&&(e={x:e.x*t.to_meter,y:e.y*t.to_meter,z:e.z||0}),e=t.inverse(e),!e)return;if(t.from_greenwich&&(e.x+=t.from_greenwich),e=_r(t.datum,i.datum,e),!!e)return e=e,i.from_greenwich&&(e={x:e.x-i.from_greenwich,y:e.y,z:e.z||0}),i.projName==="longlat"?e={x:e.x*X,y:e.y*X,z:e.z||0}:(e=i.forward(e),i.to_meter&&(e={x:e.x/i.to_meter,y:e.y/i.to_meter,z:e.z||0})),s&&i.axis!=="enu"?ts(i,!0,e):(e&&!n&&delete e.z,e)}var es=et("WGS84");function Wi(t,i,e,s){var a,n,h;return Array.isArray(e)?(a=xi(t,i,e,s)||{x:NaN,y:NaN},e.length>2?typeof t.name<"u"&&t.name==="geocent"||typeof i.name<"u"&&i.name==="geocent"?typeof a.z=="number"?[a.x,a.y,a.z].concat(e.slice(3)):[a.x,a.y,e[2]].concat(e.slice(3)):[a.x,a.y].concat(e.slice(2)):[a.x,a.y]):(n=xi(t,i,e,s),h=Object.keys(e),h.length===2||h.forEach(function(r){if(typeof t.name<"u"&&t.name==="geocent"||typeof i.name<"u"&&i.name==="geocent"){if(r==="x"||r==="y"||r==="z")return}else if(r==="x"||r==="y")return;n[r]=e[r]}),n)}function ui(t){return t instanceof et?t:typeof t=="object"&&"oProj"in t?t.oProj:et(t)}function mr(t,i,e){var s,a,n=!1,h;return typeof i>"u"?(a=ui(t),s=es,n=!0):(typeof i.x<"u"||Array.isArray(i))&&(e=i,a=ui(t),s=es,n=!0),s||(s=ui(t)),a||(a=ui(i)),e?Wi(s,a,e):(h={forward:function(r,f){return Wi(s,a,r,f)},inverse:function(r,f){return Wi(a,s,r,f)}},n&&(h.oProj=a),h)}var ss=6,Os="AJSAJS",Ts="AFAFAF",Gt=65,H=73,it=79,qt=86,kt=90;const xr={forward:Fs,inverse:Er,toPoint:Ls};function Fs(t,i){return i=i||5,pr(wr({lat:t[1],lon:t[0]}),i)}function Er(t){var i=he(qs(t.toUpperCase()));return i.lat&&i.lon?[i.lon,i.lat,i.lon,i.lat]:[i.left,i.bottom,i.right,i.top]}function Ls(t){var i=he(qs(t.toUpperCase()));return i.lat&&i.lon?[i.lon,i.lat]:[(i.left+i.right)/2,(i.top+i.bottom)/2]}function Hi(t){return t*(Math.PI/180)}function as(t){return 180*(t/Math.PI)}function wr(t){var i=t.lat,e=t.lon,s=6378137,a=.00669438,n=.9996,h,r,f,o,l,c,u,d=Hi(i),g=Hi(e),M,v;v=Math.floor((e+180)/6)+1,e===180&&(v=60),i>=56&&i<64&&e>=3&&e<12&&(v=32),i>=72&&i<84&&(e>=0&&e<9?v=31:e>=9&&e<21?v=33:e>=21&&e<33?v=35:e>=33&&e<42&&(v=37)),h=(v-1)*6-180+3,M=Hi(h),r=a/(1-a),f=s/Math.sqrt(1-a*Math.sin(d)*Math.sin(d)),o=Math.tan(d)*Math.tan(d),l=r*Math.cos(d)*Math.cos(d),c=Math.cos(d)*(g-M),u=s*((1-a/4-3*a*a/64-5*a*a*a/256)*d-(3*a/8+3*a*a/32+45*a*a*a/1024)*Math.sin(2*d)+(15*a*a/256+45*a*a*a/1024)*Math.sin(4*d)-35*a*a*a/3072*Math.sin(6*d));var S=n*f*(c+(1-o+l)*c*c*c/6+(5-18*o+o*o+72*l-58*r)*c*c*c*c*c/120)+5e5,p=n*(u+f*Math.tan(d)*(c*c/2+(5-o+9*l+4*l*l)*c*c*c*c/24+(61-58*o+o*o+600*l-330*r)*c*c*c*c*c*c/720));return i<0&&(p+=1e7),{northing:Math.round(p),easting:Math.round(S),zoneNumber:v,zoneLetter:Sr(i)}}function he(t){var i=t.northing,e=t.easting,s=t.zoneLetter,a=t.zoneNumber;if(a<0||a>60)return null;var n=.9996,h=6378137,r=.00669438,f,o=(1-Math.sqrt(1-r))/(1+Math.sqrt(1-r)),l,c,u,d,g,M,v,S,p,P=e-5e5,G=i;s<"N"&&(G-=1e7),v=(a-1)*6-180+3,f=r/(1-r),M=G/n,S=M/(h*(1-r/4-3*r*r/64-5*r*r*r/256)),p=S+(3*o/2-27*o*o*o/32)*Math.sin(2*S)+(21*o*o/16-55*o*o*o*o/32)*Math.sin(4*S)+151*o*o*o/96*Math.sin(6*S),l=h/Math.sqrt(1-r*Math.sin(p)*Math.sin(p)),c=Math.tan(p)*Math.tan(p),u=f*Math.cos(p)*Math.cos(p),d=h*(1-r)/Math.pow(1-r*Math.sin(p)*Math.sin(p),1.5),g=P/(l*n);var b=p-l*Math.tan(p)/d*(g*g/2-(5+3*c+10*u-4*u*u-9*f)*g*g*g*g/24+(61+90*c+298*u+45*c*c-252*f-3*u*u)*g*g*g*g*g*g/720);b=as(b);var I=(g-(1+2*c+u)*g*g*g/6+(5-2*u+28*c-3*u*u+8*f+24*c*c)*g*g*g*g*g/120)/Math.cos(p);I=v+as(I);var B;if(t.accuracy){var q=he({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});B={top:q.lat,right:q.lon,bottom:b,left:I}}else B={lat:b,lon:I};return B}function Sr(t){var i="Z";return 84>=t&&t>=72?i="X":72>t&&t>=64?i="W":64>t&&t>=56?i="V":56>t&&t>=48?i="U":48>t&&t>=40?i="T":40>t&&t>=32?i="S":32>t&&t>=24?i="R":24>t&&t>=16?i="Q":16>t&&t>=8?i="P":8>t&&t>=0?i="N":0>t&&t>=-8?i="M":-8>t&&t>=-16?i="L":-16>t&&t>=-24?i="K":-24>t&&t>=-32?i="J":-32>t&&t>=-40?i="H":-40>t&&t>=-48?i="G":-48>t&&t>=-56?i="F":-56>t&&t>=-64?i="E":-64>t&&t>=-72?i="D":-72>t&&t>=-80&&(i="C"),i}function pr(t,i){var e="00000"+t.easting,s="00000"+t.northing;return t.zoneNumber+t.zoneLetter+Pr(t.easting,t.northing,t.zoneNumber)+e.substr(e.length-5,i)+s.substr(s.length-5,i)}function Pr(t,i,e){var s=Us(e),a=Math.floor(t/1e5),n=Math.floor(i/1e5)%20;return Ar(a,n,s)}function Us(t){var i=t%ss;return i===0&&(i=ss),i}function Ar(t,i,e){var s=e-1,a=Os.charCodeAt(s),n=Ts.charCodeAt(s),h=a+t-1,r=n+i,f=!1;h>kt&&(h=h-kt+Gt-1,f=!0),(h===H||aH||(h>H||ait||(h>it||akt&&(h=h-kt+Gt-1),r>qt?(r=r-qt+Gt-1,f=!0):f=!1,(r===H||nH||(r>H||nit||(r>it||nqt&&(r=r-qt+Gt-1);var o=String.fromCharCode(h)+String.fromCharCode(r);return o}function qs(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var i=t.length,e=null,s="",a,n=0;!/[A-Z]/.test(a=t.charAt(n));){if(n>=2)throw"MGRSPoint bad conversion from: "+t;s+=a,n++}var h=parseInt(s,10);if(n===0||n+3>i)throw"MGRSPoint bad conversion from: "+t;var r=t.charAt(n++);if(r<="A"||r==="B"||r==="Y"||r>="Z"||r==="I"||r==="O")throw"MGRSPoint zone letter "+r+" not handled: "+t;e=t.substring(n,n+=2);for(var f=Us(h),o=br(e.charAt(0),f),l=Cr(e.charAt(1),f);l0&&(M=1e5/Math.pow(10,u),v=t.substring(n,n+u),d=parseFloat(v)*M,S=t.substring(n+u),g=parseFloat(S)*M),p=d+o,P=g+l,{easting:p,northing:P,zoneLetter:r,zoneNumber:h,accuracy:M}}function br(t,i){for(var e=Os.charCodeAt(i-1),s=1e5,a=!1;e!==t.charCodeAt(0);){if(e++,e===H&&e++,e===it&&e++,e>kt){if(a)throw"Bad character: "+t;e=Gt,a=!0}s+=1e5}return s}function Cr(t,i){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var e=Ts.charCodeAt(i-1),s=0,a=!1;e!==t.charCodeAt(0);){if(e++,e===H&&e++,e===it&&e++,e>qt){if(a)throw"Bad character: "+t;e=Gt,a=!0}s+=1e5}return s}function Gr(t){var i;switch(t){case"C":i=11e5;break;case"D":i=2e6;break;case"E":i=28e5;break;case"F":i=37e5;break;case"G":i=46e5;break;case"H":i=55e5;break;case"J":i=64e5;break;case"K":i=73e5;break;case"L":i=82e5;break;case"M":i=91e5;break;case"N":i=0;break;case"P":i=8e5;break;case"Q":i=17e5;break;case"R":i=26e5;break;case"S":i=35e5;break;case"T":i=44e5;break;case"U":i=53e5;break;case"V":i=62e5;break;case"W":i=7e6;break;case"X":i=79e5;break;default:i=-1}if(i>=0)return i;throw"Invalid zone letter: "+t}function Rt(t,i,e){if(!(this instanceof Rt))return new Rt(t,i,e);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if(typeof t=="object")this.x=t.x,this.y=t.y,this.z=t.z||0;else if(typeof t=="string"&&typeof i>"u"){var s=t.split(",");this.x=parseFloat(s[0]),this.y=parseFloat(s[1]),this.z=parseFloat(s[2])||0}else this.x=t,this.y=i,this.z=e||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}Rt.fromMGRS=function(t){return new Rt(Ls(t))};Rt.prototype.toMGRS=function(t){return Fs([this.x,this.y],t)};var Ir=1,Nr=.25,rs=.046875,ns=.01953125,hs=.01068115234375,Dr=.75,Rr=.46875,Br=.013020833333333334,Or=.007120768229166667,Tr=.3645833333333333,Fr=.005696614583333333,Lr=.3076171875;function oe(t){var i=[];i[0]=Ir-t*(Nr+t*(rs+t*(ns+t*hs))),i[1]=t*(Dr-t*(rs+t*(ns+t*hs)));var e=t*t;return i[2]=e*(Rr-t*(Br+t*Or)),e*=t,i[3]=e*(Tr-t*Fr),i[4]=e*t*Lr,i}function Ot(t,i,e,s){return e*=i,i*=i,s[0]*t-e*(s[1]+i*(s[2]+i*(s[3]+i*s[4])))}var Ur=20;function fe(t,i,e){for(var s=1/(1-i),a=t,n=Ur;n;--n){var h=Math.sin(a),r=1-i*h*h;if(r=(Ot(a,h,Math.cos(a),e)-t)*(r*Math.sqrt(r))*s,a-=r,Math.abs(r)x?Math.tan(e):0,M=Math.pow(g,2),v=Math.pow(M,2);a=1-this.es*Math.pow(r,2),l=l/Math.sqrt(a);var S=Ot(e,r,f,this.en);n=this.a*(this.k0*l*(1+c/6*(1-M+u+c/20*(5-18*M+v+14*u-58*M*u+c/42*(61+179*v-v*M-479*M)))))+this.x0,h=this.a*(this.k0*(S-this.ml0+r*s*l/2*(1+c/12*(5-M+9*u+4*d+c/30*(61+v-58*M+270*u-330*M*u+c/56*(1385+543*v-v*M-3111*M))))))+this.y0}else{var o=f*Math.sin(s);if(Math.abs(Math.abs(o)-1)=1){if(o-1>x)return 93;h=0}else h=Math.acos(h);e<0&&(h=-h),h=this.a*this.k0*(h-this.lat0)+this.y0}return t.x=n,t.y=h,t}function zr(t){var i,e,s,a,n=(t.x-this.x0)*(1/this.a),h=(t.y-this.y0)*(1/this.a);if(this.es)if(i=this.ml0+h/this.k0,e=fe(i,this.es,this.en),Math.abs(e)x?Math.tan(e):0,g=this.ep2*Math.pow(u,2),M=Math.pow(g,2),v=Math.pow(d,2),S=Math.pow(v,2);i=1-this.es*Math.pow(c,2);var p=n*Math.sqrt(i)/this.k0,P=Math.pow(p,2);i=i*d,s=e-i*P/(1-this.es)*.5*(1-P/12*(5+3*v-9*g*v+g-4*M-P/30*(61+90*v-252*g*v+45*S+46*g-P/56*(1385+3633*v+4095*S+1574*S*v)))),a=w(this.long0+p*(1-P/6*(1+2*v+g-P/20*(5+28*v+24*S+8*g*v+6*g-P/42*(61+662*v+1320*S+720*S*v))))/u,this.over)}else s=m*ti(h),a=0;else{var r=Math.exp(n/this.k0),f=.5*(r-1/r),o=this.lat0+h/this.k0,l=Math.cos(o);i=Math.sqrt((1-Math.pow(l,2))/(1+Math.pow(f,2))),s=Math.asin(i),h<0&&(s=-s),f===0&&l===0?a=0:a=w(Math.atan2(f,l)+this.long0,this.over)}return t.x=a,t.y=s,t}var jr=["Fast_Transverse_Mercator","Fast Transverse Mercator"];const gi={init:qr,forward:kr,inverse:zr,names:jr};function ks(t){var i=Math.exp(t);return i=(i-1/i)/2,i}function V(t,i){t=Math.abs(t),i=Math.abs(i);var e=Math.max(t,i),s=Math.min(t,i)/(e||1);return e*Math.sqrt(1+Math.pow(s,2))}function $r(t){var i=1+t,e=i-1;return e===0?t:t*Math.log(i)/e}function Wr(t){var i=Math.abs(t);return i=$r(i*(1+i/(V(1,i)+1))),t<0?-i:i}function le(t,i){for(var e=2*Math.cos(2*i),s=t.length-1,a=t[s],n=0,h;--s>=0;)h=-n+e*a+t[s],n=a,a=h;return i+h*Math.sin(2*i)}function Hr(t,i){for(var e=2*Math.cos(i),s=t.length-1,a=t[s],n=0,h;--s>=0;)h=-n+e*a+t[s],n=a,a=h;return Math.sin(i)*h}function Vr(t){var i=Math.exp(t);return i=(i+1/i)/2,i}function zs(t,i,e){for(var s=Math.sin(i),a=Math.cos(i),n=ks(e),h=Vr(e),r=2*a*h,f=-2*s*n,o=t.length-1,l=t[o],c=0,u=0,d=0,g,M;--o>=0;)g=u,M=c,u=l,c=d,l=-g+r*u-f*c+t[o],d=-M+f*u+r*c;return r=s*h,f=a*n,[r*l-f*d,r*d+f*l]}function Xr(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(gi.init.apply(this),this.forward=gi.forward,this.inverse=gi.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),i=t/(2-t),e=i;this.cgb[0]=i*(2+i*(-2/3+i*(-2+i*(116/45+i*(26/45+i*(-2854/675)))))),this.cbg[0]=i*(-2+i*(2/3+i*(4/3+i*(-82/45+i*(32/45+i*(4642/4725)))))),e=e*i,this.cgb[1]=e*(7/3+i*(-8/5+i*(-227/45+i*(2704/315+i*(2323/945))))),this.cbg[1]=e*(5/3+i*(-16/15+i*(-13/9+i*(904/315+i*(-1522/945))))),e=e*i,this.cgb[2]=e*(56/15+i*(-136/35+i*(-1262/105+i*(73814/2835)))),this.cbg[2]=e*(-26/15+i*(34/21+i*(8/5+i*(-12686/2835)))),e=e*i,this.cgb[3]=e*(4279/630+i*(-332/35+i*(-399572/14175))),this.cbg[3]=e*(1237/630+i*(-12/5+i*(-24832/14175))),e=e*i,this.cgb[4]=e*(4174/315+i*(-144838/6237)),this.cbg[4]=e*(-734/315+i*(109598/31185)),e=e*i,this.cgb[5]=e*(601676/22275),this.cbg[5]=e*(444337/155925),e=Math.pow(i,2),this.Qn=this.k0/(1+i)*(1+e*(1/4+e*(1/64+e/256))),this.utg[0]=i*(-.5+i*(2/3+i*(-37/96+i*(1/360+i*(81/512+i*(-96199/604800)))))),this.gtu[0]=i*(.5+i*(-2/3+i*(5/16+i*(41/180+i*(-127/288+i*(7891/37800)))))),this.utg[1]=e*(-1/48+i*(-1/15+i*(437/1440+i*(-46/105+i*(1118711/3870720))))),this.gtu[1]=e*(13/48+i*(-3/5+i*(557/1440+i*(281/630+i*(-1983433/1935360))))),e=e*i,this.utg[2]=e*(-17/480+i*(37/840+i*(209/4480+i*(-5569/90720)))),this.gtu[2]=e*(61/240+i*(-103/140+i*(15061/26880+i*(167603/181440)))),e=e*i,this.utg[3]=e*(-4397/161280+i*(11/504+i*(830251/7257600))),this.gtu[3]=e*(49561/161280+i*(-179/168+i*(6601661/7257600))),e=e*i,this.utg[4]=e*(-4583/161280+i*(108847/3991680)),this.gtu[4]=e*(34729/80640+i*(-3418889/1995840)),e=e*i,this.utg[5]=e*(-20648693/638668800),this.gtu[5]=e*(212378941/319334400);var s=le(this.cbg,this.lat0);this.Zb=-this.Qn*(s+Hr(this.gtu,2*s))}function Zr(t){var i=w(t.x-this.long0,this.over),e=t.y;e=le(this.cbg,e);var s=Math.sin(e),a=Math.cos(e),n=Math.sin(i),h=Math.cos(i);e=Math.atan2(s,h*a),i=Math.atan2(n*a,V(s,a*h)),i=Wr(Math.tan(i));var r=zs(this.gtu,2*e,2*i);e=e+r[0],i=i+r[1];var f,o;return Math.abs(i)<=2.623395162778?(f=this.a*(this.Qn*i)+this.x0,o=this.a*(this.Qn*e+this.Zb)+this.y0):(f=1/0,o=1/0),t.x=f,t.y=o,t}function Qr(t){var i=(t.x-this.x0)*(1/this.a),e=(t.y-this.y0)*(1/this.a);e=(e-this.Zb)/this.Qn,i=i/this.Qn;var s,a;if(Math.abs(i)<=2.623395162778){var n=zs(this.utg,2*e,2*i);e=e+n[0],i=i+n[1],i=Math.atan(ks(i));var h=Math.sin(e),r=Math.cos(e),f=Math.sin(i),o=Math.cos(i);e=Math.atan2(h*o,V(f,o*r)),i=Math.atan2(f,o*r),s=w(i+this.long0,this.over),a=le(this.cgb,e)}else s=1/0,a=1/0;return t.x=s,t.y=a,t}var Kr=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"];const _i={init:Xr,forward:Zr,inverse:Qr,names:Kr};function Jr(t,i){if(t===void 0){if(t=Math.floor((w(i)+Math.PI)*30/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var Yr="etmerc";function tn(){var t=Jr(this.zone,this.long0);if(t===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*T,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,_i.init.apply(this),this.forward=_i.forward,this.inverse=_i.inverse}var en=["Universal Transverse Mercator System","utm"];const sn={init:tn,names:en,dependsOn:Yr};function ue(t,i){return Math.pow((1-t)/(1+t),i)}var an=20;function rn(){var t=Math.sin(this.lat0),i=Math.cos(this.lat0);i*=i,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*i*i/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+D)/(Math.pow(Math.tan(.5*this.lat0+D),this.C)*ue(this.e*t,this.ratexp))}function nn(t){var i=t.x,e=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*e+D),this.C)*ue(this.e*Math.sin(e),this.ratexp))-m,t.x=this.C*i,t}function hn(t){for(var i=1e-14,e=t.x/this.C,s=t.y,a=Math.pow(Math.tan(.5*s+D)/this.K,1/this.C),n=an;n>0&&(s=2*Math.atan(a*ue(this.e*Math.sin(t.y),-.5*this.e))-m,!(Math.abs(s-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=x&&Math.abs(Math.cos(this.lat_ts))>x&&(this.k0=.5*this.cons*ht(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/at(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=ht(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(de(this.lat0,this.sinlat0,this.e))-m,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function gn(t){var i=t.x,e=t.y,s=Math.sin(e),a=Math.cos(e),n,h,r,f,o,l,c=w(i-this.long0,this.over);return Math.abs(Math.abs(i-this.long0)-Math.PI)<=x&&Math.abs(e+this.lat0)<=x?(t.x=NaN,t.y=NaN,t):this.sphere?(n=2*this.k0/(1+this.sinlat0*s+this.coslat0*a*Math.cos(c)),t.x=this.a*n*a*Math.sin(c)+this.x0,t.y=this.a*n*(this.coslat0*s-this.sinlat0*a*Math.cos(c))+this.y0,t):(h=2*Math.atan(de(e,s,this.e))-m,f=Math.cos(h),r=Math.sin(h),Math.abs(this.coslat0)<=x?(o=at(this.e,e*this.con,this.con*s),l=2*this.a*this.k0*o/this.cons,t.x=this.x0+l*Math.sin(i-this.long0),t.y=this.y0-this.con*l*Math.cos(i-this.long0),t):(Math.abs(this.sinlat0)0?i=w(this.long0+Math.atan2(t.x,-1*t.y),this.over):i=w(this.long0+Math.atan2(t.x,t.y),this.over):i=w(this.long0+Math.atan2(t.x*Math.sin(r),h*this.coslat0*Math.cos(r)-t.y*this.sinlat0*Math.sin(r)),this.over),t.x=i,t.y=e,t)}else if(Math.abs(this.coslat0)<=x){if(h<=x)return e=this.lat0,i=this.long0,t.x=i,t.y=e,t;t.x*=this.con,t.y*=this.con,s=h*this.cons/(2*this.a*this.k0),e=this.con*Qt(this.e,s),i=this.con*w(this.con*this.long0+Math.atan2(t.x,-1*t.y),this.over)}else a=2*Math.atan(h*this.cosX0/(2*this.a*this.k0*this.ms1)),i=this.long0,h<=x?n=this.X0:(n=Math.asin(Math.cos(a)*this.sinX0+t.y*Math.sin(a)*this.cosX0/h),i=w(this.long0+Math.atan2(t.x*Math.sin(a),h*this.cosX0*Math.cos(a)-t.y*this.sinX0*Math.sin(a)),this.over)),e=-1*Qt(this.e,Math.tan(.5*(m+n)));return t.x=i,t.y=e,t}var vn=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"];const Mn={init:dn,forward:gn,inverse:_n,names:vn,ssfn_:de};function yn(){var t=this.lat0;this.lambda0=this.long0;var i=Math.sin(t),e=this.a,s=this.rf,a=1/s,n=2*a-Math.pow(a,2),h=this.e=Math.sqrt(n);this.R=this.k0*e*Math.sqrt(1-n)/(1-n*Math.pow(i,2)),this.alpha=Math.sqrt(1+n/(1-n)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(i/this.alpha);var r=Math.log(Math.tan(Math.PI/4+this.b0/2)),f=Math.log(Math.tan(Math.PI/4+t/2)),o=Math.log((1+h*i)/(1-h*i));this.K=r-this.alpha*f+this.alpha*h/2*o}function mn(t){var i=Math.log(Math.tan(Math.PI/4-t.y/2)),e=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),s=-this.alpha*(i+e)+this.K,a=2*(Math.atan(Math.exp(s))-Math.PI/4),n=this.alpha*(t.x-this.lambda0),h=Math.atan(Math.sin(n)/(Math.sin(this.b0)*Math.tan(a)+Math.cos(this.b0)*Math.cos(n))),r=Math.asin(Math.cos(this.b0)*Math.sin(a)-Math.sin(this.b0)*Math.cos(a)*Math.cos(n));return t.y=this.R/2*Math.log((1+Math.sin(r))/(1-Math.sin(r)))+this.y0,t.x=this.R*h+this.x0,t}function xn(t){for(var i=t.x-this.x0,e=t.y-this.y0,s=i/this.R,a=2*(Math.atan(Math.exp(e/this.R))-Math.PI/4),n=Math.asin(Math.cos(this.b0)*Math.sin(a)+Math.sin(this.b0)*Math.cos(a)*Math.cos(s)),h=Math.atan(Math.sin(s)/(Math.cos(this.b0)*Math.cos(s)-Math.sin(this.b0)*Math.tan(a))),r=this.lambda0+h/this.alpha,f=0,o=n,l=-1e3,c=0;Math.abs(o-l)>1e-7;){if(++c>20)return;f=1/this.alpha*(Math.log(Math.tan(Math.PI/4+n/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(o))/2)),l=o,o=2*Math.atan(Math.exp(f))-Math.PI/2}return t.x=r,t.y=o,t}var En=["somerc"];const wn={init:yn,forward:mn,inverse:xn,names:En};var At=1e-7;function Sn(t){var i=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],e=typeof t.projName=="object"?Object.keys(t.projName)[0]:t.projName;return"no_uoff"in t||"no_off"in t||i.indexOf(e)!==-1||i.indexOf(Is(e))!==-1}function pn(){var t,i,e,s,a,n,h,r,f,o,l=0,c,u=0,d=0,g=0,M=0,v=0,S=0;this.no_off=Sn(this),this.no_rot="no_rot"in this;var p=!1;"alpha"in this&&(p=!0);var P=!1;if("rectified_grid_angle"in this&&(P=!0),p&&(S=this.alpha),P&&(l=this.rectified_grid_angle),p||P)u=this.longc;else if(d=this.long1,M=this.lat1,g=this.long2,v=this.lat2,Math.abs(M-v)<=At||(t=Math.abs(M))<=At||Math.abs(t-m)<=At||Math.abs(Math.abs(this.lat0)-m)<=At||Math.abs(Math.abs(v)-m)<=At)throw new Error;var G=1-this.es;i=Math.sqrt(G),Math.abs(this.lat0)>x?(r=Math.sin(this.lat0),e=Math.cos(this.lat0),t=1-this.es*r*r,this.B=e*e,this.B=Math.sqrt(1+this.es*this.B*this.B/G),this.A=this.B*this.k0*i/t,s=this.B*i/(e*Math.sqrt(t)),a=s*s-1,a<=0?a=0:(a=Math.sqrt(a),this.lat0<0&&(a=-a)),this.E=a+=s,this.E*=Math.pow(at(this.e,this.lat0,r),this.B)):(this.B=1/i,this.A=this.k0,this.E=s=a=1),p||P?(p?(c=Math.asin(Math.sin(S)/s),P||(l=S)):(c=l,S=Math.asin(s*Math.sin(c))),this.lam0=u-Math.asin(.5*(a-1/a)*Math.tan(c))/this.B):(n=Math.pow(at(this.e,M,Math.sin(M)),this.B),h=Math.pow(at(this.e,v,Math.sin(v)),this.B),a=this.E/n,f=(h-n)/(h+n),o=this.E*this.E,o=(o-h*n)/(o+h*n),t=d-g,t<-Math.PI?g-=Xt:t>Math.PI&&(g+=Xt),this.lam0=w(.5*(d+g)-Math.atan(o*Math.tan(.5*this.B*(d-g))/f)/this.B,this.over),c=Math.atan(2*Math.sin(this.B*w(d-this.lam0,this.over))/(a-1/a)),l=S=Math.asin(s*Math.sin(c))),this.singam=Math.sin(c),this.cosgam=Math.cos(c),this.sinrot=Math.sin(l),this.cosrot=Math.cos(l),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(s*s-1)/Math.cos(S))),this.lat0<0&&(this.u_0=-this.u_0)),a=.5*c,this.v_pole_n=this.ArB*Math.log(Math.tan(D-a)),this.v_pole_s=this.ArB*Math.log(Math.tan(D+a))}function Pn(t){var i={},e,s,a,n,h,r,f,o;if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-m)>x){if(h=this.E/Math.pow(at(this.e,t.y,Math.sin(t.y)),this.B),r=1/h,e=.5*(h-r),s=.5*(h+r),n=Math.sin(this.B*t.x),a=(e*this.singam-n*this.cosgam)/s,Math.abs(Math.abs(a)-1)0?this.v_pole_n:this.v_pole_s,f=this.ArB*t.y;return this.no_rot?(i.x=f,i.y=o):(f-=this.u_0,i.x=o*this.cosrot+f*this.sinrot,i.y=f*this.cosrot-o*this.sinrot),i.x=this.a*i.x+this.x0,i.y=this.a*i.y+this.y0,i}function An(t){var i,e,s,a,n,h,r,f={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(e=t.y,i=t.x):(e=t.x*this.cosrot-t.y*this.sinrot,i=t.y*this.cosrot+t.x*this.sinrot+this.u_0),s=Math.exp(-this.BrA*e),a=.5*(s-1/s),n=.5*(s+1/s),h=Math.sin(this.BrA*i),r=(h*this.cosgam+a*this.singam)/n,Math.abs(Math.abs(r)-1)x?this.ns=Math.log(s/r)/Math.log(a/f):this.ns=i,isNaN(this.ns)&&(this.ns=i),this.f0=s/(this.ns*Math.pow(a,this.ns)),this.rh=this.a*this.f0*Math.pow(o,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function In(t){var i=t.x,e=t.y;Math.abs(2*Math.abs(e)-Math.PI)<=x&&(e=ti(e)*(m-2*x));var s=Math.abs(Math.abs(e)-m),a,n;if(s>x)a=at(this.e,e,Math.sin(e)),n=this.a*this.f0*Math.pow(a,this.ns);else{if(s=e*this.ns,s<=0)return null;n=0}var h=this.ns*w(i-this.long0,this.over);return t.x=this.k0*(n*Math.sin(h))+this.x0,t.y=this.k0*(this.rh-n*Math.cos(h))+this.y0,t}function Nn(t){var i,e,s,a,n,h=(t.x-this.x0)/this.k0,r=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(i=Math.sqrt(h*h+r*r),e=1):(i=-Math.sqrt(h*h+r*r),e=-1);var f=0;if(i!==0&&(f=Math.atan2(e*h,e*r)),i!==0||this.ns>0){if(e=1/this.ns,s=Math.pow(i/(this.a*this.f0),e),a=Qt(this.e,s),a===-9999)return null}else a=-m;return n=w(f/this.ns+this.long0,this.over),t.x=n,t.y=a,t}var Dn=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"];const Rn={init:Gn,forward:In,inverse:Nn,names:Dn};function Bn(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function On(t){var i,e,s,a,n,h,r,f=t.x,o=t.y,l=w(f-this.long0,this.over);return i=Math.pow((1+this.e*Math.sin(o))/(1-this.e*Math.sin(o)),this.alfa*this.e/2),e=2*(Math.atan(this.k*Math.pow(Math.tan(o/2+this.s45),this.alfa)/i)-this.s45),s=-l*this.alfa,a=Math.asin(Math.cos(this.ad)*Math.sin(e)+Math.sin(this.ad)*Math.cos(e)*Math.cos(s)),n=Math.asin(Math.cos(e)*Math.sin(s)/Math.cos(a)),h=this.n*n,r=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(a/2+this.s45),this.n),t.y=r*Math.cos(h)/1,t.x=r*Math.sin(h)/1,this.czech||(t.y*=-1,t.x*=-1),t}function Tn(t){var i,e,s,a,n,h,r,f,o=t.x;t.x=t.y,t.y=o,this.czech||(t.y*=-1,t.x*=-1),h=Math.sqrt(t.x*t.x+t.y*t.y),n=Math.atan2(t.y,t.x),a=n/Math.sin(this.s0),s=2*(Math.atan(Math.pow(this.ro0/h,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),i=Math.asin(Math.cos(this.ad)*Math.sin(s)-Math.sin(this.ad)*Math.cos(s)*Math.cos(a)),e=Math.asin(Math.cos(s)*Math.sin(a)/Math.cos(i)),t.x=this.long0-e/this.alfa,r=i,f=0;var l=0;do t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(i/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(r))/(1-this.e*Math.sin(r)),this.e/2))-this.s45),Math.abs(r-t.y)<1e-10&&(f=1),r=t.y,l+=1;while(f===0&&l<15);return l>=15?null:t}var Fn=["Krovak","krovak"];const Ln={init:Bn,forward:On,inverse:Tn,names:Fn};function W(t,i,e,s,a){return t*a-i*Math.sin(2*a)+e*Math.sin(4*a)-s*Math.sin(6*a)}function ii(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function ei(t){return .375*t*(1+.25*t*(1+.46875*t))}function si(t){return .05859375*t*t*(1+.75*t)}function ai(t){return t*t*t*(35/3072)}function ge(t,i,e){var s=i*e;return t/Math.sqrt(1-s*s)}function xt(t){return Math.abs(t)1e-7?(e=t*i,(1-t*t)*(i/(1-e*e)-.5/t*Math.log((1-e)/(1+e)))):2*i}var Ki=1,Ji=2,Yi=3,vi=4;function $n(){var t=Math.abs(this.lat0);if(Math.abs(t-m)0){var i;switch(this.qp=Mt(this.e,1),this.mmf=.5/(1-this.es),this.apa=Yn(this.es),this.mode){case Ji:this.dd=1;break;case Ki:this.dd=1;break;case Yi:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case vi:this.rq=Math.sqrt(.5*this.qp),i=Math.sin(this.lat0),this.sinb1=Mt(this.e,i)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*i*i)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===vi&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Wn(t){var i,e,s,a,n,h,r,f,o,l,c=t.x,u=t.y;if(c=w(c-this.long0,this.over),this.sphere){if(n=Math.sin(u),l=Math.cos(u),s=Math.cos(c),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e=this.mode===this.EQUIT?1+l*s:1+this.sinph0*n+this.cosph0*l*s,e<=x)return null;e=Math.sqrt(2/e),i=e*l*Math.sin(c),e*=this.mode===this.EQUIT?n:this.cosph0*n-this.sinph0*l*s}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(s=-s),Math.abs(u+this.lat0)=0?(i=(o=Math.sqrt(h))*a,e=s*(this.mode===this.S_POLE?o:-o)):i=e=0;break}}return t.x=this.a*i+this.x0,t.y=this.a*e+this.y0,t}function Hn(t){t.x-=this.x0,t.y-=this.y0;var i=t.x/this.a,e=t.y/this.a,s,a,n,h,r,f,o;if(this.sphere){var l=0,c,u=0;if(c=Math.sqrt(i*i+e*e),a=c*.5,a>1)return null;switch(a=2*Math.asin(a),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(u=Math.sin(a),l=Math.cos(a)),this.mode){case this.EQUIT:a=Math.abs(c)<=x?0:Math.asin(e*u/c),i*=u,e=l*c;break;case this.OBLIQ:a=Math.abs(c)<=x?this.lat0:Math.asin(l*this.sinph0+e*u*this.cosph0/c),i*=u*this.cosph0,e=(l-Math.sin(a)*this.sinph0)*c;break;case this.N_POLE:e=-e,a=m-a;break;case this.S_POLE:a-=m;break}s=e===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(i,e)}else{if(o=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(i/=this.dd,e*=this.dd,f=Math.sqrt(i*i+e*e),f1&&(t=t>1?1:-1),Math.asin(t)}function sh(){Math.abs(this.lat1+this.lat2)x?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function ah(t){var i=t.x,e=t.y;this.sin_phi=Math.sin(e),this.cos_phi=Math.cos(e);var s=Mt(this.e3,this.sin_phi),a=this.a*Math.sqrt(this.c-this.ns0*s)/this.ns0,n=this.ns0*w(i-this.long0,this.over),h=a*Math.sin(n)+this.x0,r=this.rh-a*Math.cos(n)+this.y0;return t.x=h,t.y=r,t}function rh(t){var i,e,s,a,n,h;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(i=Math.sqrt(t.x*t.x+t.y*t.y),s=1):(i=-Math.sqrt(t.x*t.x+t.y*t.y),s=-1),a=0,i!==0&&(a=Math.atan2(s*t.x,s*t.y)),s=i*this.ns0/this.a,this.sphere?h=Math.asin((this.c-s*s)/(2*this.ns0)):(e=(this.c-s*s)/this.ns0,h=this.phi1z(this.e3,e)),n=w(a/this.ns0+this.long0,this.over),t.x=n,t.y=h,t}function nh(t,i){var e,s,a,n,h,r=mt(.5*i);if(t0||Math.abs(h)<=x?(r=this.x0+this.a*n*e*Math.sin(s)/h,f=this.y0+this.a*n*(this.cos_p14*i-this.sin_p14*e*a)/h):(r=this.x0+this.infinity_dist*e*Math.sin(s),f=this.y0+this.infinity_dist*(this.cos_p14*i-this.sin_p14*e*a)),t.x=r,t.y=f,t}function uh(t){var i,e,s,a,n,h;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(i=Math.sqrt(t.x*t.x+t.y*t.y))?(a=Math.atan2(i,this.rc),e=Math.sin(a),s=Math.cos(a),h=mt(s*this.sin_p14+t.y*e*this.cos_p14/i),n=Math.atan2(t.x*e,i*this.cos_p14*s-t.y*this.sin_p14*e),n=w(this.long0+n,this.over)):(h=this.phic0,n=0),t.x=n,t.y=h,t}var ch=["gnom"];const dh={init:fh,forward:lh,inverse:uh,names:ch};function gh(t,i){var e=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(i)-e)<1e-6)return i<0?-1*m:m;for(var s=Math.asin(.5*i),a,n,h,r,f=0;f<30;f++)if(n=Math.sin(s),h=Math.cos(s),r=t*n,a=Math.pow(1-r*r,2)/(2*h)*(i/(1-t*t)-n/(1-r*r)+.5/t*Math.log((1-r)/(1+r))),s+=a,Math.abs(a)<=1e-10)return s;return NaN}function _h(){this.sphere||(this.k0=ht(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function vh(t){var i=t.x,e=t.y,s,a,n=w(i-this.long0,this.over);if(this.sphere)s=this.x0+this.a*n*Math.cos(this.lat_ts),a=this.y0+this.a*Math.sin(e)/Math.cos(this.lat_ts);else{var h=Mt(this.e,Math.sin(e));s=this.x0+this.a*this.k0*n,a=this.y0+this.a*h*.5/this.k0}return t.x=s,t.y=a,t}function Mh(t){t.x-=this.x0,t.y-=this.y0;var i,e;return this.sphere?(i=w(this.long0+t.x/this.a/Math.cos(this.lat_ts),this.over),e=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(e=gh(this.e,2*t.y*this.k0/this.a),i=w(this.long0+t.x/(this.a*this.k0),this.over)),t.x=i,t.y=e,t}var yh=["cea"];const mh={init:_h,forward:vh,inverse:Mh,names:yh};function xh(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function Eh(t){var i=t.x,e=t.y,s=w(i-this.long0,this.over),a=xt(e-this.lat0);return t.x=this.x0+this.a*s*this.rc,t.y=this.y0+this.a*a,t}function wh(t){var i=t.x,e=t.y;return t.x=w(this.long0+(i-this.x0)/(this.a*this.rc),this.over),t.y=xt(this.lat0+(e-this.y0)/this.a),t}var Sh=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"];const ph={init:xh,forward:Eh,inverse:wh,names:Sh};var os=20;function Ph(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=ii(this.es),this.e1=ei(this.es),this.e2=si(this.es),this.e3=ai(this.es),this.ml0=this.a*W(this.e0,this.e1,this.e2,this.e3,this.lat0)}function Ah(t){var i=t.x,e=t.y,s,a,n,h=w(i-this.long0,this.over);if(n=h*Math.sin(e),this.sphere)Math.abs(e)<=x?(s=this.a*h,a=-1*this.a*this.lat0):(s=this.a*Math.sin(n)/Math.tan(e),a=this.a*(xt(e-this.lat0)+(1-Math.cos(n))/Math.tan(e)));else if(Math.abs(e)<=x)s=this.a*h,a=-1*this.ml0;else{var r=ge(this.a,this.e,Math.sin(e))/Math.tan(e);s=r*Math.sin(n),a=this.a*W(this.e0,this.e1,this.e2,this.e3,e)-this.ml0+r*(1-Math.cos(n))}return t.x=s+this.x0,t.y=a+this.y0,t}function bh(t){var i,e,s,a,n,h,r,f,o;if(s=t.x-this.x0,a=t.y-this.y0,this.sphere)if(Math.abs(a+this.a*this.lat0)<=x)i=w(s/this.a+this.long0,this.over),e=0;else{h=this.lat0+a/this.a,r=s*s/this.a/this.a+h*h,f=h;var l;for(n=os;n;--n)if(l=Math.tan(f),o=-1*(h*(f*l+1)-f-.5*(f*f+r)*l)/((f-h)/l-1),f+=o,Math.abs(o)<=x){e=f;break}i=w(this.long0+Math.asin(s*Math.tan(f)/this.a)/Math.sin(e),this.over)}else if(Math.abs(a+this.ml0)<=x)e=0,i=w(this.long0+s/this.a,this.over);else{h=(this.ml0+a)/this.a,r=s*s/this.a/this.a+h*h,f=h;var c,u,d,g,M;for(n=os;n;--n)if(M=this.e*Math.sin(f),c=Math.sqrt(1-M*M)*Math.tan(f),u=this.a*W(this.e0,this.e1,this.e2,this.e3,f),d=this.e0-2*this.e1*Math.cos(2*f)+4*this.e2*Math.cos(4*f)-6*this.e3*Math.cos(6*f),g=u/this.a,o=(h*(c*g+1)-g-.5*c*(g*g+r))/(this.es*Math.sin(2*f)*(g*g+r-2*h*g)/(4*c)+(h-g)*(c*d-2/Math.sin(2*f))-d),f-=o,Math.abs(o)<=x){e=f;break}c=Math.sqrt(1-this.es*Math.pow(Math.sin(e),2))*Math.tan(e),i=w(this.long0+Math.asin(s*c/this.a)/Math.sin(e),this.over)}return t.x=i,t.y=e,t}var Ch=["Polyconic","American_Polyconic","poly"];const Gh={init:Ph,forward:Ah,inverse:bh,names:Ch};function Ih(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Nh(t){var i,e=t.x,s=t.y,a=s-this.lat0,n=e-this.long0,h=a/jt*1e-5,r=n,f=1,o=0;for(i=1;i<=10;i++)f=f*h,o=o+this.A[i]*f;var l=o,c=r,u=1,d=0,g,M,v=0,S=0;for(i=1;i<=6;i++)g=u*l-d*c,M=d*l+u*c,u=g,d=M,v=v+this.B_re[i]*u-this.B_im[i]*d,S=S+this.B_im[i]*u+this.B_re[i]*d;return t.x=S*this.a+this.x0,t.y=v*this.a+this.y0,t}function Dh(t){var i,e=t.x,s=t.y,a=e-this.x0,n=s-this.y0,h=n/this.a,r=a/this.a,f=1,o=0,l,c,u=0,d=0;for(i=1;i<=6;i++)l=f*h-o*r,c=o*h+f*r,f=l,o=c,u=u+this.C_re[i]*f-this.C_im[i]*o,d=d+this.C_im[i]*f+this.C_re[i]*o;for(var g=0;g.999999999999&&(e=.999999999999),i=Math.asin(e);var s=w(this.long0+t.x/(.900316316158*this.a*Math.cos(i)),this.over);s<-Math.PI&&(s=-Math.PI),s>Math.PI&&(s=Math.PI),e=(2*i+Math.sin(2*i))/Math.PI,Math.abs(e)>1&&(e=1);var a=Math.asin(e);return t.x=s,t.y=a,t}var Zh=["Mollweide","moll"];const Qh={init:Hh,forward:Vh,inverse:Xh,names:Zh};function Kh(){Math.abs(this.lat1+this.lat2)=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),i=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),i=-1);var n=0;if(e!==0&&(n=Math.atan2(i*t.x,i*t.y)),this.sphere)return a=w(this.long0+n/this.ns,this.over),s=xt(this.g-e/this.a),t.x=a,t.y=s,t;var h=this.g-e/this.a;return s=Ei(h,this.e0,this.e1,this.e2,this.e3),a=w(this.long0+n/this.ns,this.over),t.x=a,t.y=s,t}var to=["Equidistant_Conic","eqdc"];const io={init:Kh,forward:Jh,inverse:Yh,names:to};function eo(){this.R=this.a}function so(t){var i=t.x,e=t.y,s=w(i-this.long0,this.over),a,n;Math.abs(e)<=x&&(a=this.x0+this.R*s,n=this.y0);var h=mt(2*Math.abs(e/Math.PI));(Math.abs(s)<=x||Math.abs(Math.abs(e)-m)<=x)&&(a=this.x0,e>=0?n=this.y0+Math.PI*this.R*Math.tan(.5*h):n=this.y0+Math.PI*this.R*-Math.tan(.5*h));var r=.5*Math.abs(Math.PI/s-s/Math.PI),f=r*r,o=Math.sin(h),l=Math.cos(h),c=l/(o+l-1),u=c*c,d=c*(2/o-1),g=d*d,M=Math.PI*this.R*(r*(c-g)+Math.sqrt(f*(c-g)*(c-g)-(g+f)*(u-g)))/(g+f);s<0&&(M=-M),a=this.x0+M;var v=f+c;return M=Math.PI*this.R*(d*v-r*Math.sqrt((g+f)*(f+1)-v*v))/(g+f),e>=0?n=this.y0+M:n=this.y0-M,t.x=a,t.y=n,t}function ao(t){var i,e,s,a,n,h,r,f,o,l,c,u,d;return t.x-=this.x0,t.y-=this.y0,c=Math.PI*this.R,s=t.x/c,a=t.y/c,n=s*s+a*a,h=-Math.abs(a)*(1+n),r=h-2*a*a+s*s,f=-2*h+1+2*a*a+n*n,d=a*a/f+(2*r*r*r/f/f/f-9*h*r/f/f)/27,o=(h-r*r/3/f)/f,l=2*Math.sqrt(-o/3),c=3*d/o/l,Math.abs(c)>1&&(c>=0?c=1:c=-1),u=Math.acos(c)/3,t.y>=0?e=(-l*Math.cos(u+Math.PI/3)-r/3/f)*Math.PI:e=-(-l*Math.cos(u+Math.PI/3)-r/3/f)*Math.PI,Math.abs(s)1e-12&&--M>0);return M===0?{azi1:NaN,s12:NaN}:(U=I*(a*a-a*(1-n)*(a*(1-n)))/(a*(1-n)*(a*(1-n))),rt=1+U/16384*(4096+U*(-768+U*(320-175*U))),z=U/1024*(256+U*(-128+U*(74-47*U))),_=z*p*(B+z/4*(P*(-1+2*B*B)-z/6*B*(-3+4*p*p)*(-3+4*B*B))),y=a*(1-n)*rt*(G-_),{azi1:Math.atan2(u*v,l*c-o*u*S),s12:y})}function oo(t,i,e,s,a,n){const h=Math.atan((1-n)*Math.tan(t)),r=Math.sin(h),f=Math.cos(h),o=Math.sin(e),l=Math.cos(e),c=Math.atan2(r,f*l),u=f*o,d=1-u*u,g=d*(a*a-a*(1-n)*(a*(1-n)))/(a*(1-n)*(a*(1-n))),M=1+g/16384*(4096+g*(-768+g*(320-175*g))),v=g/1024*(256+g*(-128+g*(74-47*g)));let S=s/(a*(1-n)*M),p,P=100,G,b,I,B;do G=Math.cos(2*c+S),b=Math.sin(S),I=Math.cos(S),B=v*b*(G+v/4*(I*(-1+2*G*G)-v/6*G*(-3+4*b*b)*(-3+4*G*G))),p=S,S=s/(a*(1-n)*M)+B;while(Math.abs(S-p)>1e-12&&--P>0);if(P===0)return{lat2:NaN,lon2:NaN};const q=r*b-f*I*l,U=Math.atan2(r*I+f*b*l,(1-n)*Math.sqrt(u*u+q*q)),rt=Math.atan2(b*o,f*I-r*b*l),z=n/16*d*(4+n*(4-3*d)),_=rt-(1-z)*n*u*(S+z*b*(G+z*I*(-1+2*G*G))),y=i+_;return{lat2:U,lon2:y}}function fo(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function lo(t){var i=t.x,e=t.y,s=Math.sin(t.y),a=Math.cos(t.y),n=w(i-this.long0,this.over),h,r,f,o,l,c,u,d,g,M,v;return this.sphere?Math.abs(this.sin_p12-1)<=x?(t.x=this.x0+this.a*(m-e)*Math.sin(n),t.y=this.y0-this.a*(m-e)*Math.cos(n),t):Math.abs(this.sin_p12+1)<=x?(t.x=this.x0+this.a*(m+e)*Math.sin(n),t.y=this.y0+this.a*(m+e)*Math.cos(n),t):(g=this.sin_p12*s+this.cos_p12*a*Math.cos(n),u=Math.acos(g),d=u?u/Math.sin(u):1,t.x=this.x0+this.a*d*a*Math.sin(n),t.y=this.y0+this.a*d*(this.cos_p12*s-this.sin_p12*a*Math.cos(n)),t):(h=ii(this.es),r=ei(this.es),f=si(this.es),o=ai(this.es),Math.abs(this.sin_p12-1)<=x?(l=this.a*W(h,r,f,o,m),c=this.a*W(h,r,f,o,e),t.x=this.x0+(l-c)*Math.sin(n),t.y=this.y0-(l-c)*Math.cos(n),t):Math.abs(this.sin_p12+1)<=x?(l=this.a*W(h,r,f,o,m),c=this.a*W(h,r,f,o,e),t.x=this.x0+(l+c)*Math.sin(n),t.y=this.y0+(l+c)*Math.cos(n),t):Math.abs(i)2*m*this.a?void 0:(e=i/this.a,s=Math.sin(e),a=Math.cos(e),n=this.long0,Math.abs(i)<=x?h=this.lat0:(h=mt(a*this.sin_p12+t.y*s*this.cos_p12/i),r=Math.abs(this.lat0)-m,Math.abs(r)<=x?this.lat0>=0?n=w(this.long0+Math.atan2(t.x,-t.y),this.over):n=w(this.long0-Math.atan2(-t.x,t.y),this.over):n=w(this.long0+Math.atan2(t.x*s,i*this.cos_p12*a-t.y*this.sin_p12*s),this.over)),t.x=n,t.y=h,t)):(f=ii(this.es),o=ei(this.es),l=si(this.es),c=ai(this.es),Math.abs(this.sin_p12-1)<=x?(u=this.a*W(f,o,l,c,m),i=Math.sqrt(t.x*t.x+t.y*t.y),d=u-i,h=Ei(d/this.a,f,o,l,c),n=w(this.long0+Math.atan2(t.x,-1*t.y),this.over),t.x=n,t.y=h,t):Math.abs(this.sin_p12+1)<=x?(u=this.a*W(f,o,l,c,m),i=Math.sqrt(t.x*t.x+t.y*t.y),d=i-u,h=Ei(d/this.a,f,o,l,c),n=w(this.long0+Math.atan2(t.x,t.y),this.over),t.x=n,t.y=h,t):(g=Math.atan2(t.x,t.y),M=Math.sqrt(t.x*t.x+t.y*t.y),v=oo(this.lat0,this.long0,g,M,this.a,this.f),t.x=v.lon2,t.y=v.lat2,t))}var co=["Azimuthal_Equidistant","aeqd"];const go={init:fo,forward:lo,inverse:uo,names:co};function _o(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function vo(t){var i,e,s,a,n,h,r,f,o=t.x,l=t.y;return s=w(o-(this.long0||0),this.over),i=Math.sin(l),e=Math.cos(l),a=Math.cos(s),h=this.sin_p14*i+this.cos_p14*e*a,n=1,(h>0||Math.abs(h)<=x)&&(r=this.a*n*e*Math.sin(s),f=(this.y0||0)+this.a*n*(this.cos_p14*i-this.sin_p14*e*a)),t.x=r,t.y=f,t}function Mo(t){var i,e,s,a,n,h,r,f,o;return t.x-=this.x0||0,t.y-=this.y0||0,i=Math.sqrt(t.x*t.x+t.y*t.y),e=mt(i/this.a),s=Math.sin(e),a=Math.cos(e),f=this.long0||0,o=this.lat0||0,h=f,Math.abs(i)<=x?(r=o,t.x=h,t.y=r,t):(r=mt(a*this.sin_p14+t.y*s*this.cos_p14/i),n=Math.abs(o)-m,Math.abs(n)<=x?(o>=0?h=w(f+Math.atan2(t.x,-t.y),this.over):h=w(f-Math.atan2(-t.x,t.y),this.over),t.x=h,t.y=r,t):(h=w(f+Math.atan2(t.x*s,i*this.cos_p14*a-t.y*this.sin_p14*s),this.over),t.x=h,t.y=r,t))}var yo=["ortho"];const mo={init:_o,forward:vo,inverse:Mo,names:yo};var O={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},R={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function xo(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=m-D/2?this.face=O.TOP:this.lat0<=-(m-D/2)?this.face=O.BOTTOM:Math.abs(this.long0)<=D?this.face=O.FRONT:Math.abs(this.long0)<=m+D?this.face=this.long0>0?O.RIGHT:O.LEFT:this.face=O.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function Eo(t){var i={x:0,y:0},e,s,a,n,h,r,f={value:0};if(t.x-=this.long0,this.es!==0?e=Math.atan(this.one_minus_f_squared*Math.tan(t.y)):e=t.y,s=t.x,this.face===O.TOP)n=m-e,s>=D&&s<=m+D?(f.value=R.AREA_0,a=s-m):s>m+D||s<=-(m+D)?(f.value=R.AREA_1,a=s>0?s-F:s+F):s>-(m+D)&&s<=-D?(f.value=R.AREA_2,a=s+m):(f.value=R.AREA_3,a=s);else if(this.face===O.BOTTOM)n=m+e,s>=D&&s<=m+D?(f.value=R.AREA_0,a=-s+m):s=-D?(f.value=R.AREA_1,a=-s):s<-D&&s>=-(m+D)?(f.value=R.AREA_2,a=-s-m):(f.value=R.AREA_3,a=s>0?-s+F:-s-F);else{var o,l,c,u,d,g,M;this.face===O.RIGHT?s=Dt(s,+m):this.face===O.BACK?s=Dt(s,+F):this.face===O.LEFT&&(s=Dt(s,-m)),u=Math.sin(e),d=Math.cos(e),g=Math.sin(s),M=Math.cos(s),o=d*M,l=d*g,c=u,this.face===O.FRONT?(n=Math.acos(o),a=ci(n,c,l,f)):this.face===O.RIGHT?(n=Math.acos(l),a=ci(n,c,-o,f)):this.face===O.BACK?(n=Math.acos(-o),a=ci(n,c,-l,f)):this.face===O.LEFT?(n=Math.acos(-l),a=ci(n,c,o,f)):(n=a=0,f.value=R.AREA_0)}return r=Math.atan(12/F*(a+Math.acos(Math.sin(a)*Math.cos(D))-m)),h=Math.sqrt((1-Math.cos(n))/(Math.cos(r)*Math.cos(r))/(1-Math.cos(Math.atan(1/Math.cos(a))))),f.value===R.AREA_1?r+=m:f.value===R.AREA_2?r+=F:f.value===R.AREA_3&&(r+=1.5*F),i.x=h*Math.cos(r),i.y=h*Math.sin(r),i.x=i.x*this.a+this.x0,i.y=i.y*this.a+this.y0,t.x=i.x,t.y=i.y,t}function wo(t){var i={lam:0,phi:0},e,s,a,n,h,r,f,o,l,c={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,s=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),e=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?c.value=R.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(c.value=R.AREA_1,e-=m):t.x<0&&-t.x>=Math.abs(t.y)?(c.value=R.AREA_2,e=e<0?e+F:e-F):(c.value=R.AREA_3,e+=m),l=F/12*Math.tan(e),h=Math.sin(l)/(Math.cos(l)-1/Math.sqrt(2)),r=Math.atan(h),a=Math.cos(e),n=Math.tan(s),f=1-a*a*n*n*(1-Math.cos(Math.atan(1/Math.cos(r)))),f<-1?f=-1:f>1&&(f=1),this.face===O.TOP)o=Math.acos(f),i.phi=m-o,c.value===R.AREA_0?i.lam=r+m:c.value===R.AREA_1?i.lam=r<0?r+F:r-F:c.value===R.AREA_2?i.lam=r-m:i.lam=r;else if(this.face===O.BOTTOM)o=Math.acos(f),i.phi=o-m,c.value===R.AREA_0?i.lam=-r+m:c.value===R.AREA_1?i.lam=-r:c.value===R.AREA_2?i.lam=-r-m:i.lam=r<0?-r-F:-r+F;else{var u,d,g;u=f,l=u*u,l>=1?g=0:g=Math.sqrt(1-l)*Math.sin(r),l+=g*g,l>=1?d=0:d=Math.sqrt(1-l),c.value===R.AREA_1?(l=d,d=-g,g=l):c.value===R.AREA_2?(d=-d,g=-g):c.value===R.AREA_3&&(l=d,d=g,g=-l),this.face===O.RIGHT?(l=u,u=-d,d=l):this.face===O.BACK?(u=-u,d=-d):this.face===O.LEFT&&(l=u,u=d,d=-l),i.phi=Math.acos(-g)-m,i.lam=Math.atan2(d,u),this.face===O.RIGHT?i.lam=Dt(i.lam,-m):this.face===O.BACK?i.lam=Dt(i.lam,-F):this.face===O.LEFT&&(i.lam=Dt(i.lam,+m))}if(this.es!==0){var M,v,S;M=i.phi<0?1:0,v=Math.tan(i.phi),S=this.b/Math.sqrt(v*v+this.one_minus_f_squared),i.phi=Math.atan(Math.sqrt(this.a*this.a-S*S)/(this.one_minus_f*S)),M&&(i.phi=-i.phi)}return i.lam+=this.long0,t.x=i.lam,t.y=i.phi,t}function ci(t,i,e,s){var a;return tD&&a<=m+D?(s.value=R.AREA_1,a-=m):a>m+D||a<=-(m+D)?(s.value=R.AREA_2,a=a>=0?a-F:a+F):(s.value=R.AREA_3,a+=m)),a}function Dt(t,i){var e=t+i;return e<-F?e+=Xt:e>+F&&(e-=Xt),e}var So=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"];const po={init:xo,forward:Eo,inverse:wo,names:So};var te=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],zt=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],js=.8487,$s=1.3523,Ws=X/5,Po=1/Ws,It=18,wi=function(t,i){return t[0]+i*(t[1]+i*(t[2]+i*t[3]))},Ao=function(t,i){return t[1]+i*(2*t[2]+i*3*t[3])};function bo(t,i,e,s){for(var a=i;s;--s){var n=t(a);if(a-=n,Math.abs(n)=It&&(s=It-1),e=X*(e-Po*s);var a={x:wi(te[s],e)*i,y:wi(zt[s],e)};return t.y<0&&(a.y=-a.y),a.x=a.x*this.a*js+this.x0,a.y=a.y*this.a*$s+this.y0,a}function Io(t){var i={x:(t.x-this.x0)/(this.a*js),y:Math.abs(t.y-this.y0)/(this.a*$s)};if(i.y>=1)i.x/=te[It][0],i.y=t.y<0?-m:m;else{var e=Math.floor(i.y*It);for(e<0?e=0:e>=It&&(e=It-1);;)if(zt[e][0]>i.y)--e;else if(zt[e+1][0]<=i.y)++e;else break;var s=zt[e],a=5*(i.y-s[0])/(zt[e+1][0]-s[0]);a=bo(function(n){return(wi(s,n)-i.y)/Ao(s,n)},a,x,100),i.x/=wi(te[e],a),i.y=(5*e+a)*T,t.y<0&&(i.y=-i.y)}return i.x=w(i.x+this.long0,this.over),i}var No=["Robinson","robin"];const Do={init:Co,forward:Go,inverse:Io,names:No};function Ro(){this.name="geocent"}function Bo(t){var i=Ds(t,this.es,this.a);return i}function Oo(t){var i=Rs(t,this.es,this.a,this.b);return i}var To=["Geocentric","geocentric","geocent","Geocent"];const Fo={init:Ro,forward:Bo,inverse:Oo,names:To};var j={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},Ut={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function Lo(){if(Object.keys(Ut).forEach(function(e){if(typeof this[e]>"u")this[e]=Ut[e].def;else{if(Ut[e].num&&isNaN(this[e]))throw new Error("Invalid parameter value, must be numeric "+e+" = "+this[e]);Ut[e].num&&(this[e]=parseFloat(this[e]))}Ut[e].degrees&&(this[e]=this[e]*T)}.bind(this)),Math.abs(Math.abs(this.lat0)-m)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,i=this.azi;this.cg=Math.cos(i),this.sg=Math.sin(i),this.cw=Math.cos(t),this.sw=Math.sin(t)}function Uo(t){t.x-=this.long0;var i=Math.sin(t.y),e=Math.cos(t.y),s=Math.cos(t.x),a,n;switch(this.mode){case j.OBLIQ:n=this.sinph0*i+this.cosph0*e*s;break;case j.EQUIT:n=e*s;break;case j.S_POLE:n=-i;break;case j.N_POLE:n=i;break}switch(n=this.pn1/(this.p-n),a=n*e*Math.sin(t.x),this.mode){case j.OBLIQ:n*=this.cosph0*i-this.sinph0*e*s;break;case j.EQUIT:n*=i;break;case j.N_POLE:n*=-(e*s);break;case j.S_POLE:n*=e*s;break}var h,r;return h=n*this.cg+a*this.sg,r=1/(h*this.sw*this.h1+this.cw),a=(a*this.cg-n*this.sg)*this.cw*r,n=h*r,t.x=a*this.a,t.y=n*this.a,t}function qo(t){t.x/=this.a,t.y/=this.a;var i={x:t.x,y:t.y},e,s,a;a=1/(this.pn1-t.y*this.sw),e=this.pn1*t.x*a,s=this.pn1*t.y*this.cw*a,t.x=e*this.cg+s*this.sg,t.y=s*this.cg-e*this.sg;var n=V(t.x,t.y);if(Math.abs(n)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var t=1-this.es,i=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=i,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function $o(t){var i=t.x,e=t.y,s,a,n,h;if(i=i-this.long0,this.shape==="ellipse"){e=Math.atan(this.radius_p2*Math.tan(e));var r=this.radius_p/V(this.radius_p*Math.cos(e),Math.sin(e));if(a=r*Math.cos(i)*Math.cos(e),n=r*Math.sin(i)*Math.cos(e),h=r*Math.sin(e),(this.radius_g-a)*a-n*n-h*h*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;s=this.radius_g-a,this.flip_axis?(t.x=this.radius_g_1*Math.atan(n/V(h,s)),t.y=this.radius_g_1*Math.atan(h/s)):(t.x=this.radius_g_1*Math.atan(n/s),t.y=this.radius_g_1*Math.atan(h/V(n,s)))}else this.shape==="sphere"&&(s=Math.cos(e),a=Math.cos(i)*s,n=Math.sin(i)*s,h=Math.sin(e),s=this.radius_g-a,this.flip_axis?(t.x=this.radius_g_1*Math.atan(n/V(h,s)),t.y=this.radius_g_1*Math.atan(h/s)):(t.x=this.radius_g_1*Math.atan(n/s),t.y=this.radius_g_1*Math.atan(h/V(n,s))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function Wo(t){var i=-1,e=0,s=0,a,n,h,r;if(t.x=t.x/this.a,t.y=t.y/this.a,this.shape==="ellipse"){this.flip_axis?(s=Math.tan(t.y/this.radius_g_1),e=Math.tan(t.x/this.radius_g_1)*V(1,s)):(e=Math.tan(t.x/this.radius_g_1),s=Math.tan(t.y/this.radius_g_1)*V(1,e));var f=s/this.radius_p;if(a=e*e+f*f+i*i,n=2*this.radius_g*i,h=n*n-4*a*this.C,h<0)return t.x=Number.NaN,t.y=Number.NaN,t;r=(-n-Math.sqrt(h))/(2*a),i=this.radius_g+r*i,e*=r,s*=r,t.x=Math.atan2(e,i),t.y=Math.atan(s*Math.cos(t.x)/i),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if(this.shape==="sphere"){if(this.flip_axis?(s=Math.tan(t.y/this.radius_g_1),e=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+s*s)):(e=Math.tan(t.x/this.radius_g_1),s=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+e*e)),a=e*e+s*s+i*i,n=2*this.radius_g*i,h=n*n-4*a*this.C,h<0)return t.x=Number.NaN,t.y=Number.NaN,t;r=(-n-Math.sqrt(h))/(2*a),i=this.radius_g+r*i,e*=r,s*=r,t.x=Math.atan2(e,i),t.y=Math.atan(s*Math.cos(t.x)/i)}return t.x=t.x+this.long0,t}var Ho=["Geostationary Satellite View","Geostationary_Satellite","geos"];const Vo={init:jo,forward:$o,inverse:Wo,names:Ho};var $t=1.340264,Wt=-.081106,Ht=893e-6,Vt=.003796,Si=Math.sqrt(3)/2;function Xo(){this.es=0,this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0}function Zo(t){var i=w(t.x-this.long0,this.over),e=t.y,s=Math.asin(Si*Math.sin(e)),a=s*s,n=a*a*a;return t.x=i*Math.cos(s)/(Si*($t+3*Wt*a+n*(7*Ht+9*Vt*a))),t.y=s*($t+Wt*a+n*(Ht+Vt*a)),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function Qo(t){t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a;var i=1e-9,e=12,s=t.y,a,n,h,r,f,o;for(o=0;o=m?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=s0,this.forward=e0)}function t0(t){var i=w(t.x-(this.long0||0),this.over),e=t.y,s,a,n;return s=this.am1+this.m1-Ot(e,a=Math.sin(e),n=Math.cos(e),this.en),a=n*i/(s*Math.sqrt(1-this.es*a*a)),t.x=s*Math.sin(a),t.y=this.am1-s*Math.cos(a),t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function i0(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var i,e,s,a;if(e=V(t.x,t.y=this.am1-t.y),a=fe(this.am1+this.m1-e,this.es,this.en),(i=Math.abs(a))Kt?(t.x=a*Math.sin(s=i*Math.cos(e)/a),t.y=this.cphi1-a*Math.cos(s)):t.x=t.y=0,t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function s0(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var i,e,s=V(t.x,t.y=this.cphi1-t.y);if(e=this.cphi1+this.phi1-s,Math.abs(e)>m)throw new Error;return Math.abs(Math.abs(e)-m)<=Kt?i=0:i=s*Math.atan2(t.x,t.y)/Math.cos(e),t.x=w(i+(this.long0||0),this.over),t.y=xt(e),t}var a0=["bonne","Bonne (Werner lat_1=90)"];const r0={init:Yo,names:a0},fs={OBLIQUE:{forward:l0,inverse:c0},TRANSVERSE:{forward:u0,inverse:d0}},pi={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function n0(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=Cs.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);const t=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),i=et(t);if(!i)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);i.long0=0,this.obliqueProjection=i;let e;const s=Object.keys(pi),a=r=>{if(typeof this[r]>"u")return;const f=parseFloat(this[r])*T;if(isNaN(f))throw new Error("Invalid value for "+r+": "+this[r]);return f};for(let r=0;rtypeof this[u]<"u")){e=o;for(let u=0;u"u")throw new Error("Missing parameter: "+d+".");this[g]=M}break}}if(!e)throw new Error("No valid parameters provided for ob_tran projection.");const{lamp:n,phip:h}=f0(this,e);this.lamp=n,Math.abs(h)>x?(this.cphip=Math.cos(h),this.sphip=Math.sin(h),this.projectionType=fs.OBLIQUE):this.projectionType=fs.TRANSVERSE}function h0(t){return this.projectionType.forward(this,t)}function o0(t){return this.projectionType.inverse(this,t)}function f0(t,i){let e,s;if(i===pi.ROTATE){let a=t.oLongC,n=t.oLatC,h=t.oAlpha;if(Math.abs(Math.abs(n)-m)<=x)throw new Error("Invalid value for o_lat_c: "+t.o_lat_c+" should be < 90°");s=a+Math.atan2(-1*Math.cos(h),-1*Math.sin(h)*Math.sin(n)),e=Math.asin(Math.cos(n)*Math.sin(h))}else if(i===pi.NEW_POLE)s=t.oLongP,e=t.oLatP;else{let a=t.oLong1,n=t.oLat1,h=t.oLong2,r=t.oLat2,f=Math.abs(n);if(Math.abs(n)>m-x)throw new Error("Invalid value for o_lat_1: "+t.o_lat_1+" should be < 90°");if(Math.abs(r)>m-x)throw new Error("Invalid value for o_lat_2: "+t.o_lat_2+" should be < 90°");if(Math.abs(n-r)new DecompressionStream("deflate-raw"),i=e=>new Response(e);t(),Hs=e=>i(i(e).body.pipeThrough(t())).arrayBuffer().then(s=>new Uint8Array(s))}catch{}var Hs,ls=new TextDecoder,Vi=t=>{throw Error("but-unzip~"+t)};function*M0(t,i=Hs){let e=t.length-21,s=e-65536,a=new DataView(t.buffer,t.byteOffset),n=f=>a.getUint16(f+e,1),h=f=>a.getUint32(f+e,1),r=(f,o)=>t.subarray(e+=f,e+=o);for(;e>s&&(e=t.lastIndexOf(80,e-1))+1&&(t[e+1]-75||t[e+2]-5||t[e+3]-6););for(e<0&&Vi(2),s=n(10),s-n(8)&&Vi(3),e=h(16);s--;){let f=n(10),o=n(28),l=n(30),c=n(32),u=h(20),d=h(42),g=ls.decode(r(46,o)),M=ls.decode(r(l,c)),v=e,S;e=d,S=r(30+n(26)+n(28),u),yield{filename:g,comment:M,read:()=>f-8?f?Vi(1):S:i(S)},e=v}}const y0=/.+\.(shp|dbf|json|prj|cpg)$/i,m0=async t=>{const i={},e=[];for(const n of M0(t))y0.test(n.filename)&&e.push(Promise.resolve(n.read()).then(h=>i[n.filename]=h));await Promise.all(e);const s={},a=new TextDecoder;for(const[n,h]of Object.entries(i))n.slice(-3).toLowerCase()==="shp"||n.slice(-3).toLowerCase()==="dbf"?s[n]=new DataView(h.buffer,h.byteOffset,h.byteLength):s[n]=a.decode(h);return s},x0=globalThis.URL,E0=(t,i)=>{if(!i)return t;const e=new x0(t);return e.pathname=`${e.pathname}.${i}`,e.href};async function Jt(t,i){const e=E0(t,i),s=i==="prj"||i==="cpg";try{const a=await fetch(e);if(a.status>399)throw new Error(a.statusText);if(s)return a.text();const n=await a.arrayBuffer();return new DataView(n)}catch(a){if(s||i==="dbf")return!1;throw a}}function w0(t){let i=0,e=1;const s=t.length;let a,n;const h=[t[0][0],t[0][1],t[0][0],t[0][1]];for(;eh[2]&&(h[2]=n[0]),n[1]>h[3]&&(h[3]=n[1]);return{ring:t,clockWise:i>0,bbox:h,children:[]}}function us(t,i){return!(t.bbox[0]>i.bbox[0]||t.bbox[1]>i.bbox[1]||t.bbox[2]o.toReversed())));return r}}const n=[];for(const h of e)n.push([h.ring].concat(h.children));return n}L.prototype.parsePoint=function(t){return{type:"Point",coordinates:this.parseCoord(t,0)}};L.prototype.parseZPoint=function(t){const i=this.parsePoint(t);return i.coordinates.push(t.getFloat64(16,!0)),i};L.prototype.parsePointArray=function(t,i,e){const s=[];let a=0;for(;a20&&(i-=20),!(i in cs))throw new Error(`I don't know shp type "${i}"`);this.parseFunc=this[cs[i]],this.parseCoord=S0(t)};L.prototype.getShpCode=function(){return this.parseHeader().shpCode};L.prototype.parseHeader=function(){const t=this.buffer;return{length:t.getInt32(24)<<1,version:t.getInt32(28,!0),shpCode:t.getInt32(32,!0),bbox:[t.getFloat64(36,!0),t.getFloat64(44,!0),t.getFloat64(52,!0),t.getFloat64(60,!0)]}};L.prototype.getRows=function(){let t=100;const i=this.buffer.byteLength-8,e=[];let s;for(;t<=i&&(s=this.getRow(t),!!s);)t+=8,t+=s.len,s.type?e.push(this.parseFunc(s.data)):e.push(null);return e};L.prototype.getRow=function(t){const i=this.buffer.getInt32(t),e=this.buffer.getInt32(t+4)<<1;if(e===0)return{id:i,len:e,type:0};if(!(t+e+8>this.buffer.byteLength))return{id:i,len:e,data:new DataView(this.buffer.buffer,this.buffer.byteOffset+t+12,e-4),type:this.buffer.getInt32(t+8,!0)}};function _e(t,i){return new L(t,i).rows}var p0=/^(?:ANSI\s)?(\d+)$/m;function Xs(t,i){if(!t)return s;try{new TextDecoder(t.trim())}catch{var e=p0.exec(t);return e&&!i?Xs("windows-"+e[1],!0):(t=void 0,s)}return s;function s(a){var n=new TextDecoder(t||void 0),h=n.decode(a,{stream:!0})+n.decode();return h.replace(/\0/g,"").trim()}}function P0(t){var i={};return i.lastUpdated=new Date(t.getUint8(1)+1900,t.getUint8(2),t.getUint8(3)),i.records=t.getUint32(4,!0),i.headerLen=t.getUint16(8,!0),i.recLen=t.getUint16(10,!0),i}function A0(t,i,e){for(var s=[],a=32;a{if(!t)throw new Error("forgot to pass buffer");if(Bt(t))return new Uint8Array(t);if(Bt(t.buffer))return t.BYTES_PER_ELEMENT===1?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")},N0=new TextDecoder,Zs=t=>{if(t){if(typeof t=="string")return t;if(Bt(t)||ArrayBuffer.isView(t)||Me(t))return N0.decode(t)}},Qs=t=>{if(!t)throw new Error("forgot to pass buffer");if(Me(t))return t;if(Bt(t))return new DataView(t);if(Bt(t.buffer))return new DataView(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")};function Bt(t){return t instanceof globalThis.ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]"}function Me(t){return t instanceof globalThis.DataView||Object.prototype.toString.call(t)==="[object DataView]"}const bi=function([t,i]){const e={};e.type="FeatureCollection",e.features=[];let s=0;const a=t.length;for(i||(i=[]);s-1?a.push(e.slice(0,-3)+e.slice(-3).toLowerCase()):(e.slice(-4).toLowerCase()===".dbf"||e.slice(-4).toLowerCase()===".cpg")&&(s[e.slice(0,-3)+e.slice(-3).toLowerCase()]=s[e]));if(!a.length)throw new Error("no layers founds");const n=a.map(function(h){let r,f;const o=h.lastIndexOf(".");return o>-1&&h.slice(o).indexOf("json")>-1?(r=JSON.parse(s[h]),r.fileName=h.slice(0,o)):i.indexOf(h.slice(o+1))>-1?(r=s[h],r.fileName=h):(s[h+".dbf"]&&(f=ve(s[h+".dbf"],s[h+".cpg"])),r=bi([_e(s[h+".shp"],s[h+".prj"]),f]),r.fileName=h),r});return n.length===1?n[0]:n};async function D0(t,i){const e=await Jt(t);return ye(e,i)}const R0=async t=>{const i=await Promise.all([Jt(t,"shp"),Jt(t,"prj")]);let e=!1;try{i[1]&&(e=Ai(i[1]))}catch{e=!1}return _e(i[0],e)},B0=async t=>{const[i,e]=await Promise.all([Jt(t,"dbf"),Jt(t,"cpg")]);if(i)return ve(i,e)},ds=(t,i)=>new G0(t,globalThis?.document?.location).pathname.slice(-4).toLowerCase()===i,O0=({shp:t,dbf:i,cpg:e,prj:s})=>{const a=[Ks(t,s)];return i&&a.push(Js(i,e)),bi(a)},gs=async function(t,i){if(typeof t!="string"){if(Bt(t)||ArrayBuffer.isView(t)||Me(t))return ye(t);if(t.shp)return O0(t);throw new TypeError("must be a string, some sort of Buffer, or an object with at least a .shp property")}if(ds(t,".zip"))return D0(t,i);ds(t,".shp")&&(t=t.slice(0,-4));const e=await Promise.all([R0(t),B0(t)]);return bi(e)},Ks=function(t,i){if(t=Qs(t),i=Zs(i),typeof i=="string")try{i=Ai(i)}catch{i=!1}return _e(t,i)},Js=function(t,i){return t=Qs(t),i=Zs(i),ve(t,i)},L0=Object.freeze(Object.defineProperty({__proto__:null,combine:bi,default:gs,getShapefile:gs,parseDbf:Js,parseShp:Ks,parseZip:ye},Symbol.toStringTag,{value:"Module"}));export{L0 as i,F0 as r}; //# sourceMappingURL=shpjs-Doisr2ug.js.map