@mappedin/blue-dot 6.11.0-beta.0 → 6.13.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.
package/README.md CHANGED
@@ -31,27 +31,303 @@ const blueDot = new BlueDot(mapView);
31
31
  blueDot.enable();
32
32
 
33
33
  // Listening to device position updates from the browser
34
- blueDot.watchDevicePosition();
34
+ blueDot.watchDevicePosition(true);
35
35
 
36
36
  // Send custom position updates from a different source
37
37
  blueDot.update({
38
- // Latitude of the update
39
- latitude,
40
- // Longitude of the update
41
- longitude,
42
- // Optional accuracy in meters
43
- accuracy,
44
- // Optional heading in degrees from north
45
- heading,
46
- // Optional floor or floor ID
47
- floorOrFloorId,
48
- })
38
+ // Latitude of the update
39
+ latitude,
40
+ // Longitude of the update
41
+ longitude,
42
+ // Optional accuracy in meters
43
+ accuracy,
44
+ // Optional heading in degrees from north
45
+ heading,
46
+ // Optional floor or floor ID
47
+ floorOrFloorId,
48
+ });
49
49
 
50
50
  // Attach the camera to the BlueDot
51
51
  blueDot.follow('position-only');
52
52
  ```
53
53
 
54
- ### Options
54
+ ## Permissions
55
+
56
+ ### Geolocation Permission
57
+
58
+ `watchDevicePosition(true)` requires the `geolocation` permission. The browser will automatically prompt the user to allow location access when called.
59
+
60
+ ```ts
61
+ // Browser will prompt for permission
62
+ await blueDot.watchDevicePosition(true);
63
+
64
+ // Listen for errors (including permission denied)
65
+ blueDot.on('error', error => {
66
+ if (error.code === error.PERMISSION_DENIED) {
67
+ console.log('User denied geolocation permission');
68
+ }
69
+ });
70
+ ```
71
+
72
+ ### Device Orientation Permission (iOS)
73
+
74
+ `watchDeviceOrientation(true)` requires the `deviceorientation` permission on iOS. **This method must be called in response to a user gesture** (click, tap) on iOS devices.
75
+
76
+ ```ts
77
+ // Must be called from a user gesture handler on iOS
78
+ button.addEventListener('click', async () => {
79
+ await blueDot.watchDeviceOrientation(true);
80
+ });
81
+ ```
82
+
83
+ On Android, the `deviceorientationabsolute` event is used and does not require explicit permission.
84
+
85
+ ## API Reference
86
+
87
+ ### Constructor
88
+
89
+ ```ts
90
+ const blueDot = new BlueDot(mapView: MapView);
91
+ ```
92
+
93
+ Creates a new BlueDot instance attached to the given MapView.
94
+
95
+ ### Methods
96
+
97
+ #### `enable(options?: BlueDotUpdateState)`
98
+
99
+ Enable the BlueDot. Must be called before other methods.
100
+
101
+ ```ts
102
+ blueDot.enable({
103
+ color: '#2266ff',
104
+ radius: 10,
105
+ timeout: 30000,
106
+ watchDevicePosition: true,
107
+ });
108
+ ```
109
+
110
+ #### `disable()`
111
+
112
+ Disable and hide the BlueDot. Stops all position tracking.
113
+
114
+ ```ts
115
+ blueDot.disable();
116
+ ```
117
+
118
+ #### `watchDevicePosition(watch: boolean): Promise<void>`
119
+
120
+ Start or stop listening to device GPS position.
121
+
122
+ - Requires geolocation permission (browser prompts automatically)
123
+ - Emits `position-update` events when position changes
124
+ - Emits `error` events on geolocation errors
125
+
126
+ ```ts
127
+ await blueDot.watchDevicePosition(true); // Start tracking
128
+ await blueDot.watchDevicePosition(false); // Stop tracking
129
+ ```
130
+
131
+ #### `watchDeviceOrientation(watch: boolean): Promise<void>`
132
+
133
+ Start or stop listening to device compass heading.
134
+
135
+ - On iOS: Requires permission, must call from user gesture
136
+ - On Android: Uses `deviceorientationabsolute` event (no permission needed)
137
+ - Emits `device-orientation-update` events when heading changes
138
+
139
+ ```ts
140
+ // Call from a click handler on iOS
141
+ button.addEventListener('click', async () => {
142
+ await blueDot.watchDeviceOrientation(true);
143
+ });
144
+ ```
145
+
146
+ #### `update(position, options?)`
147
+
148
+ Manually set or override position properties.
149
+
150
+ ```ts
151
+ // Set full position
152
+ blueDot.update({
153
+ latitude: 43.6532,
154
+ longitude: -79.3832,
155
+ accuracy: 5,
156
+ heading: 90,
157
+ floorOrFloorId: floor,
158
+ });
159
+
160
+ // Clear manual position
161
+ blueDot.update(undefined);
162
+ ```
163
+
164
+ Options:
165
+
166
+ - `silent?: boolean` - If true, don't trigger status transitions or events
167
+ - `animate?: boolean` - If false, skip position animation (default: true)
168
+
169
+ #### `follow(mode, options?)`
170
+
171
+ Make the camera follow the BlueDot.
172
+
173
+ ```ts
174
+ // Follow position only
175
+ blueDot.follow('position-only');
176
+
177
+ // Follow position and rotate camera with heading
178
+ blueDot.follow('position-and-heading');
179
+
180
+ // Follow position and align camera with navigation path direction
181
+ blueDot.follow('position-and-path-direction');
182
+
183
+ // Stop following
184
+ blueDot.follow(false);
185
+ ```
186
+
187
+ Camera options:
188
+
189
+ - `zoomLevel?: number` - Target zoom level
190
+ - `pitch?: number` - Camera pitch angle
191
+ - `animationDuration?: number` - Animation duration in ms
192
+
193
+ #### `setPositionProcessor(processor?)`
194
+
195
+ Set a callback to process/filter incoming geolocation position updates.
196
+
197
+ ```ts
198
+ blueDot.setPositionProcessor((currentState, incomingUpdate) => {
199
+ // Filter out positions outside venue bounds
200
+ if (!isWithinBounds(incomingUpdate)) {
201
+ return undefined; // Discard update
202
+ }
203
+
204
+ // Modify position
205
+ return {
206
+ ...incomingUpdate,
207
+ accuracy: Math.min(incomingUpdate.accuracy, 50),
208
+ };
209
+ });
210
+
211
+ // Clear processor
212
+ blueDot.setPositionProcessor(undefined);
213
+ ```
214
+
215
+ #### `on(eventName, callback)`
216
+
217
+ Subscribe to BlueDot events.
218
+
219
+ ```ts
220
+ const unsubscribe = blueDot.on('position-update', event => {
221
+ console.log(event.coordinate, event.floor);
222
+ });
223
+
224
+ // Later: unsubscribe
225
+ unsubscribe();
226
+ ```
227
+
228
+ #### `off(eventName, callback)`
229
+
230
+ Unsubscribe from BlueDot events.
231
+
232
+ ```ts
233
+ blueDot.off('position-update', handler);
234
+ ```
235
+
236
+ #### `destroy()`
237
+
238
+ Clean up all resources. Call when done with the BlueDot.
239
+
240
+ ```ts
241
+ blueDot.destroy();
242
+ ```
243
+
244
+ ## Events
245
+
246
+ ### `position-update`
247
+
248
+ Fired when position changes (from device or manual update).
249
+
250
+ ```ts
251
+ blueDot.on('position-update', event => {
252
+ console.log(event.coordinate); // Coordinate object
253
+ console.log(event.floor); // Floor object or undefined
254
+ console.log(event.heading); // Heading in degrees
255
+ console.log(event.accuracy); // Accuracy in meters
256
+ });
257
+ ```
258
+
259
+ ### `device-orientation-update`
260
+
261
+ Fired when device heading changes.
262
+
263
+ ```ts
264
+ blueDot.on('device-orientation-update', event => {
265
+ console.log(event.heading); // Heading in degrees from north
266
+ });
267
+ ```
268
+
269
+ ### `status-change`
270
+
271
+ Fired when BlueDot status changes.
272
+
273
+ ```ts
274
+ blueDot.on('status-change', event => {
275
+ console.log(event.status); // New status
276
+ console.log(event.previousStatus); // Previous status
277
+ });
278
+ ```
279
+
280
+ ### `error`
281
+
282
+ Fired on geolocation errors.
283
+
284
+ ```ts
285
+ blueDot.on('error', (error: GeolocationPositionError) => {
286
+ switch (error.code) {
287
+ case error.PERMISSION_DENIED:
288
+ console.log('User denied geolocation permission');
289
+ break;
290
+ case error.POSITION_UNAVAILABLE:
291
+ console.log('Position unavailable');
292
+ break;
293
+ case error.TIMEOUT:
294
+ console.log('Position request timed out');
295
+ break;
296
+ }
297
+ });
298
+ ```
299
+
300
+ ### `follow-change`
301
+
302
+ Fired when follow mode changes.
303
+
304
+ ```ts
305
+ blueDot.on('follow-change', event => {
306
+ console.log(event.mode); // Current follow mode or false
307
+ });
308
+ ```
309
+
310
+ ### `click`
311
+
312
+ Fired when the BlueDot is clicked.
313
+
314
+ ```ts
315
+ blueDot.on('click', event => {
316
+ console.log('BlueDot clicked at', event.coordinate);
317
+ });
318
+ ```
319
+
320
+ ### `hover`
321
+
322
+ Fired when the BlueDot is hovered.
323
+
324
+ ```ts
325
+ blueDot.on('hover', event => {
326
+ console.log('BlueDot hovered at', event.coordinate);
327
+ });
328
+ ```
329
+
330
+ ## Options
55
331
 
56
332
  ```ts
57
333
  export type BlueDotOptions = {
@@ -99,6 +375,11 @@ export type BlueDotOptions = {
99
375
  * @default 0.7
100
376
  */
101
377
  opacity?: number;
378
+ /**
379
+ * Whether to display the heading cone when the BlueDot is inactive.
380
+ * @default false
381
+ */
382
+ displayWhenInactive?: boolean;
102
383
  };
103
384
  /**
104
385
  * The duration of the timeout in milliseconds.
@@ -107,10 +388,25 @@ export type BlueDotOptions = {
107
388
  */
108
389
  timeout?: number;
109
390
  /**
110
- * Whether to watch the device's position.
391
+ * Whether to watch the device's position automatically when enabled.
111
392
  * @default true
112
393
  */
113
394
  watchDevicePosition?: boolean;
395
+ /**
396
+ * The initial state of the BlueDot. Use 'inactive' to show the BlueDot immediately in grey.
397
+ * @default 'hidden'
398
+ */
399
+ initialState?: 'hidden' | 'inactive';
400
+ /**
401
+ * Whether to prevent position updates outside the map bounds.
402
+ * @default false
403
+ */
404
+ preventOutOfBounds?: boolean;
405
+ /**
406
+ * Maximum accuracy (in meters) to accept. Updates with lower accuracy are ignored.
407
+ * @default Infinity
408
+ */
409
+ accuracyThreshold?: number;
114
410
  /**
115
411
  * Whether to log debug messages.
116
412
  * @default false
@@ -119,7 +415,7 @@ export type BlueDotOptions = {
119
415
  };
120
416
  ```
121
417
 
122
- ### React Native
418
+ ## React Native
123
419
 
124
420
  ```tsx
125
421
  import React, { useEffect, useCallback } from 'react';
@@ -218,7 +514,7 @@ function BlueDotDisplay() {
218
514
  <Text>Is Ready: {isReady ? 'Yes' : 'No'}</Text>
219
515
  <Text>Is Enabled: {isEnabled ? 'Yes' : 'No'}</Text>
220
516
  <Text>State: {state}</Text>
221
- <Text>Following: {following ? 'Yes' : 'No'}</Text>
517
+ <Text>Following: {isFollowing ? 'Yes' : 'No'}</Text>
222
518
  {position && (
223
519
  <Text>
224
520
  Position: {position.latitude.toFixed(4)}, {position.longitude.toFixed(4)}
@@ -237,5 +533,5 @@ function BlueDotDisplay() {
237
533
  **Key Differences from Vanilla JS:**
238
534
 
239
535
  - **All methods are async**: `enable()`, `disable()`, `update()`, and `follow()` return Promises
240
- - **Rich state**: Hook returns `isReady`, `state`, `position`, `floor`, `following`, `accuracy`, `heading` for real-time updates
536
+ - **Rich state**: Hook returns `isReady`, `state`, `position`, `floor`, `isFollowing`, `accuracy`, `heading` for real-time updates
241
537
  - **Separate event hook**: Use `useBlueDotEvent` for listening to position-update, state-change, and follow-change events
@@ -0,0 +1 @@
1
+ var Ki=Object.create;var st=Object.defineProperty,Wi=Object.defineProperties,Hi=Object.getOwnPropertyDescriptor,zi=Object.getOwnPropertyDescriptors,Zi=Object.getOwnPropertyNames,rt=Object.getOwnPropertySymbols,Yi=Object.getPrototypeOf,Mt=Object.prototype.hasOwnProperty,ri=Object.prototype.propertyIsEnumerable;var si=o=>{throw TypeError(o)};var It=(o,t,i)=>t in o?st(o,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):o[t]=i,I=(o,t)=>{for(var i in t||(t={}))Mt.call(t,i)&&It(o,i,t[i]);if(rt)for(var i of rt(t))ri.call(t,i)&&It(o,i,t[i]);return o},Rt=(o,t)=>Wi(o,zi(t)),s=(o,t)=>st(o,"name",{value:t,configurable:!0});var Lt=(o,t)=>{var i={};for(var n in o)Mt.call(o,n)&&t.indexOf(n)<0&&(i[n]=o[n]);if(o!=null&&rt)for(var n of rt(o))t.indexOf(n)<0&&ri.call(o,n)&&(i[n]=o[n]);return i};var Xi=(o,t)=>()=>(o&&(t=o(o=0)),t);var Qi=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports);var en=(o,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Zi(t))!Mt.call(o,r)&&r!==i&&st(o,r,{get:()=>t[r],enumerable:!(n=Hi(t,r))||n.enumerable});return o};var tn=(o,t,i)=>(i=o!=null?Ki(Yi(o)):{},en(t||!o||!o.__esModule?st(i,"default",{value:o,enumerable:!0}):i,o));var p=(o,t,i)=>It(o,typeof t!="symbol"?t+"":t,i),Ot=(o,t,i)=>t.has(o)||si("Cannot "+i);var e=(o,t,i)=>(Ot(o,t,"read from private field"),i?i.call(o):t.get(o)),d=(o,t,i)=>t.has(o)?si("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(o):t.set(o,i),l=(o,t,i,n)=>(Ot(o,t,"write to private field"),n?n.call(o,i):t.set(o,i),i),R=(o,t,i)=>(Ot(o,t,"access private method"),i);var g,h=Xi(()=>{g={env:{NODE_ENV:"production",npm_package_version:"6.13.0-beta.0"}}});var Bi=Qi((or,ct)=>{h();(function(){"use strict";function o(a,c){var f=a.x-c.x,m=a.y-c.y;return f*f+m*m}s(o,"getSqDist");function t(a,c,f){var m=c.x,y=c.y,P=f.x-m,G=f.y-y;if(P!==0||G!==0){var Q=((a.x-m)*P+(a.y-y)*G)/(P*P+G*G);Q>1?(m=f.x,y=f.y):Q>0&&(m+=P*Q,y+=G*Q)}return P=a.x-m,G=a.y-y,P*P+G*G}s(t,"getSqSegDist");function i(a,c){for(var f=a[0],m=[f],y,P=1,G=a.length;P<G;P++)y=a[P],o(y,f)>c&&(m.push(y),f=y);return f!==y&&m.push(y),m}s(i,"simplifyRadialDist");function n(a,c,f,m,y){for(var P=m,G,Q=c+1;Q<f;Q++){var oi=t(a[Q],a[c],a[f]);oi>P&&(G=Q,P=oi)}P>m&&(G-c>1&&n(a,c,G,m,y),y.push(a[G]),f-G>1&&n(a,G,f,m,y))}s(n,"simplifyDPStep");function r(a,c){var f=a.length-1,m=[a[0]];return n(a,0,f,c,m),m.push(a[f]),m}s(r,"simplifyDouglasPeucker");function u(a,c,f){if(a.length<=2)return a;var m=c!==void 0?c*c:1;return a=f?a:i(a,m),a=r(a,m),a}s(u,"simplify"),typeof define=="function"&&define.amd?define(function(){return u}):typeof ct<"u"?(ct.exports=u,ct.exports.default=u):typeof self<"u"?self.simplify=u:window.simplify=u})()});h();import{Coordinate as ii}from"@mappedin/mappedin-js";h();var At=class At{constructor(){p(this,"_subscribers",{});p(this,"_abortController",new AbortController);p(this,"_cleanupFunctions",[])}get signal(){return this._abortController.signal}publish(t,i){!this._subscribers||!this._subscribers[t]||this.signal.aborted||this._subscribers[t].forEach(function(n){typeof n=="function"&&n(i)})}onAbort(t){this.signal.addEventListener("abort",()=>t(),{once:!0})}on(t,i,n){let r=n==null?void 0:n.signal;if(r!=null&&r.aborted||this._abortController&&this._abortController.signal.aborted)return()=>{};this._subscribers||(this._subscribers={}),this._subscribers[t]=this._subscribers[t]||[],this._subscribers[t].push(i);let u=s(()=>this.off(t,i),"cleanup");return r&&r.addEventListener("abort",u,{once:!0}),this._cleanupFunctions.push(u),u}off(t,i){if(!this._subscribers||this._subscribers[t]==null||this.signal.aborted)return;let n=this._subscribers[t].indexOf(i);n!==-1&&this._subscribers[t].splice(n,1)}destroy(){if(!this.signal.aborted){for(let t of this._cleanupFunctions)t();this._cleanupFunctions=[],this._subscribers={},this._abortController.abort()}}};s(At,"PubSub");var L=At;import Gn from"zod";h();var Nt="#2266ff",on="#808080";var ai={radius:10,color:Nt,inactiveColor:on,heading:{color:Nt,opacity:.7,displayWhenInactive:!1},accuracyRing:{color:Nt,opacity:.3},timeout:3e4,watchDevicePosition:!0,debug:!1,accuracyThreshold:50,initialState:"hidden",preventOutOfBounds:!0,discardStaleUpdates:!0};h();import{Coordinate as wi}from"@mappedin/mappedin-js";h();h();h();var li="[MappedinJS]";function Bt(o="",{prefix:t=li}={}){let i="".concat(t).concat(o?"-".concat(o):""),n=s((r,u)=>{if(typeof window<"u"&&window.rnDebug){let a=u.map(c=>c instanceof Error&&c.stack?"".concat(c.message,"\n").concat(c.stack):c);window.rnDebug("".concat(o," ").concat(r,": ").concat(a.join(" ")))}},"rnDebug");return{logState:g.env.NODE_ENV==="test"?3:0,log(...r){this.logState<=0&&(console.log(i,...r),n("log",r))},warn(...r){this.logState<=1&&(console.warn(i,...r),n("warn",r))},error(...r){this.logState<=2&&(console.error(i,...r),n("error",r))},assert(...r){console.assert(...r)},time(r){console.time(r)},timeEnd(r){console.timeEnd(r)},setLevel(r){0<=r&&r<=3&&(this.logState=r)}}}s(Bt,"createLogger");var rn=Bt();var at=rn;var ui=s(o=>o,"linearEase"),sn=s(o=>o*o,"quadEaseIn"),an=s(o=>1-Math.cos(o*Math.PI/2),"easeIn"),ln=s(o=>1-(1-o)*(1-o),"quadEaseOut"),un=s(o=>1-Math.pow(1-o,3),"cubicEaseOut"),dn={linear:ui,"ease-in":sn,"ease-out":ln,"ease-in-out":an,"ease-out-cubic":un};function Ee(o,t,i,n,r,u=ui){if(t===i)return r;o=Math.max(t,Math.min(o,i));let a=(o-Math.min(t,i))/Math.abs(i-t),c=typeof u=="function"?u(a):dn[u](a);return n+c*(r-n)}s(Ee,"interpolate");var di="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 ci="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 hi="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==";h();h();h();var Ft=class Ft extends Error{};s(Ft,"InvalidTokenError");var Ct=Ft;Ct.prototype.name="InvalidTokenError";h();var fi=63710088e-1;h();h();function U(o){return o*(Math.PI/180)}s(U,"toRadians");function lt(o){return o*(180/Math.PI)}s(lt,"toDegrees");function mi(o,t){return(o%t+t)%t}s(mi,"euclideanModulo");function Ut([o,t],[i,n]){let r=U(n-t),u=U(i-o),a=U(t),c=U(n),f=Math.sin(r/2)*Math.sin(r/2)+Math.sin(u/2)*Math.sin(u/2)*Math.cos(a)*Math.cos(c),m=2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f));return fi*m}s(Ut,"haversineDistance");function pi([o,t],[i,n]){let r=U(t),u=U(o),a=U(n),f=U(i)-u,m=Math.sin(f)*Math.cos(a),y=Math.cos(r)*Math.sin(a)-Math.sin(r)*Math.cos(a)*Math.cos(f);return lt((Math.atan2(m,y)+Math.PI*2)%(Math.PI*2))}s(pi,"getForwardBearing");function bi(o,t){let i=mi(o,Math.PI*2),n=mi(t,Math.PI*2),r=n-i,u=n+(r>Math.PI?-Math.PI*2:r<-Math.PI?Math.PI*2:0);return{start:i,end:u}}s(bi,"shortestTweenRotation");h();var b=Bt("",{prefix:"[BlueDot]"});function $t(o,t){if(t==null)return o;let i=I({},o);for(let n in t){let r=t[n];r!==void 0&&n!=="accuracyRing"&&n!=="heading"&&(i[n]=r)}if(t.accuracyRing!=null){i.accuracyRing=I({},o.accuracyRing);for(let n in t.accuracyRing){let r=t.accuracyRing[n];r!==void 0&&(i.accuracyRing[n]=r)}}if(t.heading!=null){i.heading=I({},o.heading);for(let n in t.heading){let r=t.heading[n];r!==void 0&&(i.heading[n]=r)}}return i}s($t,"deepMergeState");function pn([o,t],[i,n],[r,u]){let a=i-o,c=n-t,f=a**2+c**2;if(f===0)return;let m=((r-o)*a+(u-t)*c)/f,y;m<=0?y=[o,t]:m>=1?y=[i,n]:y=[o+m*a,t+m*c];let P=Ut([r,u],y);return{proportion:Math.max(0,Math.min(1,m)),intersection:y,distance:P}}s(pn,"getPointLineIntersection");function gi(o,t){if(o==null||o.length<2)return;let i=Number.MAX_SAFE_INTEGER,n,r=0,u=0;for(let a=0;a<o.length-1;a++){let c=o[a],f=o[a+1],m=pn(c,f,t);m!=null&&m.distance<i&&(i=m.distance,n=m.intersection,r=a,u=m.proportion)}if(n)return{intersection:n,distance:i,segmentIndex:r,proportion:u}}s(gi,"findBlueDotOnPath");function yi(o,t){if(t==null)return o;let i={latitude:o==null?void 0:o.latitude,longitude:o==null?void 0:o.longitude,accuracy:o==null?void 0:o.accuracy,floor:o==null?void 0:o.floor,heading:o==null?void 0:o.heading,timestamp:o==null?void 0:o.timestamp};return"latitude"in t&&(i.latitude=(t==null?void 0:t.latitude)==null||t.latitude==="device"?o==null?void 0:o.latitude:t.latitude),"longitude"in t&&(i.longitude=t.longitude==null||t.longitude==="device"?o==null?void 0:o.longitude:t.longitude),"accuracy"in t&&(i.accuracy=t.accuracy==="device"?o==null?void 0:o.accuracy:t.accuracy),"floor"in t&&(i.floor=t.floor==="device"?o==null?void 0:o.floor:t.floor),"heading"in t&&(i.heading=t.heading==="device"?o==null?void 0:o.heading:t.heading),"timestamp"in t&&(i.timestamp=t.timestamp),i}s(yi,"getPositionWithOverrides");function Ti({longitude:o,latitude:t},{radius:i,center:n}){return Ut([o,t],[n.longitude,n.latitude])<=i}s(Ti,"isWithinPanBounds");function Pi(o,t){let i=o/(.35/t);return Math.max(i,1)}s(Pi,"computeBlueDotScale");function vi(o,t,i){return t!=null&&(o==="active"||o==="inactive"&&i)}s(vi,"shouldShowHeadingCone");function Ei(o,t){return o==="active"&&t!=null}s(Ei,"shouldShowAccuracyRing");function Jt(o,t,i){if(i!=null&&"discardStaleUpdates"in i&&i.discardStaleUpdates===!1)return!1;let n=o!=null&&t!=null&&o<t;return n&&(i==null?void 0:i.debug)===!0&&b.log("Stale timestamp discarded (incoming: ".concat(o,", current: ").concat(t,")")),n}s(Jt,"isStaleTimestamp");h();function Si(o,t){let i=o!=null?U(o):0,n=t!=null?U(-t):0,{start:r,end:u}=bi(i,n);return[lt(r),lt(u)]}s(Si,"computeHeadingRotation");h();var T,D,N,Ne,Se,ue,Be,k,ee,te,O,B,A,$,j,K,ie,de,ne,ce,he,fe,Ce,we,De,S,Di,xe,Fe,xi,_i,Gi,Vt,Ii,Mi,Ri,Li,qt=class qt{constructor(t,i){d(this,S);d(this,T);d(this,D);d(this,N,1);d(this,Ne,0);d(this,Se,!1);d(this,ue,!1);d(this,Be,0);d(this,k);d(this,ee);d(this,te);d(this,O);d(this,B);d(this,A);d(this,$);d(this,j);d(this,K);d(this,ie,{});d(this,de,{});d(this,ne,{});d(this,ce);d(this,he);d(this,fe);p(this,"dot");p(this,"accuracyRing");p(this,"headingCone");d(this,Ce,s(t=>{e(this,Fe).call(this,t)},"#handleCameraChange"));p(this,"add",s(t=>{var n;this.remove(),e(this,Fe).call(this,{zoomLevel:e(this,T).Camera.zoomLevel}),l(this,ce,t.floor);let i=new wi({latitude:t.latitude,longitude:t.longitude});this.accuracyRing=e(this,T).Models.add(i,di,{visible:!1,scale:((n=t.accuracy)!=null?n:0)/2,rotation:[0,0,0],color:e(this,D).getState().accuracyRing.color,opacity:e(this,D).getState().accuracyRing.opacity,visibleThroughGeometry:!0}),this.headingCone=e(this,T).Models.add(i,hi,{visible:!1,scale:e(this,N),rotation:[0,0,0],color:e(this,D).getState().heading.color,opacity:e(this,D).getState().heading.opacity,visibleThroughGeometry:!0}),this.dot=e(this,T).Models.add(i,ci,{visible:!1,scale:e(this,N),rotation:[0,0,0],interactive:!0,visibleThroughGeometry:!0,material:{Inner:{color:e(this,D).status==="inactive"?e(this,D).getState().inactiveColor:e(this,D).getState().color}}})},"add"));d(this,we);d(this,De);p(this,"update",s((t,i={})=>{var c,f,m;let{position:n,status:r,accuracy:u,heading:a}=t;if(u!=null&&l(this,we,u),a!=null&&l(this,De,a),l(this,ie,{}),l(this,de,{}),l(this,ne,{}),R(this,S,Li).call(this,r,e(this,ie),e(this,de),e(this,ne)),n&&l(this,$,{longitude:n.longitude,latitude:n.latitude}),u!=null&&l(this,j,u/2),a!=null){let[y,P]=Si(e(this,A),a);l(this,A,y),l(this,K,P)}i.animate?((c=e(this,O))!=null||l(this,O,R(this,S,Ii).call(this)),(f=e(this,B))!=null||l(this,B,R(this,S,Mi).call(this)),(m=e(this,A))!=null||l(this,A,R(this,S,Ri).call(this)),l(this,k,e(this,O)?I({},e(this,O)):void 0),l(this,ee,e(this,B)),l(this,te,e(this,A)),l(this,Be,Date.now()),l(this,ue,!0),e(this,xe).call(this)):(l(this,ue,!1),e(this,$)&&l(this,O,e(this,$)),e(this,j)!=null&&l(this,B,e(this,j)),e(this,K)!=null&&l(this,A,e(this,K)),R(this,S,Vt).call(this))},"update"));d(this,xe,s(()=>{let t=!1;e(this,Se)&&(e(this,ie).scale=[e(this,N),e(this,N),e(this,N)],e(this,ne).scale=[e(this,N),e(this,N),1],l(this,Se,!1),t=!0),t=R(this,S,xi).call(this)||t,e(this,ue)&&(t=R(this,S,_i).call(this)||t),t&&R(this,S,Vt).call(this)},"#handlePreRender"));d(this,Fe,s(t=>{let i=Math.round(t.zoomLevel*1e4)/1e4;if(i===e(this,Ne))return;l(this,Ne,i);let n=e(this,T).getMetersPerPixel(),r=Pi(e(this,D).getState().radius,n);r!==e(this,N)&&(l(this,N,r),l(this,Se,!0))},"#syncScale"));p(this,"remove",s(()=>{l(this,ue,!1),l(this,k,void 0),l(this,O,void 0),l(this,$,void 0),l(this,ee,void 0),l(this,B,void 0),l(this,j,void 0),l(this,te,void 0),l(this,A,void 0),l(this,K,void 0),l(this,ce,void 0),l(this,he,void 0),l(this,fe,void 0),l(this,we,void 0),l(this,De,void 0),l(this,ie,{}),l(this,de,{}),l(this,ne,{}),this.dot&&(e(this,T).Models.remove(this.dot),this.dot=void 0),this.accuracyRing&&(e(this,T).Models.remove(this.accuracyRing),this.accuracyRing=void 0),this.headingCone&&(e(this,T).Models.remove(this.headingCone),this.headingCone=void 0)},"remove"));p(this,"destroy",s(()=>{this.remove(),e(this,T).off("pre-render",e(this,xe)),e(this,T).off("camera-change",e(this,Ce))},"destroy"));l(this,T,t),l(this,D,i),e(this,T).on("pre-render",e(this,xe)),e(this,T).on("camera-change",e(this,Ce))}getPosition(){if(this.dot!=null)return e(this,T).getState(this.dot).position}updateFloor(t,i){var n;((n=e(this,ce))==null?void 0:n.id)!==(t==null?void 0:t.id)&&(l(this,he,Date.now()),l(this,fe,i!=null?i:R(this,S,Di).call(this)),l(this,ce,t))}};T=new WeakMap,D=new WeakMap,N=new WeakMap,Ne=new WeakMap,Se=new WeakMap,ue=new WeakMap,Be=new WeakMap,k=new WeakMap,ee=new WeakMap,te=new WeakMap,O=new WeakMap,B=new WeakMap,A=new WeakMap,$=new WeakMap,j=new WeakMap,K=new WeakMap,ie=new WeakMap,de=new WeakMap,ne=new WeakMap,ce=new WeakMap,he=new WeakMap,fe=new WeakMap,Ce=new WeakMap,we=new WeakMap,De=new WeakMap,S=new WeakSet,Di=s(function(){var i;if(!this.dot)return 0;let t=e(this,T).getState(this.dot);return(i=t==null?void 0:t.verticalOffset)!=null?i:0},"#getCurrentAltitude"),xe=new WeakMap,Fe=new WeakMap,xi=s(function(){var r,u;if(!this.dot||e(this,D).status==="hidden"||e(this,D).status==="disabled")return!1;let t=R(this,S,Gi).call(this,(r=e(this,ce))!=null?r:e(this,T).currentFloor),i=e(this,T).getState(this.dot),n=(u=i==null?void 0:i.verticalOffset)!=null?u:0;return Math.abs(t-n)>.01?(e(this,ie).verticalOffset=t,e(this,de).verticalOffset=t,e(this,ne).verticalOffset=t,!0):!1},"#syncAltitude"),_i=s(function(){let t=Date.now()-e(this,Be);if(e(this,k)&&e(this,$)){let i=Math.min(t/1e3,1);i>=1?(l(this,O,e(this,$)),l(this,k,void 0)):l(this,O,{longitude:Ee(i,0,1,e(this,k).longitude,e(this,$).longitude,"ease-out"),latitude:Ee(i,0,1,e(this,k).latitude,e(this,$).latitude,"ease-out")})}if(e(this,ee)!=null&&e(this,j)!=null){let i=Math.min(t/150,1);i>=1?(l(this,B,e(this,j)),l(this,ee,void 0)):l(this,B,Ee(i,0,1,e(this,ee),e(this,j),"linear"))}if(e(this,te)!=null&&e(this,K)!=null){let i=Math.min(t/150,1);i>=1?(l(this,A,e(this,K)),l(this,te,void 0)):l(this,A,Ee(i,0,1,e(this,te),e(this,K),"linear"))}return!e(this,k)&&e(this,ee)==null&&e(this,te)==null&&l(this,ue,!1),!0},"#lerp"),Gi=s(function(t){var n,r;let i=(r=(n=e(this,T).getState(t))==null?void 0:n.altitude)!=null?r:0;if(e(this,he)!=null&&e(this,fe)!=null){let u=Date.now()-e(this,he),a=Math.min(u/1e3,1);if(a<1)return Ee(a,0,1,e(this,fe),i,"ease-out-cubic");l(this,he,void 0),l(this,fe,void 0)}return i},"#calculateCurrentAltitude"),Vt=s(function(){let t=I({},e(this,ie)),i=I({},e(this,de)),n=I({},e(this,ne));if(e(this,O)){let r=new wi({latitude:e(this,O).latitude,longitude:e(this,O).longitude});t.position=r,i.position=r,n.position=r}e(this,B)!=null&&(i.scale=[e(this,B),e(this,B),1]),e(this,A)!=null&&(n.rotation=[0,0,e(this,A)]),this.dot&&e(this,T).updateState(this.dot,t),this.accuracyRing&&e(this,T).updateState(this.accuracyRing,i),this.headingCone&&e(this,T).updateState(this.headingCone,n)},"#applyCurrentState"),Ii=s(function(){if(!this.dot)return;let t=e(this,T).getState(this.dot);if(t!=null&&t.position)return{longitude:t.position.longitude,latitude:t.position.latitude}},"#readCurrentPosition"),Mi=s(function(){var i;if(!this.accuracyRing)return;let t=e(this,T).getState(this.accuracyRing);return(i=t==null?void 0:t.scale)==null?void 0:i[0]},"#readCurrentAccuracyScale"),Ri=s(function(){var i;if(!this.headingCone)return;let t=e(this,T).getState(this.headingCone);return(i=t==null?void 0:t.rotation)==null?void 0:i[2]},"#readCurrentHeadingRotation"),Li=s(function(t,i,n,r){if(!t)return;let u=t==="hidden"||t==="disabled",a=t==="active";this.dot&&(i.visible=!u,u||(i.material={Inner:{color:a?e(this,D).getState().color:e(this,D).getState().inactiveColor}})),this.accuracyRing&&(n.visible=Ei(t,e(this,we))),this.headingCone&&(r.visible=vi(t,e(this,De),e(this,D).getState().heading.displayWhenInactive),r.color=a?e(this,D).getState().heading.color:e(this,D).getState().inactiveColor)},"#buildStatusAndAppearance"),s(qt,"ModelManager");var ut=qt;h();import x from"zod";var Oi=x.object({coords:x.object({latitude:x.number(),longitude:x.number(),accuracy:x.number(),altitude:x.number().optional().nullable(),altitudeAccuracy:x.number().optional().nullable(),heading:x.number().optional().nullable(),speed:x.number().optional().nullable(),floorLevel:x.number().optional().nullable()}),timestamp:x.number()}),Ai=x.object({latitude:x.number(),longitude:x.number(),floor:x.any().optional(),accuracy:x.number().optional(),heading:x.number().optional().nullable(),timestamp:x.number().optional()});h();h();var Ni={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 C,W,_e,kt=class kt extends L{constructor(){super();d(this,C,"disabled");d(this,W);d(this,_e,!1)}get current(){return e(this,C)}get isEnabled(){return e(this,C)!=="disabled"}setDebug(i){l(this,_e,i)}transitionTo(i){let n=Ni[e(this,C)].actions[i];if(n==null){b.warn("Invalid state transition from ".concat(e(this,C)," to ").concat(n," using ").concat(i));return}n!==e(this,C)&&(e(this,_e)&&b.log("Transitioning from ".concat(e(this,C)," to ").concat(n," using ").concat(i)),l(this,C,n),this.publish("status-change",{status:n,action:i}))}resetTimer(i){e(this,W)&&(clearTimeout(e(this,W)),l(this,W,void 0)),typeof i=="number"&&i<1/0&&l(this,W,setTimeout(()=>{e(this,_e)&&b.log("Position timed out after ".concat(i,"ms")),this.transitionTo("timeout")},i))}clearTimer(){e(this,W)&&(clearTimeout(e(this,W)),l(this,W,void 0))}disable(){this.clearTimer(),this.transitionTo("disable")}shouldUpdateGeometry(){return e(this,C)!=="hidden"&&e(this,C)!=="disabled"}destroy(){this.clearTimer(),super.destroy()}};C=new WeakMap,W=new WeakMap,_e=new WeakMap,s(kt,"StatusManager");var dt=kt;h();var Ci=tn(Bi());h();var _,me,oe,ge,H,ye,Ue,$e,ft,Fi,jt=class jt extends L{constructor(i){super();d(this,ft);d(this,_);d(this,me,!1);d(this,oe);d(this,ge);d(this,H);d(this,ye);p(this,"cancel",s(()=>{e(this,_).Camera.isAnimating&&e(this,_).Camera.cancelAnimation(),l(this,me,!1),l(this,oe,void 0),l(this,ge,void 0),l(this,H,void 0),l(this,ye,void 0),e(this,_).off("user-interaction-start",e(this,Ue)),e(this,_).off("navigation-active-path-change",e(this,$e)),this.publish("follow-change",{following:!1})},"cancel"));d(this,Ue,s(()=>{this.cancel()},"#handleUserInteraction"));d(this,$e,s(()=>{l(this,oe,void 0)},"#handlePathChange"));l(this,_,i)}get isFollowing(){return e(this,me)}start(i,n){var r,u,a,c;if(i===!1){this.cancel();return}i!=="position-only"&&(n==null?void 0:n.bearing)!=null&&b.warn("Camera bearing option will be ignored in follow mode '".concat(i,"'. To control the bearing manually, use mode 'position-only'.")),l(this,ge,i),l(this,H,{zoomLevel:(r=n==null?void 0:n.zoomLevel)!=null?r:21,bearing:i==="position-only"?n==null?void 0:n.bearing:void 0,pitch:(u=n==null?void 0:n.pitch)!=null?u:45}),l(this,ye,{duration:(a=n==null?void 0:n.duration)!=null?a:1e3,easing:(c=n==null?void 0:n.easing)!=null?c:"ease-in-out"}),e(this,me)||(l(this,me,!0),e(this,_).on("user-interaction-start",e(this,Ue)),e(this,_).on("navigation-active-path-change",e(this,$e))),this.publish("follow-change",{following:!0,mode:i})}handlePositionUpdate(i){if(!e(this,me)||!e(this,H)||!e(this,ye))return;let{coordinate:n,heading:r,floor:u}=i;if(e(this,H).center=n,u!=null&&u.id!==e(this,_).currentFloor.id&&(e(this,_).setFloor(u.id),l(this,oe,void 0)),e(this,ge)==="position-and-heading")e(this,H).bearing=r!=null?r:void 0;else if(e(this,ge)==="position-and-path-direction"){let a=R(this,ft,Fi).call(this);if(a!=null){let c=gi(a,[n.longitude,n.latitude]);if(c!=null){let f=a[c.segmentIndex],m=a[c.segmentIndex+1];e(this,H).bearing=pi(f,m)}}}e(this,_).Camera.animateTo(e(this,H),e(this,ye))}destroy(){this.cancel(),super.destroy()}};_=new WeakMap,me=new WeakMap,oe=new WeakMap,ge=new WeakMap,H=new WeakMap,ye=new WeakMap,Ue=new WeakMap,$e=new WeakMap,ft=new WeakSet,Fi=s(function(){if(e(this,oe)==null&&e(this,_).Navigation.activeDirections!=null){let n=(Array.isArray(e(this,_).Navigation.activeDirections)?e(this,_).Navigation.activeDirections.flatMap(r=>r.coordinates):e(this,_).Navigation.activeDirections.coordinates).filter(r=>r.floorId===e(this,_).currentFloor.id);l(this,oe,(0,Ci.default)(n.map(r=>({x:r.longitude,y:r.latitude})),1e-5).map(r=>[r.x,r.y]))}return e(this,oe)},"#getSimplifiedDirections"),s(jt,"FollowController");var ht=jt;h();h();function Kt(){return typeof window<"u"&&window!==null}s(Kt,"isBrowser");function Wt(o){return Kt()?(typeof o=="object"||typeof o=="function")&&o!==null&&"requestPermission"in o&&typeof o.requestPermission=="function":!1}s(Wt,"hasRequestPermission");async function vn(o){if(!Wt(o))return"unavailable";try{return await o.requestPermission()}catch(t){return"denied"}}s(vn,"requestPermission");function En(o){return Kt()?typeof o<"u"&&o!=null:!1}s(En,"supportsEvent");async function Ht(o){if(!En(o))return"unavailable";let t=await vn(o);return t!=="unavailable"?t:"granted"}s(Ht,"requestEventPermission");function Sn(o){return Kt()?typeof navigator<"u"&&navigator!=null&&typeof navigator[o]<"u"&&navigator[o]!=null:!1}s(Sn,"supportsNavigatorAPI");async function Ui(){return Sn("geolocation")?new Promise(o=>{navigator.geolocation.getCurrentPosition(()=>o("granted"),t=>{t.code===t.PERMISSION_DENIED?o("denied"):o("granted")},{enableHighAccuracy:!0})}):"unavailable"}s(Ui,"requestGeolocationPermission");var wn=(()=>{let o;return{getDeviceType(){if(o)return o;let{userAgent:t,platform:i,maxTouchPoints:n}=window.navigator,r=/(iphone|ipod|ipad)/i.test(t),u=i==="iPad"||i.indexOf("Mac")===0&&n>0&&!window.MSStream,a=/android/i.test(t);return o={isIpad:u,isMobile:a||r||u,isIOS:r,isAndroid:a,isSafari12:/Version\/12.+Safari/.test(t),isFirefox:/Firefox/.test(t),isWindows:/windows/i.test(t)},o},_reset(){o=void 0}}})(),Je=wn.getDeviceType,$i=(()=>{let o,t,i;function n(){if(t!==void 0)return t;o||(o=document.createElement("canvas"));let u=o.getContext("webgl")||o.getContext("experimental-webgl");if(!u)return t;try{let a=Je().isFirefox?null:u.getExtension("WEBGL_debug_renderer_info");return t=a?u.getParameter(a.UNMASKED_RENDERER_WEBGL):u.getParameter(u.RENDERER),t}catch(a){let c=new Error("Failed getting device info");throw c.name="FailedGettingDeviceInfo",c}}s(n,"getInfo");function r(){var a,c;if(!Je().isWindows)return!1;if(i!==void 0)return i;let u=(c=(a=Dn())==null?void 0:a.toLowerCase())!=null?c:"";return i=u.includes("intel")&&(u.includes("uhd")||u.includes("iris")),i}return s(r,"shouldDisableOffscreenCanvas"),{getInfo:n,shouldDisableOffscreenCanvas:r,_setCanvas(u){o=u,t=void 0,i=void 0}}})(),Dn=$i.getInfo,gr=$i.shouldDisableOffscreenCanvas;h();var zt=class zt extends L{constructor(){super();p(this,"enabled",!1)}get isEnabled(){return this.enabled}onFusedPosition(i){}async enable(){if(this.enabled)return!0;if(this.requiresPermission){if(await this.checkPermission()==="unavailable")return b.error('Sensor "'.concat(this.id,'" is unavailable on this device.')),!1;let n=await this.requestPermission();if(n!=="granted")return b.error('Permission declined for sensor "'.concat(this.id,'". ').concat(n)),!1}try{return await this.start(),this.enabled=!0,!0}catch(i){return!1}}disable(){this.stop(),this.enabled=!1}};s(zt,"BaseSensor");var Ge=zt;h();function Ji(o,t,i){let n=null,r=null,u,a=null,c=0;i||(i={});let f=s(function(){c=i.leading===!1?0:Date.now(),a=null,r&&(u=o.apply(n,r)),a||(n=r=null)},"later");return function(...m){let y=Date.now();!c&&i.leading===!1&&(c=y);let P=t-(y-c);return P<=0||P>t?(a&&(clearTimeout(a),a=null),c=y,u=o.apply(this,m),a||(n=r=null)):!a&&i.trailing!==!1&&(n=this,r=m,a=setTimeout(f,P)),u}}s(Ji,"throttle");h();h();h();var Vi=["devicemotion","deviceorientation","deviceorientationabsolute","geolocation"];var Te,mt,qi,Yt=class Yt{constructor(){d(this,mt);d(this,Te,new Map);this.reset()}async check(t){var i;return(i=e(this,Te).get(t))!=null?i:"unavailable"}async request(t){let i="unavailable";switch(t){case"geolocation":i=await Ui();break;case"devicemotion":i=await Ht(window==null?void 0:window.DeviceMotionEvent);break;case"deviceorientation":i=await Ht(window==null?void 0:window.DeviceOrientationEvent);break;case"deviceorientationabsolute":i="granted";break;default:b.warn("Unsupported permission type requested: ".concat(t));break}return R(this,mt,qi).call(this,t,i),i}reset(){for(let t of Vi)e(this,Te).set(t,"prompt")}};Te=new WeakMap,mt=new WeakSet,qi=s(function(t,i){e(this,Te).get(t)!==i&&e(this,Te).set(t,i)},"#updatePermissionState"),s(Yt,"BrowserPermissions");var Zt=Yt,Ie=new Zt;var pe,Ve,qe,Xt=class Xt extends Ge{constructor(){super();p(this,"id","deviceorientation");d(this,pe);d(this,Ve,0);p(this,"start",s(async()=>{if(this.enabled){at.warn("Device orientation sensor already started.");return}this.enabled=!0,window.addEventListener(e(this,pe),e(this,qe))},"start"));p(this,"stop",s(()=>{if(!this.enabled){at.warn("Device orientation sensor not started.");return}this.enabled=!1,window.removeEventListener(e(this,pe),e(this,qe))},"stop"));p(this,"checkPermission",s(async()=>Ie.check(e(this,pe)),"checkPermission"));p(this,"requestPermission",s(async()=>Ie.request(e(this,pe)),"requestPermission"));d(this,qe,Ji(i=>{var u,a,c;if(this.isEnabled===!1)return;let n=Math.round((a=i.webkitCompassHeading)!=null?a:-((u=i.alpha)!=null?u:0)),r=n-((c=e(this,Ve))!=null?c:0);typeof n=="number"&&Math.abs(r)>2&&(l(this,Ve,n),this.publish("position-update",{sensorId:this.id,update:{heading:n,timestamp:Date.now(),confidence:1}}))},100));l(this,pe,typeof DeviceOrientationEvent<"u"&&(Wt(DeviceOrientationEvent)||Je().isIOS)?"deviceorientation":"deviceorientationabsolute")}get requiresPermission(){return Je().isIOS}};pe=new WeakMap,Ve=new WeakMap,qe=new WeakMap,s(Xt,"DeviceOrientationSensor");var pt=Xt;h();import _n from"zod";var be,ke,gt,je,yt,Qt=class Qt extends Ge{constructor(){super(...arguments);p(this,"id","geolocation");p(this,"requiresPermission",!0);d(this,be);d(this,ke,!1);d(this,gt,s(i=>{if(this.isEnabled===!1)return;if(i==null||i.coords==null){let r={code:2,message:"Invalid position received",PERMISSION_DENIED:1,POSITION_UNAVAILABLE:2,TIMEOUT:3};e(this,je).call(this,r);return}let n=e(this,yt).call(this,i);n!=null&&this.publish("position-update",{sensorId:this.id,update:n})},"#onSuccess"));d(this,je,s(i=>{switch(i.code){case i.PERMISSION_DENIED:b.error("Geolocation permission denied by the user.",i);break;case i.POSITION_UNAVAILABLE:b.error("Geolocation position unavailable.",i);break;case i.TIMEOUT:b.error("Geolocation request timed out.",i);break;default:b.error("An unknown geolocation error occurred.",i);break}this.publish("error",{sensorId:this.id,error:i})},"#onError"));d(this,yt,s(i=>{try{Oi.parse(i)}catch(n){this.publish("error",{sensorId:this.id,error:n}),b.error("Browser sent invalid position",n instanceof _n.ZodError?n.message:String(n));return}return i.coords.floorLevel!=null&&!e(this,ke)&&l(this,ke,!0),{latitude:i.coords.latitude,longitude:i.coords.longitude,accuracy:i.coords.accuracy,heading:i.coords.heading,floorLevel:i.coords.floorLevel,timestamp:i.timestamp,confidence:1}},"#createPositionUpdate"))}enable(){return this.enabled||(this.start(),this.enabled=!0),Promise.resolve(!0)}async start(){if(e(this,be)!=null){b.warn("Geolocation sensor already started.");return}l(this,be,navigator.geolocation.watchPosition(i=>e(this,gt).call(this,i),i=>e(this,je).call(this,i),{enableHighAccuracy:!0}))}stop(){e(this,be)!=null&&(navigator.geolocation.clearWatch(e(this,be)),l(this,be,void 0))}async checkPermission(){return await Ie.check(this.id)}async requestPermission(){return Ie.request(this.id)}};be=new WeakMap,ke=new WeakMap,gt=new WeakMap,je=new WeakMap,yt=new WeakMap,s(Qt,"GeolocationSensor");var bt=Qt;h();var z,Me,Ke,We,ei=class ei extends L{constructor(){super();d(this,z,new Map);d(this,Me,new Map);d(this,Ke,s(({sensorId:i,update:n})=>{e(this,Me).set(i,n),this.publish("position-update",{sensorId:i,update:n})},"#handlePositionUpdate"));d(this,We,s(({sensorId:i,error:n})=>{this.publish("error",{sensorId:i,error:n})},"#handleError"))}register(i){let n=i.id;if(e(this,z).has(n)){b.warn("Sensor with id ".concat(n," already registered. Please use a different id."));return}return e(this,z).set(n,i),i.on("position-update",e(this,Ke)),i.on("error",e(this,We)),i}get(i){return e(this,z).get(i)}unregister(i){let n=e(this,z).get(i);n&&(n.isEnabled&&n.disable(),n.off("position-update",e(this,Ke)),n.off("error",e(this,We)),e(this,z).delete(i),e(this,Me).delete(i))}getLatestUpdates(i){let n=Date.now(),r=[];for(let u of e(this,z).values())if(u.isEnabled){let a=e(this,Me).get(u.id);a&&(!a.timestamp||n-a.timestamp<=i)&&r.push(a)}return r}destroy(){let i=[...e(this,z).keys()];for(let n of i)this.unregister(n);super.destroy()}};z=new WeakMap,Me=new WeakMap,Ke=new WeakMap,We=new WeakMap,s(ei,"SensorRegistry");var Tt=ei;h();h();var ki={maxAge:5e3};var re,Re,Le,se,He,ze,vt,Ze,ti=class ti extends L{constructor(i,n){super();d(this,re);d(this,Re);d(this,Le);d(this,se);d(this,He,s(({error:i})=>{this.publish("error",{error:i})},"#handleError"));d(this,ze,s(({sensorId:i,update:n})=>{i==="deviceorientation"&&n.heading!=null?e(this,vt).call(this,n.heading):i==="geolocation"&&n.latitude!=null&&n.longitude!=null&&e(this,Ze).call(this,i,n)},"#handleSensorUpdate"));d(this,vt,s(i=>{l(this,se,i),this.publish("heading-update",{heading:i})},"#handleHeadingUpdate"));d(this,Ze,s((i,n)=>{var a;let r=(a=e(this,se))!=null?a:n.heading,u={latitude:n.latitude,longitude:n.longitude,accuracy:n.accuracy,heading:r,floorLevel:n.floorLevel,timestamp:n.timestamp,confidence:n.confidence,sensorId:"fusion",contributions:[{sensorId:i,weight:1,position:n}]};e(this,se)!=null&&e(this,se)!==n.heading&&u.contributions.push({sensorId:"deviceorientation",weight:0,position:{heading:e(this,se),timestamp:Date.now(),confidence:1}}),l(this,Le,u),this.publish("fused-position",{position:u})},"#handlePositionUpdate"));l(this,re,i),l(this,Re,I(I({},ki),n)),e(this,re).on("position-update",e(this,ze)),e(this,re).on("error",e(this,He))}get options(){return I({},e(this,Re))}fuse(){let n=e(this,re).getLatestUpdates(e(this,Re).maxAge).find(r=>r.latitude!=null&&r.longitude!=null);return n&&e(this,Ze).call(this,"manual",n),e(this,Le)}destroy(){e(this,re).off("position-update",e(this,ze)),e(this,re).off("error",e(this,He)),l(this,Le,void 0),l(this,se,void 0),super.destroy()}};re=new WeakMap,Re=new WeakMap,Le=new WeakMap,se=new WeakMap,He=new WeakMap,ze=new WeakMap,vt=new WeakMap,Ze=new WeakMap,s(ti,"FusionEngine");var Pt=ti;var F,Z,ae,w,J,M,V,Pe,Y,q,X,v,le,E,Oe,Ae,Ye,Xe,Qe,ve,Et,St,wt,Dt,xt,et,_t,Gt,tt,it,nt,ot,ni=class ni{constructor(t){d(this,F,new L);d(this,Z);d(this,ae);d(this,w);d(this,J);d(this,M);d(this,V);d(this,Pe);d(this,Y);d(this,q);d(this,X);d(this,v);d(this,le);d(this,E,ai);d(this,Oe,new Map);d(this,Ae);p(this,"enable",s(t=>{l(this,E,$t(e(this,E),t)),e(this,w).setDebug(e(this,E).debug),this.isEnabled||(e(this,q).on("fused-position",e(this,Ye)),e(this,q).on("heading-update",e(this,Xe)),e(this,q).on("error",e(this,Qe))),e(this,w).transitionTo("enable"),this.watchDevicePosition(e(this,E).watchDevicePosition),e(this,E).initialState==="inactive"&&e(this,w).transitionTo("initialize")},"enable"));p(this,"disable",s(()=>{e(this,q).off("fused-position",e(this,Ye)),e(this,q).off("heading-update",e(this,Xe)),e(this,q).off("error",e(this,Qe)),e(this,M).remove(),e(this,w).disable(),e(this,J).isFollowing&&e(this,J).cancel(),this.watchDevicePosition(!1),this.watchDeviceOrientation(!1),l(this,v,void 0),l(this,X,void 0),e(this,Oe).clear()},"disable"));p(this,"on",s((t,i)=>e(this,F).on(t,i),"on"));p(this,"off",s((t,i)=>{e(this,F).off(t,i)},"off"));p(this,"updateState",s(t=>{let i=e(this,E).watchDevicePosition;l(this,E,$t(e(this,E),t)),t.debug!=null&&e(this,w).setDebug(t.debug),e(this,M).update({status:this.status},{animate:!1}),t.watchDevicePosition!=null&&t.watchDevicePosition!==i&&this.watchDevicePosition(t.watchDevicePosition),t.timeout!=null&&this.status==="active"&&e(this,w).resetTimer(e(this,E).timeout)},"updateState"));p(this,"watchDevicePosition",s(t=>{l(this,V,void 0);let i=e(this,Y).get("geolocation");if(i||(i=new bt,e(this,Y).register(i)),t){if(!this.isEnabled){b.warn("BlueDot must be enabled before watching browser position.");return}i.enable()}else i.disable()},"watchDevicePosition"));p(this,"watchDeviceOrientation",s(async t=>{l(this,Pe,void 0);let i=e(this,Y).get("deviceorientation");if(i||(i=new pt,e(this,Y).register(i)),t){if(!await i.enable()){b.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');return}}else i.disable()},"watchDeviceOrientation"));d(this,Ye,s(async t=>{var a,c,f;let{position:i}=t;if(!this.isEnabled)return;let n=await e(this,et).call(this,i.floorLevel,i.latitude,i.longitude);if(!this.isEnabled)return;let r={latitude:i.latitude,longitude:i.longitude,accuracy:(a=i.accuracy)!=null?a:void 0,heading:(c=i.heading)!=null?c:void 0,floor:n,timestamp:i.timestamp},u=r;if(e(this,Ae)){let m=e(this,Gt).call(this,r);if(m==null){e(this,E).debug&&b.log("Position update discarded by position processor");return}u=m}Jt(u.timestamp,(f=e(this,v))==null?void 0:f.timestamp,e(this,E))||(l(this,V,u),e(this,ve).call(this,u))},"#handleFusedPosition"));d(this,Xe,s(t=>{let{heading:i}=t;l(this,Pe,i),this.status==="active"&&e(this,wt).call(this,i)},"#handleHeadingUpdate"));d(this,Qe,s(t=>{let{error:i}=t;if(e(this,w).transitionTo("error"),i!=null&&typeof i=="object"&&"code"in i&&typeof i.code=="number"){let n=i;n.code===1&&e(this,tt).call(this).sendWatchPositionDenied(),e(this,F).publish("error",n)}},"#handleGeolocationError"));d(this,ve,s((t,i)=>{let n;try{e(this,Pe)!=null&&(t=Object.assign({},t,{heading:e(this,Pe)})),n=Ai.parse(yi(t,e(this,X)))}catch(r){e(this,w).transitionTo("error"),b.error("Position parse failed",r instanceof Gn.ZodError?r.message:String(r));return}if(e(this,E).debug&&b.log("Parsed position",n),e(this,E).preventOutOfBounds){let{radius:r,center:u}=e(this,Z).Camera.bounds;if(r!=null&&isFinite(r)&&u!=null&&!Ti({longitude:n.longitude,latitude:n.latitude},{radius:r,center:u})){b.warn("Position [".concat(n.longitude,", ").concat(n.latitude,"] is outside map bounds. Position update will be discarded."));return}}if(!e(this,_t).call(this,n.accuracy)){b.log("Dropping position update with accuracy ".concat(n.accuracy,"m (exceeds threshold ").concat(e(this,E).accuracyThreshold,"m)"));return}if(i!=null&&i.silent?e(this,M).update({status:this.status},{animate:!1}):e(this,w).transitionTo("position-update"),!e(this,w).shouldUpdateGeometry()){b.warn("Cannot update position because BlueDot state is '".concat(this.status,"'. BlueDot must be enabled first."));return}e(this,Et).call(this,n,i)},"#setPosition"));d(this,Et,s((t,i)=>{var c,f,m;if(Jt(t.timestamp,(c=e(this,v))==null?void 0:c.timestamp,e(this,E)))return;l(this,v,t),i!=null&&i.silent||(e(this,w).resetTimer(e(this,E).timeout),e(this,tt).call(this).updateState({userPosition:{bluedotTimestamp:Date.now(),latitude:t.latitude,longitude:t.longitude,floorLevel:(f=t.floor)==null?void 0:f.elevation,accuracy:t.accuracy}})),this.dotModel||e(this,M).add(t),e(this,M).updateFloor(t.floor);let n=new ii({latitude:t.latitude,longitude:t.longitude}),r=this.status==="active"?t.accuracy:void 0,u=e(this,St).call(this)&&(m=t.heading)!=null?m:void 0,a=(i==null?void 0:i.animate)!==!1;if(e(this,M).update({position:n,accuracy:r,heading:u,status:this.status},{animate:a}),!(i!=null&&i.silent)){let y={floor:this.floor,heading:this.heading,accuracy:this.accuracy,coordinate:this.coordinate};e(this,F).publish("position-update",y),e(this,J).handlePositionUpdate(y)}},"#applyPosition"));d(this,St,s(()=>this.heading==null?!1:this.status==="active"?!0:e(this,E).heading.displayWhenInactive,"#shouldShowHeading"));d(this,wt,s(t=>{if(!e(this,w).shouldUpdateGeometry()){b.warn("Cannot update orientation because BlueDot state is '".concat(this.status,"'. BlueDot must be enabled first."));return}if(e(this,v)==null){e(this,E).debug&&b.log("Cannot update orientation before a valid position has been applied.");return}l(this,v,Rt(I({},e(this,v)),{heading:t})),e(this,M).update({heading:t,status:this.status},{animate:!0}),e(this,F).publish("device-orientation-update",{heading:t})},"#setOrientation"));p(this,"update",s((t,i)=>{if(!this.isEnabled)return;if(t==null){l(this,X,void 0),e(this,V)!=null&&e(this,ve).call(this,e(this,V),i);return}if("coords"in t){e(this,Dt).call(this,t,i);return}let c=t,{timestamp:n}=c,r=Lt(c,["timestamp"]),u=Object.assign({},e(this,X),r);if("floorOrFloorId"in t){let{floorOrFloorId:f}=t;f==null?u.floor=void 0:f==="device"?u.floor="device":typeof f=="string"?u.floor=e(this,xt).call(this,f):u.floor=f}l(this,X,u),(u.latitude!=null&&u.longitude!=null||e(this,V)!=null)&&e(this,ve).call(this,e(this,V),i)},"update"));d(this,Dt,s(async(t,i)=>{let n=await e(this,et).call(this,t.coords.floorLevel,t.coords.latitude,t.coords.longitude);if(!this.isEnabled)return;let f=t,{timestamp:r}=f,u=Lt(f,["timestamp"]),a=Object.assign({},e(this,X),Rt(I({},u.coords),{floor:n}));l(this,X,a),(a.latitude!=null&&a.longitude!=null||e(this,V)!=null)&&e(this,ve).call(this,e(this,V),i)},"#processAsyncGeolocation"));d(this,xt,s(t=>e(this,ae).getById("floor",t),"#getFloorByFloorId"));d(this,et,s(async(t,i,n)=>{if(t==null)return;let r=e(this,Oe).get(t);if(r==null&&(r=e(this,ae).getByType("floor").filter(u=>u.elevation===t),e(this,Oe).set(t,r)),r.length===0){b.warn("Received elevation level ".concat(t," but no floors could be found at that elevation."));return}if(r.length===1)return r[0];if(i!=null&&n!=null){let u=new ii({latitude:i,longitude:n,floorId:r[0].id}),a=await e(this,ae).Query.nearest(u,e(this,ae).getByType("node"),{limit:"same-elevation",mode:"absolute-distance",maxResults:1});if(a&&a.length>0&&a[0].feature!=null&&a[0].feature.floor!=null)return a[0].feature.floor}return e(this,Z).currentFloorStack.floors.find(u=>u.elevation===t)},"#getFloorByFloorLevel"));p(this,"follow",s((t,i)=>{e(this,J).start(t,i)},"follow"));d(this,_t,s(t=>t==null?this.status!=="disabled":t<=e(this,E).accuracyThreshold,"#isAccurateEnough"));d(this,Gt,s(t=>{var n,r,u,a,c,f;let i={latitude:(n=e(this,v))==null?void 0:n.latitude,longitude:(r=e(this,v))==null?void 0:r.longitude,accuracy:(u=e(this,v))==null?void 0:u.accuracy,heading:(a=e(this,v))==null?void 0:a.heading,floor:(c=e(this,v))==null?void 0:c.floor,timestamp:(f=e(this,v))==null?void 0:f.timestamp};try{return e(this,Ae).call(this,i,t)}catch(m){return b.error("Position processor callback threw an error",m instanceof Error?m.message:String(m)),t}},"#processIncomingPosition"));p(this,"destroy",s(()=>{this.disable(),e(this,q).destroy(),e(this,Y).destroy(),e(this,M).destroy(),e(this,w).destroy(),e(this,J).destroy(),e(this,Z).off("click",e(this,nt)),e(this,Z).off("hover",e(this,ot)),e(this,F).destroy()},"destroy"));d(this,tt,s(()=>e(this,E).preventOutOfBounds?e(this,ae).internal.Analytics:{sendWatchPositionDenied:s(()=>{},"sendWatchPositionDenied"),updateState:s(()=>{},"updateState")},"#getAnalyticsIfEnabled"));d(this,it,s(t=>i=>{i.models==null||i.models.length===0||this.dotModel==null||i.models.find(r=>{var u;return r.id===((u=this.dotModel)==null?void 0:u.id)})==null||e(this,F).publish(t,{coordinate:i.coordinate})},"#handleClickOrHover"));d(this,nt,e(this,it).call(this,"click"));d(this,ot,e(this,it).call(this,"hover"));l(this,Z,t),l(this,ae,t.getMapData()),l(this,w,new dt),l(this,J,new ht(t)),l(this,M,new ut(t,this)),l(this,Y,new Tt),l(this,q,new Pt(e(this,Y))),e(this,w).on("status-change",i=>{e(this,M).update({status:i.status},{animate:!1}),e(this,F).publish("status-change",i)}),e(this,J).on("follow-change",i=>{e(this,F).publish("follow-change",i)}),e(this,Z).on("click",e(this,nt)),e(this,Z).on("hover",e(this,ot))}get dotModel(){return e(this,M).dot}get accuracyRingModel(){return e(this,M).accuracyRing}get headingConeModel(){return e(this,M).headingCone}get isEnabled(){return e(this,w).isEnabled}get status(){return e(this,w).current}get isFollowing(){return e(this,J).isFollowing}get heading(){var t;return(t=e(this,v))==null?void 0:t.heading}get accuracy(){var t;return(t=e(this,v))==null?void 0:t.accuracy}get coordinate(){var t,i;if(e(this,v)!=null)return(e(this,le)==null||((t=this.floor)==null?void 0:t.id)!==e(this,le).floorId||e(this,v).latitude!==e(this,le).latitude||e(this,v).longitude!==e(this,le).longitude)&&l(this,le,new ii({latitude:e(this,v).latitude,longitude:e(this,v).longitude,floorId:(i=this.floor)==null?void 0:i.id})),e(this,le)}getState(){return I({},e(this,E))}get floor(){var t;return(t=e(this,v))==null?void 0:t.floor}setPositionProcessor(t){l(this,Ae,t)}};F=new WeakMap,Z=new WeakMap,ae=new WeakMap,w=new WeakMap,J=new WeakMap,M=new WeakMap,V=new WeakMap,Pe=new WeakMap,Y=new WeakMap,q=new WeakMap,X=new WeakMap,v=new WeakMap,le=new WeakMap,E=new WeakMap,Oe=new WeakMap,Ae=new WeakMap,Ye=new WeakMap,Xe=new WeakMap,Qe=new WeakMap,ve=new WeakMap,Et=new WeakMap,St=new WeakMap,wt=new WeakMap,Dt=new WeakMap,xt=new WeakMap,et=new WeakMap,_t=new WeakMap,Gt=new WeakMap,tt=new WeakMap,it=new WeakMap,nt=new WeakMap,ot=new WeakMap,s(ni,"BlueDot");var ji=ni;export{s as a,h as b,ji as c};