1function e(e){if(typeof e!=`string`)return null;let t=e.trim().toUpperCase();if(!t)return null;let n=null,r=t.match(/[NSEW]/);if(r&&(n=r[0],t=t.replace(/[NSEW]/g,` `)),t=t.replace(/[°ºË'â²"â³ââââ:]/g,` `).replace(/\s+/g,` `).trim(),!t)return null;let i=t.split(` `).map(Number);if(i.length===0||i.some(e=>Number.isNaN(e))||i.length>3)return null;let a=i[0]<0||Object.is(i[0],-0)?-1:1,o=Math.abs(i[0]),s=i.length>1?i[1]:0,c=i.length>2?i[2]:0;if(s<0||s>=60||c<0||c>=60)return null;let l=a*(o+s/60+c/3600);return n===`S`||n===`W`?l=-Math.abs(l):(n===`N`||n===`E`)&&(l=Math.abs(l)),{decimal:l,hemisphere:n}}function t(t){if(typeof t!=`string`)return null;let i=t.trim();if(!i)return null;let a,o;if(i.includes(`,`)){let e=i.indexOf(`,`);a=i.slice(0,e),o=i.slice(e+1)}else{let e=i.toUpperCase().match(/^(.*?[NS])\s*(.*?[EW])$/);if(e)a=e[1],o=e[2];else{let e=i.match(/-?\d+(?:\.\d+)?/g);if(e&&e.length===2)a=e[0],o=e[1];else return null}}let s=e(a),c=e(o);return!s||!c||!n(s.decimal)||!r(c.decimal)?null:{lat:s.decimal,lng:c.decimal}}var n=e=>typeof e==`number`&&Number.isFinite(e)&&e>=-90&&e<=90,r=e=>typeof e==`number`&&Number.isFinite(e)&&e>=-180&&e<=180;function i(e,t=6){return Number(e).toFixed(t)}function a(e,t){let n=t?e>=0?`N`:`S`:e>=0?`E`:`W`,r=Math.abs(e),i=Math.floor(r),a=Number(((r-i)*60).toFixed(3));return a>=60&&(i+=1,a=0),`${i}°${a.toFixed(3).padStart(6,`0`)}'${n}`}export{i as n,a as r,t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.