@mappedin/blue-dot 6.15.0-beta.0 → 6.17.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,7 +49,7 @@ export interface SensorRegistryProxy {
49
49
  * Extension state for Blue Dot that includes the current state and position.
50
50
  * Excludes Sensors as it uses a special proxy type for React Native.
51
51
  */
52
- export type BlueDotExtensionState = Omit<ConditionalExcept<BlueDot, (...args: any[]) => any>, 'Sensors'>;
52
+ export type BlueDotExtensionState = Omit<ConditionalExcept<BlueDot, (...args: any[]) => any>, 'Sensors' | 'Fusion'>;
53
53
  /**
54
54
  * Helper type that asyncifies all methods from BlueDot, excluding event listener methods.
55
55
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mappedin/blue-dot",
3
- "version": "6.15.0-beta.0",
3
+ "version": "6.17.0-beta.0",
4
4
  "homepage": "https://developer.mappedin.com/",
5
5
  "private": false,
6
6
  "main": "lib/esm/index.js",
@@ -22,12 +22,20 @@
22
22
  "types": "./lib/esm/react/index.d.ts",
23
23
  "import": "./lib/esm/react/index.js",
24
24
  "require": "./lib/esm/react/index.js"
25
+ },
26
+ "./debug": {
27
+ "types": "./lib/esm/debug/index.d.ts",
28
+ "import": "./lib/esm/debug/index.js",
29
+ "require": "./lib/esm/debug/index.js"
25
30
  }
26
31
  },
27
32
  "typesVersions": {
28
33
  "*": {
29
34
  "rn": [
30
35
  "lib/rn/index-rn.d.ts"
36
+ ],
37
+ "debug": [
38
+ "lib/esm/debug/index.d.ts"
31
39
  ]
32
40
  }
33
41
  },
@@ -43,9 +51,9 @@
43
51
  },
44
52
  "peerDependencies": {
45
53
  "react": ">=16.8.0",
46
- "@mappedin/mappedin-js": "^6.15.0",
47
- "@mappedin/react-sdk": "^6.15.0",
48
- "@mappedin/react-native-sdk": "^6.15.0"
54
+ "@mappedin/mappedin-js": "^6.17.0",
55
+ "@mappedin/react-native-sdk": "^6.17.0",
56
+ "@mappedin/react-sdk": "^6.17.0"
49
57
  },
50
58
  "peerDependenciesMeta": {
51
59
  "@mappedin/react-native-sdk": {
@@ -65,7 +73,7 @@
65
73
  "scripts": {
66
74
  "start": "pnpm build && concurrently \"node scripts/build.mjs --watchChanges\" \"node scripts/start.mjs\"",
67
75
  "build:deps": "RN_BUILD=true npx turbo build --filter=@mappedin/blue-dot --ui stream",
68
- "build": "pnpm clean && tsc -b tsconfig.build.json && node scripts/build.mjs",
76
+ "build": "pnpm clean && tsc -b tsconfig.build.json && node scripts/build.mjs",
69
77
  "build:prod": "cross-env NODE_ENV=production RN_BUILD=true pnpm build",
70
78
  "build:rn": "cross-env RN_BUILD=true pnpm build",
71
79
  "types": "tsc -b",
@@ -1 +0,0 @@
1
- var tr=Object.create;var Si=Object.defineProperty,ir=Object.defineProperties,nr=Object.getOwnPropertyDescriptor,or=Object.getOwnPropertyDescriptors,rr=Object.getOwnPropertyNames,Pi=Object.getOwnPropertySymbols,sr=Object.getPrototypeOf,en=Object.prototype.hasOwnProperty,$n=Object.prototype.propertyIsEnumerable;var Un=r=>{throw TypeError(r)};var Qi=(r,i,t)=>i in r?Si(r,i,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[i]=t,x=(r,i)=>{for(var t in i||(i={}))en.call(i,t)&&Qi(r,t,i[t]);if(Pi)for(var t of Pi(i))$n.call(i,t)&&Qi(r,t,i[t]);return r},Mt=(r,i)=>ir(r,or(i)),a=(r,i)=>Si(r,"name",{value:i,configurable:!0});var tn=(r,i)=>{var t={};for(var n in r)en.call(r,n)&&i.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&Pi)for(var n of Pi(r))i.indexOf(n)<0&&$n.call(r,n)&&(t[n]=r[n]);return t};var ar=(r,i)=>()=>(r&&(i=r(r=0)),i);var lr=(r,i)=>()=>(i||r((i={exports:{}}).exports,i),i.exports);var ur=(r,i,t,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of rr(i))!en.call(r,o)&&o!==t&&Si(r,o,{get:()=>i[o],enumerable:!(n=nr(i,o))||n.enumerable});return r};var dr=(r,i,t)=>(t=r!=null?tr(sr(r)):{},ur(i||!r||!r.__esModule?Si(t,"default",{value:r,enumerable:!0}):t,r));var T=(r,i,t)=>Qi(r,typeof i!="symbol"?i+"":i,t),nn=(r,i,t)=>i.has(r)||Un("Cannot "+t);var e=(r,i,t)=>(nn(r,i,"read from private field"),t?t.call(r):i.get(r)),u=(r,i,t)=>i.has(r)?Un("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(r):i.set(r,t),l=(r,i,t,n)=>(nn(r,i,"write to private field"),n?n.call(r,t):i.set(r,t),t),g=(r,i,t)=>(nn(r,i,"access private method"),t);var _t=(r,i,t,n)=>({set _(o){l(r,i,o,t)},get _(){return e(r,i,n)}});var P,f=ar(()=>{P={env:{NODE_ENV:"production",npm_package_version:"6.15.0-beta.0"}}});var Co=lr((Hl,Gi)=>{f();(function(){"use strict";function r(d,c){var h=d.x-c.x,m=d.y-c.y;return h*h+m*m}a(r,"getSqDist");function i(d,c,h){var m=c.x,b=c.y,y=h.x-m,E=h.y-b;if(y!==0||E!==0){var O=((d.x-m)*y+(d.y-b)*E)/(y*y+E*E);O>1?(m=h.x,b=h.y):O>0&&(m+=y*O,b+=E*O)}return y=d.x-m,E=d.y-b,y*y+E*E}a(i,"getSqSegDist");function t(d,c){for(var h=d[0],m=[h],b,y=1,E=d.length;y<E;y++)b=d[y],r(b,h)>c&&(m.push(b),h=b);return h!==b&&m.push(b),m}a(t,"simplifyRadialDist");function n(d,c,h,m,b){for(var y=m,E,O=c+1;O<h;O++){var W=i(d[O],d[c],d[h]);W>y&&(E=O,y=W)}y>m&&(E-c>1&&n(d,c,E,m,b),b.push(d[E]),h-E>1&&n(d,E,h,m,b))}a(n,"simplifyDPStep");function o(d,c){var h=d.length-1,m=[d[0]];return n(d,0,h,c,m),m.push(d[h]),m}a(o,"simplifyDouglasPeucker");function s(d,c,h){if(d.length<=2)return d;var m=c!==void 0?c*c:1;return d=h?d:t(d,m),d=o(d,m),d}a(s,"simplify"),typeof define=="function"&&define.amd?define(function(){return s}):typeof Gi<"u"?(Gi.exports=s,Gi.exports.default=s):typeof self<"u"?self.simplify=s:window.simplify=s})()});f();f();f();var hr="[MappedinJS]";function on(r="",{prefix:i=hr}={}){let t="".concat(i).concat(r?"-".concat(r):""),n=a((o,s)=>{if(typeof window<"u"&&window.rnDebug){let d=s.map(c=>c instanceof Error&&c.stack?"".concat(c.message,"\n").concat(c.stack):c);window.rnDebug("".concat(r," ").concat(o,": ").concat(d.join(" ")))}},"rnDebug");return{logState:P.env.NODE_ENV==="test"?3:0,log(...o){this.logState<=0&&(console.log(t,...o),n("log",o))},warn(...o){this.logState<=1&&(console.warn(t,...o),n("warn",o))},error(...o){this.logState<=2&&(console.error(t,...o),n("error",o))},assert(...o){console.assert(...o)},time(o){console.time(o)},timeEnd(o){console.timeEnd(o)},setLevel(o){0<=o&&o<=3&&(this.logState=o)}}}a(on,"createLogger");var os=on();var p=on("",{prefix:"[BlueDot]"});f();var rn=class rn{constructor(){T(this,"_subscribers",{});T(this,"_abortController",new AbortController);T(this,"_cleanupFunctions",[])}get signal(){return this._abortController.signal}publish(i,t){!this._subscribers||!this._subscribers[i]||this.signal.aborted||this._subscribers[i].forEach(function(n){typeof n=="function"&&n(t)})}onAbort(i){this.signal.addEventListener("abort",()=>i(),{once:!0})}on(i,t,n){let o=n==null?void 0:n.signal;if(o!=null&&o.aborted||this._abortController&&this._abortController.signal.aborted)return()=>{};this._subscribers||(this._subscribers={}),this._subscribers[i]=this._subscribers[i]||[],this._subscribers[i].push(t);let s=a(()=>this.off(i,t),"cleanup");return o&&o.addEventListener("abort",s,{once:!0}),this._cleanupFunctions.push(s),s}off(i,t){if(!this._subscribers||this._subscribers[i]==null||this.signal.aborted)return;let n=this._subscribers[i].indexOf(t);n!==-1&&this._subscribers[i].splice(n,1)}destroy(){if(!this.signal.aborted){for(let i of this._cleanupFunctions)i();this._cleanupFunctions=[],this._subscribers={},this._abortController.abort()}}};a(rn,"PubSub");var k=rn;var sn=class sn extends k{constructor(){super();T(this,"enabled",!1)}get isEnabled(){return this.enabled}onFusedPosition(t){}setAnchor(t){var s,d;let n={latitude:t.latitude,longitude:t.longitude,heading:t.heading,floorLevel:t.floorLevel,sensorId:this.id,timestamp:Date.now(),ttl:(s=t.ttl)!=null?s:3e4,confidence:(d=t.confidence)!=null?d:1},o=t.anchorOnlyPeriodMs!=null?{anchorOnlyPeriodMs:t.anchorOnlyPeriodMs}:void 0;this.publish("anchor-set",{sensorId:this.id,anchor:n,configOverride:o})}clearAnchor(){this.publish("anchor-clear",{sensorId:this.id})}async enable(){if(this.enabled)return"granted";if(this.requiresPermission){let t=await this.checkPermission();if(t==="unavailable")return p.error('Sensor "'.concat(this.id,'" is unavailable on this device.')),t;let n=await this.requestPermission();if(n!=="granted")return p.error('Permission declined for sensor "'.concat(this.id,'".')),n}try{return await this.start(),this.enabled=!0,"granted"}catch(t){return p.error('Error starting sensor "'.concat(this.id,'".'),t),"unavailable"}}disable(){this.stop(),this.enabled=!1}};a(sn,"BaseSensor");var me=sn;f();var Pe,an=class an extends me{constructor(){super(...arguments);T(this,"id","manual");T(this,"requiresPermission",!1);u(this,Pe,!1)}reportPosition(t){var o,s;if(!e(this,Pe))return;let n={latitude:t.latitude,longitude:t.longitude,accuracy:t.accuracy,heading:t.heading,floorLevel:t.floorLevel,confidence:(o=t.confidence)!=null?o:.5,timestamp:(s=t.timestamp)!=null?s:Date.now()};this.publish("absolute-update",{sensorId:this.id,update:n})}reportDisplacement(t){var o,s;if(!e(this,Pe))return;let n={dx:t.dx,dy:t.dy,heading:t.heading,confidence:(o=t.confidence)!=null?o:.8,timestamp:(s=t.timestamp)!=null?s:Date.now()};this.publish("relative-update",{sensorId:this.id,update:n})}forcePosition(t){var o;if(!e(this,Pe))return;let n=(o=t.ttl)!=null?o:3e4;this.setAnchor({latitude:t.latitude,longitude:t.longitude,heading:t.heading,floorLevel:t.floorLevel,ttl:n,confidence:1,anchorOnlyPeriodMs:n})}clearForcedPosition(){e(this,Pe)&&this.clearAnchor()}async start(){l(this,Pe,!0)}stop(){l(this,Pe,!1)}async checkPermission(){return"granted"}async requestPermission(){return"granted"}};Pe=new WeakMap,a(an,"ManualSensor");var Ei=an;f();f();function wt(){return typeof window<"u"&&window!==null}a(wt,"isBrowser");function mr(r){return wt()?(typeof r=="object"||typeof r=="function")&&r!==null&&"requestPermission"in r&&typeof r.requestPermission=="function":!1}a(mr,"hasRequestPermission");async function fr(r){if(!mr(r))return"unavailable";try{return await r.requestPermission()}catch(i){return"denied"}}a(fr,"requestPermission");function ln(r){return wt()?typeof r<"u"&&r!=null:!1}a(ln,"supportsEvent");async function un(r){if(!ln(r))return"unavailable";let i=await fr(r);return i!=="unavailable"?i:"granted"}a(un,"requestEventPermission");function pr(r){return wt()?typeof navigator<"u"&&navigator!=null&&typeof navigator[r]<"u"&&navigator[r]!=null:!1}a(pr,"supportsNavigatorAPI");async function Vn(){return pr("geolocation")?new Promise(r=>{navigator.geolocation.getCurrentPosition(()=>r("granted"),i=>{i.code===i.PERMISSION_DENIED?r("denied"):r("granted")},{enableHighAccuracy:!0})}):"unavailable"}a(Vn,"requestGeolocationPermission");var br=(()=>{let r;return{getDeviceType(){if(r)return r;let{userAgent:i,platform:t,maxTouchPoints:n}=window.navigator,o=/(iphone|ipod|ipad)/i.test(i),s=t==="iPad"||t.indexOf("Mac")===0&&n>0&&!window.MSStream,d=/android/i.test(i);return r={isIpad:s,isMobile:d||o||s,isIOS:o,isAndroid:d,isSafari12:/Version\/12.+Safari/.test(i),isFirefox:/Firefox/.test(i),isWindows:/windows/i.test(i)},r},_reset(){r=void 0}}})(),Se=br.getDeviceType,Hn=(()=>{let r,i,t;function n(){if(i!==void 0)return i;r||(r=document.createElement("canvas"));let s=r.getContext("webgl")||r.getContext("experimental-webgl");if(!s)return i;try{let d=Se().isFirefox?null:s.getExtension("WEBGL_debug_renderer_info");return i=d?s.getParameter(d.UNMASKED_RENDERER_WEBGL):s.getParameter(s.RENDERER),i}catch(d){let c=new Error("Failed getting device info");throw c.name="FailedGettingDeviceInfo",c}}a(n,"getInfo");function o(){var d,c;if(!Se().isWindows)return!1;if(t!==void 0)return t;let s=(c=(d=gr())==null?void 0:d.toLowerCase())!=null?c:"";return t=s.includes("intel")&&(s.includes("uhd")||s.includes("iris")),t}return a(o,"shouldDisableOffscreenCanvas"),{getInfo:n,shouldDisableOffscreenCanvas:o,_setCanvas(s){r=s,i=void 0,t=void 0}}})(),gr=Hn.getInfo,vs=Hn.shouldDisableOffscreenCanvas;f();f();function vi(r,i,t){let n=null,o=null,s,d=null,c=0;t||(t={});let h=a(function(){c=t.leading===!1?0:Date.now(),d=null,o&&(s=r.apply(n,o)),d||(n=o=null)},"later");return function(...m){let b=Date.now();!c&&t.leading===!1&&(c=b);let y=i-(b-c);return y<=0||y>i?(d&&(clearTimeout(d),d=null),c=b,s=r.apply(this,m),d||(n=o=null)):!d&&t.trailing!==!1&&(n=this,o=m,d=setTimeout(h,y)),s}}a(vi,"throttle");f();f();f();var kn=["devicemotion","deviceorientation","deviceorientationabsolute","geolocation"];var ke,Di,Jn,cn=class cn{constructor(){u(this,Di);u(this,ke,new Map);this.reset()}async check(i){var t;return(t=e(this,ke).get(i))!=null?t:"unavailable"}async request(i){let t="unavailable";switch(i){case"geolocation":t=await Vn();break;case"devicemotion":t=await un(window==null?void 0:window.DeviceMotionEvent);break;case"deviceorientation":t=await un(window==null?void 0:window.DeviceOrientationEvent);break;case"deviceorientationabsolute":t="granted";break;default:p.warn("Unsupported permission type requested: ".concat(i));break}return g(this,Di,Jn).call(this,i,t),t}reset(){for(let i of kn)e(this,ke).set(i,"prompt")}};ke=new WeakMap,Di=new WeakSet,Jn=a(function(i,t){e(this,ke).get(i)!==t&&e(this,ke).set(i,t)},"#updatePermissionState"),a(cn,"BrowserPermissions");var dn=cn,Ee=new dn;var Oe,it,nt,At,hn=class hn extends me{constructor(){super();T(this,"id","deviceorientation");u(this,Oe);u(this,it,null);u(this,nt,2);T(this,"start",a(async()=>{window.addEventListener(e(this,Oe),e(this,At))},"start"));T(this,"stop",a(()=>{window.removeEventListener(e(this,Oe),e(this,At))},"stop"));T(this,"checkPermission",a(async()=>Ee.check(e(this,Oe)),"checkPermission"));T(this,"requestPermission",a(async()=>Ee.request(e(this,Oe)),"requestPermission"));u(this,At,vi(t=>{var s,d,c;let n=Math.round((d=t.webkitCompassHeading)!=null?d:-((s=t.alpha)!=null?s:0)),o=n-((c=e(this,it))!=null?c:0);if(typeof n=="number"&&Math.abs(o)>e(this,nt)){let h=e(this,it)==null;l(this,it,n),h&&p.log("Compass: first heading ".concat(n,"\xB0")),this.publish("absolute-update",{sensorId:this.id,update:{heading:n,timestamp:Date.now(),confidence:1}})}},100));l(this,Oe,typeof DeviceOrientationEvent<"u"&&(ln(DeviceOrientationEvent)||Se().isIOS)?"deviceorientation":"deviceorientationabsolute")}get requiresPermission(){return Se().isIOS}configure(t){t.deltaThreshold!==void 0&&l(this,nt,Math.max(t.deltaThreshold,.5))}getConfig(){return{deltaThreshold:e(this,nt)}}};Oe=new WeakMap,it=new WeakMap,nt=new WeakMap,At=new WeakMap,a(hn,"DeviceOrientationSensor");var xi=hn;f();f();import C from"zod";var qn=C.object({coords:C.object({latitude:C.number(),longitude:C.number(),accuracy:C.number(),altitude:C.number().optional().nullable(),altitudeAccuracy:C.number().optional().nullable(),heading:C.number().optional().nullable(),speed:C.number().optional().nullable(),floorLevel:C.number().optional().nullable()}),timestamp:C.number()}),zn=C.object({latitude:C.number(),longitude:C.number(),floor:C.any().optional(),accuracy:C.number().optional(),heading:C.number().optional().nullable(),timestamp:C.number().optional()});import Sr from"zod";f();var Kn={maxPlausibleSpeed:10,minTimeForSpeedCheck:500};function Tr(r,i,t,n){let o=111320*Math.cos(r*Math.PI/180),s=(t-r)*111320,d=(n-i)*o;return Math.sqrt(s*s+d*d)}a(Tr,"calculateDistance");function Pr(r,i,t){let n=Tr(r.latitude,r.longitude,i.latitude,i.longitude),o=(i.timestamp-r.timestamp)/1e3;if(o<t.minTimeForSpeedCheck/1e3)return{isOutlier:!1,distance:n,timeDelta:o,impliedSpeed:0};let s=n/o;return{isOutlier:s>t.maxPlausibleSpeed,distance:n,timeDelta:o,impliedSpeed:s}}a(Pr,"checkForOutlier");function Wn(r,i,t){return r==null?{isOutlier:!1,distance:0,timeDelta:0,impliedSpeed:0}:Pr(r,i,t)}a(Wn,"checkForOutlierSafe");var Le,ot,rt,Je,_i,Ot,wi,Ai,mn=class mn extends me{constructor(){super(...arguments);T(this,"id","geolocation");T(this,"requiresPermission",!1);u(this,Le);u(this,ot,!1);u(this,rt);u(this,Je,Kn);u(this,_i,a(t=>{var d;if(this.isEnabled===!1)return;if(t==null||t.coords==null){let c={code:2,message:"Invalid position received",PERMISSION_DENIED:1,POSITION_UNAVAILABLE:2,TIMEOUT:3};e(this,Ot).call(this,c);return}let n=e(this,wi).call(this,t);if(n==null)return;let o={latitude:n.latitude,longitude:n.longitude,timestamp:(d=n.timestamp)!=null?d:Date.now()},s=Wn(e(this,rt),o,e(this,Je));if(s.isOutlier){p.warn("GPS outlier rejected: ".concat(s.distance.toFixed(0),"m in ").concat(s.timeDelta.toFixed(1),"s ")+"(implied ".concat(s.impliedSpeed.toFixed(1)," m/s, max ").concat(e(this,Je).maxPlausibleSpeed," m/s)"));return}l(this,rt,o),this.publish("absolute-update",{sensorId:this.id,update:n})},"#onSuccess"));u(this,Ot,a(t=>{switch(t.code){case t.PERMISSION_DENIED:p.error("Geolocation permission denied by the user.",t);break;case t.POSITION_UNAVAILABLE:p.error("Geolocation position unavailable.",t);break;case t.TIMEOUT:p.error("Geolocation request timed out.",t);break;default:p.error("An unknown geolocation error occurred.",t);break}this.publish("error",{sensorId:this.id,error:t})},"#onError"));u(this,wi,a(t=>{try{qn.parse(t)}catch(s){this.publish("error",{sensorId:this.id,error:s}),p.error("Browser sent invalid position",s instanceof Sr.ZodError?s.message:String(s));return}let n=t.coords.floorLevel!=null,o=e(this,ot);return l(this,ot,n),n&&!o?p.log("Geolocation: Likely switched to IPS (Indoor Positioning System) - floor level detected"):!n&&o&&p.log("Geolocation: Likely switched to GPS - no floor level"),{latitude:t.coords.latitude,longitude:t.coords.longitude,accuracy:t.coords.accuracy,heading:t.coords.heading,floorLevel:t.coords.floorLevel,timestamp:t.timestamp,confidence:e(this,Ai).call(this,t.coords.accuracy,n)}},"#createPositionUpdate"));u(this,Ai,a((t,n)=>n?t<=5?.9:t<=10?.7:t<=20?.5:.3:t<3?.1:t<=10?.15:t<=20?.1:.05,"#calculateConfidence"))}get isLikelyIPS(){return e(this,ot)}configureOutlierDetection(t){l(this,Je,x(x({},e(this,Je)),t))}async enable(){return this.enabled||(await this.start(),this.enabled=!0),"granted"}async start(){if(e(this,Le)!=null){p.warn("Geolocation sensor already started.");return}l(this,Le,navigator.geolocation.watchPosition(t=>e(this,_i).call(this,t),t=>e(this,Ot).call(this,t),{enableHighAccuracy:!0}))}stop(){e(this,Le)!=null&&(navigator.geolocation.clearWatch(e(this,Le)),l(this,Le,void 0)),l(this,rt,void 0)}async checkPermission(){return Ee.check(this.id)}async requestPermission(){return Ee.request(this.id)}};Le=new WeakMap,ot=new WeakMap,rt=new WeakMap,Je=new WeakMap,_i=new WeakMap,Ot=new WeakMap,wi=new WeakMap,Ai=new WeakMap,a(mn,"GeolocationSensor");var Mi=mn;f();f();f();function Zn(r,i,t){let n=jn(i);if(r===void 0)return n;let o=n-r;o>180&&(o-=360),o<-180&&(o+=360);let s=r+o*t;return jn(s)}a(Zn,"smoothHeading");function jn(r){let i=r%360;return i<0&&(i+=360),i===0?0:i}a(jn,"normalizeAngle");function fn(r,i,t){let n=Math.abs(i-9.81),o=i>r.lastMagnitude;return{isPeak:r.wasRising&&!o&&r.lastNetAcceleration>t,nextState:{wasRising:o,lastMagnitude:i,lastNetAcceleration:n}}}a(fn,"detectStepPeak");function Xn(r,i,t,n,o){if(o<=0)return r;let s=i.filter(W=>t-W<n);if(s.length<2)return r;let d=s[0],c=(t-d)/1e3/60,E=1+((s.length-1)/c/110-1)*o,O=Math.min(Math.max(E,.7),1.3);return r*O}a(Xn,"calculateAdaptiveStepLength");function Yn(r,i){let t=r*Math.PI/180;return{dx:i*Math.sin(t),dy:i*Math.cos(t)}}a(Yn,"calculateStepDisplacement");function Qn(r,i,t,n,o,s){return!o||!(t-r<s.zuptDelayMs)||n>s.tiltThreshold||t-i<s.minStepInterval}a(Qn,"shouldSuppressStepDetection");function eo(r){return Math.abs(r-9.81)}a(eo,"calculateNetAcceleration");function to(r,i,t){return Math.sqrt(r*r+i*i+t*t)}a(to,"calculateAccelerationMagnitude");function io(r,i,t){return Math.sqrt(r*r+i*i+t*t)}a(io,"calculateRotationMagnitude");function no(r,i,t){return r.filter(n=>i-n<t)}a(no,"pruneOldTimestamps");var te,ie,Oi,qe,ze,It,st,at,Rt,Ct,Ke,lt,ut,dt,ct,Gt,fe,oo,ro,so,Ft,ao,pn=class pn extends me{constructor(){super(...arguments);u(this,fe);T(this,"id","devicemotion");u(this,te,!1);u(this,ie);u(this,Oi,.3);u(this,qe,{wasRising:!1,lastMagnitude:9.81,lastNetAcceleration:0});u(this,ze,[]);u(this,It,5e3);u(this,st,0);u(this,at,0);u(this,Rt,0);u(this,Ct,{zuptDelayMs:500,tiltThreshold:50,minStepInterval:300});u(this,Ke,1);u(this,lt,.7);u(this,ut,0);u(this,dt,.5);u(this,ct,!0);T(this,"start",a(async()=>{if(this.enabled){p.warn("Device motion sensor already started.");return}this.enabled=!0,window.addEventListener("devicemotion",e(this,Gt))},"start"));T(this,"stop",a(()=>{if(!this.enabled){p.warn("Device motion sensor not started.");return}this.enabled=!1,window.removeEventListener("devicemotion",e(this,Gt))},"stop"));T(this,"checkPermission",a(async()=>Ee.check("devicemotion"),"checkPermission"));T(this,"requestPermission",a(async()=>Ee.request("devicemotion"),"requestPermission"));u(this,Gt,vi(t=>{let n=Date.now();g(this,fe,oo).call(this,t.rotationRate,n),g(this,fe,ro).call(this,t.accelerationIncludingGravity,n)},50));u(this,Ft,0)}get requiresPermission(){return Se().isIOS}get isMoving(){return e(this,te)}setHeading(t){var o;let n=e(this,ie)==null;l(this,ie,Zn(e(this,ie),t,e(this,Oi))),n&&p.log("PDR heading initialized: ".concat((o=e(this,ie))==null?void 0:o.toFixed(1),"\xB0"))}configure(t){t.stepDetectionThreshold!==void 0&&l(this,Ke,Math.max(t.stepDetectionThreshold,.1)),t.stepLength!==void 0&&l(this,lt,Math.min(Math.max(t.stepLength,.2),2)),t.strideAdaptation!==void 0&&l(this,ut,Math.min(Math.max(t.strideAdaptation,0),1)),t.motionThreshold!==void 0&&l(this,dt,Math.max(t.motionThreshold,.1)),t.pdrEnabled!==void 0&&l(this,ct,t.pdrEnabled)}getConfig(){return{stepDetectionThreshold:e(this,Ke),stepLength:e(this,lt),strideAdaptation:e(this,ut),motionThreshold:e(this,dt),pdrEnabled:e(this,ct)}}};te=new WeakMap,ie=new WeakMap,Oi=new WeakMap,qe=new WeakMap,ze=new WeakMap,It=new WeakMap,st=new WeakMap,at=new WeakMap,Rt=new WeakMap,Ct=new WeakMap,Ke=new WeakMap,lt=new WeakMap,ut=new WeakMap,dt=new WeakMap,ct=new WeakMap,Gt=new WeakMap,fe=new WeakSet,oo=a(function(t,n){t!=null&&(t.alpha!=null&&this.publish("absolute-update",{sensorId:this.id,update:{angularVelocity:t.alpha,timestamp:n,confidence:.9}}),t.alpha!=null&&t.beta!=null&&t.gamma!=null&&l(this,Rt,io(t.alpha,t.beta,t.gamma)))},"#processGyroscope"),ro=a(function(t,n){if(t==null)return;let{x:o,y:s,z:d}=t;if(o==null||s==null||d==null)return;let c=to(o,s,d),h=eo(c);if(g(this,fe,so).call(this,h,n),e(this,ct))g(this,fe,ao).call(this,c,n);else{let m=fn(e(this,qe),c,e(this,Ke));l(this,qe,m.nextState)}},"#processAccelerometer"),so=a(function(t,n){let o=e(this,te);if(l(this,te,t>e(this,dt)),e(this,te)&&l(this,at,n),o!==e(this,te)){e(this,te)&&p.log("Motion: MOVING, accel=".concat(t.toFixed(2)," m/s\xB2"));let s=e(this,te)?.7:1;this.publish("absolute-update",{sensorId:this.id,update:{timestamp:n,confidence:s,speed:e(this,te)?t:0}})}},"#updateMotionState"),Ft=new WeakMap,ao=a(function(t,n){var y;let o=fn(e(this,qe),t,e(this,Ke));if(l(this,qe,o.nextState),!o.isPeak)return;p.log("Peak detected: magnitude=".concat(t.toFixed(2)," m/s\xB2"));let s=e(this,ie)!=null,d=n-e(this,at)<e(this,Ct).zuptDelayMs,c=n-e(this,st);if(Qn(e(this,at),e(this,st),n,e(this,Rt),s,e(this,Ct))){p.warn("Step suppressed: hasHeading=".concat(s,", recentlyMoving=").concat(d,", timeSinceLastStep=").concat(c,"ms"));return}l(this,st,n),e(this,ze).push(n),l(this,ze,no(e(this,ze),n,e(this,It)));let m=Xn(e(this,lt),e(this,ze),n,e(this,It),e(this,ut)),b=Yn(e(this,ie),m);_t(this,Ft)._++,p.log("Step #".concat(e(this,Ft),": heading=").concat((y=e(this,ie))==null?void 0:y.toFixed(1),"\xB0, dx=").concat(b.dx.toFixed(3),"m, dy=").concat(b.dy.toFixed(3),"m")),this.publish("relative-update",{sensorId:this.id,update:{dx:b.dx,dy:b.dy,heading:e(this,ie),timestamp:n,confidence:.7}})},"#processPDR"),a(pn,"DeviceMotionSensor");var Lt=pn;var ne,Nt,Ie,ht,Bt,$t,Ut,Vt,Ht,bn=class bn extends k{constructor(){super();u(this,Ie);u(this,ne,new Map);u(this,Nt,!1);u(this,Bt,a(({sensorId:t,update:n})=>{if(this.publish("absolute-update",{sensorId:t,update:n}),(t==="deviceorientation"||t==="manual")&&n.heading!=null){let o=e(this,ne).get("devicemotion");o instanceof Lt&&(e(this,Nt)||(l(this,Nt,!0),p.log("Registry: forwarding heading ".concat(n.heading,"\xB0 from ").concat(t," to PDR"))),o.setHeading(n.heading))}},"#handleAbsoluteUpdate"));u(this,$t,a(({sensorId:t,update:n})=>{this.publish("relative-update",{sensorId:t,update:n})},"#handleRelativeUpdate"));u(this,Ut,a(t=>{this.publish("anchor-set",t)},"#handleAnchorSet"));u(this,Vt,a(t=>{this.publish("anchor-clear",t)},"#handleAnchorClear"));u(this,Ht,a(({sensorId:t,error:n})=>{this.publish("error",{sensorId:t,error:n})},"#handleError"));wt()&&(g(this,Ie,ht).call(this,new Mi),g(this,Ie,ht).call(this,new xi),g(this,Ie,ht).call(this,new Lt),g(this,Ie,ht).call(this,new Ei))}register(t){return g(this,Ie,ht).call(this,t)}get(t){return e(this,ne).get(t)}unregister(t){let n=typeof t=="string"?t:t.id,o=e(this,ne).get(n);o&&(o.isEnabled&&o.disable(),o.off("absolute-update",e(this,Bt)),o.off("relative-update",e(this,$t)),o.off("anchor-set",e(this,Ut)),o.off("anchor-clear",e(this,Vt)),o.off("error",e(this,Ht)),e(this,ne).delete(n))}getAll(){return e(this,ne).entries()}destroy(){let t=[...e(this,ne).keys()];for(let n of t)this.unregister(n);super.destroy()}};ne=new WeakMap,Nt=new WeakMap,Ie=new WeakSet,ht=a(function(t){let n=t.id;if(e(this,ne).has(n)){p.warn("Sensor with id ".concat(n," already registered. Please use a different id."));return}return e(this,ne).set(n,t),t.on("absolute-update",e(this,Bt)),t.on("relative-update",e(this,$t)),t.on("anchor-set",e(this,Ut)),t.on("anchor-clear",e(this,Vt)),t.on("error",e(this,Ht)),t},"#registerInternal"),Bt=new WeakMap,$t=new WeakMap,Ut=new WeakMap,Vt=new WeakMap,Ht=new WeakMap,a(bn,"SensorRegistry");var Li=bn;f();import{Coordinate as Gn}from"@mappedin/mappedin-js";import ts from"zod";f();var gn="#2266ff",_r="#808080";var lo={radius:10,color:gn,inactiveColor:_r,heading:{color:gn,opacity:.7,displayWhenInactive:!1},accuracyRing:{color:gn,opacity:.3},timeout:3e4,watchDevicePosition:!0,debug:!1,accuracyThreshold:50,initialState:"hidden",preventOutOfBounds:!0,discardStaleUpdates:!0};f();import{ANIMATION_TWEENS as Dn,Coordinate as vo}from"@mappedin/mappedin-js";var uo="data:application/octet-stream;base64,Z2xURgIAAAAcIAAAgAQAAEpTT057ImFzc2V0Ijp7InZlcnNpb24iOiIyLjAifSwic2NlbmVzIjpbeyJub2RlcyI6WzBdfV0sInNjZW5lIjowLCJub2RlcyI6W3sibWVzaCI6MH1dLCJidWZmZXJWaWV3cyI6W3siYnVmZmVyIjowLCJieXRlT2Zmc2V0IjowLCJieXRlTGVuZ3RoIjoyMzUyLCJ0YXJnZXQiOjM0OTYyLCJieXRlU3RyaWRlIjoxMn0seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjIzNTIsImJ5dGVMZW5ndGgiOjIzNTIsInRhcmdldCI6MzQ5NjIsImJ5dGVTdHJpZGUiOjEyfSx7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6NDcwNCwiYnl0ZUxlbmd0aCI6MTU2OCwidGFyZ2V0IjozNDk2MiwiYnl0ZVN0cmlkZSI6OH0seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjYyNzIsImJ5dGVMZW5ndGgiOjc2OCwidGFyZ2V0IjozNDk2M31dLCJidWZmZXJzIjpbeyJieXRlTGVuZ3RoIjo3MDQwfV0sImFjY2Vzc29ycyI6W3siYnVmZmVyVmlldyI6MCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE5NiwibWF4IjpbMSwxLDAuMDI1MDAwMDAwMzcyNTI5MDNdLCJtaW4iOlstMSwtMSwtMC4wMjUwMDAwMDAzNzI1MjkwM10sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTk2LCJtYXgiOlsxLDEsMV0sIm1pbiI6Wy0xLC0xLC0xXSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxOTYsIm1heCI6WzEsMV0sIm1pbiI6WzAsMF0sInR5cGUiOiJWRUMyIn0seyJidWZmZXJWaWV3IjozLCJjb21wb25lbnRUeXBlIjo1MTIzLCJjb3VudCI6Mzg0LCJtYXgiOlsxOTVdLCJtaW4iOlswXSwidHlwZSI6IlNDQUxBUiJ9XSwibWF0ZXJpYWxzIjpbeyJwYnJNZXRhbGxpY1JvdWdobmVzcyI6eyJiYXNlQ29sb3JGYWN0b3IiOlswLjAxNTk5NjI5MzM2MTQ0NjI4OCwwLjEzMjg2ODMyMTU0NDE0NjI3LDEsMV0sIm1ldGFsbGljRmFjdG9yIjowLCJyb3VnaG5lc3NGYWN0b3IiOjF9LCJhbHBoYU1vZGUiOiJCTEVORCIsIm5hbWUiOiJBY2N1cmFjeVJpbmcifV0sIm1lc2hlcyI6W3sicHJpbWl0aXZlcyI6W3sibW9kZSI6NCwiYXR0cmlidXRlcyI6eyJQT1NJVElPTiI6MCwiTk9STUFMIjoxLCJURVhDT09SRF8wIjoyfSwiaW5kaWNlcyI6MywibWF0ZXJpYWwiOjB9XX1dfSCAGwAAQklOAAAAAAAAAIC/zczMPMLFRz6+FHu/zczMPBXvwz5eg2y/zczMPNo5Dj8x21S/zczMPPMENT/zBDW/zczMPDHbVD/aOQ6/zczMPF6DbD8V78O+zczMPL4Uez/CxUe+zczMPAAAgD9lZICkzczMPL4Uez/CxUc+zczMPF6DbD8V78M+zczMPDHbVD/aOQ4/zczMPPMENT/zBDU/zczMPNo5Dj8x21Q/zczMPBXvwz5eg2w/zczMPMLFRz6+FHs/zczMPDIxDSUAAIA/zczMPMLFR76+FHs/zczMPBXvw75eg2w/zczMPNo5Dr8x21Q/zczMPPMENb/zBDU/zczMPDHbVL/aOQ4/zczMPF6DbL8V78M+zczMPL4Ue7/CxUc+zczMPAAAgL8wMFolzczMPL4Ue7/CxUe+zczMPF6DbL8V78O+zczMPDHbVL/aOQ6/zczMPPMENb/zBDW/zczMPNo5Dr8x21S/zczMPBXvw75eg2y/zczMPMLFR76+FHu/zczMPDIxjaUAAIC/zczMPAAAAAAAAIC/zczMvMLFRz6+FHu/zczMvBXvwz5eg2y/zczMvNo5Dj8x21S/zczMvPMENT/zBDW/zczMvDHbVD/aOQ6/zczMvF6DbD8V78O+zczMvL4Uez/CxUe+zczMvAAAgD///ZmkzczMvL4Uez/CxUc+zczMvF6DbD8V78M+zczMvDHbVD/aOQ4/zczMvPMENT/zBDU/zczMvNo5Dj8x21Q/zczMvBXvwz5eg2w/zczMvMLFRz6+FHs/zczMvDIxDSUAAIA/zczMvMLFR76+FHs/zczMvBXvw75eg2w/zczMvNo5Dr8x21Q/zczMvPMENb/zBDU/zczMvDHbVL/aOQ4/zczMvF6DbL8V78M+zczMvL4Ue7/CxUc+zczMvAAAgL9kY00lzczMvL4Ue7/CxUe+zczMvF6DbL8V78O+zczMvDHbVL/aOQ6/zczMvPMENb/zBDW/zczMvNo5Dr8x21S/zczMvBXvw75eg2y/zczMvMLFR76+FHu/zczMvDIxjaUAAIC/zczMvAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAADNzMwizczMPAAAAAAAAIC/zczMPMLFRz6+FHu/zczMPBXvwz5eg2y/zczMPNo5Dj8x21S/zczMPPMENT/zBDW/zczMPDHbVD/aOQ6/zczMPF6DbD8V78O+zczMPL4Uez/CxUe+zczMPAAAgD9lZICkzczMPL4Uez/CxUc+zczMPF6DbD8V78M+zczMPDHbVD/aOQ4/zczMPPMENT/zBDU/zczMPNo5Dj8x21Q/zczMPBXvwz5eg2w/zczMPMLFRz6+FHs/zczMPDIxDSUAAIA/zczMPMLFR76+FHs/zczMPBXvw75eg2w/zczMPNo5Dr8x21Q/zczMPPMENb/zBDU/zczMPDHbVL/aOQ4/zczMPF6DbL8V78M+zczMPL4Ue7/CxUc+zczMPAAAgL8wMFolzczMPL4Ue7/CxUe+zczMPF6DbL8V78O+zczMPDHbVL/aOQ6/zczMPPMENb/zBDW/zczMPNo5Dr8x21S/zczMPBXvw75eg2y/zczMPMLFR76+FHu/zczMPDIxjaUAAIC/zczMPAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAADNzMyizczMvAAAAAAAAIC/zczMvMLFRz6+FHu/zczMvBXvwz5eg2y/zczMvNo5Dj8x21S/zczMvPMENT/zBDW/zczMvDHbVD/aOQ6/zczMvF6DbD8V78O+zczMvL4Uez/CxUe+zczMvAAAgD///ZmkzczMvL4Uez/CxUc+zczMvF6DbD8V78M+zczMvDHbVD/aOQ4/zczMvPMENT/zBDU/zczMvNo5Dj8x21Q/zczMvBXvwz5eg2w/zczMvMLFRz6+FHs/zczMvDIxDSUAAIA/zczMvMLFR76+FHs/zczMvBXvw75eg2w/zczMvNo5Dr8x21Q/zczMvPMENb/zBDU/zczMvDHbVL/aOQ4/zczMvF6DbL8V78M+zczMvL4Ue7/CxUc+zczMvAAAgL9kY00lzczMvL4Ue7/CxUe+zczMvF6DbL8V78O+zczMvDHbVL/aOQ6/zczMvPMENb/zBDW/zczMvNo5Dr8x21S/zczMvBXvw75eg2y/zczMvMLFR76+FHu/zczMvDIxjaUAAIC/zczMvAAAAAAAAIC/AACAJcLFRz6+FHu/vhR7JRXvwz5eg2y/XoNsJdo5Dj8x21S/MdtUJfMENT/zBDW/8wQ1JTHbVD/aOQ6/2jkOJV6DbD8V78O+Fe/DJL4Uez/CxUe+wsVHJAAAgD8yMY2kMjGNCr4Uez/CxUc+wsVHpF6DbD8V78M+Fe/DpDHbVD/aOQ4/2jkOpfMENT/zBDU/8wQ1pdo5Dj8x21Q/MdtUpRXvwz5eg2w/XoNspcLFRz6+FHs/vhR7pTIxDSUAAIA/AACApcLFR76+FHs/vhR7pRXvw75eg2w/XoNspdo5Dr8x21Q/MdtUpfMENb/zBDU/8wQ1pTHbVL/aOQ4/2jkOpV6DbL8V78M+Fe/DpL4Ue7/CxUc+wsVHpAAAgL/KyVMlyslTi74Ue7/CxUe+wsVHJF6DbL8V78O+Fe/DJDHbVL/aOQ6/2jkOJfMENb/zBDW/8wQ1Jdo5Dr8x21S/MdtUJRXvw75eg2y/XoNsJcLFR76+FHu/vhR7JTIxjaUAAIC/AACAJQAAAAAAAIC/AACAJcLFRz6+FHu/vhR7JRXvwz5eg2y/XoNsJdo5Dj8x21S/MdtUJfMENT/zBDW/8wQ1JTHbVD/aOQ6/2jkOJV6DbD8V78O+Fe/DJL4Uez/CxUe+wsVHJAAAgD8yMY2kMjGNCr4Uez/CxUc+wsVHpF6DbD8V78M+Fe/DpDHbVD/aOQ4/2jkOpfMENT/zBDU/8wQ1pdo5Dj8x21Q/MdtUpRXvwz5eg2w/XoNspcLFRz6+FHs/vhR7pTIxDSUAAIA/AACApcLFR76+FHs/vhR7pRXvw75eg2w/XoNspdo5Dr8x21Q/MdtUpfMENb/zBDU/8wQ1pTHbVL/aOQ4/2jkOpV6DbL8V78M+Fe/DpL4Ue7/CxUc+wsVHpAAAgL/KyVMlyslTi74Ue7/CxUe+wsVHJF6DbL8V78O+Fe/DJDHbVL/aOQ6/2jkOJfMENb/zBDW/8wQ1Jdo5Dr8x21S/MdtUJRXvw75eg2y/XoNsJcLFR76+FHu/vhR7JTIxjaUAAIC/AACAJQAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIAlAACAPwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIA/AAAAPQAAgD8AAIA9AACAPwAAwD0AAIA/AAAAPgAAgD8AACA+AACAPwAAQD4AAIA/AABgPgAAgD8AAIA+AACAPwAAkD4AAIA/AACgPgAAgD8AALA+AACAPwAAwD4AAIA/AADQPgAAgD8AAOA+AACAPwAA8D4AAIA/AAAAPwAAgD8AAAg/AACAPwAAED8AAIA/AAAYPwAAgD8AACA/AACAPwAAKD8AAIA/AAAwPwAAgD8AADg/AACAPwAAQD8AAIA/AABIPwAAgD8AAFA/AACAPwAAWD8AAIA/AABgPwAAgD8AAGg/AACAPwAAcD8AAIA/AAB4PwAAgD8AAIA/AACAPwAAAAAAAAAAAAAAPQAAAAAAAIA9AAAAAAAAwD0AAAAAAAAAPgAAAAAAACA+AAAAAAAAQD4AAAAAAABgPgAAAAAAAIA+AAAAAAAAkD4AAAAAAACgPgAAAAAAALA+AAAAAAAAwD4AAAAAAADQPgAAAAAAAOA+AAAAAAAA8D4AAAAAAAAAPwAAAAAAAAg/AAAAAAAAED8AAAAA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";var co="data:application/octet-stream;base64,Z2xURgIAAAAcQAAAAAkAAEpTT057ImFzc2V0Ijp7InZlcnNpb24iOiIyLjAifSwic2NlbmVzIjpbeyJub2RlcyI6WzJdfV0sInNjZW5lIjowLCJub2RlcyI6W3sibWVzaCI6MH0seyJtZXNoIjoxfSx7ImNoaWxkcmVuIjpbMCwxXX1dLCJidWZmZXJWaWV3cyI6W3siYnVmZmVyIjowLCJieXRlT2Zmc2V0IjowLCJieXRlTGVuZ3RoIjoyMzUyLCJ0YXJnZXQiOjM0OTYyLCJieXRlU3RyaWRlIjoxMn0seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjIzNTIsImJ5dGVMZW5ndGgiOjIzNTIsInRhcmdldCI6MzQ5NjIsImJ5dGVTdHJpZGUiOjEyfSx7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6NDcwNCwiYnl0ZUxlbmd0aCI6MTU2OCwidGFyZ2V0IjozNDk2MiwiYnl0ZVN0cmlkZSI6OH0seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjYyNzIsImJ5dGVMZW5ndGgiOjc2OCwidGFyZ2V0IjozNDk2M30seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjcwNDAsImJ5dGVMZW5ndGgiOjIzNTIsInRhcmdldCI6MzQ5NjIsImJ5dGVTdHJpZGUiOjEyfSx7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6OTM5MiwiYnl0ZUxlbmd0aCI6MjM1MiwidGFyZ2V0IjozNDk2MiwiYnl0ZVN0cmlkZSI6MTJ9LHsiYnVmZmVyIjowLCJieXRlT2Zmc2V0IjoxMTc0NCwiYnl0ZUxlbmd0aCI6MTU2OCwidGFyZ2V0IjozNDk2MiwiYnl0ZVN0cmlkZSI6OH0seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjEzMzEyLCJieXRlTGVuZ3RoIjo3NjgsInRhcmdldCI6MzQ5NjN9XSwiYnVmZmVycyI6W3siYnl0ZUxlbmd0aCI6MTQwODB9XSwiYWNjZXNzb3JzIjpbeyJidWZmZXJWaWV3IjowLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTk2LCJtYXgiOlswLjM0OTk5OTk5NDAzOTUzNTUsMC4zNDk5OTk5OTQwMzk1MzU1LDAuMDcwMDAwMDAwMjk4MDIzMjJdLCJtaW4iOlstMC4zNDk5OTk5OTQwMzk1MzU1LC0wLjM0OTk5OTk5NDAzOTUzNTUsLTEuNDkwMTE2OTE4NzQ1MzQzNGUtMTBdLCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MSwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE5NiwibWF4IjpbMSwxLDFdLCJtaW4iOlstMSwtMSwtMV0sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoyLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MTk2LCJtYXgiOlsxLDFdLCJtaW4iOlswLDBdLCJ0eXBlIjoiVkVDMiJ9LHsiYnVmZmVyVmlldyI6MywiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjM4NCwibWF4IjpbMTk1XSwibWluIjpbMF0sInR5cGUiOiJTQ0FMQVIifSx7ImJ1ZmZlclZpZXciOjQsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxOTYsIm1heCI6WzAuMjgwMDAwMDAxMTkyMDkyOSwwLjI4MDAwMDAwMTE5MjA5MjksMC4wNzUwMDAwMDI5ODAyMzIyNF0sIm1pbiI6Wy0wLjI4MDAwMDAwMTE5MjA5MjksLTAuMjgwMDAwMDAxMTkyMDkyOSwwLjA2NDk5OTk5NzYxNTgxNDIxXSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjUsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxOTYsIm1heCI6WzEsMSwxXSwibWluIjpbLTEsLTEsLTFdLCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6NiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjE5NiwibWF4IjpbMSwxXSwibWluIjpbMCwwXSwidHlwZSI6IlZFQzIifSx7ImJ1ZmZlclZpZXciOjcsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjozODQsIm1heCI6WzE5NV0sIm1pbiI6WzBdLCJ0eXBlIjoiU0NBTEFSIn1dLCJtYXRlcmlhbHMiOlt7InBick1ldGFsbGljUm91Z2huZXNzIjp7ImJhc2VDb2xvckZhY3RvciI6WzAu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AACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIClAACAvwAAAAAAAIA/AAAAPQAAgD8AAIA9AACAPwAAwD0AAIA/AAAAPgAAgD8AACA+AACAPwAAQD4AAIA/AABgPgAAgD8AAIA+AACAPwAAkD4AAIA/AACgPgAAgD8AALA+AACAPwAAwD4AAIA/AADQPgAAgD8AAOA+AACAPwAA8D4AAIA/AAAAPwAAgD8AAAg/AACAPwAAED8AAIA/AAAYPwAAgD8AACA/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I2ZuPghLHz64HoU93b1KPt29Sj64HoU9CEsfPiNmbj64HoU9LHLbPYdyhD64HoU9xb5fPfqajD64HoU9niIeJClcjz64HoU9xb5fvfqajD64HoU9LHLbvYdyhD64HoU9CEsfviNmbj64HoU93b1Kvt29Sj64HoU9I2ZuvghLHz64HoU9h3KEvixy2z24HoU9+pqMvsW+Xz24HoU9KVyPvjUVaCS4HoU9+pqMvsW+X724HoU9h3KEvixy2724HoU9I2ZuvghLH764HoU93b1Kvt29Sr64HoU9CEsfviNmbr64HoU9LHLbvYdyhL64HoU9xb5fvfqajL64HoU9niKepClcj764HoU9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAArXoyGamZk9AAAAAClcj76amZk9xb5fPfqajL6amZk9LHLbPYdyhL6amZk9CEsfPiNmbr6amZk93b1KPt29Sr6amZk9I2ZuPghLH76amZk9h3KEPixy272amZk9+pqMPsW+X72amZk9KVyPPi3lk6OamZk9+pqMPsW+Xz2amZk9h3KEPixy2z2amZk9I2ZuPghLHz6amZk93b1KPt29Sj6amZk9CEsfPiNmbj6amZk9LHLbPYdyhD6amZk9xb5fPfqajD6amZk9niIeJClcjz6amZk9xb5fvfqajD6amZk9LHLbvYdyhD6amZk9CEsfviNmbj6amZk93b1Kvt29Sj6amZk9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AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgCUAAIA/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgKUAAIC/AAAAAAAAgD8AAAA9AACAPwAAgD0AAIA/AADAPQAAgD8AAAA+AACAPwAAID4AAIA/AABAPgAAgD8AAGA+AACAPwAAgD4AAIA/AACQPgAAgD8AAKA+AACAPwAAsD4AAIA/AADAPgAAgD8AANA+AACAPwAA4D4AAIA/AADwPgAAgD8AAAA/AACAPwAACD8AAIA/AAAQPwAAgD8AABg/AACAPwAAID8AAIA/AAAoPwAAgD8AADA/AACAPwAAOD8AAIA/AABAPwAAgD8AAEg/AACAPwAAUD8AAIA/AABYPwAAgD8AAGA/AACAPwAAaD8AAIA/AABwPwAAgD8AAHg/AACAPwAAgD8AAIA/AAAAAAAAAAAAAAA9AAAAAAAAgD0AAAAAAADAPQAAAAAAAAA+AAAAAAAAID4AAAAAAABAPgAAAAAAAGA+AAAAAAAAgD4AAAAAAACQPgAAAAAAAKA+AAAAAAAAsD4AAAAAAADAPgAAAAAAANA+AAAAAAAA4D4AAAAAAADwPgAAAAAAAAA/AAAAAAAACD8AAAAAAAAQPwAAAAAAABg/AAAAAAAAID8AAAAAAAAoPwAAAAAAADA/AAAAAAAAOD8AAAAAAABAPwAAAAAAAEg/AAAAAAAAUD8AAAAAAABYPwAAAAAAAGA/AAAAAAAAaD8AAAAAAABwPwAAAAAAAHg/AAAAAAAAgD8AAAAAAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/X4p9P7j4GD+vQXY/xfswP5ltaj/tHEc/eoJaP3qCWj/tHEc/mW1qP8X7MD+vQXY/uPgYP1+KfT8AAAA/AACAP5AOzj5fin0/dQiePq9Bdj9MjGM+mW1qPxr2FT56glo/O5OsPe0cRz8M5Rs9xfswPzBoHTy4+Bg/AAAAAAAAAD8waB08kA7OPgzlGz11CJ4+O5OsPUyMYz4a9hU+GvYVPkyMYz47k6w9dQiePgzlGz2QDs4+MGgdPAAAAD8AAAAAuPgYPzBoHTzF+zA/DOUbPe0cRz87k6w9eoJaPxr2FT6ZbWo/TIxjPq9Bdj91CJ4+X4p9P5AOzj4AAIA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAIA/AAAAP1+KfT+QDs4+r0F2P3UInj6ZbWo/TIxjPnqCWj8a9hU+7RxHPzuTrD3F+zA/DOUbPbj4GD8waB08AAAAPwAAAACQDs4+MGgdPHUInj4M5Rs9TIxjPjuTrD0a9hU+GvYVPjuTrD1MjGM+DOUbPXUInj4waB08kA7OPgAAAAAAAAA/MGgdPLj4GD8M5Rs9xfswPzuTrD3tHEc/GvYVPnqCWj9MjGM+mW1qP3UInj6vQXY/kA7OPl+KfT8AAAA/AACAP7j4GD9fin0/xfswP69Bdj/tHEc/mW1qP3qCWj96glo/mW1qP+0cRz+vQXY/xfswP1+KfT+4+Bg/AACAPwAAAD8AACEAAQAhACIAAQABACIAAgAiACMAAgACACMAAwAjACQAAwADACQABAAkACUABAAEACUABQAlACYABQAFACYABgAmACcABgAGACcABwAnACgABwAHACgACAAoACkACAAIACkACQApACoACQAJACoACgAqACsACgAKACsACwArACwACwALACwADAAsAC0ADAAMAC0ADQAtAC4ADQANAC4ADgAuAC8ADgAOAC8ADwAvADAADwAPADAAEAAwADEAEAAQADEAEQAxADIAEQARADIAEgAyADMAEgASADMAEwAzADQAEwATADQAFAA0ADUAFAAUADUAFQA1ADYAFQAVADYAFgA2ADcAFgAWADcAFwA3ADgAFwAXADgAGAA4ADkAGAAYADkAGQA5ADoAGQAZADoAGgA6ADsAGgAaADsAGwA7ADwAGwAbADwAHAA8AD0AHAAcAD0AHQA9AD4AHQAdAD4AHgA+AD8AHgAeAD8AHwA/AEAAHwAfAEAAIABAAEEAIABiAGMAQgBjAGQAQwBkAGUARABlAGYARQBmAGcARgBnAGgARwBoAGkASABpAGoASQBqAGsASgBrAGwASwBsAG0ATABtAG4ATQBuAG8ATgBvAHAATwBwAHEAUABxAHIAUQByAHMAUgBzAHQAUwB0AHUAVAB1AHYAVQB2AHcAVgB3AHgAVwB4AHkAWAB5AHoAWQB6AHsAWgB7AHwAWwB8AH0AXAB9AH4AXQB+AH8AXgB/AIAAXwCAAIEAYACBAIIAYQCkAKMAgwClAKQAhACmAKUAhQCnAKYAhgCoAKcAhwCpAKgAiACqAKkAiQCrAKoAigCsAKsAiwCtAKwAjACuAK0AjQCvAK4AjgCwAK8AjwCxALAAkACyALEAkQCzALIAkgC0ALMAkwC1ALQAlAC2ALUAlQC3ALYAlgC4ALcAlwC5ALgAmAC6ALkAmQC7ALoAmgC8ALsAmwC9ALwAnAC+AL0AnQC/AL4AngDAAL8AnwDBAMAAoADCAMEAoQDDAMIAogA=";var ho="data:application/octet-stream;base64,Z2xURgIAAABQMgAANAUAAEpTT057ImFzc2V0Ijp7InZlcnNpb24iOiIyLjAiLCJnZW5lcmF0b3IiOiJUSFJFRS5HTFRGRXhwb3J0ZXIgcjE3MyJ9LCJzY2VuZXMiOlt7Im5hbWUiOiJBdXhTY2VuZSIsIm5vZGVzIjpbMF19XSwic2NlbmUiOjAsIm5vZGVzIjpbeyJtZXNoIjowfV0sImJ1ZmZlclZpZXdzIjpbeyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjAsImJ5dGVMZW5ndGgiOjI4ODAsInRhcmdldCI6MzQ5NjIsImJ5dGVTdHJpZGUiOjEyfSx7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6Mjg4MCwiYnl0ZUxlbmd0aCI6MTkyMCwidGFyZ2V0IjozNDk2MiwiYnl0ZVN0cmlkZSI6OH0seyJidWZmZXIiOjAsImJ5dGVPZmZzZXQiOjQ4MDAsImJ5dGVMZW5ndGgiOjI4ODAsInRhcmdldCI6MzQ5NjIsImJ5dGVTdHJpZGUiOjEyfSx7ImJ1ZmZlciI6MCwiYnl0ZU9mZnNldCI6NzY4MCwiYnl0ZUxlbmd0aCI6Mzg0MCwidGFyZ2V0IjozNDk2MiwiYnl0ZVN0cmlkZSI6MTZ9XSwiYnVmZmVycyI6W3siYnl0ZUxlbmd0aCI6MTE1MjB9XSwiYWNjZXNzb3JzIjpbeyJidWZmZXJWaWV3IjowLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MjQwLCJtYXgiOlswLjU3MjIzNDU3MDk4MDA3MiwxLjQ0NjA3ODQxOTY4NTM2MzgsMC4xMDAwMDAwMDE0OTAxMTYxMl0sIm1pbiI6Wy0wLjcxMjM0NjY3MzAxMTc3OTgsMCwwXSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjEsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyNDAsIm1heCI6WzAsMV0sIm1pbiI6WzAsMF0sInR5cGUiOiJWRUMyIn0seyJidWZmZXJWaWV3IjoyLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MjQwLCJtYXgiOlswLjk4NzY4ODMwMjk5Mzc3NDQsMC45OTk2NTczMzI4OTcxODYzLDFdLCJtaW4iOlstMC45ODc2ODgz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AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAIAAAACAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwEZZD9wcei+AAAAAAEZZD9wcei+AAAAAAEZZD9wcei+AAAAAAEZZD9wcei+AAAAAAEZZD9wcei+AAAAAAEZZD9wcei+AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAPMENT/zBDW/AAAAAHBx6D4BGWS/AAAAAHBx6D4BGWS/AAAAAHBx6D4BGWS/AAAAAHBx6D4BGWS/AAAAAHBx6D4BGWS/AAAAAHBx6D4BGWS/AAAAAF8wID4k2Xy/AAAAAF8wID4k2Xy/AAAAAF8wID4k2Xy/AAAAAF8wID4k2Xy/AAAAAF8wID4k2Xy/AAAAAF8wID4k2Xy/AAAAAF8wIL4k2Xy/AAAAAF8wIL4k2Xy/AAAAAF8wIL4k2Xy/AAAAAF8wIL4k2Xy/AAAAgF8wIL4k2Xy/AAAAgF8wIL4k2Xy/AAAAgHBx6L4BGWS/AAAAAHBx6L4BGWS/AAAAAHBx6L4BGWS/AAAAAHBx6L4BGWS/AAAAgHBx6L4BGWS/AAAAgHBx6L4BGWS/AAAAgPMENb/zBDW/AAAAAPMENb/zBDW/AAAAAPMENb/zBDW/AAAAAPMENb/zBDW/AAAAgPMENb/zBDW/AAAAgPMENb/zBDW/AAAAgAEZZL9wcei+AAAAAAEZZL9wcei+AAAAAAEZZL9wcei+AAAAAAEZZL9wcei+AAAAgAEZZL9wcei+AAAAgAEZZL9wcei+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AACAPwAAgD8AAIA/B+hKPwAAgD8AAIA/AACAPwfoSj8AAIA/AACAPwAAgD/+bEg/AACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAA==";f();f();f();var Tn=class Tn extends Error{};a(Tn,"InvalidTokenError");var yn=Tn;yn.prototype.name="InvalidTokenError";f();var mo=63710088e-1;f();f();function oe(r){return r*(Math.PI/180)}a(oe,"toRadians");function Ii(r){return r*(180/Math.PI)}a(Ii,"toDegrees");function fo(r,i){return(r%i+i)%i}a(fo,"euclideanModulo");function Pn([r,i],[t,n]){let o=oe(n-i),s=oe(t-r),d=oe(i),c=oe(n),h=Math.sin(o/2)*Math.sin(o/2)+Math.sin(s/2)*Math.sin(s/2)*Math.cos(d)*Math.cos(c),m=2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h));return mo*m}a(Pn,"haversineDistance");function po([r,i],[t,n]){let o=oe(i),s=oe(r),d=oe(n),h=oe(t)-s,m=Math.sin(h)*Math.cos(d),b=Math.cos(o)*Math.sin(d)-Math.sin(o)*Math.cos(d)*Math.cos(h);return Ii((Math.atan2(m,b)+Math.PI*2)%(Math.PI*2))}a(po,"getForwardBearing");function bo(r,i){let t=fo(r,Math.PI*2),n=fo(i,Math.PI*2),o=n-t,s=n+(o>Math.PI?-Math.PI*2:o<-Math.PI?Math.PI*2:0);return{start:t,end:s}}a(bo,"shortestTweenRotation");function Sn(r,i){if(i==null)return r;let t=x({},r);for(let n in i){let o=i[n];o!==void 0&&n!=="accuracyRing"&&n!=="heading"&&(t[n]=o)}if(i.accuracyRing!=null){t.accuracyRing=x({},r.accuracyRing);for(let n in i.accuracyRing){let o=i.accuracyRing[n];o!==void 0&&(t.accuracyRing[n]=o)}}if(i.heading!=null){t.heading=x({},r.heading);for(let n in i.heading){let o=i.heading[n];o!==void 0&&(t.heading[n]=o)}}return t}a(Sn,"deepMergeState");function Ir([r,i],[t,n],[o,s]){let d=t-r,c=n-i,h=d**2+c**2;if(h===0)return;let m=((o-r)*d+(s-i)*c)/h,b;m<=0?b=[r,i]:m>=1?b=[t,n]:b=[r+m*d,i+m*c];let y=Pn([o,s],b);return{proportion:Math.max(0,Math.min(1,m)),intersection:b,distance:y}}a(Ir,"getPointLineIntersection");function go(r,i){if(r==null||r.length<2)return;let t=Number.MAX_SAFE_INTEGER,n,o=0,s=0;for(let d=0;d<r.length-1;d++){let c=r[d],h=r[d+1],m=Ir(c,h,i);m!=null&&m.distance<t&&(t=m.distance,n=m.intersection,o=d,s=m.proportion)}if(n)return{intersection:n,distance:t,segmentIndex:o,proportion:s}}a(go,"findBlueDotOnPath");function yo(r,i){if(i==null)return r;let t={latitude:r==null?void 0:r.latitude,longitude:r==null?void 0:r.longitude,accuracy:r==null?void 0:r.accuracy,floor:r==null?void 0:r.floor,heading:r==null?void 0:r.heading,timestamp:r==null?void 0:r.timestamp};return"latitude"in i&&(t.latitude=(i==null?void 0:i.latitude)==null||i.latitude==="device"?r==null?void 0:r.latitude:i.latitude),"longitude"in i&&(t.longitude=i.longitude==null||i.longitude==="device"?r==null?void 0:r.longitude:i.longitude),"accuracy"in i&&(t.accuracy=i.accuracy==="device"?r==null?void 0:r.accuracy:i.accuracy),"floor"in i&&(t.floor=i.floor==="device"?r==null?void 0:r.floor:i.floor),"heading"in i&&(t.heading=i.heading==="device"?r==null?void 0:r.heading:i.heading),"timestamp"in i&&(t.timestamp=i.timestamp),t}a(yo,"getPositionWithOverrides");function To({longitude:r,latitude:i},{radius:t,center:n}){return Pn([r,i],[n.longitude,n.latitude])<=t}a(To,"isWithinPanBounds");function Po(r,i){let t=r*i/.35;return Math.max(t,1)}a(Po,"computeBlueDotScale");function So(r,i,t){return i!=null&&(r==="active"||r==="inactive"&&t)}a(So,"shouldShowHeadingCone");function Eo(r,i){return r==="active"&&i!=null}a(Eo,"shouldShowAccuracyRing");function En(r,i,t){if(t!=null&&"discardStaleUpdates"in t&&t.discardStaleUpdates===!1)return!1;let n=r!=null&&i!=null&&r<i;return n&&(t==null?void 0:t.debug)===!0&&p.log("Stale timestamp discarded (incoming: ".concat(r,", current: ").concat(i,")")),n}a(En,"isStaleTimestamp");f();function vn(r,i){let t=r!=null?oe(r):0,n=i!=null?oe(-i):0,{start:o,end:s}=bo(t,n);return[Ii(o),Ii(s)]}a(vn,"computeHeadingRotation");f();var Do=1e4,S,V,F,kt,Re,re,se,ae,le,ue,de,ve,Ce,Ge,De,Jt,mt,ft,v,xo,We,xn,Mo,_o,qt,wo,zt,Mn,Ao,Oo,Lo,Io,_n=class _n{constructor(i,t){u(this,v);u(this,S);u(this,V);u(this,F,1);u(this,kt,0);u(this,Re,!1);u(this,re);u(this,se);u(this,ae);u(this,le);u(this,ue);u(this,de);u(this,ve);u(this,Ce);u(this,Ge);u(this,De);T(this,"dot");T(this,"accuracyRing");T(this,"headingCone");u(this,Jt,a(i=>{e(this,zt).call(this,i)},"#handleCameraChange"));T(this,"add",a(i=>{var n;this.remove(),e(this,zt).call(this,{zoomLevel:e(this,S).Camera.zoomLevel}),l(this,ve,i.floor);let t=new vo({latitude:i.latitude,longitude:i.longitude});this.accuracyRing=e(this,S).Models.add(t,uo,{visible:!1,scale:(n=i.accuracy)!=null?n:0,rotation:[0,0,0],color:e(this,V).getState().accuracyRing.color,opacity:e(this,V).getState().accuracyRing.opacity,visibleThroughGeometry:!0}),this.headingCone=e(this,S).Models.add(t,ho,{visible:!1,scale:e(this,F),rotation:[0,0,0],color:e(this,V).getState().heading.color,opacity:e(this,V).getState().heading.opacity,visibleThroughGeometry:!0}),this.dot=e(this,S).Models.add(t,co,{visible:!1,scale:e(this,F),rotation:[0,0,0],interactive:!0,visibleThroughGeometry:!0,material:{Inner:{color:e(this,V).status==="inactive"?e(this,V).getState().inactiveColor:e(this,V).getState().color}}})},"add"));u(this,mt);u(this,ft);T(this,"update",a((i,t={})=>{let{position:n,status:o,accuracy:s,heading:d}=i;s!=null&&l(this,mt,s),d!=null&&l(this,ft,d),o&&g(this,v,Io).call(this,o),t.animate?g(this,v,_o).call(this,n,s,d):(g(this,v,xn).call(this),g(this,v,Mo).call(this,n,s,d))},"update"));u(this,qt,a(()=>{g(this,v,wo).call(this),e(this,Re)&&(l(this,Re,!1),g(this,v,Mn).call(this))},"#handlePreRender"));u(this,zt,a(i=>{let t=Math.round(i.zoomLevel*Do)/Do;if(t===e(this,kt))return;l(this,kt,t);let n=e(this,S).getMetersPerPixel(),o=Po(e(this,V).getState().radius,n);o!==e(this,F)&&(l(this,F,o),this.dot&&e(this,S).updateState(this.dot,{scale:[e(this,F),e(this,F),e(this,F)]}),this.headingCone&&e(this,S).updateState(this.headingCone,{scale:[e(this,F),e(this,F),1]}))},"#syncScale"));T(this,"remove",a(()=>{g(this,v,xn).call(this),l(this,re,void 0),l(this,se,void 0),l(this,ae,void 0),l(this,ve,void 0),l(this,Ce,void 0),l(this,Ge,void 0),l(this,De,void 0),l(this,mt,void 0),l(this,ft,void 0),this.dot&&(e(this,S).Models.remove(this.dot),this.dot=void 0),this.accuracyRing&&(e(this,S).Models.remove(this.accuracyRing),this.accuracyRing=void 0),this.headingCone&&(e(this,S).Models.remove(this.headingCone),this.headingCone=void 0)},"remove"));T(this,"destroy",a(()=>{this.remove(),e(this,S).off("pre-render",e(this,qt)),e(this,S).off("camera-change",e(this,Jt))},"destroy"));l(this,S,i),l(this,V,t),e(this,S).on("pre-render",e(this,qt)),e(this,S).on("camera-change",e(this,Jt))}getPosition(){if(this.dot!=null)return e(this,S).getState(this.dot).position}updateFloor(i){var t,n;((t=e(this,ve))==null?void 0:t.id)!==(i==null?void 0:i.id)&&(l(this,Ge,Date.now()),l(this,De,(n=e(this,Ce))!=null?n:g(this,v,xo).call(this)),l(this,ve,i))}};S=new WeakMap,V=new WeakMap,F=new WeakMap,kt=new WeakMap,Re=new WeakMap,re=new WeakMap,se=new WeakMap,ae=new WeakMap,le=new WeakMap,ue=new WeakMap,de=new WeakMap,ve=new WeakMap,Ce=new WeakMap,Ge=new WeakMap,De=new WeakMap,Jt=new WeakMap,mt=new WeakMap,ft=new WeakMap,v=new WeakSet,xo=a(function(){var t;if(!this.dot)return 0;let i=e(this,S).getState(this.dot);return(t=i==null?void 0:i.verticalOffset)!=null?t:0},"#getCurrentAltitude"),We=a(function(i){i&&(i.stop(),e(this,S).removeTween(i))},"#stopTween"),xn=a(function(){l(this,le,g(this,v,We).call(this,e(this,le))),l(this,ue,g(this,v,We).call(this,e(this,ue))),l(this,de,g(this,v,We).call(this,e(this,de)))},"#stopAllTweens"),Mo=a(function(i,t,n){if(i&&l(this,re,{longitude:i.longitude,latitude:i.latitude}),t!=null&&l(this,se,t),n!=null){let[,o]=vn(e(this,ae),n);l(this,ae,o)}g(this,v,Mn).call(this)},"#setImmediate"),_o=a(function(i,t,n){var o,s,d,c,h;if(i){let m={longitude:i.longitude,latitude:i.latitude},b=(s=(o=e(this,re))!=null?o:g(this,v,Ao).call(this))!=null?s:m;l(this,re,x({},b)),l(this,le,g(this,v,We).call(this,e(this,le))),l(this,le,e(this,S).tween({longitude:b.longitude,latitude:b.latitude}).to(m,1e3).easing(Dn["ease-out"]).onUpdate(({longitude:y,latitude:E})=>{l(this,re,{longitude:y,latitude:E}),l(this,Re,!0)}).onComplete(()=>{e(this,le)&&(e(this,S).removeTween(e(this,le)),l(this,le,void 0))}).start())}if(t!=null){let m=t,b=(c=(d=e(this,se))!=null?d:g(this,v,Oo).call(this))!=null?c:m;l(this,se,b),l(this,ue,g(this,v,We).call(this,e(this,ue))),l(this,ue,e(this,S).tween({scale:b}).to({scale:m},150).easing(Dn.linear).onUpdate(({scale:y})=>{l(this,se,y),l(this,Re,!0)}).onComplete(()=>{e(this,ue)&&(e(this,S).removeTween(e(this,ue)),l(this,ue,void 0))}).start())}if(n!=null){let[m,b]=vn((h=e(this,ae))!=null?h:g(this,v,Lo).call(this),n);l(this,ae,m),l(this,de,g(this,v,We).call(this,e(this,de))),l(this,de,e(this,S).tween({rotation:m}).to({rotation:b},150).easing(Dn.linear).onUpdate(({rotation:y})=>{l(this,ae,y),l(this,Re,!0)}).onComplete(()=>{e(this,de)&&(e(this,S).removeTween(e(this,de)),l(this,de,void 0))}).start())}},"#animateToTarget"),qt=new WeakMap,wo=a(function(){var n,o,s,d;if(!this.dot||e(this,V).status==="hidden"||e(this,V).status==="disabled")return;let i=e(this,ve)?(o=(n=e(this,S).getState(e(this,ve)))==null?void 0:n.altitude)!=null?o:0:(d=(s=e(this,S).getState(e(this,S).currentFloor))==null?void 0:s.altitude)!=null?d:0,t=i;if(e(this,Ge)!=null&&e(this,De)!=null){let c=Date.now()-e(this,Ge),h=Math.min(c/1e3,1);if(h<1){let m=1-Math.pow(1-h,3);t=e(this,De)+(i-e(this,De))*m}else l(this,Ge,void 0),l(this,De,void 0)}if(e(this,Ce)==null||Math.abs(e(this,Ce)-t)>.001){l(this,Ce,t);let c={verticalOffset:t};e(this,S).updateState(this.dot,c),this.accuracyRing&&e(this,S).updateState(this.accuracyRing,c),this.headingCone&&e(this,S).updateState(this.headingCone,c)}},"#syncAltitude"),zt=new WeakMap,Mn=a(function(){let i=e(this,re)?new vo({latitude:e(this,re).latitude,longitude:e(this,re).longitude}):void 0;if(this.dot){let t={scale:[e(this,F),e(this,F),e(this,F)]};i&&(t.position=i),e(this,S).updateState(this.dot,t)}if(this.accuracyRing){let t={};i&&(t.position=i),e(this,se)!=null&&(t.scale=[e(this,se),e(this,se),1]),e(this,S).updateState(this.accuracyRing,t)}if(this.headingCone){let t={scale:[e(this,F),e(this,F),1]};i&&(t.position=i),e(this,ae)!=null&&(t.rotation=[0,0,e(this,ae)]),e(this,S).updateState(this.headingCone,t)}},"#applyAllModels"),Ao=a(function(){if(!this.dot)return;let i=e(this,S).getState(this.dot);if(i!=null&&i.position)return{longitude:i.position.longitude,latitude:i.position.latitude}},"#readCurrentPosition"),Oo=a(function(){var t;if(!this.accuracyRing)return;let i=e(this,S).getState(this.accuracyRing);return(t=i==null?void 0:i.scale)==null?void 0:t[0]},"#readCurrentAccuracyScale"),Lo=a(function(){var t;if(!this.headingCone)return;let i=e(this,S).getState(this.headingCone);return(t=i==null?void 0:i.rotation)==null?void 0:t[2]},"#readCurrentHeadingRotation"),Io=a(function(i){let t=e(this,V).getState(),n=i==="hidden"||i==="disabled",o=i==="active";if(this.dot){let s={visible:!n};n||(s.material={Inner:{color:o?t.color:t.inactiveColor}}),e(this,S).updateState(this.dot,s)}this.accuracyRing&&e(this,S).updateState(this.accuracyRing,{visible:Eo(i,e(this,mt))}),this.headingCone&&e(this,S).updateState(this.headingCone,{visible:So(i,e(this,ft),t.heading.displayWhenInactive),color:o?t.heading.color:t.inactiveColor})},"#applyStatusAndAppearance"),a(_n,"ModelManager");var Ri=_n;f();f();var Ro={hidden:{actions:{enable:"hidden",error:"hidden","position-update":"active",initialize:"inactive",disable:"disabled",timeout:"hidden"}},active:{actions:{enable:"active",disable:"disabled","position-update":"active",error:"inactive",timeout:"inactive"}},inactive:{actions:{enable:"inactive",disable:"disabled","position-update":"active",error:"inactive",timeout:"inactive"}},disabled:{actions:{enable:"hidden",disable:"disabled"}}};var Y,pe,pt,wn=class wn extends k{constructor(){super();u(this,Y,"disabled");u(this,pe);u(this,pt,!1)}get current(){return e(this,Y)}get isEnabled(){return e(this,Y)!=="disabled"}setDebug(t){l(this,pt,t)}transitionTo(t){let n=Ro[e(this,Y)].actions[t];if(n==null){p.warn("Invalid state transition from ".concat(e(this,Y)," to ").concat(n," using ").concat(t));return}n!==e(this,Y)&&(e(this,pt)&&p.log("Transitioning from ".concat(e(this,Y)," to ").concat(n," using ").concat(t)),l(this,Y,n),this.publish("status-change",{status:n,action:t}))}resetTimer(t){e(this,pe)&&(clearTimeout(e(this,pe)),l(this,pe,void 0)),typeof t=="number"&&t<1/0&&l(this,pe,setTimeout(()=>{e(this,pt)&&p.log("Position timed out after ".concat(t,"ms")),this.transitionTo("timeout")},t))}clearTimer(){e(this,pe)&&(clearTimeout(e(this,pe)),l(this,pe,void 0))}disable(){this.clearTimer(),this.transitionTo("disable")}shouldUpdateGeometry(){return e(this,Y)!=="hidden"&&e(this,Y)!=="disabled"}destroy(){this.clearTimer(),super.destroy()}};Y=new WeakMap,pe=new WeakMap,pt=new WeakMap,a(wn,"StatusManager");var Ci=wn;f();f();var Go=dr(Co());f();function Vr(r,i){let t=r.x-i.x,n=r.y-i.y;return Math.sqrt(t*t+n*n)}a(Vr,"calculatePixelDistance");function Hr(r){return{x:r.width/2,y:r.height/2}}a(Hr,"getContainerCenter");function Fo(r,i){if(i.width===0||i.height===0)return;let t=Hr(i);return Vr(r,t)}a(Fo,"calculateDistanceFromCenter");function No(r){let t=Math.min(r.width,r.height)*.22;return Math.max(96,Math.min(180,t))}a(No,"computePanExitThresholdPixels");function Bo(r,i){return r!=null&&r>i}a(Bo,"shouldExitFollowMode");function $o(r,i){var t,n;return{zoomLevel:(t=i==null?void 0:i.zoomLevel)!=null?t:21,bearing:r==="position-only"?i==null?void 0:i.bearing:void 0,pitch:(n=i==null?void 0:i.pitch)!=null?n:45}}a($o,"createDefaultCameraTarget");function Uo(r){var i,t;return{duration:(i=r==null?void 0:r.duration)!=null?i:1e3,easing:(t=r==null?void 0:r.easing)!=null?t:"ease-in-out"}}a(Uo,"createDefaultCameraOptions");function Vo(r,i,t=1e-5){let o=r.filter(d=>d.floorId===i).map(d=>({x:d.longitude,y:d.latitude}));return(0,Go.default)(o,t).map(d=>[d.x,d.y])}a(Vo,"simplifyPathCoordinates");function kr(r,i){let t=go(r,i);if(t==null)return;let n=r[t.segmentIndex],o=r[t.segmentIndex+1];if(!(n==null||o==null))return po(n,o)}a(kr,"computePathBearing");function Ho(r,i,t,n,o){if(r==="position-and-heading")return i!=null?i:void 0;if(r==="position-and-path-direction"&&n!=null)return kr(n,o);if(r==="position-only"&&t!=null)return t}a(Ho,"computeFollowBearing");var M,Fe,xe,je,Q,Ze,Ne,Be,Kt,Wt,jt,bt,ko,Zt,Jo,An=class An extends k{constructor(t){super();u(this,bt);u(this,M);u(this,Fe,!1);u(this,xe);u(this,je);u(this,Q);u(this,Ze);u(this,Ne,!1);u(this,Be);T(this,"cancel",a(()=>{e(this,M).Camera.isAnimating&&e(this,M).Camera.cancelAnimation(),l(this,Fe,!1),l(this,Ne,!1),l(this,xe,void 0),l(this,je,void 0),l(this,Q,void 0),l(this,Ze,void 0),l(this,Be,void 0),e(this,M).off("user-interaction-start",e(this,Kt)),e(this,M).off("user-interaction-end",e(this,Wt)),e(this,M).off("camera-change",e(this,jt)),e(this,M).off("navigation-active-path-change",e(this,Zt)),this.publish("follow-change",{following:!1})},"cancel"));u(this,Kt,a(()=>{l(this,Ne,!0),e(this,M).Camera.isAnimating&&e(this,M).Camera.cancelAnimation()},"#handleUserInteractionStart"));u(this,Wt,a(()=>{l(this,Ne,!1),e(this,Q)!=null&&(e(this,Q).zoomLevel=e(this,M).Camera.zoomLevel,e(this,Q).pitch=e(this,M).Camera.pitch)},"#handleUserInteractionEnd"));u(this,jt,a(()=>{if(!e(this,Ne)||e(this,Be)==null)return;let t=e(this,M).container.getBoundingClientRect(),n=g(this,bt,ko).call(this,t),o=No({width:t.width,height:t.height});Bo(n,o)&&this.cancel()},"#handleCameraChange"));u(this,Zt,a(()=>{l(this,xe,void 0)},"#handlePathChange"));l(this,M,t)}get isFollowing(){return e(this,Fe)}start(t,n){if(t===!1){this.cancel();return}t!=="position-only"&&(n==null?void 0:n.bearing)!=null&&p.warn("Camera bearing option will be ignored in follow mode '".concat(t,"'. To control the bearing manually, use mode 'position-only'.")),l(this,je,t),l(this,Q,$o(t,n)),l(this,Ze,Uo(n)),e(this,Fe)||(l(this,Fe,!0),e(this,M).on("user-interaction-start",e(this,Kt)),e(this,M).on("user-interaction-end",e(this,Wt)),e(this,M).on("camera-change",e(this,jt)),e(this,M).on("navigation-active-path-change",e(this,Zt))),this.publish("follow-change",{following:!0,mode:t})}handlePositionUpdate(t){if(!e(this,Fe)||!e(this,je)||!e(this,Q)||!e(this,Ze))return;let{coordinate:n,heading:o,floor:s}=t;if(l(this,Be,n),e(this,Ne))return;s!=null&&s.id!==e(this,M).currentFloor.id&&(e(this,M).setFloor(s.id),l(this,xe,void 0));let d=Ho(e(this,je),o,e(this,Q).bearing,g(this,bt,Jo).call(this),[n.longitude,n.latitude]),c={center:n,zoomLevel:e(this,Q).zoomLevel,pitch:e(this,Q).pitch,bearing:d};e(this,M).Camera.animateTo(c,e(this,Ze))}destroy(){this.cancel(),super.destroy()}};M=new WeakMap,Fe=new WeakMap,xe=new WeakMap,je=new WeakMap,Q=new WeakMap,Ze=new WeakMap,Ne=new WeakMap,Be=new WeakMap,Kt=new WeakMap,Wt=new WeakMap,jt=new WeakMap,bt=new WeakSet,ko=a(function(t){if(e(this,Be)==null)return;let n=e(this,M).getScreenCoordinateFromCoordinate(e(this,Be));return Fo(n,{width:t.width,height:t.height})},"#getPixelDistanceFromCenter"),Zt=new WeakMap,Jo=a(function(){if(e(this,xe)==null&&e(this,M).Navigation.activeDirections!=null){let t=Array.isArray(e(this,M).Navigation.activeDirections)?e(this,M).Navigation.activeDirections.flatMap(n=>n.coordinates):e(this,M).Navigation.activeDirections.coordinates;l(this,xe,Vo(t,e(this,M).currentFloor.id))}return e(this,xe)},"#getSimplifiedDirections"),a(An,"FollowController");var Fi=An;f();f();f();function gt(r,i,t,n){if(r==null||i==null)return"none";let o=t-i;return o>=r.ttl?"none":o<n.anchorOnlyPeriodMs?"anchor-only":"transition"}a(gt,"getAnchorState");function qo(r,i,t,n){let s=i-r-t.anchorOnlyPeriodMs;if(s<=0)return 1;let d=Math.LN2/n;return Math.exp(-d*s)}a(qo,"getAnchorConfidenceDecay");var zo={anchorOnlyPeriodMs:5e3,halfLifeMs:1e4,maxAgeMs:5e3},Ko=3e4;f();var Jr=.7,qr=1,zr=2e3,Kr=1,Wr=30,jr=100,Wo=5;function $e(r){return(r%360+360)%360}a($e,"normalizeAngle");function On(r,i){let t=$e(i)-$e(r);return t>180?t-360:t<-180?t+360:t}a(On,"angleDifference");var R,yt,Me,Tt,Pt,St,Et,Xt,ee,Ue,Bi,jo,Ln=class Ln{constructor(){u(this,Bi);u(this,R,null);u(this,yt,null);u(this,Me,null);u(this,Tt,Jr);u(this,Pt,Kr);u(this,St,Wr);u(this,Et,!0);u(this,Xt,2);u(this,ee,[]);u(this,Ue,!1)}updateCompass(i,t){let n=$e(i);if(l(this,yt,n),e(this,Et)&&(e(this,ee).push(n),e(this,ee).length>Wo&&e(this,ee).shift(),l(this,Ue,g(this,Bi,jo).call(this))),e(this,R)===null){l(this,R,n);return}let o=On(e(this,R),n);if(Math.abs(o)>e(this,St)){l(this,R,n);return}let s=1-e(this,Tt);e(this,Ue)&&(s*=.1),!e(this,Ue)&&Math.abs(o)<30&&(s=Math.max(.01,s)),l(this,R,$e(e(this,R)+o*s))}updateGyro(i,t){if(e(this,R)===null){l(this,Me,t);return}if(e(this,Me)!==null){let n=(t-e(this,Me))/1e3;if(n>zr/1e3||n<0){l(this,Me,t);return}if(Math.abs(i)>e(this,Pt)){let{isIOS:o}=Se(),s=o?-i*n:i*n;l(this,R,$e(e(this,R)+s))}}l(this,Me,t)}correctWithGps(i,t,n=1){if(t<qr)return;if(e(this,R)===null){l(this,R,$e(i));return}let o=$e(i),s=On(e(this,R),o),d=Math.min(.5,n*.5);l(this,R,$e(e(this,R)+s*d))}configure(i){i.complementaryAlpha!==void 0&&l(this,Tt,Math.min(Math.max(i.complementaryAlpha,0),1)),i.gyroNoiseThreshold!==void 0&&l(this,Pt,Math.max(i.gyroNoiseThreshold,0)),i.maxHeadingError!==void 0&&l(this,St,Math.min(Math.max(i.maxHeadingError,1),180)),i.magneticGatingEnabled!==void 0&&l(this,Et,i.magneticGatingEnabled),i.deltaThreshold!==void 0&&l(this,Xt,Math.max(i.deltaThreshold,0))}getConfig(){return{complementaryAlpha:e(this,Tt),gyroNoiseThreshold:e(this,Pt),maxHeadingError:e(this,St),magneticGatingEnabled:e(this,Et),deltaThreshold:e(this,Xt)}}isMagneticDisturbanceActive(){return e(this,Ue)}getHeading(){return e(this,R)}isInitialized(){return e(this,R)!==null}getLastCompassHeading(){return e(this,yt)}reset(){l(this,R,null),l(this,yt,null),l(this,Me,null),l(this,ee,[]),l(this,Ue,!1)}};R=new WeakMap,yt=new WeakMap,Me=new WeakMap,Tt=new WeakMap,Pt=new WeakMap,St=new WeakMap,Et=new WeakMap,Xt=new WeakMap,ee=new WeakMap,Ue=new WeakMap,Bi=new WeakSet,jo=a(function(){if(e(this,ee).length<Wo)return!1;let i=0,t=e(this,ee)[0];for(let o=1;o<e(this,ee).length;o++){let s=On(t,e(this,ee)[o]);i+=s*s}return i/(e(this,ee).length-1)>jr},"#detectMagneticDisturbance"),a(Ln,"HeadingFusionFilter");var Ni=Ln;f();var Zr={halfLifeMs:1e4},Xr=15e3,Yr=1e-8,Qr=1e-6,Zo=111320,D,N,j,Yt,Qt,ei,In,Rn=class Rn{constructor(i){u(this,ei);u(this,D,null);u(this,N,null);u(this,j,null);u(this,Yt);u(this,Qt);l(this,Yt,x(x({},Zr),i)),l(this,Qt,Math.LN2/e(this,Yt).halfLifeMs)}predict(i){if(e(this,D)===null||e(this,N)===null||e(this,j)===null)return;let t=i-e(this,j);if(t>Xr||t<0){this.reset();return}if(t===0)return;let n=t/1e3;e(this,D)[0]+=e(this,D)[2]*n,e(this,D)[1]+=e(this,D)[3]*n;let o=e(this,N),s=n*n,d=Yr*e(this,Qt)*t,c=o[0]+2*n*o[2]+s*o[10],h=o[5]+2*n*o[7]+s*o[15],m=o[2]+n*o[10],b=o[7]+n*o[15];o[0]=c+d*s,o[5]=h+d*s,o[2]=m,o[8]=m,o[7]=b,o[13]=b,o[10]+=d*n,o[15]+=d*n,l(this,j,i)}updatePosition(i,t,n,o){if(e(this,D)===null||e(this,N)===null||e(this,j)===null){g(this,ei,In).call(this,i,t,n,o);return}if(this.predict(o),e(this,D)===null||e(this,N)===null){g(this,ei,In).call(this,i,t,n,o);return}let s=e(this,N),d=n,c=i-e(this,D)[0],h=t-e(this,D)[1],m=s[0]+d,b=s[5]+d,y=s[0]/m,E=s[5]/b,O=s[2]/m,W=s[7]/b;e(this,D)[0]+=y*c,e(this,D)[1]+=E*h,e(this,D)[2]+=O*c,e(this,D)[3]+=W*h,s[0]=(1-y)*s[0],s[2]=(1-y)*s[2],s[5]=(1-E)*s[5],s[7]=(1-E)*s[7],s[10]=s[10]-O*s[2],s[15]=s[15]-W*s[7],l(this,j,o)}updateOdometry(i,t,n,o){if(e(this,D)===null||e(this,N)===null||e(this,j)===null||(this.predict(o),e(this,D)===null||e(this,N)===null))return;let s=t/Zo,d=Zo*Math.cos(e(this,D)[0]*Math.PI/180),c=i/d;e(this,D)[0]+=s,e(this,D)[1]+=c;let h=n;e(this,N)[0]+=h,e(this,N)[5]+=h,l(this,j,o)}getPosition(){return e(this,D)===null?null:{latitude:e(this,D)[0],longitude:e(this,D)[1]}}getVelocity(){return e(this,D)===null?null:{vLat:e(this,D)[2],vLon:e(this,D)[3]}}getUncertainty(){return e(this,N)===null?1/0:e(this,N)[0]+e(this,N)[5]}getLastTimestamp(){return e(this,j)}isInitialized(){return e(this,D)!==null}reset(){l(this,D,null),l(this,N,null),l(this,j,null)}};D=new WeakMap,N=new WeakMap,j=new WeakMap,Yt=new WeakMap,Qt=new WeakMap,ei=new WeakSet,In=a(function(i,t,n,o){l(this,D,[i,t,0,0]);let s=n,d=Qr;l(this,N,[s,0,0,0,0,s,0,0,0,0,d,0,0,0,0,d]),l(this,j,o)},"#initialize"),a(Rn,"MultiSensorEKF");var $i=Rn;f();function Ui(r,i){let t=Math.max(.01,Math.min(1,r));return i*i*1e-10/t}a(Ui,"confidenceToNoise");var es=1,J,be,q,Z,B,z,ii,_,X,Ve,H,ge,Ye,Qe,He,ni,oi,ri,L,Xe,Vi,Xo,vt,ti,si,ki,Ji,ai,li,Yo,qi,Cn=class Cn extends k{constructor(t,n){super();u(this,L);u(this,J);u(this,be);u(this,q);u(this,Z);u(this,B);u(this,z);u(this,ii,0);u(this,_);u(this,X);u(this,Ve);u(this,H,{dx:0,dy:0});u(this,ge);u(this,Ye);u(this,Qe);u(this,He);u(this,ni,a(({error:t})=>{this.publish("error",{error:t})},"#handleError"));u(this,oi,a(({anchor:t,configOverride:n})=>{this.setAnchor(t,n)},"#handleAnchorSetEvent"));u(this,ri,a(()=>{this.clearAnchor()},"#handleAnchorClearEvent"));u(this,vt,0);u(this,si,a(({sensorId:t,update:n})=>{var o,s;n.latitude!=null&&n.longitude!=null?e(this,qi).call(this,t,n):n.heading!=null&&n.angularVelocity==null?e(this,ki).call(this,n.heading,(o=n.timestamp)!=null?o:Date.now()):n.angularVelocity!=null&&e(this,Ji).call(this,n.angularVelocity,(s=n.timestamp)!=null?s:Date.now())},"#handleAbsoluteUpdate"));u(this,ki,a((t,n)=>{e(this,Z).updateCompass(t,n);let o=e(this,Z).getHeading();o!=null&&e(this,ai).call(this,o,n)},"#handleCompassUpdate"));u(this,Ji,a((t,n)=>{e(this,Z).updateGyro(t,n);let o=e(this,Z).getHeading();o!=null&&(e(this,B)!=null&&Math.abs(o-e(this,B))<.5||e(this,ai).call(this,o,n))},"#handleGyroUpdate"));u(this,ai,a((t,n)=>{l(this,B,t),this.publish("heading-update",{heading:t}),e(this,q).isInitialized()?g(this,L,ti).call(this,n):e(this,z)!=null&&this.publish("fused-position",{position:Mt(x({},e(this,z)),{heading:t,timestamp:n})})},"#emitFusedHeading"));u(this,li,a(({sensorId:t,update:n})=>{let o=n.timestamp,s=gt(e(this,_),e(this,X),o,g(this,L,Xe).call(this));if(p.log("PDR received: dx=".concat(n.dx.toFixed(3),"m, dy=").concat(n.dy.toFixed(3),"m, anchorState=").concat(s)),s==="none"){p.warn('Relative update from sensor "'.concat(t,'" ignored: no anchor set. Set an anchor first via VPS/AI Localizer.'));return}e(this,H).dx+=n.dx,e(this,H).dy+=n.dy;let d=Ui(n.confidence,.5);e(this,q).updateOdometry(n.dx,n.dy,d,o),n.heading!=null&&l(this,B,n.heading),_t(this,ii)._++,p.log("PDR #".concat(e(this,ii)," ACCEPTED: total dx=").concat(e(this,H).dx.toFixed(2),"m, dy=").concat(e(this,H).dy.toFixed(2),"m")),p.log('Relative update from "'.concat(t,'": dx=').concat(n.dx.toFixed(2),"m, dy=").concat(n.dy.toFixed(2),"m. ")+"Total displacement: dx=".concat(e(this,H).dx.toFixed(2),"m, dy=").concat(e(this,H).dy.toFixed(2),"m")),g(this,L,ti).call(this,o)},"#handleRelativeUpdate"));u(this,qi,a((t,n)=>{var h,m,b,y,E,O,W;let o=(h=n.timestamp)!=null?h:Date.now();n.heading!=null&&l(this,Ye,n.heading),n.floorLevel!=null&&l(this,Qe,n.floorLevel),n.accuracy!=null&&l(this,He,n.accuracy);let s=gt(e(this,_),e(this,X),o,g(this,L,Xe).call(this));if(s==="anchor-only"){p.log("GPS update rejected during anchor-only period");return}if(n.heading!=null&&((m=n.speed)!=null?m:0)>=es){e(this,Z).correctWithGps(n.heading,(b=n.speed)!=null?b:0,(y=n.confidence)!=null?y:.15);let Ae=e(this,Z).getHeading();Ae!=null&&l(this,B,Ae)}if(s==="none"){g(this,L,Yo).call(this,t,n,o);return}let d=Ui((E=n.confidence)!=null?E:.5,(O=n.accuracy)!=null?O:10),c={sensorId:t,weight:(W=n.confidence)!=null?W:.5,position:n};if(e(this,q).updatePosition(n.latitude,n.longitude,d,o),g(this,L,ti).call(this,o),e(this,z)!=null){let Ae=e(this,z).contributions.findIndex(Ti=>Ti.sensorId===t);Ae>=0?e(this,z).contributions[Ae]=c:e(this,z).contributions.push(c)}},"#handlePositionUpdate"));l(this,J,t),l(this,be,x(x({},zo),n)),l(this,q,new $i({halfLifeMs:e(this,be).halfLifeMs})),l(this,Z,new Ni),e(this,J).on("absolute-update",e(this,si)),e(this,J).on("relative-update",e(this,li)),e(this,J).on("anchor-set",e(this,oi)),e(this,J).on("anchor-clear",e(this,ri)),e(this,J).on("error",e(this,ni))}get config(){return x({},e(this,be))}getAnchorState(t){return gt(e(this,_),e(this,X),t!=null?t:Date.now(),g(this,L,Xe).call(this))}get anchor(){if(!(e(this,_)==null||gt(e(this,_),e(this,X),Date.now(),g(this,L,Xe).call(this))==="none"))return x({},e(this,_))}get displacement(){return x({},e(this,H))}setAnchor(t,n){var d;let o=Date.now();g(this,L,Vi).call(this),l(this,_,t),l(this,X,o),(n==null?void 0:n.anchorOnlyPeriodMs)!=null?l(this,ge,{anchorOnlyPeriodMs:n.anchorOnlyPeriodMs}):l(this,ge,void 0),l(this,H,{dx:0,dy:0}),l(this,z,void 0),e(this,q).reset();let s=Ui((d=t.confidence)!=null?d:1,1);e(this,q).updatePosition(t.latitude,t.longitude,s,o),p.log('Anchor set from sensor "'.concat(t.sensorId,'" at [').concat(t.latitude,", ").concat(t.longitude,"]")),p.log("ANCHOR SET from ".concat(t.sensorId,", anchorOnlyPeriodMs=").concat(g(this,L,Xe).call(this).anchorOnlyPeriodMs)),this.publish("anchor-set",{anchor:x({},t)}),g(this,L,ti).call(this,o),t.ttl!==1/0&&l(this,Ve,setTimeout(()=>{g(this,L,Xo).call(this)},t.ttl))}clearAnchor(){g(this,L,Vi).call(this),l(this,_,void 0),l(this,X,void 0),l(this,ge,void 0),l(this,H,{dx:0,dy:0}),p.log("Anchor cleared")}resetEKF(){e(this,q).reset()}resetHeadingFilter(){e(this,Z).reset(),l(this,B,void 0)}get headingFilter(){return e(this,Z)}get ekf(){return e(this,q)}getLastPosition(){return e(this,z)}destroy(){e(this,J).off("absolute-update",e(this,si)),e(this,J).off("relative-update",e(this,li)),e(this,J).off("anchor-set",e(this,oi)),e(this,J).off("anchor-clear",e(this,ri)),e(this,J).off("error",e(this,ni)),g(this,L,Vi).call(this),e(this,q).reset(),e(this,Z).reset(),l(this,_,void 0),l(this,X,void 0),l(this,ge,void 0),l(this,H,{dx:0,dy:0}),l(this,B,void 0),l(this,z,void 0),l(this,Ye,void 0),l(this,Qe,void 0),l(this,He,void 0),super.destroy()}};J=new WeakMap,be=new WeakMap,q=new WeakMap,Z=new WeakMap,B=new WeakMap,z=new WeakMap,ii=new WeakMap,_=new WeakMap,X=new WeakMap,Ve=new WeakMap,H=new WeakMap,ge=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,He=new WeakMap,ni=new WeakMap,oi=new WeakMap,ri=new WeakMap,L=new WeakSet,Xe=a(function(){return e(this,ge)?x(x({},e(this,be)),e(this,ge)):e(this,be)},"#getEffectiveConfig"),Vi=a(function(){e(this,Ve)!=null&&(clearTimeout(e(this,Ve)),l(this,Ve,void 0))},"#clearAnchorTimer"),Xo=a(function(){if(e(this,_)==null)return;let t=x({},e(this,_));l(this,_,void 0),l(this,X,void 0),l(this,Ve,void 0),l(this,ge,void 0),l(this,H,{dx:0,dy:0}),p.log('Anchor from sensor "'.concat(t.sensorId,'" expired after ').concat(t.ttl,"ms")),this.publish("anchor-expired",{anchor:t})},"#expireAnchor"),vt=new WeakMap,ti=a(function(t){var E,O,W,Ae,Ti,Nn,Bn;_t(this,vt)._++;let n=e(this,q).getPosition();if(n==null){p.warn("emitFusedPosition #".concat(e(this,vt)," FAILED: EKF position is null"));return}let o=gt(e(this,_),e(this,X),t,g(this,L,Xe).call(this)),s=o!=="none",d=e(this,q).getUncertainty(),c=Math.max(.1,Math.min(1,1/(1+d*1e9))),h=(W=(E=e(this,B))!=null?E:e(this,Ye))!=null?W:(O=e(this,_))==null?void 0:O.heading,m=(Ti=(Ae=e(this,_))==null?void 0:Ae.floorLevel)!=null?Ti:e(this,Qe),b;e(this,He)!=null?b=e(this,He):s&&e(this,_)!=null?b=3:b=Math.min(50,Math.max(1,Math.sqrt(d)*1e5));let y={latitude:n.latitude,longitude:n.longitude,accuracy:b,heading:h,floorLevel:m,timestamp:t,confidence:c,sensorId:"fusion",isCalibrated:s,displacement:s?x({},e(this,H)):void 0,contributions:[]};if(e(this,_)!=null&&s){let er=o==="transition"?qo(e(this,X),t,e(this,be),e(this,be).halfLifeMs):1;y.contributions.push({sensorId:e(this,_).sensorId,weight:er,position:{latitude:e(this,_).latitude,longitude:e(this,_).longitude,heading:e(this,_).heading,floorLevel:e(this,_).floorLevel,timestamp:e(this,_).timestamp,confidence:(Nn=e(this,_).confidence)!=null?Nn:1}})}e(this,B)!=null&&e(this,B)!==((Bn=e(this,_))==null?void 0:Bn.heading)&&y.contributions.push({sensorId:"deviceorientation",weight:0,position:{heading:e(this,B),timestamp:t,confidence:1}}),l(this,z,y),p.log("EMIT fused-position #".concat(e(this,vt),": ").concat(y.latitude.toFixed(6),", ").concat(y.longitude.toFixed(6))),this.publish("fused-position",{position:y})},"#emitFusedPosition"),si=new WeakMap,ki=new WeakMap,Ji=new WeakMap,ai=new WeakMap,li=new WeakMap,Yo=a(function(t,n,o){var m,b,y,E,O;let s=(m=e(this,B))!=null?m:e(this,Ye),d=(y=(b=n.accuracy)!=null?b:e(this,He))!=null?y:10,c=[{sensorId:t,weight:(E=n.confidence)!=null?E:.5,position:n}];e(this,B)!=null&&c.push({sensorId:"deviceorientation",weight:0,position:{heading:e(this,B),timestamp:o,confidence:1}});let h={latitude:n.latitude,longitude:n.longitude,accuracy:d,heading:s,floorLevel:e(this,Qe),timestamp:o,confidence:(O=n.confidence)!=null?O:.5,sensorId:"fusion",isCalibrated:!1,contributions:c};l(this,z,h),p.log("EMIT direct-position: ".concat(h.latitude.toFixed(6),", ").concat(h.longitude.toFixed(6))),this.publish("fused-position",{position:h})},"#emitDirectPosition"),qi=new WeakMap,a(Cn,"FusionEngine");var Hi=Cn;var K,ye,_e,I,ce,$,he,et,U,G,Te,w,we,A,Dt,xt,ui,di,ci,hi,mi,tt,zi,Ki,Wi,ji,Zi,fi,Xi,Yi,pi,bi,gi,yi,Fn=class Fn{constructor(i){u(this,K,new k);u(this,ye);u(this,_e);u(this,I);u(this,ce);u(this,$);u(this,he);u(this,et);u(this,U);u(this,G);u(this,Te);u(this,w);u(this,we);u(this,A,lo);u(this,Dt,new Map);u(this,xt);T(this,"enable",a(i=>{l(this,A,Sn(e(this,A),i)),e(this,I).setDebug(e(this,A).debug),this.isEnabled||(e(this,G).on("fused-position",e(this,ui)),e(this,G).on("heading-update",e(this,di)),e(this,G).on("error",e(this,ci)),e(this,G).on("anchor-set",e(this,hi)),e(this,G).on("anchor-expired",e(this,mi))),e(this,I).transitionTo("enable"),this.watchDevicePosition(e(this,A).watchDevicePosition),e(this,A).initialState==="inactive"&&e(this,I).transitionTo("initialize")},"enable"));T(this,"disable",a(()=>{e(this,G).off("fused-position",e(this,ui)),e(this,G).off("heading-update",e(this,di)),e(this,G).off("error",e(this,ci)),e(this,G).off("anchor-set",e(this,hi)),e(this,G).off("anchor-expired",e(this,mi)),e(this,G).clearAnchor(),e(this,$).remove(),e(this,I).clearTimer(),e(this,ce).isFollowing&&e(this,ce).cancel(),this.watchDevicePosition(!1),this.watchDeviceOrientation(!1),l(this,w,void 0),l(this,Te,void 0),e(this,Dt).clear(),e(this,I).transitionTo("disable")},"disable"));T(this,"on",a((i,t)=>e(this,K).on(i,t),"on"));T(this,"off",a((i,t)=>{e(this,K).off(i,t)},"off"));T(this,"updateState",a(i=>{let t=e(this,A).watchDevicePosition;l(this,A,Sn(e(this,A),i)),i.debug!=null&&e(this,I).setDebug(i.debug),e(this,$).update({status:this.status},{animate:!1}),i.watchDevicePosition!=null&&i.watchDevicePosition!==t&&this.watchDevicePosition(i.watchDevicePosition),i.timeout!=null&&this.status==="active"&&e(this,I).resetTimer(e(this,A).timeout)},"updateState"));T(this,"watchDevicePosition",a(i=>{l(this,he,void 0);let t=e(this,U).get("geolocation");if(!t){p.warn("Geolocation sensor unavailable. watchDevicePosition requires a browser environment.");return}if(i){if(!this.isEnabled){p.warn("BlueDot must be enabled before watching browser position.");return}t.enable()}else t.disable(),e(this,G).resetEKF(),e(this,G).resetHeadingFilter()},"watchDevicePosition"));T(this,"watchDeviceOrientation",a(async i=>{l(this,et,void 0);let t=e(this,U).get("deviceorientation");if(!t){p.warn("Device orientation sensor unavailable. watchDeviceOrientation requires a browser environment.");return}i?await t.enable()!=="granted"&&p.error('Device orientation permission denied. "deviceorientation" event must be enabled in response to a transient activation. https://www.w3.org/TR/orientation-event/#dom-deviceorientationevent-requestpermission'):t.disable()},"watchDeviceOrientation"));u(this,ui,a(async i=>{var d,c,h;let{position:t}=i;if(!this.isEnabled)return;let n=await e(this,fi).call(this,t.floorLevel,t.latitude,t.longitude);if(!this.isEnabled)return;let o={latitude:t.latitude,longitude:t.longitude,accuracy:(d=t.accuracy)!=null?d:void 0,heading:(c=t.heading)!=null?c:void 0,floor:n,timestamp:t.timestamp},s=o;if(e(this,xt)){let m=e(this,Yi).call(this,o);if(m==null){e(this,A).debug&&p.log("Position update discarded by position processor");return}s=m}En(s.timestamp,(h=e(this,w))==null?void 0:h.timestamp,e(this,A))||(l(this,he,s),e(this,tt).call(this,s))},"#handleFusedPosition"));u(this,di,a(i=>{let{heading:t}=i;l(this,et,t),this.status==="active"&&e(this,Wi).call(this,t)},"#handleHeadingUpdate"));u(this,ci,a(i=>{let{error:t}=i;if(e(this,I).transitionTo("error"),t!=null&&typeof t=="object"&&"code"in t&&typeof t.code=="number"){let n=t;n.code===1&&e(this,pi).call(this).sendWatchPositionDenied(),e(this,K).publish("error",n)}},"#handleGeolocationError"));u(this,hi,a(i=>{e(this,K).publish("anchor-set",i)},"#handleAnchorSet"));u(this,mi,a(i=>{e(this,K).publish("anchor-expired",i)},"#handleAnchorExpired"));u(this,tt,a((i,t)=>{let n;try{e(this,et)!=null&&(i=Object.assign({},i,{heading:e(this,et)})),n=zn.parse(yo(i,e(this,Te)))}catch(o){e(this,I).transitionTo("error"),p.error("Position parse failed",o instanceof ts.ZodError?o.message:String(o));return}if(e(this,A).debug&&p.log("Parsed position",n),e(this,A).preventOutOfBounds){let{radius:o,center:s}=e(this,ye).Camera.bounds;if(o!=null&&isFinite(o)&&s!=null&&!To({longitude:n.longitude,latitude:n.latitude},{radius:o,center:s})){p.warn("Position [".concat(n.longitude,", ").concat(n.latitude,"] is outside map bounds. Position update will be discarded."));return}}if(!e(this,Xi).call(this,n.accuracy)){p.log("Dropping position update with accuracy ".concat(n.accuracy,"m (exceeds threshold ").concat(e(this,A).accuracyThreshold,"m)"));return}if(t!=null&&t.silent?e(this,$).update({status:this.status},{animate:!1}):e(this,I).transitionTo("position-update"),!e(this,I).shouldUpdateGeometry()){p.warn("Cannot update position because BlueDot state is '".concat(this.status,"'. BlueDot must be enabled first."));return}e(this,zi).call(this,n,t)},"#setPosition"));u(this,zi,a((i,t)=>{var c,h,m;if(En(i.timestamp,(c=e(this,w))==null?void 0:c.timestamp,e(this,A)))return;l(this,w,i),t!=null&&t.silent||(e(this,I).resetTimer(e(this,A).timeout),e(this,pi).call(this).updateState({userPosition:{bluedotTimestamp:Date.now(),latitude:i.latitude,longitude:i.longitude,floorLevel:(h=i.floor)==null?void 0:h.elevation,accuracy:i.accuracy}})),this.dotModel||e(this,$).add(i),e(this,$).updateFloor(i.floor);let n=new Gn({latitude:i.latitude,longitude:i.longitude}),o=this.status==="active"?i.accuracy:void 0,s=e(this,Ki).call(this)&&(m=i.heading)!=null?m:void 0,d=(t==null?void 0:t.animate)!==!1;if(e(this,$).update({position:n,accuracy:o,heading:s,status:this.status},{animate:d}),!(t!=null&&t.silent)){let b={floor:this.floor,heading:this.heading,accuracy:this.accuracy,coordinate:this.coordinate};e(this,K).publish("position-update",b),e(this,ce).handlePositionUpdate(b)}},"#applyPosition"));u(this,Ki,a(()=>this.heading==null?!1:this.status==="active"?!0:e(this,A).heading.displayWhenInactive,"#shouldShowHeading"));u(this,Wi,a(i=>{if(!e(this,I).shouldUpdateGeometry()){p.warn("Cannot update orientation because BlueDot state is '".concat(this.status,"'. BlueDot must be enabled first."));return}if(e(this,w)==null){e(this,A).debug&&p.log("Cannot update orientation before a valid position has been applied.");return}l(this,w,Mt(x({},e(this,w)),{heading:i})),e(this,$).update({heading:i,status:this.status},{animate:!0}),e(this,K).publish("device-orientation-update",{heading:i})},"#setOrientation"));T(this,"update",a((i,t)=>{if(!this.isEnabled)return;if(i==null){l(this,Te,void 0),e(this,he)!=null&&e(this,tt).call(this,e(this,he),t);return}if("coords"in i){e(this,ji).call(this,i,t);return}let c=i,{timestamp:n}=c,o=tn(c,["timestamp"]),s=Object.assign({},e(this,Te),o);if("floorOrFloorId"in i){let{floorOrFloorId:h}=i;h==null?s.floor=void 0:h==="device"?s.floor="device":typeof h=="string"?s.floor=e(this,Zi).call(this,h):s.floor=h}l(this,Te,s),(s.latitude!=null&&s.longitude!=null||e(this,he)!=null)&&e(this,tt).call(this,e(this,he),t)},"update"));u(this,ji,a(async(i,t)=>{let n=await e(this,fi).call(this,i.coords.floorLevel,i.coords.latitude,i.coords.longitude);if(!this.isEnabled)return;let h=i,{timestamp:o}=h,s=tn(h,["timestamp"]),d=Object.assign({},e(this,Te),Mt(x({},s.coords),{floor:n}));l(this,Te,d),(d.latitude!=null&&d.longitude!=null||e(this,he)!=null)&&e(this,tt).call(this,e(this,he),t)},"#processAsyncGeolocation"));u(this,Zi,a(i=>e(this,_e).getById("floor",i),"#getFloorByFloorId"));u(this,fi,a(async(i,t,n)=>{if(i==null)return;let o=e(this,Dt).get(i);if(o==null&&(o=e(this,_e).getByType("floor").filter(s=>s.elevation===i),e(this,Dt).set(i,o)),o.length===0){p.warn("Received elevation level ".concat(i," but no floors could be found at that elevation."));return}if(o.length===1)return o[0];if(t!=null&&n!=null){let s=new Gn({latitude:t,longitude:n,floorId:o[0].id}),d=await e(this,_e).Query.nearest(s,e(this,_e).getByType("node"),{limit:"same-elevation",mode:"absolute-distance",maxResults:1});if(d&&d.length>0&&d[0].feature!=null&&d[0].feature.floor!=null)return d[0].feature.floor}return e(this,ye).currentFloorStack.floors.find(s=>s.elevation===i)},"#getFloorByFloorLevel"));T(this,"follow",a((i,t)=>{e(this,ce).start(i,t)},"follow"));u(this,Xi,a(i=>i==null?this.status!=="disabled":i<=e(this,A).accuracyThreshold,"#isAccurateEnough"));u(this,Yi,a(i=>{var n,o,s,d,c,h;let t={latitude:(n=e(this,w))==null?void 0:n.latitude,longitude:(o=e(this,w))==null?void 0:o.longitude,accuracy:(s=e(this,w))==null?void 0:s.accuracy,heading:(d=e(this,w))==null?void 0:d.heading,floor:(c=e(this,w))==null?void 0:c.floor,timestamp:(h=e(this,w))==null?void 0:h.timestamp};try{return e(this,xt).call(this,t,i)}catch(m){return p.error("Position processor callback threw an error",m instanceof Error?m.message:String(m)),i}},"#processIncomingPosition"));T(this,"destroy",a(()=>{this.disable(),e(this,G).destroy(),e(this,U).destroy(),e(this,$).destroy(),e(this,I).destroy(),e(this,ce).destroy(),e(this,ye).off("click",e(this,gi)),e(this,ye).off("hover",e(this,yi)),e(this,K).destroy()},"destroy"));u(this,pi,a(()=>e(this,A).preventOutOfBounds?e(this,_e).internal.Analytics:{sendWatchPositionDenied:a(()=>{},"sendWatchPositionDenied"),updateState:a(()=>{},"updateState")},"#getAnalyticsIfEnabled"));u(this,bi,a(i=>t=>{t.models==null||t.models.length===0||this.dotModel==null||t.models.find(o=>{var s;return o.id===((s=this.dotModel)==null?void 0:s.id)})==null||e(this,K).publish(i,{coordinate:t.coordinate})},"#handleClickOrHover"));u(this,gi,e(this,bi).call(this,"click"));u(this,yi,e(this,bi).call(this,"hover"));l(this,ye,i),l(this,_e,i.getMapData()),l(this,I,new Ci),l(this,ce,new Fi(i)),l(this,$,new Ri(i,this)),l(this,U,new Li),l(this,G,new Hi(e(this,U))),e(this,I).on("status-change",t=>{e(this,$).update({status:t.status},{animate:!1}),e(this,K).publish("status-change",t)}),e(this,ce).on("follow-change",t=>{e(this,K).publish("follow-change",t)}),e(this,ye).on("click",e(this,gi)),e(this,ye).on("hover",e(this,yi))}get Sensors(){return e(this,U)}get dotModel(){return e(this,$).dot}get accuracyRingModel(){return e(this,$).accuracyRing}get headingConeModel(){return e(this,$).headingCone}get isEnabled(){return e(this,I).isEnabled}get status(){return e(this,I).current}get isFollowing(){return e(this,ce).isFollowing}get heading(){var i;return(i=e(this,w))==null?void 0:i.heading}get accuracy(){var i;return(i=e(this,w))==null?void 0:i.accuracy}get coordinate(){var i,t;if(e(this,w)!=null)return(e(this,we)==null||((i=this.floor)==null?void 0:i.id)!==e(this,we).floorId||e(this,w).latitude!==e(this,we).latitude||e(this,w).longitude!==e(this,we).longitude)&&l(this,we,new Gn({latitude:e(this,w).latitude,longitude:e(this,w).longitude,floorId:(t=this.floor)==null?void 0:t.id})),e(this,we)}getState(){return x({},e(this,A))}get floor(){var i;return(i=e(this,w))==null?void 0:i.floor}forcePosition(i,t=Ko){let n=e(this,U).get("manual");if(n==null){p.warn("Manual sensor not available");return}this.isEnabled||this.enable(),n.isEnabled||n.enable(),n.forcePosition({latitude:i.latitude,longitude:i.longitude,heading:i.heading,floorLevel:i.floorLevel,ttl:t})}reportPosition(i){let t=e(this,U).get("manual");if(t==null){p.warn("Manual sensor not available");return}this.isEnabled||this.enable(),t.isEnabled||t.enable(),t.reportPosition(i)}async __enableSensor(i){let t=e(this,U).get(i);return t==null?(p.warn("Sensor '".concat(i,"' not found")),"unavailable"):t.enable()}__disableSensor(i){let t=e(this,U).get(i);if(t==null){p.warn("Sensor '".concat(i,"' not found"));return}t.disable()}async __checkSensorPermission(i){let t=e(this,U).get(i);return t==null?(p.warn("Sensor '".concat(i,"' not found")),"unavailable"):t.checkPermission()}async __requestSensorPermission(i){let t=e(this,U).get(i);return t==null?(p.warn("Sensor '".concat(i,"' not found")),"unavailable"):t.requestPermission()}__isSensorEnabled(i){let t=e(this,U).get(i);return t==null?(p.warn("Sensor '".concat(i,"' not found")),!1):t.isEnabled}setPositionProcessor(i){l(this,xt,i)}};K=new WeakMap,ye=new WeakMap,_e=new WeakMap,I=new WeakMap,ce=new WeakMap,$=new WeakMap,he=new WeakMap,et=new WeakMap,U=new WeakMap,G=new WeakMap,Te=new WeakMap,w=new WeakMap,we=new WeakMap,A=new WeakMap,Dt=new WeakMap,xt=new WeakMap,ui=new WeakMap,di=new WeakMap,ci=new WeakMap,hi=new WeakMap,mi=new WeakMap,tt=new WeakMap,zi=new WeakMap,Ki=new WeakMap,Wi=new WeakMap,ji=new WeakMap,Zi=new WeakMap,fi=new WeakMap,Xi=new WeakMap,Yi=new WeakMap,pi=new WeakMap,bi=new WeakMap,gi=new WeakMap,yi=new WeakMap,a(Fn,"BlueDot");var Qo=Fn;export{a,f as b,me as c,Ei as d,Li as e,Qo as f};