@amoshydra/oktoso 0.1.4 → 0.1.6

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
@@ -2,11 +2,11 @@
2
2
 
3
3
  Oktoso is a hub-first session hub for AI agents. One place to see what needs attention, browse sessions, start chats, and reply across OpenCode, Open WebUI, Hermes, and other providers.
4
4
 
5
- The hub is a small Node/TypeScript HTTP service. Clients are thin and replaceable: web, mobile, desktop, Even G2 glasses, and VR.
5
+ The hub is a small Node/TypeScript HTTP service. Clients are thin and replaceable: web, mobile, desktop, [Even G2 glasses](apps/even-realities-g2/README.md), and VR.
6
6
 
7
7
  ## Status
8
8
 
9
- Implementation phase. OpenCode and Open WebUI are live, the web hub has search, drafts, attention, the newest-first transcript, and incremental message streaming, and the Even G2 client has its first inbox/chat/reply slice. Desktop notifications, real Hermes, and voice STT remain pending. The approved UI reference is frozen as `design-v1.1`.
9
+ Implementation phase. OpenCode and Open WebUI are live, the web hub has search, drafts, attention, the newest-first transcript, and incremental message streaming, and the [Even G2 client](apps/even-realities-g2/README.md) has pairing, inbox, chat, questions, batches, discovery, failure states, and a glyph legend. Desktop notifications, real Hermes, and voice STT remain pending. The approved UI reference is frozen as `design-v1.1`.
10
10
 
11
11
  ## Documents
12
12
 
@@ -18,9 +18,7 @@ Implementation phase. OpenCode and Open WebUI are live, the web hub has search,
18
18
  - [`docs/design-lock.md`](docs/design-lock.md) - frozen `design-v1.1` reference and change policy
19
19
  - [`AGENTS.md`](AGENTS.md) - UI/design contract and repository instructions for agents
20
20
  - [`docs/openapi.yaml`](docs/openapi.yaml) - generated API contract
21
- - [`docs/wearables.md`](docs/wearables.md) - Even G2 setup, packaging, and device limits
22
- - [`docs/glass-ux.md`](docs/glass-ux.md) - glass screen map, interaction grammar, and validation plan
23
- - [`docs/g2-hardware-validation.md`](docs/g2-hardware-validation.md) - scripted G2 hardware acceptance run
21
+ - [`apps/even-realities-g2/README.md`](apps/even-realities-g2/README.md) - Even G2 client, screenshots, pairing, symbols, subagent policy, packaging, and hardware validation
24
22
  - [`SECURITY.md`](SECURITY.md) - credential handling and vulnerability reporting
25
23
  - [`docs/publishing.md`](docs/publishing.md) - npm trusted publishing and release workflow
26
24
  - [`docs/prototypes/index.html`](docs/prototypes/index.html) - interactive UI prototype with mock data
@@ -48,7 +46,7 @@ pnpm dev
48
46
  - Open WebUI: chats, current branches, models, new chats, and prompt sends
49
47
  - Providers: OpenCode and Open WebUI adapters; Hermes remains a health-only fake
50
48
  - Attention: permissions, forms, unread sessions, failures, provider-backed actions, and live navigation badges
51
- - Wearables: `apps/even-realities-g2` (Oktoso G2), shared wearable core, phone pairing/keyboard, and hub-side reply assistance settings
49
+ - Wearables: [`apps/even-realities-g2`](apps/even-realities-g2/README.md) (Oktoso G2), shared wearable core, phone pairing/keyboard, and hub-side reply assistance settings
52
50
 
53
51
  `pnpm dev` starts the hub, Vite, fake Open WebUI/Hermes servers, and a fake OpenCode server. Real provider credentials belong in the ignored `.env.local` file:
54
52
 
@@ -195,31 +193,18 @@ Use `--plain` for a scrollback-friendly session; human output stays on stdout an
195
193
 
196
194
  ## Even G2 URL hosting
197
195
 
198
- The hub can serve the glass app under a generic app prefix, alongside the web UI and API:
199
-
200
- ```text
201
- http://localhost:8787/ web UI
202
- http://localhost:8787/api hub API
203
- http://localhost:8787/apps/even-g2/
204
- ```
205
-
206
- Build the hub, web UI, and hosted G2 app in one pass:
196
+ The hub serves the glass app at `/apps/even-g2/`. See the
197
+ [G2 README](apps/even-realities-g2/README.md) for the client screens, pairing,
198
+ symbols, subagent policy, packaging, and hardware validation.
207
199
 
208
200
  ```sh
209
201
  pnpm build:single-port
210
202
  pnpm start:local
211
203
  ```
212
204
 
213
- `start:local` loads `.env.local`, uses the dev provider config, binds `0.0.0.0:8787`, and starts the built hub. For a real production config, use `HUB_CONFIG=./hub.config.json node dist/hub.js` instead.
214
-
215
- Open a pairing link, or enter a token if the app is loaded from another origin. The app uses the same origin for `/api`, so a paired browser uses the HttpOnly session cookie and needs no CORS or separate Vite server.
216
-
217
- The optional `.ehpk` flow still exists:
218
-
219
- ```sh
220
- VITE_HUB_URL=https://hub.example.com pnpm --filter @amoshydra/oktoso-even-g2 build
221
- HUB_ORIGIN=https://hub.example.com pnpm pack:even-g2
222
- ```
205
+ `start:local` loads `.env.local`, uses the dev provider config, binds
206
+ `0.0.0.0:8787`, and starts the built hub. For production, use
207
+ `HUB_CONFIG=./hub.config.json node dist/hub.js`.
223
208
 
224
209
  ## Stack
225
210
 
@@ -0,0 +1,37 @@
1
+ (function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=x;(function(e,t){let n=x,r=e();for(;;)try{if(parseInt(n(919))/1*(-parseInt(n(727))/2)+-parseInt(n(962))/3+-parseInt(n(814))/4*(-parseInt(n(742))/5)+-parseInt(n(887))/6+parseInt(n(1262))/7+parseInt(n(1001))/8*(-parseInt(n(465))/9)+parseInt(n(442))/10==t)break;r.push(r.shift())}catch{r.push(r.shift())}})(Fe,418764);var t=Object[e(1312)],n=Object[e(897)],r=Object.getOwnPropertyDescriptors,i=Object[e(799)],a=Object[e(328)][e(1358)],o=Object[e(328)][e(758)],s=(e,n,r)=>n in e?t(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,c=(t,n)=>{let r=e,c={ULQrA:function(e,t,n,r){return e(t,n,r)},FhcLt:function(e,t){return e(t)}};for(var l in n||={})a[r(1135)](n,l)&&c[r(1139)](s,t,l,n[l]);if(i)for(var l of c[r(941)](i,n))o.call(n,l)&&c[r(1139)](s,t,l,n[l]);return t},l=(e,t)=>n(e,r(t)),u=(t,n,r)=>new Promise((i,a)=>{let o=e,s={eikKe:function(e,t){return e(t)},zvRLy:function(e,t){return e!==t},kyCLK:o(458),aHoPO:function(e,t){return e(t)},KJwuM:o(343),XdlBw:function(e,t){return e!=t},sTSDu:function(e,t){return e!=t},SuQKl:function(e,t){return e!=t},tglcO:`MxlBd`};var c=e=>{let t=o;try{s[t(1076)](u,r[t(1303)](e))}catch(e){s[t(752)](t(458),s[t(793)])?_0x4da595[t(679)](void 0,_0x4fda78):s[t(610)](a,e)}},l=e=>{let t=o;try{if(s[t(752)](t(479),s[t(745)]))s[t(1076)](u,r.throw(e));else{var n,i,c,l;(void 0).sn=_0x32eb88.sn,(void 0).connectType=_0x35a869[t(1202)]??s[t(639)],(void 0)[t(726)]=s[t(474)](n=_0x4e711b[t(726)],null)?n:!1,(void 0).batteryLevel=s[t(732)](i=_0x1c7c58[t(1416)],null)?i:0,(void 0)[t(507)]=s.sTSDu(c=_0x4f0c80.isCharging,null)?c:!1,(void 0).isInCase=s[t(689)](l=_0x44a53c[t(603)],null)?l:!1}}catch(e){s.aHoPO(a,e)}},u=e=>e[o(890)]?i(e[o(998)]):Promise[o(1380)](e.value)[o(1013)](c,l);s.aHoPO(u,(r=r[o(1253)](t,n))[o(1303)]())});if(typeof window!=e(1019)){let t=function(t,n){let r=e;try{window[r(1353)](new CustomEvent(r(1345)+t,{detail:n}))}catch{}},n=function(t){let n=e;return!t[n(677)]&&{UPRcd:function(e,t){return e===t}}[n(702)](c[n(980)](t.id),t)},r=function(t){let n=e;t[n(686)]++,t[n(888)]?te(t[n(777)]):{LKFze:function(e,t){return e(t)}}[n(1119)](ee,t[n(777)])},i=function(t){let r=e,i={wLzHm:function(e,t){return e(t)},fChok:function(e,t){return e!==t},XZsoD:function(e,t,n){return e(t,n)},VVloc:function(e,t,n){return e(t,n)},XIFlE:function(e,t,n){return e(t,n)}},o=++t[r(686)],s=()=>{let e=r;!i[e(983)](n,t)||i[e(1190)](t[e(686)],o)||i.XZsoD(a,t,!0)};t.nativeId=t[r(888)]?i[r(514)](f,s,t[r(493)]):i.XIFlE(d,s,t.delay)},a=function(a,o){let s=e,l={ArZeD:function(e,t){return e(t)},TbGfw:function(e,t){return e(t)},elJmZ:function(e,t,n){return e(t,n)},DsFnt:`native-fire`};if(!n(a)||a.running)return!1;a[s(888)]?(a.remaining=a.delay,a.skipNextShadowTick=o,o||(l[s(935)](r,a),i(a))):(a.cleared=!0,c[s(934)](a.id),l[s(900)](r,a)),a[s(1255)]=!0;try{o&&a[s(888)]&&l.elJmZ(t,l[s(710)],{id:a.id,delay:a[s(493)]}),a.fn()}catch(e){console[s(1108)](e)}finally{a[s(1255)]=!1}return!0},o=function(t,n,r,a){let o=e,s={BNnYH:function(e,t){return e||t},SgzIw:function(e,t){return e(t)}},u=l++,d=Math[o(517)](+s[o(961)](n,0),+!!a),f={id:u,fn:()=>t(...r),delay:d,remaining:d,repeat:a,cleared:!1,nativeId:0,generation:0,running:!1,skipNextShadowTick:!1};return s[o(1140)](i,f),c[o(844)](f.id,f),a&&console[o(431)](ne,o(725)+f.id+o(772)+d+o(1060)+c[o(825)]+`)`),f.id},s=function(t,n){let i=e,a={eBunv:function(e,t){return e==t},FoOCy:function(e,t){return e(t)},OfNAw:function(e,t){return e(t)}};if(a[i(509)](t,null))return;let o=c.get(t);if(!o){for(let e of c[i(976)]())if(e[i(777)]===t)return;return a[i(1237)](n,t)}o[i(677)]=!0,a[i(1150)](r,o),c[i(934)](t)},c=new Map,l=1,u=!1,d=window[e(992)].bind(window),f=window.setInterval.bind(window),ee=window[e(526)][e(1104)](window),te=window[e(536)][e(1104)](window),ne=e(920);window[e(1412)]=(t,n,...r)=>typeof t==e(498)?o(t,n,r,!0):f(t,n,...r),window[e(992)]=(t,n,...r)=>typeof t==e(498)?o(t,n,r,!1):d(t,n,...r),window[e(536)]=e=>s(e,te),window[e(526)]=e=>s(e,ee),window[e(1403)]=r=>{let i=e,o={jUIJa:function(e,t,n){return e(t,n)},StOCw:function(e,t){return e!=t},WUDHU:function(e,t){return e==t},BvFlE:function(e,t){return e<t},wgILn:function(e,t){return e(t)},QgCIl:function(e,t){return e===t},tNeTt:i(331),gsEjt:`tick`};if(!Number[i(932)](r)||o[i(436)](r,0)||u)return;u=!0;let s=0,l=0,d=c[i(825)];try{for(let e of Array[i(1205)](c[i(976)]()))if(o[i(1359)](n,e)&&!e[i(1255)]){if(o[i(1343)](i(460),o[i(1014)])){var f;return o[i(839)](_0x556db5,o[i(839)](_0x25ad5e,{},o[i(551)](void 0,null)?void 0:{}),{menuItems:o.WUDHU(f=o[i(371)](void 0,null)?void 0:(void 0)[i(1413)],null)?void 0:f.map(_0x5e366f[i(348)])})}if(e.skipNextShadowTick){e[i(918)]=!1,e[i(1252)]=e[i(493)],l++;continue}e[i(1252)]-=r,e[i(1252)]<=0&&a(e,!1)&&s++}o[i(839)](t,o[i(929)],{elapsedMs:r,queueSize:d,fired:s,skipped:l})}finally{u=!1}}}var d=(t=>(t.GetUserInfo=e(834),t[e(995)]=e(1163),t.SetLocalStorage=e(587),t[e(993)]=e(1207),t.GetAppLocation=`getAppLocation`,t[e(1259)]=e(1175),t[e(651)]=e(1366),t[e(394)]=e(1282),t[e(832)]=e(352),t[e(573)]=e(397),t[e(933)]=e(670),t.UpdateImageRawData=e(1095),t[e(1384)]=e(1347),t[e(459)]=e(589),t[e(694)]=`imuControl`,t[e(1226)]=e(1057),t))(d||{}),f=(t=>(t[e(769)]=`call_even_app_method`,t[e(478)]=e(1423),t))(f||{}),ee=(t=>(t[e(821)]=e(908),t[e(1078)]=e(658),t[e(915)]=e(467),t[e(1162)]=e(1324),t[e(502)]=e(784),t))(ee||{}),te=class t{constructor(t){let n=e;this[n(1037)]=t[n(1037)],this[n(1268)]=t.name,this.avatar=t[n(875)],this[n(713)]=t.country}toJson(){let t=e;return{uid:this[t(1037)],name:this[t(1268)],avatar:this.avatar,country:this[t(713)]}}static[e(954)](n){let r=e,i={hmhrp:function(e,t){return e!=t},sJLtU:function(e,t){return e==t},eMzUQ:function(e,t){return e!=t}};var a,o,s;return new t({uid:i[r(1e3)](a=i[r(634)](n,null)?void 0:n[r(1037)],null)?a:0,name:(i[r(634)](n,null)?void 0:n.name)??``,avatar:i[r(792)](o=n?.[r(875)],null)?o:``,country:i[r(1e3)](s=n?.country,null)?s:``})}static[e(703)](){return new t({uid:0,name:``,avatar:``,country:``})}},ne=(t=>(t[e(385)]=e(343),t.Connecting=e(714),t[e(1032)]=e(373),t[e(1382)]=e(522),t[e(938)]=e(901),t))(ne||{});(t=>{let n=e,r={aOwVE:`none`,bfuEF:n(714),NJePA:n(373),JoKlF:n(522),BqhGr:`connectionFailed`};function i(e){let t=n;switch(e){case r[t(497)]:return t(343);case r[t(566)]:return r[t(566)];case r.NJePA:return r.NJePA;case`disconnected`:return r[t(1188)];case r[t(973)]:return t(901);default:return r[t(497)]}}t[n(341)]=i})(ne||={});var re=class t{constructor(t){let n=e,r={Aqtcy:function(e,t){return e!=t},GTgAW:function(e,t){return e!=t},STpfI:function(e,t){return e!=t},iBldx:function(e,t){return e!=t}};var i,a,o,s,c;this.sn=t.sn,this[n(1202)]=r.Aqtcy(i=t[n(1202)],null)?i:n(343),this[n(726)]=r[n(1422)](a=t.isWearing,null)?a:!1,this.batteryLevel=r[n(1422)](o=t.batteryLevel,null)?o:0,this[n(507)]=r[n(671)](s=t[n(507)],null)?s:!1,this.isInCase=r.iBldx(c=t[n(603)],null)?c:!1}[e(348)](){let t=e;return{sn:this.sn,connectType:this[t(1202)],isWearing:this[t(726)],batteryLevel:this[t(1416)],isCharging:this[t(507)],isInCase:this[t(603)]}}isNone(){let t=e;return this[t(1202)]===t(343)}[e(413)](){let t=e,n={HxnQt:t(373)};return this[t(1202)]===n[t(499)]}[e(1314)](){let t=e,n={KkHqM:function(e,t){return e===t},eyNke:t(714)};return n[t(1284)](this[t(1202)],n[t(619)])}[e(1325)](){let t=e,n={CQIut:function(e,t){return e===t},ZWUiE:t(522)};return n[t(982)](this[t(1202)],n[t(690)])}isConnectionFailed(){let t=e,n={darHs:function(e,t){return e===t},PThLv:t(901)};return n[t(926)](this[t(1202)],n[t(1371)])}static[e(954)](n){let r=e,i={LfbEH:function(e,t){return e!=t},PgVXV:function(e,t){return e==t},ZxrTv:function(e,t){return e!=t},wQwUa:function(e,t){return e==t},kPSEX:function(e,t){return e==t}};var a,o,s;return new t({sn:i[r(314)](a=i[r(660)](n,null)?void 0:n.sn,null)?a:``,connectType:ne[r(341)](i.LfbEH(o=i[r(660)](n,null)?void 0:n[r(1202)],null)?o:``),isWearing:i[r(1007)](s=n?.isWearing,null)?s:!1,batteryLevel:(i.PgVXV(n,null)?void 0:n[r(1416)])??0,isCharging:(i[r(1022)](n,null)?void 0:n[r(507)])??!1,isInCase:(i[r(1266)](n,null)?void 0:n[r(603)])??!1})}static[e(703)](n=``){let r={kegGi:e(343)};return new t({sn:n,connectType:r.kegGi,isWearing:!1,batteryLevel:0,isCharging:!1,isInCase:!1})}},ie=(t=>(t.G1=`g1`,t.G2=`g2`,t.Ring1=e(1334),t))(ie||{});(t=>{let n=e,r={eDFPm:n(903),lrAeN:n(429),hApGS:n(756),ZnJNB:n(390),rJqaK:n(393),ProJW:`imagetograyfailed`,DbFZI:n(370),uvXNU:n(1405),QxRYM:`object`,rzoJB:function(e,t){return e==t},FEKGh:n(828),QmKYg:n(1334),BpRmK:function(e,t){return e(t)},DHKjP:function(e,t){return e!==t}};function i(e){let t=n,i={aLEfv:r[t(1067)],GvpHL:function(e,t){return e(t)},taLkc:function(e,t){return e==t},qeSvr:t(1339),ZjUJv:function(e,t){return e(t)},IgEzI:r[t(324)],PxOgE:t(380),TAKuI:r[t(1323)],WglnI:r.ZnJNB,mljek:r.rJqaK,QCrSg:r.ProJW,dzXQH:t(965),fjEEi:r[t(351)],dYBNf:r[t(601)],fABky:t(1440),TJhAo:r.QxRYM,qobnJ:function(e,n){return r[t(1219)](e,n)}};if(r.FEKGh!==r[t(1290)]){if(typeof _0x2a88d9==i[t(1288)]&&_0x5a494e[t(932)](_0x33f1ab))return i[t(1430)](_0x731e6e,_0x319cee);if(i[t(569)](typeof _0x2f674d,i[t(759)])){let e=i[t(444)](_0xacaf37,_0x19a7b0);if(_0x3a6754.isFinite(e))return i[t(1430)](_0x15bf1b,e);let n=_0xdc96f5.trim()[t(1098)]();switch(n[t(1375)](`.`)?n.split(`.`)[t(1127)]():n){case`success`:return t(1354);case i[t(439)]:return i[t(584)];case i[t(416)]:return i[t(586)];case i.mljek:case i[t(505)]:case i.dzXQH:case`image_to_gray4_failed`:return i[t(871)];case i[t(605)]:return i.fABky;default:return i[t(1030)]}}if(_0x42449d&&i[t(569)](typeof _0x541d96,i[t(1121)])){if(i[t(569)](typeof _0x5cd1bb[t(917)],i.aLEfv))return _0x465909(_0x5af26c.index);if(i[t(456)](typeof _0xc0ba7c.value,i[t(1288)]))return _0x4af6ce(_0x45d7a2[t(998)]);if(i[t(569)](typeof _0x406c79[t(1268)],i[t(759)]))return i[t(1430)](_0x198fa2,_0x1802af[t(1268)])}return i.fABky}switch(e){case`g1`:return`g1`;case`g2`:return`g2`;case t(1334):return r[t(815)];default:return`g1`}}t.fromString=i;function a(e){return e===`g1`||e===`g2`}t[n(342)]=a;function o(e){let t=n;if(r[t(1406)](t(1240),`xAJao`))return e===r[t(815)];try{r[t(804)](_0x28b9d2,_0x3d661f[t(1247)](_0x47e8a7))}catch(e){r[t(804)](_0x2ec453,e)}}t[n(928)]=o})(ie||={});var ae=class t{constructor(t){let n=e;this[n(1439)]=t.model,this.sn=t.sn,this[n(728)]=t[n(728)]??re[n(703)](t.sn)}static[e(954)](n){let r=e,i={JbmGK:function(e,t){return e==t},YcwuP:function(e,t){return e==t},kIfDI:function(e,t,n){return e(t,n)},ljoDU:function(e,t,n){return e(t,n)},UOQQz:function(e,t){return e!=t}};var a;let o=(i.JbmGK(n,null)?void 0:n.sn)??``;return new t({model:ie[r(341)]((i[r(613)](n,null)?void 0:n.model)??``),sn:o,status:re[r(954)](i[r(731)](l,i[r(641)](c,{},i.UOQQz(a=i[r(613)](n,null)?void 0:n[r(728)],null)?a:{}),{sn:o}))})}updateStatus(t){let n=e;({yrwJR:function(e,t){return e===t}})[n(1145)](t.sn,this.sn)&&(this[n(728)]=t)}[e(342)](){return ie.isGlasses(this.model)}isRing(){let t=e;return ie[t(928)](this[t(1439)])}[e(348)](){let t=e;return{model:this[t(1439)],sn:this.sn,status:this[t(728)][t(348)]()}}};function p(t){let n=e,r={oVJlw:function(e,t){return e==t},oRRzl:n(472)};return!!t&&r[n(882)](typeof t,r[n(880)])&&!Array[n(1131)](t)}function m(t,...n){let r=e,i={KOXNV:function(e,t){return e!==t}};for(let e of n)if(t&&i[r(400)](t[e],void 0))return t[e]}function oe(t){let n=e;return String(t).replace(/_/g,``)[n(1098)]()}function h(t,...n){let r=e,i={iyeup:function(e,t){return e(t)},uiMXi:function(e,t){return e===t},lAFxg:function(e,t){return e(t)},QflwP:function(e,t){return e===t}},a=m(t,...n);if(a!==void 0)return a;if(!i[r(785)](p,t)||i[r(383)](n[r(405)],0))return;let o=n[r(719)](oe);for(let e in t){if(!Object[r(328)].hasOwnProperty[r(1135)](t,e))continue;let n=i[r(849)](oe,e);for(let a=0;a<o.length;a++)if(i[r(1009)](n,o[a]))return t[e]}}function g(t){let n=e,r={yewpe:function(e,t){return e==t},yjeNU:function(e,t){return e(t)}};if(r[n(1301)](t,null))return;let i=r[n(336)](Number,t);return Number.isFinite(i)?i:void 0}function _(t){let n=e,r={vndvH:function(e,t){return e!=t},PSerG:function(e,t){return e(t)}};if(r[n(1023)](t,null))return r[n(779)](String,t)}function v(t,...n){let r=e,i={QherT:function(e,t){return e(t)},gzRCM:function(e,t,...n){return e(t,...n)}};return i[r(1278)](g,i[r(407)](h,t,...n))}function y(t,...n){let r=e,i={CTTdH:function(e,t,...n){return e(t,...n)},pQqpa:function(e,t){return e(t)}},a=i[r(904)](h,t,...n);if(a!=null)return i.pQqpa(_,a)}function se(t){return{HMNFw:function(e,t){return e(t)}}[e(791)](p,t)?t:{}}function ce(t){let n=e,r={wflPt:function(e,t){return e!=t},CRkBu:function(e,t){return e==t},iOocd:n(1339),vMChK:function(e,t){return e instanceof t}};if(r[n(537)](t,null)){if(r.CRkBu(typeof t,r[n(1231)]))return t;if(Array.isArray(t))return t[n(719)](e=>Number(e)&255);if(r[n(1411)](t,Uint8Array))return Array[n(1205)](t);if(r[n(1411)](t,ArrayBuffer))return Array[n(1205)](new Uint8Array(t))}}var le=(t=>(t[e(1191)]=e(667),t[e(723)]=e(353),t))(le||{}),ue=(t=>(t.Low=e(1409),t[e(1245)]=e(500),t[e(550)]=e(789),t))(ue||{});function de(t){let n=e,r={uxWmd:function(e,t){return e===t},kzjZq:`glasses`};return r[n(819)](t,n(353))?n(353):r[n(531)]}function fe(t){let n=e,r={FjQbm:function(e,t,n,r){return e(t,n,r)},wjVJz:`lat`,kuWcl:function(e,t,n,r,i){return e(t,n,r,i)},fqhMj:`longitude`,XjXJH:`lon`,UxIpU:n(1299),rRfMM:function(e,t){return e(t)},NcaoW:`accuracy`,pIieI:function(e,t,n){return e(t,n)},Qomwq:n(1164),trXkL:n(375),YjUNd:function(e,t,n){return e(t,n)},yoDDL:function(e,t,n,r){return e(t,n,r)},rrNlv:n(924),yAmdY:function(e,t,n,r){return e(t,n,r)},gSWWs:n(1415)};if(!p(t))return null;let i=r[n(1015)](v,t,`latitude`,r[n(1126)]),a=r[n(1174)](v,t,r.fqhMj,r[n(873)],r[n(1010)]);if(!r[n(867)](he,i)||!r[n(867)](ge,a))return null;let o={latitude:i,longitude:a};return me(o,r[n(377)],r[n(1264)](v,t,`accuracy`)),me(o,n(363),r[n(1264)](v,t,n(363))),me(o,n(1164),v(t,r[n(1280)])),r[n(1015)](me,o,r[n(1374)],r[n(688)](v,t,n(375))),r[n(1408)](me,o,r[n(816)],r[n(588)](v,t,n(924),r[n(1361)])),o}function pe(t){let n=e,r={SwqIe:function(e,t){return e(t)},IOTbV:n(1249),lcnZH:function(e,t,n){return e(t,n)},ieYTu:n(1268),LKKtB:function(e,t,n,r){return e(t,n,r)},yKyDr:function(e,t,n){return e(t,n)},idxHA:n(825),hCRWk:n(476),dKeOd:function(e,t){return e||t},kYWbR:function(e,t){return e==t}};if(!r[n(1302)](p,t))return null;let i=y(t,r[n(1444)]),a=r[n(1445)](y,t,r.ieYTu),o=r.LKKtB(y,t,`mimeType`,n(952)),s=r.yKyDr(v,t,r[n(1225)]),c=r[n(1340)](y,t,r[n(560)]);return r.dKeOd(!i,!a)||!o||r[n(697)](s,null)||!c?null:{path:i,name:a,mimeType:o,size:s,base64:c}}function me(t,n,r){({LkJIk:function(e,t){return e!==t}})[e(1006)](r,void 0)&&(t[n]=r)}function he(t){let n=e,r={peHgd:function(e,t){return e!==t},uYDua:function(e,t){return e>=t},kgRda:function(e,t){return e<=t}};return r[n(575)](t,void 0)&&r[n(1441)](t,-90)&&r[n(843)](t,90)}function ge(t){let n=e,r={sOBZn:function(e,t){return e!==t},DcLeY:function(e,t){return e>=t}};return r[n(1153)](t,void 0)&&r[n(1387)](t,-180)&&t<=180}var _e=(t=>(t.APP_REQUEST_CREATE_PAGE_SUCCESS=`APP_REQUEST_CREATE_PAGE_SUCCESS`,t[e(796)]=e(796),t[e(884)]=`APP_REQUEST_CREATE_OVERSIZE_RESPONSE_CONTAINER`,t[e(1020)]=`APP_REQUEST_CREATE_OUTOFMEMORY_CONTAINER`,t[e(593)]=e(593),t[e(856)]=e(856),t.APP_REQUEST_REBUILD_PAGE_SUCCESS=e(1320),t[e(506)]=e(506),t[e(450)]=e(450),t[e(410)]=`APP_REQUEST_UPGRADE_TEXT_DATA_FAILED`,t[e(885)]=e(885),t[e(452)]=e(452),t[e(1186)]=e(1186),t[e(1021)]=e(1021),t[e(666)]=e(666),t))(_e||{}),ve=(t=>(t[t[e(1442)]=100]=`P100`,t[t.P200=200]=`P200`,t[t[e(466)]=300]=e(466),t[t[e(1055)]=400]=e(1055),t[t[e(1094)]=500]=e(1094),t[t[e(790)]=600]=`P600`,t[t.P700=700]=e(1084),t[t[e(1254)]=800]=`P800`,t[t.P900=900]=e(1138),t[t[e(1251)]=1e3]=e(1251),t))(ve||{}),ye=class t{constructor(t={}){Object[e(679)](this,t)}static fromJson(n){let r=e,i={GVIhu:function(e,t){return e(t)},gMakW:r(805),LFYWQ:r(1342),ghhWE:function(e,t){return e(t)},uqTys:r(1040),cJGAR:r(678),LcmKD:r(441),AILID:function(e,t,n,r,i){return e(t,n,r,i)},eCkQz:r(1338),XHVKQ:r(582),BsBir:`ItemName`,LhgPW:`Item_Name`};return new t({itemCount:i[r(596)](g,m(n,r(317),i[r(1120)],i.LFYWQ)),itemWidth:i[r(1368)](g,m(n,i[r(1283)],i.cJGAR,i[r(720)])),isItemSelectBorderEn:g(i[r(477)](m,n,r(1035),r(1418),i[r(1351)])),itemName:m(n,i[r(1065)],i[r(657)],i[r(396)])})}static toJson(n){return n?{nvRPU:function(e,t){return e instanceof t}}[e(1148)](n,t)?n.toJson():new t(n).toJson():{}}[e(348)](){let t=e,n={MTYMD:function(e,t,n){return e(t,n)},Mbdwu:function(e,t){return e!=t}};return n[t(836)](c,{},n[t(1068)](this,null)?this:{})}},be=class t{constructor(t={}){Object[e(679)](this,t)}static fromJson(n){let r=e,i={BceHd:r(1008),sbaOD:`ItemContainer`,tjCTT:r(1155),TUAxl:function(e,t){return e(t)},FrFtg:function(e,t,n,r,i){return e(t,n,r,i)},uBvEJ:r(852),glonr:r(1389),eJYws:r(812),BBhBq:`Y_Position`,vQPsn:r(898),OvycO:r(1018),AJLYy:function(e,t,n,r){return e(t,n,r)},ahTtm:r(1083),rmYKF:r(693),atJLB:r(1250),iGfhW:function(e,t){return e(t)},CRrrz:r(987),pJysY:r(1216),ioxCf:r(930),AmIEE:function(e,t){return e(t)},FxCah:r(447),hKGBe:`BorderRadius`,lXMTL:r(1307),YwszE:function(e,t){return e(t)},haLpa:`paddingLength`,RWyJg:r(1179),RNKEl:`containerID`,vwfZc:r(854),Uxori:function(e,t){return e(t)},dasXI:r(1011),STNDy:r(734),fYMxT:function(e,t){return e(t)},JrwDz:r(1012),JBqDj:r(563),WietT:r(1075),rYKFs:r(1300),BUyIw:`Z_Order_Index`},a=m(n,i.BceHd,i[r(883)],i[r(974)]);return new t({xPosition:i[r(387)](g,i[r(740)](m,n,i[r(1232)],`XPosition`,r(338))),yPosition:g(i.FrFtg(m,n,i.glonr,i[r(1209)],i.BBhBq)),width:g(m(n,i.vQPsn,i[r(922)])),height:i[r(387)](g,i[r(695)](m,n,i.ahTtm,i[r(418)])),borderWidth:g(i[r(740)](m,n,i[r(428)],r(344),r(617))),borderColor:i[r(409)](g,m(n,i.CRrrz,i.pJysY,i.ioxCf)),borderRadius:i[r(534)](g,i[r(740)](m,n,i[r(1159)],i[r(349)],i[r(435)])),paddingLength:i[r(802)](g,m(n,i[r(524)],r(432),i[r(590)])),containerID:i[r(409)](g,i[r(740)](m,n,i[r(1311)],i.vwfZc,`Container_ID`)),containerName:i[r(1265)](_,i.FrFtg(m,n,r(1233),i[r(1004)],i[r(960)])),itemContainer:a?ye.fromJson(a):void 0,isEventCapture:i[r(914)](g,i[r(740)](m,n,i.JrwDz,i.JBqDj,i.WietT)),zOrderIndex:i[r(409)](g,m(n,`zOrderIndex`,`ZOrderIndex`,i[r(574)],i[r(1322)]))})}static toJson(n){let r=e;return n?n instanceof t?n[r(348)]():new t(n).toJson():{}}[e(348)](){let t=e,n={VImgJ:function(e,t,n){return e(t,n)},maggA:function(e,t){return e!=t},gJzch:function(e,t){return e!=t}};return n[t(1196)](l,c({},n[t(1308)](this,null)?this:{}),{itemContainer:n[t(921)](this,null)&&this.itemContainer?ye.toJson(this[t(1008)]):void 0})}},b=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={pJvcp:r(525),scBek:r(338),qZyOW:function(e,t){return e(t)},HaKpx:function(e,t,n,r,i){return e(t,n,r,i)},OIKFS:r(1389),axNwl:function(e,t){return e(t)},crkrA:function(e,t,n,r){return e(t,n,r)},NteDN:r(1018),HHdCz:function(e,t,n,r){return e(t,n,r)},mZwBI:r(1083),VZVaV:r(693),DqMPI:function(e,t){return e(t)},FcBBf:function(e,t,n,r,i){return e(t,n,r,i)},PulBW:`borderWidth`,phiZe:`Border_Width`,GKzxk:r(987),KVCRj:function(e,t,n,r,i){return e(t,n,r,i)},bFWoh:r(447),XnJwG:`BorderRadius`,uIQpU:r(1307),GcTLw:r(1167),CsmPJ:r(1179),xTfff:function(e,t,n,r,i){return e(t,n,r,i)},xOqVM:r(854),vnvdu:r(972),mGnsw:r(1233),nSszw:`ContainerName`,LPjOw:r(734),PlkUw:r(1012),UFDCT:`IsEventCapture`,GpWwu:r(1075),OzKCK:function(e,t){return e(t)},UJRUU:r(1036),AgIrl:r(533),DgYMU:r(1300),oITbZ:r(1277),cvmSm:function(e,t){return e(t)},zpNoX:r(1184),kfvux:function(e,t){return e(t)},bhtuN:`textColor`,UcDrM:`TextColor`,vwvEP:r(1362)};return new t({xPosition:g(m(n,r(852),i[r(988)],i[r(896)])),yPosition:i[r(318)](g,i[r(354)](m,n,i[r(1059)],`YPosition`,r(340))),width:i[r(1087)](g,i[r(780)](m,n,r(898),i[r(754)])),height:i[r(1087)](g,i[r(567)](m,n,i[r(1228)],i.VZVaV)),borderWidth:i[r(388)](g,i[r(532)](m,n,i.PulBW,r(344),i[r(1428)])),borderColor:i[r(388)](g,i.FcBBf(m,n,i[r(612)],r(1216),r(930))),borderRadius:i[r(388)](g,i[r(552)](m,n,i[r(840)],i[r(1183)],i[r(543)])),paddingLength:i[r(1087)](g,m(n,i.GcTLw,r(432),i[r(782)])),containerID:i[r(1087)](g,i[r(1102)](m,n,r(636),i.xOqVM,i[r(635)])),containerName:i[r(388)](_,i[r(1102)](m,n,i[r(623)],i[r(1208)],i[r(860)])),isEventCapture:g(i[r(1102)](m,n,i[r(820)],i[r(515)],i[r(979)])),zOrderIndex:i[r(361)](g,m(n,i[r(1431)],i.AgIrl,i.DgYMU,i[r(504)])),content:i[r(1224)](_,m(n,`content`,i[r(1172)])),textColor:i[r(1052)](g,i[r(354)](m,n,i[r(486)],i[r(1027)],i[r(1069)]))})}static[e(348)](n){let r=e;return n?{pXftG:function(e,t){return e instanceof t}}[r(378)](n,t)?n[r(348)]():new t(n)[r(348)]():{}}[e(348)](){let e={VxfRX:function(e,t,n){return e(t,n)},lIUUC:function(e,t){return e!=t}};return e.VxfRX(c,{},e.lIUUC(this,null)?this:{})}},xe=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={FrZha:function(e,t){return e(t)},QYyzO:r(852),axTMu:`XPosition`,wIvIx:r(338),NKhJE:function(e,t){return e(t)},rikVf:function(e,t,n,r,i){return e(t,n,r,i)},OXKdL:r(340),ljkVL:function(e,t,n,r){return e(t,n,r)},GWjmr:r(898),PfzHj:function(e,t,n,r){return e(t,n,r)},kXjpG:r(693),epgAX:r(636),lpDIZ:r(854),MRKIz:r(972),zFoLz:function(e,t,n,r,i){return e(t,n,r,i)},hnFkb:r(734),GpRxT:function(e,t,n,r,i,a){return e(t,n,r,i,a)},vNYEH:r(1036),wjOhL:r(533),tnieM:r(1300),lkldn:r(1277)};return new t({xPosition:i[r(1317)](g,m(n,i[r(1157)],i[r(608)],i.wIvIx)),yPosition:i.NKhJE(g,i[r(561)](m,n,r(1389),r(812),i.OXKdL)),width:i.NKhJE(g,i.ljkVL(m,n,i[r(923)],r(1018))),height:i[r(1317)](g,i[r(1062)](m,n,`height`,i[r(529)])),containerID:i[r(1317)](g,i.rikVf(m,n,i[r(682)],i[r(680)],i[r(501)])),containerName:_(i[r(845)](m,n,r(1233),`ContainerName`,i.hnFkb)),zOrderIndex:i[r(1319)](g,i[r(925)](m,n,i[r(1230)],i[r(708)],i[r(411)],i[r(721)]))})}static[e(348)](n){let r=e;return n?{pmPGy:function(e,t){return e instanceof t}}[r(401)](n,t)?n[r(348)]():new t(n)[r(348)]():{}}[e(348)](){return c({},{kHktH:function(e,t){return e!=t}}[e(364)](this,null)?this:{})}};e(954),e(348),e(348);var Se=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={YphMI:function(e,t,n,r,i){return e(t,n,r,i)},vDyWJ:r(913),IJkZy:r(967),PHcxt:r(1016),lWqfK:function(e,t){return e(t)},TUGyX:function(e,t,n,r,i){return e(t,n,r,i)},fxoIx:r(854),VGAxT:function(e,t,n,r,i){return e(t,n,r,i)},DmzKW:r(1011)},a=i[r(562)](m,n,i[r(1394)],i[r(663)],i.PHcxt);return new t({containerID:i[r(571)](g,i[r(876)](m,n,`containerID`,i.fxoIx,r(972))),containerName:_(i[r(986)](m,n,r(1233),i.DmzKW,`Container_Name`)),imageData:t.normalizeImageData(a)})}static[e(348)](n){let r=e;return n?n instanceof t?n.toJson():new t(n)[r(348)]():{}}static[e(600)](t){let n=e,r={PwjGm:function(e,t){return e!=t},NHBXe:n(559),IfYGB:function(e,t){return e==t},zyIUS:n(1339),fOwnx:function(e,t){return e instanceof t}};if(r.PwjGm(t,null)){if(n(559)===r[n(357)]){if(r[n(1185)](typeof t,r[n(1242)]))return t;if(Array[n(1131)](t))return t.map(e=>Number(e)&255);if(r[n(632)](t,Uint8Array))return Array[n(1205)](t);if(t instanceof ArrayBuffer)return Array[n(1205)](new Uint8Array(t))}else return{uid:this[n(1037)],name:this[n(1268)],avatar:this.avatar,country:this[n(713)]}}}[e(348)](){let t=e,n={ZWhsa:function(e,t,n){return e(t,n)},zQdqG:function(e,t){return e!=t},fugei:function(e,t){return e(t)},STuCx:function(e,t){return e==t}};return l(n[t(362)](c,{},n[t(953)](this,null)?this:{}),{compressMode:2,imageData:n.fugei(ce,n[t(1201)](this,null)?void 0:this[t(913)])})}},Ce=32,we=class t{constructor(e={}){Object.assign(this,e)}static[e(954)](n){let r=e,i={JEodT:r(582),GfqVB:`ItemName`,NAfew:function(e,t,n,r,i){return e(t,n,r,i)},arDrh:r(1064)};return p(n)?new t({itemName:y(n,i[r(735)],i[r(1129)],r(1136)),itemID:i[r(565)](v,n,i[r(1378)],r(1210),r(862))}):new t}static toJson(n){let r=e;return n?{MMgjF:function(e,t){return e instanceof t}}[r(981)](n,t)?n[r(348)]():new t(n)[r(348)]():{}}[e(348)](){let t=e;return{itemName:this[t(582)],itemID:this[t(1064)]}}},Te=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={ZSmeb:function(e,t){return e!=t},gpDNH:function(e,t,n,r,i){return e(t,n,r,i)},KyOkx:r(1413),NhGSS:`Menu_Items`};var a;if(!p(n))return new t;let o=i[r(1386)](a=i.gpDNH(h,n,i[r(620)],r(911),i[r(700)]),null)?a:[];return new t({menuItems:Array.isArray(o)?o[r(719)](we[r(954)]):[]})}static toJson(n){let r=e;return n?{qMibv:function(e,t){return e instanceof t}}[r(1066)](n,t)?n[r(348)]():new t(n)[r(348)]():{}}toJson(){let t=e,n={hkjkX:function(e,t,n){return e(t,n)},wsYlu:function(e,t){return e!=t},mskJS:function(e,t){return e==t}};var r;return n[t(1082)](l,n.hkjkX(c,{},n[t(481)](this,null)?this:{}),{menuItems:n.mskJS(r=n[t(1026)](this,null)?void 0:this[t(1413)],null)?void 0:r[t(719)](we[t(348)])})}},Ee=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={IDQdO:function(e,t){return e(t)},ZuPZw:function(e,t,n,r,i){return e(t,n,r,i)},IsiYw:r(1064),CqQJY:r(1210),mCaLN:r(862)};return i[r(557)](p,n)?new t({itemID:i[r(788)](v,n,i.IsiYw,i.CqQJY,i[r(332)])}):new t}static[e(348)](n){let r=e;return n?{xoXVf:function(e,t){return e instanceof t}}[r(857)](n,t)?n[r(348)]():new t(n)[r(348)]():{}}[e(348)](){let t=e,n={geifl:function(e,t,n){return e(t,n)},QrBex:function(e,t){return e!=t}};return n[t(350)](c,{},n[t(971)](this,null)?this:{})}};function De(t){let n=e,r={dbCzw:function(e,t){return e!=t},sOMXN:n(1019),GdhQb:function(e,t){return e(t)},luIpR:function(e,t){return e(t)}};return r.dbCzw(typeof TextEncoder,r[n(1125)])?new TextEncoder()[n(1149)](t)[n(405)]:r[n(556)](unescape,r[n(598)](encodeURIComponent,t))[n(405)]}function Oe(t){let n=e,r={kChoo:function(e,t){return e===t},pbHMU:function(e,t){return e(t)}};return r.kChoo(t,void 0)||r[n(325)](De,t)<=Ce}function ke(e){let t={YlZmc:function(e,t){return e>t},mgsiZ:function(e,t){return e<=t}};return Number.isInteger(e)&&t.YlZmc(e,0)&&t.mgsiZ(e,4294967295)}function Ae(t){let n=e,r={eUoRE:function(e,t){return e==t},AuCSQ:function(e,t){return e>=t},BwNXk:function(e,t){return e<=t}};return r[n(320)](typeof t,n(903))&&Number[n(996)](t)&&r.AuCSQ(t,0)&&r[n(1058)](t,4)}var je=class t{constructor(t={}){Object[e(679)](this,t)}static fromJson(n){let r=e,i={NmloO:function(e,t,n){return e(t,n)},gypCK:function(e,t){return e!=t},cdKqN:r(854),Fobvs:`Container_ID`,BLWqD:function(e,t){return e(t)},lQtuO:function(e,t,n,r,i){return e(t,n,r,i)},RmMoz:`containerName`,mIbeE:`ContainerName`,EBOJc:r(734),ChRcG:function(e,t,n,r){return e(t,n,r)},qhGUm:`contentOffset`,KoMRb:`ContentOffset`,EWibc:`contentLength`,yBOaQ:`ContentLength`,SAhVf:function(e,t){return e(t)},eFXZr:function(e,t,n,r){return e(t,n,r)},xOYaW:r(1184),OFgDf:function(e,t){return e(t)},BDYur:r(544),hDsVb:r(665),Ybcvh:r(1362)};return new t(i[r(847)](l,c({},i[r(907)](n,null)?n:{}),{containerID:g(m(n,r(636),i[r(415)],i.Fobvs)),containerName:i[r(978)](_,i[r(480)](m,n,i.RmMoz,i[r(1432)],i[r(1316)])),contentOffset:i[r(978)](g,i[r(1137)](m,n,i[r(1376)],i[r(1313)])),contentLength:g(i[r(1137)](m,n,i[r(781)],i.yBOaQ)),content:i[r(315)](_,i.eFXZr(m,n,r(1105),i[r(709)])),textColor:i.OFgDf(g,i[r(480)](m,n,i.BDYur,i[r(577)],i[r(457)]))}))}static[e(348)](n){let r=e;return n?{tCihU:function(e,t){return e instanceof t}}[r(1229)](n,t)?n[r(348)]():new t(n).toJson():{}}toJson(){return{gtXun:function(e,t,n){return e(t,n)}}[e(369)](c,{},this==null?{}:this)}},Me=(t=>(t[e(539)]=e(1025),t[e(827)]=e(681),t[e(579)]=e(323),t[e(454)]=e(1116),t[e(395)]=e(940),t[e(1152)]=e(1341),t[e(744)]=e(1417),t[e(956)]=e(1261),t))(Me||{});function Ne(t){let n=e,r={ktifc:n(616),EWTMZ:n(773)},i=[];return[r[n(548)],r[n(794)],`imageObject`].forEach(e=>{let r=n;var a;(a=t[e])==null||a[r(379)]((t,n)=>{i[r(1043)]({kind:e,index:n,zOrderIndex:Pe(t)})})}),i}function Pe(t){let n=e,r={evCbc:function(e,t){return e!=t},kTyhs:function(e,t){return e!=t}};var i,a;let o=t;return r[n(627)](a=r[n(909)](i=o[n(1036)],null)?i:o[n(1300)],null)?a:o[n(1277)]}function Fe(){let e=`B0fcuxK.C3nUwgO.DMPQB3e.sxnFsxrLBv9tzwXLy3rFqM9YzgvYx0vU.C3rYAw5N.EuT5rhi.rfvqteLdqvrfx01ftLvFsvrftv9jra.sxrLBv9dB3vUDa.uwDdswW.DxPwCw0.C2HHzg93lxrPBwvYoG.zKDgCwe.Dgv4DenVBNrHAw5LCLvWz3jHzgu.ufHrswy.x3jLywr5.vMLjtvu.zunRuxO.vgvZyLK.zgLZCgf0y2HfDMvUDa.C3vJy2vZCW.yuDKsK0.sgPjwgG.AgfUzgXLrxzLBKH1yKv2zw50q2HHBMDLza.AgfZt3DUuhjVCgvYDhK.D2Djtg4.qNHIvLi.z1nxv3m.vgv4Df9dB2XVCG.uxv1zLK.thbivgO.C3bSAxq.C3rVCefWCeXVy2f0Aw9UvxbKyxrLCW.Dhj5rNjVBuPZB24.z2HOv0u.CfvNqMO.CMvWB3j0rNjX.ufrOthy.D2zgtu0.uKLorW.DhjyA0W.Aw5JBhvKzxm.CwHhvw0.ve9vq0HFrvzftLrFrLjptv9ssu5h.yxjeCMG.uLfmA3i.CMvZB2X2zq.tgTLwhi.rgLZy29UBMvJDgvK.t3flq3y.vgv4DenVBNrHAw5LCLvWz3jHzgu.q0Xjq0TFrvzftLq.wLnTzwi.rgnmzvK.v2LKz2v0swq.EvbVC2L0Aw9U.vwjvu3u.DMfSDwvdB2rL.vK9Mv1y.Aw1Hz2v0B2DYyxLMywLSzwq.DKr5v0O.whfvrxi.B3v6B0u.uxPNELm.EgvJwvi.zuzVA1G.rxzLBKfWCejYAwrNzq.y2fSBeHHBMrSzxi.zKrxrwm.x190AwnRu2HHzg93vgLTzxjZ.EvDzDva.C2vUzgzHAwXLza.reHlALa.vxrcBgm.Ew9ereW.Bg93.tffzt2S.DK1dAeS.C2v0sw50zxj2ywW.BwvUDuL0zw1Z.vwPpvxe.DgLTzxn0yw1Wtxm.yMf0DgvYEuXLDMvS.su5wquXjrf9nru5vx0Luru1FtKfnrq.sxnjDgvTu2vSzwn0qM9YzgvYrw4.Aw1Hz2vpyMPLy3q.r0Xbu1nfu19m.C0zVzw4.r1rNqvC.BgLZDgvUx2v2zw5FyxbWx2rHDge.vvrTA00.sfnqqvK.v2LKz2v0x0Le.rMjLuMm.CgHPwMu.svfUrMG.r3zWseW.vuPsvvu.BuLIzuu.zLjprfq.uMvnsee.tLf2wuS.vvjjD3i.DvLVEgS.EgPmyMq.Bw9KzwW.C2vUzezHAwXLza.DvLeDwe.udeWma.uNDmvMK.su9uyLy.BgnUwKG.AwvQve0.AKjnu28.C3rYAw5NAwz5.tgzIruG.u0fOvMy.BMj0rNG.AxrLBunVDw50.CvP5t1C.vKvtvNa.zvvVuKu.wKDNrwy.tMHrrhK.rfvqteLdqvrfx1PFt1jervjFsu5ervG.Bhjbzu4.Cgjitvu.x2XPC3rLBKv2zw5bChbnzxnZywDL.EuHSrgO.ChjVDg90ExbL.rgjRzKi.wKvitMG.EeXsBuS.BunHte4.DhzUA3q.txfuDxi.r29lrMG.EwPLtLu.CgfYC2u.wf9qB3nPDgLVBG.u0nst0Xmx1rpuf9fvKvova.wv9qB3nPDgLVBG.zNjVBvn0CMLUzW.AxnhBgfZC2vZ.BM9Uzq.qM9YzgvYv2LKDgG.t2DTB3u.EuPOExa.Bg5xsNm.Dg9kC29U.AeThqMu.z2vPzMW.rgjgwKK.y2fWDhvYzuLTywDLrNjVBunHBwvYyq.CgHVBMu.sgflChG.uvrRrei.rxzLBNruExbL.tKHcwgu.BwfWu2vZC2LVBKLK.qNbPyKy.tNfnyKW.t3Plq0S.wLDOC2e.ywX0Axr1zgu.A0HRDeG.uuDwDxC.rhLOzuq.BffjyMe.ExrXCxG.z3ryDw4.Aw1Hz2vuB0DYyxK0rMfPBgvK.v1vesfu.q3vYCMvUDfnLBgvJDf9jDgvTtMfTzq.y29UBMvJDgvK.ufbRDvq.AgvHzgLUzW.EKrUwwy.tMnHB1C.CfHMDeC.zM9YrwfJAa.Aw1Hz2vfEgnLChrPB24.swrSyM4.thjkC2e.DwLnwgK.BgHyA2C.tM9Uzq.y3DPrum.vfvbEgW.rhfnueK.su1vx0rHDge.Aw1Hz2vtAxPLsw52ywXPza.CK1OAMi.su1vx0rbvefFuKvqt1ju.Aw1Hz2v0B2DYyxK0zMfPBgvK.ugLJA0LTywDLrNjVBufSyNvT.sw52ywXPze1LBNvjDgvTsuq.tgHNufC.y3jLyxrLu3rHCNrvCfbHz2vdB250ywLUzxi.CLvQC3q.vLfTrg4.s09ytLy.Cg1qr3K.wffhy1y.te9or19quKvtu19sruXfqvnfx0vwru5u.uhDsBLe.BgvUz3rO.vNvqq1G.z3Psq00.y2HHCKnVzgvbDa.AuDMAfC.qvbqx1jfuvvfu1rFvvbhuKferv9urvHux0rbvefFrKfjteve.Dg5Pzu0.txz5teG.AxndB25Uzwn0zwq.DKPjt3u.y2rlCu4.veflDuK.rxrKtKe.CM1zs0y.tgLZDf9pyMPLy3q.BgLsufa.z2v0qxbWtg9JyxrPB24.v1j1DwO.Bfv2swG.igr1CgXPy2f0zxmGDg9WlwXLDMvSigL0zw1jrca.u0nst0Xmx1rpua.shn6Egm.qu9AEg0.yxrktei.Aw1Hz2vLEgnLChrPB24.z0zXuKO.zgvIDwC.ugfKzgLUz0XLBMD0Aa.v01yr08.ExnbyKC.BfHnveW.qNzgBeu.BurPBKC.wvvdyNK.swDfEKK.Cg9ZDe1LC3nHz2u.sxrLBv9xAwr0Aa.mtKYnJmYodbnqLjPDMG.BwvUDu9IAMvJDa.wMPvsNy.vgjjrKG.B3v0x29Mx21LBw9YEq.yM9YzgvYuMfKAxvZ.B0rJtKi.yMXHA1O.qvbqx1jfuvvfu1rFvvbhuKferv9urvHux0rbvefFu1vdq0vtuW.BgLZDev2zw50.qvbqx1jfuvvfu1rFvvbhuKferv9tsfvure9xtL9gquLmruq.AxnjBwfNzvrVr3jHEtrgywLSzwq.vg9VtwfUEu1LBNvjDgvTCW.q0Xjq0S.Cw9IBKO.wwjJDMG.quzQB2i.qxvKAw9dB250CM9S.quXMB3G.vMXTuMy.BgHhvgC.vuv5DLy.yuD3AKO.nduWntqYn1zuyLL6sa.udmWma.zxzLBKH1yKv2zw50.rKH3Dhi.te9or19quKvtuW.B25fDMvUshvIrxzLBNq.zvzyBei.B2jQzwn0.ze50tgq.wgrSqNC.zLjyCxy.yMfZzty0.quLmsuq.tgLZDgvUrxzLBKfWCe5VDgLMEq.tKvjwxG.Bff0Du8.D3nzBhu.vK5UteS.Aw5ZDgfUy2u.zKfUv0S.yKDhuuO.yMH0Du4.B2H0DgW.DeDyCvq.BxHks2O.rfjJre0.thL6r2m.Bu9tv2u.zgvSyxK.B3zLCNnPEMu.CfPkvwu.rePvA0i.yu93vKu.zNvUy3rPB24.shHUuxq.BwvKAxvT.tvjlsxO.qxbWtg9JyxrPB25dAgfUz2vK.AM9IvMO.B0LuyLO.uunYu2C.qvbqx1jfuvvfu1rFuKvcvuLmrf9qquDfx0zbsuXe.AxndAgfYz2LUzW.rxjVrLq.zuj1BNy.zgLZCgf0y2HszwfKEuv2zw50.twfWvg90ywXtAxPL.yxvKAw9qy20.yxL6D28.vLzSB2m.vuzeq1q.sLrAuvm.Bwf4.Dgrcz1K.A0r5Cgq.C0rgwNu.AxnqD2m.zgLZy29UBMvJDgvK.rMHzBgO.AgfmCge.wfbVC2L0Aw9U.y2XLyxjuAw1LB3v0.BwfWvg90ywXtAxPL.q2TMDva.A1HQCeC.rK9sruDst1vorf9fweLux0vwru5u.A3PQwNe.rMncqMy.wK9YzgvYsw5KzxG.qw1jruu.zxzLBKfWCe1LC3nHz2u.y2XLyxjjBNrLCNzHBa.D2zSuhq.tef5AhO.twLZC2LUz1PpCMrLCKLUzgv4.z05kD2K.Bfjgy00.u05PrNK.DuLrCfu.Dgv4DenVBg9Y.BKHetLK.CgHTEfa.twfWrNjHz21LBNrjBMrLEa.A3rPzMm.qujot1jnquXFrvHjvf9fvKvova.sgLNAa.u3rpq3C.s1zduMO.CeDOBg4.uLjIuwi.CMvTB3zLrxzLBNrmAxn0zw5LCG.r2rOuwi.surrze8.igHHCYbHBIbPBNzHBgLKigL0zw1oyw1LlIbjDcbTDxn0igjLigf0ig1VC3qGmZiGvvrgltGGyNL0zxmU.tfvHzLe.Aensv2S.CMLRvMy.wxbOtuK.sxnfDMvUDenHChr1CMu.suzeuxm.tKfMzxC.yMz1ruy.seHKq3O.yKTguwm.DgfmA2m.v0Pyv3O.BfDXzKS.z2XzsLK.q3jLyxrLu3rHCNrvCfbHz2vdB250ywLUzxi.CLLlrNm.Cgviz2q.D1nKzKe.AerZvMi.twvUDu9IAMvJDa.rhvWBgLJyxrLwK9YzgvYsw5KzxG.wNPNufm.vLPUDfe.AxrLBu5HBwu.DxHwCuK.uhHpz0u.DwT3qNe.v2DSBKK.C2v0tg9JywXtDg9YywDL.EufTzfK.yxvKAw9dB250CM9S.uLD5sMC.EMvHu2q.s01Ov0i.qvbqx1jfuvvfu1rFvvbhuKferv9jtufhrv9sqvDFrefuqv9tvundrvnt.EMTkAMq.Dg9vChbLCKnHC2u.r1zjAhu.rMnRrxa.BhvjCfi.Bxzxv2e.BM9YBwfSAxPLsw1Hz2veyxrH.DxzytLu.twfWrNjHz21LBNrqywnRzxrtAxPL.AxnjBKnHC2u.ve9vq0HFrvzftLrFrK9stv9evu1nwv9ovuXm.zfLctMy.CMvHzhK.AuTpAg8.yxHutxu.BNjZsuK.yuHVue8.DfrSwe8.r0T6EgS.wwn3Dva.yLjnveS.r0TiB0y.BgLZDe9IAMvJDa.qM9YzgvYx1DPzhrO.Cw9gzwS.zxLoA2u.s3LpA3G.yM56r0S.su1vx0rbvee.BuDUC3C.q3vnsxK.B3f3Awe.vfjusNO.zxzdyMm.vwf5zwq.wNLLChu.C2vSzG.BLHLCee.zK93BNG.rK9sruDst1vorf9ftLrfuG.C0PmDfu.DM52zhu.y29UDgfPBMvYsuq.sgjPreO.D2fYBG.s0P3Du0.zgD1vem.BgPVrfu.twfWuMf3rgf0yq.zuTdzhG.su1vuMvWB3j0rw4.C3LZrxzLBNq.t3jTCxK.yNH1thy.wuz4qLq.Exfqse4.Avnltxy.u3rVCefWCeXVy2f0Aw9UvxbKyxrLCW.su1vrgf0yq.DLDSz3e.su1vuMvWB3j0rw5tDgf0Dxm.vhnjCxe.q2Xlse4.qNncAxi.zgv2AwnLu3rHDhvZq2HHBMDLza.Aw11uMvWB3j0rw5tDgf0Dxm.ugDwwfy.BKTosum.sKXoq20.suPRwNK.shjjsha.vgv4DenVBg9Y.qvbqx1jfuvvfu1rFqvvesu9Fq1rsx0zbsuXfra.z2XHC3nLCW.zNjVBuLUDa.rwrrsgG.CMvIDwLSzfbHz2vdB250ywLUzxi.u1rWzKK.qLHzALy.u09ez0C.ywfRwgC.BfjWsLy.wgTPwvC.y2XLyxjLza.sxrLBvDPzhrO.yxnZAwDU.BhbesvO.su5wquXjrf9Ax09srevsx0Lorevy.zxbNqvG.vejJrfe.zurjEg4.q2frA2u.z2vUzxjHDgLVBG.B3rOzxi.wwPvtMq.u3vrs2W.wLDvAuu.s015Bvm.rK9sruDst1vorf9ftLrfuL9fvKvova.sgvPz2H0.sw11q29UDhjVBa.quPmwxK.D2fuC3i.A1LxyLi.DMLhtg8.q2zWEgm.tMHhu1m.yxvKAw9tB3vYy2u.vvbsy2q.y3jLyxrLrgvMyxvSDa.rfPeBLG.qwLAvxu.ugDivu4.Dhr1C2u.D2PpAeW.Ee9zyvC.rhngBNq.vMTQAu0.tvj2suq.y291BNrYEq.y29UBMvJDgLUzW.wKPlCgm.qNv0CNe.qxj5CeK.vgT4AwW.BwfW.tgnTs0q.BgTSzg4.u0nst0Xmx0jpvfrptv9fvKvova.ugHVBMu.sMPnv0C.C2v0sw50zxj2ywWGAwq9.AxnxzwfYAw5N.mZmYotrwzwP0zue.C3rHDhvZ.yKXzuMW.vNnrwvu.A0LMreK.C1rtrhu.z3DXy0C.q29UDgfPBMvYx05HBwu.sKvVzfq.sef1B2S.BujeC1a.C291CMnL.DNr0CeK.rNjgDgC.A0r1BK0.nwL5CerNrW.uMf5wu8.sw52ywXPze1LBNvjDgvTtMfTzq.DgDSy08.yLHAq0W.zxzLBNruExbL.u1Ltvevnx0vysvrFrvzftLq.qwjure8.zgv0ywLS.u3LZDgvTrxHPDfjLyxnVBKnVzgu.ENzsthK.B0LIwgy.tNrLre4.AgfUzgXLqxbWtg9JyxrPB25dAgfUz2vK.Aw1Hz2vZAxPLAw52ywXPza.uwf1Dgm.ChjVCgvYDhLjC0vUDw1LCMfIBgu.CwvtDNi.BwfWuMf3rgf0yq.ywnHzM4.vMfjqwe.zwXxC2K.ugrjtha.tfj1rKe.sLjXzNa.x19fvKvox0HvqL9bufbFsurFxW.B3v0t2znzw1VCNK.q2fSBev2zw5bChbnzxrOB2q.sKnWBhC.q3vYCMvUDfnLBgvJDeL0zw1oyw1L.igrLBgf5pq.Dgv4De9IAMvJDa.q3v3BeO.w0v2zw5bChbcCMLKz2vDiejYAwrNzsbPBML0AwfSAxPLza.ve9vq0HFrvzftLrFrLjptv9evu1nwv9ovuXm.BMf0AxzLswq.Bu9rq1O.ufnLCKC.y3jRCKe.rvDPyMm.q3nTueO.vMvPvKe.yxbWtg9JyxrPB25dAgfUz2vK.AxLLDxa.twXvC1C.t2rODw8.wNvqwNC.AgLNAa.udyWma.se1orNC.zu16vve.A3LdteS.rvDutvO.ve9vq0HFrvzftLrFrLjptv9hteftu0vtx1i.qvbqx1jfuvvfu1rFq1jfqvrfx0LovKfjterFq09ovefjtKvs.tvD5Ava.twfWu2vZC2LVBKLK.z2v0t3DUuhjVCgvYDhLtEw1IB2XZ.C2vtsLC.ve9vq0HFrvzftLrFrLjptv9hteftu0vtx0W.wxDZEKu.twfWx0zYywDTzw50x1bHy2TLDf9tAxPL.qNbsBuS.sxrLBunVDw50.Au1vuMvWB3j0rw5tDgf0Dxm.BNfNq0i.zvLUCgK.CuvJq2y.uMvWB3j0rNjX.BwvUDu9IAMvJDcbOyxmG.wvbVC2L0Aw9U.EfrSwNK.mZq3mJeYDurgEvrV.uw1lwwC.CNjoBhy.Cgf5Bg9Hza.zfHOsuO.DxHxBwq.ugXRvxC.qNjPzgDLuMvHzhK.v25YANy.wMrise8.EwTcDLi.C2L6zq.ywrKrxzLBNrmAxn0zw5LCG.sw52ywXPzfPpCMrLCKLUzgv4.DuTUvuy.BwvUDuL0zw1dBgLJA0v2zw50.Cg94CNm.zwjduhq.q2fWDhvYzuLTywDLrNjVBunHBwvYyq.D05cvw0.z2v0vxnLCKLUzM8.w0v2zw5iDwi6su5wquXjrf9urvHux0jssuDive5fu1nDihrLEhrdB2XVCIa.tvrztuq.veT3v1y.rKvmBg0.ALvjsMe.yKzxB2G.y1ngtuW.B25myxvUy2HtB3vYy2u.A2Dszge.C2v0.EKzVthO.tLLKvMS.tM1SB08.ruPovvK.BefgEgC.sKvhAhC.rMHQwfC.EfbVC2L0Aw9U.ug1ls2S.q29UDgfPBMvYsuq.Ew5vsKK.qvbqx1jfuvvfu1rFvvbhuKferv9jtufhrv9sqvDFrefuqv9gquLmruq.Eg9yvMy.B0rcAKK.Aw1Hz2vFDg9Fz3jHEtrFzMfPBgvK.tfbQt3C.vvrRt2m.sxrLBv9jra.r0Try2q.zxzLBNrtB3vYy2u.tuzktNK.vKX3wvq.CLjMtu0.BMLtu3i.y3fOCeq.t2DVyxe.zMPfrwK.te9or19quKvtu19fvKvova.wgPysKG.sKfMufC.yxzHDgfY.vfvhEvG.r1bMEMy.rMHcvfO.A2LUza.B1jsEMW.q3vYCMvUDfnLBgvJDf9jDgvTsw5KzxG.B1zkBhC.C2jHt0q.qvbqx1jfuvvfu1rFq1jfqvrfx09wrvjtsvPfx1jfu1bptLnfx0nptLrbsu5fuG.qvbqx1jfuvvfu1rFvvbhuKferv9tsfvure9xtL9tvundrvnt.z0z2wg4.ntaWnJeXmK5dqxjwDa.CMvWzwf0.CvLMvLK.zg9Uzq.qNzUD3q.BM9YBwfSAxPL.tLP4wxK.C3LZDgvTrxHPDfjLyxnVBKnVzgu.B01ZzeG.C2nczwS.zgvMAw5LuhjVCgvYDgLLCW.D2LKDgG.weTXBKy.vgjhzNC.y29UBMvJDgLVBKzHAwXLza.rKLSuLm.BNvTyMvY.q1ruzeG.C3bLywTLCLjVBgu.vKv3zNq.z3LWq0S.zxzLBKfWCejYAwrNzvjLywr5.A1r5Ahm.DhnJv0q.twvUDuL0zw1Z.rMfptLm.Aw1Hz2veyxrH.zLLnEfq.rxzLBKH1yKv2zw50.tuzlvKq.Aw5KzxG.C2TPCe5LEhrtAgfKB3DuAwnR.mZLxu0XUu1y.w1nOywrVD1rPBwvYC10.z0P6y2G.t3z5y08.r1DQBxi.DgLTzxn0yw1W.r3bsEfq.zgfYshm.BxD4AeG.AxnsAw5N.z3nfANq.qM9YzgvYx0nVBg9Y.rxzLBNrFvhLWzq.AxngAw5PDgu.uMvIDwLSzfbHz2vdB250ywLUzxi.zgvSzxrL.qxjAzuq.reniyKi.zMjmvLq.q29UBMvJDgLVBKzHAwXLza.zxHPDe1Vzgu.su5wquXjrf9nru5vx0Luru1Fsuq.rMHJthq.v3D3EwS.qNP6rgy.sMDhweO.DNftCwy.vvnzDeC.rfvntvLFtLvmta.tevuC2e.Duz0AKq.u25ls1u.B25ezxzPy2vtDgf0DxndAgfUz2vK.BwLTzq.ELfKCuC.zNjVBuPZB24.zvfizKm.sw52ywXPzfrLEhrcCMLNAhrUzxnZ.CMjuswK.AvblzwS.u1nVsNi.u1rorhK.qK5UwuG.mte2mdCXmM9zuuToCq.zKLQBNC.vLbZtxm.Aw1Hz2v0B19NCMf5ngzHAwXLza.y29Kzq.sw1Hz2veyxrH.q05lrwu.BeTNthm.BuTVv3G.uxjczxG.q29UDgfPBMvYx0Le.qNfOr3i.DgPdvfq.AxDcDxu.DMfSDwvZ.ANvitwe.qKXxCuq.r3bxD3u.z2v0.tu1NAKy.q1fjDxq.D0X6sg0.igLZig1PC3nPBMCGEK9YzgvYsw5KzxGGD2HPBguGyw5VDgHLCIbJB250ywLUzxiGB24GDgHLihnHBwuGCgfNzsb1C2vZigL0lG.Dgv4Dev2zw50.vKDbEfq.yM9YzgvYq29SB3i.CeP2y3a.rhfcuMS.AwzgC3u.u3Dsv1i.C2v0vgLTzw91Da.r2v0tg9JywXtDg9YywDL.yKnmCu4.r2v0r2XHC3nLC0LUzM8.AxnjBNrLz2vY.uxHdy1i.DMfSDwu.rwDiyLi.Ag1OCNa.ogfAqMzpAW.sercuwe.BNDgy2S.zgfZweK.Aw11rgf0yq.tgTkswS.wNHYvhy.AxrLBunVBNrHAw5LCG.uwzSD1a.vxHjCfu.q29UDgfPBMvYtMfTzq.AxnfDMvUDenHChr1CMu.DgHLBG.De5Lvhq.rMPryM0.sw1Hz2vFrgf0yq.y3zhww0.v2LKDgG.Dw5KzwzPBMvK.qvbqx1jfuvvfu1rFq1jfqvrfx09vve9gtuvnt1jzx0nptLrbsu5fuG.qvbqx1jfuvvfu1rFqvvesu9Fq1rsx1nvq0nfu1m.D1f3vwe.DM5KDKG.zMX1DhrLCL9PBMfWChDLyNzPzxC.tuLtu0Lor19Ax09srevsx0Lorevy.BxnRsLm.vwneCK0.C2vhv0i.B25uqw0.zKfcA3K.yKDZvLK.q29UBMvJDgvK.ANnVBKrHDge.u2DHAw0.AxnjDgvTu2vSzwn0qM9YzgvYrw4.EK9YzgvYsw5KzxG.DwLK.yxj1Cu4.rvD0zhi.AxrLBvDPzhrO.sxrdyuO.sw1Hz2vFt2jQzwn0.ChvZAa.B1bmyLC.zLzlCvu.BwfWrNjHz21LBNrjBMrLEa.s3jpuLO.z2XHC3nLC01LBNu.zhfQCeW.twfWx1nLC3nPB25Fswq.Au1vrgf0yq.A2z2DxG.zNzpv3u.yxfjzee.udqWma.yxvKAw9fDMvUDa.C2H1DerVD25qywDLq29UDgfPBMvY.qNDowgS.t0LlrLm.BxmGCxvLDwvKicHXDwv1zt0.DhjPBq.ugz6sgO.s3vytve.AxrLBuLe.weHws1e.Cu1PyNy.zurgug0.twjKD3u.DND2rva.DMfSAwq.DMjNB3O.D2LKz2v0swq.sw5IqNe.Bw1mzMu.sxnFzxzLBNrFy2fWDhvYzq.zwLRs2u.whH3vNC.rgv2AwnLu3rHDhvZq2HHBMDLza.twfWx0zYywDTzw50x0LUzgv4.DwXptKm.re9vqKXfx0nmsunlx0vwru5u.AgTQA1G.AgvPz2H0.udCWma.zMDlBfq.C29Tzq.yxHoD2W.Du9YvgC.ANzmzwq.Aw11q29UDhjVBa.s3nwtNK.Aw5PDa.u2D6wxe.uduWma.DxbKyxrLsw1Hz2vsyxDeyxrH.wuX5z1u.tMjSuLa.Dg9mB3DLCKnHC2u.BM90u2v0.zMrrzfC.BuLozNC.EfrMzMy.yxvKAw8.yMLUza.y29UDgvUDa.u1Ltvevnx0vysvq.y29UDgfPBMvYvg90ywXoDw0.zxjYB3i.twfWx1rVDgfSx1nPEMu.CxbWsui.svnZuve.DLjxteG.vhfxsLC.ChnHswu.CwL3vLy.ve9px01btLLFtuvovv9jvevnuW.twvUDv9pyMPLy3q.CLL1uu8.teTgEMu.z01HA1C.vePOqw8.qLzuzKO.w0v2zw5bChbcCMLKz2vDierLDMLJzsbZDgf0DxmGy2HHBMDLzdO.u0LLrvm.C09nwe4.D2PwsNO.Cg9W.y2fSBf9LDMvUx2fWCf9TzxrOB2q.r2zXvKi.wwj4CLO.AxnbCNjHEq.ENLoywi.u0z5re4.zxDwC0u.y2fSBa.sxrLBv9oyw1L.q2Hsy0C.udKWma.vuXrCKe.u2D6sxC.wM1RvhC.AxnjBwfNzuv4y2vWDgLVBG.zwHXtwK.wgPVqwS.Exj3sLi.Au1vuMvWB3j0rw4.AgfUzgXLr2XHC3nLC1n0yxr1C0nOyw5Nzwq.BNzsufu.zw5JB2rL.t2zoqxC.CMvHzhLtDgf0zq.rhvWBgLJyxrLtwvUDuL0zw1jra.C09cwM4.EhLMv2K.sxrLBv9dB250ywLUzxi.tenxrLu.uvL5EK8.CKPQywC.rNHdywG.y2fSBev2zw5bCha.qNj3vMe.tgf1BMnOu291CMnL.z2v0r2XHC3nLC0LUzM8.C3bLzwq.Ee9tqw4.zwXVDLK.CgfKzgLUz0XLBMD0Aa.EhnHwMq.BK52tfK.yxfyCvu.D3HKqxm.ENboB1G.B3zlBNm.A3vxy2W.C3rHCNrbChbmB2nHDgLVBLvWzgf0zxm.AgfUzgXLtgf1BMnOu291CMnL.tevqvfu.reTruMe.ugfKzgLUz19mzw5NDgG.BgXeCMe.vgv4De9IAMvJDa.z1Pwy1O.wg5kD0C.q29UDgvUDa.swzzr0i.qvbqx1jfuvvfu1rFvvbhuKferv9irufsvejfqvrFuefds0vux1nvq0nfu1m.A21Kwhy.sM9lBey.z3viBgS.zKnOB2S.r2XHC3nLCW.r1vxwei.yvjXwNC.ExnuuuS.u1L2C2u.vKLTz0O.qM5vsey.r0ztuKy.Axr0thC.re9nq29UDgvUDeXVywrLza.u1r1q3G.y29UBMvJDfr5Cgu.q1nTB1u.t2vSzxm.zNjVBq.yxbWtwvUDq.z2v0tg9JywXtDg9YywDL.BLnZENC.zuPzD3m.sxrLBuLe.C3bLywTLCL9YB2XL.Afjmzhy.sfbtte4.tg5lz2e.wKX5wgy.qM9YzgvYq29SB3i.rLbMzLi.tfzzruC.CNPVsKi.ELHnCgm.zgjzthO.Dw5RBM93BG.DgHwDMS.y3zTu20.Awr4see.u2H1DerVD25qywDLq29UDgfPBMvY.BwfWrNjHz21LBNrqywnRzxrtAxPL.BvP3qKK.DenPAfu.DK5zruG.Au9Vy2q.Duj2ruO.y29UDgfPBMvYtMfTzq.BeLIvfO.v252vMW.CKvwu0C.rM9pq3K.B0DLCwy.u2vSzG.z0DurvC.AeDPveW.ENLjvvm.whDYwNy.rw90DLG.twvKAxvT.igzYB20G.DgHYB3C.D3PctK0.Cgf0Aa.yM9YzgvYv2LKDgG.udeWmda.CMvTywLUAw5N.yxbWBhK.udGWma.CNvUBMLUzW.q3Dru1e.C3LZ.Bgf1BMnOu291CMnL.u3rHCNrbChbmB2nHDgLVBLvWzgf0zxm.BgPxD1K.su5wquXjrf9urvHux0jssuDive5fu1m.ntqZnZa3nwzoCeDgsa.B0HOyKW.CeLPzuK.vxHVCMK.A1btrvG.vNHyswW.BMfTzq.EfLyr3G.z2LLqvq.yK1AC2e.D3fUy1q.EgTPvhy.w0v2zw5bChbcCMLKz2vDiev2zw5iDwiGzxzLBNq6.q29UDgfPBMvYvg90ywXoDw0.ywrK.wL9pCMrLCL9jBMrLEa.uwHLCLq.t09Xu20.uw9TD3e.y3vxqMi.CgLJA0LTywDLrNjVBufSyNvT.DxfuExm.s2TiCu0.AxnjBwfNzvnPEMvjBNzHBgLK.r0Xbu1nfu19s.C1nWtwS.yuXfzNy.u3j3D2W.rKvlr2G.CwzwANq.u0nst0Xmx0jpvfrptq.AhrWDvu.weLyrNi.Aw52ywXPza.vgv4Df9pyMPLy3q.uvndEwe.tLPXuwm.Bg5N.EL9VCMrLCL9PBMrLEa.Ewv3Cgu.u3DXswu.BMv4Da.D2LUzg93igLZig5VDcbKzwzPBMvK.igr1CgXPy2f0zxmGEK9YzgvYsw5KzxGG.zgLYzwn0Aw9U.qM9YzgvYx1jHzgL1CW.BwfNz0e.Bg9N.s3rutgi.uK5lrwW.zgvMAw5LuhjVCgvYDhK.s29nuMi.AxndB25Uzwn0Aw5N.yxvKAw9FCgnT.rujpsMm.rNjAAge.Au5Aq3m.tKTOsKu.qvbqx1jfuvvfu1rFuKvcvuLmrf9qquDfx1nvq0nfu1m.Dgv4De9IAMvJDfS.qLv5sxC.AefWr1m.zxzLBKfWCeXHDw5JAfnVDxjJzq.AxneAxnJB25Uzwn0zwq.y2zOyMu.uKXWwfK.qujot1jnquXFrvHjva.uKvmruftrq.thD5y2W.vw5RBM93BG.q21qsvK.Chb1swK.CMLUzZe`.split(`.`);return Fe=function(){return e},Fe()}function x(e,t){e-=312;let n=Fe(),r=n[e];x.QzNpyC===void 0&&(x.wvlJsf=function(e){let t=``,n=``;for(let n=0,r,i,a=0;i=e.charAt(a++);~i&&(r=n%4?r*64+i:i,n++%4)&&(t+=String.fromCharCode(255&r>>(-2*n&6))))i=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=`.indexOf(i);for(let e=0,r=t.length;e<r;e++)n+=`%`+(`00`+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)},x.koVgBx={},x.QzNpyC=!0);let i=n[0],a=e+i,o=x.koVgBx[a];return o?r=o:(r=x.wvlJsf(r),x.koVgBx[a]=r),r}function Ie(t){return t[e(879)]+`[`+t.index+`]`}function Le(t){let n=e,r={LkeXr:function(e,t){return e!=t},fdvtx:function(e,t){return e<t},EdQHh:function(e,t){return e!==t},BUyLF:function(e,t){return e(t)},IQnFh:n(1261)};var i;let a=r[n(1381)](i=t[n(773)],null)?i:[];for(let e=0;r.fdvtx(e,a.length);e++){let t=b[n(954)](a[e])[n(544)];if(r[n(669)](t,void 0)&&!r.BUyLF(Ae,t))return{valid:!1,code:r[n(1429)],message:n(1321)+e+`] has invalid textColor `+t+`. It must be an integer from 0 to 4.`}}return{valid:!0}}function Re(t){let n=e,r={XkiYW:function(e,t){return e(t)},LyzGc:function(e,t){return e===t},HAuok:`MISSING_Z_ORDER_INDEX`,YhHsp:function(e,t){return e!=t},gNJwi:n(903),qEcCf:n(681),VgqOS:function(e,t){return e(t)},VsQYU:n(323),Odhuo:function(e,t){return e(t)}},i=r[n(676)](Ne,t);if(!i[n(1086)](e=>e[n(1036)]!==void 0&&e[n(1036)]!==null))return{valid:!0};let a=new Map;for(let e of i){if(r[n(491)](e[n(1036)],void 0)||r[n(491)](e[n(1036)],null))return{valid:!1,code:r[n(736)],message:Ie(e)+n(984),container:e};if(r.YhHsp(typeof e.zOrderIndex,r[n(540)])||!Number.isFinite(e[n(1036)]))return{valid:!1,code:r[n(809)],message:r.VgqOS(Ie,e)+` has an invalid zOrderIndex. It must be a finite number.`,container:e};let t=a[n(980)](e[n(1036)]);if(t)return{valid:!1,code:r[n(730)],message:Ie(e)+n(1305)+e[n(1036)]+n(1246)+r[n(787)](Ie,t)+`.`,container:e,duplicateOf:t};a[n(844)](e[n(1036)],e)}return{valid:!0}}function ze(e){return`menuObject.menuItems[`+e+`]`}function Be(t){let n=e,r={MFKVD:function(e,t){return e!=t}};var i;return t&&r[n(916)](i=Te[n(954)](t)[n(1413)],null)?i:[]}function Ve(t){let n=e,r={ONhnh:function(e,t){return e(t)},QvXzz:n(1116),QSCya:function(e,t){return e<t},gFqRJ:function(e,t){return e===t},RLpXY:n(683),juHMa:function(e,t){return e(t)},QuufY:n(1417),glYJY:n(940),NqMbL:`DUPLICATE_MENU_ITEM_ID`};if(!t[n(443)])return{valid:!0};let i=r.ONhnh(Be,t[n(443)]);if(i.length>10)return{valid:!1,code:r.QvXzz,message:n(811)+i[n(405)]+` menuItems. The maximum is 10.`};let a=new Set;for(let e=0;r[n(1297)](e,i.length);e++)if(r[n(430)](r[n(1327)],r[n(1327)])){let t=we[n(954)](i[e]),o=r[n(977)](ze,e);if(!r[n(977)](Oe,t[n(582)]))return{valid:!1,code:r[n(1363)],message:o+n(558)};if(!ke(t.itemID))return{valid:!1,code:r[n(572)],message:o+` has an invalid itemID. It must be a non-zero integer.`};if(a.has(t[n(1064)]))return{valid:!1,code:r[n(360)],message:o+n(424)+t.itemID+`.`};a[n(1276)](t[n(1064)])}else return this[n(1349)];return{valid:!0}}function He(t){let n=e,r={isPwc:function(e,t){return e(t)},EotvX:function(e,t){return e(t)}},i=r[n(521)](Re,t);if(!i[n(1070)])return i;let a=r[n(1244)](Le,t);return a[n(1070)]?r[n(1244)](Ve,t):a}function Ue(t){return`[EvenHub:`+t[e(966)]+`] `+t.message}var We=(t=>(t[t[e(1354)]=0]=`success`,t[t[e(1295)]=1]=`invalid`,t[t.oversize=2]=e(494),t[t[e(768)]=3]=e(768),t))(We||{});(t=>{let n=e,r={oGeqf:`amsnZ`,phmxP:n(903),FbeRc:function(e,t){return e(t)},FhBTZ:`string`,JTZQS:function(e,t){return e(t)},SwRWR:`success`,VeiVA:`invalid`,YUCby:n(494),ynUJI:function(e,t){return e==t},vRWLH:n(472),hRLdv:function(e,t){return e(t)}};function i(e){switch(e){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;default:return 1}}t[n(668)]=i;function a(e){let t=n;if(t(406)===r[t(1238)])_0x52078a(_0x31cf89[t(750)]);else{if(typeof e==r[t(546)]&&Number[t(932)](e))return r[t(1427)](i,e);if(typeof e==r[t(878)]){let n=r[t(516)](Number,e);if(Number[t(932)](n))return r[t(516)](i,n);let a=e[t(1061)]()[t(1098)]();switch(a[t(1375)](`.`)?a.split(`.`).pop():a){case r[t(991)]:return 0;case r[t(783)]:return 1;case r[t(438)]:return 2;case`outofmemory`:case t(446):return 3;default:return 1}}if(e&&r.ynUJI(typeof e,r[t(1112)])){if(typeof e.index==t(903))return r[t(1427)](i,e.index);if(typeof e.value==r[t(546)])return r[t(1427)](i,e[t(998)]);if(r[t(855)](typeof e.name,r[t(878)]))return r[t(1212)](a,e[t(1268)])}return 1}}t[n(892)]=a})(We||={});var Ge=(t=>(t.success=e(1354),t[e(380)]=e(380),t[e(390)]=e(390),t[e(370)]=e(370),t[e(1440)]=e(1440),t))(Ge||{});(t=>{let n=e,r={ebCPt:n(1354),iejTM:n(380),aGwjJ:n(390),UjOUq:`imageToGray4Failed`,TRTJz:n(1440),fbLVT:function(e,t){return e===t},bLYRl:`rmKil`,WRuuj:function(e,t){return e!=t},Qautc:function(e,t){return e==t},bMZsa:function(e,t){return e instanceof t},DyheD:n(903),ittLw:function(e,t){return e(t)},LnKga:n(1339),Hszxc:`hrINO`,Ormqy:`imageexception`,RayYO:n(393),BVTfJ:n(1393),PLsuH:n(965),QlBBw:n(859),AiZUu:`object`,DZDnX:function(e,t){return e===t},xbMKp:`UUDrL`,mYGTb:function(e,t){return e==t},kDypd:function(e,t){return e(t)},Uayed:function(e,t){return e===t},tkgvs:n(316),zDnYf:n(866),uxVqI:function(e,t){return e===t},guHlk:function(e,t){return e!=t},ytqqx:n(1019),ciSdH:n(498),PwRnQ:n(467),SYvse:n(1274),BxamF:function(e,t){return e===t},cvGYm:n(345),FHwtr:function(e,t){return e===t},muBDk:function(e,t){return e!==t},vqSqf:n(1110)};function i(e){let t=n;switch(e){case r.ebCPt:return 0;case r.iejTM:return 1;case r.aGwjJ:return 2;case r[t(1414)]:return 2;case r[t(626)]:return 3;default:return 3}}t[n(1391)]=i;function a(e){let t=n;if(r[t(937)](r[t(729)],t(762)))_0x48bbb9(_0x40d601[t(1247)](_0x1fd940));else switch(e){case 0:return r[t(831)];case 1:return r[t(1446)];case 2:return t(390);case 3:return r[t(626)];default:return r[t(626)]}}t[n(668)]=a;function o(e){let t=n,i={ZfAWL:function(e,t){return r[x(422)](e,t)},nXepA:function(e,t){return r.Qautc(e,t)},fRODT:function(e,t){return r[x(1271)](e,t)}};if(r[t(757)](typeof e,r.DyheD)&&Number[t(932)](e))return r[t(1199)](a,e);if(typeof e==r.LnKga){if(r[t(426)]===`MAzwX`){if(i.ZfAWL(_0x4f3ed3,null)){if(i[t(631)](typeof _0x222bac,`string`))return _0x3656a6;if(_0x145bc3[t(1131)](_0x96ac34))return _0x56edeb.map(e=>_0x43eb0f(e)&255);if(i[t(1433)](_0x3d0b0f,_0x391c0c))return _0x458ec2.from(_0x58abe8);if(i[t(1433)](_0xe075e7,_0x3ca608))return _0x326d44[t(1205)](new _0x54b6c8(_0x388d55))}}else{let n=r[t(1199)](Number,e);if(Number[t(932)](n))return r.ittLw(a,n);let i=e[t(1061)]()[t(1098)]();switch(i.includes(`.`)?i[t(1365)](`.`)[t(1127)]():i){case r.ebCPt:return t(1354);case r[t(646)]:return r[t(1446)];case t(756):return r.aGwjJ;case r[t(743)]:case r[t(1122)]:case r.PLsuH:case r.QlBBw:return r[t(1414)];case t(1405):return r.TRTJz;default:return r[t(626)]}}}if(e&&r[t(757)](typeof e,r[t(705)])){if(r[t(704)](r.xbMKp,`nbjdA`))_0x327e20[t(679)](this,_0x3bb649);else{if(typeof e[t(917)]==r[t(366)])return r[t(1199)](a,e[t(917)]);if(r.mYGTb(typeof e[t(998)],r[t(366)]))return r.kDypd(a,e[t(998)]);if(typeof e.name==r[t(1214)])return o(e[t(1268)])}}return r[t(626)]}t[n(892)]=o;function s(e){return e===r[n(831)]}t.isSuccess=s;function c(e){return e===`imageException`}t[n(1142)]=c;function l(e){let t=n,i={mwxhH:function(e,t){return r[x(628)](e,t)},lFxYp:function(e,t){return r[x(519)](e,t)},bXZCL:function(e,t){return r[x(519)](e,t)}};if(r.tkgvs===r[t(376)]){if(_0x5527e7==null)return;let e=_0x3720e8[t(980)](_0x3bc867);if(!e){for(let e of _0x33b709[t(976)]())if(i[t(927)](e.nativeId,_0x438c4e))return;return i.lFxYp(_0x224585,_0x48a0e7)}e[t(677)]=!0,i[t(746)](_0x4cfc1e,e),_0xb57e0d[t(934)](_0x57dc62)}else return r[t(583)](e,r.aGwjJ)}t[n(1285)]=l;function u(e){let t=n;if(r.BxamF(r[t(1017)],r[t(1017)]))return r.DZDnX(e,r[t(1414)]);{let e=r[t(1199)](_0x2f56f0,_0x3531c7);r[t(1189)](typeof _0x2d06d4,r[t(368)])&&typeof _0x38cc8f[t(1353)]==r.ciSdH&&_0xf41983[t(1353)](new _0x211d1f(r[t(404)],{detail:e})),_0x47f889[t(1309)](r[t(1195)],e)}}t[n(453)]=u;function d(e){let t=n;return r.muBDk(r.vqSqf,r[t(945)])?r[t(468)](_0x16aeb2,r[t(464)]):r.FHwtr(e,r[t(626)])}t.isSendFailed=d})(Ge||={});var Ke=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={PmKKk:function(e,t,n,r){return e(t,n,r)},qYfVY:function(e,t){return e!=t},mKoWx:function(e,t,n,r,i){return e(t,n,r,i)},fvOWu:`ListObject`,ukwBq:`List_Object`,xecYR:function(e,t){return e!=t},iKOho:function(e,t,n,r,i){return e(t,n,r,i)},FtYLG:r(773),XIXFr:`TextObject`,JCplw:r(1419),WHdLD:`ImageObject`,oMsdH:r(1042),VQrBv:function(e,t,n,r,i){return e(t,n,r,i)},SQzba:r(443),GKHoF:`MenuObject`,DKQRa:r(1072),aakXg:r(1388),gwqcG:r(1426),YLygU:function(e,t,n){return e(t,n)}};var a,o,s;let u=i[r(853)](m,n,`containerTotalNum`,`ContainerTotalNum`),d=(i[r(889)](a=i[r(970)](m,n,r(616),i[r(1053)],i[r(585)]),null)?a:[]).map(be.fromJson),f=(i[r(1398)](o=i[r(607)](m,n,i.FtYLG,i[r(1294)],r(1296)),null)?o:[])[r(719)](b[r(954)]),ee=(i[r(889)](s=m(n,i[r(770)],i.WHdLD,i[r(895)]),null)?s:[])[r(719)](xe[r(954)]),te=i.VQrBv(m,n,i.SQzba,i[r(615)],`Menu_Object`),ne=i[r(970)](m,n,i[r(1178)],i[r(674)],i[r(733)]);return new t(i[r(1096)](l,i[r(1096)](c,{},i[r(889)](n,null)?n:{}),{containerTotalNum:u,listObject:d,textObject:f,imageObject:ee,menuObject:te?Te[r(954)](te):void 0,widgetId:ne}))}static[e(348)](n){let r=e;return n?{SfOCf:function(e,t){return e instanceof t}}.SfOCf(n,t)?n[r(348)]():new t(n).toJson():{}}[e(348)](){let t=e,n={uOEQJ:function(e,t,n){return e(t,n)},dqjpL:function(e,t,n){return e(t,n)},LrJsa:function(e,t){return e==t},yJhyp:function(e,t){return e==t},LpHTj:function(e,t){return e!=t},HOodG:function(e,t){return e==t}};var r,i;return n.uOEQJ(l,n[t(1049)](c,{},this==null?{}:this),{containerTotalNum:n[t(382)](this,null)?void 0:this.containerTotalNum,listObject:n.LrJsa(r=this==null?void 0:this[t(616)],null)?void 0:r[t(719)](be[t(348)]),textObject:n[t(382)](i=this==null?void 0:this.textObject,null)?void 0:i[t(719)](b[t(348)]),imageObject:(n[t(346)](this,null)?void 0:this.imageObject)?.map(xe[t(348)]),menuObject:n[t(1364)](this,null)&&this[t(443)]?Te[t(348)](this[t(443)]):void 0,widgetId:n.HOodG(this,null)?void 0:this[t(1072)]})}},qe=class t{constructor(t={}){Object[e(679)](this,t)}static fromJson(n){let r=e,i={oPLbW:function(e,t){return e!=t},FPffR:function(e,t,n,r,i){return e(t,n,r,i)},ZzgPS:r(616),dXhIJ:`ListObject`,wxdAs:function(e,t){return e!=t},pUgBj:function(e,t,n,r,i){return e(t,n,r,i)},BpibF:r(773),QeLLO:r(1181),hyTMY:r(1296),uzVqm:function(e,t){return e!=t},JgGXJ:function(e,t,n,r,i){return e(t,n,r,i)},ifFsu:r(1419),AvkVE:r(443),TqWJW:r(578),bxuLv:r(1117),Sgaim:function(e,t,n){return e(t,n)},dNtLd:function(e,t){return e!=t}};var a,o,s;let u=m(n,r(1107),r(1275)),d=(i[r(1044)](a=i[r(1217)](m,n,i[r(580)],i[r(818)],r(419)),null)?a:[])[r(719)](be[r(954)]),f=(i[r(1171)](o=i[r(1369)](m,n,i[r(359)],i.QeLLO,i.hyTMY),null)?o:[]).map(b[r(954)]),ee=(i[r(1344)](s=i[r(944)](m,n,i[r(990)],`ImageObject`,r(1042)),null)?s:[])[r(719)](xe[r(954)]),te=i[r(944)](m,n,i.AvkVE,i[r(1113)],i[r(647)]);return new t(i[r(1034)](l,i[r(1034)](c,{},i[r(473)](n,null)?n:{}),{containerTotalNum:u,listObject:d,textObject:f,imageObject:ee,menuObject:te?Te[r(954)](te):void 0}))}static[e(348)](n){let r=e;return n?{seSJW:function(e,t){return e instanceof t}}[r(800)](n,t)?n.toJson():new t(n)[r(348)]():{}}[e(348)](){let t=e,n={lnWJs:function(e,t,n){return e(t,n)},nNvLY:function(e,t){return e==t},rUjst:function(e,t){return e==t},ViIMU:function(e,t){return e==t},TKwWV:function(e,t){return e==t},SSoJr:function(e,t){return e!=t}};var r,i;return l(n[t(347)](c,{},this==null?{}:this),{containerTotalNum:n[t(1169)](this,null)?void 0:this[t(1107)],listObject:(n[t(398)](this,null)?void 0:this[t(616)])?.[t(719)](be[t(348)]),textObject:n.rUjst(r=n[t(1350)](this,null)?void 0:this[t(773)],null)?void 0:r[t(719)](b[t(348)]),imageObject:n[t(837)](i=n.TKwWV(this,null)?void 0:this[t(1419)],null)?void 0:i[t(719)](xe[t(348)]),menuObject:n[t(959)](this,null)&&this[t(443)]?Te[t(348)](this[t(443)]):void 0})}},S=(t=>(t[t[e(1385)]=0]=e(1385),t[t[e(339)]=1]=`SCROLL_TOP_EVENT`,t[t.SCROLL_BOTTOM_EVENT=2]=e(722),t[t[e(1081)]=3]=e(1081),t[t[e(692)]=4]=e(692),t[t[e(530)]=5]=`FOREGROUND_EXIT_EVENT`,t[t[e(549)]=6]=`ABNORMAL_EXIT_EVENT`,t[t.SYSTEM_EXIT_EVENT=7]=`SYSTEM_EXIT_EVENT`,t[t[e(392)]=8]=`IMU_DATA_REPORT`,t[t[e(872)]=9]=e(872),t[t[e(403)]=10]=e(403),t))(S||{});(t=>{let n=e,r={VEwft:function(e,t){return e==t},KtTLb:function(e,t){return e<=t},MdVQb:function(e,t){return e==t},MnGLM:n(1339),HPSLN:n(455),Rtpfp:n(339),UTkOc:n(425),gZVcZ:`SCROLL_BOTTOM_EVENT`,sDFZu:n(1292),HwFnE:`DOUBLE_CLICK`,DJUkB:`FOREGROUND_ENTER_EVENT`,CJfhC:n(633),lhGTg:n(530),PdILp:`FOREGROUND_EXIT`,ISsQQ:n(549),NhQDy:n(748),BDqNS:n(1106),ZJKpc:n(622),XqUEr:`IMU_REPORT`,imIuJ:`LONG_PRESS_EVENT`,nKNIC:n(469),LVYEG:`LONG_PRESS_RELEASE_EVENT`};function i(e){let t=n;if(r[t(906)](typeof e,t(903))&&Number[t(932)](e))return e>=0&&r[t(1310)](e,10)?e:void 0;if(r.MdVQb(typeof e,r.MnGLM))switch(e.trim()[t(595)]()){case t(1385):case r[t(1213)]:return 0;case r.Rtpfp:case r[t(861)]:return 1;case r[t(1182)]:case r[t(520)]:return 2;case t(1081):case r.HwFnE:return 3;case r[t(496)]:case r.CJfhC:return 4;case r[t(462)]:case r[t(764)]:return 5;case r[t(1111)]:case t(1328):return 6;case r[t(322)]:case r.BDqNS:return 7;case t(392):case r[t(715)]:case r[t(1395)]:return 8;case r.imIuJ:case r[t(661)]:return 9;case r[t(1218)]:case`LONG_PRESS_RELEASE`:case`RELEASE_EVENT`:case t(1329):return 10;default:return}}t[n(954)]=i})(S||={});var Je=(t=>(t[t[e(604)]=0]=e(604),t[t[e(795)]=1]=e(795),t[t.TOUCH_EVENT_FROM_RING=2]=e(1377),t[t[e(801)]=3]=`TOUCH_EVENT_FROM_GLASSES_L`,t))(Je||{});(t=>{let n=e,r={InbBq:function(e,t){return e==t},YFxBT:function(e,t){return e==t},QTkDB:n(1339),yqMUd:n(776),ESXci:n(947),ysAbG:n(795),TbIFH:n(1286),EvZLp:`TOUCH_EVENT_FROM_RING`,tTlXO:n(1373),PpXFV:n(1420)};function i(e){let t=n;if(r[t(1073)](typeof e,t(903))&&Number[t(932)](e))return e>=0&&e<=3?e:void 0;if(r[t(648)](typeof e,r[t(355)]))switch(e.trim()[t(595)]()){case t(604):case r.yqMUd:case r.ESXci:return 0;case r[t(434)]:case r[t(445)]:return 1;case r.EvZLp:case r[t(611)]:return 2;case t(801):case r.PpXFV:return 3;default:return}}t[n(954)]=i})(Je||={});var Ye=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={xYXGx:function(e,t,n,r,i){return e(t,n,r,i)},haLhq:`eventType`,Btctn:r(356),lRpJV:r(931),vWlgq:r(636),tvnkt:r(854),BXYjV:r(972),xOSAn:`containerName`,AYDxc:r(1011),LEPTU:function(e,t,n,r,i){return e(t,n,r,i)},DCHbB:r(771),lYPNu:r(372),qiwVV:`currentSelectItemIndex`,Wnrjv:`CurrentSelectItemIndex`};if(!p(n))return new t;let a=i[r(1269)](h,n,i.haLhq,i.Btctn,i[r(675)]);return new t({containerID:i[r(1269)](v,n,i[r(653)],i[r(333)],i[r(672)]),containerName:i[r(1269)](y,n,i[r(1165)],i.AYDxc,`Container_Name`),currentSelectItemName:i[r(1177)](y,n,`currentSelectItemName`,i[r(936)],i.lYPNu),currentSelectItemIndex:i.LEPTU(v,n,i[r(1115)],i[r(822)],r(881)),eventType:S[r(954)](a)})}static[e(348)](n){let r=e;return n?{bxdtE:function(e,t){return e instanceof t}}.bxdtE(n,t)?n.toJson():new t(n)[r(348)]():{}}[e(348)](){return{DRcDM:function(e,t,n){return e(t,n)}}[e(490)](c,{},this==null?{}:this)}},Xe=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={QxCcR:function(e,t){return e(t)},VESVp:r(747),pGhln:`Event_Type`,FIlRS:function(e,t,n,r,i){return e(t,n,r,i)},zyNab:r(636),mmLfe:r(1233),MqTur:r(1011),xsaZd:`Container_Name`};if(!i[r(997)](p,n))return new t;let a=h(n,i[r(319)],r(356),i[r(553)]);return new t({containerID:i[r(902)](v,n,i[r(1132)],`ContainerID`,`Container_ID`),containerName:i[r(902)](y,n,i[r(1074)],i[r(334)],i[r(1168)]),eventType:S[r(954)](a)})}static toJson(n){let r=e;return n?n instanceof t?n.toJson():new t(n)[r(348)]():{}}[e(348)](){return{OqKCv:function(e,t,n){return e(t,n)}}[e(1383)](c,{},this==null?{}:this)}},Ze=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={KwtXp:function(e,t){return e(t)},oqwia:function(e,t,n,r){return e(t,n,r)},OOqSm:function(e,t,n,r){return e(t,n,r)}};return i.KwtXp(p,n)?new t({x:i[r(625)](v,n,`x`,`X`),y:v(n,`y`,`Y`),z:i[r(1279)](v,n,`z`,`Z`)}):new t}static[e(348)](n){let r=e;return n?{XQGcV:function(e,t){return e instanceof t}}[r(402)](n,t)?n[r(348)]():new t(n).toJson():{}}[e(348)](){return{PPkuT:function(e,t,n){return e(t,n)}}[e(374)](c,{},this==null?{}:this)}},Qe=class t{constructor(t={}){Object[e(679)](this,t)}static[e(954)](n){let r=e,i={JRqfp:function(e,t){return e(t)},VNnLK:function(e,t,n,r,i){return e(t,n,r,i)},AlGuS:r(356),KyeOF:r(931),LETsa:function(e,t,n,r){return e(t,n,r)},uoMtx:`EventSource`,HhXmu:function(e,t,n,r,i,a){return e(t,n,r,i,a)},GleOg:r(1005),rbTIi:r(389),sSpMk:r(1051),CaQke:function(e,t,n,r){return e(t,n,r)},iSKMv:r(894),QzgzS:r(751)};if(!i[r(766)](p,n))return new t;let a=i[r(482)](h,n,r(747),i.AlGuS,i.KyeOF),o=i[r(948)](h,n,r(864),i.uoMtx),s=i.HhXmu(h,n,i.GleOg,r(652),i[r(957)],i[r(1287)]),c;return p(s)&&(c=Ze.fromJson(s)),new t({eventType:S[r(954)](a),eventSource:Je.fromJson(o),imuData:c,systemExitReasonCode:i[r(685)](v,n,i[r(650)],i[r(1397)])})}static toJson(n){let r=e;return n?{AmajV:function(e,t){return e instanceof t}}.AmajV(n,t)?n[r(348)]():new t(n)[r(348)]():{}}toJson(){let t=e,n={tGXqT:function(e,t,n){return e(t,n)},yqPHN:function(e,t){return e!=t}};return n[t(488)](c,{},n[t(649)](this,null)?this:{})}},$e=(t=>(t[e(1239)]=e(630),t.Other=e(687),t[e(1331)]=`unknown`,t))($e||{}),et=class t{constructor(t){let n=e,r={SNiFy:function(e,t){return e!=t},EJNUY:n(667),NblRP:function(e,t){return e!=t},HjIXh:function(e,t){return e!=t},KuXMQ:`unknown`};var i,a,o;this[n(512)]=t[n(512)],this[n(738)]=r[n(542)](i=t[n(738)],null)?i:r[n(848)],this[n(1306)]=r[n(1097)](a=t[n(1306)],null)?a:null,this.speakerRole=r[n(1356)](o=t.speakerRole,null)?o:r[n(1063)]}static fromJson(n){let r=e,i={LAyhz:function(e,t){return e(t)},BzzDf:function(e,t,n,r,i){return e(t,n,r,i)},sFoen:r(512),iwBuu:r(1315),ZEHNh:`pcm`,DbkfB:function(e,t){return e(t)},PXQIf:function(e,t,n,r){return e(t,n,r)},CkfuP:r(738),SnKKU:r(701),lPWnn:function(e,t){return e(t)},QxCUv:function(e,t,n){return e(t,n)},NcUFt:function(e,t){return e(t)},Tkxil:function(e,t,n,r){return e(t,n,r)},XKqnF:r(1211)},a=se(n);return new t({audioPcm:i[r(538)](rt,i[r(943)](h,a,i[r(1421)],i[r(975)],i[r(330)]))??new Uint8Array,source:i[r(329)](de,i[r(1348)](h,a,i[r(528)],i[r(950)])),direction:i.lPWnn(tt,i.QxCUv(h,a,r(1306))),speakerRole:i.NcUFt(nt,i[r(718)](h,a,r(905),i[r(899)]))})}static[e(1367)](n){let r=e,i={hGiTL:function(e,t){return e(t)},FELlm:function(e,t,n,r,i){return e(t,n,r,i)},JLNCm:r(512),KYKXN:r(1315),DqBRk:`pcm`,MvyLH:function(e,t){return e!==t},BnUHF:function(e,t){return e(t)},CuMIy:function(e,t,n,r){return e(t,n,r)},rMhjb:r(738),szmvZ:r(701),LEMfz:function(e,t){return e(t)},PgHUN:function(e,t,n){return e(t,n)},FhYlj:r(1306),TsIqq:`speakerRole`,vUixX:r(1211)},a=i.hGiTL(se,n),o=i[r(1241)](rt,i[r(838)](h,a,i[r(662)],i.KYKXN,i[r(989)]));if(i[r(412)](o,void 0))return new t({audioPcm:o,source:i[r(1197)](de,i[r(624)](h,a,i[r(391)],i.szmvZ)),direction:i.LEMfz(tt,i[r(706)](h,a,i[r(523)])),speakerRole:nt(i.CuMIy(h,a,i[r(655)],i.vUixX))})}};function tt(t){let n=e,r={wSdfA:function(e,t){return e!=t},ppuIi:function(e,t){return e>=t},dbYLz:function(e,t){return e<=t}};return r[n(576)](typeof t,n(903))||!Number.isInteger(t)?null:r[n(1333)](t,-32768)&&r[n(1221)](t,32767)?t:null}function nt(t){let n=e,r={SgzYq:n(630),NSCJm:n(687),TesbY:n(1222)};switch(t){case r[n(1093)]:return r[n(1093)];case r.NSCJm:return n(687);default:return r[n(1352)]}}function rt(t){let n=e,r={UPgdY:function(e,t){return e!=t},Vucxs:function(e,t){return e instanceof t},xkiTv:function(e,t){return e==t},AbTDO:n(1339),mxJKj:function(e,t){return e(t)}};if(r.UPgdY(t,null)){if(r.Vucxs(t,Uint8Array))return t;if(Array[n(1131)](t))return new Uint8Array(t[n(719)](e=>Number(e)&255));if(r[n(1273)](typeof t,r[n(749)]))try{let e=r[n(489)](atob,t),i=new Uint8Array(e[n(405)]);for(let t=0;t<e.length;t++)i[t]=e[n(408)](t);return i}catch{return}}}var it=(t=>(t[e(451)]=e(451),t[e(985)]=`textEvent`,t.sysEvent=`sysEvent`,t.audioEvent=e(1056),t[e(829)]=e(829),t[e(1099)]=e(1099),t))(it||{});function at(){return{}}function ot(t){let n=e,r={Ogoaq:n(903),dguTC:n(985),voxoI:n(645),KrORZ:n(1056),aGdJM:n(1099),nqgCB:function(e,t){return e!=t},wjtFW:`menuitemclick`,ljWwY:`list`,ZmkTw:n(451),nHDNY:`text`,VPsMs:n(1257),JjMWG:n(1103)};if(typeof t==r[n(870)]&&Number[n(932)](t))switch(t){case 0:return`listEvent`;case 1:return r.dguTC;case 2:return r.voxoI;case 3:return r[n(1047)];default:return r[n(1355)]}if(r[n(807)](typeof t,n(1339)))return n(1099);let i=t.trim().toLowerCase();return i?i.replace(/[_\-\s]/g,``)[n(1375)](r.wjtFW)?n(829):i[n(1375)](r[n(1260)])?r[n(1141)]:i.includes(r[n(545)])?r[n(640)]:i.includes(r[n(964)])?n(645):i[n(1375)](r[n(724)])?`audioEvent`:r.aGdJM:r.aGdJM}function st(t){let n=e,r={kmdXv:function(e,t){return e||t},tdBgY:function(e,t){return e(t)},eFokX:`fDmen`,acafn:function(e,t){return e(t)},blakZ:function(e,t){return e!=t},CNKEe:n(472),lRFcM:function(e,t){return e!=t},NZqQc:function(e,t){return e!=t},lUvIh:function(e,t){return e!=t},KMymS:function(e,t){return e(t)},CPvhR:function(e,t,n){return e(t,n)}};var i,a,o,s;if(Array[n(1131)](t)){if(r[n(1399)]===r[n(1399)]){let[e,n]=t;return ct(r.acafn(ot,e),se(n))}{let e=_0x3cc73d++,t=_0x1e976b[n(517)](+r[n(1187)](_0x391810,0),+!!_0x30b3b3),i={id:e,fn:()=>_0x4ecb36(..._0x361be3),delay:t,remaining:t,repeat:_0x839b00,cleared:!1,nativeId:0,generation:0,running:!1,skipNextShadowTick:!1};return r[n(518)](_0x5b2f0c,i),_0x456aa6[n(844)](i.id,i),_0x44cb81&&_0x1e206d[n(431)](_0x36e1f6,n(725)+i.id+n(772)+t+n(1060)+_0x4b28c8[n(825)]+`)`),i.id}}if(!t||r.blakZ(typeof t,r[n(968)]))return at();let c=r[n(541)](i=t.type??t[n(747)],null)?i:t.name,l=r[n(449)](s=r[n(1298)](o=r[n(423)](a=t[n(1033)],null)?a:t.data,null)?o:t[n(817)],null)?s:{},u=r[n(691)](ot,c),d=r[n(761)](se,l);return r.CPvhR(ct,u,d)}function ct(t,n){let r=e,i={FckEp:r(985),JAfPW:r(1056),LCWFU:function(e,t){return e!==t},lKgLs:r(829)},a={jsonData:n};switch(t){case r(451):a[r(451)]=Ye[r(954)](n);break;case i[r(597)]:a[r(985)]=Xe.fromJson(n);break;case r(645):a[r(645)]=Qe[r(954)](n);break;case i[r(874)]:{let e=et[r(1367)](n);i[r(1156)](e,void 0)&&(a.audioEvent=e);break}case i[r(969)]:a[r(829)]=Ee.fromJson(n)}return a}var lt=class t{constructor(t={}){let n=e;this[n(939)]=t.exitMode??0,Object.assign(this,t)}static[e(954)](n){return new t(c({},{oDcNB:function(e,t){return e!=t}}[e(448)](n,null)?n:{}))}static toJson(n){let r=e;return n?{ysTQK:function(e,t){return e instanceof t}}[r(1194)](n,t)?n[r(348)]():new t(n)[r(348)]():{exitMode:0}}[e(348)](){let t=e,n={xyfWi:function(e,t,n){return e(t,n)},pZJUe:function(e,t){return e!=t}};return n[t(1154)](c,{},n[t(495)](this,null)?this:{exitMode:0})}},ut=class t{constructor(t={}){Object[e(679)](this,t)}static fromJson(n){let r=e,i={mDinG:function(e,t){return e(t)},VOfWV:function(e,t,n,r,i,a){return e(t,n,r,i,a)},kAOLv:r(1146),ovKns:r(644),MWyiP:`IMU_ReportEn`,oABQy:`imuReportEn`,fIjnw:function(e,t,n,r){return e(t,n,r)},EWtdr:r(1370),ewVsE:r(810)};return i[r(437)](p,n)?new t({iMUReportEn:i[r(1392)](v,n,i.kAOLv,i[r(1173)],i[r(797)],i[r(1335)]),reportFrq:i[r(963)](v,n,i[r(1039)],i[r(1134)])}):new t}static toJson(n){let r=e;return n?{xDYse:function(e,t){return e instanceof t}}.xDYse(n,t)?n[r(348)]():new t(n).toJson():{}}[e(348)](){return{jmGOk:function(e,t,n){return e(t,n)}}.jmGOk(c,{},this==null?{}:this)}};e(348),e(348);var dt=class t{constructor(){let t=e;this[t(1349)]=!1,this[t(1092)]()}static getInstance(){let n=e;return t[n(483)]||(t[n(483)]=new t),t[n(483)]}[e(1092)](){let t=e,n={RXSSu:function(e,t){return e(t)},ohttl:function(e,t){return e===t},Wwwyk:`wrOZq`,SFyDN:function(e,t){return e==t},uYoxk:t(1324),Tvuuk:function(e,t){return e||t},Zyepu:function(e,t){return e||t},GUWXB:`evenHubEvent`,oHhbL:function(e,t){return e||t},GFSRF:function(e,t){return e===t},bRMTK:t(784),nwFck:`[EvenAppBridge] Unknown message method:`,uZoZo:function(e,t){return e!=t},RwLVi:`complete`,GPfzf:`interactive`,ReMHA:t(1200),ykPCI:t(775)};n.uZoZo(typeof window,t(1019))&&(window[t(1400)]=this,document.readyState===n[t(1443)]||n[t(487)](document[t(1151)],n[t(877)])?(this[t(1349)]=!0,this[t(510)]()):document.addEventListener(n[t(1434)],()=>{let e=t;n.ohttl(n[e(942)],e(1272))?_0x5638ef[e(1043)]({kind:_0x34600a,index:_0x43d9fd,zOrderIndex:{USYtG:function(e,t){return n.RXSSu(e,t)}}[e(946)](_0xe47bf4,_0x138380)}):(this[e(1349)]=!0,this.dispatchReadyEvent())}),window[t(326)]=e=>{let r=t,{method:i,payload:a,data:o}=n[r(1133)](typeof e,r(1339))?JSON[r(337)](e):e;n[r(487)](i,n[r(1437)])?this[r(1176)](n.Tvuuk(o,a)):i===r(658)?this[r(1147)](n[r(629)](o,a)):i===n[r(1192)]?this[r(1357)](n[r(1263)](o,a)):n[r(1198)](i,n[r(614)])?this[r(755)](n.Tvuuk(o,a)):console.warn(n[r(1003)],i)},console[t(1309)](n.ykPCI))}dispatchReadyEvent(){let t=e,n={ydaEp:function(e,t){return e!=t},KsVNy:t(1019),yNAyN:function(e,t){return e==t},bGsVY:t(498),HrIHp:t(908)};n.ydaEp(typeof window,n[t(1091)])&&n.yNAyN(typeof window[t(1353)],n[t(1031)])&&window.dispatchEvent(new Event(n[t(664)]))}get[e(606)](){let t=e;return this[t(1349)]}[e(440)](t){let n=e,r={NYdVk:function(e,t){return e==t},fVKqU:n(1019),JEGhw:n(535),RZlpL:`[EvenAppBridge] postMessage: Flutter handler not available`};if(r[n(846)](typeof window,r[n(1045)]))return Promise[n(1380)](void 0);let i=window[n(1024)];return i&&i[n(1401)]?i[n(1401)](r[n(850)],JSON[n(313)](t)):(console[n(638)](r.RZlpL),Promise.resolve(void 0))}handleLaunchSource(t){let n=e,r={liRPP:function(e,t){return e!=t},wzBNM:n(1206),vJIOu:function(e,t){return e===t},fRXqv:n(1048),fAnWK:function(e,t){return e!=t},fgKlT:n(1019),ssnXj:function(e,t){return e==t},Bvnwt:n(498),RRbQb:n(1324)},i=r[n(420)](t,null)&&typeof t==n(472)?t.launchSource:t,a=i===r[n(1248)]||r[n(414)](i,r[n(475)])?i:r[n(1248)];r[n(484)](typeof window,r[n(1085)])&&r[n(1336)](typeof window[n(1353)],r[n(891)])&&window[n(1353)](new CustomEvent(r[n(554)],{detail:{launchSource:a}}))}handleGlassesStatusChanged(t){let n=e,r={MlUsW:function(e,t){return e!=t},XjoAk:function(e,t){return e==t},byGde:n(658),AkhIw:n(1123)},i=re.fromJson(t);r[n(786)](typeof window,n(1019))&&r[n(1144)](typeof window[n(1353)],n(498))&&window[n(1353)](new CustomEvent(r.byGde,{detail:i})),console.log(r.AkhIw,i)}[e(1357)](t){let n=e,r={wNBUm:function(e,t){return e(t)},lQIba:function(e,t){return e!=t},CmPIY:n(1019),ItCaJ:function(e,t){return e==t},aqXqU:n(498),LRuFA:n(467),zeaSd:n(1274)},i=r[n(833)](st,t);r[n(367)](typeof window,r[n(1332)])&&r[n(1041)](typeof window[n(1353)],r[n(1170)])&&window[n(1353)](new CustomEvent(r[n(765)],{detail:i})),console.log(r[n(591)],i)}handleAppLocationChanged(t){let n=e,r={aruqN:function(e,t){return e(t)},yHlDj:function(e,t){return e!=t},nzqEv:n(1019),uOrTg:function(e,t){return e==t},MKHgq:n(498),zXMpc:n(784)},i=r[n(1038)](fe,t);i&&r[n(327)](typeof window,r.nzqEv)&&r[n(1088)](typeof window.dispatchEvent,r.MKHgq)&&window[n(1353)](new CustomEvent(r[n(1220)],{detail:i}))}callEvenApp(t,n){let r=e,i={OTovl:r(1128),zkJjd:function(e,t,n,r){return e(t,n,r)}};return i[r(594)](u,this,null,function*(){return yield this.postMessage({type:i.OTovl,method:String(t),data:n})})}getUserInfo(){return{eCxZh:function(e,t,n,r){return e(t,n,r)}}.eCxZh(u,this,null,function*(){let e=x,t=yield this[e(1160)](e(834));return te[e(954)](t)})}getDeviceInfo(){let t=e,n={vbgoz:t(1163)};return u(this,null,function*(){let e=t,r=yield this[e(1160)](n[e(1071)]);return r?ae[e(954)](r):null})}[e(587)](t,n){let r=e,i={psaIe:`setLocalStorage`,VxXIl:function(e,t){return e!=t},viGLo:function(e,t,n,r){return e(t,n,r)}};return i[r(698)](u,this,null,function*(){let e=r,a=yield this.callEvenApp(i[e(1114)],{key:t,value:n});return i[e(1267)](a,null)?a:!1})}[e(1207)](t){let n=e,r={XNGSj:function(e,t){return e(t)},XwrZv:function(e,t,n,r,i){return e(t,n,r,i)},oWnBm:`itemCount`,jBMSo:n(805),pDArD:n(1342),cwiEC:function(e,t){return e(t)},VlmRf:`itemWidth`,aRqZw:`ItemWidth`,mCLGh:n(441),fDWEc:function(e,t,n,r,i){return e(t,n,r,i)},oFXGk:n(1035),DVggo:n(1418),OXOsB:function(e,t,n,r,i){return e(t,n,r,i)},EtdNA:n(582),bCLqN:`ItemName`,NZxYy:n(1136),ZGgEf:function(e,t){return e!==t},TbreD:n(1293),YbxrZ:n(1207),eYnpi:function(e,t){return e!=t},XQzmw:function(e,t,n,r){return e(t,n,r)}};return r.XQzmw(u,this,null,function*(){let e=n;if(r[e(321)](r.TbreD,e(1425))){let n=yield this[e(1160)](r[e(1130)],{key:t});return r[e(808)](n,null)?n:``}return new _0x488d2b({itemCount:r.XNGSj(_0x3bb686,r.XwrZv(_0x18ad5a,_0x2be23c,r.oWnBm,r[e(312)],r.pDArD)),itemWidth:r[e(386)](_0x1c1df8,r[e(1243)](_0x2880e0,_0x3ed9a5,r[e(461)],r[e(1193)],r.mCLGh)),isItemSelectBorderEn:r[e(386)](_0x8b74ed,r[e(1402)](_0x3938b2,_0x409ef6,r.oFXGk,r.DVggo,e(1338))),itemName:r.OXOsB(_0x269ba0,_0x4a8e99,r[e(417)],r[e(994)],r[e(893)])})})}getAppLocation(t){let n=e,r={kDunM:function(e,t){return e>=t},wmUYK:function(e,t){return e<=t},GKQcd:n(1143),ClKHN:n(421),ykBvR:function(e,t){return e(t)},FaONS:function(e,t,n,r){return e(t,n,r)}};return r[n(912)](u,this,null,function*(){let e=n;if(r.GKQcd===r[e(863)]){let n=yield this[e(1160)](r[e(656)],t);return r[e(824)](fe,n)}return typeof _0x4db03c==`number`&&_0x48c341[e(996)](_0x133341)&&r[e(741)](_0x5e5098,_0x4dc1b3)&&r.wmUYK(_0x1edfad,_0x7172d9)})}startAppLocationUpdates(e){let t={iNZCs:function(e,t){return e===t},qoFek:`WnAfw`,poxrs:`startAppLocationUpdates`};return u(this,null,function*(){let n=x,r={CSmoU:function(e,t){return e(t)}};if(t[n(1318)](t[n(618)],n(868))){let e=r[n(1203)](_0x5dc98a,_0xd86bdd),t=new _0xb10b5c(e[n(405)]);for(let r=0;r<e[n(405)];r++)t[r]=e[n(408)](r);return t}return(yield this.callEvenApp(t[n(830)],e))===!0})}[e(1366)](){let t=e,n={fDWWs:t(1366),bKFQc:function(e,t,n,r){return e(t,n,r)}};return n[t(568)](u,this,null,function*(){return(yield this.callEvenApp(n.fDWWs))===!0})}[e(1282)](){let e={AOZxm:function(e,t){return e(t)},SazwO:function(e,t,n,r){return e(t,n,r)}};return e.SazwO(u,this,null,function*(){let t=x,n=yield this.callEvenApp(t(1282));return e[t(427)](pe,n)})}captureImageFromCamera(){let t=e,n={oIbXf:t(365),XxwVw:function(e,t){return e(t)},CjUmZ:function(e,t,n,r){return e(t,n,r)}};return n.CjUmZ(u,this,null,function*(){let e=t;if(n[e(753)]===n.oIbXf){let t=yield this[e(1160)](`captureImageFromCamera`);return n[e(1077)](pe,t)}_0x467808.error(_0xe140f6)})}createStartUpPageContainer(t){let n=e,r={SIeES:function(e,t){return e(t)},lIbTZ:n(397)};return u(this,null,function*(){let e=n,i=Ke[e(348)](t),a=r[e(1124)](He,i);if(!a[e(1070)])return console[e(1108)](Ue(a)),1;i[e(1072)]=window[e(767)];let o=yield this[e(1160)](r[e(1234)],i);return We.normalize(o)})}[e(670)](t){let n=e,r={xjLbd:function(e,t){return e(t)},ZFsHK:function(e,t){return e(t)},Idlbn:n(670),HbiDJ:function(e,t,n,r){return e(t,n,r)}};return r[n(637)](u,this,null,function*(){let e=n,i=qe[e(348)](t),a=r[e(1438)](He,i);return a[e(1070)]?(yield this[e(1160)](r[e(381)],i))??!1:(console[e(1108)](r.ZFsHK(Ue,a)),!1)})}updateImageRawData(t){let n=e,r={mOSWe:n(784),nPBrA:function(e,t){return e==t},aqIdA:n(1019),ZdHHO:function(e,t){return e===t},EgHbR:n(1089),MRvID:n(1204),SODgG:function(e,t,n,r){return e(t,n,r)}};return r[n(673)](u,this,null,function*(){let e=n;if(r[e(823)](r[e(999)],r[e(712)])){let t={cSFML:function(e,t){return e(t)},jobVj:r.mOSWe};if(r.nPBrA(typeof _0x23df95,r[e(1054)]))return()=>{};let n=n=>{let r=e;t[r(841)](_0xf15b7e,n[r(750)])};return _0x114be2[e(826)](r[e(492)],n),()=>{let r=e;_0x243117.removeEventListener(t[r(503)],n)}}{let n=yield this[e(1160)](e(1095),Se[e(348)](t));return Ge[e(892)](n)}})}textContainerUpgrade(t){let n=e,r={ouzoE:`KLwFe`,fjOZO:function(e,t){return e(t)},EZACs:`textContainerUpgrade`,ttuse:function(e,t){return e!=t},cqhpD:function(e,t,n,r){return e(t,n,r)}};return r[n(869)](u,this,null,function*(){let e=n;if(r[e(1396)]!==r.ouzoE)return{};{let n=je.toJson(t);if(n[e(544)]!==void 0&&!r.fjOZO(Ae,n.textColor))return console[e(1108)](e(835)+n[e(544)]+` must be an integer from 0 to 4.`),!1;let i=yield this.callEvenApp(r.EZACs,n);return r[e(707)](i,null)?i:!1}})}audioControl(t){let n=e,r={gieAT:function(e,t,n,r,i,a){return e(t,n,r,i,a)},NQvYK:n(806),EroFT:`IMU_ReportEn_Status`,IIoJy:n(659),qfVjt:n(1118),iPKek:function(e,t){return e===t},eDIxn:`audioControl`,ACcjx:function(e,t){return e(t)}};return u(this,arguments,function*(e,t=n(667)){let i=n;return r.qfVjt===r[i(1291)]?r[i(958)](yield this.callEvenApp(r[i(684)],{isOpen:e,source:r.ACcjx(de,t)}),!0):_0x167f9b(_0x41988e)?new _0x349dcb({iMUReportEnStatus:r[i(1270)](_0xd8d888,_0x440bd4,r[i(1435)],i(654),r[i(508)],r.IIoJy)}):new _0x93a543})}[e(1090)](t){let n=e,r={uFtjD:function(e,t){return e===t},bGGQJ:n(1090),CwQSQ:function(e,t,n,r){return e(t,n,r)}};return r[n(1256)](u,this,arguments,function*(e,t=100){let i=n;return r[i(949)](yield this.callEvenApp(r[i(485)],ut[i(348)](new ut({iMUReportEn:+!!e,reportFrq:t}))),!0)})}[e(1057)](t=0){let n=e,r={eVXlB:function(e,t){return e===t},VkjiM:n(1057),elWsi:function(e,t,n,r){return e(t,n,r)}};return r[n(763)](u,this,null,function*(){let e=n,i={KMhWB:function(e,t){return e(t)}};if(r[e(471)](e(433),e(433))){let n=new lt({exitMode:t});return(yield this.callEvenApp(r[e(711)],lt[e(348)](n)))??!1}i[e(592)](_0x1546e2,_0x1194e8)})}[e(842)](t){let n=e,r={oDBjI:n(399),cuWBb:n(1360),UbUSu:function(e,t){return e!=t},uoosK:function(e,t){return e(t)},ayzwo:n(1324),eKCdx:function(e,t){return e==t},mvWWa:n(1019)};if(r[n(643)](typeof window,r[n(599)]))return()=>{};let i=e=>{let i=n;if(r[i(858)]!==r[i(1281)]){var a;let n=e;r[i(1390)](a=n[i(750)],null)&&a[i(1258)]&&r.uoosK(t,n.detail.launchSource)}else _0x87d69a[i(679)](this,_0x4dc1d0)};return window.addEventListener(`evenAppLaunchSource`,i),()=>{let e=n;window.removeEventListener(r[e(513)],i)}}[e(951)](t){let n=e,r={rEVSG:function(e,t){return e(t)},vjjoq:n(658),cfhbe:function(e,t){return e==t},mXGcO:n(1019)};if(r[n(1326)](typeof window,r.mXGcO))return()=>{};let i=e=>{let i=n;r[i(1236)](t,e[i(750)])};return window[n(826)](n(658),i),()=>{let e=n;window[e(555)](r[e(1337)],i)}}[e(470)](t){let n=e,r={WDdis:function(e,t){return e(t)},ulONC:`evenHubEvent`,HDBQa:n(1019)};if(typeof window==r[n(1002)])return()=>{};let i=e=>{let i=n;r.WDdis(t,e[i(750)])};return window[n(826)](r[n(1080)],i),()=>{let e=n;window[e(555)](r[e(1080)],i)}}onAppLocationChanged(t){let n=e,r={YSwrm:function(e,t){return e!==t},lhXkg:n(581),xTlZy:function(e,t){return e(t)},eQHfC:n(570),nUYur:function(e,t){return e==t},nrsII:`appLocationChanged`};if(r.nUYur(typeof window,n(1019)))return()=>{};let i=e=>{let i=n;r.YSwrm(r.lhXkg,r[i(384)])?_0x1ef00c[i(555)](i(1324),_0x32c1db):r[i(813)](t,e[i(750)])};return window.addEventListener(r[n(609)],i),()=>{let e=n;if(r.eQHfC===r[e(955)])window[e(555)](e(784),i);else return}}};function ft(){let t=e,n={llDra:function(e,t){return e!==t},ZLyXf:t(1235),Srwwl:function(e,t){return e(t)},vttpI:function(e,t){return e==t},CuwlJ:`undefined`,tscWD:t(1304),LQYOk:function(e,t){return e(t)},cUlhB:t(908),RQLkr:function(e,t,n){return e(t,n)}};return new Promise(e=>{let r=t,i={ZRSmz:function(e,t){return n[x(1289)](e,t)}};if(n[r(739)](typeof window,n[r(774)]))throw Error(n[r(910)]);let a=window[r(1400)];a&&a[r(606)]?n[r(1410)](e,a):(window[r(826)](n.cUlhB,()=>{let t=r;if(n[t(1180)](`NeCOW`,n[t(1215)])){let n=window[t(1400)];n&&(n._ready=!0,e(n))}else _0x414966[t(679)](this,_0x61ea)},{once:!0}),a&&n[r(1379)](setTimeout,()=>{let t=r;a&&(a[t(1349)]=!0,i.ZRSmz(e,a))},100))})}typeof window!=e(1019)&&dt.getInstance(),e(1206),e(1048);var pt=class extends Error{code;status;retryable;requestId;details;constructor(e,t,n={}){super(t,{cause:n.cause}),this.name=`HubError`,this.code=e,this.status=n.status??0,this.retryable=n.retryable??!1,this.requestId=n.requestId,this.details=n.details}},mt=class{buffer=``;dataLines=[];eventName;eventId;retry;push(e){this.buffer+=e;let t=[];for(;this.buffer.length>0;){let e=this.buffer.indexOf(`
2
+ `);if(e===-1)break;let n=this.buffer.slice(0,e);if(this.buffer=this.buffer.slice(e+1),n.endsWith(`\r`)&&(n=n.slice(0,-1)),n===``){let e=this.flush();e&&t.push(e);continue}if(n.startsWith(`:`))continue;let r=n.indexOf(`:`),i=r===-1?n:n.slice(0,r),a=r===-1?``:n.slice(r+1);if(a.startsWith(` `)&&(a=a.slice(1)),i===`data`)this.dataLines.push(a);else if(i===`event`)this.eventName=a;else if(i===`id`)this.eventId=a;else if(i===`retry`){let e=Number(a);Number.isFinite(e)&&(this.retry=e)}}return t}end(){this.buffer.length>0&&(this.buffer+=`
3
+ `,this.push(``));let e=this.flush();return e?[e]:[]}flush(){if(this.dataLines.length===0&&!this.eventName&&!this.eventId)return;let e={data:this.dataLines.join(`
4
+ `),event:this.eventName,id:this.eventId,retry:this.retry};return this.dataLines=[],this.eventName=void 0,this.eventId=void 0,this.retry=void 0,e}};function ht(e,t){return new Promise((n,r)=>{if(t.aborted){r(t.reason);return}let i=setTimeout(n,e);t.addEventListener(`abort`,()=>{clearTimeout(i),r(t.reason)},{once:!0})})}function gt(e){try{let t=JSON.parse(e);return!t||typeof t.seq!=`number`||typeof t.type!=`string`?void 0:t}catch{return}}async function _t(e){let t=e.fetchImpl??fetch,n=(e.baseUrl??``).replace(/\/$/,``),r=e.after??0,i=0,a=e.minReconnectMs??500,o=e.maxReconnectMs??15e3;for(;!e.signal.aborted;){try{e.onStatus?.(i===0?`connecting`:`reconnecting`);let a={Accept:`text/event-stream`};e.token&&(a.Authorization=`Bearer ${e.token}`);let o=await t(`${n}/api/v1/events?after=${r}`,{headers:a,credentials:e.credentials??`same-origin`,signal:e.signal});if(!o.ok){let e;try{e=await o.json()}catch{e=void 0}let t=e;throw new pt(t?.error?.code??`event_stream_failed`,t?.error?.message??`Event stream failed with HTTP ${o.status}`,{status:o.status,retryable:t?.error?.retryable??o.status>=500,requestId:t?.error?.requestId})}e.onStatus?.(`open`),i=0;let s=o.body?.getReader();if(!s)throw Error(`Event stream has no body`);let c=new mt,l=new TextDecoder;try{for(;!e.signal.aborted;){let{done:t,value:n}=await s.read();if(t)break;let i=l.decode(n,{stream:!0});for(let t of c.push(i)){if(t.id&&/^\d+$/.test(t.id)&&(r=Number(t.id)),!t.data)continue;let n=gt(t.data);n&&e.onEvent(n)}}}finally{s.releaseLock()}if(e.signal.aborted)break}catch(t){if(e.signal.aborted)break;if(t instanceof pt&&t.status===401||t instanceof pt&&!t.retryable)throw t}if(e.signal.aborted)break;let s=Math.min(o,a*2**i);i+=1,e.onStatus?.(`reconnecting`);try{await ht(s+Math.floor(Math.random()*250),e.signal)}catch{break}}e.onStatus?.(`closed`)}var vt=class{baseUrl;fetchImpl;credentials;token;constructor(e){this.baseUrl=(e.baseUrl??``).replace(/\/$/,``),this.token=e.token?.trim()||void 0,this.credentials=e.credentials??`same-origin`,this.fetchImpl=e.fetchImpl??fetch.bind(globalThis)}setToken(e){this.token=e?.trim()||void 0}async health(){return this.request(`/api/v1/health`,{auth:!1})}async authCheck(){return this.request(`/api/v1/auth/check`)}async pair(){return this.request(`/api/v1/auth/pair`,{method:`POST`})}async connect(e){return this.request(`/api/v1/auth/connect`,{method:`POST`,body:{code:e}})}async refresh(){return this.request(`/api/v1/auth/refresh`,{method:`POST`})}async signOut(){await this.request(`/api/v1/auth/signout`,{method:`POST`,auth:!1,keepalive:!0})}async providers(){return(await this.request(`/api/v1/providers`)).data}async diagnostics(){return this.request(`/api/v1/diagnostics`)}async checkProvider(e){return this.request(`/api/v1/providers/${encodeURIComponent(e)}/check`,{method:`POST`})}async sessions(e={}){let t=new URLSearchParams;e.provider&&t.set(`provider`,e.provider),e.scope&&t.set(`scope`,e.scope),e.status&&t.set(`status`,e.status),e.q&&t.set(`q`,e.q),e.cursor&&t.set(`cursor`,e.cursor),e.limit&&t.set(`limit`,String(e.limit));let n=t.size>0?`?${t.toString()}`:``;return this.request(`/api/v1/sessions${n}`)}async session(e){return this.request(`/api/v1/sessions/${encodeURIComponent(e)}`)}async messages(e,t={}){let n=new URLSearchParams;t.cursor&&n.set(`cursor`,t.cursor),t.limit&&n.set(`limit`,String(t.limit)),t.order&&n.set(`order`,t.order);let r=n.size>0?`?${n.toString()}`:``;return this.request(`/api/v1/sessions/${encodeURIComponent(e)}/messages${r}`)}async question(e){return(await this.request(`/api/v1/sessions/${encodeURIComponent(e)}/question`)).data}async questionSummaries(e){let t=new URLSearchParams;for(let n of e)t.append(`ref`,n);return this.request(`/api/v1/questions?${t.toString()}`)}async markRead(e){await this.request(`/api/v1/sessions/${encodeURIComponent(e)}/read`,{method:`POST`})}async draft(e){return(await this.request(`/api/v1/sessions/${encodeURIComponent(e)}/draft`)).data}async saveDraft(e,t){return(await this.request(`/api/v1/sessions/${encodeURIComponent(e)}/draft`,{method:`PUT`,body:{text:t}})).data}async deleteDraft(e){await this.request(`/api/v1/sessions/${encodeURIComponent(e)}/draft`,{method:`DELETE`})}async sendMessage(e,t,n={}){return this.request(`/api/v1/sessions/${encodeURIComponent(e)}/messages`,{method:`POST`,body:t,...n.idempotencyKey?{headers:{"Idempotency-Key":n.idempotencyKey}}:{}})}async createSession(e){return this.request(`/api/v1/sessions`,{method:`POST`,body:e})}async interrupt(e){await this.request(`/api/v1/sessions/${encodeURIComponent(e)}/interrupt`,{method:`POST`})}async options(e){return this.request(`/api/v1/providers/${encodeURIComponent(e)}/options`)}async assistantSettings(){return(await this.request(`/api/v1/settings/assistant`)).data}async saveAssistantSettings(e){return(await this.request(`/api/v1/settings/assistant`,{method:`PUT`,body:e})).data}async assistantModels(e){return(await this.request(`/api/v1/settings/assistant/${e}/models`)).data}async replyOptions(e,t=`reply`){return this.request(`/api/v1/sessions/${encodeURIComponent(e)}/reply-options?mode=${t}`)}async attention(e={}){let t=new URLSearchParams;e.type&&t.set(`type`,e.type),e.sessionRef&&t.set(`sessionRef`,e.sessionRef);let n=t.size>0?`?${t.toString()}`:``;return this.request(`/api/v1/attention${n}`)}async actOnAttention(e,t,n={}){await this.request(`/api/v1/attention/${encodeURIComponent(e)}/actions/${encodeURIComponent(t)}`,{method:`POST`,body:n})}startEvents(e){return _t({baseUrl:this.baseUrl,token:this.token,credentials:this.credentials,after:e.after,signal:e.signal,onEvent:e.onEvent,onStatus:e.onStatus,fetchImpl:this.fetchImpl})}async request(e,t={}){let n={Accept:`application/json`,...t.headers??{}};t.auth!==!1&&this.token&&(n.Authorization=`Bearer ${this.token}`),t.body!==void 0&&(n[`Content-Type`]=`application/json`);let r;try{r=await this.fetchImpl(`${this.baseUrl}${e}`,{headers:n,credentials:this.credentials,keepalive:t.keepalive,method:t.method??`GET`,...t.body===void 0?{}:{body:JSON.stringify(t.body)}})}catch(e){throw new pt(`network_error`,`Unable to reach the hub`,{retryable:!0,cause:e})}if(!r.ok){let e;try{e=await r.json()}catch{e=void 0}throw new pt(e?.error.code??`http_error`,e?.error.message??`Hub returned HTTP ${r.status}`,{status:r.status,retryable:e?.error.retryable??r.status>=500,requestId:e?.error.requestId,details:e?.error.details})}if(r.status!==204)return await r.json()}};function yt(e){if(e.type===`message.created`||e.type===`message.updated`||e.type===`message.delta`)return e.data?.message}var bt=/^\/pair\/([^/?#]+)\/?$/,xt=/^[A-Za-z0-9_-]{8,128}$/;function St(e,t){try{let n=new URL(e,t??`http://localhost`);return t&&n.origin!==t?!1:bt.test(n.pathname)}catch{return!1}}function Ct(e,t={}){let n=e.trim();if(n){if(xt.test(n))return n;try{let e=new URL(n,t.origin??`http://localhost`);if(t.origin&&e.origin!==t.origin)return;let r=e.pathname.match(bt);if(!r?.[1])return;let i=decodeURIComponent(r[1]);return xt.test(i)?i:void 0}catch{return}}}function wt(){return typeof window<`u`&&window.isSecureContext&&typeof navigator<`u`&&`BarcodeDetector`in window&&!!navigator.mediaDevices?.getUserMedia}async function Tt(e,t,n={}){if(!wt()||t.aborted)return;let r=await navigator.mediaDevices.getUserMedia({video:{facingMode:`environment`},audio:!1}),i=()=>{for(let e of r.getTracks())e.stop();e.srcObject=null};try{if(t.aborted)return;e.srcObject=r,e.muted=!0,e.setAttribute(`playsinline`,`true`),await e.play();let i=window.BarcodeDetector,a=new i({formats:[`qr_code`]});for(;!t.aborted;){let r=[];try{r=await a.detect(e)}catch{}let i=r.find(e=>St(e.rawValue,n.origin));if(i)return i.rawValue;await new Promise(e=>{let n=setTimeout(e,200);t.addEventListener(`abort`,()=>{clearTimeout(n),e()},{once:!0})})}return}finally{i()}}function Et(e,t,n){let r=e.replace(/\r\n?/g,`
5
+ `).replace(/\t/g,` `),i=[];for(let e of r.split(`
6
+ `)){let n=e.replace(/ +/g,` `).trim();if(!n){i.length>0&&i[i.length-1]!==``&&i.push(``);continue}let r=``;for(let e of n.split(` `)){let n=e;for(;n.length>t;)r&&=(i.push(r),``),i.push(n.slice(0,t)),n=n.slice(t);n&&(r?r.length+1+n.length<=t?r+=` ${n}`:(i.push(r),r=n):r=n)}r&&i.push(r)}for(;i.length>0&&i[i.length-1]===``;)i.pop();let a=i.length>n;if(a&&(i.length=Math.max(0,n)),a&&n>0){let e=i[n-1]??``;i[n-1]=e.length>=t?`${e.slice(0,Math.max(0,t-1))}…`:`${e}…`}return i}function Dt(e){let t=[],n=!1;for(let r of e.replace(/\r\n?/g,`
7
+ `).split(`
8
+ `)){if(/^\s*```/.test(r)){n=!n;continue}if(n){t.push(r);continue}let e=r.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/`([^`]+)`/g,`$1`).replace(/<((?:https?|mailto):[^>]+)>/g,`$1`).replace(/^#{1,6}\s+/,``).replace(/^>\s?/,``).replace(/^[-*]\s+/,`• `).replace(/\*\*([^*]+)\*\*/g,`$1`).replace(/__([^_]+)__/g,`$1`).replace(/<\/?[a-zA-Z][^>]*>/g,``);/^\s*([-*_])\1{2,}\s*$/.test(e)&&(e=``),t.push(e)}return t.join(`
9
+ `)}function Ot(e,t,n,r){return[r?`list`:`text`,e,t,n,r?.join(``)??``].join(``)}function kt(e){return e>=4?4:e>=2?2:1}function C(e,t){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function At(e,t,n=3){let r=Math.max(1,Math.ceil(e.length/n)),i=Math.min(Math.max(t,0),r-1);return{items:e.slice(i*n,i*n+n),page:i,pages:r}}function jt(e){if(e.length===0)return{lines:[`No messages yet.`],lineMessages:[0],messageStarts:{},messageCount:0,latestMessageStart:0};let t=[],n=[],r={},i=0,a=0;for(let o of e){let e=Dt(o.parts.filter(e=>e.type===`text`).map(e=>e.text).join(`
10
+ `)).trim();if(!e)continue;let s=i;i+=1;let c=t.length;r[o.id]=c,a=c;let l=e=>{t.push(e),n.push(s)};l(o.role.toUpperCase());for(let t of Et(e,52,2**53-1))l(t);l(``)}return t.length===0?{lines:[`No readable text.`],lineMessages:[0],messageStarts:{},messageCount:0,latestMessageStart:0}:{lines:t,lineMessages:n,messageStarts:r,messageCount:i,latestMessageStart:a}}function Mt(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()].sort((e,t)=>e.createdAt-t.createdAt||e.id.localeCompare(t.id))}function Nt(e){let t=[...e].reverse().find(e=>e.role===`assistant`);if(!t)return``;if(t.metadata?.error)return`Error`;let n=t.parts.filter(e=>e.type===`tool`);return n.some(e=>e.type===`tool`&&e.status===`error`)?`Tool error`:t.streaming?n.length>0?`Working · ${n.length} step${n.length===1?``:`s`}`:`Working`:n.length>0?`${n.length} tool step${n.length===1?``:`s`}`:t.parts.some(e=>e.type===`reasoning`)?`Reasoning`:``}function Pt(e,t){let n=Math.max(0,e.lines.length-t);return{offset:Math.min(e.latestMessageStart,n),newBelow:!1}}function Ft(e){let t=Math.max(0,e.previousLineCount-e.visibleLines),n=Math.max(0,e.build.lines.length-e.visibleLines),r=e.previousOffset>=t;if(e.newMessageID!==void 0){let t=e.build.messageStarts[e.newMessageID];return t===void 0?{offset:Math.min(e.previousOffset,n),newBelow:e.newBelow}:r?{offset:Math.min(t,n),newBelow:!1}:{offset:Math.min(e.previousOffset,n),newBelow:!0}}return{offset:Math.min(e.previousOffset,n),newBelow:e.newBelow}}function It(e,t){if(t.attentionID)return[{kind:`action`,action:`attention`,label:`Answer in Inbox`},{kind:`action`,action:`read`,label:`Read chat`}];if(t.questions.length>1)return[{kind:`action`,action:`phone`,label:`Answer on phone`},{kind:`action`,action:`more`,label:`More`},{kind:`action`,action:`read`,label:`Read chat`}];let n=e.choices.slice(0,6).map(e=>({kind:`choice`,label:C(e.label,54),choice:e}));return e.allowsFreeText&&n.push({kind:`action`,action:`type`,label:`Type answer`}),n.push({kind:`action`,action:`more`,label:`More`}),n.push({kind:`action`,action:`read`,label:`Read chat`}),n}function Lt(e,t){let n=(t?.questions.length??0)>1,r=Et(`${n?`Q1 `:`Q `}${e.text}`,54,2);return!n&&r.length<2&&e.context&&r.push(C(e.context,54)),n&&r.length<2&&t&&t.questions.length>1&&r.push(C(`+${t.questions.length-1} more on phone`,54)),r.join(`
11
+ `)}function Rt(e){return e.map((e,t)=>`${t+1}. ${e.text.trim()}`).join(`
12
+ `)}function zt(e,t){return t.map(t=>({questionId:t.questionId,messageId:e.messageId,revision:e.revision,...t.choice?{choiceId:t.choice.id}:{},source:t.choice?t.choice.kind===`boolean`?`boolean`:`choice`:`text`}))}function Bt(e,t){let n=e.questions[0];if(n)return{questionId:n.id,messageId:e.messageId,revision:e.revision,...t?{choiceId:t.id}:{},source:t?t.kind===`boolean`?`boolean`:`choice`:`text`}}function Vt(e){let t=e?.sysEvent?.eventType??e?.textEvent?.eventType??e?.listEvent?.eventType;if(t===S.DOUBLE_CLICK_EVENT)return{type:`back`};if(t===S.SCROLL_TOP_EVENT)return{type:`scroll`,direction:-1};if(t===S.SCROLL_BOTTOM_EVENT)return{type:`scroll`,direction:1};if(e?.listEvent)return(e.listEvent.eventType??S.CLICK_EVENT)===S.CLICK_EVENT?{type:`list-click`,index:e.listEvent.currentSelectItemIndex??0}:void 0;if(e?.sysEvent)return e.sysEvent.eventSource!==void 0&&(e.sysEvent.eventType===void 0||e.sysEvent.eventType===S.CLICK_EVENT)?{type:`text-click`}:void 0;if(e?.textEvent&&(e.textEvent.eventType===void 0||e.textEvent.eventType===S.CLICK_EVENT))return{type:`text-click`}}function Ht(e){return e&&typeof e==`object`?e:{message:String(e)}}function Ut(e){let t=Ht(e).message;return typeof t==`string`&&t.trim()?t.trim():`An unexpected error occurred.`}function w(e){let t=Ht(e),n=typeof t.code==`string`?t.code:void 0,r=typeof t.status==`number`?t.status:void 0,i=typeof t.name==`string`?t.name:void 0,a=Ut(e);return i===`TimeoutError`||n===`timeout`||r===504?{kind:`timeout`,header:`TIMEOUT`,title:`Hub timeout`,message:`The hub took too long to respond. Try again.`,short:`Timed out · try again`,action:`retry`}:r===401||n===`unauthorized`?{kind:`auth`,header:`SESSION EXPIRED`,title:`Session expired`,message:`This phone's session expired. Pair it again to continue.`,short:`Session expired · pair again`,action:`pair`}:n===`provider_offline`?{kind:`provider`,header:`AGENT OFFLINE`,title:`Agent offline`,message:`The hub is reachable, but the agent provider is offline.`,short:`Agent offline · try again`,action:`retry`}:n===`provider_auth_error`?{kind:`provider-auth`,header:`PROVIDER SIGN-IN`,title:`Provider sign-in`,message:`The provider rejected its credentials. Fix them on the hub, then retry.`,short:`Provider sign-in needed`,action:`retry`}:n===`network_error`?{kind:`offline`,header:`HUB OFFLINE`,title:`Hub offline`,message:`Can't reach the hub. Check Wi-Fi and the hub address.`,short:`Offline · try again`,action:`retry`}:n===`rate_limited`||r===429?{kind:`rate`,header:`HUB BUSY`,title:`Hub busy`,message:`The hub is rate limiting requests. Wait a moment, then retry.`,short:`Hub busy · wait and retry`,action:`retry`}:n===`not_found`||r===404?{kind:`not-found`,header:`NOT FOUND`,title:`Session not found`,message:`This session is no longer available. Go back and refresh.`,short:`Session not found`,action:`back`}:n===`conflict`||r===409?{kind:`conflict`,header:`CHANGED`,title:`Session changed`,message:`The session changed while you were working. Try again.`,short:`Session changed · retry`,action:`retry`}:(r===502||r===503)&&(!n||n===`http_error`||n===`event_stream_failed`)?{kind:`offline`,header:`HUB OFFLINE`,title:`Hub offline`,message:`Can't reach the hub. Check Wi-Fi and the hub address.`,short:`Offline · try again`,action:`retry`}:r!==void 0&&r>=500?{kind:`server`,header:`HUB ERROR`,title:`Hub error`,message:`The hub hit an internal error. Try again.`,short:`Hub error · try again`,action:`retry`}:/failed to fetch|load failed|networkerror|network error/i.test(a)?{kind:`offline`,header:`HUB OFFLINE`,title:`Hub offline`,message:`Can't reach the hub. Check Wi-Fi and the hub address.`,short:`Offline · try again`,action:`retry`}:{kind:`unknown`,header:`ERROR`,title:`Something went wrong`,message:`An unexpected error occurred. Try again.`,short:`Something went wrong · retry`,action:`retry`}}function Wt(e,t,n){return new qe({containerTotalNum:3,textObject:[new b({xPosition:0,yPosition:0,width:576,height:36,borderWidth:0,borderColor:5,borderRadius:0,paddingLength:4,containerID:1,containerName:`header`,isEventCapture:0,content:n??`OKTOSO`}),new b({xPosition:0,yPosition:38,width:576,height:204,borderWidth:0,borderColor:5,borderRadius:4,paddingLength:4,containerID:2,containerName:`body`,isEventCapture:1,content:e}),new b({xPosition:0,yPosition:246,width:576,height:42,borderWidth:0,borderColor:5,borderRadius:0,paddingLength:4,containerID:3,containerName:`footer`,isEventCapture:0,content:t})]})}function T(e,t,n,r){let i=r?56:0,a=32+i,o=244-a,s=[new b({xPosition:0,yPosition:0,width:576,height:32,borderWidth:0,borderColor:5,borderRadius:0,paddingLength:4,containerID:1,containerName:`header`,isEventCapture:0,content:e})];r&&s.push(new b({xPosition:0,yPosition:32,width:576,height:i,borderWidth:0,borderColor:5,borderRadius:0,paddingLength:4,containerID:2,containerName:`summary`,isEventCapture:0,content:r}));let c=new be({xPosition:0,yPosition:a,width:576,height:o,borderWidth:0,borderColor:5,borderRadius:4,paddingLength:0,containerID:r?3:2,containerName:`list`,isEventCapture:1,itemContainer:new ye({itemCount:Math.max(1,t.length),itemWidth:568,itemName:t.length?t:[`(empty)`],isItemSelectBorderEn:1})});return s.push(new b({xPosition:0,yPosition:246,width:576,height:42,borderWidth:0,borderColor:5,borderRadius:0,paddingLength:4,containerID:4,containerName:`footer`,isEventCapture:0,content:n})),new qe({containerTotalNum:r?4:3,textObject:s,listObject:[c]})}var Gt=[{glyph:`●`,label:`Unread`},{glyph:`?`,label:`Question`},{glyph:`■`,label:`Permission`},{glyph:`▲`,label:`Approval`},{glyph:`!`,label:`Error`},{glyph:`▶`,label:`Running`},{glyph:`▼`,label:`Offline`},{glyph:`◇`,label:`Idle`},{glyph:`◆`,label:`Attention`},{glyph:`›`,label:`Subagent prefix`},{glyph:`›?`,label:`Child question`},{glyph:`›■`,label:`Child permission`}];function Kt(){return Gt.map(e=>`${e.glyph} ${e.label}`)}var qt={permission:`■`,approval:`▲`,question:`?`,unread:`●`,error:`!`};function Jt(e){return qt[e]??`◆`}function Yt(e){return e?`›`:``}function Xt(e){return C(`${Yt(e.parentRef)}${Jt(e.type)} ${e.title}`,54)}function Zt(e){return C(`${Yt(e.parentRef)}${Jt(e.type)} ${e.title}`,40)}function Qt(e,t){let n=Yt(e),r=t?`?`:``;return n&&r?`${n}${r} `:n?`${n} `:r?`${r} `:``}function $t(e,t){return t?`?`:e.status===`error`?`!`:e.unread?`●`:e.status===`running`?`▶`:e.status===`offline`?`▼`:`◇`}function en(e,t){return C(`${Yt(e.parentRef)}${$t(e,t)} ${e.title}`,54)}function tn(e){let t=e.project?`${e.project} · ${e.title}`:e.title;return C(`${Yt(e.parentRef)}${t}`,40)}var nn=`oktoso-even-g2-token`,rn=6048e5,E={screen:`pairing`,attention:[],attentionTotal:0,sessions:[],returnScreen:`home`,chatMessages:[],chatLines:[],chatLineMessages:[],chatMessageCount:0,chatOffset:0,chatNewBelow:!1,chatActivity:``,chatLoading:!1,formValues:{},formOptionsField:void 0,formError:void 0,formBusy:!1,replyOptions:[],replyPage:0,replyReturnScreen:`chat`,choiceOptions:[],choicePage:0,question:void 0,questionSummaries:{},batchAnswers:{},answerText:void 0,pendingAnswerText:void 0,answerBusy:!1,answerError:void 0,answerMode:!1,answerStale:void 0,answerKey:void 0,answerKeyText:void 0,pendingAnswerChoice:void 0,failureReturnScreen:`home`,streamStatus:`connecting`},D,O,k=localStorage.getItem(nn)??``,an,on,sn=0,cn=0,ln=0,un=0,A=6,dn=500,fn=[],pn=!1,j,M=0,mn=``,hn=0,gn=!1,_n=!1,vn,yn=!1,bn,xn=[],Sn,Cn=0,wn=0,Tn,N={},En=``,Dn=Q(`phone-session`),P=Q(`phone-text`),On=Q(`phone-send`),kn=Q(`phone-status`),An=Q(`phone-form-panel`),jn=Q(`phone-form-title`),Mn=Q(`phone-form-summary`),Nn=Q(`phone-form-fields`),Pn=Q(`phone-form-submit`),Fn=Q(`phone-form-cancel`),In=Q(`phone-form-status`),Ln=Q(`phone-question-panel`),Rn=Q(`phone-question-session`),zn=Q(`phone-question-text`),F=Q(`phone-question-choices`),Bn=Q(`phone-batch-send`),Vn=Q(`phone-question-type`),I=Q(`phone-question-status`),Hn=Q(`connection`),Un=Q(`connection-status`),L=Q(`pairing-code`),Wn=Q(`pair`),Gn=Q(`pair-scan`),Kn=Q(`pair-video`),qn=Q(`pair-scan-note`),Jn=Q(`pairing-status`),Yn=Q(`bridge-status`),Xn=Q(`debug`),Zn=Q(`glasses-preview`),Qn=Q(`preview-selection`);function R(e){Xn.textContent=`${new Date().toLocaleTimeString()} ${e}\n${Xn.textContent??``}`.slice(0,4e3)}function z(e,t=!1){Hn.textContent=e,Un.textContent=t?e:``,Un.className=t?`status error`:`status`}function B(e,t=!1){Jn.textContent=e,Jn.className=t?`status error`:`status`}function $n(){D&&(Yn.textContent=`Bridge · ${sn} input · ${cn} frames · input ${ln} ms · frame ${un} ms`)}function er(e){E.streamStatus=e,e===`live`?z(`Connected · live`):E.failure&&tr(E.failure)?z(E.failure.title,!0):z(e===`connecting`?`Connecting…`:e===`reconnecting`?`Reconnecting…`:`Connected · polling`),D&&(E.screen===`home`||E.screen===`sessions`||E.screen===`inbox`||E.screen===`chat`)&&Y()}function V(){O&&z(yn?`Connected · live`:`Connected · polling`)}function tr(e){return e.kind!==`not-found`&&e.kind!==`conflict`}function nr(e){(e.kind===`offline`||e.kind===`timeout`||e.kind===`server`)&&(yn=!1)}function H(){let e=!!(E.failure??E.chatFailure);E.failure=void 0,E.chatFailure=void 0,Sn=void 0,e&&V()}function U(e,t={}){let n=w(e);return nr(n),E.failure=n,E.chatFailure=void 0,E.failureReturnScreen=t.returnScreen??(E.screen===`failure`?E.failureReturnScreen:E.screen),Sn=t.retry,E.screen=`failure`,tr(n)?z(n.title,!0):V(),_r(),Y(),R(`Failure: ${n.kind} · ${n.title}`),n}function rr(e){return w(e).kind===`auth`}function ir(e){return w(e).short}function ar(e=E.failure){return e?e.action===`pair`?`Pair this phone`:e.action===`back`?`Back · ${e.title}`:`Retry · ${e.title}`:``}function or(){let e=E.failure;if(!e)return[];let t=[];return e.action===`pair`?t.push({id:`pair`,label:`Pair this phone`}):e.action===`retry`&&t.push({id:`retry`,label:`Retry`}),t.push({id:`back`,label:`Back`}),t}function sr(){let e=Sn,t=E.failureReturnScreen;E.failure=void 0,E.chatFailure=void 0,Sn=void 0,E.screen=t===`failure`?`home`:t,Y(),e?e():Bi()}function cr(){B(`Session expired. Create a new pairing code, then pair this phone again.`,!0),L.scrollIntoView({block:`center`,behavior:`smooth`}),L.focus()}function lr(){return E.failure?.kind===`offline`?`Offline`:E.failure?.kind===`auth`?`Pair`:E.streamStatus===`reconnecting`?`Reconnecting`:E.streamStatus===`live`?`Live`:`Polling`}function W(e,t=!1){kn.textContent=e,kn.className=t?`status error`:`status`}function ur(e,t=!1){In.textContent=e,In.className=t?`status error`:`status`}function G(){Tn=void 0,N={},Nn.replaceChildren(),An.hidden=!0,ur(``)}function dr(e){let t=e.fields??[];if(t.length===0)G();else{Tn=e,N={},jn.textContent=e.title,Mn.textContent=e.summary,Nn.replaceChildren(),ur(``);for(let[e,n]of t.entries())N[n.id]=pr(n),Nn.append(fr(n,e));Pn.disabled=!e.actions.some(e=>e.id===`answer`),An.hidden=!1,An.scrollIntoView({block:`nearest`,behavior:`smooth`})}}function fr(e,t){if(e.type===`multiselect`){let t=document.createElement(`fieldset`),n=document.createElement(`legend`);n.textContent=`${e.label}${e.required?` *`:``}`,t.append(n);let r=Array.isArray(N[e.id])?N[e.id]:[];for(let n of e.options??[]){let i=document.createElement(`label`),a=document.createElement(`input`);a.type=`checkbox`,a.checked=r.includes(n.value),a.addEventListener(`change`,()=>{let t=Array.isArray(N[e.id])?N[e.id]:[];N[e.id]=a.checked?[...t,n.value]:t.filter(e=>e!==n.value)}),i.append(a,document.createTextNode(n.label)),t.append(i)}if(e.description){let n=document.createElement(`small`);n.className=`hint`,n.textContent=e.description,t.append(n)}return t}let n=document.createElement(`label`);n.textContent=`${e.label}${e.required?` *`:``}`;let r=`phone-form-field-${t}`;if(e.type===`boolean`){let t=document.createElement(`input`);t.id=r,t.type=`checkbox`,t.checked=!!N[e.id],t.addEventListener(`change`,()=>{N[e.id]=t.checked}),n.append(t)}else if(e.type===`select`){let t=document.createElement(`select`);t.id=r;let i=document.createElement(`option`);i.value=``,i.textContent=`Choose…`,t.append(i);for(let n of e.options??[]){let e=document.createElement(`option`);e.value=n.value,e.textContent=n.label,t.append(e)}t.value=typeof N[e.id]==`string`?N[e.id]:``,t.addEventListener(`change`,()=>{N[e.id]=t.value}),n.append(t)}else if(e.type===`textarea`){let t=document.createElement(`textarea`);t.id=r,t.rows=3,t.placeholder=e.placeholder??``,t.value=typeof N[e.id]==`string`?N[e.id]:``,t.addEventListener(`input`,()=>{N[e.id]=t.value}),n.append(t)}else{let t=document.createElement(`input`);t.id=r,t.type=e.type===`number`?`number`:`text`,t.placeholder=e.placeholder??``,t.value=typeof N[e.id]==`string`||typeof N[e.id]==`number`?String(N[e.id]):``,t.addEventListener(`input`,()=>{N[e.id]=t.value}),n.append(t)}if(e.description){let t=document.createElement(`small`);t.className=`hint`,t.textContent=e.description,n.append(t)}return n}function pr(e){return e.defaultValue===void 0?e.type===`boolean`?!1:e.type===`multiselect`?[]:``:e.defaultValue}function mr(e){return(e.fields??[]).filter(e=>{if(!e.required)return!1;let t=N[e.id];return t===void 0||t===``||Array.isArray(t)&&t.length===0})}async function hr(){let e=Tn;if(!e||!O)return;let t=mr(e);if(t.length>0){ur(`Required: ${t.map(e=>e.label).join(`, `)}`,!0);return}let n={};for(let t of e.fields??[]){let e=N[t.id];n[t.id]=t.type===`number`&&typeof e==`string`&&e!==``?Number(e):e}Pn.disabled=!0,ur(`Submitting…`);try{await O.actOnAttention(e.id,`answer`,{fields:n}),E.selectedAttention=void 0,G(),E.screen=`inbox`,await K(),Y()}catch(e){if(rr(e)){U(e,{returnScreen:`attention`});return}ur(ir(e),!0)}finally{Pn.disabled=!1}}function gr(){let e=!!E.sessionRef;Dn.textContent=e?C(`${Qt(E.sessionParentRef,!1)}${E.sessionTitle??E.sessionRef??``}`,48):`No session open`,On.textContent=E.answerMode?`Send answer`:`Send to session`,On.disabled=!e||!P.value.trim()||E.answerBusy}function _r(){gr()}function vr(){return E.question?.questions[0]}function yr(e){return e?E.questionSummaries[e]:void 0}function br(){let e={};for(let t of E.question?.questions??[])e[t.id]={text:``};E.batchAnswers=e}function xr(e){let t=e.questions[0];return{sessionRef:e.sessionRef,messageId:e.messageId,revision:e.revision,askedAt:e.askedAt,questionCount:e.questions.length,text:t.text,...t.context?{context:t.context}:{},...e.attentionID?{attentionID:e.attentionID}:{}}}function Sr(e,t){let n=E.questionSummaries[e];if(!t)return n?(delete E.questionSummaries[e],!0):!1;let r=xr(t);return n&&JSON.stringify(n)===JSON.stringify(r)?!1:(E.questionSummaries[e]=r,!0)}function Cr(){let e=new Set;E.sessionRef&&e.add(E.sessionRef);for(let t of E.attention)e.add(t.sessionRef);for(let t of E.sessions)e.add(t.ref);return[...e].slice(0,10)}async function wr(e){if(!O)return;let t=[...new Set((e??Cr()).filter(Boolean))].slice(0,10);if(t.length!==0)try{let e=await O.questionSummaries(t),n=new Map(e.data.map(e=>[e.sessionRef,e])),r=new Set(e.failed??[]),i=!1;for(let e of t){if(r.has(e))continue;let t=n.get(e),a=E.questionSummaries[e];t?JSON.stringify(a)!==JSON.stringify(t)&&(E.questionSummaries[e]=t,i=!0):a&&(delete E.questionSummaries[e],i=!0)}i&&(E.screen===`home`||E.screen===`sessions`||E.screen===`inbox`||E.screen===`attention`)&&Y()}catch(e){R(`Question discovery failed: ${$(e)}`)}}function Tr(){let e=vr();return e&&E.question?It(e,E.question):[]}function Er(){return(E.question?.questions.length??0)>1}function Dr(){let e=vr();return e?Lt(e,E.question):``}function Or(e=`ANSWER`){return Er()?C(`${e} · ${E.question?.questions.length??0} questions`,40):C(`${e} · ${Qt(E.sessionParentRef,!1)}${E.sessionTitle??`Session`}`,40)}function kr(e){return E.question?Bt(E.question,e):void 0}function Ar(){return globalThis.crypto?.randomUUID?.()??`answer-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function jr(e){return E.answerKey&&E.answerKeyText===e||(E.answerKey=Ar(),E.answerKeyText=e),E.answerKey}var Mr=``.replace(/\/+$/,``);function Nr(){return Mr||(window.location.origin===`null`?``:window.location.origin)}async function Pr(e,t,n){if(n&&t.auth?.kind===`session`&&t.auth.expiresAt!==void 0&&!(t.auth.expiresAt-Date.now()>rn))try{let t=await e.refresh();e.setToken(t.token),k=t.token,localStorage.setItem(nn,t.token)}catch{}}function Fr(e){k=e,localStorage.setItem(nn,e)}async function Ir(e){O=e;let t=Q(`hub-token`);t.value=``,t.placeholder=k?`Saved token`:`Paired with cookie`,G(),H(),z(`Connected`),R(`Hub connected`),Hr(),await K(),E.screen=`home`,Y()}async function Lr(e){let t=Nr();try{let n=new vt({baseUrl:t,token:e}),r=await n.authCheck();return Fr(e),await Pr(n,r,!0),await Ir(n),!0}catch(e){return R(`Token connect failed: ${$(e)}`),!1}}async function Rr(){let e=Q(`hub-token`).value.trim()||k;if(z(`Connecting…`),!(e&&await Lr(e))){try{let e=new vt({baseUrl:Nr()});await e.authCheck(),k=``,localStorage.removeItem(nn),await Ir(e);return}catch{}O=void 0,z(e?`Connection failed`:`Pair or enter token`,!0),R(`Connect failed: no accepted hub credential`),Y()}}async function zr(e){let t=Ct(e);if(!t)B(`Paste the pairing link or code from the hub terminal.`,!0);else{Wn.disabled=!0,B(`Pairing…`);try{let e=await new vt({baseUrl:Nr()}).connect(t);L.value=``,await Lr(e.token)?B(`Paired. This phone can close setup.`):B(`Paired, but the hub rejected the new session. Run Pair again.`,!0)}catch(e){let t=$(e);B(/expired|already used|401|unauthorized/i.test(t)?"That pairing link expired or was already used. Create a new one with `p` in the hub terminal.":t,!0),R(`Pairing failed: ${t}`)}finally{Wn.disabled=!1}}}async function Br(){if(on){on.abort(),on=void 0,Kn.hidden=!0,Gn.textContent=`Scan QR`;return}if(!wt()){B(`Camera QR scanning needs HTTPS in this webview. Paste the pairing code instead.`,!0);return}let e=new AbortController;on=e,Kn.hidden=!1,Gn.textContent=`Stop scanning`,B(`Point the camera at the hub terminal QR.`);try{let t=await Tt(Kn,e.signal);if(e.signal.aborted)return;if(!t){B(`No pairing QR found. Try again or paste the code.`,!0);return}L.value=t,B(`QR found. Pairing…`),Kn.hidden=!0,Gn.textContent=`Scan QR`,on=void 0,await zr(t);return}catch(t){e.signal.aborted||(B($(t),!0),R(`QR scan failed: ${$(t)}`))}finally{on===e&&(on=void 0,Kn.hidden=!0,Gn.textContent=`Scan QR`)}}async function Vr(){let e=Nr();z(`Restoring…`);let t=[...k?[{hub:new vt({baseUrl:e,token:k}),viaToken:!0}]:[],{hub:new vt({baseUrl:e}),viaToken:!1}];for(let e of t)try{let t=await e.hub.authCheck();await Pr(e.hub,t,e.viaToken),O=e.hub,e.viaToken||(k=``,localStorage.removeItem(nn)),Q(`hub-token`).placeholder=k?`Saved token`:`Paired with cookie`,G(),H(),z(`Connected`),R(`Restored hub session`),Hr(),await K(),E.screen=`home`,Y();return}catch{}O=void 0,z(k?`Reconnect in phone`:`Not connected`,!!k),Y()}function Hr(){if(vn?.abort(),yn=!1,!O)return;let e=new AbortController;vn=e,O.startEvents({after:0,signal:e.signal,onStatus:t=>{e===vn&&(yn=t===`open`,er(t===`open`?`live`:t===`reconnecting`?`reconnecting`:t===`connecting`?`connecting`:`polling`),R(`Hub events: ${t}`))},onEvent:t=>{if(!e.signal.aborted){if(t.type===`resync`)K(),wr(),E.screen===`chat`&&E.sessionRef&&J(!0);else{if(t.type===`session.updated`&&(E.screen===`inbox`||E.screen===`home`)){Ur(()=>K());let e=t.sessionRef;e&&Ur(()=>wr([e]))}if((t.type===`message.created`||t.type===`message.updated`)&&E.screen===`chat`&&t.sessionRef===E.sessionRef){let e=yt(t);e?gi(e):Ur(()=>J(!0));let n=t.sessionRef;n&&Ur(()=>wr([n]))}if((t.type===`message.created`||t.type===`message.updated`)&&(E.screen===`home`||E.screen===`inbox`||E.screen===`sessions`)){let e=t.sessionRef;e&&Ur(()=>wr([e]))}t.type===`session.updated`&&E.screen===`chat`&&t.sessionRef===E.sessionRef&&Ur(()=>J(!0)),t.type.startsWith(`attention.`)&&E.screen===`inbox`&&Ur(()=>K())}}}}).catch(t=>{if(e.signal.aborted)return;yn=!1;let n=w(t);n.kind===`auth`?U(t,{returnScreen:E.screen===`home`||E.screen===`inbox`||E.screen===`sessions`||E.screen===`chat`?E.screen:E.returnScreen,retry:()=>Hr()}):er(`polling`),R(`Hub events stopped: ${n.kind} · ${n.title}`)})}function Ur(e){xn.push(e),bn&&clearTimeout(bn),bn=setTimeout(()=>{bn=void 0;let e=xn;xn=[],(async()=>{for(let t of e)await t()})()},500)}function Wr(e){D&&X(`OKTOSO`,e,`Please wait`)&&Z(Wt(e,`Please wait`))}async function Gr(){if(O){Wr(`Loading recent
13
+ sessions…`);try{let e=await O.sessions({limit:5,scope:`root`});E.sessions=e.data,H(),V(),E.screen=`sessions`,Y(),wr(e.data.map(e=>e.ref))}catch(e){if(rr(e)){U(e,{returnScreen:`home`,retry:()=>Gr()});return}let t=w(e);nr(t),E.failure=t,E.screen=`sessions`,Y(),R(`Session list failed: ${t.kind} · ${t.title}`)}}}async function K(){if(!O){Y();return}let e=E.screen,t=Kr(E.attention),n=E.attentionTotal,r=E.failure;try{let i=await O.attention();E.attentionTotal=i.data.length,E.attention=i.data.slice(0,5),Tn&&!i.data.some(e=>e.id===Tn?.id)&&G(),E.screen!==`failure`&&H(),V(),E.screen===`pairing`&&(E.screen=`home`);let a=e!==E.screen||t!==Kr(E.attention)||n!==E.attentionTotal||r!==void 0;_r(),a&&Y(),wr(Cr())}catch(t){if(rr(t)){U(t,{returnScreen:E.screen===`inbox`?`inbox`:`home`,retry:()=>K()});return}let n=w(t);nr(n),E.failure=n,E.screen===`chat`&&(E.chatFailure=n),E.screen===`pairing`&&(E.screen=`home`),(e!==E.screen||r?.kind!==n.kind||r?.message!==n.message)&&Y(),R(`Inbox refresh failed: ${n.kind} · ${n.title}`)}}function Kr(e){return e.map(e=>`${Xt(e)}|${e.title}`).join(`
14
+ `)}async function qr(e){let t=E.attention[e];t&&(E.selectedAttention=t,H(),E.screen=`attention`,t.fields?.length&&!Jr(t)?dr(t):G(),Y())}function Jr(e){let t=e.fields??[];return t.length>0&&t.every(e=>e.type===`boolean`||e.type===`select`)&&e.actions.some(e=>e.id===`answer`)}function Yr(e){let t=(e.fields?.length??0)>0,n=e.actions.some(e=>e.id===`answer`),r=e.actions.filter(e=>e.id!==`answer`||!t).map(e=>({id:e.id,label:e.label})),i=[];return Jr(e)&&i.push({id:`glass_form`,label:`Answer on glass`}),t&&n&&i.push({id:`phone_form`,label:`Answer on phone`}),r.push({id:`open_chat`,label:yr(e.sessionRef)?`Answer in chat`:`Open chat`}),[...i,...r]}function Xr(e){E.formValues={},E.formOptionsField=void 0,E.formError=void 0,E.formBusy=!1;for(let t of e.fields??[])E.formValues[t.id]=t.defaultValue===void 0?t.type===`boolean`?void 0:``:t.defaultValue;G(),E.screen=`glass-form`,Y()}function Zr(e){let t=(e.fields??[]).map(e=>{let t=E.formValues[e.id],n=t===void 0||t===``?`Choose…`:e.type===`boolean`?t?`Yes`:`No`:Qr(e,String(t));return C(`${e.label}: ${n}`,54)});return t.push(`Submit answer`),{items:t,footer:E.formError?C(E.formError,54):`Tap change Back ×2`}}function Qr(e,t){return e.options?.find(e=>e.value===t)?.label??t}function $r(e,t){let n=e.fields?.[t];if(n){if(E.formError=void 0,n.type===`boolean`){let e=E.formValues[n.id];E.formValues[n.id]=e===void 0||!e,Y()}else n.type===`select`&&(E.formOptionsField=n,E.screen=`glass-options`,Y())}}async function ei(e){if(!O||E.formBusy)return;let t=(e.fields??[]).filter(e=>{if(!e.required)return!1;let t=E.formValues[e.id];return t===void 0||t===``});if(t.length>0)E.formError=`Required: ${t.map(e=>e.label).join(`, `)}`,Y();else{E.formBusy=!0,E.formError=void 0;try{let t={};for(let n of e.fields??[])t[n.id]=E.formValues[n.id];await O.actOnAttention(e.id,`answer`,{fields:t}),E.selectedAttention=void 0,E.formValues={},E.formOptionsField=void 0,E.screen=`inbox`,await K(),Y()}catch(e){if(rr(e)){U(e,{returnScreen:`attention`});return}E.formError=ir(e),Y()}finally{E.formBusy=!1}}}async function ti(e){let t=E.selectedAttention;if(!t)return;let n=Yr(t)[e];if(n){if(n.id===`open_chat`)await ni(t.sessionRef,t.title,`inbox`);else if(n.id===`glass_form`)Xr(t);else if(n.id===`phone_form`)dr(t);else if(O)try{await O.actOnAttention(t.id,n.id,{}),E.selectedAttention=void 0,await K()}catch(t){U(t,{returnScreen:`attention`,retry:()=>ti(e)}),R(`Attention action failed: ${ir(t)}`)}}}async function ni(e,t,n=`inbox`){O&&(hn+=1,E.sessionRef=e,E.sessionTitle=t,E.sessionProject=void 0,E.sessionParentRef=void 0,E.returnScreen=n,E.chatMessages=[],E.chatLines=[],E.chatLineMessages=[],E.chatMessageCount=0,E.chatOffset=0,E.chatNewBelow=!1,E.chatActivity=``,E.chatLoading=!0,E.question=void 0,br(),E.answerText=void 0,E.pendingAnswerText=void 0,E.answerError=void 0,E.answerBusy=!1,E.answerMode=!1,E.answerStale=void 0,E.answerKey=void 0,E.answerKeyText=void 0,E.pendingAnswerChoice=void 0,Cn=0,wn=0,E.screen=`chat`,H(),E.notice=void 0,G(),_r(),q(),Y(),O?.session(e).then(t=>{E.sessionRef===e&&(E.sessionProject=t.project,E.sessionParentRef=t.parentRef,E.screen===`chat`&&Y())}).catch(()=>void 0),ri(e),await J(!1),O&&O.markRead(e).catch(()=>void 0))}async function ri(e){if(O)try{let t=await O.question(e);if(E.sessionRef!==e)return;E.question=t??void 0,br(),E.answerMode=!1,E.answerError=void 0,Sr(e,t??null)&&E.screen!==`chat`&&Y(),q(),E.screen===`chat`&&Y()}catch(e){R(`Question load failed: ${$(e)}`)}}function ii(){E.question?(E.screen=`answer`,E.answerError=void 0,E.answerStale=void 0,E.answerKey=void 0,E.answerKeyText=void 0,E.pendingAnswerText=void 0,E.pendingAnswerChoice=void 0,E.answerMode=!1,q(),Y()):Ci()}async function ai(e,t=`glass`,n){if(!O||!E.sessionRef||E.answerBusy)return;let r=E.sessionRef,i=kr(n),a=i?jr(e):void 0;E.answerBusy=!0,E.answerText=e,E.answerError=void 0,q(),t===`phone`&&W(`Sending answer…`);try{if(await O.sendMessage(r,{text:e,...i?{answer:i}:{}},a?{idempotencyKey:a}:{}),E.sessionRef!==r)return;E.answerBusy=!1,E.question=void 0,E.answerMode=!1,E.answerStale=void 0,E.answerKey=void 0,E.answerKeyText=void 0,E.pendingAnswerText=void 0,E.pendingAnswerChoice=void 0,Sr(r,null),V(),E.screen=`answer-sent`,q(),t===`phone`&&(P.value=``,W(`Answer sent.`)),Y()}catch(r){E.answerBusy=!1;let i=r.status,a=r.details?.reason;if(i===409&&(a===`question_changed`||a===`question_resolved`)){E.answerStale=a===`question_resolved`?`resolved`:`changed`,E.answerKey=void 0,E.answerKeyText=void 0,E.screen=`answer-stale`,t===`phone`&&W(`Question changed. Review before answering.`,!0),q(),Y(),R(`Answer rejected: ${a}`);return}let o=w(r);if(o.kind===`auth`){U(r,{returnScreen:`chat`,retry:()=>ai(e,t,n)});return}E.answerError=o.short,E.screen=`answer`,t===`phone`&&W(o.short,!0),Y(),R(`Answer send failed: ${o.kind} · ${o.title}`)}}function oi(){P.focus(),P.scrollIntoView({block:`center`,behavior:`smooth`}),W(`Type your answer, then send.`)}function si(){E.answerMode=!0,E.screen=`answer-type`,q(),oi(),Y()}async function ci(e){if(!e){E.screen=`inbox`,Y();return}let t=E.attention.find(t=>t.id===e);t||=(await K(),E.attention.find(t=>t.id===e)),t?(E.selectedAttention=t,E.screen=`attention`,Y()):(E.screen=`inbox`,Y())}async function li(e){if(E.screen===`answer-stale`){if(E.answerStale===`changed`&&e===0&&E.sessionRef){await ri(E.sessionRef),E.answerStale=void 0,E.screen=E.question?`answer`:`chat`,Y();return}let t=E.sessionRef;E.answerStale=void 0,E.question=void 0,t&&Sr(t,null),E.screen=`chat`,E.answerMode=!1,q(),Y(),t&&ri(t);return}if(E.screen===`answer-confirm`){if(e===0){let e=E.pendingAnswerText;e&&await ai(e,`glass`,E.pendingAnswerChoice)}else E.pendingAnswerText=void 0,E.pendingAnswerChoice=void 0,E.screen=`answer`,Y();return}if(E.screen===`answer-more`){if(e===0)await Ci();else if(e===1)E.screen=`chat`,E.answerMode=!1,q(),Y();else if(e===2&&O&&E.sessionRef){try{await O.interrupt(E.sessionRef)}catch(e){R(`Interrupt failed: ${$(e)}`)}E.screen=`chat`,Y()}return}let t=Tr()[e];t&&(t.kind===`choice`?t.choice.requiresConfirmation?(E.pendingAnswerText=t.choice.text,E.pendingAnswerChoice=t.choice,E.screen=`answer-confirm`,Y()):await ai(t.choice.text,`glass`,t.choice):t.action===`phone`?mi():t.action===`type`?si():t.action===`more`?(E.screen=`answer-more`,Y()):t.action===`read`?(E.screen=`chat`,E.answerMode=!1,q(),Y()):t.action===`attention`&&await ci(E.question?.attentionID))}function q(){let e=vr(),t=!!(e&&E.sessionRef)&&[`chat`,`answer`,`answer-more`,`answer-type`,`answer-sent`,`answer-confirm`].includes(E.screen);if(Ln.hidden=!t,!e||!t){En=``,F.replaceChildren(),Bn.hidden=!0,I.textContent=``;return}let n=!!E.question?.attentionID,r=Er();if(Rn.textContent=C(`${Qt(E.sessionParentRef,!1)}${E.sessionTitle??E.sessionRef??``}`,48),zn.textContent=n?`This question has a formal answer form in Inbox.`:r?`${E.question?.questions.length??0} questions. Answer each below.`:e.context?`${e.text}\n${e.context}`:e.text,Bn.hidden=!r||n,Vn.hidden=n||r||!e.allowsFreeText,Vn.disabled=E.answerBusy,r&&!n)ui(),pi();else{En=``,F.replaceChildren();for(let t of n?[]:e.choices.slice(0,6)){let e=document.createElement(`button`);e.type=`button`,e.textContent=t.text,e.disabled=E.answerBusy,e.addEventListener(`click`,()=>{ai(t.text,`phone`,t)}),F.append(e)}}I.textContent=E.answerBusy?`Sending…`:E.answerError??``,I.className=E.answerError?`status error`:`status`}function ui(){let e=E.question;if(!e)return;let t=`${e.revision}:${e.questions.length}`;if(En===t)di();else{En=t,F.replaceChildren();for(let[t,n]of e.questions.entries()){let e=document.createElement(`div`);e.className=`batch-question`;let r=document.createElement(`h3`);if(r.textContent=`${t+1}. ${n.text}`,e.append(r),n.context){let t=document.createElement(`p`);t.className=`hint`,t.textContent=n.context,e.append(t)}if(n.choices.length>0){let t=document.createElement(`div`);t.className=`question-choices`;for(let e of n.choices){let r=document.createElement(`button`);r.type=`button`,r.textContent=e.text,r.disabled=E.answerBusy,r.dataset.questionId=n.id,r.dataset.choiceId=e.id,r.setAttribute(`aria-pressed`,`false`),r.addEventListener(`click`,()=>{E.batchAnswers[n.id]={choice:e,text:E.batchAnswers[n.id]?.text??``},I.textContent=``,I.className=`status`,di(),pi()}),t.append(r)}e.append(t)}if(n.allowsFreeText){let t=document.createElement(`textarea`);t.rows=2,t.placeholder=n.choices.length>0?`Or type a different answer…`:`Type an answer…`,t.value=E.batchAnswers[n.id]?.text??``,t.addEventListener(`input`,()=>{let e=E.batchAnswers[n.id]??{text:``};E.batchAnswers[n.id]={text:t.value},e.choice&&delete E.batchAnswers[n.id].choice,I.textContent=``,I.className=`status`,di(),pi()}),e.append(t)}F.append(e)}di()}}function di(){for(let e of F.querySelectorAll(`button[data-question-id]`)){let t=e.dataset.questionId,n=e.dataset.choiceId,r=!!(t&&n)&&E.batchAnswers[t]?.choice?.id===n;e.setAttribute(`aria-pressed`,r?`true`:`false`),e.disabled=E.answerBusy}}function fi(e=!1){let t=E.question;if(!t)return;let n=[];for(let[r,i]of t.questions.entries()){let t=E.batchAnswers[i.id],a=(t?.choice?.text??t?.text??``).trim();if(!a){e&&W(`Answer question ${r+1} first.`,!0);return}n.push({questionId:i.id,text:a,...t?.choice?{choice:t.choice}:{}})}return n}function pi(){if(Bn.hidden)return;let e=fi();Bn.disabled=E.answerBusy||!e||e.length!==(E.question?.questions.length??0)}function mi(){Ln.scrollIntoView({block:`start`,behavior:`smooth`}),F.querySelector(`textarea, button`)?.focus(),W(`Answer each question, then send from the question card.`)}async function hi(){let e=E.question,t=E.sessionRef;if(!O||!e||!t||E.answerBusy||e.questions.length<2)return;let n=fi(!0);if(!n)return;let r=Rt(n),i=zt(e,n),a=jr(r);E.answerBusy=!0,E.answerText=r,E.answerError=void 0,I.textContent=`Sending…`,I.className=`status`,di(),pi();try{if(await O.sendMessage(t,{text:r,answers:i},{idempotencyKey:a}),E.sessionRef!==t)return;E.answerBusy=!1,E.question=void 0,br(),E.answerStale=void 0,E.answerKey=void 0,E.answerKeyText=void 0,Sr(t,null),V(),E.screen=`answer-sent`,W(`Answers sent.`),q(),Y()}catch(e){E.answerBusy=!1;let t=e.status,n=e.details?.reason;if(t===409&&(n===`question_changed`||n===`question_resolved`||n===`question_incomplete`)){E.answerStale=n===`question_resolved`?`resolved`:`changed`,E.answerKey=void 0,E.answerKeyText=void 0,E.screen=`answer-stale`,W(`Question changed. Review before answering.`,!0),q(),Y(),R(`Batch answer rejected: ${n}`);return}let r=w(e);if(r.kind===`auth`){U(e,{returnScreen:`chat`,retry:()=>hi()});return}E.answerError=r.short,E.screen=`answer`,W(r.short,!0),q(),Y(),R(`Batch answer send failed: ${r.kind} · ${r.title}`)}}async function J(e){if(!O||!E.sessionRef)return;let t=E.sessionRef,n=++hn;try{let r=await _i(t);if(n!==hn||E.sessionRef!==t)return;let i=new Set(E.chatMessages.map(e=>e.id)),a=r.findLast(e=>!i.has(e.id))?.id,o=E.chatLines,s=E.chatOffset;E.chatMessages=Mt(E.chatMessages,r);let c=jt(E.chatMessages);E.chatLines=c.lines,E.chatLineMessages=c.lineMessages,E.chatMessageCount=c.messageCount,E.chatActivity=Nt(E.chatMessages);let l=e?Ft({previousOffset:s,previousLineCount:o.length,newBelow:E.chatNewBelow,build:c,visibleLines:A,...a?{newMessageID:a}:{}}):Pt(c,A);E.chatOffset=l.offset,E.chatNewBelow=l.newBelow,E.chatFailure=void 0,E.chatLoading=!1,V();let u=o.length!==E.chatLines.length||o.some((e,t)=>e!==E.chatLines[t]);if(e&&D&&E.screen===`chat`){(u||s!==E.chatOffset)&&await bi(),_r();return}Y(),_r()}catch(e){if(n!==hn||E.sessionRef!==t)return;let r=w(e);if(nr(r),r.kind===`auth`||E.chatMessages.length===0){U(e,{returnScreen:E.returnScreen,retry:()=>ni(t,E.sessionTitle??`Session`,E.returnScreen)});return}E.chatFailure=r,E.chatLoading=!1,Y(),R(`Chat load failed: ${r.kind} · ${r.title}`)}}function gi(e){if(E.screen!==`chat`||e.sessionRef!==E.sessionRef)return;let t=!E.chatMessages.some(t=>t.id===e.id),n=E.chatLines,r=E.chatOffset;E.chatMessages=Mt(E.chatMessages,[e]);let i=jt(E.chatMessages);E.chatLines=i.lines,E.chatLineMessages=i.lineMessages,E.chatMessageCount=i.messageCount,E.chatActivity=Nt(E.chatMessages);let a=Ft({previousOffset:r,previousLineCount:n.length,newBelow:E.chatNewBelow,build:i,visibleLines:A,...t?{newMessageID:e.id}:{}});E.chatOffset=a.offset,E.chatNewBelow=a.newBelow,(n.length!==E.chatLines.length||n.some((e,t)=>e!==E.chatLines[t])||r!==E.chatOffset)&&bi(),_r()}async function _i(e){if(!O)return[];let t=[],n;for(let r=0;r<4;r+=1){let r=await O.messages(e,{limit:50,order:`desc`,...n?{cursor:n}:{}});if(t.push(...r.data),vi(t)||!r.cursor.next)break;n=r.cursor.next}return[...t].reverse()}function vi(e){return e.some(e=>e.parts.some(e=>e.type===`text`&&e.text.trim()))}function yi(){let e=E.chatLines.length,t=Math.max(0,e-A),n=Math.min(Math.max(0,E.chatOffset),t);E.chatOffset=n;let r=E.chatLines.slice(n,n+A),i=e===0?0:n+1,a=Math.min(e,n+A),o=Math.min(e-1,n+A-1),s=E.chatLineMessages[n],c=E.chatLineMessages[o],l=s===void 0||c===void 0||E.chatMessageCount===0?``:s===c?`M${s+1}/${E.chatMessageCount}`:`M${s+1}-${c+1}/${E.chatMessageCount}`,u=e<=A?`Swipe up/down · Back ×2`:n>=t?`Swipe up`:n===0?`Swipe down`:`Swipe`,d=C([E.question?`? Answer`:``,`${i}-${a}/${e}`,l,E.chatActivity,E.chatFailure?.short??``,E.chatNewBelow?`New below`:``,u].filter(Boolean).join(` · `),60);return{header:tn({parentRef:E.sessionParentRef,project:E.sessionProject,title:E.sessionTitle??`Session`}),body:r.join(`
15
+ `),footer:d}}async function bi(){if(D){if(gn)_n=!0;else{gn=!0;try{let e=yi();if(!X(e.header,e.body,e.footer))return;await D.textContainerUpgrade(new je({containerID:2,containerName:`body`,content:e.body})),await D.textContainerUpgrade(new je({containerID:3,containerName:`footer`,content:e.footer}))}catch(e){R(`Chat view update failed: ${$(e)}`)}finally{gn=!1,_n&&(_n=!1,bi())}}}}function xi(e){if(E.screen!==`chat`)return;let t=Math.max(0,E.chatLines.length-A),n=Math.min(t,Math.max(0,E.chatOffset+e));n>=t&&(E.chatNewBelow=!1),n!==E.chatOffset&&(E.chatOffset=n,bi())}function Si(e){let t=Date.now();wn=t-Cn<=dn?Math.min(wn+1,4):0,Cn=t,xi(e*kt(wn))}async function Ci(){if(O&&E.sessionRef){E.replyReturnScreen=E.screen===`answer-more`?`answer-more`:`chat`,E.replyPage=0;try{E.replyOptions=(await O.replyOptions(E.sessionRef,`reply`)).data,E.screen=`reply`,H(),V(),E.notice=void 0,Y()}catch(e){U(e,{returnScreen:E.replyReturnScreen,retry:()=>Ci()}),R(`Reply options failed: ${ir(e)}`)}}}function wi(){let e=At(E.replyOptions,E.replyPage,3),t=e.items.map(e=>e.label),n=e.page>0,r=e.page<e.pages-1;return n&&t.unshift(`← Previous choices`),r&&t.push(`More choices →`),{items:t,options:e.items,page:e.page,pages:e.pages,hasPrevious:n,hasNext:r}}async function Ti(e){let t=wi(),n=e;if(t.hasPrevious){if(e===0){E.replyPage=Math.max(0,t.page-1),Y();return}--n}if(n>=t.options.length){t.hasNext&&(E.replyPage=t.page+1,Y());return}let r=t.options[n];r&&await Ei(r)}async function Ei(e){if(O&&E.sessionRef)try{if(e.action===`interrupt`){await O.interrupt(E.sessionRef),E.screen=`chat`,await J(!1);return}if(e.action===`phone`){P.focus(),W(`Type on the phone, then send.`),E.screen=`chat`,Y();return}if(e.action===`choices`){let e=await O.replyOptions(E.sessionRef,`choices`);if(e.data.length===0){E.screen=`chat`,E.notice=`No numbered choices found in the latest reply.`,Y();return}E.choiceOptions=e.data,E.choicePage=0,E.screen=`choices`,Y();return}if(e.action===`voice`){P.focus(),W(`Voice is not enabled yet; type on the phone.`),E.screen=`chat`,Y();return}e.text&&(await O.sendMessage(E.sessionRef,{text:e.text}),E.question=void 0,Sr(E.sessionRef,null),q(),E.screen=`chat`,E.notice=`Reply sent.`,await J(!1))}catch(t){U(t,{returnScreen:E.replyReturnScreen,retry:()=>Ei(e)}),R(`Reply failed: ${ir(t)}`)}}function Di(){let e=At(E.choiceOptions,E.choicePage,3),t=e.items.map(e=>e.label),n=e.page>0,r=e.page<e.pages-1;return n&&t.unshift(`← Previous choices`),r&&t.push(`More choices →`),{items:t,options:e.items,hasPrevious:n,hasNext:r}}async function Oi(e){let t=Di(),n=e;if(t.hasPrevious){if(e===0){E.choicePage=Math.max(0,E.choicePage-1),Y();return}--n}if(n>=t.options.length){t.hasNext&&(E.choicePage+=1,Y());return}let r=t.options[n];if(r&&O&&E.sessionRef)try{await O.sendMessage(E.sessionRef,{text:r.text}),E.question=void 0,Sr(E.sessionRef,null),q(),E.screen=`chat`,E.notice=`Choice sent.`,await J(!1)}catch(t){U(t,{returnScreen:`choices`,retry:()=>Oi(e)}),R(`Choice send failed: ${ir(t)}`)}}function ki(){if(G(),E.screen===`failure`){let e=E.failureReturnScreen;E.failure=void 0,Sn=void 0,E.screen=e===`failure`?`home`:e,Y()}else if(E.screen===`answer`)E.screen=`chat`,E.answerMode=!1,q(),Y();else if(E.screen===`answer-more`)E.screen=`answer`,Y();else if(E.screen===`answer-type`)E.screen=`answer`,E.answerMode=!1,q(),Y();else if(E.screen===`answer-sent`)E.screen=`chat`,E.answerMode=!1,q(),Y(),J(!1);else if(E.screen===`answer-confirm`)E.pendingAnswerText=void 0,E.pendingAnswerChoice=void 0,E.screen=`answer`,Y();else if(E.screen===`answer-stale`){let e=E.sessionRef;E.answerStale=void 0,E.question=void 0,e&&Sr(e,null),E.screen=`chat`,E.answerMode=!1,q(),Y(),J(!1),e&&ri(e)}else E.screen===`chat`?(E.screen=E.returnScreen,E.selectedAttention=void 0,E.notice=void 0,E.answerMode=!1,q(),Y(),K()):E.screen===`reply`?(E.screen=E.replyReturnScreen,E.replyReturnScreen=`chat`,E.notice=void 0,Y()):E.screen===`choices`?(E.screen=`reply`,E.notice=void 0,Y()):E.screen===`glass-options`?(E.screen=`glass-form`,E.formOptionsField=void 0,Y()):E.screen===`glass-form`?(E.screen=`attention`,E.formOptionsField=void 0,E.formError=void 0,Y()):E.screen===`attention`?(E.screen=`inbox`,E.selectedAttention=void 0,E.notice=void 0,Y()):E.screen===`inbox`||E.screen===`sessions`?(E.screen=`home`,E.selectedAttention=void 0,E.notice=void 0,Y()):E.screen===`legend`&&(E.screen=`home`,E.notice=void 0,Y())}function Ai(){let e=E.failure;e&&(e.action===`pair`?cr():e.action===`back`?(H(),E.screen=`home`,Y()):(H(),E.screen===`sessions`?Gr():K()))}function ji(e){switch(E.screen){case`home`:{let t=E.sessionTitle?3:2,n=t+1;E.failure&&e===n?Ai():e===0?(E.screen=`inbox`,Y(),K()):e===1?Gr():e===2&&E.sessionRef?ni(E.sessionRef,E.sessionTitle??`Session`,`home`):e===t&&(E.screen=`legend`,Y());break}case`sessions`:{let t=E.sessions[e];t?ni(t.ref,t.title,`sessions`):E.failure&&e===E.sessions.length&&Ai();break}case`inbox`:E.attention[e]?qr(e):E.failure&&e===E.attention.length&&Ai();break;case`glass-form`:{let t=E.selectedAttention;if(!t)break;e===(t.fields?.length??0)?ei(t):$r(t,e);break}case`glass-options`:{let t=E.formOptionsField,n=t?.options?.[e];t&&n&&(E.formValues[t.id]=n.value,E.formOptionsField=void 0,E.formError=void 0,E.screen=`glass-form`,Y());break}case`attention`:ti(e);break;case`answer`:case`answer-more`:case`answer-confirm`:case`answer-stale`:li(e);break;case`reply`:Ti(e);break;case`choices`:Oi(e);break;case`failure`:Fi(e)}}function Mi(){E.screen===`failure`?Fi(0):E.screen===`chat`?E.question?ii():Ci():E.screen===`answer-type`?oi():E.screen===`answer-sent`?(E.screen=`chat`,E.answerMode=!1,q(),Y(),J(!1)):E.screen===`pairing`&&L.focus()}function Ni(e){fn.push(e),Pi()}async function Pi(){if(pn||fn.length===0)return;pn=!0;let e=performance.now(),t=fn.shift();try{let e=Vt(t);e?.type===`back`?ki():e?.type===`scroll`?E.screen===`chat`&&Si(e.direction):e?.type===`list-click`?ji(e.index):e?.type===`text-click`&&Mi()}finally{sn+=1,ln=Math.round(performance.now()-e),$n(),pn=!1,Pi()}}function Fi(e){let t=or()[e];t&&(t.id===`retry`?sr():t.id===`pair`?cr():ki())}function Y(){if(D){if(q(),_r(),!O){let e=`Pair in phone
16
+
17
+ Scan the hub QR
18
+ or paste its code.
19
+ Then connect.`;X(`OKTOSO`,e,`Phone setup`)&&Z(Wt(e,`Phone setup`))}else if(E.screen===`failure`){let e=E.failure;if(!e){E.screen=`home`,Y();return}let t=or().map(e=>e.label),n=Et(e.message,54,2).join(`
20
+ `),r=e.action===`pair`?`Pair again to continue`:`Tap choose · Back ×2`;X(e.header,n,r,t)&&Z(T(e.header,t,r,n))}else if(E.screen===`home`){let e=[`Inbox · ${E.attentionTotal}`,`Recent sessions`,...E.sessionTitle?[`Current · ${Qt(E.sessionParentRef,!!yr(E.sessionRef))}${C(E.sessionProject?`${E.sessionProject} · ${E.sessionTitle}`:E.sessionTitle,44)}`]:[],`Symbols`,...E.failure?[ar()]:[]],t=`Tap open Swipe move ${lr()}`;X(`OKTOSO`,e.join(`
21
+ `),t,e)&&Z(T(`OKTOSO`,e,t))}else if(E.screen===`legend`){let e=Kt(),t=`Swipe Back ×2`;X(`SYMBOLS`,e.join(`
22
+ `),t,e)&&Z(T(`SYMBOLS`,e,t))}else if(E.screen===`sessions`){let e=E.sessions.length?E.sessions.map(e=>en(e,!!yr(e.ref))):[E.failure?.title??`No recent sessions`];E.failure&&e.push(ar());let t=`Tap open Swipe move Back ×2 · ${lr()}`;X(`RECENT ${E.sessions.length}`,e.join(`
23
+ `),t,e)&&Z(T(`RECENT ${E.sessions.length}`,e,t))}else if(E.screen===`inbox`){let e=E.attention.length?E.attention.map(e=>Xt(e)):[E.failure?.title??`Nothing needs you`];E.failure&&e.push(ar());let t=`Tap open Swipe move Back ×2 · ${lr()}`;X(`ATTENTION ${E.attention.length}`,e.join(`
24
+ `),t,e)&&Z(T(`ATTENTION ${E.attention.length}`,e,t))}else if(E.screen===`glass-form`){let e=E.selectedAttention;if(!e){E.screen=`inbox`,Y();return}let t=Zr(e),n=`FORM · ${C(e.title,34)}`;X(n,t.items.join(`
25
+ `),t.footer,t.items)&&Z(T(n,t.items,t.footer,e.summary))}else if(E.screen===`glass-options`){let e=E.formOptionsField;if(!e){E.screen=`glass-form`,Y();return}let t=(e.options??[]).map(e=>C(e.label,54));t.length===0&&t.push(`No options`);let n=`SELECT · ${C(e.label,38)}`;X(n,t.join(`
26
+ `),`Tap select Back ×2`,t)&&Z(T(n,t,`Tap select Back ×2`))}else if(E.screen===`attention`){let e=E.selectedAttention;if(!e){E.screen=`inbox`,Y();return}let t=Yr(e),n=Et(yr(e.sessionRef)?.text??e.summary,54,2).join(`
27
+ `);X(Zt(e),[n,...t.map(e=>C(e.label,54))].join(`
28
+ `),`Tap choose Back ×2`,t.map(e=>C(e.label,54)))&&Z(T(Zt(e),t.map(e=>C(e.label,54)),`Tap choose Back ×2`,n))}else if(E.screen===`answer`||E.screen===`answer-more`||E.screen===`answer-confirm`){let e=vr();if(!e){E.screen=`chat`,Y();return}if(E.screen===`answer-confirm`){let e=Or(`CONFIRM`),t=Et(`Send this answer?\n“${E.pendingAnswerText??``}”`,54,2).join(`
29
+ `),n=[`Send`,`Cancel`];X(e,t,`This cannot be undone.`,n)&&Z(T(e,n,`This cannot be undone.`,t));return}if(E.screen===`answer-more`){let t=Or(`MORE`),n=C(`Q ${e.text}`,54),r=[`More replies`,`Read chat`,`Stop`];X(t,n,`Tap choose · Back ×2`,r)&&Z(T(t,r,`Tap choose · Back ×2`,n));return}let t=Or(),n=Dr(),r=Tr(),i=r.map(e=>e.label),a=r.some(e=>e.kind===`choice`),o=E.answerError?C(`Couldn't send: ${E.answerError}`,60):a?`Swipe choose · Tap send · Back ×2`:`Tap choose · Back ×2`;X(t,n,o,i)&&Z(T(t,i,o,n))}else if(E.screen===`answer-stale`){let e=`ANSWER · changed`,t=E.answerStale===`resolved`?`Answered already.
30
+ Read the latest chat.`:`Question changed.
31
+ Review before answering.`,n=E.answerStale===`resolved`?[`Read chat`]:[`Review`,`Read chat`];X(e,t,`Tap choose · Back ×2`,n)&&Z(T(e,n,`Tap choose · Back ×2`,t))}else if(E.screen===`answer-type`||E.screen===`answer-sent`){if(E.screen===`answer-type`){let e=Or(`TYPE`),t=`Type on the phone.
32
+ The answer sends from there.`,n=`Tap to focus phone · Back ×2`;X(e,t,n)&&Z(Wt(t,n,e));return}let e=Or(),t=E.answerText??``,n=t.split(`
33
+ `).filter(Boolean).length,r=n>1?`Sent\n${n} answers`:`Sent\n“${C(t,60)}”`,i=`Tap to return · Back ×2`;X(e,r,i)&&Z(Wt(r,i,e))}else if(E.screen===`chat`){if(E.chatLoading){let e=C(E.sessionTitle??`Session`,40),t=`Opening session…`;X(e,t,`Please wait`)&&Z(Wt(t,`Please wait`,e));return}let e=yi();X(e.header,e.body,e.footer)&&Z(Wt(e.body,e.footer,e.header))}else if(E.screen===`reply`){let e=wi(),t=e.items.map(e=>C(e,54));X(`REPLY ${e.page+1}/${e.pages}`,t.join(`
34
+ `),`Tap select Back ×2`,t)&&Z(T(`REPLY ${e.page+1}/${e.pages}`,t,`Tap select Back ×2`,E.notice))}else if(E.screen===`choices`){let e=Di(),t=e.items.map(e=>C(e,54));X(`CHOOSE ${e.items.length}`,t.join(`
35
+ `),`Tap select Back ×2`,t)&&Z(T(`CHOOSE ${e.items.length}`,t,`Tap select Back ×2`))}}}function X(e,t,n,r){let i=Ot(e,t,n,r);return i!==mn&&(mn=i,Zn.textContent=[e,``,t,``,n].join(`
36
+ `),r?(j=r,M=0,Ii()):(j=void 0,Qn.textContent=`No list selection`),!0)}function Ii(){!j||j.length===0?Qn.textContent=`No list selection`:(M=Math.min(Math.max(0,M),j.length-1),Qn.textContent=`Preview ${M+1}/${j.length} · ${j[M]}`)}function Li(e){e===`double`?ki():E.screen===`chat`?e===`up`?xi(-1):e===`down`?xi(1):Mi():E.screen===`answer-type`||E.screen===`answer-sent`?e===`click`&&Mi():E.screen===`pairing`?L.focus():j&&j.length!==0&&(e===`up`||e===`down`?(M=Math.min(Math.max(0,M+(e===`up`?-1:1)),j.length-1),Ii()):ji(M))}async function Z(e){if(!D)return;let t=performance.now();try{await D.rebuildPageContainer(e),cn+=1,un=Math.round(performance.now()-t),$n()}catch(e){R(`Display update failed: ${$(e)}`)}}function Q(e){let t=document.getElementById(e);if(!t)throw Error(`Missing #${e}`);return t}function $(e){return e instanceof Error?e.message:String(e)}function Ri(){Q(`hub-origin`).textContent=Nr()||`same origin`;let e=Q(`hub-token`);k&&(e.placeholder=`Saved token`);let t=wt();Gn.hidden=!t,qn.hidden=t,Wn.addEventListener(`click`,()=>{zr(L.value)}),L.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.preventDefault(),zr(L.value))}),Gn.addEventListener(`click`,()=>{Br()}),Q(`connect`).addEventListener(`click`,()=>{Rr()}),P.addEventListener(`input`,gr),On.addEventListener(`click`,()=>{zi()}),Q(`phone-refresh`).addEventListener(`click`,()=>{Bi()}),Pn.addEventListener(`click`,()=>void hr()),Fn.addEventListener(`click`,()=>G()),Bn.addEventListener(`click`,()=>void hi()),Vn.addEventListener(`click`,()=>si()),Q(`sim-up`).addEventListener(`click`,()=>Li(`up`)),Q(`sim-down`).addEventListener(`click`,()=>Li(`down`)),Q(`sim-click`).addEventListener(`click`,()=>Li(`click`)),Q(`sim-double`).addEventListener(`click`,()=>Li(`double`)),gr()}async function zi(){let e=P.value.trim();if(e&&O&&E.sessionRef){if(On.disabled=!0,E.answerMode&&E.question)await ai(e,`phone`),gr();else{W(`Sending…`);try{await O.sendMessage(E.sessionRef,{text:e}),P.value=``,V(),W(`Sent.`),E.screen=`chat`,await J(!1),await ri(E.sessionRef)}catch(e){if(rr(e)){U(e,{returnScreen:`chat`,retry:()=>zi()});return}W(ir(e),!0)}finally{gr()}}}}async function Bi(){O&&(E.screen===`chat`&&E.sessionRef?(await J(!1),await ri(E.sessionRef)):E.screen===`sessions`?await Gr():(await K(),E.screen===`home`&&Y()))}async function Vi(){Ri();try{let e=await Promise.race([ft(),new Promise(e=>setTimeout(()=>e(void 0),2500))]);if(!e){Yn.textContent=`No Even Hub bridge detected. Open the app through Even Hub or the simulator.`,R(`Bridge not available`);return}D=e,Yn.textContent=`Connected to Even Hub bridge.`,R(`Bridge ready`),await D.createStartUpPageContainer(new Ke({containerTotalNum:1,textObject:[new b({xPosition:0,yPosition:0,width:576,height:288,borderWidth:0,borderColor:5,borderRadius:0,paddingLength:4,containerID:1,containerName:`body`,isEventCapture:1,content:`Oktoso
37
+ Connecting…`})]})),D.onEvenHubEvent(Ni),an=setInterval(()=>{O&&!yn&&(E.screen===`inbox`||E.screen===`home`?K():E.screen===`chat`&&E.sessionRef&&J(!0))},4e3),await Vr()}catch(e){Yn.textContent=`Bridge error: ${$(e)}`,R(`Bridge error: ${$(e)}`)}}window.addEventListener(`beforeunload`,()=>{an&&clearInterval(an)}),Vi();
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
6
6
  <title>Oktoso for Even G2</title>
7
- <style>:root{color-scheme:dark;--ink:#f2f5f8;--muted:#98a2b3;--line:#2b3442;--panel:#121820;--bg:#080b10;--accent:#a9bdff}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font:14px/1.5 ui-sans-serif,system-ui,-apple-system,sans-serif}body{max-width:640px;margin:0 auto;padding:20px}h1{letter-spacing:-.02em;margin:0 0 4px;font-size:20px}p{color:var(--muted);margin:0}.brand{color:#080b10;background:linear-gradient(145deg,#b8c8ff,#7e98f4);border-radius:10px;place-items:center;width:36px;height:36px;margin-bottom:16px;font-weight:800;display:grid}.panel{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin-top:16px;padding:16px}.panel h2{margin:0 0 4px;font-size:15px}.panel .hint{font-size:12px}label{color:var(--muted);margin-top:12px;font-size:12px;display:block}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#0d131b;border-radius:8px;margin-top:4px;padding:10px 12px;font-size:16px;display:block}input[type=checkbox]{width:auto;margin:0 6px 0 0}fieldset{border:1px solid var(--line);border-radius:8px;margin-top:12px;padding:8px 12px 12px}fieldset label{color:var(--ink);margin-top:6px}textarea{resize:vertical;min-height:72px}button{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#1a2431;border-radius:8px;padding:8px 14px;font-size:13px}button.primary{border-color:var(--accent);background:var(--accent);color:#080b10;font-weight:650}button:disabled{opacity:.5}.row{align-items:center;gap:8px;display:flex}.status{color:var(--accent);min-height:18px;margin-top:8px;font-size:12px}.status.error{color:#ff9292}.pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.composer{margin-top:16px}.composer-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.composer-head strong{color:var(--muted);font-size:12px;font-weight:600}pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);font:11px/1.5 ui-monospace,monospace}.glasses-preview{color:#71f28a;background:#07130a;border:1px solid #24452c;border-radius:8px;min-height:150px;max-height:320px;padding:10px;font-size:11px;overflow:auto}.preview-controls{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.preview-controls button{min-height:36px;font-size:12px}#phone-question-text{white-space:pre-line}.question-choices{gap:8px;margin-top:10px;display:grid}.question-choices button{text-align:left;min-height:44px}.question-choices button:only-child{width:100%}.question-choices button[aria-pressed=true]{border-color:var(--accent);background:#25314a}.scan-video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:8px;width:100%;margin-top:12px}.batch-question{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.batch-question:first-child{border-top:0;margin-top:0;padding-top:0}.batch-question h3{margin:0;font-size:14px;font-weight:600}.batch-question textarea{min-height:56px}</style>
8
- <script type="module" crossorigin src="/apps/even-g2/assets/index-CRXCF3g3.js"></script>
7
+ <style>:root{color-scheme:dark;--ink:#f2f5f8;--muted:#98a2b3;--line:#2b3442;--panel:#121820;--bg:#080b10;--accent:#a9bdff}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font:14px/1.5 ui-sans-serif,system-ui,-apple-system,sans-serif}body{max-width:640px;margin:0 auto;padding:20px}h1{letter-spacing:-.02em;margin:0 0 4px;font-size:20px}p{color:var(--muted);margin:0}.brand{color:#080b10;background:linear-gradient(145deg,#b8c8ff,#7e98f4);border-radius:10px;place-items:center;width:36px;height:36px;margin-bottom:16px;font-weight:800;display:grid}.panel{border:1px solid var(--line);background:var(--panel);border-radius:12px;margin-top:16px;padding:16px}.panel h2{margin:0 0 4px;font-size:15px}.panel .hint{font-size:12px}label{color:var(--muted);margin-top:12px;font-size:12px;display:block}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#0d131b;border-radius:8px;margin-top:4px;padding:10px 12px;font-size:16px;display:block}input[type=checkbox]{width:auto;margin:0 6px 0 0}fieldset{border:1px solid var(--line);border-radius:8px;margin-top:12px;padding:8px 12px 12px}fieldset label{color:var(--ink);margin-top:6px}textarea{resize:vertical;min-height:72px}button{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#1a2431;border-radius:8px;padding:8px 14px;font-size:13px}button.primary{border-color:var(--accent);background:var(--accent);color:#080b10;font-weight:650}button:disabled{opacity:.5}.row{align-items:center;gap:8px;display:flex}.status{color:var(--accent);min-height:18px;margin-top:8px;font-size:12px}.status.error{color:#ff9292}.pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.composer{margin-top:16px}.composer-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.composer-head strong{color:var(--muted);font-size:12px;font-weight:600}pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);font:11px/1.5 ui-monospace,monospace}.glasses-preview{color:#71f28a;background:#07130a;border:1px solid #24452c;border-radius:8px;min-height:150px;max-height:320px;padding:10px;font-size:11px;overflow:auto}.preview-controls{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.preview-controls button{min-height:36px;font-size:12px}#phone-question-text{white-space:pre-line}.question-choices{gap:8px;margin-top:10px;display:grid}.question-choices button{text-align:left;min-height:44px}.question-choices button:only-child{width:100%}.question-choices button[aria-pressed=true]{border-color:var(--accent);background:#25314a}.scan-video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:8px;width:100%;margin-top:12px}details.panel summary{cursor:pointer;font-weight:600}.symbol-row{grid-template-columns:2.5em 1fr;align-items:baseline;gap:8px;padding:3px 0;font-size:13px;display:grid}.symbol-row .glyph{text-align:center;font-size:16px}.symbol-row .meaning{color:var(--ink)}.batch-question{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.batch-question:first-child{border-top:0;margin-top:0;padding-top:0}.batch-question h3{margin:0;font-size:14px;font-weight:600}.batch-question textarea{min-height:56px}</style>
8
+ <script type="module" crossorigin src="/apps/even-g2/assets/index-mkmYJuX5.js"></script>
9
9
  </head>
10
10
  <body>
11
11
  <div class="brand">OK</div>
@@ -86,6 +86,25 @@
86
86
  </div>
87
87
  </section>
88
88
 
89
+ <details class="panel">
90
+ <summary>Symbol guide</summary>
91
+ <p class="hint" style="margin-top:8px">The same guide is available on the glasses from Home → Symbols.</p>
92
+ <div style="margin-top:8px">
93
+ <div class="symbol-row"><span class="glyph">●</span><span class="meaning">Unread</span></div>
94
+ <div class="symbol-row"><span class="glyph">?</span><span class="meaning">Question</span></div>
95
+ <div class="symbol-row"><span class="glyph">■</span><span class="meaning">Permission</span></div>
96
+ <div class="symbol-row"><span class="glyph">▲</span><span class="meaning">Approval</span></div>
97
+ <div class="symbol-row"><span class="glyph">!</span><span class="meaning">Error</span></div>
98
+ <div class="symbol-row"><span class="glyph">▶</span><span class="meaning">Running</span></div>
99
+ <div class="symbol-row"><span class="glyph">▼</span><span class="meaning">Offline</span></div>
100
+ <div class="symbol-row"><span class="glyph">◇</span><span class="meaning">Idle</span></div>
101
+ <div class="symbol-row"><span class="glyph">◆</span><span class="meaning">Attention</span></div>
102
+ <div class="symbol-row"><span class="glyph">›</span><span class="meaning">Subagent prefix</span></div>
103
+ <div class="symbol-row"><span class="glyph">›?</span><span class="meaning">Child question</span></div>
104
+ <div class="symbol-row"><span class="glyph">›■</span><span class="meaning">Child permission</span></div>
105
+ </div>
106
+ </details>
107
+
89
108
  <section class="panel">
90
109
  <h2>Glasses bridge</h2>
91
110
  <p id="bridge-status" class="hint">Waiting for Even Hub…</p>