@babylonjs-toolkit/server 0.0.0-stage → 9.35.1

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.
Files changed (236) hide show
  1. package/CUSTOM.md +1690 -0
  2. package/DEPLOY.md +2012 -0
  3. package/README.md +1081 -2
  4. package/lib/AbuseLimits.d.ts +64 -0
  5. package/lib/AbuseLimits.js +121 -0
  6. package/lib/Authentication.d.ts +86 -0
  7. package/lib/Authentication.js +272 -0
  8. package/lib/BootSessionOwner.d.ts +86 -0
  9. package/lib/BootSessionOwner.js +116 -0
  10. package/lib/ColyseusLoggerAdapter.d.ts +32 -0
  11. package/lib/ColyseusLoggerAdapter.js +73 -0
  12. package/lib/DedicatedSceneRegistry.d.ts +52 -0
  13. package/lib/DedicatedSceneRegistry.js +74 -0
  14. package/lib/DedicatedSession.d.ts +152 -0
  15. package/lib/DedicatedSession.js +173 -0
  16. package/lib/DualTransport.d.ts +112 -0
  17. package/lib/DualTransport.js +197 -0
  18. package/lib/GameServer.d.ts +64 -0
  19. package/lib/GameServer.js +647 -0
  20. package/lib/GameServerConfig.d.ts +387 -0
  21. package/lib/GameServerConfig.js +1059 -0
  22. package/lib/GameServerLobbyRoom.d.ts +33 -0
  23. package/lib/GameServerLobbyRoom.js +56 -0
  24. package/lib/GameServerLogger.d.ts +111 -0
  25. package/lib/GameServerLogger.js +190 -0
  26. package/lib/GameServerMetrics.d.ts +158 -0
  27. package/lib/GameServerMetrics.js +276 -0
  28. package/lib/GameServerState.d.ts +164 -0
  29. package/lib/GameServerState.js +26 -0
  30. package/lib/HeadlessRuntime.d.ts +316 -0
  31. package/lib/HeadlessRuntime.js +380 -0
  32. package/lib/JoinGate.d.ts +34 -0
  33. package/lib/JoinGate.js +221 -0
  34. package/lib/NetworkAddresses.d.ts +33 -0
  35. package/lib/NetworkAddresses.js +90 -0
  36. package/lib/PlayerTokens.d.ts +17 -0
  37. package/lib/PlayerTokens.js +24 -0
  38. package/lib/RoomServerTransport.d.ts +73 -0
  39. package/lib/RoomServerTransport.js +90 -0
  40. package/lib/ServerEndpoints.d.ts +133 -0
  41. package/lib/ServerEndpoints.js +247 -0
  42. package/lib/ServerInit.d.ts +28 -0
  43. package/lib/ServerInit.js +113 -0
  44. package/lib/SessionRoom.d.ts +391 -0
  45. package/lib/SessionRoom.js +930 -0
  46. package/lib/TlsCertificates.d.ts +35 -0
  47. package/lib/TlsCertificates.js +130 -0
  48. package/lib/admin/AccountRoutes.d.ts +8 -0
  49. package/lib/admin/AccountRoutes.js +502 -0
  50. package/lib/admin/AdminAccounts.d.ts +329 -0
  51. package/lib/admin/AdminAccounts.js +607 -0
  52. package/lib/admin/AdminApiRouter.d.ts +202 -0
  53. package/lib/admin/AdminApiRouter.js +465 -0
  54. package/lib/admin/AdminApiTypes.d.ts +1782 -0
  55. package/lib/admin/AdminApiTypes.js +4 -0
  56. package/lib/admin/AdminAudit.d.ts +113 -0
  57. package/lib/admin/AdminAudit.js +266 -0
  58. package/lib/admin/AdminCli.d.ts +7 -0
  59. package/lib/admin/AdminCli.js +351 -0
  60. package/lib/admin/AdminClock.d.ts +51 -0
  61. package/lib/admin/AdminClock.js +10 -0
  62. package/lib/admin/AdminConsole.d.ts +39 -0
  63. package/lib/admin/AdminConsole.js +325 -0
  64. package/lib/admin/AdminConstants.d.ts +147 -0
  65. package/lib/admin/AdminConstants.js +167 -0
  66. package/lib/admin/AdminCrypto.d.ts +19 -0
  67. package/lib/admin/AdminCrypto.js +29 -0
  68. package/lib/admin/AdminExtensionsHost.d.ts +176 -0
  69. package/lib/admin/AdminExtensionsHost.js +307 -0
  70. package/lib/admin/AdminPasswords.d.ts +33 -0
  71. package/lib/admin/AdminPasswords.js +92 -0
  72. package/lib/admin/AdminPermissions.d.ts +28 -0
  73. package/lib/admin/AdminPermissions.js +74 -0
  74. package/lib/admin/AdminRecords.d.ts +196 -0
  75. package/lib/admin/AdminRecords.js +3 -0
  76. package/lib/admin/AdminRequestBodies.d.ts +47 -0
  77. package/lib/admin/AdminRequestBodies.js +84 -0
  78. package/lib/admin/AdminRequestGate.d.ts +38 -0
  79. package/lib/admin/AdminRequestGate.js +59 -0
  80. package/lib/admin/AdminResponses.d.ts +103 -0
  81. package/lib/admin/AdminResponses.js +164 -0
  82. package/lib/admin/AdminServices.d.ts +99 -0
  83. package/lib/admin/AdminServices.js +4 -0
  84. package/lib/admin/AdminStaticFiles.d.ts +29 -0
  85. package/lib/admin/AdminStaticFiles.js +97 -0
  86. package/lib/admin/AdminStore.d.ts +152 -0
  87. package/lib/admin/AdminStore.js +46 -0
  88. package/lib/admin/AlertChannels.d.ts +43 -0
  89. package/lib/admin/AlertChannels.js +120 -0
  90. package/lib/admin/AlertEngine.d.ts +231 -0
  91. package/lib/admin/AlertEngine.js +681 -0
  92. package/lib/admin/AlertRoutes.d.ts +8 -0
  93. package/lib/admin/AlertRoutes.js +180 -0
  94. package/lib/admin/ApiKeyRoutes.d.ts +8 -0
  95. package/lib/admin/ApiKeyRoutes.js +53 -0
  96. package/lib/admin/ApiKeys.d.ts +63 -0
  97. package/lib/admin/ApiKeys.js +167 -0
  98. package/lib/admin/AuditRoutes.d.ts +8 -0
  99. package/lib/admin/AuditRoutes.js +106 -0
  100. package/lib/admin/AuthToolRoutes.d.ts +13 -0
  101. package/lib/admin/AuthToolRoutes.js +164 -0
  102. package/lib/admin/BanList.d.ts +87 -0
  103. package/lib/admin/BanList.js +152 -0
  104. package/lib/admin/CborDecoder.d.ts +18 -0
  105. package/lib/admin/CborDecoder.js +201 -0
  106. package/lib/admin/ColyseusCloudClient.d.ts +313 -0
  107. package/lib/admin/ColyseusCloudClient.js +272 -0
  108. package/lib/admin/ColyseusCloudRoutes.d.ts +8 -0
  109. package/lib/admin/ColyseusCloudRoutes.js +91 -0
  110. package/lib/admin/ColyseusCloudService.d.ts +180 -0
  111. package/lib/admin/ColyseusCloudService.js +476 -0
  112. package/lib/admin/ColyseusCloudSettings.d.ts +16 -0
  113. package/lib/admin/ColyseusCloudSettings.js +29 -0
  114. package/lib/admin/ColyseusCloudViews.d.ts +105 -0
  115. package/lib/admin/ColyseusCloudViews.js +371 -0
  116. package/lib/admin/CommonPasswords.d.ts +6 -0
  117. package/lib/admin/CommonPasswords.js +19 -0
  118. package/lib/admin/ConfigOverrides.d.ts +174 -0
  119. package/lib/admin/ConfigOverrides.js +406 -0
  120. package/lib/admin/ConfigRoutes.d.ts +8 -0
  121. package/lib/admin/ConfigRoutes.js +91 -0
  122. package/lib/admin/ConsoleSessions.d.ts +112 -0
  123. package/lib/admin/ConsoleSessions.js +201 -0
  124. package/lib/admin/DedicatedRoutes.d.ts +21 -0
  125. package/lib/admin/DedicatedRoutes.js +254 -0
  126. package/lib/admin/ExtensionRoutes.d.ts +8 -0
  127. package/lib/admin/ExtensionRoutes.js +145 -0
  128. package/lib/admin/FileAdminStore.d.ts +157 -0
  129. package/lib/admin/FileAdminStore.js +349 -0
  130. package/lib/admin/FleetDirectory.d.ts +323 -0
  131. package/lib/admin/FleetDirectory.js +489 -0
  132. package/lib/admin/FleetLeader.d.ts +43 -0
  133. package/lib/admin/FleetLeader.js +89 -0
  134. package/lib/admin/FleetRoutes.d.ts +55 -0
  135. package/lib/admin/FleetRoutes.js +465 -0
  136. package/lib/admin/HealthWarnings.d.ts +10 -0
  137. package/lib/admin/HealthWarnings.js +95 -0
  138. package/lib/admin/LeaderboardRoutes.d.ts +8 -0
  139. package/lib/admin/LeaderboardRoutes.js +569 -0
  140. package/lib/admin/LogBuffer.d.ts +60 -0
  141. package/lib/admin/LogBuffer.js +92 -0
  142. package/lib/admin/LogRedaction.d.ts +15 -0
  143. package/lib/admin/LogRedaction.js +72 -0
  144. package/lib/admin/LogRoutes.d.ts +45 -0
  145. package/lib/admin/LogRoutes.js +307 -0
  146. package/lib/admin/MaintenanceMode.d.ts +41 -0
  147. package/lib/admin/MaintenanceMode.js +74 -0
  148. package/lib/admin/MaintenanceWindows.d.ts +91 -0
  149. package/lib/admin/MaintenanceWindows.js +207 -0
  150. package/lib/admin/MetricsRoutes.d.ts +8 -0
  151. package/lib/admin/MetricsRoutes.js +209 -0
  152. package/lib/admin/MetricsSampler.d.ts +124 -0
  153. package/lib/admin/MetricsSampler.js +211 -0
  154. package/lib/admin/OneTimeCodes.d.ts +60 -0
  155. package/lib/admin/OneTimeCodes.js +162 -0
  156. package/lib/admin/OpenIdConnect.d.ts +146 -0
  157. package/lib/admin/OpenIdConnect.js +335 -0
  158. package/lib/admin/Passkeys.d.ts +130 -0
  159. package/lib/admin/Passkeys.js +432 -0
  160. package/lib/admin/PlayerRoutes.d.ts +20 -0
  161. package/lib/admin/PlayerRoutes.js +676 -0
  162. package/lib/admin/RedisAdminStore.d.ts +114 -0
  163. package/lib/admin/RedisAdminStore.js +258 -0
  164. package/lib/admin/RolloutCoordinator.d.ts +99 -0
  165. package/lib/admin/RolloutCoordinator.js +321 -0
  166. package/lib/admin/ServerEvents.d.ts +57 -0
  167. package/lib/admin/ServerEvents.js +89 -0
  168. package/lib/admin/SessionRoutes.d.ts +113 -0
  169. package/lib/admin/SessionRoutes.js +386 -0
  170. package/lib/admin/UserRoutes.d.ts +8 -0
  171. package/lib/admin/UserRoutes.js +214 -0
  172. package/lib/cli.d.ts +2 -0
  173. package/lib/cli.js +221 -0
  174. package/lib/console/assets/index-CI5N7c-T.js +21 -0
  175. package/lib/console/assets/index-DPitvzLp.css +1 -0
  176. package/lib/console/favicon.svg +1 -0
  177. package/lib/console/index.html +16 -0
  178. package/lib/discord/DiscordOAuth.d.ts +57 -0
  179. package/lib/discord/DiscordOAuth.js +127 -0
  180. package/lib/discord/DiscordSessions.d.ts +79 -0
  181. package/lib/discord/DiscordSessions.js +135 -0
  182. package/lib/discord/DiscordSignInConstants.d.ts +54 -0
  183. package/lib/discord/DiscordSignInConstants.js +55 -0
  184. package/lib/discord/DiscordSignInRoutes.d.ts +51 -0
  185. package/lib/discord/DiscordSignInRoutes.js +359 -0
  186. package/lib/index.d.ts +24 -0
  187. package/lib/index.js +18 -0
  188. package/lib/leaderboards/FileLeaderboardRankStore.d.ts +293 -0
  189. package/lib/leaderboards/FileLeaderboardRankStore.js +808 -0
  190. package/lib/leaderboards/LeaderboardConstants.d.ts +63 -0
  191. package/lib/leaderboards/LeaderboardConstants.js +70 -0
  192. package/lib/leaderboards/LeaderboardError.d.ts +15 -0
  193. package/lib/leaderboards/LeaderboardError.js +20 -0
  194. package/lib/leaderboards/LeaderboardIdentity.d.ts +44 -0
  195. package/lib/leaderboards/LeaderboardIdentity.js +72 -0
  196. package/lib/leaderboards/LeaderboardPublicApi.d.ts +17 -0
  197. package/lib/leaderboards/LeaderboardPublicApi.js +389 -0
  198. package/lib/leaderboards/LeaderboardRankStore.d.ts +296 -0
  199. package/lib/leaderboards/LeaderboardRankStore.js +18 -0
  200. package/lib/leaderboards/LeaderboardRules.d.ts +122 -0
  201. package/lib/leaderboards/LeaderboardRules.js +472 -0
  202. package/lib/leaderboards/LeaderboardScheduler.d.ts +43 -0
  203. package/lib/leaderboards/LeaderboardScheduler.js +103 -0
  204. package/lib/leaderboards/LeaderboardService.d.ts +669 -0
  205. package/lib/leaderboards/LeaderboardService.js +1667 -0
  206. package/lib/leaderboards/LeaderboardTransfer.d.ts +35 -0
  207. package/lib/leaderboards/LeaderboardTransfer.js +580 -0
  208. package/lib/leaderboards/RedisLeaderboardRankStore.d.ts +282 -0
  209. package/lib/leaderboards/RedisLeaderboardRankStore.js +691 -0
  210. package/package.json +64 -4
  211. package/templates/init/Caddyfile +6 -0
  212. package/templates/init/DEPLOY.md +233 -0
  213. package/templates/init/Dockerfile +12 -0
  214. package/templates/init/app.json +21 -0
  215. package/templates/init/aws/README.md +118 -0
  216. package/templates/init/aws/ecs-fargate-alb.yml +207 -0
  217. package/templates/init/aws/ecs-fargate-nlb-quic.yml +210 -0
  218. package/templates/init/babylon-game-server.config.mjs +158 -0
  219. package/templates/init/colyseus-cloud/README.md +133 -0
  220. package/templates/init/colyseus-cloud/babylon-game-server.config.mjs +36 -0
  221. package/templates/init/colyseus-cloud/ecosystem.config.cjs +35 -0
  222. package/templates/init/colyseus-cloud/gitignore +6 -0
  223. package/templates/init/colyseus-cloud/package.json +15 -0
  224. package/templates/init/digitalocean-app.yaml +30 -0
  225. package/templates/init/docker-compose.full.yml +45 -0
  226. package/templates/init/docker-compose.websocket.yml +41 -0
  227. package/templates/init/fly.toml +56 -0
  228. package/templates/init/heroku.yml +11 -0
  229. package/templates/init/kubernetes/deployment.yaml +71 -0
  230. package/templates/init/kubernetes/redis.yaml +73 -0
  231. package/templates/init/kubernetes/service.yaml +24 -0
  232. package/templates/init/monitoring/grafana-dashboard.json +539 -0
  233. package/templates/init/monitoring/prometheus-alerts.yml +51 -0
  234. package/templates/init/monitoring/prometheus-scrape.yml +17 -0
  235. package/templates/init/railway.json +13 -0
  236. package/templates/init/render.yaml +19 -0
@@ -0,0 +1,21 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(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 l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function ee(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var te=ee.prototype=new b;te.constructor=ee,_(te,y.prototype),te.isPureReactComponent=!0;var ne=Array.isArray;function re(){}var x={H:null,A:null,T:null,S:null},ie=Object.prototype.hasOwnProperty;function S(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ae(e,t){return S(e.type,t,e.props)}function oe(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function se(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ce=/\/+/g;function le(e,t){return typeof e==`object`&&e&&e.key!=null?se(``+e.key):t.toString(36)}function ue(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(re,re):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function de(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,de(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+le(e,0):a,ne(o)?(i=``,c!=null&&(i=c.replace(ce,`$&/`)+`/`),de(o,r,i,``,function(e){return e})):o!=null&&(oe(o)&&(o=ae(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ce,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(ne(e))for(var u=0;u<e.length;u++)a=e[u],s=l+le(a,u),c+=de(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+le(a,u++),c+=de(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return de(ue(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function fe(e,t,n){if(e==null)return e;var r=[],i=0;return de(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function pe(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var me=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function C(e){var t=x.T,n={};n.types=t===null?null:t.types,x.T=n;try{var r=e(),i=x.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(re,me)}catch(e){me(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),x.T=t}}function he(e){var t=x.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else C(he.bind(null,e))}var ge={map:fe,forEach:function(e,t,n){fe(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return fe(e,function(){t++}),t},toArray:function(e){return fe(e,function(e){return e})||[]},only:function(e){if(!oe(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ge,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=ee,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=x,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return x.H.useMemoCache(e)}},e.addTransitionType=he,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!ie.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return S(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)ie.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return S(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=oe,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:pe}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=C,e.unstable_useCacheRefresh=function(){return x.H.useCacheRefresh()},e.use=function(e){return x.H.use(e)},e.useActionState=function(e,t,n){return x.H.useActionState(e,t,n)},e.useCallback=function(e,t){return x.H.useCallback(e,t)},e.useContext=function(e){return x.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return x.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return x.H.useEffect(e,t)},e.useEffectEvent=function(e){return x.H.useEffectEvent(e)},e.useId=function(){return x.H.useId()},e.useImperativeHandle=function(e,t,n){return x.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return x.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return x.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return x.H.useMemo(e,t)},e.useOptimistic=function(e,t){return x.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return x.H.useReducer(e,t,n)},e.useRef=function(e){return x.H.useRef(e)},e.useState=function(e){return x.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return x.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return x.H.useTransition()},e.version=`19.3.0`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function ee(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,te||(te=!0,ae());else{var t=n(l);t!==null&&ce(ee,t.startTime-e)}}}var te=!1,ne=-1,re=5,x=-1;function ie(){return g?!0:!(e.unstable_now()-x<re)}function S(){if(g=!1,te){var t=e.unstable_now();x=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(ne),ne=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ie());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&ce(ee,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?ae():te=!1}}}var ae;if(typeof y==`function`)ae=function(){y(S)};else if(typeof MessageChannel<`u`){var oe=new MessageChannel,se=oe.port2;oe.port1.onmessage=S,ae=function(){se.postMessage(null)}}else ae=function(){_(S,0)};function ce(t,n){ne=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):re=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(ne),ne=-1):h=!0,ce(ee,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,te||(te=!0,ae()))),r},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`),o=Symbol.for(`react.recoverable`),s=Symbol.for(`react.optimistic_key`);function c(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:r===s?s:``+r,children:e,containerInfo:t,implementation:n}}var l=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:o,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return c(e,t,null,r)},e.flushSync=function(e){var t=l.T,n=i.p;try{if(l.T=null,i.p=2,e)return e()}finally{l.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},e.useFormStatus=function(){return l.H.useHostTransitionStatus()},e.version=`19.3.0`})),m=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){for(var t=e,n=t;n&&!n.alternate;)t=n,t.flags&4098&&(e=t.return),n=t.return;for(;t.return;)t=t.return;return t.tag===3?e:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}function h(e,t,n,r,i,a){for(;e!==null;){if((e.tag===5||e.tag===27||e.tag===6)&&n(e,r,i,a)||(e.tag!==22||e.memoizedState===null)&&(t||e.tag!==5&&e.tag!==27)&&h(e.child,t,n,r,i,a))return!0;e=e.sibling}return!1}function g(e){for(e=e.return;e!==null;){if(e.tag===3||e.tag===5||e.tag===27)return e;e=e.return}return null}function _(e){var t=!1;for(e=e.return;e!==null&&(e.tag===4&&(t=!0),e.tag!==3&&e.tag!==5&&e.tag!==27);)e=e.return;return t}function v(e){var t=[null,null],n=g(e);return n===null||y(t,e,n.child,{foundSelf:!1}),t}function y(e,t,n,r){for(;n!==null;){if(n===t)r.foundSelf=!0;else if(n.tag===5||n.tag===27||n.tag===6){if(r.foundSelf)return e[1]=n,!0;e[0]=n}else if((n.tag!==22||n.memoizedState===null)&&y(e,t,n.child,r))return!0;n=n.sibling}return!1}function b(e){switch(e.tag){case 5:case 27:case 6:return e.stateNode;case 3:return e.stateNode.containerInfo;default:throw Error(i(559))}}var ee=null,te=null;function ne(e,t,n){return e===n||e===t&&(ee=e,!0)}function re(e,t,n){return e===n?(te=e,!1):e===t&&(te!==null&&(ee=e),!0)}function x(e){if(e===null)return null;do e=e===null?null:e.return;while(e&&e.tag!==5&&e.tag!==27&&e.tag!==3);return e||null}function ie(e,t,n){for(var r=0,i=e;i;i=n(i))r++;i=0;for(var a=t;a;a=n(a))i++;for(;0<r-i;)e=n(e),r--;for(;0<i-r;)t=n(t),i--;for(;r--;){if(e===t||t!==null&&e===t.alternate)return e;e=n(e),t=n(t)}return null}var S=Object.assign,ae=Symbol.for(`react.element`),oe=Symbol.for(`react.transitional.element`),se=Symbol.for(`react.portal`),ce=Symbol.for(`react.fragment`),le=Symbol.for(`react.strict_mode`),ue=Symbol.for(`react.profiler`),de=Symbol.for(`react.consumer`),fe=Symbol.for(`react.context`),pe=Symbol.for(`react.forward_ref`),me=Symbol.for(`react.suspense`),C=Symbol.for(`react.suspense_list`),he=Symbol.for(`react.memo`),ge=Symbol.for(`react.lazy`),_e=Symbol.for(`react.activity`),w=Symbol.for(`react.legacy_hidden`),ve=Symbol.for(`react.memo_cache_sentinel`),ye=Symbol.for(`react.view_transition`),be=Symbol.for(`react.recoverable`),xe=Symbol.iterator;function Se(e){return typeof e!=`object`||!e?null:(e=xe&&e[xe]||e[`@@iterator`],typeof e==`function`?e:null)}var Ce=Symbol.for(`react.client.reference`);function T(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===Ce?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case ce:return`Fragment`;case ue:return`Profiler`;case le:return`StrictMode`;case me:return`Suspense`;case C:return`SuspenseList`;case _e:return`Activity`;case ye:return`ViewTransition`}if(typeof e==`object`)switch(e.$$typeof){case se:return`Portal`;case fe:return e.displayName||`Context`;case de:return(e._context.displayName||`Context`)+`.Consumer`;case pe:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case he:return t=e.displayName||null,t===null?T(e.type)||`Memo`:t;case ge:t=e._payload,e=e._init;try{return T(e(t))}catch{}}return null}var we=Array.isArray,E=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Te={pending:!1,data:null,method:null,action:null},Ee=[],O=-1;function k(e){return{current:e}}function De(e){0>O||(e.current=Ee[O],Ee[O]=null,O--)}function A(e,t){O++,Ee[O]=e.current,e.current=t}var Oe=k(null),ke=k(null),Ae=k(null),je=k(null);function Me(e,t){switch(A(Ae,t),A(ke,e),A(Oe,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}De(Oe),A(Oe,e)}function Ne(){De(Oe),De(ke),De(Ae)}function Pe(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,A(je,e)),t=Oe.current;var n=dp(t,e.type);t!==n&&(A(ke,e),A(Oe,n))}function Fe(e){ke.current===e&&(De(Oe),De(ke)),je.current===e&&(De(je),sh._currentValue=Te)}var Ie,Le;function j(e){if(Ie===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ie=t&&t[1]||``,Le=-1<e.stack.indexOf(`
2
+ at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
3
+ `+Ie+e+Le}var Re=!1;function ze(e,t){if(!e||Re)return``;Re=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}n=!1;try{var i=Object.getOwnPropertyDescriptor(e.prototype,`props`);Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),n=!0,new e}finally{n&&(i===void 0?delete e.prototype.props:Object.defineProperty(e.prototype,"props",i))}}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
4
+ `),l=s.split(`
5
+ `);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
6
+ `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Re=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?j(n):``}function Be(e,t){switch(e.tag){case 26:case 27:case 5:return j(e.type);case 16:return j(`Lazy`);case 13:return e.child!==t&&t!==null?j(`Suspense Fallback`):j(`Suspense`);case 19:return j(`SuspenseList`);case 0:case 15:return ze(e.type,!1);case 11:return ze(e.type.render,!1);case 1:return ze(e.type,!0);case 31:return j(`Activity`);case 30:return j(`ViewTransition`);default:return``}}function Ve(e){try{var t=``,n=null;do t+=Be(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
7
+ Error generating stack: `+e.message+`
8
+ `+e.stack}}var He=Object.prototype.hasOwnProperty,Ue=t.unstable_scheduleCallback,We=t.unstable_cancelCallback,Ge=t.unstable_shouldYield,Ke=t.unstable_requestPaint,qe=t.unstable_now,Je=t.unstable_getCurrentPriorityLevel,Ye=t.unstable_ImmediatePriority,Xe=t.unstable_UserBlockingPriority,M=t.unstable_NormalPriority,Ze=t.unstable_LowPriority,Qe=t.unstable_IdlePriority,$e=t.log,et=t.unstable_setDisableYieldValue,tt=null,N=null;function nt(e){if(typeof $e==`function`&&et(e),N&&typeof N.setStrictMode==`function`)try{N.setStrictMode(tt,e)}catch{}}var rt=Math.clz32?Math.clz32:ot,it=Math.log,at=Math.LN2;function ot(e){return e>>>=0,e===0?32:31-(it(e)/at|0)|0}var st=256,ct=262144,lt=4194304;function ut(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function dt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=ut(n))):i=ut(o):i=ut(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=ut(n))):i=ut(o)):i=ut(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function ft(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function pt(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0<n;){var r=31-rt(n),i=1<<r;t|=e[r],n&=~i}return t}function mt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ht(){var e=lt;return lt<<=1,!(lt&62914560)&&(lt=4194304),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function P(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function _t(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-rt(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&vt(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function vt(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-rt(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-rt(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function bt(e,t){var n=t&-t;return n=n&42?1:xt(n),(n&(e.suspendedLanes|t))===0?n:0}function xt(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function St(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function Ct(){var e=D.p;return e===0?(e=window.event,e===void 0?32:Ch(e.type)):e}function wt(e,t){var n=D.p;try{return D.p=e,t()}finally{D.p=n}}var Tt=Math.random().toString(36).slice(2),Et=`__reactFiber$`+Tt,Dt=`__reactProps$`+Tt,Ot=`__reactContainer$`+Tt,kt=`__reactEvents$`+Tt,At=`__reactListeners$`+Tt,jt=`__reactHandles$`+Tt,Mt=`__reactResources$`+Tt,Nt=`__reactMarker$`+Tt,Pt=`__reactLoad$`+Tt;function Ft(e){delete e[Et],delete e[Dt],delete e[At],delete e[jt]}function It(e){var t;if(t=e[Et])return t;for(var n=e.parentNode;n;){if(t=n[Ot]||n[Et]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=fm(e);e!==null;){if(n=e[Et])return n;e=fm(e)}return t}e=n,n=e.parentNode}return null}function Lt(e){if(e=e[Et]||e[Ot]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Rt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function zt(e){var t=e[Mt];return t||=e[Mt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Bt(e){e[Nt]=!0}function Vt(e){e[Pt]=void 0}var Ht=new Set,Ut={};function Wt(e,t){Gt(e,t),Gt(e+`Capture`,t)}function Gt(e,t){for(Ut[e]=t,e=0;e<t.length;e++)Ht.add(t[e])}var Kt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),qt={},Jt={};function Yt(e){return He.call(Jt,e)?!0:He.call(qt,e)?!1:Kt.test(e)?Jt[e]=!0:(qt[e]=!0,!1)}var F=!1;function Xt(){var e=F;return F=!1,e}function Zt(e,t,n){if(Yt(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,n)}}}function Qt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,n)}}function $t(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,r)}}function en(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function tn(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function nn(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function rn(e){if(!e._valueTracker){var t=tn(e)?`checked`:`value`;e._valueTracker=nn(e,t,``+e[t])}}function an(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=tn(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}var on=/[\n"\\]/g;function sn(e){return e.replace(on,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function cn(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+en(t)):e.value!==``+en(t)&&(e.value=``+en(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):un(e,en(n)):o===`number`&&e.value==t?un(e,en(e.value)):un(e,en(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+en(s):e.removeAttribute(`name`)}function ln(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){rn(e);return}n=n==null?``:``+en(n),t=t==null?n:``+en(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),rn(e)}function un(e,t){e.defaultValue!==``+t&&(e.defaultValue=``+t)}function dn(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+en(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function fn(e,t,n){t!=null&&(t=``+en(t),t!==e.value&&(e.value=t),n==null)?e.defaultValue!==t&&(e.defaultValue=t):e.defaultValue=n==null?``:``+en(n)}function pn(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(we(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=en(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),rn(e)}function mn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var hn=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function gn(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||hn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function _n(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``,F=!0);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&(gn(e,a,r),F=!0)}else for(var o in t)t.hasOwnProperty(o)&&gn(e,o,t[o])}function vn(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var yn=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`maskType`,`mask-type`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),bn=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function xn(e){return bn.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Sn(){}var Cn=null;function wn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tn=null,En=null;function Dn(e){var t=Lt(e);if(t&&(e=t.stateNode)){var n=e[Dt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(cn(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+sn(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[Dt]||null;if(!a)throw Error(i(90));cn(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&an(r)}break a;case`textarea`:fn(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&dn(e,!!n.multiple,t,!1)}}}var On=!1;function kn(e,t,n){if(On)return e(t,n);On=!0;try{return e(t)}finally{if(On=!1,(Tn!==null||En!==null)&&(zd(),Tn&&(t=Tn,e=En,En=Tn=null,Dn(t),e)))for(t=0;t<e.length;t++)Dn(e[t])}}function An(e,t){var n=e.stateNode;if(n===null)return null;var r=n[Dt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var I=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,jn=!1;if(I)try{var L={};Object.defineProperty(L,"passive",{get:function(){jn=!0}}),window.addEventListener(`test`,L,L),window.removeEventListener(`test`,L,L)}catch{jn=!1}var Mn=null,Nn=null,Pn=null;function Fn(){if(Pn)return Pn;var e,t=Nn,n=t.length,r,i=`value`in Mn?Mn.value:Mn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Pn=i.slice(e,1<r?1-r:void 0)}function In(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function R(){return!0}function Ln(){return!1}function Rn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?R:Ln,this.isPropagationStopped=Ln,this}return S(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=R)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=R)},persist:function(){},isPersistent:R}),t}var zn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Bn=Rn(zn),Vn=S({},zn,{view:0,detail:0}),Hn=Rn(Vn),Un,Wn,z,B=S({},Vn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:er,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==z&&(z&&e.type===`mousemove`?(Un=e.screenX-z.screenX,Wn=e.screenY-z.screenY):Wn=Un=0,z=e),Un)},movementY:function(e){return`movementY`in e?e.movementY:Wn}}),Gn=Rn(B),Kn=Rn(S({},B,{dataTransfer:0})),qn=Rn(S({},Vn,{relatedTarget:0})),Jn=Rn(S({},zn,{animationName:0,elapsedTime:0,pseudoElement:0})),Yn=Rn(S({},zn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Xn=Rn(S({},zn,{data:0})),Zn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},V={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Qn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function $n(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Qn[e])?!!t[e]:!1}function er(){return $n}var tr=Rn(S({},Vn,{key:function(e){if(e.key){var t=Zn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=In(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?V[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:er,charCode:function(e){return e.type===`keypress`?In(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?In(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),nr=Rn(S({},B,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),rr=Rn(S({},zn,{submitter:0})),ir=Rn(S({},Vn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:er})),ar=Rn(S({},zn,{propertyName:0,elapsedTime:0,pseudoElement:0})),or=Rn(S({},B,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),sr=Rn(S({},zn,{newState:0,oldState:0,source:0})),cr=[9,13,27,32],lr=I&&`CompositionEvent`in window,ur=null;I&&`documentMode`in document&&(ur=document.documentMode);var dr=I&&`TextEvent`in window&&!ur,fr=I&&(!lr||ur&&8<ur&&11>=ur),pr=` `,mr=!1;function hr(e,t){switch(e){case`keyup`:return cr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function gr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var _r=!1;function vr(e,t){switch(e){case`compositionend`:return gr(t);case`keypress`:return t.which===32?(mr=!0,pr):null;case`textInput`:return e=t.data,e===pr&&mr?null:e;default:return null}}function yr(e,t){if(_r)return e===`compositionend`||!lr&&hr(e,t)?(e=Fn(),Pn=Nn=Mn=null,_r=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return fr&&t.locale!==`ko`?null:t.data;default:return null}}var br={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!br[e.type]:t===`textarea`}function Sr(e,t,n,r){Tn?En?En.push(r):En=[r]:Tn=r,t=Jf(t,`onChange`),0<t.length&&(n=new Bn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var H=null,Cr=null;function wr(e){Vf(e,0)}function Tr(e){if(an(Rt(e)))return e}function Er(e,t){if(e===`change`)return t}var Dr=!1;if(I){var Or;if(I){var kr=`oninput`in document;if(!kr){var Ar=document.createElement(`div`);Ar.setAttribute(`oninput`,`return;`),kr=typeof Ar.oninput==`function`}Or=kr}else Or=!1;Dr=Or&&(!document.documentMode||9<document.documentMode)}function jr(){H&&(H.detachEvent(`onpropertychange`,Mr),Cr=H=null)}function Mr(e){if(e.propertyName===`value`&&Tr(Cr)){var t=[];Sr(t,Cr,e,wn(e)),kn(wr,t)}}function Nr(e,t,n){e===`focusin`?(jr(),H=t,Cr=n,H.attachEvent(`onpropertychange`,Mr)):e===`focusout`&&jr()}function Pr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return Tr(Cr)}function Fr(e,t){if(e===`click`)return Tr(t)}function Ir(e,t){if(e===`input`||e===`change`)return Tr(t)}function Lr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Rr=typeof Object.is==`function`?Object.is:Lr;function zr(e,t){if(Rr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!He.call(t,i)||!Rr(e[i],t[i]))return!1}return!0}function Br(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}function Vr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Hr(e,t){var n=Vr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Vr(n)}}function Ur(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ur(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Wr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Br(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Br(e.document)}return t}function Gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Kr=I&&`documentMode`in document&&11>=document.documentMode,qr=null,Jr=null,Yr=null,Xr=!1;function Zr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Xr||qr==null||qr!==Br(r)||(r=qr,`selectionStart`in r&&Gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Yr&&zr(Yr,r)||(Yr=r,r=Jf(Jr,`onSelect`),0<r.length&&(t=new Bn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=qr)))}function Qr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var $r={animationend:Qr(`Animation`,`AnimationEnd`),animationiteration:Qr(`Animation`,`AnimationIteration`),animationstart:Qr(`Animation`,`AnimationStart`),transitionrun:Qr(`Transition`,`TransitionRun`),transitionstart:Qr(`Transition`,`TransitionStart`),transitioncancel:Qr(`Transition`,`TransitionCancel`),transitionend:Qr(`Transition`,`TransitionEnd`)},ei={},ti={};I&&(ti=document.createElement(`div`).style,`AnimationEvent`in window||(delete $r.animationend.animation,delete $r.animationiteration.animation,delete $r.animationstart.animation),`TransitionEvent`in window||delete $r.transitionend.transition);function ni(e){if(ei[e])return ei[e];if(!$r[e])return e;var t=$r[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in ti)return ei[e]=t[n];return e}var ri=ni(`animationend`),ii=ni(`animationiteration`),ai=ni(`animationstart`),oi=ni(`transitionrun`),si=ni(`transitionstart`),ci=ni(`transitioncancel`),li=ni(`transitionend`),ui=new Map,di=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);di.push(`scrollEnd`);function fi(e,t){ui.set(e,t),Wt(t,[e])}var pi=0;function mi(e,t){if(e.name!=null&&e.name!==`auto`)return e.name;if(t.autoName!==null)return t.autoName;e=bd.identifierPrefix;var n=pi++;return e=`_`+e+`t_`+n.toString(32)+`_`,t.autoName=e}function hi(e){if(e==null||typeof e==`string`)return e;var t=null,n=Od;if(n!==null)for(var r=0;r<n.length;r++){var i=e[n[r]];if(i!=null){if(i===`none`)return`none`;t=t==null?i:t+(` `+i)}}return t??e.default}function gi(e,t){return e=hi(e),t=hi(t),t==null?e===`auto`?null:e:t===`auto`?null:t}var _i=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},vi=[],yi=0,bi=0;function xi(){for(var e=yi,t=bi=yi=0;t<e;){var n=vi[t];vi[t++]=null;var r=vi[t];vi[t++]=null;var i=vi[t];vi[t++]=null;var a=vi[t];if(vi[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Ti(n,i,a)}}function Si(e,t,n,r){vi[yi++]=e,vi[yi++]=t,vi[yi++]=n,vi[yi++]=r,bi|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Ci(e,t,n,r){return Si(e,t,n,r),Ei(e)}function wi(e,t){return Si(e,null,null,t),Ei(e)}function Ti(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-rt(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function Ei(e){if(50<kd)throw kd=0,Ad=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Di={};function Oi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ki(e,t,n,r){return new Oi(e,t,n,r)}function Ai(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ji(e,t){var n=e.alternate;return n===null?(n=ki(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&1206910976,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Mi(e,t){e.flags&=1206910978;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Ni(e,t,n,r,a,o){var s=0;if(r=e,typeof r==`function`)Ai(r)&&(s=1);else if(typeof r==`string`)s=qm(e,n,Oe.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(r){case _e:return e=ki(31,n,t,a),e.elementType=_e,e.lanes=o,e;case ce:return Pi(n.children,a,o,t);case le:s=8,a|=24;break;case ue:return e=ki(12,n,t,a|2),e.elementType=ue,e.lanes=o,e;case me:return e=ki(13,n,t,a),e.elementType=me,e.lanes=o,e;case C:return e=ki(19,n,t,a),e.elementType=C,e.lanes=o,e;case w:case ye:return e=a|32,e=ki(30,n,t,e),e.elementType=ye,e.lanes=o,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if(typeof r==`object`&&r)switch(r.$$typeof){case fe:s=10;break a;case de:s=9;break a;case pe:s=11;break a;case he:s=14;break a;case ge:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=ki(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function Pi(e,t,n,r){return e=ki(7,e,r,t),e.lanes=n,e}function Fi(e,t,n){return e=ki(6,e,null,t),e.lanes=n,e}function Ii(e){var t=ki(18,null,null,0);return t.stateNode=e,t}function Li(e,t,n){return t=ki(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Ri=new WeakMap;function zi(e,t){if(typeof e==`object`&&e){var n=Ri.get(e);return n===void 0?(t={value:e,source:t,stack:Ve(t)},Ri.set(e,t),t):n}return{value:e,source:t,stack:Ve(t)}}var Bi=[],Vi=0,Hi=null,Ui=0,Wi=[],Gi=0,Ki=null,qi=1,Ji=``;function Yi(e,t){Bi[Vi++]=Ui,Bi[Vi++]=Hi,Hi=e,Ui=t}function Xi(e,t,n){Wi[Gi++]=qi,Wi[Gi++]=Ji,Wi[Gi++]=Ki,Ki=e;var r=qi;e=Ji;var i=32-rt(r)-1;r&=~(1<<i),n+=1;var a=32-rt(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,qi=1<<32-rt(t)+i|n<<i|r,Ji=a+e}else qi=1<<a|n<<i|r,Ji=e}function Zi(e){e.return!==null&&(Yi(e,1),Xi(e,1,0))}function Qi(e){for(;e===Hi;)Hi=Bi[--Vi],Bi[Vi]=null,Ui=Bi[--Vi],Bi[Vi]=null;for(;e===Ki;)Ki=Wi[--Gi],Wi[Gi]=null,Ji=Wi[--Gi],Wi[Gi]=null,qi=Wi[--Gi],Wi[Gi]=null}function $i(e,t){Wi[Gi++]=qi,Wi[Gi++]=Ji,Wi[Gi++]=Ki,qi=t.id,Ji=t.overflow,Ki=e}var ea=null,ta=null,U=!1,na=null,ra=!1,ia=Error(i(519));function aa(e){throw da(zi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),ia}function oa(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[Et]=e,t[Dt]=r,n){case`dialog`:Q(`cancel`,t),Q(`close`,t);break;case`iframe`:case`object`:case`embed`:Q(`load`,t);break;case`video`:case`audio`:for(n=0;n<zf.length;n++)Q(zf[n],t);break;case`source`:Q(`error`,t);break;case`img`:case`image`:case`link`:Q(`error`,t),Q(`load`,t);break;case`details`:Q(`toggle`,t);break;case`input`:Q(`invalid`,t),ln(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Q(`invalid`,t);break;case`textarea`:Q(`invalid`,t),pn(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||ep(t.textContent,n)?(r.popover!=null&&(Q(`beforetoggle`,t),Q(`toggle`,t)),r.onScroll!=null&&Q(`scroll`,t),r.onScrollEnd!=null&&Q(`scrollend`,t),r.onClick!=null&&(t.onclick=Sn),t=!0):t=!1,t||aa(e,!0)}function sa(e){for(ea=e.return;ea;)switch(ea.tag){case 5:case 31:case 13:ra=!1;return;case 27:case 3:ra=!0;return;default:ea=ea.return}}function ca(e){if(e!==ea)return!1;if(!U)return sa(e),U=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||pp(e.type,e.memoizedProps)),n=!n),n&&ta&&aa(e),sa(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));ta=dm(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));ta=dm(e)}else t===27?(t=ta,Sp(e.type)?(e=um,um=null,ta=e):ta=t):ta=ea?lm(e.stateNode.nextSibling):null;return!0}function la(){ta=ea=null,U=!1}function ua(){var e=na;return e!==null&&(fd===null?fd=e:fd.push.apply(fd,e),na=null),e}function da(e){na===null?na=[e]:na.push(e)}var fa=k(null),pa=null,ma=null;function ha(e,t,n){A(fa,t._currentValue),t._currentValue=n}function ga(e){e._currentValue=fa.current,De(fa)}function _a(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function va(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),_a(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),_a(s,n,e),s=null}else a.tag===13&&a.memoizedState!==null&&a.memoizedState.dehydrated===null?(a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),_a(a.return,n,e),s=a.child,s=s===null?null:s.sibling):s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function ya(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Rr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===je.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[sh]:e.push(sh))}a=a.return}return e!==null&&va(t,e,n,r),t.flags|=262144,e!==null}function ba(e){for(e=e.firstContext;e!==null;){if(!Rr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function xa(e){pa=e,ma=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Sa(e){return wa(pa,e)}function Ca(e,t){return pa===null&&xa(e),wa(e,t)}function wa(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},ma===null){if(e===null)throw Error(i(308));ma=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ma=ma.next=t;return n}var Ta=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Ea=t.unstable_scheduleCallback,Da=t.unstable_NormalPriority,Oa={$$typeof:fe,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ka(){return{controller:new Ta,data:new Map,refCount:0}}function Aa(e){e.refCount--,e.refCount===0&&Ea(Da,function(){e.controller.abort()})}function ja(e,t){if(e.pendingLanes&4194048){var n=e.transitionTypes;for(n===null&&(n=e.transitionTypes=[]),e=0;e<t.length;e++){var r=t[e];n.indexOf(r)===-1&&n.push(r)}}}var Ma=null;function Na(e){var t=e.transitionTypes;return e.transitionTypes=null,t}var Pa=null,Fa=0,Ia=0,La=null;function Ra(e,t){if(Pa===null){var n=Pa=[];Fa=0,Ia=Pf(),La={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return Fa++,t.then(za,za),t}function za(){if(--Fa===0&&(Ma=null,Pa!==null)){La!==null&&(La.status=`fulfilled`);var e=Pa;Pa=null,Ia=0,La=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ba(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var Va=E.S;E.S=function(e,t){if(hd=qe(),typeof t==`object`&&t&&typeof t.then==`function`&&Ra(e,t),Ma!==null)for(var n=bf;n!==null;)ja(n,Ma),n=n.next;if(n=e.types,n!==null){for(var r=bf;r!==null;)ja(r,n),r=r.next;if(Ia!==0){r=Ma,r===null&&(r=Ma=[]);for(var i=0;i<n.length;i++){var a=n[i];r.indexOf(a)===-1&&r.push(a)}}}Va!==null&&Va(e,t)};var Ha=k(null);function Ua(){var e=Ha.current;return e===null?$u.pooledCache:e}function Wa(e,t){t===null?A(Ha,Ha.current):A(Ha,t.pool)}function Ga(){var e=Ua();return e===null?null:{parent:Oa._currentValue,pool:e}}var Ka=Error(i(460)),qa=Error(i(474)),Ja=Error(i(542)),Ya={then:function(){}};function Xa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Za(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Sn,Sn),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,to(e),e===void 0&&!(`reason`in t)?Error(i(600)):e;default:if(typeof t.status==`string`)t.then(Sn,Sn);else{if(e=$u,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,to(e),e}throw $a=t,Ka}}function Qa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?($a=e,Ka):e}}var $a=null;function eo(){if($a===null)throw Error(i(459));var e=$a;return $a=null,e}function to(e){if(e===Ka||e===Ja)throw Error(i(483))}var no=null,ro=0;function io(e){var t=ro;return ro+=1,no===null&&(no=[]),Za(no,e,t)}function ao(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function oo(e,t){throw t.$$typeof===ae?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function so(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=ji(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=134217730,n):(r=r.index,r<n?(t.flags|=2,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=134217730),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=Fi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===ce?(e=d(e,t,n.props.children,r,n.key),ao(e,n),e):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===ge&&Qa(i)===t.type)?(t=a(t,n.props),ao(t,n),t.return=e,t):(t=Ni(n.type,n.key,n.props,null,e.mode,r),ao(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Li(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=Pi(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=Fi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case oe:return n=Ni(t.type,t.key,t.props,null,e.mode,n),ao(n,t),n.return=e,n;case se:return t=Li(t,e.mode,n),t.return=e,t;case ge:return t=Qa(t),f(e,t,n)}if(we(t)||Se(t))return t=Pi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,io(t),n);if(t.$$typeof===fe)return f(e,Ca(e,t),n);oo(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case oe:return n.key===i?l(e,t,n,r):null;case se:return n.key===i?u(e,t,n,r):null;case ge:return n=Qa(n),p(e,t,n,r)}if(we(n)||Se(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,io(n),r);if(n.$$typeof===fe)return p(e,t,Ca(e,n),r);oo(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case oe:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case se:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case ge:return r=Qa(r),m(e,t,n,r,i)}if(we(r)||Se(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,io(r),i);if(r.$$typeof===fe)return m(e,t,n,Ca(t,r),i);oo(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),U&&Yi(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return U&&Yi(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&(_=g.alternate,_!==null&&d.delete(_.key===null?h:_.key)),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),U&&Yi(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),U&&Yi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return U&&Yi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),U&&Yi(a,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===ce&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case oe:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===ce){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),ao(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===ge&&Qa(l)===r.type){n(e,r.sibling),c=a(r,o.props),ao(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===ce?(c=Pi(o.props.children,e.mode,c,o.key),ao(c,o),c.return=e,e=c):(c=Ni(o.type,o.key,o.props,null,e.mode,c),ao(c,o),c.return=e,e=c)}return s(e);case se:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Li(o,e.mode,c),c.return=e,e=c}return s(e);case ge:return o=Qa(o),_(e,r,o,c)}if(we(o))return h(e,r,o,c);if(Se(o)){if(l=Se(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,io(o),c);if(o.$$typeof===fe)return _(e,r,Ca(e,o),c);oo(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=Fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{ro=0;var i=_(e,t,n,r);return no=null,i}catch(t){if(t===Ka||t===Ja)throw t;var a=ki(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var co=so(!0),lo=so(!1),uo=!1;function fo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function po(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function mo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ho(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,q&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Ei(e),Ti(e,null,n),t}return Si(e,r,t,n),Ei(e)}function go(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,yt(e,n)}}function _o(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n}else e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var vo=!1;function yo(){if(vo){var e=La;if(e!==null)throw e}}function bo(e,t,n,r){vo=!1;var i=e.updateQueue;uo=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Y&f)===f:(r&f)===f){f!==0&&f===Ia&&(vo=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=S({},d,f);break a;case 2:uo=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),od|=o,e.lanes=o,e.memoizedState=d}}function xo(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function So(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)xo(n[e],t)}var Co=k(null),wo=k(0);function To(e,t){e=id,A(wo,e),A(Co,t),id=e|t.baseLanes}function Eo(){A(wo,id),A(Co,Co.current)}function Do(){id=wo.current,De(Co),De(wo)}var Oo=k(null),ko=null;function Ao(e){var t=e.alternate;A(Fo,Fo.current&1),A(Oo,e),ko===null&&(t===null||Co.current!==null||t.memoizedState!==null)&&(ko=e)}function jo(e){A(Fo,Fo.current),A(Oo,e),ko===null&&(ko=e)}function Mo(e){e.tag===22?(A(Fo,Fo.current),A(Oo,e),ko===null&&(ko=e)):No()}function No(){A(Fo,Fo.current),A(Oo,Oo.current)}function Po(e){De(Oo),ko===e&&(ko=null),De(Fo)}var Fo=k(0);function Io(e,t){A(Oo,Oo.current),A(Fo,t)}function Lo(e){De(Fo),De(Oo),ko===e&&(ko=null)}function Ro(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||om(n)||sm(n)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==`independent`){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var zo=0,W=null,G=null,Bo=null,Vo=!1,Ho=!1,Uo=!1,Wo=0,Go=0,Ko=null,qo=0;function Jo(){throw Error(i(321))}function Yo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Rr(e[n],t[n]))return!1;return!0}function Xo(e,t,n,r,i,a){return zo=a,W=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,E.H=e===null||e.memoizedState===null?pc:mc,Uo=!1,a=n(r,i),Uo=!1,Ho&&(a=Qo(t,n,r,i)),Zo(e),a}function Zo(e){E.H=fc;var t=G!==null&&G.next!==null;if(zo=0,Bo=G=W=null,Vo=!1,Go=0,Ko=null,t)throw Error(i(300));e===null||jc||(e=e.dependencies,e!==null&&ba(e)&&(jc=!0))}function Qo(e,t,n,r){W=e;var a=0;do{if(Ho&&(Ko=null),Go=0,Ho=!1,25<=a)throw Error(i(301));if(a+=1,Bo=G=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}E.H=hc,o=t(n,r)}while(Ho);return o}function $o(){var e=E.H,t=e.useState()[0];return t=typeof t.then==`function`?os(t):t,e=e.useState()[0],(G===null?null:G.memoizedState)!==e&&(W.flags|=1024),t}function es(){var e=Wo!==0;return Wo=0,e}function ts(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function ns(e){if(Vo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}Vo=!1}zo=0,Bo=G=W=null,Ho=!1,Go=Wo=0,Ko=null}function rs(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Bo===null?W.memoizedState=Bo=e:Bo=Bo.next=e,Bo}function is(){if(G===null){var e=W.alternate;e=e===null?null:e.memoizedState}else e=G.next;var t=Bo===null?W.memoizedState:Bo.next;if(t!==null)Bo=t,G=e;else{if(e===null)throw W.alternate===null?Error(i(467)):Error(i(310));G=e,e={memoizedState:G.memoizedState,baseState:G.baseState,baseQueue:G.baseQueue,queue:G.queue,next:null},Bo===null?W.memoizedState=Bo=e:Bo=Bo.next=e}return Bo}function as(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function os(e){var t=Go;return Go+=1,Ko===null&&(Ko=[]),e=Za(Ko,e,t),t=W,(Bo===null?t.memoizedState:Bo.next)===null&&(t=t.alternate,E.H=t===null||t.memoizedState===null?pc:mc),e}function ss(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return os(e);if(e.$$typeof===be)return;if(e.$$typeof===fe)return Sa(e)}throw Error(i(438,String(e)))}function cs(e){var t=null,n=W.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=W.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=as(),W.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ve;return t.index++,n}function ls(e,t){return typeof t==`function`?t(e):t}function us(e){return ds(is(),G,e)}function ds(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(zo&f)===f:(Y&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===Ia&&(d=!0);else if((zo&p)===p){u=u.next,p===Ia&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,W.lanes|=p,od|=p;f=u.action,Uo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,W.lanes|=f,od|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Rr(o,e.memoizedState)&&(jc=!0,d&&(n=La,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function fs(e){var t=is(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Rr(o,t.memoizedState)||(jc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function ps(e,t,n){var r=W,a=is(),o=U;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Rr((G||a).memoizedState,n);if(s&&(a.memoizedState=n,jc=!0),a=a.queue,Rs(gs.bind(null,r,a,e),[e]),e=a.getSnapshot!==t||s||Bo!==null&&!!(Bo.memoizedState.tag&1),Ns(e?9:8,{destroy:void 0},hs.bind(null,r,a,n,t),null),e){if(r.flags|=2048,$u===null)throw Error(i(349));o||zo&127||ms(r,t,n)}return n}function ms(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=W.updateQueue,t===null?(t=as(),W.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function hs(e,t,n,r){t.value=n,t.getSnapshot=r,_s(t)&&vs(e)}function gs(e,t,n){return n(function(){_s(t)&&vs(e)})}function _s(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Rr(e,n)}catch{return!0}}function vs(e){var t=wi(e,2);t!==null&&Pd(t,e,2)}function ys(e){var t=rs();if(typeof e==`function`){var n=e;if(e=n(),Uo){nt(!0);try{n()}finally{nt(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ls,lastRenderedState:e},t}function bs(e,t,n,r){return e.baseState=n,ds(e,G,typeof r==`function`?r:ls)}function xs(e,t,n,r,a){if(lc(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};E.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Ss(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Ss(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=E.T,o={};o.types=a===null?null:a.types,E.T=o;try{var s=n(i,r),c=E.S;c!==null&&c(o,s),Cs(e,t,s)}catch(n){Ts(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),E.T=a}}else try{a=n(i,r),Cs(e,t,a)}catch(n){Ts(e,t,n)}}function Cs(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){ws(e,t,n)},function(n){return Ts(e,t,n)}):ws(e,t,n)}function ws(e,t,n){t.status=`fulfilled`,t.value=n,Es(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Ss(e,n)))}function Ts(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Es(t),t=t.next;while(t!==r)}e.action=null}function Es(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Ds(e,t){return t}function Os(e,t){if(U){var n=$u.formState;if(n!==null){a:{var r=W;if(U){if(ta){b:{for(var i=ta,a=ra;i.nodeType!==8;)if(!a||(i=lm(i.nextSibling),i===null)){i=null;break b}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){ta=lm(i.nextSibling),r=i.data===`F!`;break a}}aa(r)}r=!1}r&&(t=n[0])}}return n=rs(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ds,lastRenderedState:t},n.queue=r,n=oc.bind(null,W,r),r.dispatch=n,r=ys(!1),a=cc.bind(null,W,!1,r.queue),r=rs(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=xs.bind(null,W,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ks(e){return As(is(),G,e)}function As(e,t,n){if(t=ds(e,t,Ds)[0],e=us(ls)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=os(t)}catch(e){throw e===Ka?Ja:e}else r=t;t=is();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(W.flags|=2048,Ns(9,{destroy:void 0},js.bind(null,i,n),null)),[r,a,e]}function js(e,t){e.action=t}function Ms(e){var t=is(),n=G;if(n!==null)return As(t,n,e);is(),t=t.memoizedState,n=is();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function Ns(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=W.updateQueue,t===null&&(t=as(),W.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Ps(){return is().memoizedState}function Fs(e,t,n,r){var i=rs();W.flags|=e,i.memoizedState=Ns(1|t,{destroy:void 0},n,r===void 0?null:r)}function Is(e,t,n,r){var i=is();r=r===void 0?null:r;var a=i.memoizedState.inst;G!==null&&r!==null&&Yo(r,G.memoizedState.deps)?i.memoizedState=Ns(t,a,n,r):(W.flags|=e,i.memoizedState=Ns(1|t,a,n,r))}function Ls(e,t){Fs(8390656,8,e,t)}function Rs(e,t){Is(2048,8,e,t)}function zs(e){W.flags|=4;var t=W.updateQueue;if(t===null)t=as(),W.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Bs(e){var t=is().memoizedState;return zs({ref:t,nextImpl:e}),function(){if(q&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function Vs(e,t){return Is(4,2,e,t)}function Hs(e,t){return Is(4,4,e,t)}function Us(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ws(e,t,n){n=n==null?null:n.concat([e]),Is(4,4,Us.bind(null,t,e),n)}function Gs(){}function Ks(e,t){var n=is();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Yo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qs(e,t){var n=is();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Yo(t,r[1]))return r[0];if(r=e(),Uo){nt(!0);try{e()}finally{nt(!1)}}return n.memoizedState=[r,t],r}function Js(e,t,n){return n===void 0||zo&1073741824&&!(Y&261930)?e.memoizedState=t:(e.memoizedState=n,e=Md(),W.lanes|=e,od|=e,n)}function Ys(e,t,n,r){return Rr(n,t)?n:Co.current===null?!(zo&106)||zo&1073741824&&!(Y&261930)?(jc=!0,e.memoizedState=n):(e=Md(),W.lanes|=e,od|=e,t):(e=Js(e,n,r),Rr(e,t)||(jc=!0),e)}function Xs(e,t,n,r,i){var a=D.p;D.p=a!==0&&8>a?a:8;var o=E.T,s={};s.types=o===null?null:o.types,E.T=s,cc(e,!1,t,n);try{var c=i(),l=E.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?sc(e,t,Ba(c,r),jd(e)):sc(e,t,r,jd(e))}catch(n){sc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{D.p=a,o!==null&&s.types!==null&&(o.types=s.types),E.T=o}}function Zs(){}function Qs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=$s(e).queue;Xs(e,a,t,Te,n===null?Zs:function(){return ec(e),n(r)})}function $s(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Te,baseState:Te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ls,lastRenderedState:Te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ls,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ec(e){var t=$s(e);t.next===null&&(t=e.alternate.memoizedState),sc(e,t.next.queue,{},jd())}function tc(){return Sa(sh)}function nc(){return is().memoizedState}function rc(){return is().memoizedState}function ic(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=mo(n);var r=ho(t,e,n);r!==null&&(Pd(r,t,n),go(r,t,n)),t={cache:ka()},e.payload=t;return}t=t.return}}function ac(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},lc(e)?uc(t,n):(n=Ci(e,t,n,r),n!==null&&(Pd(n,e,r),dc(n,t,r)))}function oc(e,t,n){sc(e,t,n,jd())}function sc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(lc(e))uc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Rr(s,o))return Si(e,t,i,0),$u===null&&xi(),!1}catch{}if(n=Ci(e,t,i,r),n!==null)return Pd(n,e,r),dc(n,t,r),!0}return!1}function cc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},lc(e)){if(t)throw Error(i(479))}else t=Ci(e,n,r,2),t!==null&&Pd(t,e,2)}function lc(e){var t=e.alternate;return e===W||t!==null&&t===W}function uc(e,t){Ho=Vo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function dc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,yt(e,n)}}var fc={readContext:Sa,use:ss,useCallback:Jo,useContext:Jo,useEffect:Jo,useImperativeHandle:Jo,useLayoutEffect:Jo,useInsertionEffect:Jo,useMemo:Jo,useReducer:Jo,useRef:Jo,useState:Jo,useDebugValue:Jo,useDeferredValue:Jo,useTransition:Jo,useSyncExternalStore:Jo,useId:Jo,useHostTransitionStatus:Jo,useFormState:Jo,useActionState:Jo,useOptimistic:Jo,useMemoCache:Jo,useCacheRefresh:Jo,useEffectEvent:Jo},pc={readContext:Sa,use:ss,useCallback:function(e,t){return rs().memoizedState=[e,t===void 0?null:t],e},useContext:Sa,useEffect:Ls,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Fs(4194308,4,Us.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Fs(4194308,4,e,t)},useInsertionEffect:function(e,t){Fs(4,2,e,t)},useMemo:function(e,t){var n=rs();t=t===void 0?null:t;var r=e();if(Uo){nt(!0);try{e()}finally{nt(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=rs();if(n!==void 0){var i=n(t);if(Uo){nt(!0);try{n(t)}finally{nt(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=ac.bind(null,W,e),[r.memoizedState,e]},useRef:function(e){var t=rs();return e={current:e},t.memoizedState=e},useState:function(e){e=ys(e);var t=e.queue,n=oc.bind(null,W,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Gs,useDeferredValue:function(e,t){return Js(rs(),e,t)},useTransition:function(){var e=ys(!1);return e=Xs.bind(null,W,e.queue,!0,!1),rs().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=W,a=rs();if(U){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),$u===null)throw Error(i(349));Y&127||ms(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Ls(gs.bind(null,r,o,e),[e]),r.flags|=2048,Ns(9,{destroy:void 0},hs.bind(null,r,o,n,t),null),n},useId:function(){var e=rs(),t=$u.identifierPrefix;if(U){var n=Ji,r=qi;n=(r&~(1<<32-rt(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Wo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=qo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:tc,useFormState:Os,useActionState:Os,useOptimistic:function(e){var t=rs();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=cc.bind(null,W,!0,n),n.dispatch=t,[e,t]},useMemoCache:cs,useCacheRefresh:function(){return rs().memoizedState=ic.bind(null,W)},useEffectEvent:function(e){var t=rs(),n={impl:e};return t.memoizedState=n,function(){if(q&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},mc={readContext:Sa,use:ss,useCallback:Ks,useContext:Sa,useEffect:Rs,useImperativeHandle:Ws,useInsertionEffect:Vs,useLayoutEffect:Hs,useMemo:qs,useReducer:us,useRef:Ps,useState:function(){return us(ls)},useDebugValue:Gs,useDeferredValue:function(e,t){return Ys(is(),G.memoizedState,e,t)},useTransition:function(){var e=us(ls)[0],t=is().memoizedState;return[typeof e==`boolean`?e:os(e),t]},useSyncExternalStore:ps,useId:nc,useHostTransitionStatus:tc,useFormState:ks,useActionState:ks,useOptimistic:function(e,t){return bs(is(),G,e,t)},useMemoCache:cs,useCacheRefresh:rc,useEffectEvent:Bs},hc={readContext:Sa,use:ss,useCallback:Ks,useContext:Sa,useEffect:Rs,useImperativeHandle:Ws,useInsertionEffect:Vs,useLayoutEffect:Hs,useMemo:qs,useReducer:fs,useRef:Ps,useState:function(){return fs(ls)},useDebugValue:Gs,useDeferredValue:function(e,t){var n=is();return G===null?Js(n,e,t):Ys(n,G.memoizedState,e,t)},useTransition:function(){var e=fs(ls)[0],t=is().memoizedState;return[typeof e==`boolean`?e:os(e),t]},useSyncExternalStore:ps,useId:nc,useHostTransitionStatus:tc,useFormState:Ms,useActionState:Ms,useOptimistic:function(e,t){var n=is();return G===null?(n.baseState=e,[e,n.queue.dispatch]):bs(n,G,e,t)},useMemoCache:cs,useCacheRefresh:rc,useEffectEvent:Bs};function gc(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:S({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var _c={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=jd(),i=mo(r);i.payload=t,n!=null&&(i.callback=n),t=ho(e,i,r),t!==null&&(Pd(t,e,r),go(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=jd(),i=mo(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=ho(e,i,r),t!==null&&(Pd(t,e,r),go(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=jd(),r=mo(n);r.tag=2,t!=null&&(r.callback=t),t=ho(e,r,n),t!==null&&(Pd(t,e,n),go(t,e,n))}};function vc(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!zr(n,r)||!zr(i,a):!0}function yc(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&_c.enqueueReplaceState(t,t.state,null)}function bc(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=S({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function xc(e){_i(e)}function Sc(e){console.error(e)}function Cc(e){_i(e)}function wc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Tc(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ec(e,t,n){return n=mo(n),n.tag=3,n.payload={element:null},n.callback=function(){wc(e,t)},n}function Dc(e){return e=mo(e),e.tag=3,e}function Oc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Tc(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Tc(t,n,r),typeof i!=`function`&&(vd===null?vd=new Set([this]):vd.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function kc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&ya(t,n,a,!0),n=Oo.current,n!==null){switch(n.tag){case 31:case 13:case 19:return ko===null?Kd():n.alternate===null&&ad===0&&(ad=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Ya?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),mf(e,r,a)),!1;case 22:return n.flags|=65536,r===Ya?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),mf(e,r,a)),!1}throw Error(i(435,n.tag))}return mf(e,r,a),Kd(),!1}if(U)return t=Oo.current,t===null?(r!==ia&&(t=Error(i(423),{cause:r}),da(zi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=zi(r,n),a=Ec(e.stateNode,r,a),_o(e,a),ad!==4&&(ad=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==ia&&(e=Error(i(422),{cause:r}),da(zi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=zi(o,n),dd===null?dd=[o]:dd.push(o),ad!==4&&(ad=2),t===null)return!0;r=zi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Ec(n.stateNode,r,e),_o(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(vd===null||!vd.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=Dc(a),Oc(a,e,n,r),_o(n,a),!1;break;case 22:if(n.memoizedState!==null)return n.flags|=65536,!1}n=n.return}while(n!==null);return!1}var Ac=Error(i(461)),jc=!1;function Mc(e,t,n,r){t.child=e===null?lo(t,null,n,r):co(t,e.child,n,r)}function Nc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return xa(t),r=Xo(e,t,n,o,a,i),s=es(),e!==null&&!jc?(ts(e,t,i),sl(e,t,i)):(U&&s&&Zi(t),t.flags|=1,Mc(e,t,r,i),t.child)}function Pc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!Ai(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,Fc(e,t,a,r,i)):(e=Ni(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!cl(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?zr:n,n(o,r)&&e.ref===t.ref)return sl(e,t,i)}return t.flags|=1,e=ji(a,r),e.ref=t.ref,e.return=t,t.child=e}function Fc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(zr(a,r)&&e.ref===t.ref){if(jc=!1,t.pendingProps=r=a,cl(e,i))e.flags&131072&&(jc=!0);else return t.lanes=e.lanes,sl(e,t,i)}}return Uc(e,t,n,r,i)}function Ic(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return Rc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Wa(t,a===null?null:a.cachePool),a===null?Eo():To(t,a),Mo(t);else return r=t.lanes=536870912,Rc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Wa(t,null),Eo(),No()):(Wa(t,a.cachePool),To(t,a),No(),t.memoizedState=null);return Mc(e,t,i,n),t.child}function Lc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Rc(e,t,n,r,i){var a=Ua();return a=a===null?null:{parent:Oa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Wa(t,null),Eo(),Mo(t),e!==null&&ya(e,t,r,!0),t.childLanes=i,null}function zc(e,t){return t=Qc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Bc(e,t,n){return co(t,e.child,null,n),e=zc(t,t.pendingProps),e.flags|=2,Po(t),t.memoizedState=null,e}function Vc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(U){if(r.mode===`hidden`)return e=zc(t,r),t.lanes=536870912,e.memoizedState={baseLanes:0,cachePool:null},Lc(null,e);if(jo(t),(e=ta)?(e=am(e,ra),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ki===null?null:{id:qi,overflow:Ji},retryLane:536870912,hydrationErrors:null},n=Ii(e),n.return=t,t.child=n,ea=t,ta=null)):e=null,e===null)throw aa(t);return t.lanes=536870912,null}return zc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(jo(t),a){if(t.flags&256)t.flags&=-257,t=Bc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(jc||ya(e,t,n,!1),a=(n&e.childLanes)!==0,jc||a){if(Co.current===null){if(r=$u,r!==null&&(s=bt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,wi(e,s),Pd(r,e,s),Ac;Kd()}t=Bc(e,t,n)}else e=o.treeContext,ta=lm(s.nextSibling),ea=t,U=!0,na=null,ra=!1,e!==null&&$i(t,e),t=zc(t,r),t.flags|=134221824;return t}return e=ji(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Hc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Uc(e,t,n,r,i){return xa(t),n=Xo(e,t,n,r,void 0,i),r=es(),e!==null&&!jc?(ts(e,t,i),sl(e,t,i)):(U&&r&&Zi(t),t.flags|=1,Mc(e,t,n,i),t.child)}function Wc(e,t,n,r,i,a){return xa(t),t.updateQueue=null,n=Qo(t,r,n,i),Zo(e),r=es(),e!==null&&!jc?(ts(e,t,a),sl(e,t,a)):(U&&r&&Zi(t),t.flags|=1,Mc(e,t,n,a),t.child)}function Gc(e,t,n,r,i){if(xa(t),t.stateNode===null){var a=Di,o=n.contextType;typeof o==`object`&&o&&(a=Sa(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=_c,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},fo(t),o=n.contextType,a.context=typeof o==`object`&&o?Sa(o):Di,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(gc(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&_c.enqueueReplaceState(a,a.state,null),bo(t,r,a,i),yo(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=bc(n,s);a.props=c;var l=a.context,u=n.contextType;o=Di,typeof u==`object`&&u&&(o=Sa(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&yc(t,a,r,o),uo=!1;var f=t.memoizedState;a.state=f,bo(t,r,a,i),yo(),l=t.memoizedState,s||f!==l||uo?(typeof d==`function`&&(gc(t,n,d,r),l=t.memoizedState),(c=uo||vc(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,po(e,t),o=t.memoizedProps,u=bc(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Di,typeof l==`object`&&l&&(c=Sa(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&yc(t,a,r,c),uo=!1,f=t.memoizedState,a.state=f,bo(t,r,a,i),yo();var p=t.memoizedState;o!==d||f!==p||uo||e!==null&&e.dependencies!==null&&ba(e.dependencies)?(typeof s==`function`&&(gc(t,n,s,r),p=t.memoizedState),(u=uo||vc(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&ba(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,Hc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=co(t,e.child,null,i),t.child=co(t,null,n,i)):Mc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=sl(e,t,i),e}function Kc(e,t,n,r){return la(),t.flags|=256,Mc(e,t,n,r),t.child}var qc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Jc(e){return{baseLanes:e,cachePool:Ga()}}function Yc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=ld),e}function Xc(e,t,n){var r=t.pendingProps,i=!1,a=!!(t.flags&128),o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:!!(Fo.current&2)),o&&(i=!0,t.flags&=-129),o=!!(t.flags&32),t.flags&=-33,e===null){if(U){if(i?Ao(t):No(),(e=ta)?(e=am(e,ra),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ki===null?null:{id:qi,overflow:Ji},retryLane:536870912,hydrationErrors:null},n=Ii(e),n.return=t,t.child=n,ea=t,ta=null)):e=null,e===null)throw aa(t);return t.lanes=sm(e)?32:536870912,null}return a=r.children,r=r.fallback,i?(No(),i=t.mode,a=Qc({mode:`hidden`,children:a},i),r=Pi(r,i,n,null),a.return=t,r.return=t,a.sibling=r,t.child=a,r=t.child,r.memoizedState=Jc(n),r.childLanes=Yc(e,o,n),t.memoizedState=qc,Lc(null,r)):(Ao(t),Zc(t,a))}var s=e.memoizedState;if(s!==null){var c=s.dehydrated;if(c!==null)return el(e,t,a,o,r,c,s,n)}return i?(No(),i=r.fallback,a=t.mode,s=e.child,c=s.sibling,r=ji(s,{mode:`hidden`,children:r.children}),r.subtreeFlags=s.subtreeFlags&1206910976,c===null?(i=Pi(i,a,n,null),i.flags|=2):i=ji(c,i),i.return=t,r.return=t,r.sibling=i,t.child=r,Lc(null,r),r=t.child,i=e.child.memoizedState,i===null?i=Jc(n):(a=i.cachePool,a===null?a=Ga():(s=Oa._currentValue,a=a.parent===s?a:{parent:s,pool:s}),i={baseLanes:i.baseLanes|n,cachePool:a}),r.memoizedState=i,r.childLanes=Yc(e,o,n),t.memoizedState=qc,Lc(e.child,r)):(Ao(t),n=e.child,e=n.sibling,n=ji(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=n,t.memoizedState=null,n)}function Zc(e,t){return t=Qc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Qc(e,t){return e=ki(22,e,null,t),e.lanes=0,e}function $c(e,t,n){return co(t,e.child,null,n),e=Zc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function el(e,t,n,r,a,o,s,c){if(n)return t.flags&256?(Ao(t),t.flags&=-257,$c(e,t,c)):t.memoizedState===null?(No(),o=a.fallback,s=t.mode,a=Qc({mode:`visible`,children:a.children},s),o=Pi(o,s,c,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,co(t,e.child,null,c),a=t.child,a.memoizedState=Jc(c),a.childLanes=Yc(e,r,c),t.memoizedState=qc,Lc(null,a)):(No(),t.child=e.child,t.flags|=128,null);if(Ao(t),sm(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var l=r.dgst;return r=l,r!==``&&(a=Error(i(419)),a.stack=``,a.digest=r,da({value:a,source:null,stack:null})),$c(e,t,c)}if(jc||ya(e,t,c,!1),r=(c&e.childLanes)!==0,jc||r){if(Co.current!==null)return $c(e,t,c);if(r=$u,r!==null&&(a=bt(r,c),a!==0&&a!==s.retryLane))throw s.retryLane=a,wi(e,a),Pd(r,e,a),Ac;return om(o)||Kd(),$c(e,t,c)}return om(o)?(t.flags|=192,t.child=e.child,null):(e=s.treeContext,ta=lm(o.nextSibling),ea=t,U=!0,na=null,ra=!1,e!==null&&$i(t,e),t=Zc(t,a.children),t.flags|=134221824,t)}function tl(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),_a(e.return,t,n)}function nl(e){for(var t=null;e!==null;){var n=e.alternate;n!==null&&Ro(n)===null&&(t=e),e=e.sibling}return t}function rl(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function il(e){var t=e.child;for(e.child=null;t!==null;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function al(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=Fo.current;if(t.flags&128)return Io(t,o),null;var s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,Io(t,o),i===`backwards`&&e!==null?(il(e),Mc(e,t,r,n),il(e)):Mc(e,t,r,n),r=U?Ui:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&tl(e,n,t);else if(e.tag===19)tl(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`backwards`:n=nl(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null,il(t)),rl(t,!0,i,null,a,r);break;case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Ro(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}rl(t,!0,n,null,a,r);break;case`together`:rl(t,!1,null,null,void 0,r);break;case`independent`:t.memoizedState=null;break;default:n=nl(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),rl(t,!1,i,n,a,r)}return t.child}function ol(e,t,n){var r=t.pendingProps;return ha(t,t.type,r.value),Mc(e,t,r.children,n),t.child}function sl(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),od|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(ya(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=ji(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ji(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function cl(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&ba(e)))}function ll(e,t,n){switch(t.tag){case 3:Me(t,t.stateNode.containerInfo),ha(t,Oa,e.memoizedState.cache),la();break;case 27:case 5:Pe(t);break;case 4:Me(t,t.stateNode.containerInfo);break;case 10:ha(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,jo(t),null;break;case 13:var r=t.memoizedState;if(r!==null){if(r.dehydrated!==null)return Ao(t),t.flags|=128,null;r=ya(e,t,n,!1);var i=t.child.childLanes;return r||(n&i)!==0?Xc(e,t,n):(Ao(t),e=sl(e,t,n),e===null?null:e.sibling)}Ao(t);break;case 19:if(t.flags&128)return al(e,t,n);if(i=!!(e.flags&128),r=(n&t.childLanes)!==0,r||=(ya(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return al(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Io(t,Fo.current),r)break;return null;case 22:return t.lanes=0,Ic(e,t,n,t.pendingProps);case 24:ha(t,Oa,e.memoizedState.cache)}return sl(e,t,n)}function ul(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)jc=!0;else{if(!cl(e,n)&&!(t.flags&128))return jc=!1,ll(e,t,n);jc=!!(e.flags&131072)}}else jc=!1,U&&t.flags&1048576&&Xi(t,Ui,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Qa(t.elementType),t.type=e,typeof e==`function`)Ai(e)?(r=bc(e,r),t.tag=1,t=Gc(null,t,e,r,n)):(t.tag=0,t=Uc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===pe){t.tag=11,t=Nc(null,t,e,r,n);break a}if(a===he){t.tag=14,t=Pc(null,t,e,r,n);break a}if(a===fe){t.tag=10,t.type=e,t=ol(null,t,n);break a}}throw t=T(e)||e,Error(i(306,t,``))}}return t;case 0:return Uc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=bc(r,t.pendingProps),Gc(e,t,r,a,n);case 3:a:{if(Me(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,po(e,t),bo(t,r,null,n);var s=t.memoizedState;if(r=s.cache,ha(t,Oa,r),r!==o.cache&&va(t,[Oa],n,!0),yo(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Kc(e,t,r,n);break a}if(r!==a){a=zi(Error(i(424)),t),da(a),t=Kc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(ta=lm(e.firstChild),ea=t,U=!0,na=null,ra=!0,n=lo(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|134221824,n=n.sibling}else{if(la(),r===a){t=sl(e,t,n);break a}Mc(e,t,r,n)}t=t.child}return t;case 26:return Hc(e,t),e===null?(n=Nm(t.type,null,t.pendingProps,null))?t.memoizedState=n:U||(t.stateNode=fp(t.type,t.pendingProps,Ae.current,t)):t.memoizedState=Nm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Pe(t),e===null&&U&&(r=t.stateNode=hm(t.type,t.pendingProps,Ae.current),ea=t,ra=!0,a=ta,Sp(t.type)?(um=a,ta=lm(r.firstChild)):ta=a),Mc(e,t,t.pendingProps.children,n),Hc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&U&&((a=r=ta)&&(r=rm(r,t.type,t.pendingProps,ra),r===null?a=!1:(t.stateNode=r,ea=t,ta=lm(r.firstChild),ra=!1,a=!0)),a||aa(t)),Pe(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,pp(a,o)?r=null:s!==null&&pp(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=Xo(e,t,$o,null,null,n),sh._currentValue=a),Hc(e,t),Mc(e,t,r,n),t.child;case 6:return e===null&&U&&((e=n=ta)&&(n=im(n,t.pendingProps,ra),n===null?e=!1:(t.stateNode=n,ea=t,ta=null,e=!0)),e||aa(t)),null;case 13:return Xc(e,t,n);case 4:return Me(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=co(t,null,r,n):Mc(e,t,r,n),t.child;case 11:return Nc(e,t,t.type,t.pendingProps,n);case 7:return r=t.pendingProps,Hc(e,t),Mc(e,t,r,n),t.child;case 8:return Mc(e,t,t.pendingProps.children,n),t.child;case 12:return Mc(e,t,t.pendingProps.children,n),t.child;case 10:return ol(e,t,n);case 9:return a=t.type._context,r=t.pendingProps.children,xa(t),a=Sa(a),r=r(a),t.flags|=1,Mc(e,t,r,n),t.child;case 14:return Pc(e,t,t.type,t.pendingProps,n);case 15:return Fc(e,t,t.type,t.pendingProps,n);case 19:return al(e,t,n);case 31:return Vc(e,t,n);case 22:return Ic(e,t,n,t.pendingProps);case 24:return xa(t),r=Sa(Oa),e===null?(a=Ua(),a===null&&(a=$u,o=ka(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},fo(t),ha(t,Oa,a)):((e.lanes&n)!==0&&(po(e,t),bo(t,null,null,n),yo()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,ha(t,Oa,r),r!==a.cache&&va(t,[Oa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),ha(t,Oa,r))),Mc(e,t,t.pendingProps.children,n),t.child;case 30:return t.stateNode===null&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),r=t.pendingProps,r.name!=null&&r.name!==`auto`?t.flags|=e===null?18882560:18874368:U&&Zi(t),e!==null&&e.memoizedProps.name!==r.name?t.flags|=4194816:Hc(e,t),Mc(e,t,r.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function dl(e){e.flags|=4}function fl(e,t,n,r,i){var a;if((a=!!(e.mode&32))&&(a=n===null?Jm(t,r):Jm(t,r)&&(r.src!==n.src||r.srcSet!==n.srcSet)),a){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Ud())e.flags|=8192;else throw $a=Ya,qa}}else e.flags&=-16777217}function pl(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Ym(t)){if(Ud())e.flags|=8192;else throw $a=Ya,qa}}function ml(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:ht(),e.lanes|=t,ud|=t)}function hl(e,t){if(!U)switch(e.tailMode){case`visible`:break;case`collapsed`:for(var n=e.tail,r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(t=e.tail,n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null}}function gl(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&1206910976,r|=i.flags&1206910976,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function _l(e,t,n){var r=t.pendingProps;switch(Qi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return gl(t),null;case 1:return gl(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),ga(Oa),Ne(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ca(t)?dl(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,ua())),gl(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(dl(t),o===null?(gl(t),fl(t,a,null,r,n)):(gl(t),pl(t,o))):o?o===e.memoizedState?(gl(t),t.flags&=-16777217):(dl(t),gl(t),pl(t,o)):(e=e.memoizedProps,e!==r&&dl(t),gl(t),fl(t,a,e,r,n)),null;case 27:if(Fe(t),n=Ae.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&dl(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return gl(t),t.subtreeFlags&=-33554433,null}e=Oe.current,ca(t)?oa(t,e):(e=hm(a,r,n),t.stateNode=e,dl(t))}return gl(t),t.subtreeFlags&=-33554433,null;case 5:if(Fe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&dl(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return gl(t),t.subtreeFlags&=-33554433,null}if(o=Oe.current,ca(t))oa(t,o);else{var s=lp(Ae.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[Et]=t,o[Dt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&dl(t)}}return gl(t),t.subtreeFlags&=-33554433,fl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&dl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=Ae.current,ca(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ea,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Et]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||aa(t,!0)}else e=lp(e).createTextNode(r),e[Et]=t,t.stateNode=e}return gl(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ca(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[Et]=t}else la(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;gl(t),e=!1}else n=ua(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Po(t),t):(Po(t),null);if(t.flags&128)throw Error(i(558))}return gl(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=ca(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[Et]=t}else la(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;gl(t),a=!1}else a=ua(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Po(t),t):(Po(t),null)}return Po(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ml(t,t.updateQueue),gl(t),null);case 4:return Ne(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,gl(t),null;case 10:return ga(t.type),gl(t),null;case 19:if(Lo(t),r=t.memoizedState,r===null)return gl(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)hl(r,!1);else{if(ad!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Ro(e),o!==null){for(t.flags|=128,hl(r,!1),e=o.updateQueue,t.updateQueue=e,ml(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Mi(n,e),n=n.sibling;return Io(t,Fo.current&1|2),U&&Yi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&qe()>gd&&(t.flags|=128,a=!0,hl(r,!1),t.lanes=4194304)}}else{if(!a){if(e=Ro(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,ml(t,e),hl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!U)return gl(t),null}else 2*qe()-r.renderingStartTime>gd&&n!==536870912&&(t.flags|=128,a=!0,hl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=qe(),e.sibling=null,o=Fo.current,o=a?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||U?Io(t,o):(n=o,A(Oo,t),A(Fo,n),ko===null&&(ko=t)),U&&Yi(t,r.treeForkCount),e}return gl(t),null;case 22:case 23:return Po(t),Do(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(gl(t),t.subtreeFlags&6&&(t.flags|=8192)):gl(t),n=t.updateQueue,n!==null&&ml(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&De(Ha),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ga(Oa),gl(t),null;case 25:return null;case 30:return t.flags|=33554432,gl(t),null}throw Error(i(156,t.tag))}function vl(e,t){switch(Qi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ga(Oa),Ne(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Fe(t),null;case 31:if(t.memoizedState!==null){if(Po(t),t.alternate===null)throw Error(i(340));la()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Po(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));la()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Lo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Ne(),null;case 10:return ga(t.type),null;case 22:case 23:return Po(t),Do(),e!==null&&De(Ha),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ga(Oa),null;case 25:return null;default:return null}}function yl(e,t){switch(Qi(t),t.tag){case 3:ga(Oa),Ne();break;case 26:case 27:case 5:Fe(t);break;case 4:Ne();break;case 31:t.memoizedState!==null&&Po(t);break;case 13:Po(t);break;case 19:Lo(t);break;case 10:ga(t.type);break;case 22:case 23:Po(t),Do(),e!==null&&De(Ha);break;case 24:ga(Oa)}}function bl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function xl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Sl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{So(t,n)}catch(t){Z(e,e.return,t)}}}function Cl(e,t,n){n.props=bc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function wl(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=mi(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);h(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Tl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function El(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n<t.length;n++)em(e.stateNode,t[n])}function Dl(e){for(var t=e.return;t!==null&&(Al(t)&&em(e.stateNode,t.stateNode),!kl(t));)t=t.return}function Ol(e){for(var t=e.return;t!==null&&(Al(t)&&tm(e.stateNode,t.stateNode),!kl(t));)t=t.return}function kl(e){return e.tag===5||e.tag===3||e.tag===27}function Al(e){return e&&e.tag===7&&e.stateNode!==null}function jl(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Ml(e,t,n){try{var r=e.stateNode;ip(r,e.type,n,t),r[Dt]=t}catch(t){Z(e,e.return,t)}}function Nl(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Sp(e.type)||e.tag===4}function Pl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Nl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Sp(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Fl(e,t,n,r){var i=e.tag;if(i===5||i===6)i=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(i,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(i),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Sn)),El(e,r),F=!0;else if(i!==4&&(i===27&&(El(e,r),r=null,Sp(e.type)&&(n=e.stateNode,t=null)),e=e.child,e!==null))for(Fl(e,t,n,r),e=e.sibling;e!==null;)Fl(e,t,n,r),e=e.sibling}function Il(e,t,n,r){var i=e.tag;if(i===5||i===6)i=e.stateNode,t?n.insertBefore(i,t):n.appendChild(i),El(e,r),F=!0;else if(i!==4&&(i===27&&(El(e,r),r=null,Sp(e.type)&&(n=e.stateNode)),e=e.child,e!==null))for(Il(e,t,n,r),e=e.sibling;e!==null;)Il(e,t,n,r),e=e.sibling}function Ll(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);np(t,r,n),t[Et]=e,t[Dt]=n}catch(t){Z(e,e.return,t)}}var Rl=!1,zl=null;function Bl(e){(e.tag===30||e.subtreeFlags&33554432)&&(Rl=!0)}var Vl=null;function Hl(){var e=Vl;return Vl=null,e}var Ul=0;function Wl(e,t,n,r,i){return Ul=0,Gl(e.child,t,n,r,i)}function Gl(e,t,n,r,i){for(var a=!1;e!==null;){if(e.tag===5){var o=e.stateNode;if(r!==null){var s=Op(o);r.push(s),s.view&&(a=!0)}else a||Op(o).view&&(a=!0);Rl=!0,Tp(o,Ul===0?t:t+`_`+Ul,n),Ul++}else e.tag===22&&e.memoizedState!==null||e.tag===30&&i||Gl(e.child,t,n,r,i)&&(a=!0);e=e.sibling}return a}function Kl(e,t){for(;e!==null;)e.tag===5?Ep(e.stateNode,e.memoizedProps):e.tag===22&&e.memoizedState!==null||e.tag===30&&t||Kl(e.child,t),e=e.sibling}function ql(e){if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if((e.tag!==22||e.memoizedState===null)&&(ql(e),e.tag===30&&e.flags&18874368&&e.stateNode.paired)){var t=e.memoizedProps;if(t.name==null||t.name===`auto`)throw Error(i(544));var n=t.name;t=gi(t.default,t.share),t!==`none`&&(Wl(e,n,t,null,!1)||Kl(e.child,!1))}e=e.sibling}}function Jl(e,t){if(e.tag===30){var n=e.stateNode,r=e.memoizedProps,i=mi(r,n),a=gi(r.default,n.paired?r.share:r.enter);a===`none`?ql(e):Wl(e,i,a,null,!1)?(ql(e),n.paired||t||Nd(e,r.onEnter)):Kl(e.child,!1)}else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)Jl(e,t),e=e.sibling;else ql(e)}function Yl(e){if(zl!==null&&zl.size!==0){var t=zl;if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if(e.tag!==22||e.memoizedState===null){if(e.tag===30&&e.flags&18874368){var n=e.memoizedProps,r=n.name;if(r!=null&&r!==`auto`){var i=t.get(r);if(i!==void 0){var a=gi(n.default,n.share);if(a!==`none`&&(Wl(e,r,a,null,!1)?(a=e.stateNode,i.paired=a,a.paired=i,Nd(e,n.onShare)):Kl(e.child,!1)),t.delete(r),t.size===0)break}}}Yl(e)}e=e.sibling}}}function Xl(e){if(e.tag===30){var t=e.memoizedProps,n=mi(t,e.stateNode),r=zl===null?void 0:zl.get(n),i=gi(t.default,r===void 0?t.exit:t.share);i!==`none`&&(Wl(e,n,i,null,!1)?r===void 0?Nd(e,t.onExit):(i=e.stateNode,r.paired=i,i.paired=r,zl.delete(n),Nd(e,t.onShare)):Kl(e.child,!1)),zl!==null&&Yl(e)}else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)Xl(e),e=e.sibling;else zl!==null&&Yl(e)}function Zl(e){for(e=e.child;e!==null;){if(e.tag===30){var t=e.memoizedProps,n=mi(t,e.stateNode);t=gi(t.default,t.update),e.flags&=-5,t!==`none`&&Wl(e,n,t,e.memoizedState=[],!1)}else e.subtreeFlags&33554432&&Zl(e);e=e.sibling}}function Ql(e){if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if(e.tag!==22||e.memoizedState===null){if(e.tag===30&&e.flags&18874368){var t=e.stateNode;t.paired!==null&&(t.paired=null,Kl(e.child,!1))}Ql(e)}e=e.sibling}}function $l(e){if(e.tag===30)e.stateNode.paired=null,Kl(e.child,!1),Ql(e);else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)$l(e),e=e.sibling;else Ql(e)}function eu(e){for(e=e.child;e!==null;)e.tag===30?Kl(e.child,!1):e.subtreeFlags&33554432&&eu(e),e=e.sibling}function tu(e,t,n,r,i,a,o){for(var s=!1;t!==null;){if(t.tag===5){var c=t.stateNode;if(a!==null&&Ul<a.length){var l=a[Ul],u=Op(c);(l.view||u.view)&&(s=!0);var d;if(d=!(e.flags&4)){if(u.clip)d=!0;else{d=l.rect;var f=u.rect;d=d.y!==f.y||d.x!==f.x||d.height!==f.height||d.width!==f.width}}d&&(e.flags|=4),u.abs?u=!l.abs:(l=l.rect,u=u.rect,u=l.height!==u.height||l.width!==u.width),u&&(e.flags|=32)}else e.flags|=32;e.flags&4&&Tp(c,Ul===0?n:n+`_`+Ul,i),s&&e.flags&4||(Vl===null&&(Vl=[]),Vl.push(c,Ul===0?r:r+`_`+Ul,t.memoizedProps)),Ul++}else(t.tag!==22||t.memoizedState===null)&&(t.tag===30&&o?e.flags|=t.flags&32:tu(e,t.child,n,r,i,a,o)&&(s=!0));t=t.sibling}return s}function nu(e,t){for(e=e.child;e!==null;){if(e.tag===30){var n=e.memoizedProps,r=e.stateNode,i=mi(n,r),a=gi(n.default,n.update);if(t){r=r.clones;var o=r===null?null:r.map(kp)}else o=e.memoizedState,e.memoizedState=null;r=e;var s=e.child;Ul=0,i=tu(r,s,i,i,a,o,!1),e.flags&4&&i&&(t||Nd(e,n.onUpdate))}else e.subtreeFlags&33554432&&nu(e,t);e=e.sibling}}var ru=!1,K=!1,iu=!1,au=!1,ou=typeof WeakSet==`function`?WeakSet:Set,su=null,cu=!1,lu=!1,uu=!1,du=!1;function fu(e,t,n){if(e=e.containerInfo,sp=gh,e=Wr(e),Gr(e)){if(`selectionStart`in e)var r={start:e.selectionStart,end:e.selectionEnd};else a:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==r||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===r&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}r=c===-1||l===-1?null:{start:c,end:l}}else r=null}r||={start:0,end:0}}else r=null;for(cp={focusedElem:e,selectionRange:r},gh=!1,n=(n&335544064)===n,su=t,t=n?9270:1024;su!==null;){if(e=su,n&&(r=e.deletions,r!==null))for(a=0;a<r.length;a++)n&&Xl(r[a]);if(e.alternate===null&&e.flags&2)n&&Bl(e),pu(n);else{if(e.tag===22){if(r=e.alternate,e.memoizedState!==null){r!==null&&r.memoizedState===null&&n&&Xl(r),pu(n);continue}if(r!==null&&r.memoizedState!==null){n&&Bl(e),pu(n);continue}}r=e.child,(e.subtreeFlags&t)!==0&&r!==null?(r.return=e,su=r):(n&&Zl(e),pu(n))}}zl=null}function pu(e){for(;su!==null;){var t=su,n=e,r=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 15:break;case 1:if(a&1024&&r!==null){n=void 0,a=r.memoizedProps,r=r.memoizedState;var o=t.stateNode;try{var s=bc(t.type,a);n=o.getSnapshotBeforeUpdate(s,r),o.__reactInternalSnapshotBeforeUpdate=n}catch(e){Z(t,t.return,e)}}break;case 3:if(a&1024){if(r=t.stateNode.containerInfo,n=r.nodeType,n===9)nm(r);else if(n===1)switch(r.nodeName){case`HEAD`:case`HTML`:case`BODY`:nm(r);break;default:r.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:n&&r!==null&&(n=mi(r.memoizedProps,r.stateNode),a=t.memoizedProps,a=gi(a.default,a.update),a!==`none`&&Wl(r,n,a,r.memoizedState=[],!0));break;default:if(a&1024)throw Error(i(163))}if(r=t.sibling,r!==null){r.return=t.return,su=r;break}su=t.return}}function mu(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Pu(e,n),r&4&&bl(5,n);break;case 1:if(Pu(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Z(n,n.return,e)}else{var i=bc(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Z(n,n.return,e)}}}r&64&&Sl(n),r&512&&wl(n,n.return);break;case 3:if(Pu(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{So(e,t)}catch(e){Z(n,n.return,e)}}break;case 27:t===null&&r&4&&Ll(n);case 26:case 5:Pu(e,n),t===null&&r&4&&jl(n),r&512&&wl(n,n.return);break;case 12:Pu(e,n);break;case 31:Pu(e,n),r&4&&Cu(e,n);break;case 13:Pu(e,n),r&4&&wu(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=_f.bind(null,n),cm(e,n))));break;case 22:if(r=n.memoizedState!==null||ru,!r){var a=t!==null&&t.memoizedState!==null||K;t=ru,i=K,ru=r,(K=a)&&!i?(r=2,n.subtreeFlags&8772&&(r|=1),Iu(e,n,r)):Pu(e,n),ru=t,K=i}break;case 30:Pu(e,n),r&512&&wl(n,n.return);break;case 7:r&512&&wl(n,n.return);default:Pu(e,n)}}function hu(e,t){for(e=e.child;e!==null;)gu(e,t),e=e.sibling}function gu(e,t){switch(e.tag){case 5:case 26:try{var n=e.stateNode;if(t){var r=n.style;typeof r.setProperty==`function`?r.setProperty(`display`,`none`,`important`):r.display=`none`}else{var i=e.stateNode,a=e.memoizedProps.style,o=a!=null&&a.hasOwnProperty(`display`)?a.display:null;i.style.display=o==null||typeof o==`boolean`?``:(``+o).trim()}}catch(t){Z(e,e.return,t)}_u(e,t);break;case 6:try{e.stateNode.nodeValue=t?``:e.memoizedProps,F=!0}catch(t){Z(e,e.return,t)}break;case 18:try{var s=e.stateNode;t?wp(s,!0):wp(e.stateNode,!1)}catch(t){Z(e,e.return,t)}break;case 22:case 23:e.memoizedState===null&&hu(e,t);break;default:hu(e,t)}}function _u(e,t){if(e.subtreeFlags&67108864)for(e=e.child;e!==null;){a:{var n=e,r=t;switch(n.tag){case 4:gu(n,r);break a;case 22:n.memoizedState===null&&_u(n,r);break a;default:_u(n,r)}}e=e.sibling}}function vu(e){var t=e.alternate;t!==null&&(e.alternate=null,vu(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ft(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var yu=null,bu=!1;function xu(e,t,n){for(n=n.child;n!==null;)Su(e,t,n),n=n.sibling}function Su(e,t,n){if(N&&typeof N.onCommitFiberUnmount==`function`)try{N.onCommitFiberUnmount(tt,n)}catch{}switch(n.tag){case 26:K||Tl(n,t),xu(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&!K&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:K||Tl(n,t),Ol(n);var r=yu,i=bu;Sp(n.type)&&(yu=n.stateNode,bu=!1),xu(e,t,n),gm(n.stateNode,n.type,n.memoizedProps),yu=r,bu=i;break;case 5:K||Tl(n,t),Ol(n);case 6:if(n.tag===6&&Ol(n),r=yu,i=bu,yu=null,xu(e,t,n),yu=r,bu=i,yu!==null){if(bu)try{(yu.nodeType===9?yu.body:yu.nodeName===`HTML`?yu.ownerDocument.body:yu).removeChild(n.stateNode),F=!0}catch(e){Z(n,t,e)}else try{yu.removeChild(n.stateNode),F=!0}catch(e){Z(n,t,e)}}break;case 18:yu!==null&&(bu?(e=yu,Cp(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Hh(e)):Cp(yu,n.stateNode));break;case 4:r=yu,i=bu,yu=n.stateNode.containerInfo,bu=!0,xu(e,t,n),yu=r,bu=i;break;case 0:case 11:case 14:case 15:xl(2,n,t),K||xl(4,n,t),xu(e,t,n);break;case 1:K||(Tl(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Cl(n,t,r)),xu(e,t,n);break;case 21:xu(e,t,n);break;case 22:K=(r=K)||n.memoizedState!==null,xu(e,t,n),K=r;break;case 30:Tl(n,t),xu(e,t,n);break;case 7:K||Tl(n,t),xu(e,t,n);break;default:xu(e,t,n)}}function Cu(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Hh(e)}catch(e){Z(t,t.return,e)}}}function wu(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Hh(e)}catch(e){Z(t,t.return,e)}}function Tu(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new ou),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new ou),t;default:throw Error(i(435,e.tag))}}function Eu(e,t){var n=Tu(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=vf.bind(null,e,t);t.then(r,r)}})}function Du(e,t,n){var r=t.deletions;if(r!==null)for(var a=0;a<r.length;a++){var o=r[a],s=e,c=t,l=c;a:for(;l!==null;){switch(l.tag){case 27:if(Sp(l.type)){yu=l.stateNode,bu=!1;break a}break;case 5:yu=l.stateNode,bu=!1;break a;case 3:case 4:yu=l.stateNode.containerInfo,bu=!0;break a}l=l.return}if(yu===null)throw Error(i(160));Su(s,c,o),yu=null,bu=!1,s=o.alternate,s!==null&&(s.return=null),o.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)ku(t,e,n),t=t.sibling}var Ou=null;function ku(e,t,n){var r=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(a&4&&(r=e.updateQueue,r=r===null?null:r.events,r!==null))for(var o=0;o<r.length;o++){var s=r[o];s.ref.impl=s.nextImpl}Du(t,e,n),Au(e),a&4&&(xl(3,e,e.return),bl(3,e),xl(5,e,e.return));break;case 1:Du(t,e,n),Au(e),a&512&&(K||r===null||Tl(r,r.return)),a&64&&ru&&(e=e.updateQueue,e!==null&&(t=e.callbacks,t!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?t:n.concat(t))));break;case 26:if(o=Ou,Du(t,e,n),Au(e),a&512&&(K||r===null||Tl(r,r.return)),a&4){if(a=r===null?null:r.memoizedState,n=e.memoizedState,r===null){if(n===null){if(e.stateNode===null){if(ru)e.stateNode=fp(e.type,e.memoizedProps,t.containerInfo,e);else{a:{t=e.type,n=e.memoizedProps,a=o.ownerDocument||o;b:switch(t){case`title`:r=a.getElementsByTagName(`title`)[0],(!r||r[Nt]||r[Et]||r.namespaceURI===`http://www.w3.org/2000/svg`||r.hasAttribute(`itemprop`))&&(r=a.createElement(t),a.head.insertBefore(r,a.querySelector(`head > title`))),np(r,t,n),r[Et]=e,Bt(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,a).get(t+(n.href||``))){for(s=0;s<o.length;s++)if(r=o[s],r.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&r.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&r.getAttribute(`title`)===(n.title==null?null:n.title)&&r.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){o.splice(s,1);break b}}r=a.createElement(t),np(r,t,n),a.head.appendChild(r);break;case`meta`:if(o=Gm(`meta`,`content`,a).get(t+(n.content||``))){for(s=0;s<o.length;s++)if(r=o[s],r.getAttribute(`content`)===(n.content==null?null:``+n.content)&&r.getAttribute(`name`)===(n.name==null?null:n.name)&&r.getAttribute(`property`)===(n.property==null?null:n.property)&&r.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&r.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){o.splice(s,1);break b}}r=a.createElement(t),np(r,t,n),a.head.appendChild(r);break;default:throw Error(i(468,t))}r[Et]=e,Bt(r),t=r}e.stateNode=t}}else ru||Km(o,e.type,e.stateNode)}else e.stateNode=Bm(o,n,e.memoizedProps)}else a===n?n===null&&e.stateNode!==null&&Ml(e,e.memoizedProps,r.memoizedProps):(a===null?(t=r.stateNode,t===null||K||t.parentNode.removeChild(t)):a.count--,n===null?ru||Km(o,e.type,e.stateNode):Bm(o,n,e.memoizedProps))}break;case 27:Du(t,e,n),Au(e),a&512&&(K||r===null||Tl(r,r.return)),r!==null&&a&4&&Ml(e,e.memoizedProps,r.memoizedProps);break;case 5:if(o=iu,iu=!1,Du(t,e,n),iu=o,Au(e),a&512&&(K||r===null||Tl(r,r.return)),e.flags&32){t=e.stateNode;try{mn(t,``),F=!0}catch(t){Z(e,e.return,t)}}a&4&&e.stateNode!=null&&(t=e.memoizedProps,Ml(e,t,r===null?t:r.memoizedProps)),a&1024&&(au=!0);break;case 6:if(Du(t,e,n),Au(e),a&4){if(e.stateNode===null)throw Error(i(162));t=e.memoizedProps,n=e.stateNode;try{n.nodeValue=t,F=!0}catch(t){Z(e,e.return,t)}}break;case 3:if(F=!1,Wm=null,o=Ou,Ou=bm(t.containerInfo),Du(t,e,n),Ou=o,Au(e),a&4&&r!==null&&r.memoizedState.isDehydrated)try{Hh(t.containerInfo)}catch(t){Z(e,e.return,t)}au&&(au=!1,ju(e)),F=!1;break;case 4:a=iu,iu=ru,r=Xt(),o=Ou,Ou=bm(e.stateNode.containerInfo),Du(t,e,n),Au(e),Ou=o,F&&lu&&(uu=!0),F=r,iu=a;break;case 12:Du(t,e,n),Au(e);break;case 31:Du(t,e,n),Au(e),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Eu(e,t)));break;case 13:Du(t,e,n),Au(e),e.child.flags&8192&&e.memoizedState!==null!=(r!==null&&r.memoizedState!==null)&&(md=qe()),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Eu(e,t)));break;case 22:o=e.memoizedState!==null,s=r!==null&&r.memoizedState!==null;var c=ru,l=K,u=iu;ru=c||o,iu=u||o,K=l||s,Du(t,e,n),K=l,iu=u,ru=c,Au(e),a&8192&&(t=e.stateNode,t._visibility=o?t._visibility&-2:t._visibility|1,!o||r===null||s||ru||K||(t=s||K,n=ru,r=K,ru=o||ru,K=t,Fu(e,2),ru=n,K=r),!o&&iu||hu(e,o)),a&4&&(t=e.updateQueue,t!==null&&(n=t.retryQueue,n!==null&&(t.retryQueue=null,Eu(e,n))));break;case 19:Du(t,e,n),Au(e),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Eu(e,t)));break;case 30:a&512&&(K||r===null||Tl(r,r.return)),a=Xt(),o=lu,s=(n&335544064)===n,c=e.memoizedProps,lu=s&&gi(c.default,c.update)!==`none`,Du(t,e,n),Au(e),s&&r!==null&&F&&(e.flags|=4),lu=o,F=a;break;case 21:break;case 7:a&512&&(K||r===null||Tl(r,r.return)),r&&r.stateNode!==null&&(r.stateNode._fragmentFiber=e);default:Du(t,e,n),Au(e)}}function Au(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Nl(r)){n=r;break}r=r.return}r=null;for(var a=e.return;a!==null;){if(Al(a)){var o=a.stateNode;r===null?r=[o]:r.push(o)}if(kl(a))break;a=a.return}var s=r;if(n==null)throw Error(i(160));switch(n.tag){case 27:var c=n.stateNode;Il(e,Pl(e),c,s);break;case 5:var l=n.stateNode;n.flags&32&&(mn(l,``),n.flags&=-33),Il(e,Pl(e),l,s);break;case 3:case 4:var u=n.stateNode.containerInfo;Fl(e,Pl(e),u,s);break;default:throw Error(i(161))}}catch(t){Z(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function ju(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;ju(t),t.tag===5&&t.flags&1024&&(t=t.stateNode,gh=!0,t.reset(),gh=!1),e=e.sibling}}function Mu(e,t){if(t.subtreeFlags&9270)for(t=t.child;t!==null;)Nu(t,e),t=t.sibling;else nu(t,!1)}function Nu(e,t){var n=e.alternate;if(n===null)Jl(e,!1);else switch(e.tag){case 3:if(du=cu=!1,Hl(),Mu(t,e),!cu&&!uu){if(e=Vl,e!==null)for(var r=0;r<e.length;r+=3){n=e[r];var i=e[r+1];Ep(n,e[r+2]),n=n.ownerDocument.documentElement,n!==null&&n.animate({opacity:[0,0],pointerEvents:[`none`,`none`]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition-group(`+i+`)`})}e=t.containerInfo,e=e.nodeType===9?e.documentElement:e.ownerDocument.documentElement,e!==null&&e.style.viewTransitionName===``&&(e.style.viewTransitionName=`none`,e.animate({opacity:[0,0],pointerEvents:[`none`,`none`]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition-group(root)`}),e.animate({width:[0,0],height:[0,0]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition`})),du=!0}Vl=null;break;case 5:Mu(t,e);break;case 4:r=cu,cu=!1,Mu(t,e),cu&&(uu=!0),cu=r;break;case 22:e.memoizedState===null&&(n.memoizedState===null?Mu(t,e):Jl(e,!1));break;case 30:r=cu,i=Hl(),cu=!1,Mu(t,e),cu&&(e.flags|=4);var a=e.memoizedProps,o=e.stateNode;t=mi(a,o),o=mi(n.memoizedProps,o);var s=gi(a.default,a.update);s===`none`?t=!1:(a=n.memoizedState,n.memoizedState=null,n=e.child,Ul=0,t=tu(e,n,t,o,s,a,!0),Ul!==(a===null?0:a.length)&&(e.flags|=32)),e.flags&4&&t?(Nd(e,e.memoizedProps.onUpdate),Vl=i):i!==null&&(i.push.apply(i,Vl),Vl=i),cu=e.flags&32?!0:r;break;default:Mu(t,e)}}function Pu(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)mu(e,t.alternate,t),t=t.sibling}function Fu(e,t){for(e=e.child;e!==null;){var n=e,r=t;switch(n.tag){case 0:case 11:case 14:case 15:xl(4,n,n.return),Fu(n,r);break;case 1:Tl(n,n.return);var i=n.stateNode;typeof i.componentWillUnmount==`function`&&Cl(n,n.return,i),Fu(n,r);break;case 27:r&2&&gm(n.stateNode,n.type,n.memoizedProps);case 5:Tl(n,n.return),n.tag!==5&&n.tag!==27||Ol(n),Fu(n,r);break;case 6:Ol(n);break;case 26:Tl(n,n.return),i=n.stateNode,n.memoizedState!==null||i===null||K||i.parentNode.removeChild(i),Fu(n,r);break;case 22:n.memoizedState===null&&Fu(n,r);break;case 30:Tl(n,n.return),Fu(n,r);break;case 7:Tl(n,n.return);default:Fu(n,r)}e=e.sibling}}function Iu(e,t,n){for(n=t.subtreeFlags&8772?n:n&-2,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags,s=!!(n&1);switch(a.tag){case 0:case 11:case 15:Iu(i,a,n),bl(4,a);break;case 1:if(Iu(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Z(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var c=r.stateNode;try{var l=i.shared.hiddenCallbacks;if(l!==null)for(i.shared.hiddenCallbacks=null,i=0;i<l.length;i++)xo(l[i],c)}catch(e){Z(r,r.return,e)}}s&&o&64&&Sl(a),wl(a,a.return);break;case 27:n&2&&Ll(a);case 5:a.tag!==5&&a.tag!==27||Dl(a),Iu(i,a,n),s&&r===null&&o&4&&jl(a),wl(a,a.return);break;case 6:Dl(a);break;case 26:c=a.stateNode,a.memoizedState!==null||c===null||ru||Km(bm(c.ownerDocument),a.type,c),Iu(i,a,n),s&&r===null&&o&4&&jl(a),wl(a,a.return);break;case 12:Iu(i,a,n);break;case 31:Iu(i,a,n),s&&o&4&&Cu(i,a);break;case 13:Iu(i,a,n),s&&o&4&&wu(i,a);break;case 22:a.memoizedState===null&&Iu(i,a,n),wl(a,a.return);break;case 30:Iu(i,a,n),wl(a,a.return);break;case 7:wl(a,a.return);default:Iu(i,a,n)}t=t.sibling}}function Lu(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Aa(n))}function Ru(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Aa(e))}function zu(e,t,n,r){var i=(n&335544064)===n;if(t.subtreeFlags&(i?10262:10256))for(t=t.child;t!==null;)Bu(e,t,n,r),t=t.sibling;else i&&eu(t)}function Bu(e,t,n,r){var i=(n&335544064)===n;i&&t.alternate===null&&t.return!==null&&t.return.alternate!==null&&$l(t);var a=t.flags;switch(t.tag){case 0:case 11:case 15:zu(e,t,n,r),a&2048&&bl(9,t);break;case 1:zu(e,t,n,r);break;case 3:zu(e,t,n,r),i&&du&&(e=e.containerInfo,e=e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,e.style.viewTransitionName===`root`&&(e.style.viewTransitionName=``),e=e.ownerDocument.documentElement,e!==null&&e.style.viewTransitionName===`none`&&(e.style.viewTransitionName=``)),a&2048&&(a=null,t.alternate!==null&&(a=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==a&&(t.refCount++,a!=null&&Aa(a)));break;case 12:if(a&2048){zu(e,t,n,r),a=t.stateNode;try{var o=t.memoizedProps,s=o.id,c=o.onPostCommit;typeof c==`function`&&c(s,t.alternate===null?`mount`:`update`,a.passiveEffectDuration,-0)}catch(e){Z(t,t.return,e)}}else zu(e,t,n,r);break;case 31:zu(e,t,n,r);break;case 13:zu(e,t,n,r);break;case 23:break;case 22:o=t.stateNode,s=t.alternate,t.memoizedState===null?(i&&s!==null&&s.memoizedState!==null&&$l(t),o._visibility&2?zu(e,t,n,r):(o._visibility|=2,Vu(e,t,n,r,!!(t.subtreeFlags&10256)||!1))):(i&&s!==null&&s.memoizedState===null&&$l(s),o._visibility&2?zu(e,t,n,r):Hu(e,t)),a&2048&&Lu(s,t);break;case 24:zu(e,t,n,r),a&2048&&Ru(t.alternate,t);break;case 30:i&&(a=t.alternate,a!==null&&(Kl(a.child,!0),Kl(t.child,!0))),zu(e,t,n,r);break;default:zu(e,t,n,r)}}function Vu(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Vu(a,o,s,c,i),bl(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Vu(a,o,s,c,i)):u._visibility&2?Vu(a,o,s,c,i):Hu(a,o),i&&l&2048&&Lu(o.alternate,o);break;case 24:Vu(a,o,s,c,i),i&&l&2048&&Ru(o.alternate,o);break;default:Vu(a,o,s,c,i)}t=t.sibling}}function Hu(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Hu(n,r),i&2048&&Lu(r.alternate,r);break;case 24:Hu(n,r),i&2048&&Ru(r.alternate,r);break;default:Hu(n,r)}t=t.sibling}}var Uu=8192;function Wu(e,t,n){if(e.subtreeFlags&Uu)for(e=e.child;e!==null;)Gu(e,t,n),e=e.sibling}function Gu(e,t,n){switch(e.tag){case 26:Wu(e,t,n),e.flags&Uu&&(e.memoizedState===null?(e=e.stateNode,(t&335544128)===t&&Zm(n,e)):Qm(n,Ou,e.memoizedState,e.memoizedProps));break;case 5:Wu(e,t,n),e.flags&Uu&&(e=e.stateNode,(t&335544128)===t&&Zm(n,e));break;case 3:case 4:var r=Ou;Ou=bm(e.stateNode.containerInfo),Wu(e,t,n),Ou=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Uu,Uu=16777216,Wu(e,t,n),Uu=r):Wu(e,t,n));break;case 30:if((e.flags&Uu)!==0&&(r=e.memoizedProps.name,r!=null&&r!==`auto`)){var i=e.stateNode;i.paired=null,zl===null&&(zl=new Map),zl.set(r,i)}Wu(e,t,n);break;default:Wu(e,t,n)}}function Ku(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function qu(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];su=r,Xu(r,e)}Ku(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Ju(e),e=e.sibling}function Ju(e){switch(e.tag){case 0:case 11:case 15:qu(e),e.flags&2048&&xl(9,e,e.return);break;case 3:qu(e);break;case 12:qu(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Yu(e)):qu(e);break;default:qu(e)}}function Yu(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];su=r,Xu(r,e)}Ku(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:xl(8,t,t.return),Yu(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Yu(t));break;default:Yu(t)}e=e.sibling}}function Xu(e,t){for(;su!==null;){var n=su;switch(n.tag){case 0:case 11:case 15:xl(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:Aa(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,su=r;else a:for(n=e;su!==null;){r=su;var i=r.sibling,a=r.return;if(vu(r),r===n){su=null;break a}if(i!==null){i.return=a,su=i;break a}su=a}}}var Zu={getCacheForType:function(e){var t=Sa(Oa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Sa(Oa).controller.signal}},Qu=typeof WeakMap==`function`?WeakMap:Map,q=0,$u=null,J=null,Y=0,X=0,ed=null,td=!1,nd=!1,rd=!1,id=0,ad=0,od=0,sd=0,cd=0,ld=0,ud=0,dd=null,fd=null,pd=!1,md=0,hd=0,gd=1/0,_d=null,vd=null,yd=0,bd=null,xd=null,Sd=0,Cd=0,wd=null,Td=null,Ed=null,Dd=null,Od=null,kd=0,Ad=null;function jd(){return q&2&&Y!==0?Y&-Y:E.T===null?Ct():Pf()}function Md(){if(ld===0){if(!(Y&536870912)||U){var e=ct;ct<<=1,!(ct&3932160)&&(ct=262144),ld=e}else ld=536870912}return e=Oo.current,e!==null&&(e.flags|=32),ld}function Nd(e,t){if(t!=null){var n=e.stateNode,r=n.ref;r===null&&(r=n.ref=Pp(mi(e.memoizedProps,n))),Dd===null&&(Dd=[]),Dd.push(t.bind(null,r))}}function Pd(e,t,n){(e===$u&&(X===2||X===9)||e.cancelPendingCommit!==null)&&(Vd(e,0),Rd(e,Y,ld,!1)),P(e,n),q&2&&e===$u||(e===$u&&(!(q&2)&&(sd|=n),ad===4&&Rd(e,Y,ld,!1)),Ef(e))}function Fd(e,t,n){if(q&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||ft(e,t),a=r?Yd(e,t):qd(e,t,!0),o=r;do{if(a===0){nd&&!r&&Rd(e,t,0,!1);break}if(n=e.current.alternate,o&&!Ld(n))a=qd(e,t,!1),o=!1;else{if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=dd;var l=c.current.memoizedState.isDehydrated;if(l&&(Vd(c,s).flags|=256),s=qd(c,s,!1),s!==2&&s!==6){if(rd&&!l){c.errorRecoveryDisabledLanes|=o,sd|=o,a=4;break a}o=fd,fd=a,o!==null&&(fd===null?fd=o:fd.push.apply(fd,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Vd(e,0),Rd(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t&&(t&62914560)!==t)break;case 6:Rd(r,t,ld,!td);break a;case 2:fd=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=md+300-qe(),10<a)){if(Rd(r,t,ld,!td),dt(r,0,!0)!==0)break a;Sd=t,r.timeoutHandle=gp(Id.bind(null,r,n,fd,_d,pd,t,ld,sd,ud,td,o,`Throttled`,-0,0),a);break a}Id(r,n,fd,_d,pd,t,ld,sd,ud,td,o,null,-0,0)}break}}while(1);Ef(e)}function Id(e,t,n,r,i,a,o,s,c,l,u,d,f,p){e.timeoutHandle=-1;var m=t.subtreeFlags,h=(a&335544064)===a;d=null,(h||m&8192||(m&16785408)==16785408)&&(d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Sn},zl=null,Gu(t,a,d),h&&(m=d,h=e.containerInfo,h=(h.nodeType===9?h:h.ownerDocument).__reactViewTransition,h!=null&&(m.count++,m.waitingForViewTransition=!0,m=nh.bind(m),h.finished.then(m,m))),m=(a&62914560)===a?md-qe():(a&4194048)===a?hd-qe():0,m=eh(d,m),m!==null)?(Sd=a,e.cancelPendingCommit=m(nf.bind(null,e,t,a,n,r,i,o,s,c,l,u,d,null,f,p)),Rd(e,a,o,!l)):nf(e,t,a,n,r,i,o,s,c,l,u,d)}function Ld(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Rr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Rd(e,t,n,r){t=pt(e,t),t&=~cd,t&=~sd,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-rt(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&vt(e,n,t)}function zd(){return q&6?!0:(Df(0,!1),!1)}function Bd(){if(J!==null){if(X===0)var e=J.return;else e=J,ma=pa=null,ns(e),no=null,ro=0,e=J;for(;e!==null;)yl(e.alternate,e),e=e.return;J=null}}function Vd(e,t){var n=e.timeoutHandle;return n!==-1&&(e.timeoutHandle=-1,_p(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),Sd=0,Bd(),$u=e,J=n=ji(e.current,null),Y=t,X=0,ed=null,td=!1,nd=ft(e,t),rd=!1,ud=ld=cd=sd=od=ad=0,fd=dd=null,pd=!1,id=pt(e,t),xi(),n}function Hd(e,t){W=null,E.H=fc,t===Ka||t===Ja?(t=eo(),X=3):t===qa?(t=eo(),X=4):X=t===Ac?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,ed=t,J===null&&(ad=1,wc(e,zi(t,e.current)))}function Ud(){var e=Oo.current;return e===null?!0:(Y&4194048)===Y?ko===null:(Y&62914560)===Y||Y&536870912?e===ko:!1}function Wd(){var e=E.H;return E.H=fc,e===null?fc:e}function Gd(){var e=E.A;return E.A=Zu,e}function Kd(){ad=4,td||(Y&4194048)!==Y&&Oo.current!==null||(nd=!0),!(od&134217727)&&!(sd&134217727)||$u===null||Rd($u,Y,ld,!1)}function qd(e,t,n){var r=q;q|=2;var i=Wd(),a=Gd();($u!==e||Y!==t)&&(_d=null,Vd(e,t)),t=!1;var o=ad;a:do try{if(X!==0&&J!==null){var s=J,c=ed;switch(X){case 8:Bd(),o=6;break a;case 3:case 2:case 9:case 6:Oo.current===null&&(t=!0);var l=X;if(X=0,ed=null,$d(e,s,c,l),n&&nd){o=0;break a}break;default:l=X,X=0,ed=null,$d(e,s,c,l)}}Jd(),o=ad;break}catch(t){Hd(e,t)}while(1);return t&&e.shellSuspendCounter++,ma=pa=null,q=r,E.H=i,E.A=a,J===null&&($u=null,Y=0,xi()),o}function Jd(){for(;J!==null;)Zd(J)}function Yd(e,t){var n=q;q|=2;var r=Wd(),a=Gd();$u!==e||Y!==t?(_d=null,gd=qe()+500,Vd(e,t)):nd=ft(e,t);a:do try{if(X!==0&&J!==null){t=J;var o=ed;b:switch(X){case 1:X=0,ed=null,$d(e,t,o,1);break;case 2:case 9:if(Xa(o)){X=0,ed=null,Qd(t);break}t=function(){X!==2&&X!==9||$u!==e||(X=7),Ef(e)},o.then(t,t);break a;case 3:X=7;break a;case 4:X=5;break a;case 7:Xa(o)?(X=0,ed=null,Qd(t)):(X=0,ed=null,$d(e,t,o,7));break;case 5:var s=null;switch(J.tag){case 26:s=J.memoizedState;case 5:case 27:var c=J;if(s?Ym(s):c.stateNode.complete){X=0,ed=null;var l=c.sibling;if(l!==null)J=l;else{var u=c.return;u===null?J=null:(J=u,ef(u))}break b}}X=0,ed=null,$d(e,t,o,5);break;case 6:X=0,ed=null,$d(e,t,o,6);break;case 8:Bd(),ad=6;break a;default:throw Error(i(462))}}Xd();break}catch(t){Hd(e,t)}while(1);return ma=pa=null,E.H=r,E.A=a,q=n,J===null?($u=null,Y=0,xi(),ad):0}function Xd(){for(;J!==null&&!Ge();)Zd(J)}function Zd(e){var t=ul(e.alternate,e,id);e.memoizedProps=e.pendingProps,t===null?ef(e):J=t}function Qd(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Wc(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=Wc(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:ns(t);var r=t;r===ea&&(U?(sa(r),r.tag===5&&r.stateNode!=null&&(ta=r.stateNode)):(sa(r),U=!0));default:yl(n,t),t=J=Mi(t,id),t=ul(n,t,id)}e.memoizedProps=e.pendingProps,t===null?ef(e):J=t}function $d(e,t,n,r){ma=pa=null,ns(t),no=null,ro=0;var i=t.return;try{if(kc(e,i,t,n,Y)){ad=1,wc(e,zi(n,e.current)),J=null;return}}catch(t){if(i!==null)throw J=i,t;ad=1,wc(e,zi(n,e.current)),J=null;return}t.flags&32768?(U||r===1?e=!0:nd||Y&536870912?e=!1:(td=e=!0,(r===2||r===9||r===3||r===6)&&(r=Oo.current,r!==null&&r.tag===13&&(r.flags|=16384))),tf(t,e)):ef(t)}function ef(e){var t=e;do{if(t.flags&32768){tf(t,td);return}e=t.return;var n=_l(t.alternate,t,id);if(n!==null){J=n;return}if(t=t.sibling,t!==null){J=t;return}J=t=e}while(t!==null);ad===0&&(ad=5)}function tf(e,t){do{var n=vl(e.alternate,e);if(n!==null){n.flags&=32767,J=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){J=e;return}J=e=n}while(e!==null);ad=6,J=null}function nf(e,t,n,r,a,o,s,c,l,u,d,f){e.cancelPendingCommit=null;do df();while(yd!==0);if(q&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));e===$u&&(J=$u=null,Y=0),xd=t,bd=e,Sd=n,wd=a,Td=r,rf(e,t,n,s,c,l,f)}}function rf(e,t,n,r,i,a,o){var s=t.lanes|t.childLanes;if(Cd=s,s|=bi,_t(e,n,s,r,i,a),Dd=null,(n&335544064)===n?(Od=Na(e),r=10262):(Od=null,r=10256),(t.subtreeFlags&r)!==0||(t.flags&r)!==0?(e.callbackNode=null,e.callbackPriority=0,yf(M,function(){return ff(),null})):(e.callbackNode=null,e.callbackPriority=0),Rl=!1,r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=E.T,E.T=null,i=D.p,D.p=2,a=q,q|=4;try{fu(e,t,n)}finally{q=a,D.p=i,E.T=r}}yd=1,Rl?Ed=Mp(o,e.containerInfo,Od,sf,cf,of,lf,ff,af,null,null):(sf(),cf(),lf())}function af(e){if(yd!==0){var t=bd.onRecoverableError;t(e,{componentStack:null})}}function of(){yd===3&&(yd=0,Nu(xd,bd),yd=4)}function sf(){if(yd===1){yd=0;var e=bd,t=xd,n=Sd,r=!!(t.flags&13878);if(t.subtreeFlags&13878||r){r=E.T,E.T=null;var i=D.p;D.p=2;var a=q;q|=4;try{lu=uu=!1,ku(t,e,n),n=cp;var o=Wr(e.containerInfo),s=n.focusedElem,c=n.selectionRange;if(o!==s&&s&&s.ownerDocument&&Ur(s.ownerDocument.documentElement,s)){if(c!==null&&Gr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Hr(s,h),v=Hr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}gh=!!sp,cp=sp=null}finally{q=a,D.p=i,E.T=r}}e.current=t,yd=2}}function cf(){if(yd===2){yd=0;var e=bd,t=xd,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=E.T,E.T=null;var r=D.p;D.p=2;var i=q;q|=4;try{mu(e,t.alternate,t)}finally{q=i,D.p=r,E.T=n}}yd=3}}function lf(){if(yd===4||yd===3){yd=0;var e=Ed;Ed=null,Ke();var t=bd,n=xd,r=Sd,i=Td,a=(r&335544064)===r?10262:10256;if((n.subtreeFlags&a)!==0||(n.flags&a)!==0?yd=5:(yd=0,xd=bd=null,uf(t,t.pendingLanes)),a=t.pendingLanes,a===0&&(vd=null),St(r),n=n.stateNode,N&&typeof N.onCommitFiberRoot==`function`)try{N.onCommitFiberRoot(tt,n,void 0,(n.current.flags&128)==128)}catch{}if(i!==null){n=E.T,a=D.p,D.p=2,E.T=null;try{for(var o=t.onRecoverableError,s=0;s<i.length;s++){var c=i[s];o(c.value,{componentStack:c.stack})}}finally{E.T=n,D.p=a}}if(i=Dd,o=Od,Od=null,i!==null&&(Dd=null,o===null&&(o=[]),e!==null))for(c=0;c<i.length;c++)n=(0,i[c])(o),n!==void 0&&e.finished.finally(n);Sd&3&&df(),Ef(t),a=t.pendingLanes,r&261930&&a&42?t===Ad?kd++:(kd=0,Ad=t):(kd=0,Ad=null),Df(0,!1)}}function uf(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Aa(t)))}function df(){return Ed!==null&&(Ed.skipTransition(),Ed=null),sf(),cf(),lf(),ff()}function ff(){if(yd!==5)return!1;var e=bd,t=Cd;Cd=0;var n=St(Sd),r=E.T,a=D.p;try{D.p=32>n?32:n,E.T=null,n=wd,wd=null;var o=bd,s=Sd;if(yd=0,xd=bd=null,Sd=0,q&6)throw Error(i(331));var c=q;if(q|=4,Ju(o.current),Bu(o,o.current,s,n),q=c,Df(0,!1),N&&typeof N.onPostCommitFiberRoot==`function`)try{N.onPostCommitFiberRoot(tt,o)}catch{}return!0}finally{D.p=a,E.T=r,uf(e,t)}}function pf(e,t,n){t=zi(n,t),t=Ec(e.stateNode,t,2),e=ho(e,t,2),e!==null&&(P(e,2),Ef(e))}function Z(e,t,n){if(e.tag===3)pf(e,e,n);else for(;t!==null;){if(t.tag===3){pf(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(vd===null||!vd.has(r))){e=zi(n,e),n=Dc(2),r=ho(t,n,2),r!==null&&(Oc(n,r,t,e),P(r,2),Ef(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Qu;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(rd=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,$u===e&&(Y&n)===n&&(ad===4||ad===3&&(Y&62914560)===Y&&300>qe()-md?q&2?cd|=n:Vd(e,0):cd|=n,ud===Y&&(ud=0)),Ef(e)}function gf(e,t){t===0&&(t=ht()),e=wi(e,t),e!==null&&(P(e,t),Ef(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return Ue(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Tf=0;function Ef(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Nf())}function Df(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-rt(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Mf(r,a))}else a=Y,a=dt(r,r===$u?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||ft(r,a)||(n=!0,Mf(r,a))}r=r.next}while(n);wf=!1}}function Of(){kf()}function kf(){Cf=Sf=!1;var e=0;Tf!==0&&hp()&&(e=Tf);for(var t=qe(),n=null,r=bf;r!==null;){var i=r.next,a=Af(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}yd!==0&&yd!==5||Df(e,!1),Tf!==0&&(Tf=0)}function Af(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-rt(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=mt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=$u,n=Y,n=dt(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(X===2||X===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&We(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||ft(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&We(r),St(n)){case 2:case 8:n=Xe;break;case 32:n=M;break;case 268435456:n=Qe;break;default:n=M}return r=jf.bind(null,e),n=Ue(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&We(r),e.callbackPriority=2,e.callbackNode=null,2}function jf(e,t){if(yd!==0&&yd!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(df()&&e.callbackNode!==n)return null;var r=Y;return r=dt(e,e===$u?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Fd(e,r,t),Af(e,qe()),e.callbackNode!=null&&e.callbackNode===n?jf.bind(null,e):null)}function Mf(e,t){if(df())return null;Fd(e,t,!0)}function Nf(){bp(function(){q&6?Ue(Ye,Of):kf()})}function Pf(){if(Tf===0){var e=Ia;e===0&&(e=st,st<<=1,!(st&261888)&&(st=256)),Tf=e}return Tf}function Ff(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:xn(e)}function If(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=Ff((i[Dt]||null).action),o=r.submitter;o&&(t=(t=o[Dt]||null)?Ff(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new Bn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(Tf!==0){var e=new FormData(i,o);Qs(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=new FormData(i,o),Qs(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Lf=0;Lf<di.length;Lf++){var Rf=di[Lf];fi(Rf.toLowerCase(),`on`+(Rf[0].toUpperCase()+Rf.slice(1)))}fi(ri,`onAnimationEnd`),fi(ii,`onAnimationIteration`),fi(ai,`onAnimationStart`),fi(`dblclick`,`onDoubleClick`),fi(`focusin`,`onFocus`),fi(`focusout`,`onBlur`),fi(oi,`onTransitionRun`),fi(si,`onTransitionStart`),fi(ci,`onTransitionCancel`),fi(li,`onTransitionEnd`),Gt(`onMouseEnter`,[`mouseout`,`mouseover`]),Gt(`onMouseLeave`,[`mouseout`,`mouseover`]),Gt(`onPointerEnter`,[`pointerout`,`pointerover`]),Gt(`onPointerLeave`,[`pointerout`,`pointerover`]),Wt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Wt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Wt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Wt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Wt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Wt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var zf=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),Bf=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(zf));function Vf(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){_i(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){_i(e)}i.currentTarget=null,a=c}}}}function Q(e,t){var n=t[kt];n===void 0&&(n=t[kt]=new Set);var r=e+`__bubble`;n.has(r)||(Gf(t,e,2,!1),n.add(r))}function Hf(e,t,n){var r=0;t&&(r|=4),Gf(n,e,r,t)}var Uf=`_reactListening`+Math.random().toString(36).slice(2);function Wf(e){if(!e[Uf]){e[Uf]=!0,Ht.forEach(function(t){t!==`selectionchange`&&(Bf.has(t)||Hf(t,!1,e),Hf(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Uf]||(t[Uf]=!0,Hf(`selectionchange`,!1,t))}}function Gf(e,t,n,r){switch(Ch(t)){case 2:var i=_h;break;case 8:i=vh;break;default:i=yh}n=i.bind(null,t,n,e),i=void 0,!jn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Kf(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=It(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}kn(function(){var r=a,i=wn(n),s=[];a:{var c=ui.get(e);if(c!==void 0){var l=Bn,u=e;switch(e){case`keypress`:if(In(n)===0)break a;case`keydown`:case`keyup`:l=tr;break;case`focusin`:u=`focus`,l=qn;break;case`focusout`:u=`blur`,l=qn;break;case`beforeblur`:case`afterblur`:l=qn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Gn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Kn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=ir;break;case ri:case ii:case ai:l=Jn;break;case li:l=ar;break;case`scroll`:case`scrollend`:l=Hn;break;case`wheel`:l=or;break;case`copy`:case`cut`:case`paste`:l=Yn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=nr;break;case`submit`:l=rr;break;case`toggle`:case`beforetoggle`:l=sr}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=An(m,p),g!=null&&d.push(qf(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(l=e===`mouseover`||e===`pointerover`,c=e===`mouseout`||e===`pointerout`,l&&n!==Cn&&(u=n.relatedTarget||n.fromElement)&&(It(u)||u[Ot]))break a;(c||l)&&(u=i.window===i?i:(l=i.ownerDocument)?l.defaultView||l.parentWindow:window,c?(l=n.relatedTarget||n.toElement,c=r,l=l?It(l):null,l!==null&&(f=o(l),d=l.tag,l!==f||d!==5&&d!==27&&d!==6)&&(l=null)):(c=null,l=r),c!==l&&(d=Gn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=nr,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=c==null?u:Rt(c),h=l==null?u:Rt(l),u=new d(g,m+`leave`,c,n,i),u.target=f,u.relatedTarget=h,g=null,It(i)===r&&(d=new d(p,m+`enter`,l,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,d=c&&l?ie(c,l,Yf):null,c!==null&&Xf(s,u,c,d,!1),l!==null&&f!==null&&Xf(s,f,l,d,!0)))}a:{if(c=r?Rt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var _=Er;else if(xr(c)){if(Dr)_=Ir;else{_=Pr;var v=Nr}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&vn(r.elementType)&&(_=Er):_=Fr;if(_&&=_(e,r)){Sr(s,_,n,i);break a}v&&v(e,c,r)}switch(v=r?Rt(r):window,e){case`focusin`:(xr(v)||v.contentEditable===`true`)&&(qr=v,Jr=r,Yr=null);break;case`focusout`:Yr=Jr=qr=null;break;case`mousedown`:Xr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Xr=!1,Zr(s,n,i);break;case`selectionchange`:if(Kr)break;case`keydown`:case`keyup`:Zr(s,n,i)}var y;if(lr)b:{switch(e){case`compositionstart`:var b=`onCompositionStart`;break b;case`compositionend`:b=`onCompositionEnd`;break b;case`compositionupdate`:b=`onCompositionUpdate`;break b}b=void 0}else _r?hr(e,n)&&(b=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(b=`onCompositionStart`);b&&(fr&&n.locale!==`ko`&&(_r||b!==`onCompositionStart`?b===`onCompositionEnd`&&_r&&(y=Fn()):(Mn=i,Nn=`value`in Mn?Mn.value:Mn.textContent,_r=!0)),v=Jf(r,b),0<v.length&&(b=new Xn(b,e,null,n,i),s.push({event:b,listeners:v}),y?b.data=y:(y=gr(n),y!==null&&(b.data=y)))),(y=dr?vr(e,n):yr(e,n))&&(b=Jf(r,`onBeforeInput`),0<b.length&&(v=new Xn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:v,listeners:b}),v.data=y)),If(s,e,r,n,i)}Vf(s,t)})}function qf(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Jf(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=An(e,n),i!=null&&r.unshift(qf(e,i,a)),i=An(e,t),i!=null&&r.push(qf(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Yf(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Xf(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=An(n,a),l!=null&&o.unshift(qf(n,l,c))):i||(l=An(n,a),l!=null&&o.push(qf(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Zf=/\r\n?/g,Qf=/\u0000|\uFFFD/g;function $f(e){return(typeof e==`string`?e:``+e).replace(Zf,`
9
+ `).replace(Qf,``)}function ep(e,t){return t=$f(t),$f(e)===t}function $(e,t,n,r,a,o){switch(n){case`children`:if(typeof r==`string`)t===`body`||t===`textarea`&&r===``||mn(e,r);else if(typeof r==`number`||typeof r==`bigint`)t!==`body`&&mn(e,``+r);else return;break;case`className`:Qt(e,`class`,r);break;case`tabIndex`:Qt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Qt(e,n,r);break;case`style`:_n(e,r,o);return;case`data`:if(t!==`object`){Qt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)||r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=xn(r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&$(e,t,`name`,a.name,a,null),$(e,t,`formEncType`,a.formEncType,a,null),$(e,t,`formMethod`,a.formMethod,a,null),$(e,t,`formTarget`,a.formTarget,a,null)):($(e,t,`encType`,a.encType,a,null),$(e,t,`method`,a.method,a,null),$(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=xn(r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Sn);return;case`onScroll`:r!=null&&Q(`scroll`,e);return;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));o?.__html!==n&&(e.innerHTML=n)}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=xn(r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`credentialless`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Q(`beforetoggle`,e),Q(`toggle`,e),Zt(e,`popover`,r);break;case`xlinkActuate`:$t(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:$t(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:$t(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:$t(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:$t(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:$t(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:$t(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:$t(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:$t(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Zt(e,`is`,r);break;case`innerText`:case`textContent`:return;default:if(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)n=yn.get(n)||n,Zt(e,n,r);else return}F=!0}function tp(e,t,n,r,a,o){switch(n){case`style`:_n(e,r,o);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));o?.__html!==n&&(e.innerHTML=n)}}break;case`children`:if(typeof r==`string`)mn(e,r);else if(typeof r==`number`||typeof r==`bigint`)mn(e,``+r);else return;break;case`onScroll`:r!=null&&Q(`scroll`,e);return;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);return;case`onClick`:r!=null&&(e.onclick=Sn);return;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:return;case`innerText`:case`textContent`:return;default:if(!Ut.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),o=n.slice(2,a?n.length-7:void 0),t=e[Dt]||null,t=t==null?null:t[n],typeof t==`function`&&e.removeEventListener(o,t,a),typeof r==`function`)){typeof t!=`function`&&t!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(o,r,a);break a}F=!0,n in e?e[n]=r:!0===r?e.setAttribute(n,``):Zt(e,n,r)}return}F=!0}function np(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Q(`error`,e),Q(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,o,s,n,null)}}a&&$(e,t,`srcSet`,n.srcSet,n,null),r&&$(e,t,`src`,n.src,n,null);return;case`input`:Q(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:$(e,t,r,d,n,null)}}ln(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Q(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:$(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&dn(e,!!r,n,!0):dn(e,!!r,t,!1);return;case`textarea`:for(s in Q(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:$(e,t,s,c,n,null)}pn(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:$(e,t,l,r,n,null)}return;case`dialog`:Q(`beforetoggle`,e),Q(`toggle`,e),Q(`cancel`,e),Q(`close`,e);break;case`iframe`:case`object`:Q(`load`,e);break;case`video`:case`audio`:for(r=0;r<zf.length;r++)Q(zf[r],e);break;case`image`:Q(`error`,e),Q(`load`,e);break;case`details`:Q(`toggle`,e);break;case`embed`:case`source`:case`link`:Q(`error`,e),Q(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,u,r,n,null)}return;default:if(vn(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&tp(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&$(e,t,c,r,n,null))}var rp={};function ip(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||$(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:m!==f&&(F=!0),o=m;break;case`name`:m!==f&&(F=!0),a=m;break;case`checked`:m!==f&&(F=!0),u=m;break;case`defaultChecked`:m!==f&&(F=!0),d=m;break;case`value`:m!==f&&(F=!0),s=m;break;case`defaultValue`:m!==f&&(F=!0),c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&$(e,t,p,m,r,f)}}cn(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||$(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:o!==l&&(F=!0),p=o;break;case`defaultValue`:o!==l&&(F=!0),c=o;break;case`multiple`:o!==l&&(F=!0),s=o;default:o!==l&&$(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?dn(e,!!n,n?[]:``,!1):dn(e,!!n,t,!0)):dn(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:$(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:a!==o&&(F=!0),p=a;break;case`defaultValue`:a!==o&&(F=!0),m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&$(e,t,s,a,r,o)}fn(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:$(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:p!==m&&(F=!0),e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:$(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&$(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:$(e,t,u,p,r,m)}return;default:if(vn(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&tp(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||tp(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&$(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||$(e,t,f,p,r,m)}function ap(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function op(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&ap(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var sp=null,cp=null;function lp(e){return e.nodeType===9?e:e.ownerDocument}function up(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function dp(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function fp(e,t,n,r){return n=lp(n).createElement(e),n[Et]=r,n[Dt]=t,np(n,e,t),Bt(n),n}function pp(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var mp=null;function hp(){var e=window.event;return e&&e.type===`popstate`?e!==mp&&(mp=e,!0):(mp=null,!1)}var gp=typeof setTimeout==`function`?setTimeout:void 0,_p=typeof clearTimeout==`function`?clearTimeout:void 0,vp=typeof Promise==`function`?Promise:void 0,yp=typeof requestAnimationFrame==`function`?requestAnimationFrame:gp,bp=typeof queueMicrotask==`function`?queueMicrotask:vp===void 0?gp:function(e){return vp.resolve(null).then(e).catch(xp)};function xp(e){setTimeout(function(){throw e})}function Sp(e){return e===`head`}function Cp(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Hh(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)_m(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,_m(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[Nt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&_m(e.ownerDocument.body)}n=i}while(n);Hh(t)}function wp(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function Tp(e,t,n){if(t=CSS.escape(t)===t?t:`r-`+btoa(t).replace(/=/g,``),e.style.viewTransitionName=t,n!=null&&(e.style.viewTransitionClass=n),n=getComputedStyle(e),n.display===`inline`){if(t=e.getClientRects(),t.length===1)var r=1;else for(var i=r=0;i<t.length;i++){var a=t[i];0<a.width&&0<a.height&&r++}r===1&&(e=e.style,e.display=t.length===1?`inline-block`:`block`,e.marginTop=`-`+n.paddingTop,e.marginBottom=`-`+n.paddingBottom)}}function Ep(e,t){e=e.style,t=t.style;var n=t==null?null:t.hasOwnProperty(`viewTransitionName`)?t.viewTransitionName:t.hasOwnProperty(`view-transition-name`)?t[`view-transition-name`]:null;e.viewTransitionName=n==null||typeof n==`boolean`?``:(``+n).trim(),n=t==null?null:t.hasOwnProperty(`viewTransitionClass`)?t.viewTransitionClass:t.hasOwnProperty(`view-transition-class`)?t[`view-transition-class`]:null,e.viewTransitionClass=n==null||typeof n==`boolean`?``:(``+n).trim(),e.display===`inline-block`&&(t==null?e.display=e.margin=``:(n=t.display,e.display=n==null||typeof n==`boolean`?``:n,n=t.margin,n==null?(n=t.hasOwnProperty(`marginTop`)?t.marginTop:t[`margin-top`],e.marginTop=n==null||typeof n==`boolean`?``:n,t=t.hasOwnProperty(`marginBottom`)?t.marginBottom:t[`margin-bottom`],e.marginBottom=t==null||typeof t==`boolean`?``:t):e.margin=n))}function Dp(e,t,n){return n=n.ownerDocument.defaultView,{rect:e,abs:t.position===`absolute`||t.position===`fixed`,clip:t.clipPath!==`none`||t.overflow!==`visible`||t.filter!==`none`||t.mask!==`none`||t.mask!==`none`||t.borderRadius!==`0px`,view:0<=e.bottom&&0<=e.right&&e.top<=n.innerHeight&&e.left<=n.innerWidth}}function Op(e){return Dp(e.getBoundingClientRect(),getComputedStyle(e),e)}function kp(e){var t=e.getBoundingClientRect();t=new DOMRect(t.x+2e4,t.y+2e4,t.width,t.height);var n=getComputedStyle(e);return Dp(t,n,e)}function Ap(e){return e.documentElement.clientHeight}function jp(e){this.addEventListener(`load`,e),this.addEventListener(`error`,e)}function Mp(e,t,n,r,i,a,o,s,c){var l=t.nodeType===9?t:t.ownerDocument;try{var u=l.startViewTransition({update:function(){var t=l.defaultView,n=t.navigation&&t.navigation.transition,o=l.fonts.status;r();var s=[];if(o===`loaded`&&(Ap(l),l.fonts.status===`loading`&&s.push(l.fonts.ready)),o=s.length,e!==null)for(var c=e.suspenseyImages,u=0,d=0;d<c.length;d++){var f=c[d];if(!f.complete){var p=f.getBoundingClientRect();if(0<p.bottom&&0<p.right&&p.top<t.innerHeight&&p.left<t.innerWidth){if(u+=Xm(f),u>$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0<s.length)return t=Promise.race([Promise.all(s),new Promise(function(e){return setTimeout(e,500)})]).then(i,i),(n?Promise.allSettled([n.finished,t]):t).then(a,a);if(i(),n)return n.finished.then(a,a);a()},types:n});l.__reactViewTransition=u;var d=[];return u.ready.then(function(){for(var e=l.documentElement.getAnimations({subtree:!0}),t=0;t<e.length;t++){var n=e[t],r=n.effect,i=r.pseudoElement;if(i!=null&&i.startsWith(`::view-transition`)){d.push(n),n=r.getKeyframes();for(var a=i=void 0,s=!0,c=0;c<n.length;c++){var u=n[c],f=u.width;if(i===void 0)i=f;else if(i!==f){s=!1;break}if(f=u.height,a===void 0)a=f;else if(a!==f){s=!1;break}delete u.width,delete u.height,u.transform===`none`&&delete u.transform}s&&i!==void 0&&a!==void 0&&(r.setKeyframes(n),s=getComputedStyle(r.target,r.pseudoElement),s.width!==i||s.height!==a)&&(s=n[0],s.width=i,s.height=a,s=n[n.length-1],s.width=i,s.height=a,r.setKeyframes(n))}}o()},function(e){l.__reactViewTransition===u&&(l.__reactViewTransition=null);try{if(typeof e==`object`&&e)switch(e.name){case`InvalidStateError`:(e.message===`View transition was skipped because document visibility state is hidden.`||e.message===`Skipping view transition because document visibility state has become hidden.`||e.message===`Skipping view transition because viewport size changed.`||e.message===`Transition was aborted because of invalid state`)&&(e=null)}e!==null&&c(e)}finally{r(),i(),o()}}),u.finished.finally(function(){for(var e=0;e<d.length;e++)d[e].cancel();l.__reactViewTransition===u&&(l.__reactViewTransition=null),s()}),u}catch{return r(),i(),o(),null}}function Np(e,t){this._scope=document.documentElement,this._selector=`::view-transition-`+e+`(`+t+`)`}Np.prototype.animate=function(e,t){return t=typeof t==`number`?{duration:t}:S({},t),t.pseudoElement=this._selector,this._scope.animate(e,t)},Np.prototype.getAnimations=function(){for(var e=this._scope,t=this._selector,n=e.getAnimations({subtree:!0}),r=[],i=0;i<n.length;i++){var a=n[i].effect;a!==null&&a.target===e&&a.pseudoElement===t&&r.push(n[i])}return r},Np.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function Pp(e){return{name:e,group:new Np(`group`,e),imagePair:new Np(`image-pair`,e),old:new Np(`old`,e),new:new Np(`new`,e)}}function Fp(e){this._fragmentFiber=e,this._observers=this._eventListeners=null}Fp.prototype.addEventListener=function(e,t,n){var r=null,i=null;if(!(n!=null&&typeof n!=`boolean`&&(r=n.signal||null,r!==null&&r.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var a=this._eventListeners;if(Bp(a,e,t,n)===-1){var o=this,s=t;n!=null&&typeof n!=`boolean`&&!0===n.once&&(s=function(r){o.removeEventListener(e,t,n),typeof t==`function`?t.call(this,r):t.handleEvent(r)}),r!==null&&(i=o.removeEventListener.bind(o,e,t,n),r.addEventListener(`abort`,i,{once:!0}),i=r.removeEventListener.bind(r,`abort`,i)),r=Rp(n),a.push({type:e,listener:t,optionsOrUseCapture:n,attachedListener:s,cleanup:i}),h(this._fragmentFiber.child,!1,Ip,e,s,r)}this._eventListeners=a}};function Ip(e,t,n,r){return b(e).addEventListener(t,n,r),!1}Fp.prototype.removeEventListener=function(e,t,n){var r=this._eventListeners;if(r!==null&&(t=Bp(r,e,t,n),t!==-1)){var i=r[t];n=i.attachedListener;var a=i.cleanup;i=Rp(i.optionsOrUseCapture),h(this._fragmentFiber.child,!1,Lp,e,n,i),r.splice(t,1),a!==null&&a()}};function Lp(e,t,n,r){return b(e).removeEventListener(t,n,r),!1}function Rp(e){return e!=null&&typeof e!=`boolean`&&(!0===e.once||e.signal instanceof AbortSignal)?{capture:e.capture,passive:e.passive}:e}function zp(e){return e==null?`c=0`:typeof e==`boolean`?`c=`+(e?`1`:`0`):`c=`+(e.capture?`1`:`0`)}function Bp(e,t,n,r){if(e.length===0)return-1;r=zp(r);for(var i=0;i<e.length;i++){var a=e[i];if(a.type===t&&a.listener===n&&zp(a.optionsOrUseCapture)===r)return i}return-1}Fp.prototype.dispatchEvent=function(e){var t=g(this._fragmentFiber);if(t===null)return!0;t=b(t);var n=this._eventListeners;if(n!==null&&0<n.length||!e.bubbles){var r=t.nodeType===9?t.createComment(``):document.createTextNode(``);if(n)for(var i=0;i<n.length;i++){var a=n[i];r.addEventListener(a.type,a.attachedListener,Rp(a.optionsOrUseCapture))}if(t.appendChild(r),e=r.dispatchEvent(e),n)for(i=0;i<n.length;i++)a=n[i],r.removeEventListener(a.type,a.attachedListener,Rp(a.optionsOrUseCapture));return t.removeChild(r),e}return t.dispatchEvent(e)},Fp.prototype.focus=function(e){h(this._fragmentFiber.child,!0,Vp,e,void 0,void 0)};function Vp(e,t){return e.tag!==6&&(e=b(e),pm(e,t))}Fp.prototype.focusLast=function(e){var t=[];h(this._fragmentFiber.child,!0,Hp,t,void 0,void 0);for(var n=t.length-1;0<=n&&!Vp(t[n],e);n--);};function Hp(e,t){return t.push(e),!1}Fp.prototype.blur=function(){var e=g(this._fragmentFiber);e!==null&&(e=b(e),e=lp(e).activeElement,e!==null&&h(this._fragmentFiber.child,!1,Up,e,void 0,void 0))};function Up(e,t){return e.tag!==6&&(e=b(e),e===t||e.contains(t)?(t.blur(),!0):!1)}Fp.prototype.observeUsing=function(e){this._observers===null&&(this._observers=new Set),this._observers.add(e),h(this._fragmentFiber.child,!1,Wp,e,void 0,void 0)};function Wp(e,t){return e.tag===6||(e=b(e),t.observe(e)),!1}Fp.prototype.unobserveUsing=function(e){var t=this._observers;if(t!==null&&t.has(e)){t.delete(e),h(this._fragmentFiber.child,!1,Gp,e,void 0,void 0);for(var n=t=0;n<Kp.length;n++){var r=Kp[n];r.fragmentInstance===this&&r.observer===e?e.unobserve(r.instance):Kp[t++]=r}Kp.length=t}};function Gp(e,t){return e.tag===6||(e=b(e),t.unobserve(e)),!1}var Kp=[],qp=!1;function Jp(e,t,n){Kp.push({fragmentInstance:e,observer:t,instance:n}),qp||(qp=!0,mm(function(){qp=!1;var e=Kp;Kp=[];for(var t=0;t<e.length;t++){var n=e[t];n.observer.unobserve(n.instance)}}))}Fp.prototype.getClientRects=function(){var e=[];return h(this._fragmentFiber.child,!1,Yp,e,void 0,void 0),e};function Yp(e,t){if(e.tag===6){e=e.stateNode;var n=e.ownerDocument.createRange();n.selectNodeContents(e),t.push.apply(t,n.getClientRects())}else e=b(e),t.push.apply(t,e.getClientRects());return!1}Fp.prototype.getRootNode=function(e){var t=g(this._fragmentFiber);return t===null?this:b(t).getRootNode(e)},Fp.prototype.compareDocumentPosition=function(e){var t=g(this._fragmentFiber);if(t===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var n=[];h(this._fragmentFiber.child,!1,Hp,n,void 0,void 0);var r=b(t);if(n.length===0){if(n=r,_(this._fragmentFiber)){a:{for(t=this._fragmentFiber.return;t!==null;){if(t.tag===4){t=t.stateNode.containerInfo;break a}if(t.tag===3||t.tag===5||t.tag===27)break;t=t.return}t=null}t!=null&&(n=t)}t=this._fragmentFiber;var i=r=n.compareDocumentPosition(e);return n===e?i=Node.DOCUMENT_POSITION_CONTAINS:r&Node.DOCUMENT_POSITION_CONTAINED_BY&&(n=v(t)[1],n===null?i=Node.DOCUMENT_POSITION_PRECEDING:(e=b(n).compareDocumentPosition(e),i=e===0||e&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),i|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}t=b(n[0]),i=b(n[n.length-1]);var a=_(this._fragmentFiber)?t.parentElement:r;if(a==null)return Node.DOCUMENT_POSITION_DISCONNECTED;r=a.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY,a=a.compareDocumentPosition(i)&Node.DOCUMENT_POSITION_CONTAINED_BY;var o=t.compareDocumentPosition(e),s=i.compareDocumentPosition(e),c=o&Node.DOCUMENT_POSITION_CONTAINED_BY||s&Node.DOCUMENT_POSITION_CONTAINED_BY;return s=r&&a&&o&Node.DOCUMENT_POSITION_FOLLOWING&&s&Node.DOCUMENT_POSITION_PRECEDING,t=r&&t===e||a&&i===e||c||s?Node.DOCUMENT_POSITION_CONTAINED_BY:!r&&t===e||!a&&i===e?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:o,t&Node.DOCUMENT_POSITION_DISCONNECTED||t&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||Xp(t,this._fragmentFiber,n[0],n[n.length-1],e)?t:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function Xp(e,t,n,r,i){var a=It(i);if(e&Node.DOCUMENT_POSITION_CONTAINED_BY){if(n=!!a)a:{for(;a!==null;){if(a.tag===7&&(a===t||a.alternate===t)){n=!0;break a}a=a.return}n=!1}return n}if(e&Node.DOCUMENT_POSITION_CONTAINS){if(a===null)return a=i.ownerDocument,i===a||i===a.documentElement||i===a.body;a:{for(a=t,t=g(t);a!==null;){if(!(a.tag!==5&&a.tag!==3&&a.tag!==27||a!==t&&a.alternate!==t)){a=!0;break a}a=a.return}a=!1}return a}return e&Node.DOCUMENT_POSITION_PRECEDING?((t=!!a)&&!(t=a===n)&&(t=ie(n,a,x),t===null?t=!1:(h(t,!0,ne,a,n),a=ee,ee=null,t=a!==null)),t):e&Node.DOCUMENT_POSITION_FOLLOWING?((t=!!a)&&!(t=a===r)&&(t=ie(r,a,x),t===null?t=!1:(h(t,!0,re,a,r),a=ee,te=ee=null,t=a!==null)),t):!1}function Zp(e,t){var n=e.ownerDocument.createRange();n.selectNodeContents(e),e=n.getBoundingClientRect(),window.scrollTo(window.scrollX+e.left,t?window.scrollY+e.top:window.scrollY+e.bottom-window.innerHeight)}Fp.prototype.scrollIntoView=function(e){if(typeof e==`object`)throw Error(i(566));var t=[];h(this._fragmentFiber.child,!1,Hp,t,void 0,void 0);var n=!1!==e;if(t.length===0){var r=v(this._fragmentFiber);if(r=n?r[1]||r[0]||g(this._fragmentFiber):r[0]||r[1],r===null)return;if(r.tag===6){e=b(r),Zp(e,n);return}if(r=b(r),r.nodeType!==9){if(r.nodeType===11){n=`host`in r?r.host:null,n!==null&&n.scrollIntoView(e);return}r.scrollIntoView(e)}}for(r=n?t.length-1:0;r!==(n?-1:t.length);){var a=t[r];a.tag===6?(a=b(a),Zp(a,n)):b(a).scrollIntoView(e),r+=n?-1:1}};function Qp(e,t){return e=b(e),$p(e,t),!1}function $p(e,t){e.reactFragments??=new Set,e.reactFragments.add(t)}function em(e,t){var n=t._eventListeners;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];e.addEventListener(i.type,i.attachedListener,Rp(i.optionsOrUseCapture))}e.nodeType!==3&&(n=t._observers,n!==null&&n.forEach(function(n){for(var r=0,i=0;i<Kp.length;i++){var a=Kp[i];(a.fragmentInstance!==t||a.observer!==n||a.instance!==e)&&(Kp[r++]=a)}Kp.length=r,n.observe(e)}),$p(e,t))}function tm(e,t){var n=t._eventListeners;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];e.removeEventListener(i.type,i.attachedListener,Rp(i.optionsOrUseCapture))}e.nodeType!==3&&(n=t._observers,n!==null&&n.forEach(function(n){typeof n.rootMargin==`string`?Jp(t,n,e):n.unobserve(e)}),e.reactFragments!=null&&e.reactFragments.delete(t))}function nm(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:nm(n),Ft(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function rm(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[Nt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=lm(e.nextSibling),e===null)break}return null}function im(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=lm(e.nextSibling),e===null))return null;return e}function am(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=lm(e.nextSibling),e===null))return null;return e}function om(e){return e.data===`$?`||e.data===`$~`}function sm(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function cm(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function lm(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var um=null;function dm(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return lm(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function fm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function pm(e,t){function n(){r=!0}if(e.ownerDocument.activeElement===e)return!0;var r=!1;try{e.ownerDocument.addEventListener(`focus`,n,!0),(e.focus||HTMLElement.prototype.focus).call(e,t)}finally{e.ownerDocument.removeEventListener(`focus`,n,!0)}return r}function mm(e){yp(function(){yp(function(t){return e(t)})})}function hm(e,t,n){switch(t=lp(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function gm(e,t,n){for(var r in n){var i=n[r];n.hasOwnProperty(r)&&i!=null&&$(e,t,r,null,rp,i)}n.dangerouslySetInnerHTML!=null&&(e.textContent=``),e.onclick===Sn&&(e.onclick=null),Ft(e)}function _m(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ft(e)}var vm=new Map,ym=new Set;function bm(e){if(typeof e.getRootNode==`function`){var t=e.getRootNode();if(t.nodeType===9||t.nodeType===11)return t}return e.nodeType===9?e:e.ownerDocument}var xm=D.d;D.d={f:Sm,r:Cm,D:Em,C:Dm,L:Om,m:km,X:jm,S:Am,M:Mm};function Sm(){var e=xm.f(),t=zd();return e||t}function Cm(e){var t=Lt(e);t!==null&&t.tag===5&&t.type===`form`?ec(t):xm.r(e)}var wm=typeof document>`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=sn(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),Bt(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+sn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+sn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+sn(n.imageSizes)+`"]`)):i+=`[href="`+sn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=S({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Pt]=!0,o.onload=o.onerror=function(){Vt(o)}),Bt(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+sn(r)+`"][href="`+sn(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=S({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),Bt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=zt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=S({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Bt(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=zt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Bt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=zt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Bt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var a=(a=Ae.current)?bm(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=zt(a).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=zt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(a,e,o,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=zt(a).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Pm(e){return`href="`+sn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Pt]){r.loading=1;return}}else t=e.createElement(`link`),t[Pt]=!0,t.onload=t.onerror=Vt.bind(null,t),np(t,`link`,n),Bt(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+sn(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+sn(n.href)+`"]`);if(r)return t.instance=r,Bt(r),r;var a=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Bt(r),np(r,`style`,a),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Pm(n.href);var o=e.querySelector(Fm(a));if(o)return t.state.loading|=4,t.instance=o,Bt(o),o;r=Im(n),(a=vm.get(a))&&Hm(r,a),o=(e.ownerDocument||e).createElement(`link`),Bt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(a=e.querySelector(zm(o)))?(t.instance=a,Bt(a),a):(r=n,(a=vm.get(o))&&(r=S({},n),Um(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Bt(a),np(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Hm(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Um(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Wm=null;function Gm(e,t,n){if(Wm===null){var r=new Map,i=Wm=new Map;i.set(n,r)}else i=Wm,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[Nt]||a[Et]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Km(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Bt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Bt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&ah(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&$m===0&&($m=62500*op());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&ah(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=nh.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var sh={$$typeof:fe,Provider:null,Consumer:null,_currentValue:Te,_currentValue2:Te,_threadCount:0};function ch(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=gt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.hiddenUpdates=gt(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function lh(e,t,n,r,i,a,o,s,c,l,u,d){return e=new ch(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=ki(3,null,null,t),e.current=a,a.stateNode=e,t=ka(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},fo(a),e}function uh(e){return e?(e=Di,e):Di}function dh(e,t,n,r,i,a){i=uh(i),r.context===null?r.context=i:r.pendingContext=i,r=mo(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=ho(e,r,t),n!==null&&(Pd(n,e,t),go(n,e,t))}function fh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ph(e,t){fh(e,t),(e=e.alternate)&&fh(e,t)}function mh(e){if(e.tag===13||e.tag===31){var t=wi(e,67108864);t!==null&&Pd(t,e,67108864),ph(e,67108864)}}function hh(e){if(e.tag===13||e.tag===31){var t=jd();t=xt(t);var n=wi(e,t);n!==null&&Pd(n,e,t),ph(e,t)}}var gh=!0;function _h(e,t,n,r){var i=E.T;E.T=null;var a=D.p;try{D.p=2,yh(e,t,n,r)}finally{D.p=a,E.T=i}}function vh(e,t,n,r){var i=E.T;E.T=null;var a=D.p;try{D.p=8,yh(e,t,n,r)}finally{D.p=a,E.T=i}}function yh(e,t,n,r){if(gh){var i=bh(r);if(i===null)Kf(e,t,r,xh,n),Mh(e,r);else if(Ph(i,e,t,n,r))r.stopPropagation();else if(Mh(e,r),t&4&&-1<jh.indexOf(e)){for(;i!==null;){var a=Lt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=ut(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-rt(o);s.entanglements[1]|=c,o&=~c}Ef(a),!(q&6)&&(gd=qe()+500,Df(0,!1))}}break;case 31:case 13:s=wi(a,2),s!==null&&Pd(s,a,2),zd(),ph(a,2)}if(a=bh(r),a===null&&Kf(e,t,r,xh,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Kf(e,t,r,null,n)}}function bh(e){return e=wn(e),Sh(e)}var xh=null;function Sh(e){if(xh=null,e=It(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return xh=e,null}function Ch(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`fullscreenerror`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`resize`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Je()){case Ye:return 2;case Xe:return 8;case M:case Ze:return 32;case Qe:return 268435456;default:return 32}default:return 32}}var wh=!1,Th=null,Eh=null,Dh=null,Oh=new Map,kh=new Map,Ah=[],jh=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Mh(e,t){switch(e){case`focusin`:case`focusout`:Th=null;break;case`dragenter`:case`dragleave`:Eh=null;break;case`mouseover`:case`mouseout`:Dh=null;break;case`pointerover`:case`pointerout`:Oh.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:kh.delete(t.pointerId)}}function Nh(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Lt(t),t!==null&&mh(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ph(e,t,n,r,i){switch(t){case`focusin`:return Th=Nh(Th,e,t,n,r,i),!0;case`dragenter`:return Eh=Nh(Eh,e,t,n,r,i),!0;case`mouseover`:return Dh=Nh(Dh,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Oh.set(a,Nh(Oh.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,kh.set(a,Nh(kh.get(a)||null,e,t,n,r,i)),!0}return!1}function Fh(e){var t=It(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,wt(e.priority,function(){hh(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,wt(e.priority,function(){hh(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ih(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=bh(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Cn=r,n.target.dispatchEvent(r),Cn=null}else return t=Lt(n),t!==null&&mh(t),e.blockedOn=n,!1;t.shift()}return!0}function Lh(e,t,n){Ih(e)&&n.delete(t)}function Rh(){wh=!1,Th!==null&&Ih(Th)&&(Th=null),Eh!==null&&Ih(Eh)&&(Eh=null),Dh!==null&&Ih(Dh)&&(Dh=null),Oh.forEach(Lh),kh.forEach(Lh)}function zh(e,n){e.blockedOn===n&&(e.blockedOn=null,wh||(wh=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Rh)))}var Bh=null;function Vh(e){Bh!==e&&(Bh=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Bh===e&&(Bh=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(Sh(r||n)===null)continue;break}var a=Lt(n);a!==null&&(e.splice(t,3),t-=3,Qs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Hh(e){function t(t){return zh(t,e)}Th!==null&&zh(Th,e),Eh!==null&&zh(Eh,e),Dh!==null&&zh(Dh,e),Oh.forEach(t),kh.forEach(t);for(var n=0;n<Ah.length;n++){var r=Ah[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Ah.length&&(n=Ah[0],n.blockedOn===null);)Fh(n),n.blockedOn===null&&Ah.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[Dt]||null;if(typeof a==`function`)o||Vh(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[Dt]||null)s=o.formAction;else if(Sh(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Vh(n)}}}function Uh(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Wh(e){this._internalRoot=e}Gh.prototype.render=Wh.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;dh(n,jd(),e,t,null,null)},Gh.prototype.unmount=Wh.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;dh(e.current,2,null,e,null,null),zd(),t[Ot]=null}};function Gh(e){this._internalRoot=e}Gh.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ct();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ah.length&&t!==0&&t<Ah[n].priority;n++);Ah.splice(n,0,e),n===0&&Fh(e)}};var Kh=n.version;if(Kh!==`19.3.0`)throw Error(i(527,Kh,`19.3.0`));D.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var qh={bundleType:0,version:`19.3.0`,rendererPackageName:`react-dom`,currentDispatcherRef:E,reconcilerVersion:`19.3.0`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Jh=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jh.isDisabled&&Jh.supportsFiber)try{tt=Jh.inject(qh),N=Jh}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=xc,s=Sc,c=Cc;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=lh(e,1,!1,null,null,n,r,null,o,s,c,Uh),e[Ot]=t.current,Wf(e),new Wh(t)}})),g=o(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=u(),v=g(),y=3e3,b=1500,ee=1e3,te=5e3,ne=`/game-server/admin/api/`,re=`x-admin-csrf`,x=2e3,ie=15e3,S=5e3,ae=2e3,oe=15e3,se=6e4,ce=401,le=403,ue=`stepUp`,de=[`auth/`,`setup/`],fe=0,pe=404,me=class extends Error{status;detail;current;constructor(e,t,n,r){super(t),this.name=`AdminApiError`,this.status=e,this.detail=n,this.current=r}};function C(e){return e instanceof me?e:new me(fe,_e(e),null)}function he(e){return e===pe||e===ce}function ge(e){return new me(fe,`the server could not be reached (`+_e(e)+`)`,null)}function _e(e){return e instanceof Error?e.message:String(e)}var w=new class{csrfToken=null;stepUpHandler=null;unauthorizedHandler=null;setCsrfToken(e){this.csrfToken=e}setStepUpHandler(e){this.stepUpHandler=e}setUnauthorizedHandler(e){this.unauthorizedHandler=e}get(e,t){return this.request(`GET`,e,t,void 0,!1)}send(e,t,n){return this.request(e,t,void 0,n,!1)}async download(e,t){let n=await this.fetchOrThrow(`GET`,ve(e,t),void 0);if(!n.ok)throw await ye(n);Se(await n.blob(),xe(n.headers.get(`content-disposition`),e))}async request(e,t,n,r,i){let a=await this.fetchOrThrow(e,ve(t,n),r);if(a.ok)return await a.json();let o=await ye(a);if(this.shouldStepUp(o,i)&&this.stepUpHandler!=null&&await this.stepUpHandler())return this.request(e,t,n,r,!0);throw o.status===ce&&!be(t)&&this.unauthorizedHandler?.(),o}async fetchOrThrow(e,t,n){let r=new Headers({accept:`application/json`});n!==void 0&&r.set(`content-type`,`application/json`),e!==`GET`&&this.csrfToken!=null&&r.set(re,this.csrfToken);let i=n===void 0?void 0:JSON.stringify(n);try{return await fetch(t,{method:e,headers:r,body:i,credentials:`same-origin`,cache:`no-store`})}catch(e){throw ge(e)}}shouldStepUp(e,t){return!t&&e.status===le&&e.detail===ue}};function ve(e,t){let n=new URLSearchParams;for(let[e,r]of Object.entries(t??{}))r!=null&&r!==``&&n.set(e,String(r));let r=n.toString();return ne+e+(r===``?``:`?`+r)}async function ye(e){let t=await e.text().catch(()=>``);try{let n=JSON.parse(t),r=typeof n.error==`string`?n.error:`request failed (`+e.status+`)`,i=typeof n.detail==`string`?n.detail:null;return new me(e.status,r,i,n.current)}catch{let n=t.trim()===``?`request failed (`+e.status+`)`:t.trim();return new me(e.status,n,null)}}function be(e){return de.some(t=>e.startsWith(t))}function xe(e,t){let n=(e??``).match(/filename="?([^";]+)"?/i);if(n!=null)return n[1];let r=t.split(`/`);return r[r.length-1]||`download`}function Se(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}var Ce=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),T=o(((e,t)=>{t.exports=Ce()}))(),we={overview:`M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z`,instances:`M4 4h16v7H4zM4 13h16v7H4zM8 7.5h.01M8 16.5h.01M12 7.5h4M12 16.5h4`,maintenance:`M14.7 6.3a4 4 0 0 0-5.4 5.4L4 17l3 3 5.3-5.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.5-.5-.5-2.5z`,sessions:`M12 3l9 5-9 5-9-5 9-5zM3 13l9 5 9-5M3 17.5l9 5 9-5`,players:`M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM2 21v-1a6 6 0 0 1 12 0v1M16 3.5a4 4 0 0 1 0 7M22 21v-1a6 6 0 0 0-4-5.6`,bans:`M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM5.6 5.6l12.8 12.8`,account:`M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21v-1a8 8 0 0 1 16 0v1`,menu:`M4 6h16M4 12h16M4 18h16`,sun:`M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10zM12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4`,moon:`M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z`,system:`M3 4h18v12H3zM8 20h8M12 16v4`,copy:`M9 9h11v11H9zM5 15H4V4h11v1`,check:`M5 12l5 5L20 7`,alert:`M12 3l10 18H2L12 3zM12 10v4M12 17.5v.01`,info:`M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 11v6M12 7.5v.01`,shield:`M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3zM9 12l2 2 4-4`,key:`M14 14a5 5 0 1 0-4.6-3L3 17.4V21h3.6v-2.4H9V16h2.4l1.2-1.2A5 5 0 0 0 14 14zM16 8h.01`,activity:`M3 12h4l3-8 4 16 3-8h4`,signOut:`M15 4h4v16h-4M10 8l-4 4 4 4M6 12h11`,chevronDown:`M6 9l6 6 6-6`,back:`M19 12H5M11 6l-6 6 6 6`,search:`M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM21 21l-5-5`,close:`M6 6l12 12M18 6L6 18`,download:`M12 4v11M7 10l5 5 5-5M5 20h14`,upload:`M12 16V5M7 10l5-5 5 5M5 20h14`,notice:`M6 16v-5a6 6 0 0 1 12 0v5l2 2H4l2-2zM10 21h4`,lock:`M6 11h12v10H6zM8 11V7a4 4 0 0 1 8 0v4`,unlock:`M6 11h12v10H6zM8 11V7a4 4 0 0 1 7.5-2`,drain:`M12 3v9M6.3 6.3a8 8 0 1 0 11.4 0`,plus:`M12 5v14M5 12h14`,refresh:`M20 11a8 8 0 0 0-14.9-3M4 4v4h4M4 13a8 8 0 0 0 14.9 3M20 20v-4h-4`,trash:`M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3`,edit:`M4 20h4L19 9l-4-4L4 16v4z`,kick:`M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM2 21v-1a6 6 0 0 1 12 0v1M17 8l4 4M21 8l-4 4`,message:`M4 5h16v11H8l-4 4V5z`,globe:`M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18`,clock:`M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 7v5l3 2`,history:`M3 12a9 9 0 1 0 3-6.7M3 4v5h5M12 8v4l3 2`,dedicated:`M6 6h12v12H6zM9 9h6v6H9zM9 2v4M15 2v4M9 18v4M15 18v4M2 9h4M2 15h4M18 9h4M18 15h4`,metrics:`M4 20V4M4 20h16M8 16l4-5 3 3 5-7`,logs:`M5 4h14v16H5zM8 8h8M8 12h8M8 16h5`,config:`M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1M15 4v4M9 10v4M17 16v4`,authTools:`M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3zM12 10a2 2 0 1 0 0 .01M12 12v3`,pause:`M8 5v14M16 5v14`,play:`M7 4l13 8-13 8V4z`,external:`M14 4h6v6M20 4l-9 9M18 14v6H4V6h6`,stop:`M6 6h12v12H6z`,restart:`M20 11a8 8 0 1 0-2.3 5.7M20 4v7h-7`,alerts:`M6 16v-5a6 6 0 0 1 12 0v5l2 2H4l2-2zM10 21h4M3 6l2-2M21 6l-2-2`,audit:`M8 4h8v3H8zM6 5H5v16h14V5h-1M9 13l2 2 4-4`,users:`M8 11a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7zM2 20v-1a6 6 0 0 1 12 0v1M15.5 4.3a3.5 3.5 0 0 1 0 6.4M17 13.6a6 6 0 0 1 5 5.4v1`,extensions:`M10 3h4v3a2 2 0 1 0 0 0h3v4a2 2 0 1 1 0 4v4h-4a2 2 0 1 0-4 0H6v-4a2 2 0 1 0 0-4V6h4V3z`,docs:`M4 5a2 2 0 0 1 2-2h13v16H6a2 2 0 0 0-2 2V5zM4 21a2 2 0 0 1 2-2h13v2H6M8 7h7M8 11h5`,help:`M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM9.5 9.5a2.5 2.5 0 1 1 3.5 2.3c-.6.3-1 .9-1 1.6v.6M12 17.5v.01`,passkey:`M12 11v3M8.5 7.5A5 5 0 0 1 17 11v1M7 11a5 5 0 0 0 1 3M12 6a7 7 0 0 0-7 7v2M19 13v1a7 7 0 0 1-1.5 4.3M10 16a2 2 0 0 0 4 0v-2`,calendar:`M4 6h16v14H4zM4 10h16M8 3v4M16 3v4`,rollout:`M4 12h4l2-3 4 6 2-3h4M4 19h16M4 5h16`,command:`M9 6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6z`,send:`M4 12l16-8-6 16-2-6-8-2zM12 14l8-10`,cloud:`M7 18h10a4 4 0 0 0 .6-7.95A6 6 0 0 0 6.2 9.1 4.5 4.5 0 0 0 7 18z`,trophy:`M7 4h10v3a5 5 0 0 1-10 0V4zM5 5H3v2a4 4 0 0 0 4 4M19 5h2v2a4 4 0 0 1-4 4M12 12v4M8 20h8M9 16h6v4H9z`};function E(e){let t=e.className==null?`icon`:`icon `+e.className;return(0,T.jsx)(`svg`,{className:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:1.8,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,focusable:`false`,children:(0,T.jsx)(`path`,{d:we[e.name]})})}function D(){return(0,T.jsxs)(`svg`,{className:`brand__mark`,viewBox:`0 0 32 32`,"aria-hidden":`true`,focusable:`false`,children:[(0,T.jsx)(`rect`,{className:`brand__mark-back`,width:`32`,height:`32`,rx:`8`}),(0,T.jsx)(`rect`,{className:`brand__mark-slot`,x:`8`,y:`9`,width:`16`,height:`5`,rx:`1.5`}),(0,T.jsx)(`rect`,{className:`brand__mark-slot`,x:`8`,y:`18`,width:`16`,height:`5`,rx:`1.5`}),(0,T.jsx)(`circle`,{className:`brand__mark-back`,cx:`20.5`,cy:`11.5`,r:`1.2`}),(0,T.jsx)(`circle`,{className:`brand__mark-back`,cx:`20.5`,cy:`20.5`,r:`1.2`})]})}function Te(e){return(0,T.jsxs)(`div`,{className:`error-state`,role:`alert`,children:[(0,T.jsx)(E,{name:`alert`,className:`error-state__icon`}),(0,T.jsx)(`p`,{className:`error-state__title`,children:e.title}),e.children!=null&&(0,T.jsx)(`p`,{children:e.children}),e.onRetry!=null&&(0,T.jsx)(`button`,{type:`button`,className:`button`,onClick:e.onRetry,children:`Try again`})]})}function Ee(e){let t=(0,_.useRef)(null);return(0,_.useEffect)(()=>{let e=t.current;return e!=null&&!e.open&&e.showModal(),()=>e?.close()},[]),(0,T.jsx)(`dialog`,{ref:t,className:e.isWide===!0?`dialog dialog--wide`:`dialog`,onCancel:t=>{t.preventDefault(),e.onClose()},"aria-label":e.title,children:(0,T.jsxs)(`form`,{className:`dialog__form`,onSubmit:t=>{t.preventDefault(),e.onSubmit?.()},noValidate:!0,children:[(0,T.jsxs)(`header`,{className:`dialog__header`,children:[(0,T.jsx)(`h2`,{className:`dialog__title`,children:e.title}),e.description!=null&&(0,T.jsx)(`p`,{className:`muted`,children:e.description})]}),e.children]})})}function O(e){let t=e.className==null?`field`:`field `+e.className;return(0,T.jsxs)(`label`,{className:t,children:[(0,T.jsx)(`span`,{className:`field__label`,children:e.label}),e.children,e.hint!=null&&(0,T.jsx)(`span`,{className:`field__hint`,children:e.hint}),e.error!=null&&e.error!==``&&(0,T.jsx)(`span`,{className:`field__error`,role:`alert`,children:e.error})]})}function k(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),s=(e.typedConfirmation==null||t.trim()===e.typedConfirmation)&&e.canConfirm!==!1&&!r,c=async()=>{if(s){i(!0),o(null);try{await e.onConfirm(),e.onClose()}catch(e){o(C(e).message),i(!1)}}},l=(e.tone??`danger`)===`danger`?`button button--danger`:`button button--primary`;return(0,T.jsxs)(Ee,{title:e.title,description:e.description,onClose:e.onClose,onSubmit:()=>void c(),isWide:e.isWide,children:[e.children,e.typedConfirmation!=null&&(0,T.jsx)(O,{label:`Type “`+e.typedConfirmation+`” to confirm`,children:(0,T.jsx)(`input`,{className:`input`,value:t,onChange:e=>n(e.target.value),autoComplete:`off`,spellCheck:!1})}),a!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:a})}),(0,T.jsxs)(`div`,{className:`form-actions`,children:[(0,T.jsx)(`button`,{type:`button`,className:`button`,onClick:e.onClose,disabled:r,children:`Cancel`}),(0,T.jsx)(`button`,{type:`submit`,className:l,disabled:!s,children:r?`Working…`:e.confirmLabel})]})]})}var De=1024,A=[`B`,`KB`,`MB`,`GB`,`TB`],Oe=100,ke=10,Ae=1e3,je=60,Me=3600,Ne=86400,Pe=5;function Fe(e){if(!Number.isFinite(e)||e<=0)return`0 B`;if(e<De)return Math.round(e)+` B`;let t=e,n=0;for(;t>=De&&n<A.length-1;)t/=De,n+=1;return We(t)+` `+A[n]}function Ie(e){let t=Math.max(0,e);if(t<Ae)return Math.round(t)+` ms`;let n=Math.floor(t/Ae);return n<je?n+` s`:n<Me?Ue(Math.floor(n/je),`min`,n%je,`s`):n<Ne?Ue(Math.floor(n/Me),`h`,Math.floor(n%Me/je),`min`):Ue(Math.floor(n/Ne),`d`,Math.floor(n%Ne/Me),`h`)}function Le(e){return j(e)+`/s`}function j(e){if(!Number.isFinite(e))return`–`;let t=Math.abs(e),n=0;return t<Oe&&(n=1),t<ke&&(n=2),e.toLocaleString(`en-US`,{maximumFractionDigits:n})}function Re(e){return Number.isFinite(e)?Math.round(e*100)+`%`:`–`}function ze(e,t){let n=Date.parse(e);if(Number.isNaN(n))return`–`;let r=Math.round((t-n)/Ae),i=Math.abs(r);if(i<Pe)return`just now`;let a=He(i);return r>0?a+` ago`:`in `+a}function Be(e){let t=Math.max(0,Math.ceil(e/Ae)),n=Math.floor(t/Me),r=Math.floor(t%Me/je),i=String(t%je).padStart(2,`0`);return n===0?r+`:`+i:n+`:`+String(r).padStart(2,`0`)+`:`+i}function Ve(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return`–`;let r=t===`utc`,[i,a,o,s,c,l]=(r?[n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds()]:[n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds()]).map(e=>String(e).padStart(2,`0`));return i+`-`+a+`-`+o+` `+s+`:`+c+`:`+l+(r?` UTC`:``)}function He(e){return e<je?e+` s`:e<Me?Math.floor(e/je)+` min`:e<Ne?Math.floor(e/Me)+` h`:Math.floor(e/Ne)+` d`}function Ue(e,t,n,r){let i=e+` `+t;return n===0?i:i+` `+n+` `+r}function We(e){let t=e>=Oe?Math.round(e):Math.round(e*10)/10;return String(t)}var Ge=16,Ke=6e4;function qe(e){let t=new Date(e);return new Date(e-t.getTimezoneOffset()*Ke).toISOString().slice(0,Ge)}function Je(e){if(e===``)return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}var Ye=(0,_.createContext)(null);function Xe(e){return(0,T.jsx)(Ye.Provider,{value:e.value,children:e.children})}function M(){let e=(0,_.useContext)(Ye);if(e==null)throw Error(`useSession needs the signed-in shell`);return e}function Ze(){return(0,_.useContext)(Ye)?.preferences.timeZone??`local`}var Qe={success:`check`,error:`alert`,info:`info`},$e=(0,_.createContext)(()=>void 0),et=1;function tt(e){let[t,n]=(0,_.useState)([]),r=(0,_.useCallback)(e=>{n(t=>t.filter(t=>t.toastId!==e))},[]),i=(0,_.useCallback)((e,t=`success`)=>{let r={toastId:et,text:e,tone:t};et+=1,n(e=>[...e,r].slice(-3))},[]),a=(0,_.useMemo)(()=>i,[i]);return(0,T.jsxs)($e.Provider,{value:a,children:[e.children,(0,T.jsx)(`div`,{className:`toast-region`,role:`status`,"aria-live":`polite`,children:t.map(e=>(0,T.jsx)(nt,{toast:e,onDismiss:r},e.toastId))})]})}function N(){return(0,_.useContext)($e)}function nt(e){let{toast:t,onDismiss:n}=e;return(0,_.useEffect)(()=>{let e=window.setTimeout(()=>n(t.toastId),te);return()=>window.clearTimeout(e)},[t.toastId,n]),(0,T.jsxs)(`div`,{className:`toast toast--`+t.tone,children:[(0,T.jsx)(E,{name:Qe[t.tone]}),(0,T.jsx)(`span`,{className:`toast__text`,children:t.text}),(0,T.jsx)(`button`,{type:`button`,className:`icon-button`,onClick:()=>n(t.toastId),"aria-label":`Dismiss`,children:(0,T.jsx)(E,{name:`close`})})]})}var rt=`confirmSharedAddress`,it=3600,at=[{value:`1h`,label:`1 hour`,seconds:it},{value:`1d`,label:`1 day`,seconds:24*it},{value:`7d`,label:`7 days`,seconds:168*it},{value:`30d`,label:`30 days`,seconds:720*it},{value:`custom`,label:`Custom`,seconds:null},{value:`permanent`,label:`Permanent`,seconds:null}],ot={user:{label:`User id`,placeholder:`the player's user id from your auth`},address:{label:`Address`,placeholder:`203.0.113.7`},network:{label:`Network (CIDR)`,placeholder:`203.0.113.0/24`}};function st(e){let t=N(),n=Ze(),[r,i]=(0,_.useState)(e.initialKind??`address`),[a,o]=(0,_.useState)(e.initialValue??``),[s,c]=(0,_.useState)(`1d`),[l,u]=(0,_.useState)(`12`),[d,f]=(0,_.useState)(``),[p,m]=(0,_.useState)(``),[h,g]=(0,_.useState)(!1),[v,y]=(0,_.useState)(!1),b=ct(s,l),ee=s===`permanent`||b!=null&&b>0,te=a.trim()!==``&&d.trim()!==``&&ee&&(!h||v);return(0,T.jsxs)(k,{title:`Ban a player`,description:`Matching players are disconnected now and refused when they try to join.`,confirmLabel:`Ban`,canConfirm:te,onConfirm:async()=>{let i={kind:r,value:a.trim(),durationSeconds:b,reason:d.trim(),note:p.trim(),confirmSharedAddress:v};try{let r=await w.send(`POST`,`bans`,i);t(`Banned `+r.value+(r.expiresAt==null?` permanently.`:` until `+Ve(r.expiresAt,n)+`.`)),e.onCreated?.(r)}catch(e){throw C(e).detail===rt&&g(!0),e}},onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Ban by`,children:(0,T.jsxs)(`select`,{className:`select`,value:r,onChange:e=>{i(e.target.value),g(!1)},children:[(0,T.jsx)(`option`,{value:`user`,children:`User id`}),(0,T.jsx)(`option`,{value:`address`,children:`Address`}),(0,T.jsx)(`option`,{value:`network`,children:`Network (CIDR)`})]})}),(0,T.jsx)(O,{label:ot[r].label,children:(0,T.jsx)(`input`,{className:`input mono`,value:a,onChange:e=>{o(e.target.value),g(!1),y(!1)},placeholder:ot[r].placeholder,spellCheck:!1})})]}),(0,T.jsxs)(`fieldset`,{className:`choice-group`,children:[(0,T.jsx)(`legend`,{children:`Duration`}),at.map(e=>(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`radio`,name:`ban-duration`,value:e.value,checked:s===e.value,onChange:()=>c(e.value)}),e.label]},e.value))]}),s===`custom`&&(0,T.jsx)(O,{label:`Hours`,error:ee?null:`Use a positive number of hours.`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`decimal`,value:l,onChange:e=>u(e.target.value)})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Reason`,hint:`Kept with the ban and in the audit log.`,children:(0,T.jsx)(`input`,{className:`input`,value:d,onChange:e=>f(e.target.value),maxLength:300,placeholder:`Cheating`})}),(0,T.jsx)(O,{label:`Note`,hint:`Optional, for other moderators.`,children:(0,T.jsx)(`input`,{className:`input`,value:p,onChange:e=>m(e.target.value),maxLength:1e3})})]}),h&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`This address may be shared by many players`}),(0,T.jsx)(`span`,{children:`It looks like a proxy or NAT in front of several live players. Banning it refuses all of them.`}),(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:v,onChange:e=>y(e.target.checked)}),(0,T.jsx)(`span`,{children:`Ban it anyway`})]})]})]})]})}function ct(e,t){if(e===`custom`){let e=Number(t);return Number.isFinite(e)&&e>0?Math.round(e*it):null}return at.find(t=>t.value===e)?.seconds??null}var lt=[{section:``,label:`Overview`,icon:`overview`,group:`Fleet`,permission:`fleet.view`},{section:`instances`,label:`Instances`,icon:`instances`,group:`Fleet`,permission:`fleet.view`},{section:`maintenance`,label:`Maintenance`,icon:`maintenance`,group:`Fleet`,permission:`fleet.view`},{section:`sessions`,label:`Sessions`,icon:`sessions`,group:`Fleet`,permission:`sessions.view`},{section:`dedicated`,label:`Dedicated`,icon:`dedicated`,group:`Fleet`,permission:`dedicated.view`},{section:`metrics`,label:`Metrics`,icon:`metrics`,group:`Fleet`,permission:`metrics.view`},{section:`cloud`,label:`Colyseus Cloud`,navigationLabel:`Cloud`,icon:`cloud`,group:`Fleet`,permission:`cloud.view`,feature:`colyseusCloud`},{section:`alerts`,label:`Alerts`,icon:`alerts`,group:`Fleet`,permission:`alerts.view`},{section:`players`,label:`Players`,icon:`players`,group:`Players`,permission:`players.view`},{section:`bans`,label:`Bans`,icon:`bans`,group:`Players`,permission:`bans.view`},{section:`leaderboards`,label:`Leaderboards`,icon:`trophy`,group:`Players`,permission:`leaderboards.view`},{section:`logs`,label:`Logs`,icon:`logs`,group:`Server`,permission:`logs.view`},{section:`config`,label:`Configuration`,icon:`config`,group:`Server`,permission:`config.view`},{section:`auth-tools`,label:`Auth tools`,icon:`authTools`,group:`Server`,permission:`auth.view`},{section:`extensions`,label:`Extensions`,icon:`extensions`,group:`Server`,permission:null},{section:`docs`,label:`Documentation`,icon:`docs`,group:`Server`,permission:null},{section:`users`,label:`Users`,icon:`users`,group:`Access`,permission:`users.view`},{section:`api-keys`,label:`API keys`,icon:`key`,group:`Access`,permission:`apiKeys.manage`},{section:`audit`,label:`Audit log`,icon:`audit`,group:`Access`,permission:`audit.view`},{section:`account`,label:`Your account`,icon:`account`,group:`Account`,permission:null}],ut=[`Fleet`,`Players`,`Server`,`Access`,`Account`];function dt(e,t,n){return e.permission!=null&&!t(e.permission)?!1:e.feature==null||n[e.feature]!==`off`}var ft={o:[],s:[`sessions`],p:[`players`],l:[`logs`]};function pt(e,t){let n=(e.label+` `+e.keywords).toLowerCase();return t.toLowerCase().split(/\s+/).filter(e=>e!==``).every(e=>n.includes(e))}function mt(e,t){let n=t.trim().toLowerCase(),r=e.filter(e=>pt(e,n)),i=r.filter(e=>n!==``&&e.label.toLowerCase().startsWith(n)),a=r.filter(e=>!i.includes(e));return[...i,...a]}function ht(e,t,n){return e!==`g`||t>1500?null:ft[n.toLowerCase()]??null}function gt(e){let t=e.startsWith(`#`)?e.slice(1):e,n=t.indexOf(`?`),r=n===-1?t:t.slice(0,n),i=n===-1?``:t.slice(n+1);return{path:r.split(`/`).filter(e=>e!==``).map(vt),query:new URLSearchParams(i)}}function P(e,t){let n=e.map(e=>encodeURIComponent(e)).join(`/`),r=new URLSearchParams;for(let[e,n]of Object.entries(t??{}))n!==``&&r.set(e,n);let i=r.toString();return`#/`+n+(i===``?``:`?`+i)}function _t(e){let t={};return e.forEach((e,n)=>{t[n]=e}),t}function vt(e){try{return decodeURIComponent(e)}catch{return e}}var yt=new Set;function bt(e){return yt.add(e),window.addEventListener(`hashchange`,e),()=>{yt.delete(e),window.removeEventListener(`hashchange`,e)}}function xt(){return window.location.hash}function St(){return gt((0,_.useSyncExternalStore)(bt,xt))}function Ct(e,t){window.location.hash=P(e,t)}function wt(e){if(window.location.hash!==e){window.history.replaceState(window.history.state,``,e);for(let e of yt)e()}}function Tt(e){let t=gt(window.location.hash),n={..._t(t.query),...e};wt(P(t.path,n))}var Et=2,Dt=3,Ot=/^\s*(```|~~~)\s*([\w+-]*)/,kt=/^(#{1,6})\s+(.*?)\s*#*\s*$/,At=/^(\s*)([-*+]|\d+[.)])\s+(.*)$/,jt=/^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/,Mt=/^\s*([-*_])(\s*\1){2,}\s*$/,Nt=/(`+)([^`]+?)\1|!?\[([^\]]*)\]\(([^)\s]+)(?:\s+"[^"]*")?\)|\*\*([^*]+?)\*\*|__([^_]+?)__|\*([^*\s][^*]*?)\*|\b_([^_\s][^_]*?)_\b/g;function Pt(e){let t=e.replace(/\r\n?/g,`
10
+ `).split(`
11
+ `),n=[],r=new Map,i=0;for(;i<t.length;){let e=t[i];if(e.trim()===``){i+=1;continue}let a=e.match(Ot);if(a!=null){i=zt(t,i,a,n);continue}let o=e.match(kt);o==null?Mt.test(e)?(n.push({kind:`rule`}),i+=1):i=Bt(t,i)?Vt(t,i,n):At.test(e)?Ut(t,i,n):e.trimStart().startsWith(`>`)?Wt(t,i,n):Gt(t,i,n):(n.push({kind:`heading`,level:o[1].length,text:o[2],anchor:Rt(It(o[2]),r)}),i+=1)}return n}function Ft(e){let t=[],n=0;for(let r of e.matchAll(Nt)){let i=r.index??0;i>n&&t.push({kind:`text`,text:e.slice(n,i)}),t.push(Lt(r)),n=i+r[0].length}return n<e.length&&t.push({kind:`text`,text:e.slice(n)}),t}function It(e){return Ft(e).map(e=>e.text).join(``).trim().toLowerCase().replace(/[^\p{L}\p{N}\s_-]/gu,``).replace(/\s/g,`-`)}function Lt(e){return e[2]==null?e[4]==null?e[5]!=null||e[6]!=null?{kind:`strong`,text:e[5]??e[6]}:{kind:`emphasis`,text:e[7]??e[8]}:{kind:`link`,text:e[3]===``?e[4]:e[3],href:e[4]}:{kind:`code`,text:e[2].trim()}}function Rt(e,t){let n=t.get(e)??0;return t.set(e,n+1),n===0?e:e+`-`+n}function zt(e,t,n,r){let i=[],a=t+1;for(;a<e.length&&!e[a].trimStart().startsWith(n[1]);)i.push(e[a]),a+=1;return r.push({kind:`code`,language:n[2],text:i.join(`
12
+ `)}),a+1}function Bt(e,t){let n=e[t+1];return e[t].includes(`|`)&&n!=null&&jt.test(n)&&n.includes(`-`)}function Vt(e,t,n){let r=Ht(e[t]),i=[],a=t+2;for(;a<e.length&&e[a].trim()!==``&&e[a].includes(`|`);)i.push(Ht(e[a])),a+=1;return n.push({kind:`table`,header:r,rows:i}),a}function Ht(e){let t=[],n=``,r=!1,i=e.trim().replace(/^\|/,``).replace(/\|$/,``);for(let e=0;e<i.length;e++){let a=i[e];a===`\\`&&i[e+1]===`|`?(n+=`|`,e+=1):(a==="`"&&(r=!r),a===`|`&&!r?(t.push(n.trim()),n=``):n+=a)}return t.push(n.trim()),t}function Ut(e,t,n){let r=e[t].match(At),i=/\d/.test(r[2]),a=r[1].length,o=[],s=t;for(;s<e.length&&e[s].trim()!==``;){let t=e[s],n=t.match(At);if(n!=null){let e=Math.max(0,n[1].length-a),t=Math.min(Dt,Math.floor(e/Et));if(t===0&&/\d/.test(n[2])!==i)break;o.push({text:n[3],depth:t})}else if(/^\s/.test(t)&&o.length>0)o[o.length-1].text+=` `+t.trim();else break;s+=1}return n.push({kind:`list`,ordered:i,items:o}),s}function Wt(e,t,n){let r=[],i=t;for(;i<e.length&&e[i].trimStart().startsWith(`>`);)r.push(e[i].trimStart().replace(/^>\s?/,``)),i+=1;return n.push({kind:`quote`,text:r.join(` `).trim()}),i}function Gt(e,t,n){let r=[e[t].trim()],i=t+1;for(;i<e.length&&e[i].trim()!==``&&!Kt(e,i);)r.push(e[i].trim()),i+=1;return n.push({kind:`paragraph`,text:r.join(` `)}),i}function Kt(e,t){let n=e[t];return Ot.test(n)||kt.test(n)||At.test(n)||n.trimStart().startsWith(`>`)||Bt(e,t)}var qt=[`README.md`,`DEPLOY.md`,`CUSTOM.md`],Jt=/^(https?:|mailto:)/i,Yt=6;function F(e){return(0,T.jsx)(`article`,{className:`markdown`,children:e.blocks.map((t,n)=>(0,T.jsx)(Xt,{block:t,documentName:e.documentName,targetAnchor:e.targetAnchor},n))})}function Xt(e){let{block:t,documentName:n}=e;if(t.kind===`heading`)return(0,T.jsx)(Zt,{level:t.level,anchor:t.anchor,isTarget:t.anchor===e.targetAnchor,children:Qt(t.text,n)});if(t.kind===`paragraph`)return(0,T.jsx)(`p`,{children:Qt(t.text,n)});if(t.kind===`quote`)return(0,T.jsx)(`blockquote`,{children:Qt(t.text,n)});if(t.kind===`rule`)return(0,T.jsx)(`hr`,{});if(t.kind===`code`)return(0,T.jsx)(`pre`,{children:(0,T.jsx)(`code`,{children:t.text})});if(t.kind===`table`)return(0,T.jsx)(`div`,{className:`table-scroll`,children:(0,T.jsxs)(`table`,{children:[(0,T.jsx)(`thead`,{children:(0,T.jsx)(`tr`,{children:t.header.map((e,t)=>(0,T.jsx)(`th`,{scope:`col`,children:Qt(e,n)},t))})}),(0,T.jsx)(`tbody`,{children:t.rows.map((e,t)=>(0,T.jsx)(`tr`,{children:e.map((e,t)=>(0,T.jsx)(`td`,{children:Qt(e,n)},t))},t))})]})});let r=t.items.map((e,t)=>(0,T.jsx)(`li`,{className:e.depth===0?void 0:`markdown__item--depth-`+e.depth,children:Qt(e.text,n)},t));return t.ordered?(0,T.jsx)(`ol`,{children:r}):(0,T.jsx)(`ul`,{children:r})}function Zt(e){let t=e.isTarget?`markdown__heading--target`:void 0,n=Math.min(Yt,Math.max(1,e.level));return n===1?(0,T.jsx)(`h1`,{id:e.anchor,className:t,children:e.children}):n===2?(0,T.jsx)(`h2`,{id:e.anchor,className:t,children:e.children}):n===3?(0,T.jsx)(`h3`,{id:e.anchor,className:t,children:e.children}):n===4?(0,T.jsx)(`h4`,{id:e.anchor,className:t,children:e.children}):n===5?(0,T.jsx)(`h5`,{id:e.anchor,className:t,children:e.children}):(0,T.jsx)(`h6`,{id:e.anchor,className:t,children:e.children})}function Qt(e,t){return Ft(e).map((e,n)=>e.kind===`code`?(0,T.jsx)(`code`,{children:e.text},n):e.kind===`strong`?(0,T.jsx)(`strong`,{children:e.text},n):e.kind===`emphasis`?(0,T.jsx)(`em`,{children:e.text},n):e.kind===`link`?(0,T.jsx)($t,{href:e.href,documentName:t,children:e.text},n):e.text)}function $t(e){if(Jt.test(e.href))return(0,T.jsx)(`a`,{href:e.href,target:`_blank`,rel:`noreferrer noopener`,children:e.children});let t=en(e.href,e.documentName);return t==null?(0,T.jsx)(`span`,{children:e.children}):(0,T.jsx)(`a`,{href:t,children:e.children})}function en(e,t){let n=e.indexOf(`#`),r=(n===-1?e:e.slice(0,n)).replace(/^\.\//,``),i=n===-1?``:It(e.slice(n+1)),a=r===``?t:r;return qt.includes(a)?P([`docs`,a],{section:i}):null}var tn=250,nn=5,rn=[`Actions`,`Pages`,`Sessions`,`Players`,`Docs`],an={"":`home dashboard fleet`,instances:`servers processes drain`,maintenance:`windows rollouts rolling update schedule`,sessions:`rooms games`,players:`users kick`,bans:`block`,dedicated:`scenes server mode`,metrics:`charts graphs`,cloud:`colyseus hosting deploys billing egress`,logs:`tail errors`,config:`configuration settings options`,"auth-tools":`token jwt jwks`,alerts:`rules channels pagerduty slack`,extensions:`custom actions panels`,docs:`help readme`,users:`admins accounts roles`,"api-keys":`tokens bearer`,audit:`history security log`,account:`password passkeys recovery profile`},on={"":`g o`,sessions:`g s`,players:`g p`,logs:`g l`};function sn(e){let{hasPermission:t,session:n}=M(),r=(0,_.useRef)(null),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(0),c=un(i,t(`sessions.view`));(0,_.useEffect)(()=>{let e=r.current;return e!=null&&!e.open&&e.showModal(),()=>e?.close()},[]);let l=t=>{e.onClose(),t()},u=[...mt((0,_.useMemo)(()=>dn(t,e.onAction,n.features),[t,e.onAction,n.features]),i),...fn(i,c,t(`sessions.view`),t(`players.view`))],d=rn.flatMap(e=>u.filter(t=>t.group===e)),f=Math.min(o,Math.max(0,d.length-1));return(0,_.useEffect)(()=>{document.getElementById(`palette-option-`+f)?.scrollIntoView({block:`nearest`})},[f]),(0,T.jsxs)(`dialog`,{ref:r,className:`dialog palette`,"aria-label":`Go to`,onCancel:t=>{t.preventDefault(),e.onClose()},children:[(0,T.jsxs)(`div`,{className:`palette__input-row`,children:[(0,T.jsx)(E,{name:`search`}),(0,T.jsx)(`input`,{className:`palette__input`,value:i,onChange:e=>{a(e.target.value),s(0)},onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;s((f+t+d.length)%Math.max(1,d.length))}e.key===`Enter`&&d[f]!=null&&(e.preventDefault(),l(d[f].run))},placeholder:`Go to a page, session, player or action…`,"aria-label":`Search the console`,role:`combobox`,"aria-expanded":`true`,"aria-controls":`palette-options`,"aria-activedescendant":d.length>0?`palette-option-`+f:void 0,autoFocus:!0,spellCheck:!1,autoComplete:`off`}),(0,T.jsx)(`span`,{className:`kbd`,children:`Esc`})]}),(0,T.jsxs)(`ul`,{className:`palette__list`,id:`palette-options`,role:`listbox`,"aria-label":`Results`,children:[d.length===0&&(0,T.jsxs)(`li`,{className:`palette__group`,children:[`Nothing matches “`,i,`”`]}),d.map((e,t)=>(0,T.jsx)(cn,{entry:e,index:t,isSelected:t===f,showsGroup:t===0||d[t-1].group!==e.group,onRun:()=>l(e.run),onHover:()=>s(t)},e.entryId))]}),(0,T.jsxs)(`div`,{className:`palette__footer`,children:[(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`kbd`,children:`↑`}),` `,(0,T.jsx)(`span`,{className:`kbd`,children:`↓`}),` to move`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`kbd`,children:`Enter`}),` to open`]}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`kbd`,children:`?`}),` for shortcuts`]})]})]})}function cn(e){let{entry:t}=e;return(0,T.jsxs)(T.Fragment,{children:[e.showsGroup&&(0,T.jsx)(`li`,{className:`palette__group`,role:`presentation`,children:t.group}),(0,T.jsx)(`li`,{role:`presentation`,children:(0,T.jsxs)(`button`,{type:`button`,id:`palette-option-`+e.index,role:`option`,"aria-selected":e.isSelected,className:`palette__option`,tabIndex:-1,onClick:e.onRun,onMouseMove:e.isSelected?void 0:e.onHover,children:[(0,T.jsx)(E,{name:t.icon}),(0,T.jsx)(`span`,{children:t.label}),t.hint!==``&&(0,T.jsx)(`span`,{className:`palette__option-hint`,children:t.hint})]})})]})}function ln(e){let t=(0,_.useRef)(e);t.current=e,(0,_.useEffect)(()=>{let e=null,n=0,r=r=>{if((r.ctrlKey||r.metaKey)&&r.key.toLowerCase()===`k`){r.preventDefault(),t.current.onTogglePalette();return}if(r.ctrlKey||r.metaKey||r.altKey||pn(r.target)||document.querySelector(`dialog[open]`)!=null)return;let i=ht(e,Date.now()-n,r.key);e=r.key.toLowerCase(),n=Date.now(),i==null?r.key===`?`&&(r.preventDefault(),t.current.onOpenHelp()):(r.preventDefault(),e=null,Ct(i))};return document.addEventListener(`keydown`,r),()=>document.removeEventListener(`keydown`,r)},[])}function un(e,t){let[n,r]=(0,_.useState)([]);return(0,_.useEffect)(()=>{let n=e.trim();if(!t||n===``){r([]);return}let i=!1,a=window.setTimeout(()=>{w.get(`sessions`,{search:n,page:1}).then(e=>{i||r(e.items.slice(0,nn))},()=>{i||r([])})},tn);return()=>{i=!0,window.clearTimeout(a)}},[e,t]),n}function dn(e,t,n){let r=lt.filter(t=>dt(t,e,n)).map(e=>({entryId:`page-`+e.section,group:`Pages`,icon:e.icon,label:e.label,keywords:an[e.section]??``,hint:on[e.section]??``,run:()=>Ct(e.section===``?[]:[e.section])})),i=qt.map(e=>({entryId:`docs-`+e,group:`Docs`,icon:`docs`,label:e,keywords:`documentation help`,hint:``,run:()=>Ct([`docs`,e])})),a=[];return e(`sessions.manage`)&&a.push({entryId:`action-notice`,group:`Actions`,icon:`notice`,label:`Send a notice to everyone`,keywords:`message announce broadcast`,hint:``,run:()=>t(`notice`)}),e(`fleet.manage`)&&a.push({entryId:`action-maintenance`,group:`Actions`,icon:`maintenance`,label:`Start maintenance`,keywords:`maintenance window rollout`,hint:``,run:()=>Ct([`maintenance`])}),e(`bans.manage`)&&a.push({entryId:`action-ban`,group:`Actions`,icon:`bans`,label:`New ban`,keywords:`ban block player address`,hint:``,run:()=>t(`ban`)}),a.push({entryId:`action-help`,group:`Actions`,icon:`help`,label:`Keyboard shortcuts and help`,keywords:`shortcuts keys help`,hint:`?`,run:()=>t(`help`)}),[...a,...r,...i]}function fn(e,t,n,r){let i=e.trim();if(i===``)return[];let a=t.map(e=>({entryId:`session-`+e.roomId,group:`Sessions`,icon:`sessions`,label:e.sessionName,keywords:``,hint:e.roomId+` · `+e.players+` players`,run:()=>Ct([`sessions`,e.roomId])})),o=t.some(e=>e.roomId===i);return n&&!o&&!i.includes(` `)&&a.push({entryId:`session-id`,group:`Sessions`,icon:`sessions`,label:`Open session with room id `+i,keywords:``,hint:``,run:()=>Ct([`sessions`,i])}),r&&a.push({entryId:`player-id`,group:`Players`,icon:`players`,label:`Open player with user id `+i,keywords:``,hint:``,run:()=>Ct([`players`,`detail`],{userId:i})}),a}function pn(e){return e instanceof HTMLElement?e.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName):!1}var mn={label:`The admin console`,documentName:`README.md`,section:`admin-console`},hn={label:`Deploying to production`,documentName:`DEPLOY.md`,section:``},gn={"":{title:`Overview`,paragraphs:[`The fleet at a glance: instances, players, sessions, refusals and the warnings that need you. Figures refresh every few seconds.`,`Each warning has a Fix button that opens the page where you fix it.`],links:[mn,hn]},instances:{title:`Instances`,paragraphs:[`Every server process of the fleet, with its load and health. Drain an instance to empty it before you stop it: players get a notice, new joins go elsewhere.`],links:[{label:`Scaling with Redis`,documentName:`README.md`,section:`scaling-with-redis`},hn]},maintenance:{title:`Maintenance`,paragraphs:[`Maintenance refuses new joins with your message while players already in a session keep playing. Schedule a window to switch it on and off by itself, with a warning to players first.`,`A rolling update drains instances one at a time and waits for each replacement, so the fleet keeps serving players. It needs at least two instances.`],links:[mn,{label:`Upgrading and protocol versions`,documentName:`README.md`,section:`upgrading-and-protocol-versions`}]},sessions:{title:`Sessions`,paragraphs:[`Every running game session. Open one to see its players, kick or notify them, lock it, or close it.`],links:[mn]},players:{title:`Players`,paragraphs:[`Search connected players by name, user id or address. A player's page shows their sessions, notes and past kicks.`],links:[mn]},bans:{title:`Bans`,paragraphs:[`Banned user ids, addresses and networks are refused when they join, on every instance. Bans can expire by themselves; export and import move them between servers.`],links:[mn]},leaderboards:{title:`Leaderboards`,paragraphs:[`Boards rank the scores your game submits at key stages (a match or level finish). Each board has a sort order, a keep rule (best, latest or a running total), optional splits by variant, and seasons that archive when they reset. Every change here is audited.`],links:[{label:`Leaderboards page`,documentName:`README.md`,section:`leaderboards-page`}]},dedicated:{title:`Dedicated sessions`,paragraphs:[`Server-mode sessions that run your game's scene and scripts on the server. Start, stop and restart them, and check their frame times.`],links:[{label:`Dedicated sessions`,documentName:`README.md`,section:`dedicated-sessions`},{label:`Writing server-side code`,documentName:`CUSTOM.md`,section:`1-dedicated-server-mode-sessions-your-gameplay-code-on-the-server`}]},metrics:{title:`Metrics`,paragraphs:[`Charts of players, sessions, traffic, refusals and process health over the last day, sampled every 15 seconds.`],links:[{label:`Metrics`,documentName:`README.md`,section:`metrics`}]},cloud:{title:`Colyseus Cloud`,paragraphs:[`Your Colyseus Cloud application as Colyseus reports it, read with a Cloud API token: status, host processes, 30-day history, traffic, deploys, host logs and billing. Live load, the last 24 hours and the server's own log lines stay on Instances, Metrics and Logs. One server process reads Colyseus for all of them, at Colyseus's own refresh rate.`],links:[{label:`Colyseus Cloud page`,documentName:`README.md`,section:`colyseus-cloud-page`}]},logs:{title:`Logs`,paragraphs:[`The server log, live. Filter by level, session, player or text, and turn up the level for a while to debug; it goes back by itself.`],links:[{label:`Troubleshooting`,documentName:`README.md`,section:`troubleshooting`}]},config:{title:`Configuration`,paragraphs:[`Every option with where its value comes from. Options set by an environment variable or a flag are locked; the live-editable ones can be changed here without a restart.`],links:[{label:`Configuration`,documentName:`README.md`,section:`configuration`}]},"auth-tools":{title:`Auth tools`,paragraphs:[`Check how players are signed in: test a player token against the server's settings and reload the signing keys.`],links:[{label:`Enabling authentication`,documentName:`README.md`,section:`enabling-authentication`}]},alerts:{title:`Alerts`,paragraphs:[`Built-in rules watch the fleet. A rule that holds for its time fires once for the whole fleet and is posted to its channels: a webhook, Slack, Discord, Teams or PagerDuty.`,`Acknowledge an alert to show you are on it; silence a rule while you work on its cause.`],links:[mn]},audit:{title:`Audit log`,paragraphs:[`Every admin action with who did it, from where and whether it worked. Records are chained by hash: Verify chain proves none was changed or removed out of order.`,`Export the filtered records as CSV or JSON lines for your own archive.`],links:[mn]},users:{title:`Users`,paragraphs:[`The people who can sign in here. Each has a role and their own second factor. New users get a temporary password and set up their authenticator when they first sign in.`],links:[mn]},"api-keys":{title:`API keys`,paragraphs:[`Keys let scripts call the admin API with the permissions you choose. The secret is shown once; keep it in your secret store and revoke it when it is no longer used.`],links:[mn]},extensions:{title:`Extensions`,paragraphs:[`Custom actions and read-only panels your developers added from code. Actions also appear on the instance, session or player they act on.`],links:[{label:`Custom admin actions and panels`,documentName:`CUSTOM.md`,section:`custom-admin-actions-panels-and-admin-hooks`}]},docs:{title:`Documentation`,paragraphs:[`The package's README, deployment guide and custom-code guide, as shipped with this server version.`],links:[mn,hn,{label:`Running your own code`,documentName:`CUSTOM.md`,section:``}]},account:{title:`Your account`,paragraphs:[`Change your password, make new recovery codes, add a passkey, end your other sessions, and choose the theme and time zone.`],links:[mn]}},_n=[{keys:[`Ctrl/⌘+K`],action:`Go to a page, session, player or action`},{keys:[`g`,`o`],action:`Overview`},{keys:[`g`,`s`],action:`Sessions`},{keys:[`g`,`p`],action:`Players`},{keys:[`g`,`l`],action:`Logs`},{keys:[`?`],action:`This help`},{keys:[`Esc`],action:`Close a dialog or panel`}];function vn(e){let t=(0,_.useRef)(null);(0,_.useEffect)(()=>{let e=t.current;return e!=null&&!e.open&&e.showModal(),()=>e?.close()},[]);let n=gn[e.section]??gn[``];return(0,T.jsx)(`dialog`,{ref:t,className:`drawer`,"aria-label":`Help: `+n.title,onCancel:t=>{t.preventDefault(),e.onClose()},children:(0,T.jsxs)(`div`,{className:`dialog__form help-panel__body`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsx)(`h2`,{className:`dialog__title`,children:(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(E,{name:`help`}),n.title]})}),(0,T.jsx)(`button`,{type:`button`,className:`icon-button`,onClick:e.onClose,"aria-label":`Close help`,children:(0,T.jsx)(E,{name:`close`})})]}),n.paragraphs.map(e=>(0,T.jsx)(`p`,{children:e},e)),(0,T.jsxs)(`section`,{className:`stack`,"aria-labelledby":`help-read-more`,children:[(0,T.jsx)(`h3`,{id:`help-read-more`,className:`small muted`,children:`Read more`}),(0,T.jsx)(`ul`,{className:`help-panel__links`,children:n.links.map(t=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`a`,{href:P([`docs`,t.documentName],{section:t.section}),onClick:e.onClose,children:[(0,T.jsx)(E,{name:`docs`}),` `,t.label]}),(0,T.jsxs)(`span`,{className:`small muted`,children:[` · `,t.documentName]})]},t.documentName+t.section))})]}),(0,T.jsxs)(`section`,{className:`stack`,"aria-labelledby":`help-shortcuts`,children:[(0,T.jsx)(`h3`,{id:`help-shortcuts`,className:`small muted`,children:`Keyboard shortcuts`}),(0,T.jsx)(`dl`,{className:`shortcut-list`,children:_n.map(e=>[(0,T.jsx)(`dt`,{children:e.keys.map(e=>(0,T.jsx)(`span`,{className:`kbd`,children:e},e))},e.action+`-keys`),(0,T.jsx)(`dd`,{children:e.action},e.action+`-action`)])})]})]})})}var yn=[`info`,`warning`,`critical`];function bn(e){let t=N(),[n,r]=(0,_.useState)(``),[i,a]=(0,_.useState)(`info`),[o,s]=(0,_.useState)(``),c=o.trim()===``?null:Number(o),l=c==null||Number.isInteger(c)&&c>0;return(0,T.jsxs)(k,{title:`Send a notice`,description:`Players see it as a banner in the game. It goes to `+e.audienceText+`.`,confirmLabel:`Send notice`,tone:`primary`,typedConfirmation:e.target.scope===`fleet`?`fleet`:void 0,canConfirm:n.trim()!==``&&l,onConfirm:async()=>{let r={...e.target,text:n.trim(),severity:i,countdownSeconds:c},a=await w.send(`POST`,`notices`,r);t(`Notice sent to `+a.targetedPlayers+(a.targetedPlayers===1?` player.`:` players.`))},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`Message`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:n,onChange:e=>r(e.target.value),maxLength:500,placeholder:`The server restarts in 5 minutes for an update.`,autoFocus:!0})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Severity`,children:(0,T.jsx)(`select`,{className:`select`,value:i,onChange:e=>a(e.target.value),children:yn.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})}),(0,T.jsx)(O,{label:`Countdown (seconds)`,hint:`Optional: the banner counts down.`,error:l?null:`Use a whole number of seconds.`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:o,onChange:e=>s(e.target.value),placeholder:`none`})})]})]})}function xn(e){let{hasPermission:t}=M();return t(e.permission)?(0,T.jsx)(T.Fragment,{children:e.children}):(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsx)(Te,{title:`You do not have access to this page (needs `+e.permission+`)`,children:`Ask an owner or admin for a role that includes it.`})})})}function Sn(e){let{hasPermission:t,session:n}=M(),r=lt.filter(e=>dt(e,t,n.features));return(0,T.jsxs)(`nav`,{className:`side-navigation`,id:`console-navigation`,"aria-label":`Console`,children:[(0,T.jsxs)(`a`,{className:`brand`,href:`#/`,onClick:e.onNavigate,children:[(0,T.jsx)(D,{}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`brand__name`,children:`Game Server`}),(0,T.jsx)(`br`,{}),(0,T.jsx)(`span`,{className:`brand__sub`,children:`Admin console`})]})]}),ut.map(t=>{let n=r.filter(e=>e.group===t);return n.length===0?null:(0,T.jsxs)(`div`,{className:`navigation-group`,children:[(0,T.jsx)(`span`,{className:`navigation-group__title`,children:t}),n.map(t=>(0,T.jsxs)(`a`,{className:`navigation-link`,href:P(t.section===``?[]:[t.section]),"aria-current":t.section===e.currentSection?`page`:void 0,onClick:e.onNavigate,children:[(0,T.jsx)(E,{name:t.icon}),t.navigationLabel??t.label]},t.section))]},t)}),(0,T.jsx)(`div`,{className:`side-navigation__footer`,children:`Babylon Game Server`})]})}function Cn(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(!1),[s,c]=(0,_.useState)(null),l=async()=>{let n=t.trim();if(!(n===``||a)){o(!0),c(null);try{let t=r?{recoveryCode:n}:{code:n},i=await w.send(`POST`,`auth/step-up`,t);e.onConfirmed(i)}catch(e){c(C(e).message),o(!1)}}};return(0,T.jsxs)(Ee,{title:`Confirm it is you`,description:`This action needs a fresh code from your authenticator app.`,onClose:e.onCancel,onSubmit:()=>void l(),children:[r?(0,T.jsx)(O,{label:`Recovery code`,hint:`One of the codes you saved when you set up your authenticator. Each works once.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:t,onChange:e=>n(e.target.value),autoComplete:`off`,spellCheck:!1,placeholder:`xxxx-xxxx`,autoFocus:!0})}):(0,T.jsx)(O,{label:`Authenticator code`,children:(0,T.jsx)(`input`,{className:`input input--code`,value:t,onChange:e=>n(e.target.value.replace(/\D/g,``)),inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:6,placeholder:`000000`,autoFocus:!0})}),(0,T.jsx)(`button`,{type:`button`,className:`link-button`,onClick:()=>{i(!r),n(``)},children:r?`Use an authenticator code instead`:`Use a recovery code instead`}),s!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:s})}),(0,T.jsxs)(`div`,{className:`form-actions`,children:[(0,T.jsx)(`button`,{type:`button`,className:`button`,onClick:e.onCancel,disabled:a,children:`Cancel`}),(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary`,disabled:a||t.trim()===``,children:a?`Checking…`:`Confirm`})]})]})}var wn=/Mac|iPhone|iPad/.test(navigator.userAgent)?`⌘`:`Ctrl+`,Tn={system:`light`,light:`dark`,dark:`system`},En={system:`system`,light:`sun`,dark:`moon`},Dn={system:`System`,light:`Light`,dark:`Dark`};function On(e){let{preferences:t,savePreferences:n}=M(),r=N(),i=e=>{n(e).catch(e=>r(`Could not save your preference: `+C(e).message,`error`))};return(0,T.jsxs)(`header`,{className:`top-bar`,children:[(0,T.jsx)(`button`,{type:`button`,className:`icon-button top-bar__menu-button`,"aria-expanded":e.isNavigationOpen,"aria-controls":`console-navigation`,"aria-label":e.isNavigationOpen?`Close navigation`:`Open navigation`,onClick:e.onToggleNavigation,children:(0,T.jsx)(E,{name:e.isNavigationOpen?`close`:`menu`})}),(0,T.jsxs)(`a`,{className:`brand top-bar__brand`,href:`#/`,children:[(0,T.jsx)(D,{}),(0,T.jsx)(`span`,{className:`brand__name`,children:`Game Server`})]}),(0,T.jsx)(`div`,{className:`top-bar__spacer`}),(0,T.jsxs)(`button`,{type:`button`,className:`top-bar__search`,onClick:e.onOpenPalette,"aria-label":`Go to a page, session, player or action (Ctrl or Command K)`,children:[(0,T.jsx)(E,{name:`search`}),(0,T.jsx)(`span`,{className:`top-bar__search-text`,children:`Go to…`}),(0,T.jsxs)(`span`,{className:`kbd`,"aria-hidden":`true`,children:[wn,`K`]})]}),(0,T.jsx)(`button`,{type:`button`,className:`icon-button`,title:`Help for this page (?)`,"aria-label":`Help for this page`,onClick:e.onOpenHelp,children:(0,T.jsx)(E,{name:`help`})}),(0,T.jsxs)(`div`,{className:`segmented top-bar__time-zone`,role:`group`,"aria-label":`Show times in`,children:[(0,T.jsx)(`button`,{type:`button`,"aria-pressed":t.timeZone===`local`,onClick:()=>i({...t,timeZone:`local`}),children:`Local`}),(0,T.jsx)(`button`,{type:`button`,"aria-pressed":t.timeZone===`utc`,onClick:()=>i({...t,timeZone:`utc`}),children:`UTC`})]}),(0,T.jsx)(`button`,{type:`button`,className:`icon-button`,title:`Theme: `+Dn[t.theme],"aria-label":`Theme: `+Dn[t.theme]+`. Switch to `+Dn[Tn[t.theme]],onClick:()=>i({...t,theme:Tn[t.theme]}),children:(0,T.jsx)(E,{name:En[t.theme]})}),(0,T.jsx)(kn,{})]})}function kn(){let{session:e,signOut:t}=M(),[n,r]=(0,_.useState)(!1),i=(0,_.useRef)(null);(0,_.useEffect)(()=>{if(!n)return;let e=e=>{i.current!=null&&!i.current.contains(e.target)&&r(!1)},t=e=>{e.key===`Escape`&&r(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[n]);let a=An(e.user.displayName||e.user.username);return(0,T.jsxs)(`div`,{className:`user-menu`,ref:i,children:[(0,T.jsxs)(`button`,{type:`button`,className:`user-menu__button`,"aria-haspopup":`menu`,"aria-expanded":n,onClick:()=>r(!n),children:[(0,T.jsx)(`span`,{className:`avatar`,"aria-hidden":`true`,children:a}),(0,T.jsx)(`span`,{className:`user-menu__name`,children:e.user.displayName}),(0,T.jsx)(E,{name:`chevronDown`})]}),n&&(0,T.jsxs)(`div`,{className:`menu`,role:`menu`,children:[(0,T.jsxs)(`div`,{className:`menu__header`,children:[(0,T.jsx)(`div`,{children:(0,T.jsx)(`strong`,{children:e.user.displayName})}),(0,T.jsxs)(`div`,{className:`small muted`,children:[e.user.username,` · `,e.user.role]})]}),(0,T.jsxs)(`a`,{className:`menu__item`,role:`menuitem`,href:`#/account`,onClick:()=>r(!1),children:[(0,T.jsx)(E,{name:`account`}),`Your account`]}),(0,T.jsxs)(`button`,{type:`button`,className:`menu__item`,role:`menuitem`,onClick:()=>void t(!1),children:[(0,T.jsx)(E,{name:`signOut`}),`Sign out`]}),(0,T.jsxs)(`button`,{type:`button`,className:`menu__item`,role:`menuitem`,onClick:()=>void t(!0),children:[(0,T.jsx)(E,{name:`globe`}),`Sign out everywhere`]})]})]})}function An(e){let t=e.trim().split(/\s+/).filter(e=>e!==``).slice(0,2).map(e=>e.charAt(0).toUpperCase()).join(``);return t===``?`?`:t}function I(e,t,n){let[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(0);return(0,_.useEffect)(()=>{let n=!1,r=!1,a=null,s=()=>{r=!0,a!=null&&window.clearInterval(a),a=null},c=async()=>{if(!(r||document.visibilityState===`hidden`))try{let t=await e();n||(i(t),o(null))}catch(e){if(n)return;let t=C(e);he(t.status)&&s(),o(t)}};c(),a=window.setInterval(()=>void c(),t);let l=()=>{document.visibilityState===`visible`&&c()};return document.addEventListener(`visibilitychange`,l),()=>{n=!0,a!=null&&window.clearInterval(a),document.removeEventListener(`visibilitychange`,l)}},[...n,s,t]),{data:r,error:a,refresh:()=>c(e=>e+1)}}function jn(e,t){let[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(null),[o,s]=(0,_.useState)(0);return(0,_.useEffect)(()=>{let t=!1;return e().then(e=>{t||(r(e),a(null))},e=>{t||a(C(e))}),()=>{t=!0}},[...t,o]),{data:n,error:i,refresh:()=>s(e=>e+1)}}function L(e){if(e.rows.length===0&&e.emptyState!=null)return(0,T.jsx)(T.Fragment,{children:e.emptyState});let t=e.cardBelowWidth===!1?`data-table`:`data-table data-table--cards`;return(0,T.jsx)(`div`,{className:`table-scroll`,children:(0,T.jsxs)(`table`,{className:t,children:[(0,T.jsx)(`caption`,{className:`visually-hidden`,children:e.caption}),(0,T.jsx)(`thead`,{children:(0,T.jsx)(`tr`,{children:e.columns.map(t=>(0,T.jsx)(`th`,{scope:`col`,className:Nn(t),children:t.isSortable===!0&&e.onSortChange!=null?(0,T.jsx)(Mn,{column:t,sort:e.sort??``,onSortChange:e.onSortChange}):t.header},t.key))})}),(0,T.jsx)(`tbody`,{children:e.rows.map(t=>(0,T.jsx)(`tr`,{children:e.columns.map(e=>(0,T.jsx)(`td`,{"data-label":e.header,className:Nn(e),children:e.render(t)},e.key))},e.rowKey(t)))})]})})}function Mn(e){let t=e.column.key,n=`none`;e.sort===t&&(n=`ascending`),e.sort===`-`+t&&(n=`descending`);let r=n===`ascending`?`-`+t:t;return(0,T.jsxs)(`button`,{type:`button`,className:`sort-button`,"aria-sort":n,onClick:()=>e.onSortChange(r),children:[e.column.header,(0,T.jsx)(E,{name:`chevronDown`,className:`sort-arrow`})]})}function Nn(e){return e.isActions===!0?`cell--actions`:e.isNumber===!0?`cell--number`:``}function Pn(e,t,n){if(t===``)return e;let r=t.startsWith(`-`),i=r?t.slice(1):t,a=r?-1:1;return[...e].sort((e,t)=>a*Fn(n(e,i),n(t,i)))}function Fn(e,t){return e==null&&t==null?0:e==null?1:t==null?-1:typeof e==`number`&&typeof t==`number`?e-t:String(e).localeCompare(String(t),`en`,{numeric:!0})}function In(e){let t=Math.max(1,Math.ceil(e.total/e.pageSize));if(e.total<=e.pageSize&&e.page<=1)return null;let n=Math.min(e.total,(e.page-1)*e.pageSize+1),r=Math.min(e.total,e.page*e.pageSize);return(0,T.jsxs)(`nav`,{className:`pagination`,"aria-label":`Pages`,children:[(0,T.jsxs)(`span`,{className:`muted`,children:[`Showing `,n,`–`,r,` of `,e.total]}),(0,T.jsxs)(`div`,{className:`row`,children:[(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,disabled:e.page<=1,onClick:()=>e.onPageChange(e.page-1),children:`Previous`}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`Page `,e.page,` of `,t]}),(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,disabled:e.page>=t,onClick:()=>e.onPageChange(e.page+1),children:`Next`})]})]})}function R(e){return(0,T.jsxs)(`header`,{className:`page-header`,children:[(0,T.jsxs)(`div`,{className:`page-header__text`,children:[e.eyebrow!=null&&(0,T.jsx)(`div`,{className:`page-header__eyebrow`,children:e.eyebrow}),(0,T.jsx)(`h1`,{children:e.title}),e.description!=null&&(0,T.jsx)(`p`,{className:`page-header__description`,children:e.description})]}),e.actions!=null&&(0,T.jsx)(`div`,{className:`page-header__actions`,children:e.actions})]})}var Ln=4;function Rn(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`).replace(/=+$/,``),n=(Ln-t.length%Ln)%Ln,r=atob(t+`=`.repeat(n)),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);return i}function zn(e){let t=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function Bn(){return window.isSecureContext&&typeof window.PublicKeyCredential==`function`&&navigator.credentials!=null}async function Vn(e){let t={challenge:Rn(e.challenge),rp:e.rp,user:{id:Rn(e.user.id),name:e.user.name,displayName:e.user.displayName},pubKeyCredParams:e.pubKeyCredParams,timeout:e.timeout,attestation:e.attestation,authenticatorSelection:e.authenticatorSelection,excludeCredentials:e.excludeCredentials.map(e=>({type:e.type,id:Rn(e.id)}))},n=await Wn(navigator.credentials.create({publicKey:t})),r=n.response;return{id:n.id,rawId:zn(n.rawId),type:`public-key`,response:{clientDataJSON:zn(r.clientDataJSON),attestationObject:zn(r.attestationObject)}}}async function Hn(e){let t={challenge:Rn(e.challenge),rpId:e.rpId,timeout:e.timeout,userVerification:e.userVerification,allowCredentials:e.allowCredentials.map(e=>({type:e.type,id:Rn(e.id)}))},n=await Wn(navigator.credentials.get({publicKey:t})),r=n.response;return{id:n.id,rawId:zn(n.rawId),type:`public-key`,response:{clientDataJSON:zn(r.clientDataJSON),authenticatorData:zn(r.authenticatorData),signature:zn(r.signature),userHandle:r.userHandle==null?null:zn(r.userHandle)}}}function Un(e){return e instanceof DOMException&&e.name===`NotAllowedError`?`The passkey prompt was cancelled or timed out.`:e instanceof DOMException&&e.name===`InvalidStateError`?`This authenticator already holds a passkey for this account.`:e instanceof Error?e.message:String(e)}async function Wn(e){let t=await e;if(!(t instanceof PublicKeyCredential))throw Error(`the browser returned no passkey`);return t}function z(e){return(0,T.jsxs)(`div`,{className:`empty-state`,children:[(0,T.jsx)(E,{name:e.icon??`info`,className:`empty-state__icon`}),(0,T.jsx)(`p`,{className:`empty-state__title`,children:e.title}),e.children!=null&&(0,T.jsx)(`p`,{children:e.children}),e.action]})}function B(e){let t=Ze();if(e.iso==null)return(0,T.jsx)(`span`,{className:`muted`,children:e.emptyText??`–`});let n=Ve(e.iso,`local`)+` local · `+Ve(e.iso,`utc`),r=e.isRelative===!0?ze(e.iso,Date.now()):Ve(e.iso,t);return(0,T.jsx)(`time`,{className:`nowrap`,dateTime:e.iso,title:n,children:r})}var Gn=60,Kn=[{pattern:/iPhone|iPad/,name:`iOS`},{pattern:/Android/,name:`Android`},{pattern:/Mac/,name:`macOS`},{pattern:/Windows/,name:`Windows`}];function qn(){let e=N(),t=jn(()=>w.get(`account/passkeys`),[]),[n,r]=(0,_.useState)(!1),[i,a]=(0,_.useState)(null),o=Bn();return(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`account-passkeys`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`account-passkeys`,children:`Passkeys`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Sign in with your device's fingerprint, face or PIN, or a security key, instead of typing a code.`})]}),o&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>r(!0),children:[(0,T.jsx)(E,{name:`plus`}),`Add a passkey`]})]}),!o&&(0,T.jsx)(`p`,{className:`muted panel__body`,children:`This browser cannot use passkeys here. Passkeys need HTTPS (or localhost) and a browser with WebAuthn.`}),t.error!=null&&t.data==null?(0,T.jsx)(Te,{title:`Could not load your passkeys`,onRetry:t.refresh,children:t.error.message}):(0,T.jsx)(L,{caption:`Your passkeys`,columns:[{key:`name`,header:`Passkey`,render:e=>(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(E,{name:`passkey`}),(0,T.jsx)(`strong`,{children:e.name})]})},{key:`created`,header:`Added`,render:e=>(0,T.jsx)(B,{iso:e.createdAt})},{key:`used`,header:`Last used`,render:e=>(0,T.jsx)(B,{iso:e.lastUsedAt,isRelative:!0,emptyText:`never`})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>a(e),children:[(0,T.jsx)(E,{name:`trash`}),`Remove`]})}],rows:t.data??[],rowKey:e=>e.passkeyId,emptyState:(0,T.jsx)(z,{title:`No passkeys yet`,icon:`passkey`,children:`Add one to sign in faster; your authenticator app keeps working too.`})}),n&&(0,T.jsx)(Jn,{onAdded:t.refresh,onClose:()=>r(!1)}),i!=null&&(0,T.jsx)(k,{title:`Remove the passkey `+i.name+`?`,description:`It no longer signs you in. You will confirm with your authenticator.`,confirmLabel:`Remove passkey`,onConfirm:async()=>{i!=null&&(await w.send(`DELETE`,`account/passkeys/`+encodeURIComponent(i.passkeyId)),e(`Removed the passkey `+i.name+`.`),t.refresh())},onClose:()=>a(null)})]})}function Jn(e){let t=N(),[n,r]=(0,_.useState)(Yn);return(0,T.jsx)(k,{title:`Add a passkey`,description:`You will confirm with your authenticator, then your browser asks for the passkey.`,confirmLabel:`Continue`,tone:`primary`,canConfirm:n.trim()!==``,onConfirm:async()=>{let r=await w.send(`POST`,`account/passkeys/options`),i;try{i={name:n.trim(),credential:await Vn(r)}}catch(e){throw Error(e instanceof DOMException?Un(e):C(e).message)}await w.send(`POST`,`account/passkeys`,i),t(`Added the passkey `+i.name+`.`),e.onAdded()},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Name`,hint:`So you can tell your passkeys apart, for example “Work laptop”.`,children:(0,T.jsx)(`input`,{className:`input`,value:n,onChange:e=>r(e.target.value),maxLength:Gn})})})}function Yn(){return`Passkey on `+(Kn.find(e=>e.pattern.test(navigator.userAgent))?.name??`this device`)}function Xn(e){let[t,n]=(0,_.useState)(!1),[r,i]=(0,_.useState)(!1);(0,_.useEffect)(()=>{if(!t)return;let e=window.setTimeout(()=>n(!1),x);return()=>window.clearTimeout(e)},[t]);let a=async()=>{try{await navigator.clipboard.writeText(e.text),i(!1),n(!0)}catch{i(!0)}},o=e.label??`Copy`;return t&&(o=`Copied`),r&&(o=`Copy failed: select the text`),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>void a(),"aria-live":`polite`,children:[(0,T.jsx)(E,{name:t?`check`:`copy`}),o]})}function Zn(e){let[t,n]=(0,_.useState)(!1),r=e.recoveryCodes.join(`
13
+ `);return(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsxs)(`div`,{className:`banner banner--warning`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`Save these recovery codes now`}),(0,T.jsx)(`span`,{children:`They are shown only once. Each one signs you in a single time if you lose your authenticator.`})]})]}),(0,T.jsx)(`div`,{className:`panel panel--flush`,children:(0,T.jsx)(`ul`,{className:`recovery-codes`,"aria-label":`Recovery codes`,children:e.recoveryCodes.map(e=>(0,T.jsx)(`li`,{children:e},e))})}),(0,T.jsxs)(`div`,{className:`row`,children:[(0,T.jsx)(Xn,{text:r,label:`Copy codes`}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>{let t=new Blob([r+`
14
+ `],{type:`text/plain`}),n=URL.createObjectURL(t),i=document.createElement(`a`);i.href=n,i.download=`game-server-recovery-codes-`+e.username+`.txt`,i.click(),URL.revokeObjectURL(n)},children:[(0,T.jsx)(E,{name:`download`}),`Download .txt`]})]}),(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>n(e.target.checked)}),(0,T.jsx)(`span`,{children:`I saved these codes somewhere safe`})]}),(0,T.jsx)(`button`,{type:`button`,className:`button button--primary button--block`,disabled:!t,onClick:e.onContinue,children:e.continueLabel??`Continue`})]})}function V(e){let t=[`badge`,`badge--`+(e.tone??`neutral`)];return e.isLive===!0&&t.push(`badge--pulse`),e.isPlain===!0&&t.push(`badge--plain`),(0,T.jsx)(`span`,{className:t.join(` `),children:e.children})}function Qn(e){return(0,T.jsxs)(`div`,{className:`auth-layout`,children:[(0,T.jsxs)(`aside`,{className:`auth-aside`,children:[(0,T.jsxs)(`svg`,{className:`auth-aside__grid`,"aria-hidden":`true`,focusable:`false`,children:[(0,T.jsx)(`defs`,{children:(0,T.jsx)(`pattern`,{id:`auth-grid`,width:`32`,height:`32`,patternUnits:`userSpaceOnUse`,children:(0,T.jsx)(`path`,{d:`M32 0H0V32`,fill:`none`,stroke:`currentColor`,strokeWidth:`1`})})}),(0,T.jsx)(`rect`,{width:`100%`,height:`100%`,fill:`url(#auth-grid)`})]}),(0,T.jsxs)(`div`,{className:`brand`,children:[(0,T.jsx)(D,{}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`brand__name`,children:`Babylon Game Server`}),(0,T.jsx)(`br`,{}),(0,T.jsx)(`span`,{className:`brand__sub`,children:`Admin console`})]})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`auth-aside__headline`,children:`Your servers, sessions and players in one place.`}),(0,T.jsx)(`p`,{className:`auth-aside__copy`,children:`Watch the fleet live, step in when a session needs you, and keep a record of every change.`})]}),(0,T.jsxs)(`div`,{className:`auth-aside__facts`,children:[(0,T.jsxs)(`span`,{className:`auth-aside__fact`,children:[(0,T.jsx)(E,{name:`shield`}),`Two-factor sign-in on every account`]}),(0,T.jsxs)(`span`,{className:`auth-aside__fact`,children:[(0,T.jsx)(E,{name:`history`}),`Every admin action is written to the audit log`]}),(0,T.jsxs)(`span`,{className:`auth-aside__fact`,children:[(0,T.jsx)(E,{name:`lock`}),`Served by your own server, nothing loaded from elsewhere`]})]})]}),(0,T.jsx)(`main`,{className:`auth-main`,children:(0,T.jsx)(`div`,{className:e.isWide===!0?`auth-card auth-card--wide`:`auth-card`,children:e.children})})]})}function $n(e){return(0,T.jsxs)(`div`,{className:`step-indicator`,children:[e.steps.map((t,n)=>(0,T.jsx)(`span`,{className:n<e.current?`step-indicator__dot step-indicator__dot--done`:`step-indicator__dot`},t)),(0,T.jsxs)(`span`,{children:[`Step `,e.current,` of `,e.steps.length,` · `,e.steps[e.current-1]]})]})}var er=c(o(((e,t)=>{var n=function(){var e=function(e,t){var r=e,a=n[t],p=null,m=0,h=null,g=[],v={},y=function(e,t){m=r*4+17,p=function(e){for(var t=Array(e),n=0;n<e;n+=1){t[n]=Array(e);for(var r=0;r<e;r+=1)t[n][r]=null}return t}(m),b(0,0),b(m-7,0),b(0,m-7),ne(),te(),x(e,t),r>=7&&re(e),h??=ae(r,a,g),ie(h,t)},b=function(e,t){for(var n=-1;n<=7;n+=1)if(!(e+n<=-1||m<=e+n))for(var r=-1;r<=7;r+=1)t+r<=-1||m<=t+r||(0<=n&&n<=6&&(r==0||r==6)||0<=r&&r<=6&&(n==0||n==6)||2<=n&&n<=4&&2<=r&&r<=4?p[e+n][t+r]=!0:p[e+n][t+r]=!1)},ee=function(){for(var e=0,t=0,n=0;n<8;n+=1){y(!0,n);var r=i.getLostPoint(v);(n==0||e>r)&&(e=r,t=n)}return t},te=function(){for(var e=8;e<m-8;e+=1)p[e][6]??(p[e][6]=e%2==0);for(var t=8;t<m-8;t+=1)p[6][t]??(p[6][t]=t%2==0)},ne=function(){for(var e=i.getPatternPosition(r),t=0;t<e.length;t+=1)for(var n=0;n<e.length;n+=1){var a=e[t],o=e[n];if(p[a][o]==null)for(var s=-2;s<=2;s+=1)for(var c=-2;c<=2;c+=1)s==-2||s==2||c==-2||c==2||s==0&&c==0?p[a+s][o+c]=!0:p[a+s][o+c]=!1}},re=function(e){for(var t=i.getBCHTypeNumber(r),n=0;n<18;n+=1){var a=!e&&(t>>n&1)==1;p[Math.floor(n/3)][n%3+m-8-3]=a}for(var n=0;n<18;n+=1){var a=!e&&(t>>n&1)==1;p[n%3+m-8-3][Math.floor(n/3)]=a}},x=function(e,t){for(var n=a<<3|t,r=i.getBCHTypeInfo(n),o=0;o<15;o+=1){var s=!e&&(r>>o&1)==1;o<6?p[o][8]=s:o<8?p[o+1][8]=s:p[m-15+o][8]=s}for(var o=0;o<15;o+=1){var s=!e&&(r>>o&1)==1;o<8?p[8][m-o-1]=s:o<9?p[8][15-o-1+1]=s:p[8][15-o-1]=s}p[m-8][8]=!e},ie=function(e,t){for(var n=-1,r=m-1,a=7,o=0,s=i.getMaskFunction(t),c=m-1;c>0;c-=2)for(c==6&&--c;;){for(var l=0;l<2;l+=1)if(p[r][c-l]==null){var u=!1;o<e.length&&(u=(e[o]>>>a&1)==1),s(r,c-l)&&(u=!u),p[r][c-l]=u,--a,a==-1&&(o+=1,a=7)}if(r+=n,r<0||m<=r){r-=n,n=-n;break}}},S=function(e,t){for(var n=0,r=0,a=0,s=Array(t.length),c=Array(t.length),l=0;l<t.length;l+=1){var u=t[l].dataCount,d=t[l].totalCount-u;r=Math.max(r,u),a=Math.max(a,d),s[l]=Array(u);for(var f=0;f<s[l].length;f+=1)s[l][f]=255&e.getBuffer()[f+n];n+=u;var p=i.getErrorCorrectPolynomial(d),m=o(s[l],p.getLength()-1).mod(p);c[l]=Array(p.getLength()-1);for(var f=0;f<c[l].length;f+=1){var h=f+m.getLength()-c[l].length;c[l][f]=h>=0?m.getAt(h):0}}for(var g=0,f=0;f<t.length;f+=1)g+=t[f].totalCount;for(var _=Array(g),v=0,f=0;f<r;f+=1)for(var l=0;l<t.length;l+=1)f<s[l].length&&(_[v]=s[l][f],v+=1);for(var f=0;f<a;f+=1)for(var l=0;l<t.length;l+=1)f<c[l].length&&(_[v]=c[l][f],v+=1);return _},ae=function(e,t,n){for(var r=s.getRSBlocks(e,t),a=c(),o=0;o<n.length;o+=1){var l=n[o];a.put(l.getMode(),4),a.put(l.getLength(),i.getLengthInBits(l.getMode(),e)),l.write(a)}for(var u=0,o=0;o<r.length;o+=1)u+=r[o].dataCount;if(a.getLengthInBits()>u*8)throw`code length overflow. (`+a.getLengthInBits()+`>`+u*8+`)`;for(a.getLengthInBits()+4<=u*8&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(!1);for(;!(a.getLengthInBits()>=u*8||(a.put(236,8),a.getLengthInBits()>=u*8));)a.put(17,8);return S(a,r)};v.addData=function(e,t){t||=`Byte`;var n=null;switch(t){case`Numeric`:n=l(e);break;case`Alphanumeric`:n=u(e);break;case`Byte`:n=d(e);break;case`Kanji`:n=f(e);break;default:throw`mode:`+t}g.push(n),h=null},v.isDark=function(e,t){if(e<0||m<=e||t<0||m<=t)throw e+`,`+t;return p[e][t]},v.getModuleCount=function(){return m},v.make=function(){if(r<1){for(var e=1;e<40;e++){for(var t=s.getRSBlocks(e,a),n=c(),o=0;o<g.length;o++){var l=g[o];n.put(l.getMode(),4),n.put(l.getLength(),i.getLengthInBits(l.getMode(),e)),l.write(n)}for(var u=0,o=0;o<t.length;o++)u+=t[o].dataCount;if(n.getLengthInBits()<=u*8)break}r=e}y(!1,ee())},v.createTableTag=function(e,t){e||=2,t=t===void 0?e*4:t;var n=``;n+=`<table style="`,n+=` border-width: 0px; border-style: none;`,n+=` border-collapse: collapse;`,n+=` padding: 0px; margin: `+t+`px;`,n+=`">`,n+=`<tbody>`;for(var r=0;r<v.getModuleCount();r+=1){n+=`<tr>`;for(var i=0;i<v.getModuleCount();i+=1)n+=`<td style="`,n+=` border-width: 0px; border-style: none;`,n+=` border-collapse: collapse;`,n+=` padding: 0px; margin: 0px;`,n+=` width: `+e+`px;`,n+=` height: `+e+`px;`,n+=` background-color: `,n+=v.isDark(r,i)?`#000000`:`#ffffff`,n+=`;`,n+=`"/>`;n+=`</tr>`}return n+=`</tbody>`,n+=`</table>`,n},v.createSvgTag=function(e,t,n,r){var i={};typeof arguments[0]==`object`&&(i=arguments[0],e=i.cellSize,t=i.margin,n=i.alt,r=i.title),e||=2,t=t===void 0?e*4:t,n=typeof n==`string`?{text:n}:n||{},n.text=n.text||null,n.id=n.text?n.id||`qrcode-description`:null,r=typeof r==`string`?{text:r}:r||{},r.text=r.text||null,r.id=r.text?r.id||`qrcode-title`:null;var a=v.getModuleCount()*e+t*2,o,s,c,l,u=``,d=`l`+e+`,0 0,`+e+` -`+e+`,0 0,-`+e+`z `;for(u+=`<svg version="1.1" xmlns="http://www.w3.org/2000/svg"`,u+=i.scalable?``:` width="`+a+`px" height="`+a+`px"`,u+=` viewBox="0 0 `+a+` `+a+`" `,u+=` preserveAspectRatio="xMinYMin meet"`,u+=r.text||n.text?` role="img" aria-labelledby="`+oe([r.id,n.id].join(` `).trim())+`"`:``,u+=`>`,u+=r.text?`<title id="`+oe(r.id)+`">`+oe(r.text)+`</title>`:``,u+=n.text?`<description id="`+oe(n.id)+`">`+oe(n.text)+`</description>`:``,u+=`<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>`,u+=`<path d="`,c=0;c<v.getModuleCount();c+=1)for(l=c*e+t,o=0;o<v.getModuleCount();o+=1)v.isDark(c,o)&&(s=o*e+t,u+=`M`+s+`,`+l+d);return u+=`" stroke="transparent" fill="black"/>`,u+=`</svg>`,u},v.createDataURL=function(e,t){e||=2,t=t===void 0?e*4:t;var n=v.getModuleCount()*e+t*2,r=t,i=n-t;return _(n,n,function(t,n){if(r<=t&&t<i&&r<=n&&n<i){var a=Math.floor((t-r)/e),o=Math.floor((n-r)/e);return+!v.isDark(o,a)}return 1})},v.createImgTag=function(e,t,n){e||=2,t=t===void 0?e*4:t;var r=v.getModuleCount()*e+t*2,i=``;return i+=`<img`,i+=` src="`,i+=v.createDataURL(e,t),i+=`"`,i+=` width="`,i+=r,i+=`"`,i+=` height="`,i+=r,i+=`"`,n&&(i+=` alt="`,i+=oe(n),i+=`"`),i+=`/>`,i};var oe=function(e){for(var t=``,n=0;n<e.length;n+=1){var r=e.charAt(n);switch(r){case`<`:t+=`&lt;`;break;case`>`:t+=`&gt;`;break;case`&`:t+=`&amp;`;break;case`"`:t+=`&quot;`;break;default:t+=r}}return t},se=function(e){var t=1;e=e===void 0?t*2:e;var n=v.getModuleCount()*t+e*2,r=e,i=n-e,a,o,s,c,l,u={"██":`█`,"█ ":`▀`," █":`▄`," ":` `},d={"██":`▀`,"█ ":`▀`," █":` `," ":` `},f=``;for(a=0;a<n;a+=2){for(s=Math.floor((a-r)/t),c=Math.floor((a+1-r)/t),o=0;o<n;o+=1)l=`█`,r<=o&&o<i&&r<=a&&a<i&&v.isDark(s,Math.floor((o-r)/t))&&(l=` `),r<=o&&o<i&&r<=a+1&&a+1<i&&v.isDark(c,Math.floor((o-r)/t))?l+=` `:l+=`█`,f+=e<1&&a+1>=i?d[l]:u[l];f+=`
15
+ `}return n%2&&e>0?f.substring(0,f.length-n-1)+Array(n+1).join(`▀`):f.substring(0,f.length-1)};return v.createASCII=function(e,t){if(e||=1,e<2)return se(t);--e,t=t===void 0?e*2:t;var n=v.getModuleCount()*e+t*2,r=t,i=n-t,a,o,s,c,l=Array(e+1).join(`██`),u=Array(e+1).join(` `),d=``,f=``;for(a=0;a<n;a+=1){for(s=Math.floor((a-r)/e),f=``,o=0;o<n;o+=1)c=1,r<=o&&o<i&&r<=a&&a<i&&v.isDark(s,Math.floor((o-r)/e))&&(c=0),f+=c?l:u;for(s=0;s<e;s+=1)d+=f+`
16
+ `}return d.substring(0,d.length-1)},v.renderTo2dContext=function(e,t){t||=2;for(var n=v.getModuleCount(),r=0;r<n;r++)for(var i=0;i<n;i++)e.fillStyle=v.isDark(r,i)?`black`:`white`,e.fillRect(r*t,i*t,t,t)},v};e.stringToBytesFuncs={default:function(e){for(var t=[],n=0;n<e.length;n+=1){var r=e.charCodeAt(n);t.push(r&255)}return t}},e.stringToBytes=e.stringToBytesFuncs.default,e.createStringToBytes=function(e,t){var n=function(){for(var n=h(e),r=function(){var e=n.read();if(e==-1)throw`eof`;return e},i=0,a={};;){var o=n.read();if(o==-1)break;var s=r(),c=r(),l=r(),u=String.fromCharCode(o<<8|s);a[u]=c<<8|l,i+=1}if(i!=t)throw i+` != `+t;return a}(),r=63;return function(e){for(var t=[],i=0;i<e.length;i+=1){var a=e.charCodeAt(i);if(a<128)t.push(a);else{var o=n[e.charAt(i)];typeof o==`number`?(o&255)==o?t.push(o):(t.push(o>>>8),t.push(o&255)):t.push(r)}}return t}};var t={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},r={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,s=21522,c={},l=function(e){for(var t=0;e!=0;)t+=1,e>>>=1;return t};return c.getBCHTypeInfo=function(e){for(var t=e<<10;l(t)-l(n)>=0;)t^=n<<l(t)-l(n);return(e<<10|t)^s},c.getBCHTypeNumber=function(e){for(var t=e<<12;l(t)-l(i)>=0;)t^=i<<l(t)-l(i);return e<<12|t},c.getPatternPosition=function(t){return e[t-1]},c.getMaskFunction=function(e){switch(e){case r.PATTERN000:return function(e,t){return(e+t)%2==0};case r.PATTERN001:return function(e,t){return e%2==0};case r.PATTERN010:return function(e,t){return t%3==0};case r.PATTERN011:return function(e,t){return(e+t)%3==0};case r.PATTERN100:return function(e,t){return(Math.floor(e/2)+Math.floor(t/3))%2==0};case r.PATTERN101:return function(e,t){return e*t%2+e*t%3==0};case r.PATTERN110:return function(e,t){return(e*t%2+e*t%3)%2==0};case r.PATTERN111:return function(e,t){return(e*t%3+(e+t)%2)%2==0};default:throw`bad maskPattern:`+e}},c.getErrorCorrectPolynomial=function(e){for(var t=o([1],0),n=0;n<e;n+=1)t=t.multiply(o([1,a.gexp(n)],0));return t},c.getLengthInBits=function(e,n){if(1<=n&&n<10)switch(e){case t.MODE_NUMBER:return 10;case t.MODE_ALPHA_NUM:return 9;case t.MODE_8BIT_BYTE:return 8;case t.MODE_KANJI:return 8;default:throw`mode:`+e}else if(n<27)switch(e){case t.MODE_NUMBER:return 12;case t.MODE_ALPHA_NUM:return 11;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 10;default:throw`mode:`+e}else if(n<41)switch(e){case t.MODE_NUMBER:return 14;case t.MODE_ALPHA_NUM:return 13;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 12;default:throw`mode:`+e}else throw`type:`+n},c.getLostPoint=function(e){for(var t=e.getModuleCount(),n=0,r=0;r<t;r+=1)for(var i=0;i<t;i+=1){for(var a=0,o=e.isDark(r,i),s=-1;s<=1;s+=1)if(!(r+s<0||t<=r+s))for(var c=-1;c<=1;c+=1)i+c<0||t<=i+c||(s!=0||c!=0)&&o==e.isDark(r+s,i+c)&&(a+=1);a>5&&(n+=3+a-5)}for(var r=0;r<t-1;r+=1)for(var i=0;i<t-1;i+=1){var l=0;e.isDark(r,i)&&(l+=1),e.isDark(r+1,i)&&(l+=1),e.isDark(r,i+1)&&(l+=1),e.isDark(r+1,i+1)&&(l+=1),(l==0||l==4)&&(n+=3)}for(var r=0;r<t;r+=1)for(var i=0;i<t-6;i+=1)e.isDark(r,i)&&!e.isDark(r,i+1)&&e.isDark(r,i+2)&&e.isDark(r,i+3)&&e.isDark(r,i+4)&&!e.isDark(r,i+5)&&e.isDark(r,i+6)&&(n+=40);for(var i=0;i<t;i+=1)for(var r=0;r<t-6;r+=1)e.isDark(r,i)&&!e.isDark(r+1,i)&&e.isDark(r+2,i)&&e.isDark(r+3,i)&&e.isDark(r+4,i)&&!e.isDark(r+5,i)&&e.isDark(r+6,i)&&(n+=40);for(var u=0,i=0;i<t;i+=1)for(var r=0;r<t;r+=1)e.isDark(r,i)&&(u+=1);var d=Math.abs(100*u/t/t-50)/5;return n+=d*10,n},c}(),a=function(){for(var e=Array(256),t=Array(256),n=0;n<8;n+=1)e[n]=1<<n;for(var n=8;n<256;n+=1)e[n]=e[n-4]^e[n-5]^e[n-6]^e[n-8];for(var n=0;n<255;n+=1)t[e[n]]=n;var r={};return r.glog=function(e){if(e<1)throw`glog(`+e+`)`;return t[e]},r.gexp=function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return e[t]},r}();function o(e,t){if(e.length===void 0)throw e.length+`/`+t;var n=function(){for(var n=0;n<e.length&&e[n]==0;)n+=1;for(var r=Array(e.length-n+t),i=0;i<e.length-n;i+=1)r[i]=e[i+n];return r}(),r={};return r.getAt=function(e){return n[e]},r.getLength=function(){return n.length},r.multiply=function(e){for(var t=Array(r.getLength()+e.getLength()-1),n=0;n<r.getLength();n+=1)for(var i=0;i<e.getLength();i+=1)t[n+i]^=a.gexp(a.glog(r.getAt(n))+a.glog(e.getAt(i)));return o(t,0)},r.mod=function(e){if(r.getLength()-e.getLength()<0)return r;for(var t=a.glog(r.getAt(0))-a.glog(e.getAt(0)),n=Array(r.getLength()),i=0;i<r.getLength();i+=1)n[i]=r.getAt(i);for(var i=0;i<e.getLength();i+=1)n[i]^=a.gexp(a.glog(e.getAt(i))+t);return o(n,0).mod(e)},r}var s=function(){var e=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(e,t){var n={};return n.totalCount=e,n.dataCount=t,n},r={},i=function(t,r){switch(r){case n.L:return e[(t-1)*4+0];case n.M:return e[(t-1)*4+1];case n.Q:return e[(t-1)*4+2];case n.H:return e[(t-1)*4+3];default:return}};return r.getRSBlocks=function(e,n){var r=i(e,n);if(r===void 0)throw`bad rs block @ typeNumber:`+e+`/errorCorrectionLevel:`+n;for(var a=r.length/3,o=[],s=0;s<a;s+=1)for(var c=r[s*3+0],l=r[s*3+1],u=r[s*3+2],d=0;d<c;d+=1)o.push(t(l,u));return o},r}(),c=function(){var e=[],t=0,n={};return n.getBuffer=function(){return e},n.getAt=function(t){return(e[Math.floor(t/8)]>>>7-t%8&1)==1},n.put=function(e,t){for(var r=0;r<t;r+=1)n.putBit((e>>>t-r-1&1)==1)},n.getLengthInBits=function(){return t},n.putBit=function(n){var r=Math.floor(t/8);e.length<=r&&e.push(0),n&&(e[r]|=128>>>t%8),t+=1},n},l=function(e){var n=t.MODE_NUMBER,r=e,i={};i.getMode=function(){return n},i.getLength=function(e){return r.length},i.write=function(e){for(var t=r,n=0;n+2<t.length;)e.put(a(t.substring(n,n+3)),10),n+=3;n<t.length&&(t.length-n==1?e.put(a(t.substring(n,n+1)),4):t.length-n==2&&e.put(a(t.substring(n,n+2)),7))};var a=function(e){for(var t=0,n=0;n<e.length;n+=1)t=t*10+o(e.charAt(n));return t},o=function(e){if(`0`<=e&&e<=`9`)return e.charCodeAt(0)-48;throw`illegal char :`+e};return i},u=function(e){var n=t.MODE_ALPHA_NUM,r=e,i={};i.getMode=function(){return n},i.getLength=function(e){return r.length},i.write=function(e){for(var t=r,n=0;n+1<t.length;)e.put(a(t.charAt(n))*45+a(t.charAt(n+1)),11),n+=2;n<t.length&&e.put(a(t.charAt(n)),6)};var a=function(e){if(`0`<=e&&e<=`9`)return e.charCodeAt(0)-48;if(`A`<=e&&e<=`Z`)return e.charCodeAt(0)-65+10;switch(e){case` `:return 36;case`$`:return 37;case`%`:return 38;case`*`:return 39;case`+`:return 40;case`-`:return 41;case`.`:return 42;case`/`:return 43;case`:`:return 44;default:throw`illegal char :`+e}};return i},d=function(n){var r=t.MODE_8BIT_BYTE,i=e.stringToBytes(n),a={};return a.getMode=function(){return r},a.getLength=function(e){return i.length},a.write=function(e){for(var t=0;t<i.length;t+=1)e.put(i[t],8)},a},f=function(n){var r=t.MODE_KANJI,i=e.stringToBytesFuncs.SJIS;if(!i)throw`sjis not supported.`;(function(e,t){var n=i(e);if(n.length!=2||(n[0]<<8|n[1])!=t)throw`sjis not supported.`})(`友`,38726);var a=i(n),o={};return o.getMode=function(){return r},o.getLength=function(e){return~~(a.length/2)},o.write=function(e){for(var t=a,n=0;n+1<t.length;){var r=(255&t[n])<<8|255&t[n+1];if(33088<=r&&r<=40956)r-=33088;else if(57408<=r&&r<=60351)r-=49472;else throw`illegal char at `+(n+1)+`/`+r;r=(r>>>8&255)*192+(r&255),e.put(r,13),n+=2}if(n<t.length)throw`illegal char at `+(n+1)},o},p=function(){var e=[],t={};return t.writeByte=function(t){e.push(t&255)},t.writeShort=function(e){t.writeByte(e),t.writeByte(e>>>8)},t.writeBytes=function(e,n,r){n||=0,r||=e.length;for(var i=0;i<r;i+=1)t.writeByte(e[i+n])},t.writeString=function(e){for(var n=0;n<e.length;n+=1)t.writeByte(e.charCodeAt(n))},t.toByteArray=function(){return e},t.toString=function(){var t=``;t+=`[`;for(var n=0;n<e.length;n+=1)n>0&&(t+=`,`),t+=e[n];return t+=`]`,t},t},m=function(){var e=0,t=0,n=0,r=``,i={},a=function(e){r+=String.fromCharCode(o(e&63))},o=function(e){if(!(e<0)){if(e<26)return 65+e;if(e<52)return 97+(e-26);if(e<62)return 48+(e-52);if(e==62)return 43;if(e==63)return 47}throw`n:`+e};return i.writeByte=function(r){for(e=e<<8|r&255,t+=8,n+=1;t>=6;)a(e>>>t-6),t-=6},i.flush=function(){if(t>0&&(a(e<<6-t),e=0,t=0),n%3!=0)for(var i=3-n%3,o=0;o<i;o+=1)r+=`=`},i.toString=function(){return r},i},h=function(e){var t=e,n=0,r=0,i=0,a={};a.read=function(){for(;i<8;){if(n>=t.length){if(i==0)return-1;throw`unexpected end of file./`+i}var e=t.charAt(n);if(n+=1,e==`=`)return i=0,-1;e.match(/^\s$/)||(r=r<<6|o(e.charCodeAt(0)),i+=6)}var a=r>>>i-8&255;return i-=8,a};var o=function(e){if(65<=e&&e<=90)return e-65;if(97<=e&&e<=122)return e-97+26;if(48<=e&&e<=57)return e-48+52;if(e==43)return 62;if(e==47)return 63;throw`c:`+e};return a},g=function(e,t){var n=e,r=t,i=Array(e*t),a={};a.setPixel=function(e,t,r){i[t*n+e]=r},a.write=function(e){e.writeString(`GIF87a`),e.writeShort(n),e.writeShort(r),e.writeByte(128),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(255),e.writeByte(255),e.writeByte(255),e.writeString(`,`),e.writeShort(0),e.writeShort(0),e.writeShort(n),e.writeShort(r),e.writeByte(0);var t=2,i=s(t);e.writeByte(t);for(var a=0;i.length-a>255;)e.writeByte(255),e.writeBytes(i,a,255),a+=255;e.writeByte(i.length-a),e.writeBytes(i,a,i.length-a),e.writeByte(0),e.writeString(`;`)};var o=function(e){var t=e,n=0,r=0,i={};return i.write=function(e,i){if(e>>>i)throw`length over`;for(;n+i>=8;)t.writeByte(255&(e<<n|r)),i-=8-n,e>>>=8-n,r=0,n=0;r=e<<n|r,n+=i},i.flush=function(){n>0&&t.writeByte(r)},i},s=function(e){for(var t=1<<e,n=(1<<e)+1,r=e+1,a=c(),s=0;s<t;s+=1)a.add(String.fromCharCode(s));a.add(String.fromCharCode(t)),a.add(String.fromCharCode(n));var l=p(),u=o(l);u.write(t,r);var d=0,f=String.fromCharCode(i[d]);for(d+=1;d<i.length;){var m=String.fromCharCode(i[d]);d+=1,a.contains(f+m)?f+=m:(u.write(a.indexOf(f),r),a.size()<4095&&(a.size()==1<<r&&(r+=1),a.add(f+m)),f=m)}return u.write(a.indexOf(f),r),u.write(n,r),u.flush(),l.toByteArray()},c=function(){var e={},t=0,n={};return n.add=function(r){if(n.contains(r))throw`dup key:`+r;e[r]=t,t+=1},n.size=function(){return t},n.indexOf=function(t){return e[t]},n.contains=function(t){return e[t]!==void 0},n};return a},_=function(e,t,n){for(var r=g(e,t),i=0;i<t;i+=1)for(var a=0;a<e;a+=1)r.setPixel(a,i,n(a,i));var o=p();r.write(o);for(var s=m(),c=o.toByteArray(),l=0;l<c.length;l+=1)s.writeByte(c[l]);return s.flush(),`data:image/gif;base64,`+s};return e}();(function(){n.stringToBytesFuncs[`UTF-8`]=function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t.push(r):r<2048?t.push(192|r>>6,128|r&63):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|r&63):(n++,r=65536+((r&1023)<<10|e.charCodeAt(n)&1023),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63))}return t}return t(e)}})(),(function(n){typeof define==`function`&&define.amd?define([],n):typeof e==`object`&&(t.exports=n())})(function(){return n})}))(),1),tr=0,nr=4,rr=4;function ir(e){let[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(!1),[l,u]=(0,_.useState)(null);(0,_.useEffect)(()=>{let t=!1;return w.send(`POST`,`auth/enrol`,{pendingToken:e.pendingToken}).then(e=>{t||n(e)},e=>{t||u(C(e).message)}),()=>{t=!0}},[e.pendingToken]);let d=async t=>{if(t.preventDefault(),!(a.length===0||s)){c(!0),u(null);try{let t=await w.send(`POST`,`auth/enrol/confirm`,{pendingToken:e.pendingToken,code:a});i(t),e.onStageChange?.(`recovery`)}catch(e){u(C(e).message),c(!1)}}};return r==null?t==null?l==null?(0,T.jsx)(`div`,{className:`skeleton`,"aria-label":`Preparing your authenticator`}):(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:l})}):(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>void d(e),noValidate:!0,children:[(0,T.jsxs)(`div`,{className:`enrolment-grid`,children:[(0,T.jsx)(`img`,{className:`qr-code`,src:ar(t.otpauthUri),alt:`QR code for your authenticator app`,width:184,height:184}),(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsx)(`p`,{children:`Scan the code with an authenticator app (1Password, Google Authenticator, Microsoft Authenticator, Authy…).`}),(0,T.jsx)(`p`,{className:`muted small`,children:`Can't scan? Enter this secret by hand:`}),(0,T.jsx)(`div`,{className:`code-box`,children:or(t.secret)}),(0,T.jsx)(`div`,{children:(0,T.jsx)(Xn,{text:t.secret,label:`Copy secret`})})]})]}),(0,T.jsx)(O,{label:`Code from the app`,hint:`Six digits; it changes every 30 seconds.`,children:(0,T.jsx)(`input`,{className:`input input--code`,value:a,onChange:e=>o(e.target.value.replace(/\D/g,``)),inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:6,placeholder:`000000`,autoFocus:!0})}),l!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:l})}),(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary button--block`,disabled:s||a.length!==6,children:s?`Checking…`:`Confirm code`})]}):(0,T.jsx)(Zn,{recoveryCodes:r.recoveryCodes,username:e.username,onContinue:()=>e.onSignedIn(r),continueLabel:`Open the console`})}function ar(e){let t=(0,er.default)(tr,`M`);return t.addData(e),t.make(),t.createDataURL(nr)}function or(e){let t=[];for(let n=0;n<e.length;n+=rr)t.push(e.slice(n,n+rr));return t.join(` `)}var sr=[`Owner account`,`Authenticator`,`Recovery codes`],cr=[`Create the owner account`,`Set up your authenticator`,`Save your recovery codes`];function lr(e){let t=St().query.get(`token`)??``,[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(1);return t===``?(0,T.jsxs)(Qn,{children:[(0,T.jsxs)(Te,{title:`This setup link is incomplete`,children:[`Open the full link from the server log (the `,(0,T.jsx)(`code`,{children:`admin setup link`}),` line). It ends with `,(0,T.jsx)(`code`,{children:`?token=…`}),`.`]}),(0,T.jsx)(`a`,{className:`button`,href:`#/sign-in`,children:`Go to sign-in`})]}):(0,T.jsxs)(Qn,{isWide:o>1,children:[(0,T.jsxs)(`header`,{className:`auth-card__header`,children:[(0,T.jsx)($n,{current:o,steps:sr}),(0,T.jsx)(`h1`,{children:cr[o-1]}),(0,T.jsx)(`p`,{className:`muted`,children:o===1?`The owner can do everything, including adding the rest of your team.`:`Owners always sign in with a second factor.`})]}),n==null?(0,T.jsx)(ur,{setupToken:t,username:i,onUsernameChange:a,onCreated:e=>{r(e),s(2)}}):(0,T.jsx)(ir,{pendingToken:n.pendingToken,username:i,onSignedIn:e.onSignedIn,onStageChange:()=>s(3)})]})}function ur(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(!1),[l,u]=(0,_.useState)(!1),[d,f]=(0,_.useState)(null),p=dr(r,e.username),m=a===r?null:`The two passwords are different.`,h=e.username.trim()===``?`Choose a username.`:null,g=p==null&&m==null&&h==null,v=async n=>{if(n.preventDefault(),c(!0),g&&!l){u(!0),f(null);try{let n=e.username.trim(),i=await w.send(`POST`,`setup/owner`,{setupToken:e.setupToken,username:n,displayName:t.trim()===``?n:t.trim(),password:r});e.onCreated(i)}catch(e){f(C(e).message),u(!1)}}};return(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>void v(e),noValidate:!0,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Username`,error:s?h:null,children:(0,T.jsx)(`input`,{className:`input`,value:e.username,onChange:t=>e.onUsernameChange(t.target.value),autoComplete:`username`,autoCapitalize:`none`,spellCheck:!1,autoFocus:!0})}),(0,T.jsx)(O,{label:`Display name`,hint:`Shown in the audit log.`,children:(0,T.jsx)(`input`,{className:`input`,value:t,onChange:e=>n(e.target.value),autoComplete:`name`})})]}),(0,T.jsx)(O,{label:`Password`,hint:`At least 12 characters, not a common password, not containing the username.`,error:s||r.length>0?p:null,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:r,onChange:e=>i(e.target.value),autoComplete:`new-password`})}),(0,T.jsx)(O,{label:`Password again`,error:s||a.length>0?m:null,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:a,onChange:e=>o(e.target.value),autoComplete:`new-password`})}),d!=null&&(0,T.jsxs)(`div`,{className:`banner banner--danger`,role:`alert`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsx)(`div`,{className:`banner__body`,children:d})]}),(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary button--block`,disabled:l,children:l?`Creating…`:`Create owner`})]})}function dr(e,t){if(e.length<12)return`Use at least 12 characters.`;let n=t.trim().toLowerCase();return n!==``&&e.toLowerCase().includes(n)?`The password must not contain the username.`:null}var fr=[{pattern:/Edg\//,name:`Edge`},{pattern:/OPR\//,name:`Opera`},{pattern:/Firefox\//,name:`Firefox`},{pattern:/Chrome\//,name:`Chrome`},{pattern:/Safari\//,name:`Safari`}],pr=[{pattern:/iPhone|iPad/,name:`iOS`},{pattern:/Android/,name:`Android`},{pattern:/Mac OS X|Macintosh/,name:`macOS`},{pattern:/Windows/,name:`Windows`},{pattern:/Linux/,name:`Linux`}],mr=[{value:`system`,label:`Match the system`},{value:`light`,label:`Light`},{value:`dark`,label:`Dark`}],hr=[{value:`local`,label:`Local time`},{value:`utc`,label:`UTC`}];function gr(){let{session:e}=M(),t=e.user;return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Your account`,description:`Your sign-in, second factor, active sessions and how the console looks for you.`}),(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`account-profile`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{id:`account-profile`,children:`Profile`}),(0,T.jsx)(V,{tone:`info`,isPlain:!0,children:t.role})]}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Username`}),(0,T.jsx)(`dd`,{children:t.username}),(0,T.jsx)(`dt`,{children:`Display name`}),(0,T.jsx)(`dd`,{children:t.displayName}),(0,T.jsx)(`dt`,{children:`Email`}),(0,T.jsx)(`dd`,{children:t.email??(0,T.jsx)(`span`,{className:`muted`,children:`not set`})}),(0,T.jsx)(`dt`,{children:`Second factor`}),(0,T.jsx)(`dd`,{children:t.hasSecondFactor?(0,T.jsx)(V,{tone:`success`,children:`Authenticator app`}):(0,T.jsx)(V,{tone:`warning`,children:`not set up`})}),(0,T.jsx)(`dt`,{children:`Last sign-in`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:t.lastSignInAt,emptyText:`never`})}),(0,T.jsx)(`dt`,{children:`This session ends`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:e.expiresAt})})]})]}),(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsx)(_r,{}),(0,T.jsx)(vr,{})]}),(0,T.jsx)(qn,{}),(0,T.jsx)(yr,{}),(0,T.jsx)(br,{})]})}function _r(){let{session:e}=M(),t=N(),[n,r]=(0,_.useState)(``),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(``),[c,l]=(0,_.useState)(!1),[u,d]=(0,_.useState)(null),f=i===``?null:dr(i,e.user.username),p=o!==``&&o!==i?`The two passwords are different.`:null,m=n!==``&&i!==``&&f==null&&o===i,h=async e=>{if(e.preventDefault(),m&&!c){l(!0),d(null);try{await w.send(`PUT`,`account/password`,{currentPassword:n,newPassword:i}),r(``),a(``),s(``),t(`Your password was changed.`)}catch(e){d(C(e).message)}l(!1)}};return(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`account-password`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`account-password`,children:`Password`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`You will confirm with your authenticator.`})]})}),(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>void h(e),noValidate:!0,children:[(0,T.jsx)(O,{label:`Current password`,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:n,onChange:e=>r(e.target.value),autoComplete:`current-password`})}),(0,T.jsx)(O,{label:`New password`,error:f,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:i,onChange:e=>a(e.target.value),autoComplete:`new-password`})}),(0,T.jsx)(O,{label:`New password again`,error:p,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:o,onChange:e=>s(e.target.value),autoComplete:`new-password`})}),u!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:u})}),(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary`,disabled:!m||c,children:c?`Saving…`:`Change password`})})]})]})}function vr(){let{session:e}=M(),t=N(),[n,r]=(0,_.useState)(!1),[i,a]=(0,_.useState)(null);return(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`account-recovery`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`account-recovery`,children:`Recovery codes`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`One-time codes that sign you in if you lose your authenticator.`})]})}),(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsx)(`p`,{className:`muted`,children:`Making new codes replaces every old one at once. Do it if you have used most of them or think someone has seen them.`}),(0,T.jsx)(`div`,{children:(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>r(!0),children:[(0,T.jsx)(E,{name:`refresh`}),`Make new recovery codes`]})})]}),n&&(0,T.jsx)(k,{title:`Make new recovery codes?`,description:`Your current recovery codes stop working immediately.`,confirmLabel:`Make new codes`,onConfirm:async()=>{let e=await w.send(`POST`,`account/recovery-codes`);a(e.recoveryCodes),t(`New recovery codes were made; the old ones no longer work.`)},onClose:()=>r(!1)}),i!=null&&(0,T.jsx)(Ee,{title:`Your new recovery codes`,onClose:()=>a(null),children:(0,T.jsx)(Zn,{recoveryCodes:i,username:e.user.username,onContinue:()=>a(null),continueLabel:`Done`})})]})}function yr(){let{signOut:e}=M(),t=N(),n=jn(()=>w.get(`account/sessions`),[]),[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(!1);return(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`account-sessions`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`account-sessions`,children:`Active sessions`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Browsers signed in to this account.`})]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>o(!0),children:[(0,T.jsx)(E,{name:`globe`}),`Sign out everywhere`]})]}),n.error!=null&&n.data==null?(0,T.jsx)(Te,{title:`Could not load your sessions`,onRetry:n.refresh,children:n.error.message}):(0,T.jsx)(L,{caption:`Active sessions`,columns:[{key:`device`,header:`Device`,render:e=>(0,T.jsxs)(`span`,{className:`row`,children:[xr(e.userAgent),e.current&&(0,T.jsx)(V,{tone:`success`,children:`this browser`})]})},{key:`address`,header:`Address`,render:e=>(0,T.jsx)(`span`,{className:`mono`,children:e.clientAddress})},{key:`createdAt`,header:`Signed in`,render:e=>(0,T.jsx)(B,{iso:e.createdAt})},{key:`lastSeenAt`,header:`Last active`,render:e=>(0,T.jsx)(B,{iso:e.lastSeenAt,isRelative:!0})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>e.current?(0,T.jsx)(`span`,{className:`small muted`,children:`current`}):(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>i(e),children:`End`})}],rows:n.data??[],rowKey:e=>e.sessionId}),r!=null&&(0,T.jsx)(k,{title:`End this session?`,description:`The browser (`+xr(r.userAgent)+`, `+r.clientAddress+`) is signed out at its next request.`,confirmLabel:`End session`,onConfirm:async()=>{r!=null&&(await w.send(`DELETE`,`account/sessions/`+encodeURIComponent(r.sessionId)),t(`Ended the session on `+xr(r.userAgent)+`.`),n.refresh())},onClose:()=>i(null)}),a&&(0,T.jsx)(k,{title:`Sign out everywhere?`,description:`Every browser signed in to this account is signed out, including this one.`,confirmLabel:`Sign out everywhere`,onConfirm:()=>e(!0),onClose:()=>o(!1)})]})}function br(){let{preferences:e,savePreferences:t}=M(),n=N(),r=e=>{t(e).then(()=>n(`Preferences saved.`),e=>n(`Could not save your preferences: `+C(e).message,`error`))};return(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`account-preferences`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`account-preferences`,children:`Preferences`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Saved to your account, so every browser you sign in from looks the same.`})]})}),(0,T.jsxs)(`div`,{className:`stack stack--loose`,children:[(0,T.jsxs)(`fieldset`,{className:`choice-group`,children:[(0,T.jsx)(`legend`,{children:`Theme`}),mr.map(t=>(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`radio`,name:`theme`,value:t.value,checked:e.theme===t.value,onChange:()=>r({...e,theme:t.value})}),t.label]},t.value))]}),(0,T.jsxs)(`fieldset`,{className:`choice-group`,children:[(0,T.jsx)(`legend`,{children:`Show times in`}),hr.map(t=>(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`radio`,name:`timeZone`,value:t.value,checked:e.timeZone===t.value,onChange:()=>r({...e,timeZone:t.value})}),t.label]},t.value))]})]})]})}function xr(e){let t=fr.find(t=>t.pattern.test(e))?.name,n=pr.find(t=>t.pattern.test(e))?.name;return t==null&&n==null?e.trim()===``?`Unknown browser`:e.slice(0,40):t==null?`Browser on `+n:n==null?t:t+` on `+n}var Sr=404;function H(e){let{state:t}=e;return t.error?.status===Sr&&e.notFound!=null?(0,T.jsx)(T.Fragment,{children:e.notFound}):t.data==null&&t.error!=null?(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsx)(Te,{title:`Could not load `+e.subject,onRetry:t.refresh,children:t.error.message})}):t.data==null?(0,T.jsx)(`div`,{className:`skeleton`,"aria-label":`Loading `+e.subject}):(0,T.jsxs)(T.Fragment,{children:[t.error!=null&&(0,T.jsxs)(`div`,{className:`inline-error`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`}),`Live updates paused: `,t.error.message,`. Showing the last data received.`]}),e.children(t.data)]})}function Cr(){let e=St();return{get:t=>e.query.get(t)??``,set:e=>{Tt(Object.keys(e).some(e=>e!==`page`)?{page:``,...e}:e)}}}var wr=[{value:`rules`,label:`Rules`},{value:`channels`,label:`Channels`},{value:`history`,label:`History`}],Tr=[`info`,`warning`,`critical`],Er={info:`info`,warning:`warning`,critical:`danger`},Dr=[{value:`webhook`,label:`Webhook (JSON POST)`},{value:`slack`,label:`Slack`},{value:`discord`,label:`Discord`},{value:`teams`,label:`Microsoft Teams`},{value:`pagerduty`,label:`PagerDuty`}],Or=[{value:30,label:`30 minutes`},{value:60,label:`1 hour`},{value:240,label:`4 hours`},{value:1440,label:`1 day`},{value:10080,label:`1 week`}],kr=0;function Ar(){let e=Cr(),t=e.get(`tab`),n=wr.some(e=>e.value===t)?t:`rules`,r=jn(()=>w.get(`alerts/channels`),[]);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Alerts`,description:`Built-in health rules, checked by one instance for the whole fleet. A rule that holds for its time fires once and is delivered to its channels.`}),(0,T.jsx)(`div`,{className:`tabs`,role:`tablist`,"aria-label":`Alert sections`,children:wr.map(t=>(0,T.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":n===t.value,onClick:()=>e.set({tab:t.value===`rules`?``:t.value,state:``}),children:t.label},t.value))}),n===`rules`&&(0,T.jsx)(jr,{channels:r.data??[]}),n===`channels`&&(0,T.jsx)(Pr,{channels:r}),n===`history`&&(0,T.jsx)(Ir,{channels:r.data??[]})]})}function jr(e){let{hasPermission:t}=M(),n=N(),r=jn(()=>w.get(`alerts/rules`),[]),[i,a]=(0,_.useState)({kind:`none`}),o=t(`alerts.manage`),s=(e,t)=>{w.send(`PUT`,`alerts/rules/`+encodeURIComponent(e.ruleId),{...Lr(e),enabled:t}).then(()=>{n((t?`Turned on `:`Turned off `)+`“`+e.label+`”.`),r.refresh()},t=>n(`Could not change “`+e.label+`”: `+C(t).message,`error`))},c=e=>{w.send(`POST`,`alerts/rules/`+encodeURIComponent(e.ruleId)+`/silence`,{minutes:kr}).then(()=>{n(`“`+e.label+`” can fire again.`),r.refresh()},e=>n(`Could not end the silence: `+C(e).message,`error`))},l=[{key:`enabled`,header:`On`,render:e=>(0,T.jsx)(`label`,{className:`toggle`,children:(0,T.jsx)(`input`,{type:`checkbox`,role:`switch`,checked:e.enabled,disabled:!o,onChange:t=>s(e,t.target.checked),"aria-label":`Rule `+e.label})})},{key:`rule`,header:`Rule`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`strong`,{children:e.label}),(0,T.jsx)(`span`,{className:`small muted mono`,children:e.ruleId})]})},{key:`threshold`,header:`Fires when`,render:e=>(0,T.jsxs)(`span`,{children:[zr(e),e.forMinutes>0&&(0,T.jsxs)(`span`,{className:`muted`,children:[` for `,e.forMinutes,` min`]})]})},{key:`severity`,header:`Severity`,render:e=>(0,T.jsx)(V,{tone:Er[e.severity],children:e.severity})},{key:`channels`,header:`Channels`,render:t=>t.channelIds.length===0?(0,T.jsx)(`span`,{className:`muted`,children:`history only`}):(0,T.jsx)(`span`,{className:`break-anywhere`,children:Br(t.channelIds,e.channels)})},{key:`silenced`,header:`Silenced`,render:e=>Rr(e)?(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(V,{tone:`warning`,isPlain:!0,children:`silenced`}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`until `,(0,T.jsx)(B,{iso:e.silencedUntil})]})]}):(0,T.jsx)(`span`,{className:`muted`,children:`–`})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>o?(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>a({kind:`edit`,rule:e}),children:[(0,T.jsx)(E,{name:`edit`}),`Edit`]}),Rr(e)?(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>c(e),children:`End silence`}):(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>a({kind:`silence`,rule:e}),children:`Silence`})]}):null}];return(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-label":`Alert rules`,children:[(0,T.jsx)(H,{state:r,subject:`the alert rules`,children:e=>(0,T.jsx)(L,{caption:`Alert rules`,columns:l,rows:e,rowKey:e=>e.ruleId,emptyState:(0,T.jsx)(z,{title:`No alert rules yet`,icon:`alerts`,children:`The rules are created when the fleet leader starts.`})})}),i.kind===`edit`&&(0,T.jsx)(Mr,{rule:i.rule,channels:e.channels,onSaved:r.refresh,onClose:()=>a({kind:`none`})}),i.kind===`silence`&&(0,T.jsx)(Nr,{rule:i.rule,onSaved:r.refresh,onClose:()=>a({kind:`none`})})]})}function Mr(e){let t=N(),{rule:n}=e,[r,i]=(0,_.useState)(n.enabled),[a,o]=(0,_.useState)(n.threshold==null?``:String(n.threshold)),[s,c]=(0,_.useState)(String(n.forMinutes)),[l,u]=(0,_.useState)(n.severity),[d,f]=(0,_.useState)(n.channelIds),p=n.threshold!=null,m=Number(a),h=Number(s),g=p&&(a.trim()===``||!Number.isFinite(m)||m<0)?`Enter a number of 0 or more.`:null,v=!Number.isInteger(h)||h<0?`Enter whole minutes, 0 or more.`:null,y=async()=>{let i={enabled:r,threshold:p?m:null,forMinutes:h,severity:l,channelIds:d};await w.send(`PUT`,`alerts/rules/`+encodeURIComponent(n.ruleId),i),t(`Saved “`+n.label+`”.`),e.onSaved()},b=(e,t)=>{f(t?[...d,e]:d.filter(t=>t!==e))};return(0,T.jsxs)(k,{title:`Edit “`+n.label+`”`,confirmLabel:`Save rule`,tone:`primary`,canConfirm:g==null&&v==null,onConfirm:y,onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`label`,{className:`toggle`,children:[(0,T.jsx)(`input`,{type:`checkbox`,role:`switch`,checked:r,onChange:e=>i(e.target.checked)}),(0,T.jsx)(`span`,{children:`Rule is on`})]}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[p&&(0,T.jsx)(O,{label:`Threshold`+(n.thresholdUnit==null?``:` (`+n.thresholdUnit+`)`),error:g,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`decimal`,value:a,onChange:e=>o(e.target.value)})}),(0,T.jsx)(O,{label:`For (minutes)`,hint:`How long it must hold before it fires. 0 fires at once.`,error:v,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:s,onChange:e=>c(e.target.value)})}),(0,T.jsx)(O,{label:`Severity`,children:(0,T.jsx)(`select`,{className:`select`,value:l,onChange:e=>u(e.target.value),children:Tr.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})})]}),(0,T.jsxs)(`fieldset`,{className:`permission-group`,children:[(0,T.jsx)(`legend`,{children:`Deliver to`}),e.channels.length===0&&(0,T.jsx)(`span`,{className:`muted`,children:`No channels yet. Add one on the Channels tab; until then alerts are kept in the history only.`}),e.channels.map(e=>(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:d.includes(e.channelId),onChange:t=>b(e.channelId,t.target.checked)}),(0,T.jsxs)(`span`,{children:[e.name,` `,(0,T.jsxs)(`span`,{className:`muted small`,children:[`(`,e.kind,`)`]})]})]},e.channelId))]})]})}function Nr(e){let t=N(),[n,r]=(0,_.useState)(Or[1].value);return(0,T.jsx)(k,{title:`Silence “`+e.rule.label+`”?`,description:`A silenced rule does not fire or deliver anything until the silence ends.`,confirmLabel:`Silence`,tone:`primary`,onConfirm:async()=>{await w.send(`POST`,`alerts/rules/`+encodeURIComponent(e.rule.ruleId)+`/silence`,{minutes:n}),t(`Silenced “`+e.rule.label+`”.`),e.onSaved()},onClose:e.onClose,children:(0,T.jsxs)(`fieldset`,{className:`choice-group`,children:[(0,T.jsx)(`legend`,{children:`For`}),Or.map(e=>(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`radio`,name:`silence`,checked:n===e.value,onChange:()=>r(e.value)}),e.label]},e.value))]})})}function Pr(e){let{hasPermission:t}=M(),n=N(),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(null),l=t(`alerts.manage`),u=async e=>{c(e.channelId);try{let t=await w.send(`POST`,`alerts/channels/`+encodeURIComponent(e.channelId)+`/test`);t.delivered?n(`Test alert delivered to `+e.name+`.`):n(`The test to `+e.name+` was not delivered: `+(t.error??`no reason given`),`error`)}catch(t){n(`Could not test `+e.name+`: `+C(t).message,`error`)}c(null)},d=async()=>{a!=null&&(await w.send(`DELETE`,`alerts/channels/`+encodeURIComponent(a.channelId)),n(`Deleted the channel `+a.name+`.`),e.channels.refresh())},f=[{key:`name`,header:`Name`,render:e=>(0,T.jsx)(`strong`,{children:e.name})},{key:`kind`,header:`Kind`,render:e=>Dr.find(t=>t.value===e.kind)?.label??e.kind},{key:`target`,header:`Sends to`,render:e=>e.kind===`pagerduty`?(0,T.jsxs)(`span`,{children:[`routing key `,(0,T.jsx)(V,{tone:e.routingKey===`set`?`success`:`warning`,isPlain:!0,children:e.routingKey})]}):(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.url??`–`})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>l?(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,disabled:s!=null,onClick:()=>void u(e),children:[(0,T.jsx)(E,{name:`send`}),s===e.channelId?`Sending…`:`Test send`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>o(e),children:[(0,T.jsx)(E,{name:`trash`}),`Delete`]})]}):null}];return(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`alerts-channels`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`alerts-channels`,children:`Channels`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Where fired and resolved alerts are posted. Addresses and keys are stored on the server and never shown again in full.`})]}),l&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>i(!0),children:[(0,T.jsx)(E,{name:`plus`}),`Add channel`]})]}),(0,T.jsx)(H,{state:e.channels,subject:`the alert channels`,children:e=>(0,T.jsx)(L,{caption:`Alert channels`,columns:f,rows:e,rowKey:e=>e.channelId,emptyState:(0,T.jsx)(z,{title:`No channels yet`,icon:`alerts`,children:`Alerts are kept in the history. Add a channel to be told when one fires.`})})}),r&&(0,T.jsx)(Fr,{onAdded:e.channels.refresh,onClose:()=>i(!1)}),a!=null&&(0,T.jsx)(k,{title:`Delete the channel `+a.name+`?`,description:`Rules that deliver to it stop doing so.`,confirmLabel:`Delete channel`,onConfirm:d,onClose:()=>o(null)})]})}function Fr(e){let t=N(),[n,r]=(0,_.useState)(`webhook`),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(``),[c,l]=(0,_.useState)(``),u=n===`pagerduty`,d=!u&&o.trim()!==``&&!/^https?:\/\//i.test(o.trim())?`Use an http:// or https:// address.`:null,f=i.trim()!==``&&(u?c.trim()!==``:o.trim()!==``&&d==null);return(0,T.jsxs)(k,{title:`Add an alert channel`,description:`You will confirm with your authenticator.`,confirmLabel:`Add channel`,tone:`primary`,canConfirm:f,onConfirm:async()=>{let r={kind:n,name:i.trim(),url:u?null:o.trim(),routingKey:u?c.trim():null};await w.send(`POST`,`alerts/channels`,r),t(`Added the channel `+r.name+`. Use “Test send” to check it.`),e.onAdded()},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`Kind`,children:(0,T.jsx)(`select`,{className:`select`,value:n,onChange:e=>r(e.target.value),children:Dr.map(e=>(0,T.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),(0,T.jsx)(O,{label:`Name`,hint:`For you, for example “Ops on-call”.`,children:(0,T.jsx)(`input`,{className:`input`,value:i,onChange:e=>a(e.target.value),maxLength:80})}),u?(0,T.jsx)(O,{label:`Routing key`,hint:`The integration key of a PagerDuty Events API v2 service.`,children:(0,T.jsx)(`input`,{className:`input mono`,type:`password`,value:c,onChange:e=>l(e.target.value),autoComplete:`off`})}):(0,T.jsx)(O,{label:`Address`,hint:n===`webhook`?`Receives a JSON POST for each fired and resolved alert.`:`The incoming-webhook URL from `+Dr.find(e=>e.value===n)?.label+`.`,error:d,children:(0,T.jsx)(`input`,{className:`input mono`,type:`url`,value:o,onChange:e=>s(e.target.value),autoComplete:`off`,spellCheck:!1})})]})}function Ir(e){let{hasPermission:t}=M(),n=N(),r=Cr(),i=r.get(`state`),a=Number(r.get(`page`)),o=Number.isInteger(a)&&a>=1?a:1,s=I(()=>w.get(`alerts/history`,{state:i,page:o}),y,[i,o]),c=t(`alerts.manage`),l=e=>{w.send(`POST`,`alerts/history/`+encodeURIComponent(e.alertId)+`/acknowledge`).then(()=>{n(`Acknowledged: `+e.summary),s.refresh()},e=>n(`Could not acknowledge: `+C(e).message,`error`))},u=[{key:`state`,header:`State`,render:e=>e.state===`firing`?(0,T.jsx)(V,{tone:Er[e.severity],isLive:!0,children:`firing`}):(0,T.jsx)(V,{tone:`success`,children:`resolved`})},{key:`summary`,header:`Alert`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(V,{tone:Er[e.severity],isPlain:!0,children:e.severity}),(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.summary})]}),e.processId!=null&&(0,T.jsx)(`a`,{className:`small mono`,href:P([`instances`,e.processId]),children:e.processId})]})},{key:`fired`,header:`Fired`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(B,{iso:e.firedAt}),e.resolvedAt!=null&&(0,T.jsxs)(`span`,{className:`small muted`,children:[`resolved `,(0,T.jsx)(B,{iso:e.resolvedAt,isRelative:!0})]})]})},{key:`deliveries`,header:`Delivered`,render:t=>t.deliveries.length===0?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsx)(`span`,{className:`stack stack--tight`,children:t.deliveries.map((t,n)=>(0,T.jsxs)(`span`,{className:`small`,title:t.error??void 0,children:[t.ok?`✓`:`✗`,` `,Br([t.channelId],e.channels)]},t.channelId+`-`+n))})},{key:`acknowledged`,header:`Acknowledged`,isActions:!0,render:e=>e.acknowledgedBy==null?c?(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>l(e),children:[(0,T.jsx)(E,{name:`check`}),`Acknowledge`]}):(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsxs)(`span`,{className:`small muted`,children:[`by `,e.acknowledgedBy,e.acknowledgedAt!=null&&(0,T.jsxs)(T.Fragment,{children:[` · `,(0,T.jsx)(B,{iso:e.acknowledgedAt,isRelative:!0})]})]})}];return(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`alerts-history`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`alerts-history`,children:`History`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Refreshes every few seconds.`})]}),(0,T.jsxs)(`div`,{className:`segmented`,role:`group`,"aria-label":`Show`,children:[(0,T.jsx)(`button`,{type:`button`,"aria-pressed":i===``,onClick:()=>r.set({state:``}),children:`All`}),(0,T.jsx)(`button`,{type:`button`,"aria-pressed":i===`firing`,onClick:()=>r.set({state:`firing`}),children:`Firing`}),(0,T.jsx)(`button`,{type:`button`,"aria-pressed":i===`resolved`,onClick:()=>r.set({state:`resolved`}),children:`Resolved`})]})]}),(0,T.jsx)(H,{state:s,subject:`the alert history`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(L,{caption:`Alert history`,columns:u,rows:e.items,rowKey:e=>e.alertId,emptyState:(0,T.jsx)(z,{title:i===`firing`?`Nothing is firing`:`No alerts yet`,icon:`check`,children:`Alerts show here when a rule fires.`})}),(0,T.jsx)(In,{page:o,total:e.total,pageSize:50,onPageChange:e=>r.set({page:String(e)})})]})})]})}function Lr(e){return{enabled:e.enabled,threshold:e.threshold,forMinutes:e.forMinutes,severity:e.severity,channelIds:e.channelIds}}function Rr(e){return e.silencedUntil!=null&&Date.parse(e.silencedUntil)>Date.now()}function zr(e){return e.threshold==null?`when it happens`:`above `+e.threshold+(e.thresholdUnit==null?``:` `+e.thresholdUnit)}function Br(e,t){return e.map(e=>t.find(t=>t.channelId===e)?.name??e).join(`, `)}var Vr=[{title:`Fleet`,permissions:[`fleet.view`,`fleet.manage`,`metrics.view`]},{title:`Colyseus Cloud`,permissions:[`cloud.view`,`cloud.billing`]},{title:`Sessions`,permissions:[`sessions.view`,`sessions.manage`,`sessions.inspect`]},{title:`Players`,permissions:[`players.view`,`players.viewAddresses`,`players.manage`,`players.notes`]},{title:`Bans`,permissions:[`bans.view`,`bans.manage`]},{title:`Dedicated`,permissions:[`dedicated.view`,`dedicated.manage`]},{title:`Server`,permissions:[`logs.view`,`logs.manage`,`config.view`,`config.manage`,`auth.view`,`auth.manage`]},{title:`Alerts and audit`,permissions:[`alerts.view`,`alerts.manage`,`audit.view`,`audit.retention`]},{title:`Access`,permissions:[`users.view`,`users.manage`,`apiKeys.manage`]},{title:`Extensions`,permissions:[`extensions.run`,`extensions.runDeveloper`]}],Hr=[{value:`30`,label:`30 days`},{value:`90`,label:`90 days`},{value:`365`,label:`1 year`},{value:`never`,label:`Never`},{value:`custom`,label:`On a date`}],Ur=864e5,Wr=3,Gr=[`fleet.view`,`metrics.view`];function Kr(){let e=jn(()=>w.get(`api-keys`),[]),[t,n]=(0,_.useState)(!1),[r,i]=(0,_.useState)(null),a=N(),o=async()=>{r!=null&&(await w.send(`DELETE`,`api-keys/`+encodeURIComponent(r.keyId)),a(`Revoked the key `+r.name+`. Requests with it are refused from now on.`),e.refresh())},s=[{key:`name`,header:`Key`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`strong`,{children:e.name}),(0,T.jsxs)(`span`,{className:`small muted mono`,children:[`bgsk_`,e.keyId,`_…`]})]})},{key:`permissions`,header:`Permissions`,render:e=>(0,T.jsx)(`span`,{className:`small break-anywhere`,title:e.permissions.join(`, `),children:Qr(e.permissions)})},{key:`networks`,header:`Networks`,render:e=>e.allowedNetworks.length===0?(0,T.jsx)(`span`,{className:`muted`,children:`any`}):(0,T.jsx)(`span`,{className:`mono small break-anywhere`,children:e.allowedNetworks.join(`, `)})},{key:`expires`,header:`Expires`,render:e=>(0,T.jsx)(B,{iso:e.expiresAt,emptyText:`never`})},{key:`used`,header:`Last used`,render:e=>(0,T.jsx)(B,{iso:e.lastUsedAt,isRelative:!0,emptyText:`never`})},{key:`created`,header:`Created`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(B,{iso:e.createdAt,isRelative:!0}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`by `,e.createdBy]})]})},{key:`status`,header:`Status`,render:e=>(0,T.jsx)(qr,{apiKey:e})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>e.revoked?null:(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>i(e),children:`Revoke`})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`API keys`,description:`Keys let scripts and tools call the admin API with a bearer header and the permissions you give them. A key's secret is shown once, when it is made.`,actions:(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>n(!0),children:[(0,T.jsx)(E,{name:`plus`}),`Create key`]})}),(0,T.jsx)(`section`,{className:`panel panel--flush`,children:(0,T.jsx)(H,{state:e,subject:`the API keys`,children:e=>(0,T.jsx)(L,{caption:`API keys`,columns:s,rows:e,rowKey:e=>e.keyId,emptyState:(0,T.jsx)(z,{title:`No API keys`,icon:`key`,children:`Create one for a script or a monitoring tool.`})})})}),t&&(0,T.jsx)(Jr,{onCreated:e.refresh,onClose:()=>n(!1)}),r!=null&&(0,T.jsx)(k,{title:`Revoke the key `+r.name+`?`,description:`Anything using it is refused straight away. You will confirm with your authenticator.`,confirmLabel:`Revoke key`,onConfirm:o,onClose:()=>i(null)})]})}function qr(e){return e.apiKey.revoked?(0,T.jsx)(V,{tone:`danger`,children:`revoked`}):e.apiKey.expiresAt!=null&&Date.parse(e.apiKey.expiresAt)<=Date.now()?(0,T.jsx)(V,{children:`expired`}):(0,T.jsx)(V,{tone:`success`,children:`active`})}function Jr(e){let[t,n]=(0,_.useState)(null),r=(0,_.useRef)(!1);return t==null?(0,T.jsx)(Yr,{onCreated:t=>{r.current=!0,n(t),e.onCreated()},onClose:()=>{r.current||e.onClose()}}):(0,T.jsxs)(Ee,{title:`Your new key: `+t.key.name,description:`Copy it now. This is the only time the console shows it; only its hash is stored.`,onClose:e.onClose,onSubmit:e.onClose,children:[(0,T.jsxs)(`div`,{className:`secret-box`,children:[(0,T.jsx)(`span`,{className:`code-box`,children:t.secret}),(0,T.jsx)(Xn,{text:t.secret,label:`Copy key`})]}),(0,T.jsxs)(`p`,{className:`small muted`,children:[`Send it as `,(0,T.jsxs)(`span`,{className:`mono`,children:[`authorization: Bearer `,`<key>`]}),` to `,(0,T.jsx)(`span`,{className:`mono`,children:`/game-server/admin/api/…`}),`.`]}),(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary`,children:`I have saved it`})})]})}function Yr(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(Gr),[a,o]=(0,_.useState)(`90`),[s,c]=(0,_.useState)(``),[l,u]=(0,_.useState)(``),d=Xr(a,s),f=t.trim()!==``&&r.length>0&&d!==void 0,p=async()=>{let n={name:t.trim(),permissions:r,expiresAt:d??null,allowedNetworks:Zr(l)};e.onCreated(await w.send(`POST`,`api-keys`,n))},m=(e,t)=>{i(t?[...r,e]:r.filter(t=>t!==e))};return(0,T.jsxs)(k,{title:`Create an API key`,description:`You will confirm with your authenticator.`,confirmLabel:`Create key`,tone:`primary`,canConfirm:f,onConfirm:p,onClose:e.onClose,isWide:!0,children:[(0,T.jsx)(O,{label:`Name`,hint:`What uses it, for example “Grafana” or “deploy script”.`,children:(0,T.jsx)(`input`,{className:`input`,value:t,onChange:e=>n(e.target.value),maxLength:80,autoComplete:`off`})}),(0,T.jsx)(`fieldset`,{className:`permission-groups`,children:Vr.map(e=>(0,T.jsxs)(`fieldset`,{className:`permission-group`,children:[(0,T.jsx)(`legend`,{children:e.title}),e.permissions.map(e=>(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:r.includes(e),onChange:t=>m(e,t.target.checked)}),(0,T.jsx)(`span`,{className:`mono small`,children:e})]},e))]},e.title))}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Expires`,children:(0,T.jsx)(`select`,{className:`select`,value:a,onChange:e=>o(e.target.value),children:Hr.map(e=>(0,T.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),a===`custom`&&(0,T.jsx)(O,{label:`Expiry date`,children:(0,T.jsx)(`input`,{className:`input`,type:`date`,value:s,onChange:e=>c(e.target.value)})})]}),(0,T.jsx)(O,{label:`Allowed networks (optional)`,hint:`Addresses or CIDR ranges, separated by commas or new lines. Empty allows any address.`,children:(0,T.jsx)(`textarea`,{className:`textarea mono`,rows:2,value:l,onChange:e=>u(e.target.value),placeholder:`10.0.0.0/8, 203.0.113.7`,spellCheck:!1})})]})}function Xr(e,t){if(e===`never`)return null;if(e===`custom`){let e=Date.parse(t+`T23:59:59`);return Number.isNaN(e)||e<=Date.now()?void 0:new Date(e).toISOString()}return new Date(Date.now()+Number(e)*Ur).toISOString()}function Zr(e){return e.split(/[\s,]+/).map(e=>e.trim()).filter(e=>e!==``)}function Qr(e){let t=Vr.reduce((e,t)=>e+t.permissions.length,0);if(e.length>=t)return`every permission`;let n=e.slice(0,Wr).join(`, `);return e.length<=Wr?n:n+` +`+(e.length-Wr)+` more`}function $r(e){let[t,n]=(0,_.useState)(!1),r=e.activeExtraCount??0;return(0,T.jsxs)(`div`,{className:t?`filter-bar filter-bar--expanded`:`filter-bar`,role:`search`,"aria-label":e.label,children:[e.children,e.extra!=null&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button filter-bar__toggle`,"aria-expanded":t,onClick:()=>n(!t),children:[(0,T.jsx)(E,{name:`search`}),r>0?`Filters (`+r+`)`:`Filters`]}),(0,T.jsx)(`div`,{className:`filter-bar__extra`,children:e.extra})]})]})}var ei=300;function ti(e){let{value:t,onCommit:n}=e,[r,i]=(0,_.useState)(t);return(0,_.useEffect)(()=>i(t),[t]),(0,_.useEffect)(()=>{if(r===t)return;let e=window.setTimeout(()=>n(r.trim()),ei);return()=>window.clearTimeout(e)},[r,t,n]),(0,T.jsx)(O,{label:e.label,className:`field--search`,children:(0,T.jsx)(`input`,{className:`input`,type:`search`,value:r,placeholder:e.placeholder,onChange:e=>i(e.target.value),spellCheck:!1})})}var ni=[`actor`,`action`,`target`],ri=365,ii=1,ai=2;function oi(){let{hasPermission:e}=M(),t=N(),n=Cr(),r={actor:n.get(`actor`),action:n.get(`action`),target:n.get(`target`),result:n.get(`result`),from:n.get(`from`),to:n.get(`to`)},i=Number(n.get(`page`)),a=Number.isInteger(i)&&i>=1?i:1,o={...r,from:Je(r.from)??``,to:Je(r.to)??``},s=jn(()=>w.get(`audit`,{...o,page:a}),[JSON.stringify(o),a]),[c,l]=(0,_.useState)({kind:`idle`}),[u,d]=(0,_.useState)(null),[f,p]=(0,_.useState)(!1),m=e=>{w.download(`audit/export`,{...o,format:e}).then(()=>t(`Downloaded the audit log as `+e.toUpperCase()+`.`),e=>t(`Could not export: `+C(e).message,`error`))},h=async()=>{l({kind:`checking`});try{l({kind:`done`,view:await w.get(`audit/verify`)})}catch(e){l({kind:`failed`,message:C(e).message})}},g=[{key:`at`,header:`Time`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(B,{iso:e.at}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`#`,e.sequence]})]})},{key:`actor`,header:`Actor`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.actor.name}),(0,T.jsxs)(`span`,{className:`small muted`,children:[e.actor.kind,e.clientAddress!=null&&` · `+e.clientAddress]})]})},{key:`action`,header:`Action`,render:e=>(0,T.jsx)(`span`,{className:`mono`,children:e.action})},{key:`target`,header:`Target`,render:e=>e.target==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.target})},{key:`result`,header:`Result`,render:e=>e.result.ok?(0,T.jsx)(V,{tone:`success`,children:`ok`}):(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(V,{tone:`danger`,children:`failed`}),e.result.detail!=null&&(0,T.jsx)(`span`,{className:`small muted break-anywhere`,children:e.result.detail})]})},{key:`details`,header:`Details`,isActions:!0,render:e=>(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>d(e),children:`Details`})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Audit log`,description:`Every admin action, who did it and whether it worked. Records cannot be edited or deleted; each one is chained to the one before by its hash.`,actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>void h(),disabled:c.kind===`checking`,children:[(0,T.jsx)(E,{name:`shield`}),c.kind===`checking`?`Verifying…`:`Verify chain`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>m(`csv`),children:[(0,T.jsx)(E,{name:`download`}),`CSV`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>m(`jsonl`),children:[(0,T.jsx)(E,{name:`download`}),`JSONL`]}),e(`audit.retention`)&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>p(!0),children:[(0,T.jsx)(E,{name:`clock`}),`Retention`]})]})}),(0,T.jsx)(si,{state:c}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Filter the audit log`,activeExtraCount:[`result`,`from`,`to`,`action`,`target`].filter(e=>r[e]!==``).length,extra:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(ti,{label:`Action`,value:r.action,placeholder:`user.create`,onCommit:e=>n.set({action:e})}),(0,T.jsx)(ti,{label:`Target`,value:r.target,placeholder:`Id or name`,onCommit:e=>n.set({target:e})}),(0,T.jsx)(O,{label:`Result`,children:(0,T.jsxs)(`select`,{className:`select`,value:r.result,onChange:e=>n.set({result:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),(0,T.jsx)(`option`,{value:`ok`,children:`Succeeded`}),(0,T.jsx)(`option`,{value:`failed`,children:`Failed`})]})}),(0,T.jsx)(O,{label:`From`,children:(0,T.jsx)(`input`,{className:`input`,type:`datetime-local`,value:r.from,onChange:e=>n.set({from:e.target.value})})}),(0,T.jsx)(O,{label:`To`,children:(0,T.jsx)(`input`,{className:`input`,type:`datetime-local`,value:r.to,onChange:e=>n.set({to:e.target.value})})})]}),children:(0,T.jsx)(ti,{label:`Actor`,value:r.actor,onCommit:e=>n.set({actor:e}),placeholder:`Name or id`})}),(0,T.jsx)(H,{state:s,subject:`the audit log`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(L,{caption:`Audit records`,columns:g,rows:e.items,rowKey:e=>String(e.sequence),emptyState:(0,T.jsx)(z,{title:`No records match`,icon:`audit`,children:ni.some(e=>r[e]!==``)?`Clear a filter to see more.`:void 0})}),(0,T.jsx)(In,{page:a,total:e.total,pageSize:50,onPageChange:e=>n.set({page:String(e)})})]})})]}),u!=null&&(0,T.jsx)(ci,{record:u,onClose:()=>d(null)}),f&&(0,T.jsx)(li,{onClose:()=>p(!1)})]})}function si(e){let{state:t}=e;return t.kind===`idle`||t.kind===`checking`?null:t.kind===`failed`?(0,T.jsxs)(`div`,{className:`banner banner--danger`,role:`alert`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`Could not verify the chain`}),(0,T.jsx)(`span`,{children:t.message})]})]}):t.view.ok?(0,T.jsxs)(`div`,{className:`banner banner--success`,role:`status`,children:[(0,T.jsx)(E,{name:`shield`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`The chain is intact`}),(0,T.jsxs)(`span`,{children:[t.view.checked,` records checked from the oldest kept record; none was changed or removed out of order.`]})]})]}):(0,T.jsxs)(`div`,{className:`banner banner--danger`,role:`alert`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsxs)(`strong`,{children:[`The chain is broken at record #`,t.view.brokenAtSequence]}),(0,T.jsxs)(`span`,{children:[`That record or the one before it was changed or removed outside the console. `,t.view.checked,` records were checked.`]})]})]})}function ci(e){let{record:t}=e,n=(0,_.useRef)(null);return(0,_.useEffect)(()=>{let e=n.current;return e!=null&&!e.open&&e.showModal(),()=>e?.close()},[]),(0,T.jsx)(`dialog`,{ref:n,className:`drawer`,"aria-label":`Audit record `+t.sequence,onCancel:t=>{t.preventDefault(),e.onClose()},children:(0,T.jsxs)(`div`,{className:`dialog__form`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsxs)(`h2`,{className:`dialog__title`,children:[`Record #`,t.sequence]}),(0,T.jsx)(`button`,{type:`button`,className:`icon-button`,onClick:e.onClose,"aria-label":`Close`,children:(0,T.jsx)(E,{name:`close`})})]}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Time`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:t.at})}),(0,T.jsx)(`dt`,{children:`Actor`}),(0,T.jsxs)(`dd`,{children:[t.actor.name,` `,(0,T.jsxs)(`span`,{className:`muted`,children:[`(`,t.actor.kind,`, `,(0,T.jsx)(`span`,{className:`mono`,children:t.actor.id}),`)`]})]}),(0,T.jsx)(`dt`,{children:`Address`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.clientAddress??`–`}),(0,T.jsx)(`dt`,{children:`Instance`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.processId}),(0,T.jsx)(`dt`,{children:`Action`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.action}),(0,T.jsx)(`dt`,{children:`Target`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.target??`–`}),(0,T.jsx)(`dt`,{children:`Result`}),(0,T.jsxs)(`dd`,{children:[t.result.ok?`ok`:`failed`,t.result.detail!=null&&` — `+t.result.detail]})]}),(0,T.jsx)(O,{label:`Parameters`,children:(0,T.jsx)(`pre`,{className:`code-box claims-box`,children:JSON.stringify(t.parameters,null,ai)})}),(0,T.jsx)(O,{label:`Hash`,children:(0,T.jsx)(`span`,{className:`code-box`,children:t.hash})}),(0,T.jsx)(O,{label:`Previous hash`,children:(0,T.jsx)(`span`,{className:`code-box`,children:t.previousHash})})]})})}function li(e){let t=N(),[n,r]=(0,_.useState)(String(ri)),i=Number(n),a=!Number.isInteger(i)||i<ii?`Enter whole days, 1 or more.`:null;return(0,T.jsx)(k,{title:`Audit retention`,description:`Records older than this are removed once an hour. The removal is recorded too. You will confirm with your authenticator.`,confirmLabel:`Save retention`,tone:`primary`,canConfirm:a==null,onConfirm:async()=>{let e={days:i},n=await w.send(`PUT`,`audit/retention`,e);t(`Audit records are now kept for `+n.days+` days.`)},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Keep records for (days)`,hint:`The server starts with 365 days.`,error:a,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:n,onChange:e=>r(e.target.value)})})})}var ui=1e3,di={"shared-secret":`Shared secret tokens`,jwt:`JSON Web Tokens`,webhook:`Webhook`,custom:`Custom verifier (game code)`};function fi(){let e=I(()=>w.get(`auth-tools/status`),y,[]),[t,n]=(0,_.useState)(null);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Auth tools`,description:`Check how player tokens are verified, test a token, and see who failed to sign in during the last hour.`}),(0,T.jsx)(H,{state:e,subject:`the auth status`,children:t=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsx)(pi,{status:t,onReloaded:e.refresh}),(0,T.jsx)(hi,{isAuthEnabled:t.enabled})]}),(0,T.jsx)(_i,{status:t,onBanAddress:n})]})}),t!=null&&(0,T.jsx)(st,{initialKind:`address`,initialValue:t,onCreated:e.refresh,onClose:()=>n(null)})]})}function pi(e){let{hasPermission:t}=M(),n=N(),[r,i]=(0,_.useState)(!1),{status:a}=e,o=async()=>{i(!0);try{let t=await w.send(`POST`,`auth-tools/reload-keys`),r=t.failures.length===0?``:` Failed: `+t.failures.join(`; `);n(`Reloaded the signing keys on `+t.reloadedInstances+` instances.`+r,t.failures.length===0?`success`:`error`),e.onReloaded()}catch(e){n(`Could not reload the keys: `+C(e).message,`error`)}finally{i(!1)}};return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Verification`}),a.enabled?(0,T.jsx)(V,{tone:`success`,children:`required`}):(0,T.jsx)(V,{tone:`warning`,children:`off: anyone can join`})]}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Mode`}),(0,T.jsx)(`dd`,{children:di[a.mode]}),a.mode===`shared-secret`&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`dt`,{children:`Shared tokens`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(mi,{state:a.sharedSecretTokens})})]}),a.mode===`jwt`&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`dt`,{children:`JWT secret`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(mi,{state:a.jwtSecret})}),(0,T.jsx)(`dt`,{children:`JWKS URL`}),(0,T.jsx)(`dd`,{className:`mono`,children:a.jwksUrl??(0,T.jsx)(`span`,{className:`muted`,children:`not set`})}),(0,T.jsx)(`dt`,{children:`Keys fetched`}),(0,T.jsx)(`dd`,{children:a.jwksCacheAgeSeconds==null?(0,T.jsx)(`span`,{className:`muted`,children:`not yet`}):Ie(a.jwksCacheAgeSeconds*ui)+` ago`}),(0,T.jsx)(`dt`,{children:`Issuer`}),(0,T.jsx)(`dd`,{className:`mono`,children:a.issuer??(0,T.jsx)(`span`,{className:`muted`,children:`any`})}),(0,T.jsx)(`dt`,{children:`Audience`}),(0,T.jsx)(`dd`,{className:`mono`,children:a.audience??(0,T.jsx)(`span`,{className:`muted`,children:`any`})})]}),a.mode===`webhook`&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`dt`,{children:`Webhook`}),(0,T.jsx)(`dd`,{className:`mono`,children:a.webhookUrl??(0,T.jsx)(`span`,{className:`muted`,children:`not set`})}),(0,T.jsx)(`dt`,{children:`Timeout`}),(0,T.jsx)(`dd`,{children:Ie(a.webhookTimeoutMs)})]})]}),a.jwksUrl!=null&&t(`auth.manage`)&&(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsxs)(`button`,{type:`button`,className:`button`,disabled:r,onClick:()=>void o(),children:[(0,T.jsx)(E,{name:`refresh`}),r?`Reloading…`:`Reload signing keys`]})})]})}function mi(e){return(0,T.jsx)(V,{tone:e.state===`set`?`success`:`warning`,isPlain:!0,children:e.state})}function hi(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(`session`),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(null),[d,f]=(0,_.useState)(!1),p=async()=>{if(t.trim()===``||d)return;let e={token:t.trim(),kind:r,sessionName:a.trim()===``?null:a.trim()};f(!0),u(null),c(null);try{c(await w.send(`POST`,`auth-tools/test-token`,e))}catch(e){u(C(e).message)}finally{n(``),f(!1)}};return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Token tester`})}),(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>{e.preventDefault(),p()},children:[!e.isAuthEnabled&&(0,T.jsx)(`p`,{className:`small muted`,children:`Verification is off, so the server accepts every join; the tester still checks the token with the configured mode.`}),(0,T.jsx)(O,{label:`Player token`,hint:`Not stored and not logged; the field clears after the test.`,children:(0,T.jsx)(`input`,{className:`input mono`,type:`password`,value:t,onChange:e=>n(e.target.value),autoComplete:`off`,spellCheck:!1})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Join kind`,children:(0,T.jsxs)(`select`,{className:`select`,value:r,onChange:e=>i(e.target.value),children:[(0,T.jsx)(`option`,{value:`session`,children:`Session join`}),(0,T.jsx)(`option`,{value:`lobby`,children:`Lobby join`})]})}),(0,T.jsx)(O,{label:`Session name`,hint:`Optional, for webhook rules that look at it.`,children:(0,T.jsx)(`input`,{className:`input`,value:a,onChange:e=>o(e.target.value),spellCheck:!1})})]}),(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsxs)(`button`,{type:`submit`,className:`button button--primary`,disabled:t.trim()===``||d,children:[(0,T.jsx)(E,{name:`key`}),d?`Testing…`:`Test token`]})})]}),l!=null&&(0,T.jsxs)(`div`,{className:`banner banner--danger`,role:`alert`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsx)(`div`,{className:`banner__body`,children:l})]}),s!=null&&(0,T.jsx)(gi,{result:s})]})}function gi(e){let{result:t}=e;if(!t.accepted)return(0,T.jsxs)(`div`,{className:`banner banner--danger`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`Refused`}),(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:t.refusal??`no reason given`})]})]});let n=t.identity?.userId??null,r=n!=null&&n!==``?`Accepted as `+n:`Accepted (the token names no user)`;return(0,T.jsxs)(`div`,{className:`banner banner--success`,role:`status`,children:[(0,T.jsx)(E,{name:`check`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:r}),t.identity!=null&&(0,T.jsx)(`pre`,{className:`code-box claims-box`,children:JSON.stringify(t.identity.claims,null,2)})]})]})}function _i(e){let{hasPermission:t}=M(),n=t(`bans.manage`),r=[{key:`reason`,header:`Reason`,render:e=>(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.reason})},{key:`count`,header:`Failures`,isNumber:!0,render:e=>j(e.count)}],i=[{key:`address`,header:`Address`,render:e=>(0,T.jsx)(`span`,{className:`mono`,children:e.address})},{key:`count`,header:`Failures`,isNumber:!0,render:e=>j(e.count)}];return n&&i.push({key:`actions`,header:`Actions`,isActions:!0,render:t=>(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onBanAddress(t.address),children:[(0,T.jsx)(E,{name:`bans`}),`Ban this address`]})}),(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Failures in the last hour`})}),(0,T.jsx)(L,{caption:`Failures by reason`,columns:r,rows:e.status.failuresLastHour,rowKey:e=>e.reason,emptyState:(0,T.jsx)(z,{title:`No token failures in the last hour`,icon:`shield`})})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Addresses failing most`})}),(0,T.jsx)(L,{caption:`Addresses with the most failures`,columns:i,rows:e.status.topFailingAddresses,rowKey:e=>e.address,emptyState:(0,T.jsx)(z,{title:`No address failed in the last hour`,icon:`globe`})})]})]})}var vi=1,yi=`this is not a ban file exported by the console (version 1)`;function bi(e){let t;try{t=JSON.parse(e)}catch{throw Error(yi)}let n=typeof t==`object`&&t?t:{};if(n.version!==vi||!Array.isArray(n.bans))throw Error(yi);return n}var xi=16,Si=6e4;function Ci(){let{hasPermission:e}=M(),t=N(),n=Cr(),r=n.get(`search`),i=n.get(`kind`),a=n.get(`active`),o=jn(()=>w.get(`bans`,{search:r,kind:i,active:a}),[r,i,a]),[s,c]=(0,_.useState)({kind:`none`}),l=(0,_.useRef)(null),u=e(`bans.manage`),d=()=>c({kind:`none`}),f=()=>{w.download(`bans/export`).then(()=>t(`Downloaded bans.json.`),e=>t(`Could not export: `+C(e).message,`error`))},p=async e=>{let n=e.target.files?.[0];if(e.target.value=``,n!=null)try{let e=bi(await n.text()),r=await w.send(`POST`,`bans/import`,e);t(`Imported `+r.imported+` bans; skipped `+r.skipped+` (expired or already banned).`),o.refresh()}catch(e){t(`Could not import `+n.name+`: `+C(e).message,`error`)}},m=[{key:`value`,header:`Banned`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.value}),(0,T.jsx)(`span`,{className:`small muted`,children:e.kind})]})},{key:`reason`,header:`Reason`,render:e=>(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.reason})},{key:`expires`,header:`Expires`,render:e=>e.expiresAt==null?(0,T.jsx)(V,{isPlain:!0,children:`permanent`}):(0,T.jsx)(B,{iso:e.expiresAt})},{key:`status`,header:`Status`,render:e=>e.active?(0,T.jsx)(V,{tone:`danger`,children:`active`}):(0,T.jsx)(V,{children:`expired`})},{key:`created`,header:`Created`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(B,{iso:e.createdAt,isRelative:!0}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`by `,e.createdBy]})]})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>c({kind:`history`,ban:e}),children:`History`}),u&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>c({kind:`edit`,ban:e}),children:`Edit`}),u&&e.active&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>c({kind:`remove`,ban:e}),children:`Unban`})]})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Bans`,description:`Banned user ids, addresses and networks are refused when they join, on every instance.`,actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:f,children:[(0,T.jsx)(E,{name:`download`}),`Export`]}),u&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>l.current?.click(),children:[(0,T.jsx)(E,{name:`upload`}),`Import`]}),u&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>c({kind:`create`}),children:[(0,T.jsx)(E,{name:`plus`}),`Ban a player`]})]})}),(0,T.jsx)(`input`,{ref:l,className:`visually-hidden`,type:`file`,accept:`application/json,.json`,tabIndex:-1,"aria-hidden":`true`,onChange:e=>void p(e)}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Filter bans`,activeExtraCount:[i,a].filter(e=>e!==``).length,extra:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(O,{label:`Kind`,children:(0,T.jsxs)(`select`,{className:`select`,value:i,onChange:e=>n.set({kind:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),(0,T.jsx)(`option`,{value:`user`,children:`User id`}),(0,T.jsx)(`option`,{value:`address`,children:`Address`}),(0,T.jsx)(`option`,{value:`network`,children:`Network`})]})}),(0,T.jsx)(O,{label:`Status`,children:(0,T.jsxs)(`select`,{className:`select`,value:a,onChange:e=>n.set({active:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Active and expired`}),(0,T.jsx)(`option`,{value:`true`,children:`Active`}),(0,T.jsx)(`option`,{value:`false`,children:`Expired`})]})})]}),children:(0,T.jsx)(ti,{label:`Search`,value:r,onCommit:e=>n.set({search:e}),placeholder:`Value, reason or note`})}),(0,T.jsx)(H,{state:o,subject:`the bans`,children:e=>(0,T.jsx)(L,{caption:`Bans`,columns:m,rows:e,rowKey:e=>e.banId,emptyState:(0,T.jsx)(z,{title:`No bans match`,icon:`bans`,children:u?`Use “Ban a player”, or ban from a session or player page.`:void 0})})})]}),s.kind===`create`&&(0,T.jsx)(st,{onCreated:o.refresh,onClose:d}),s.kind===`edit`&&(0,T.jsx)(wi,{ban:s.ban,onSaved:o.refresh,onClose:d}),s.kind===`remove`&&(0,T.jsx)(Ti,{ban:s.ban,onRemoved:o.refresh,onClose:d}),s.kind===`history`&&(0,T.jsx)(Ei,{ban:s.ban,onClose:d})]})}function wi(e){let t=N(),[n,r]=(0,_.useState)(e.ban.expiresAt==null),[i,a]=(0,_.useState)(Di(e.ban.expiresAt??new Date(Date.now()+1440*Si).toISOString())),[o,s]=(0,_.useState)(e.ban.reason),[c,l]=(0,_.useState)(e.ban.note),u=n?null:Oi(i),d=o.trim()!==``&&(n||u!=null);return(0,T.jsxs)(k,{title:`Edit the ban on `+e.ban.value,confirmLabel:`Save`,tone:`primary`,canConfirm:d,onConfirm:async()=>{let n={expiresAt:u,reason:o.trim(),note:c.trim(),expectedRevision:e.ban.revision};await w.send(`PUT`,`bans/`+encodeURIComponent(e.ban.banId),n),t(`Updated the ban on `+e.ban.value+`.`),e.onSaved()},onClose:e.onClose,children:[(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:n,onChange:e=>r(e.target.checked)}),(0,T.jsx)(`span`,{children:`Permanent`})]}),!n&&(0,T.jsx)(O,{label:`Expires`,hint:`In your browser's time zone. A past time ends the ban.`,children:(0,T.jsx)(`input`,{className:`input`,type:`datetime-local`,value:i,onChange:e=>a(e.target.value)})}),(0,T.jsx)(O,{label:`Reason`,children:(0,T.jsx)(`input`,{className:`input`,value:o,onChange:e=>s(e.target.value),maxLength:300})}),(0,T.jsx)(O,{label:`Note`,children:(0,T.jsx)(`input`,{className:`input`,value:c,onChange:e=>l(e.target.value),maxLength:1e3})})]})}function Ti(e){let t=N();return(0,T.jsx)(k,{title:`Unban `+e.ban.value+`?`,description:`Reason it was banned: `+e.ban.reason,confirmLabel:`Unban`,onConfirm:async()=>{await w.send(`DELETE`,`bans/`+encodeURIComponent(e.ban.banId)),t(`Unbanned `+e.ban.value+`. They can join again.`),e.onRemoved()},onClose:e.onClose})}function Ei(e){let t=(0,_.useRef)(null);return(0,_.useEffect)(()=>{let e=t.current;return e!=null&&!e.open&&e.showModal(),()=>e?.close()},[]),(0,T.jsx)(`dialog`,{ref:t,className:`drawer`,"aria-label":`History of the ban on `+e.ban.value,onCancel:t=>{t.preventDefault(),e.onClose()},children:(0,T.jsxs)(`div`,{className:`dialog__form`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsx)(`h2`,{className:`dialog__title`,children:`Ban history`}),(0,T.jsx)(`button`,{type:`button`,className:`icon-button`,onClick:e.onClose,"aria-label":`Close`,children:(0,T.jsx)(E,{name:`close`})})]}),(0,T.jsxs)(`p`,{children:[(0,T.jsx)(`span`,{className:`mono`,children:e.ban.value}),` `,(0,T.jsxs)(`span`,{className:`muted`,children:[`(`,e.ban.kind,`)`]})]}),(0,T.jsx)(`ul`,{className:`list-plain`,children:e.ban.history.map((e,t)=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{children:e.change}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`by `,e.by]})]}),(0,T.jsx)(B,{iso:e.at})]},e.at+`-`+t))})]})})}function Di(e){let t=new Date(e);return new Date(t.getTime()-t.getTimezoneOffset()*Si).toISOString().slice(0,xi)}function Oi(e){let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()}var ki=1048576,Ai=`–`,ji=10,Mi={ready:`success`,online:`success`,deployed:`success`,active:`success`,pending:`info`,provisioning:`info`,installing:`info`,resizing:`info`,launching:`info`,enqueued:`info`,deploying:`info`,trialing:`info`,parked:`warning`,destroying:`warning`,stopping:`warning`,"waiting restart":`warning`,past_due:`warning`,incomplete:`warning`,none:`warning`,error:`danger`,errored:`danger`,failed:`danger`,unpaid:`danger`,canceled:`danger`,incomplete_expired:`danger`,stopped:`danger`};function Ni(e){return e==null||!Object.hasOwn(Mi,e)?`neutral`:Mi[e]}function Pi(e,t){let n=t.toUpperCase();try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:n}).format(e)}catch{return j(e)+` `+n}}function Fi(e){return e==null||!Number.isFinite(e)?Ai:j(e)+`%`}function Ii(e){return Fe(e*ki)}function Li(e,t=22){let n=Number.parseInt(e,ji);return Number.isNaN(n)?!0:n>=t}function Ri(e,t,n){return Ie(Math.max(0,(t==null?n:Date.parse(t))-Date.parse(e)))}function zi(e){let t={outgoingBytes:0,incomingBytes:0};for(let n of e)t.outgoingBytes+=n.outgoingBytes,t.incomingBytes+=n.incomingBytes;return t}var Bi=1e3;function Vi(e){let{freshness:t}=e,n=Ie(t.refreshSeconds*Bi);return(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`p`,{className:`small muted`,children:[`Updated `,(0,T.jsx)(B,{iso:t.fetchedAt,isRelative:!0,emptyText:`not yet`}),` · Colyseus refreshes every `,n,t.isStale&&(0,T.jsxs)(T.Fragment,{children:[` `,(0,T.jsx)(V,{tone:`warning`,children:`Stale`})]})]}),t.problem!=null&&(0,T.jsxs)(`div`,{className:`inline-error`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`}),t.problem.message]})]})}function Hi(){return(0,T.jsx)(z,{icon:`clock`,title:`Waiting for the first figures from Colyseus Cloud`})}var Ui=1e3,Wi=429,Gi=[`enqueued`,`deploying`],Ki=`usd`,qi=`–`,Ji=[{stream:`all`,label:`All`},{stream:`out`,label:`Output`},{stream:`err`,label:`Errors`}],Yi=[100,500];function Xi(e){let[t,n]=(0,_.useState)(null),r=(e.part.data??[]).find(e=>e.id===t),i=r!=null&&Gi.includes(r.status),a=aa(n);return(0,T.jsx)($i,{title:`Deploys`,children:(0,T.jsxs)(`div`,{className:`stack`,children:[e.part.data==null?(0,T.jsx)(Hi,{}):(0,T.jsx)(L,{caption:`Recent deploys`,columns:a,rows:e.part.data,rowKey:e=>String(e.id),emptyState:(0,T.jsx)(`p`,{className:`small muted`,children:`No deploy yet.`})}),t!=null&&(0,T.jsx)(ea,{deployId:t,isRunning:i,onClose:()=>n(null)}),(0,T.jsx)(Vi,{freshness:e.part.freshness})]})})}function Zi(e){let[t,n]=(0,_.useState)(null),[r,i]=(0,_.useState)(`all`),[a,o]=(0,_.useState)(Yi[0]),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(null),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)(Date.now()),[h,g]=(0,_.useState)(!1),v=sa(e.instances,t),y=d==null?0:Date.parse(d)-p,b=y>0;(0,_.useEffect)(()=>{if(!b)return;let e=window.setInterval(()=>m(Date.now()),Ui);return()=>window.clearInterval(e)},[b]);let ee=async()=>{if(v!=null){g(!0);try{let e=await w.get(`cloud/instances/`+v+`/logs`,{stream:r,lines:a});c(e),u(null),f(e.nextAllowedAt)}catch(e){let t=C(e);u(t.message),t.status===Wi&&t.detail!=null&&f(t.detail)}finally{m(Date.now()),g(!1)}}},te=b?`Available in `+Be(y):`Fetch logs`;return(0,T.jsx)($i,{title:`Host logs`,children:(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsxs)(`div`,{className:`toolbar`,role:`group`,"aria-label":`Log request`,children:[(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{className:`field__label`,children:`Instance`}),(0,T.jsx)(`select`,{className:`select`,value:v??``,onChange:e=>n(Number(e.target.value)),children:e.instances.map(e=>(0,T.jsx)(`option`,{value:e.id,children:ca(e)},e.id))})]}),(0,T.jsx)(`div`,{className:`segmented`,role:`group`,"aria-label":`Log stream`,children:Ji.map(e=>(0,T.jsx)(`button`,{type:`button`,"aria-pressed":r===e.stream,onClick:()=>i(e.stream),children:e.label},e.stream))}),(0,T.jsxs)(`label`,{className:`field`,children:[(0,T.jsx)(`span`,{className:`field__label`,children:`Lines`}),(0,T.jsx)(`select`,{className:`select`,value:a,onChange:e=>o(Number(e.target.value)),children:Yi.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,disabled:v==null||b||h,onClick:()=>void ee(),children:[(0,T.jsx)(E,{name:`logs`}),te]})]}),l!=null&&(0,T.jsxs)(`div`,{className:`inline-error`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`}),l]}),s!=null&&(0,T.jsx)(ra,{logs:s}),(0,T.jsxs)(`p`,{className:`small muted`,children:[`The host's raw output and errors for one instance, including startup failures and crashes the server's own log cannot record. The server's own lines, live and filterable, are on the `,(0,T.jsx)(`a`,{href:P([`logs`]),children:`Logs`}),` page. Colyseus allows two log requests a minute for the whole team.`]})]})})}function Qi(){let e=I(()=>w.get(`cloud/billing`),se,[]);return(0,T.jsx)($i,{title:`Billing`,children:(0,T.jsx)(H,{state:e,subject:`billing`,children:e=>(0,T.jsxs)(`div`,{className:`stack`,children:[e.data==null?(0,T.jsx)(Hi,{}):(0,T.jsx)(ia,{billing:e.data}),(0,T.jsx)(Vi,{freshness:e.freshness})]})})})}function $i(e){return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:e.title})}),e.children]})}function ea(e){return e.isRunning?(0,T.jsx)(ta,{deployId:e.deployId,onClose:e.onClose}):(0,T.jsx)(U,{deployId:e.deployId,onClose:e.onClose})}function ta(e){let t=I(()=>oa(e.deployId),oe,[e.deployId]);return(0,T.jsx)(na,{deployId:e.deployId,detail:t,onClose:e.onClose})}function U(e){let t=jn(()=>oa(e.deployId),[e.deployId]);return(0,T.jsx)(na,{deployId:e.deployId,detail:t,onClose:e.onClose})}function na(e){return(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsx)(`h3`,{children:`Deploy `+e.deployId+` output`}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:e.onClose,children:[(0,T.jsx)(E,{name:`close`}),`Close`]})]}),(0,T.jsx)(H,{state:e.detail,subject:`the deploy output`,children:e=>e.output==null?(0,T.jsx)(`p`,{className:`muted`,children:`Colyseus no longer keeps this deploy's output.`}):(0,T.jsx)(`pre`,{className:`code-box code-box--tall`,children:e.output})})]})}function ra(e){let{logs:t}=e;return(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsx)(`pre`,{className:`code-box code-box--tall`,children:t.text}),(0,T.jsxs)(`p`,{className:`small muted`,children:[`Fetched `,(0,T.jsx)(B,{iso:t.fetchedAt}),t.isShared&&` (shared with another request)`]})]})}function ia(e){let{account:t,subscription:n}=e.billing,r=t?.currency??Ki;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsx)(`h3`,{children:`Subscription`}),n==null?(0,T.jsx)(`p`,{className:`muted`,children:`No subscription`}):(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Status`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(V,{tone:Ni(n.status),children:n.status})}),(0,T.jsx)(`dt`,{children:`Monthly price`}),(0,T.jsx)(`dd`,{children:Pi(n.monthlyPrice,r)}),(0,T.jsx)(`dt`,{children:`Period ends`}),(0,T.jsxs)(`dd`,{children:[(0,T.jsx)(B,{iso:n.currentPeriodEnd}),n.cancelAtPeriodEnd&&(0,T.jsxs)(T.Fragment,{children:[` `,(0,T.jsx)(V,{tone:`warning`,children:`Cancels at the end of the period`})]})]})]})]}),(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsx)(`h3`,{children:`Account`}),t==null?(0,T.jsx)(`p`,{className:`muted`,children:`No billing account yet`}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`p`,{className:`small muted`,children:`The team owner's account, shared with any other team they own`}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Credit balance`}),(0,T.jsx)(`dd`,{children:Pi(t.creditBalance,t.currency)}),(0,T.jsx)(`dt`,{children:`Balance due`}),(0,T.jsx)(`dd`,{children:Pi(t.balanceDue,t.currency)}),(0,T.jsx)(`dt`,{children:`Unused time credit`}),(0,T.jsx)(`dd`,{children:Pi(t.unusedTimeCredit,t.currency)})]})]})]})]})}function aa(e){return[{key:`status`,header:`Status`,render:e=>(0,T.jsx)(V,{tone:Ni(e.status),children:e.status})},{key:`branch`,header:`Branch`,render:e=>e.branch},{key:`commit`,header:`Commit`,render:e=>e.commit==null?qi:(0,T.jsx)(`code`,{children:e.commit})},{key:`message`,header:`Message`,render:e=>(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.message??qi})},{key:`started`,header:`Started`,render:e=>(0,T.jsx)(B,{iso:e.startedAt})},{key:`duration`,header:`Duration`,isNumber:!0,render:e=>Ri(e.startedAt,e.finishedAt,Date.now())},{key:`actions`,header:`Actions`,isActions:!0,render:t=>(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e(t.id),children:`Output`})}]}function oa(e){return w.get(`cloud/deploys/`+e)}function sa(e,t){return e.some(e=>e.id===t)?t:e.length>0?e[0].id:null}function ca(e){let t=[String(e.id),e.status];return e.isThisInstance&&t.push(`this console`),t.join(` · `)}var la=[1,2,2.5,5,10],ua=1,da=1e6;function fa(e){if(!Number.isFinite(e)||e<=0)return ua;let t=10**Math.floor(Math.log10(e)),n=e/t;return ya((la.find(e=>e>=n-2**-52)??la[la.length-1])*t)}function pa(e,t){let n=[];for(let r=0;r<=t;r++)n.push(ya(e*r/t));return n}function ma(e,t,n,r){let i=r-n;return i<=0?e.map(()=>t/2):e.map(e=>(e-n)/i*t)}function ha(e,t,n){return e.map(e=>Number.isFinite(e)?t-Math.min(Math.max(e/n,0),1)*t:NaN)}function ga(e,t){let n=[],r=!1;for(let i=0;i<e.length;i++)Number.isFinite(t[i])?(n.push((r?`L`:`M`)+ba(e[i])+` `+ba(t[i])),r=!0):r=!1;return n.join(``)}function _a(e,t){if(e.length===0)return-1;let n=0,r=e.length-1;for(;r-n>1;){let i=Math.floor((n+r)/2);e[i]<t?n=i:r=i}return Math.abs(e[n]-t)<=Math.abs(e[r]-t)?n:r}function va(e,t,n){if(t<=e)return[e];let r=[];for(let i=0;i<n;i++)r.push(e+(t-e)*i/(n-1));return r}function ya(e){return Math.round(e*da)/da}function ba(e){return Math.round(e*10)/10}var xa=864e5,Sa=9e7,Ca=6e4,wa=11,Ta=5,Ea=8,Da=`en-US`,Oa=new Intl.DateTimeFormat(Da,{month:`short`,day:`numeric`}),ka=new Intl.DateTimeFormat(Da,{month:`short`,day:`numeric`,timeZone:`UTC`});function Aa(e){return e>Sa}function ja(e,t){return Ve(e,t).slice(wa,19)}function Ma(e,t){return(t===`utc`?ka:Oa).format(e)}function Na(e,t,n,r){if(Aa(n))return Ma(e,t);let i=r<Ca?Ea:Ta;return ja(new Date(e).toISOString(),t).slice(0,i)}function Pa(e,t,n){if(!Aa(n))return ja(e,t);let r=Date.parse(e);return Number.isNaN(r)?ja(e,t):r%xa===0?Ma(r,`utc`):Ma(r,t)+` `+ja(e,t).slice(0,Ta)}var Fa=6,Ia=200,La=36,Ra=56,za=22,Ba=8,Va=4,Ha=110,Ua=2,Wa=17,Ga=8,Ka=6.8,qa=12;function Ja(e){let t=e.variant===`sparkline`,n=to(e.data,ee),[r,i]=no(),[a,o]=(0,_.useState)(-1),s=Ze(),c=t?0:Ra,l=t?2:Ba,u=t?La:Ia,d=e.minimumMaximum??1,f=e.timeSpanMilliseconds??null,p=(0,_.useMemo)(()=>eo(n,{width:i,plotLeft:c,plotTop:l,totalHeight:u,isSparkline:t,minimumMaximum:d,timeSpan:f}),[n,i,c,l,u,t,d,f]),m=(0,_.useRef)(0),h=a>=0&&a<n.times.length?a:-1,g=n.times.length-1,v=e=>{m.current=e.currentTarget.getBoundingClientRect().left},y=e=>{let t=_a(p.xs,e.clientX-m.current);t!==a&&o(t)},b=e=>{let t=ao(e.key);t===0||g<0||(e.preventDefault(),o(Math.min(Math.max((h<0?g:h)+t,0),g)))},te=e.title+`: `+oo(n,g,e.formatValue);if(t){let t=h>=0?h:g;return(0,T.jsxs)(`div`,{className:`sparkline`,children:[(0,T.jsx)(`div`,{className:`sparkline__plot`,ref:r,children:i>0&&(0,T.jsxs)(`svg`,{className:`chart__svg`,width:i,height:u,role:`img`,"aria-label":te,tabIndex:0,onKeyDown:b,onBlur:()=>o(-1),children:[(0,T.jsx)(Ya,{geometry:p,plotLeft:c,plotTop:l}),h>=0&&(0,T.jsx)(Qa,{geometry:p,index:h,plotLeft:c,plotTop:l}),(0,T.jsx)(`rect`,{className:`chart__hit`,x:c,y:0,width:p.plotWidth,height:u,onPointerEnter:v,onPointerMove:y,onPointerLeave:()=>o(-1)})]})}),(0,T.jsx)(`span`,{className:`sparkline__value`,children:t<0?`–`:e.formatValue(n.series[0]?.values[t]??NaN)})]})}return(0,T.jsxs)(`figure`,{className:`chart`,children:[(0,T.jsx)(`figcaption`,{className:`chart__title`,children:e.title}),(0,T.jsxs)(`div`,{className:`chart__plot`,ref:r,children:[n.times.length===0&&(0,T.jsx)(`p`,{className:`chart__empty muted`,children:`No samples in this range yet.`}),n.times.length>0&&i>0&&(0,T.jsxs)(`svg`,{className:`chart__svg`,width:i,height:u,role:`img`,"aria-label":te,tabIndex:0,onKeyDown:b,onBlur:()=>o(-1),children:[(0,T.jsx)(Xa,{geometry:p,plotLeft:c,plotTop:l,formatValue:e.formatValue}),(0,T.jsx)(Za,{geometry:p,plotLeft:c,plotTop:l,timeZone:s}),(0,T.jsx)(Ya,{geometry:p,plotLeft:c,plotTop:l}),h>=0&&(0,T.jsx)(Qa,{geometry:p,index:h,plotLeft:c,plotTop:l}),(0,T.jsx)(`rect`,{className:`chart__hit`,x:c,y:l,width:p.plotWidth,height:p.plotHeight,onPointerEnter:v,onPointerMove:y,onPointerLeave:()=>o(-1)}),h>=0&&(0,T.jsx)($a,{data:n,geometry:p,index:h,plotLeft:c,plotTop:l,chartWidth:i,timeZone:s,formatValue:e.formatValue})]})]}),(0,T.jsx)(`ul`,{className:`chart__legend`,children:n.series.map((t,n)=>(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`span`,{className:`chart-swatch `+ro(`chart-swatch`,n),"aria-hidden":`true`}),t.label,(0,T.jsx)(`strong`,{children:g<0?`–`:e.formatValue(t.values[g])})]},t.label))})]})}function Ya(e){let{geometry:t}=e,n=t.xs.length-1;return(0,T.jsxs)(`g`,{transform:`translate(`+e.plotLeft+` `+e.plotTop+`)`,children:[t.paths.map((e,t)=>(0,T.jsx)(`path`,{className:`chart-line `+ro(`chart-line`,t),d:e},t)),n>=0&&t.seriesYs.map((e,r)=>Number.isFinite(e[n])&&(0,T.jsx)(`circle`,{className:`chart-marker `+ro(`chart-dot`,r),cx:t.xs[n],cy:e[n],r:2.5},r))]})}function Xa(e){let{geometry:t}=e,n=pa(t.maximum,Va);return(0,T.jsx)(`g`,{className:`chart__axis`,children:n.map(n=>{let r=e.plotTop+t.plotHeight-n/t.maximum*t.plotHeight;return(0,T.jsxs)(`g`,{children:[(0,T.jsx)(`line`,{className:`chart__grid`,x1:e.plotLeft,x2:e.plotLeft+t.plotWidth,y1:r,y2:r}),(0,T.jsx)(`text`,{className:`chart__label`,x:e.plotLeft-6,y:r,textAnchor:`end`,dominantBaseline:`middle`,children:e.formatValue(n)})]},n)})})}function Za(e){let{geometry:t}=e,n=Math.max(Ua,Math.floor(t.plotWidth/Ha)),r=va(t.startTime,t.endTime,n),i=t.endTime-t.startTime,a=i/(n-1),o=ma(r,t.plotWidth,t.startTime,t.endTime),s=e.plotTop+t.plotHeight+za-6;return(0,T.jsx)(`g`,{className:`chart__axis`,children:r.map((t,n)=>(0,T.jsx)(`text`,{className:`chart__label`,x:e.plotLeft+o[n],y:s,textAnchor:io(n,r.length),children:Na(t,e.timeZone,i,a)},t))})}function Qa(e){let t=e.plotLeft+e.geometry.xs[e.index];return(0,T.jsxs)(`g`,{className:`chart__crosshair`,children:[(0,T.jsx)(`line`,{className:`chart__crosshair-line`,x1:t,x2:t,y1:e.plotTop,y2:e.plotTop+e.geometry.plotHeight}),e.geometry.seriesYs.map((n,r)=>Number.isFinite(n[e.index])&&(0,T.jsx)(`circle`,{className:`chart-dot `+ro(`chart-dot`,r),cx:t,cy:e.plotTop+n[e.index],r:3.5},r))]})}function $a(e){let t=e.geometry.endTime-e.geometry.startTime,n=[Pa(e.data.times[e.index],e.timeZone,t)];for(let t of e.data.series)n.push(t.label+`: `+e.formatValue(t.values[e.index]));let r=Math.max(...n.map(e=>e.length)),i=Math.ceil(r*Ka)+16,a=n.length*Wa+Ga,o=e.plotLeft+e.geometry.xs[e.index],s=o+qa+i<=e.chartWidth?o+qa:Math.max(0,o-qa-i);return(0,T.jsxs)(`g`,{className:`chart__tooltip`,transform:`translate(`+s+` `+e.plotTop+`)`,"aria-hidden":`true`,children:[(0,T.jsx)(`rect`,{className:`chart__tooltip-box`,width:i,height:a,rx:6}),n.map((e,t)=>(0,T.jsxs)(`text`,{className:t===0?`chart__tooltip-time`:`chart__tooltip-text`,x:Ga,y:Ga+(t+.75)*Wa-4,children:[t>0&&(0,T.jsx)(`tspan`,{className:ro(`chart-text`,t-1),children:`● `}),e]},t))]})}function eo(e,t){let n=Math.max(0,t.width-t.plotLeft-Ba),r=Math.max(0,t.totalHeight-t.plotTop-(t.isSparkline?2:za)),i=e.series.reduce((e,t)=>t.values.reduce((e,t)=>Number.isFinite(t)&&t>e?t:e,e),0),a=fa(Math.max(i,t.minimumMaximum)),o=e.times.map(e=>Date.parse(e)),s=o[o.length-1]??0,c=t.timeSpan==null?o[0]??0:s-t.timeSpan,l=ma(o,n,c,s),u=e.series.map(e=>ha(e.values,r,a));return{plotWidth:n,plotHeight:r,maximum:a,startTime:c,endTime:s,xs:l,paths:u.map(e=>ga(l,e)),seriesYs:u}}function to(e,t){let[n,r]=(0,_.useState)(e),i=(0,_.useRef)(0);return(0,_.useEffect)(()=>{let n=()=>{i.current=Date.now(),r(e)},a=i.current+t-Date.now();if(a<=0){n();return}let o=window.setTimeout(n,a);return()=>window.clearTimeout(o)},[e,t]),n}function no(){let[e,t]=(0,_.useState)(null),[n,r]=(0,_.useState)(0);return(0,_.useEffect)(()=>{if(e==null)return;let t=new ResizeObserver(e=>{let t=Math.floor(e[0]?.contentRect.width??0);r(t)});return t.observe(e),()=>t.disconnect()},[e]),[t,n]}function ro(e,t){return e+`--`+(t%Fa+1)}function io(e,t){return e===0?`start`:e===t-1?`end`:`middle`}function ao(e){return e===`ArrowLeft`?-1:+(e===`ArrowRight`)}function oo(e,t,n){return t<0?`no samples`:e.series.map(e=>e.label+` `+n(e.values[t])).join(`, `)}function so(e){let t=e.tone??`neutral`;return(0,T.jsxs)(`div`,{className:`stat-tile stat-tile--`+t,children:[(0,T.jsx)(`span`,{className:`stat-tile__label`,children:e.label}),(0,T.jsx)(`span`,{className:`stat-tile__value`,children:e.value}),e.hint!=null&&(0,T.jsx)(`span`,{className:`stat-tile__hint`,children:e.hint})]})}var co=6,lo=864e5,uo=30,fo=uo*lo,po=uo*lo,mo=10,ho=5,go=100,_o=1048576,vo=`–`,yo=[{title:`Players`,formatValue:j,minimumMaximum:mo,pick:e=>e.players},{title:`Rooms`,formatValue:j,minimumMaximum:ho,pick:e=>e.rooms},{title:`CPU`,formatValue:Fi,minimumMaximum:go,pick:e=>e.cpuPercent},{title:`Memory`,formatValue:Fi,minimumMaximum:go,pick:e=>e.memoryPercent}],bo=[{key:`instance`,header:`Instance`,render:e=>(0,T.jsxs)(`span`,{className:`row`,children:[e.id,e.isThisInstance&&(0,T.jsx)(V,{tone:`info`,isPlain:!0,children:`This console`})]})},{key:`status`,header:`Status`,render:e=>(0,T.jsx)(V,{tone:Ni(e.status),children:e.status})},{key:`deploy`,header:`Deploy`,render:e=>e.deployStatus==null?vo:(0,T.jsx)(V,{tone:Ni(e.deployStatus),children:e.deployStatus})},{key:`deployed`,header:`Deployed`,render:e=>(0,T.jsx)(B,{iso:e.deployedAt,emptyText:vo})}],xo=[{key:`instance`,header:`Instance`,render:e=>e.instanceId},{key:`process`,header:`Process`,render:e=>e.process.id},{key:`status`,header:`Status`,render:e=>(0,T.jsx)(V,{tone:Ni(e.process.status),children:e.process.status})},{key:`started`,header:`Started`,render:e=>(0,T.jsx)(B,{iso:e.process.startedAt,emptyText:vo})},{key:`restarts`,header:`Restarts`,isNumber:!0,render:e=>j(e.process.restarts)},{key:`node`,header:`Node`,render:e=>(0,T.jsx)(Ao,{version:e.process.nodeVersion})}];function So(e){let t=e.part.data,n=t!=null&&(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`code`,{children:t.slug}),t.maintenanceMode&&(0,T.jsx)(V,{tone:`warning`,children:`Maintenance mode`})]});return(0,T.jsx)(Eo,{title:t?.name??`Application`,aside:n,children:(0,T.jsx)(Do,{part:e.part,children:e=>e.locations.map(e=>(0,T.jsx)(Oo,{location:e},e.id))})})}function Co(e){return(0,T.jsx)(Eo,{title:`Host processes`,children:(0,T.jsx)(Do,{part:e.part,children:e=>(0,T.jsxs)(T.Fragment,{children:[e.locations.map(e=>(0,T.jsx)(ko,{location:e},e.id)),(0,T.jsxs)(`p`,{className:`small muted`,children:[`Live players, rooms, CPU and memory per process are on the `,(0,T.jsx)(`a`,{href:P([`instances`]),children:`Instances`}),` page.`]})]})})})}function wo(){let e=I(()=>w.get(`cloud/history`),se,[]);return(0,T.jsx)(Eo,{title:`Load history`,aside:(0,T.jsx)(`span`,{className:`small muted`,children:`Last 30 days`}),children:(0,T.jsx)(H,{state:e,subject:`the load history`,children:e=>(0,T.jsx)(Do,{part:e,children:e=>(0,T.jsx)(jo,{history:e})})})})}function To(e){return(0,T.jsx)(Eo,{title:`Traffic`,children:(0,T.jsx)(Do,{part:e.part,children:e=>(0,T.jsx)(Mo,{egress:e})})})}function Eo(e){return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:e.title}),e.aside]}),e.children]})}function Do(e){let t=e.part.data;return(0,T.jsxs)(`div`,{className:`stack`,children:[t==null?(0,T.jsx)(Hi,{}):e.children(t),(0,T.jsx)(Vi,{freshness:e.part.freshness})]})}function Oo(e){let{location:t}=e,n=t.plan.vcpus+` vCPU · `+Ii(t.plan.ramMegabytes)+` RAM · `+t.plan.transferGigabytes+` GB transfer a month per instance`;return(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Region`}),(0,T.jsx)(`dd`,{children:t.city+`, `+t.country+` (`+t.regionCode+`)`}),(0,T.jsx)(`dt`,{children:`Status`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(V,{tone:Ni(t.status),children:t.status})}),(0,T.jsx)(`dt`,{children:`Scale`}),(0,T.jsx)(`dd`,{children:t.scaleStrategy}),(0,T.jsx)(`dt`,{children:`Endpoint`}),(0,T.jsx)(`dd`,{children:t.endpoint??vo}),(0,T.jsx)(`dt`,{children:`Plan`}),(0,T.jsx)(`dd`,{children:n})]}),(0,T.jsx)(L,{caption:`Instances`,columns:bo,rows:t.instances,rowKey:e=>String(e.id)})]})}function ko(e){let{location:t}=e,n=t.instances.flatMap(e=>e.processes.map(t=>({instanceId:e.id,process:t}))),r=t.instances.filter(e=>e.isSilent),i=`Processes in `+t.regionCode;return(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsx)(`h3`,{children:i}),r.map(e=>(0,T.jsxs)(`p`,{className:`row small`,children:[(0,T.jsx)(V,{tone:`warning`,children:`Silent`}),`Instance `,e.id,` has no recent sample from Colyseus (last `,(0,T.jsx)(B,{iso:e.sampledAt,isRelative:!0,emptyText:`never`}),`).`]},e.id)),(0,T.jsx)(L,{caption:i,columns:xo,rows:n,rowKey:e=>e.instanceId+`-`+e.process.id,emptyState:(0,T.jsx)(`p`,{className:`small muted`,children:`No process reported.`})})]})}function Ao(e){return(0,T.jsxs)(`span`,{className:`row`,children:[e.version,!Li(e.version)&&(0,T.jsx)(V,{tone:`danger`,children:`Unsupported`})]})}function jo(e){let{history:t}=e,n=(0,_.useMemo)(()=>yo.map(e=>No(t.locations,e.pick)),[t.locations]);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{className:`chart-grid`,children:yo.map((e,t)=>(0,T.jsx)(`div`,{children:(0,T.jsx)(Ja,{title:e.title,data:n[t],formatValue:e.formatValue,minimumMaximum:e.minimumMaximum,timeSpanMilliseconds:fo})},e.title))}),t.locations.length>co&&(0,T.jsxs)(`p`,{className:`small muted`,children:[`Showing the first `,co,` locations.`]}),(0,T.jsx)(`p`,{className:`small muted`,children:`A day's players add up each instance's own peak, so they can exceed the location's real peak.`})]})}function Mo(e){let{egress:t}=e,n=zi(t.locations),r=(0,_.useMemo)(()=>Fo(t.locations),[t.locations]);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`stat-grid`,children:[(0,T.jsx)(so,{label:`Outgoing`,value:Fe(n.outgoingBytes),hint:`last 30 days`}),(0,T.jsx)(so,{label:`Incoming`,value:Fe(n.incomingBytes),hint:`last 30 days`})]}),(0,T.jsx)(Ja,{title:`Traffic per day`,data:r,formatValue:Fe,minimumMaximum:_o,timeSpanMilliseconds:po}),(0,T.jsxs)(`p`,{className:`small muted`,children:[`Collected `,(0,T.jsx)(B,{iso:t.collectedAt,emptyText:`not yet`}),`. Today keeps growing until it ends. Colyseus does not bill egress.`]})]})}function No(e,t){let n=[...e].sort((e,t)=>e.id-t.id).slice(0,co),r=Po(n);return{times:r,series:n.map(e=>{let n=new Map(e.points.map(e=>[e.time,e])),i=r.map(e=>{let r=n.get(e);return r==null?NaN:t(r)});return{label:e.regionCode,values:i}})}}function Po(e){let t=new Set;for(let n of e)for(let e of n.points)t.add(e.time);return[...t].sort((e,t)=>Date.parse(e)-Date.parse(t))}function Fo(e){let t=new Map;for(let n of e)for(let e of n.days)Io(t,e);let n=[...t.keys()].sort(),r=n.map(e=>t.get(e)??{outgoingBytes:0,incomingBytes:0});return{times:n.map(Lo),series:[{label:`Outgoing`,values:r.map(e=>e.outgoingBytes)},{label:`Incoming`,values:r.map(e=>e.incomingBytes)}]}}function Io(e,t){let n=e.get(t.date)??{outgoingBytes:0,incomingBytes:0};e.set(t.date,{outgoingBytes:n.outgoingBytes+t.outgoingBytes,incomingBytes:n.incomingBytes+t.incomingBytes})}function Lo(e){return e+`T00:00:00.000Z`}function Ro(){let{hasPermission:e}=M(),t=I(()=>w.get(`cloud`),oe,[]);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Colyseus Cloud`,description:`Your Colyseus Cloud application as Colyseus reports it: status, host processes, 30-day history, traffic, deploys, host logs and billing.`}),(0,T.jsx)(H,{state:t,subject:`Colyseus Cloud`,children:t=>(0,T.jsx)(zo,{view:t,hasPermission:e})})]})}function zo(e){let{view:t}=e;return t.feature===`setupNeeded`?(0,T.jsx)(W,{}):t.setupProblem==null?(0,T.jsxs)(`div`,{className:`stack stack--loose`,children:[(0,T.jsx)(So,{part:t.overview}),(0,T.jsx)(Co,{part:t.load}),(0,T.jsx)(wo,{}),(0,T.jsx)(To,{part:t.egress}),(0,T.jsx)(Bo,{view:t,hasPermission:e.hasPermission})]}):(0,T.jsx)(G,{problem:t.setupProblem,choices:t.applicationChoices})}function W(){return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(z,{icon:`cloud`,title:`Connect this console to Colyseus Cloud`}),(0,T.jsxs)(`ol`,{children:[(0,T.jsx)(`li`,{children:`In the Colyseus Cloud dashboard, open API tokens and create a token (it is read-only and covers the whole team).`}),(0,T.jsxs)(`li`,{children:[`On the application's environment variables, set `,(0,T.jsx)(`code`,{children:`GAME_SERVER_ADMIN_COLYSEUS_CLOUD_API_TOKEN`}),` (`,(0,T.jsx)(`code`,{children:`COLYSEUS_CLOUD_TOKEN`}),` works too) and, if the team has several applications, `,(0,T.jsx)(`code`,{children:`GAME_SERVER_ADMIN_COLYSEUS_CLOUD_APPLICATION`}),`.`]}),(0,T.jsx)(`li`,{children:`Redeploy.`})]})]})}function G(e){return(0,T.jsxs)(`div`,{className:`panel`,children:[(0,T.jsx)(Te,{title:`Colyseus Cloud cannot show an application`,children:e.problem.message}),e.choices.length>0&&(0,T.jsx)(`ul`,{children:e.choices.map(e=>(0,T.jsx)(`li`,{children:(0,T.jsx)(`code`,{children:e})},e))})]})}function Bo(e){let{view:t,hasPermission:n}=e,r=t.overview.data,i=r?.locations.flatMap(e=>e.instances)??[];return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(Xi,{part:t.deploys}),n(`logs.view`)&&r!=null&&(0,T.jsx)(Zi,{instances:i}),n(`cloud.billing`)&&(0,T.jsx)(Qi,{})]})}var Vo=[`General`,`TLS`,`UDP`,`Auth`,`Admin`,`Metrics`,`Limits`,`Redis`,`Dedicated`],Ho={tls:`TLS`,udp:`UDP`,auth:`Auth`,admin:`Admin`,metrics:`Metrics`,limits:`Limits`,redis:`Redis`,dedicated:`Dedicated`};function Uo(e){return Ho[e.split(`.`)[0]]??`General`}function Wo(e){return typeof e==`boolean`?`boolean`:typeof e==`number`?`number`:Array.isArray(e)?`list`:`text`}function Go(e){return e==null?`not set`:typeof e==`boolean`?e?`on`:`off`:Array.isArray(e)?e.length===0?`(empty list)`:e.map(e=>String(e)).join(`, `):typeof e==`object`?JSON.stringify(e):String(e)}function Ko(e){return e==null?``:Array.isArray(e)?e.map(e=>String(e)).join(`, `):String(e)}function qo(e,t){let n=e.trim();if(t===`boolean`)return n===`true`||n===`false`?{isValid:!0,value:n===`true`}:{isValid:!1,problem:`Choose on or off.`};if(t===`number`){let e=Number(n);return n===``||!Number.isFinite(e)?{isValid:!1,problem:`Enter a number.`}:{isValid:!0,value:e}}return t===`list`?{isValid:!0,value:n.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}:{isValid:!0,value:n===``?null:n}}function Jo(e,t,n){let r=n.trim(),i=/[\s"'$`\\]/.test(r)?JSON.stringify(r):r;return{environmentLine:e+`=`+i,flagLine:t==null?null:`--`+t+` `+(r===``?`""`:i)}}function Yo(e,t,n){let r=typeof e==`object`&&e?e.value:void 0;if(typeof r!=`object`||!r)return;let i=r;return(t===`fleet`?i.fleet:i.instances?.[t])?.[n]}var Xo=409,Zo=`fleet`,Qo=`logLevel`,$o=[`error`,`warn`,`info`,`debug`],es={default:{tone:`neutral`,label:`default`},platform:{tone:`neutral`,label:`Colyseus Cloud`},file:{tone:`neutral`,label:`config file`},code:{tone:`neutral`,label:`code`},environment:{tone:`warning`,label:`environment`},flag:{tone:`warning`,label:`flag`},override:{tone:`info`,label:`console override`}};function ts(){let e=N(),t=Cr(),n=t.get(`path`),r=t.get(`search`),i=jn(()=>w.get(`config`),[]),a=jn(()=>w.get(`config/history`),[]),[o,s]=(0,_.useState)({kind:`none`}),[c,l]=(0,_.useState)(``),u=()=>s({kind:`none`}),d=()=>{i.refresh(),a.refresh()},f=t=>{w.download(`config/export`,{format:t}).then(()=>e(t===`mjs`?`Downloaded the config file.`:`Downloaded the .env file.`),t=>e(`Could not export: `+C(t).message,`error`))};return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Configuration`,description:`Every option, its value and where it came from. Options marked live change without a restart; the rest change in your config file, environment or flags.`,actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>f(`mjs`),children:[(0,T.jsx)(E,{name:`download`}),`Export config file`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>f(`env`),children:[(0,T.jsx)(E,{name:`download`}),`Export .env`]})]})}),(0,T.jsx)(`div`,{className:`toolbar`,role:`search`,"aria-label":`Option filter`,children:(0,T.jsx)(ti,{label:`Find an option`,value:r,placeholder:`maxSessions, TLS, origin…`,onCommit:e=>t.set({search:e})})}),(0,T.jsx)(H,{state:i,subject:`the configuration`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(ns,{view:e,search:r,focusedPath:n,onEdit:e=>s({kind:`edit`,option:e}),onRevert:e=>s({kind:`revert`,scope:ds(a.data??[],e),path:e}),onSnippet:l}),(0,T.jsx)(ls,{options:e.options.filter(e=>e.needsRestart),selectedPath:c,onSelect:l}),o.kind===`edit`&&(0,T.jsx)(as,{view:e,option:o.option,onSaved:d,onClose:u})]})}),(0,T.jsx)(cs,{state:a,onRevert:e=>s({kind:`revert`,scope:e.scope,path:e.path})}),o.kind===`revert`&&(0,T.jsx)(ss,{scope:o.scope,path:o.path,onReverted:d,onClose:u})]})}function ns(e){let{hasPermission:t}=M(),n=t(`config.manage`),{focusedPath:r}=e,i=e.search.trim().toLowerCase(),a=(0,_.useMemo)(()=>e.view.options.filter(e=>i===``||(e.path+` `+e.description+` `+e.environmentVariable).toLowerCase().includes(i)),[e.view.options,i]);(0,_.useEffect)(()=>{r!==``&&document.getElementById(ms(r))?.scrollIntoView({block:`center`})},[r]);let o=[{key:`option`,header:`Option`,render:e=>(0,T.jsxs)(`span`,{id:ms(e.path),className:e.path===r?`stack stack--tight config-option config-option--focused`:`stack stack--tight config-option`,children:[(0,T.jsx)(`strong`,{className:`mono break-anywhere`,children:e.path}),(0,T.jsx)(`span`,{className:`small muted`,children:e.description}),(0,T.jsxs)(`span`,{className:`small muted mono break-anywhere`,children:[e.environmentVariable,e.flag!=null&&` · --`+e.flag]})]})},{key:`value`,header:`Value`,render:e=>e.isSecret?(0,T.jsx)(V,{tone:e.value===`set`?`success`:`neutral`,isPlain:!0,children:String(e.value)}):(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:Go(e.value)})},{key:`source`,header:`Source`,render:e=>(0,T.jsx)(V,{tone:es[e.source].tone,isPlain:!0,children:es[e.source].label})},{key:`state`,header:`Changes`,render:e=>(0,T.jsx)(rs,{option:e})},{key:`actions`,header:`Actions`,isActions:!0,render:t=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[n&&t.liveEditable&&!t.locked&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onEdit(t),children:[(0,T.jsx)(E,{name:`edit`}),`Edit`]}),n&&t.source===`override`&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onRevert(t.path),children:[(0,T.jsx)(E,{name:`history`}),`Revert`]}),t.needsRestart&&!t.isSecret&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onSnippet(t.path),children:`Snippet`})]})}];return a.length===0&&i!==``?(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(z,{title:`No option matches`,icon:`search`,children:`Try a shorter word, or clear the filter.`})}):(0,T.jsx)(T.Fragment,{children:Vo.map(t=>{let n=a.filter(e=>Uo(e.path)===t),r=t===`Dedicated`&&i===``;return n.length===0&&!r?null:(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-label":t+` options`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:t})}),n.length>0&&(0,T.jsx)(L,{caption:t+` options`,columns:o,rows:n,rowKey:e=>e.path}),r&&(0,T.jsx)(is,{scenes:e.view.dedicatedScenes})]},t)})})}function rs(e){let{option:t}=e;return(0,T.jsxs)(`span`,{className:`row`,children:[t.locked&&(0,T.jsxs)(`span`,{className:`badge badge--warning badge--plain`,title:`Set by `+es[t.source].label+`; change it there.`,children:[(0,T.jsx)(E,{name:`lock`}),`locked`]}),t.liveEditable&&!t.locked&&(0,T.jsx)(V,{tone:`success`,isPlain:!0,children:`live`}),t.needsRestart&&(0,T.jsx)(V,{isPlain:!0,children:`needs restart`})]})}function is(e){return e.scenes.length===0?(0,T.jsx)(`div`,{className:`panel__body`,children:(0,T.jsx)(`p`,{className:`muted`,children:`No dedicated scenes are configured.`})}):(0,T.jsx)(`div`,{className:`panel__body`,children:(0,T.jsx)(`ul`,{className:`list-plain`,children:e.scenes.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`strong`,{children:e.name}),(0,T.jsxs)(`span`,{className:`small muted mono break-anywhere`,children:[e.sceneRoot,e.sceneFile]})]}),(0,T.jsxs)(`span`,{className:`small muted`,children:[e.maxPlayers,` players`,e.onDemand?` · on demand`:``]})]},e.name))})})}function as(e){let t=N(),{option:n,view:r}=e,i=Wo(n.value),[a,o]=(0,_.useState)(Zo),[s,c]=(0,_.useState)(Ko(n.value)),l=qo(s,i);return(0,T.jsxs)(k,{title:`Change `+n.path,description:n.description,confirmLabel:`Save`,tone:`primary`,canConfirm:l.isValid,onConfirm:async()=>{if(!l.isValid)return;let i={scope:a,path:n.path,value:l.value,expectedRevision:r.revision};try{await w.send(`PUT`,`config/overrides`,i)}catch(t){throw ps(t,a,n.path,e.onSaved)}t(n.path+` is now `+Go(l.value)+(a===Zo?` on the fleet.`:` on `+a+`.`)),e.onSaved()},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`Applies to`,children:(0,T.jsxs)(`select`,{className:`select`,value:a,onChange:e=>o(e.target.value),children:[(0,T.jsx)(`option`,{value:Zo,children:`The whole fleet`}),(0,T.jsxs)(`option`,{value:r.processId,children:[`Only instance `,r.processId]})]})}),(0,T.jsx)(O,{label:`Value`,hint:i===`list`?`Separate entries with commas.`:`Now: `+Go(n.value),error:l.isValid?null:l.problem,children:(0,T.jsx)(os,{path:n.path,kind:i,valueText:s,onChange:c})})]})}function os(e){return e.kind===`boolean`?(0,T.jsxs)(`select`,{className:`select`,value:e.valueText,onChange:t=>e.onChange(t.target.value),children:[(0,T.jsx)(`option`,{value:`true`,children:`on`}),(0,T.jsx)(`option`,{value:`false`,children:`off`})]}):e.path===Qo?(0,T.jsx)(`select`,{className:`select`,value:e.valueText,onChange:t=>e.onChange(t.target.value),children:$o.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))}):e.kind===`list`?(0,T.jsx)(`textarea`,{className:`textarea mono`,value:e.valueText,onChange:t=>e.onChange(t.target.value),rows:3,spellCheck:!1,autoFocus:!0}):(0,T.jsx)(`input`,{className:`input mono`,inputMode:e.kind===`number`?`numeric`:void 0,value:e.valueText,onChange:t=>e.onChange(t.target.value),spellCheck:!1,autoFocus:!0})}function ss(e){let t=N();return(0,T.jsx)(k,{title:`Revert `+e.path+`?`,description:`The console override `+(e.scope===Zo?`on the fleet`:`on `+e.scope)+` is removed and the configured value applies again.`,confirmLabel:`Revert`,tone:`primary`,onConfirm:async()=>{let n=new URLSearchParams({scope:e.scope,path:e.path}).toString();await w.send(`DELETE`,`config/overrides?`+n),t(e.path+` is back to its configured value.`),e.onReverted()},onClose:e.onClose})}function cs(e){let{hasPermission:t}=M(),n=t(`config.manage`);return(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Change history`})}),(0,T.jsx)(H,{state:e.state,subject:`the change history`,children:t=>{let r=t.slice().sort((e,t)=>t.at.localeCompare(e.at)),i=fs(r);return(0,T.jsx)(L,{caption:`Configuration changes`,columns:[{key:`at`,header:`When`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(B,{iso:e.at}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`by `,e.by]})]})},{key:`option`,header:`Option`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.path}),(0,T.jsx)(`span`,{className:`small muted`,children:e.scope===Zo?`fleet`:`instance `+e.scope})]})},{key:`change`,header:`Change`,render:e=>(0,T.jsxs)(`span`,{className:`mono break-anywhere`,children:[Go(e.before),` → `,Go(e.after)]})},{key:`state`,header:`State`,render:e=>e.reverted?(0,T.jsx)(V,{isPlain:!0,children:`reverted`}):(0,T.jsx)(V,{tone:`info`,isPlain:!0,children:`applied`})},{key:`actions`,header:`Actions`,isActions:!0,render:t=>n&&i.has(t)?(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onRevert(t),children:[(0,T.jsx)(E,{name:`history`}),`Revert`]}):null}],rows:r,rowKey:e=>e.at+e.scope+e.path,emptyState:(0,T.jsx)(z,{title:`No changes from the console yet`,icon:`history`})})}})]})}function ls(e){let t=e.options.filter(e=>!e.isSecret),n=t.find(t=>t.path===e.selectedPath)??t[0],[r,i]=(0,_.useState)(``),a=n?.path??``;if((0,_.useEffect)(()=>i(n==null?``:Ko(n.value)),[a]),n==null)return null;let o=Jo(n.environmentVariable,n.flag,r);return(0,T.jsxs)(`section`,{className:`panel`,id:`restart-snippet`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{children:`Needs a restart`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`These options are read once at start. Pick one and a value; copy the line into your environment or start command, then restart the instance.`})]})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Option`,children:(0,T.jsx)(`select`,{className:`select`,value:n.path,onChange:t=>e.onSelect(t.target.value),children:t.map(e=>(0,T.jsx)(`option`,{value:e.path,children:e.path},e.path))})}),(0,T.jsx)(O,{label:`New value`,hint:n.description,children:(0,T.jsx)(`input`,{className:`input mono`,value:r,onChange:e=>i(e.target.value),spellCheck:!1})})]}),(0,T.jsxs)(`div`,{className:`snippet-lines`,children:[(0,T.jsx)(us,{label:`Environment`,text:o.environmentLine}),o.flagLine!=null&&(0,T.jsx)(us,{label:`Flag`,text:o.flagLine})]})]})}function us(e){return(0,T.jsxs)(`div`,{className:`snippet-line`,children:[(0,T.jsx)(`span`,{className:`small muted`,children:e.label}),(0,T.jsx)(`code`,{className:`code-box`,children:e.text}),(0,T.jsx)(Xn,{text:e.text})]})}function ds(e,t){return e.filter(e=>e.path===t&&!e.reverted).sort((e,t)=>t.at.localeCompare(e.at))[0]?.scope??Zo}function fs(e){let t=new Set,n=new Set;for(let r of e){let e=r.scope+` `+r.path;t.has(e)||(t.add(e),r.reverted||n.add(r))}return n}function ps(e,t,n,r){let i=C(e);if(i.status!==Xo||i.current===void 0)return i;r();let a=Yo(i.current,t,n),o=a===void 0?`no override (the configured value)`:Go(a);return Error(i.message+`. The current value is `+o+`; check it and save again.`)}function ms(e){return`option-`+e}var hs=128,gs=300,_s={boot:{tone:`info`,label:`at boot`},admin:{tone:`success`,label:`by an admin`},onDemand:{tone:`neutral`,label:`on demand`},code:{tone:`neutral`,label:`by game code`}};function vs(){let{hasPermission:e}=M(),t=N(),n=I(()=>w.get(`dedicated`),y,[]),[r,i]=(0,_.useState)({kind:`none`}),[a,o]=(0,_.useState)(null),s=e(`dedicated.manage`),c=()=>i({kind:`none`}),l=async e=>{o(e);try{let t=await w.send(`POST`,`dedicated/scenes/`+encodeURIComponent(e)+`/check`,{processId:null});i({kind:`check`,result:t})}catch(n){t(`Could not check `+e+`: `+C(n).message,`error`)}finally{o(null)}},u=n.data?.scenes[0]?.name??``;return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Dedicated sessions`,description:`Sessions the server runs itself from the scenes in its configuration. Players join them like any other session.`,actions:s&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,disabled:u===``,onClick:()=>i({kind:`start`,sceneName:u}),children:[(0,T.jsx)(E,{name:`plus`}),`Start session`]})}),(0,T.jsx)(H,{state:n,subject:`the dedicated sessions`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(ys,{sessions:e.sessions,canManage:s,onAction:i}),(0,T.jsx)(xs,{scenes:e.scenes,canManage:s,checkingScene:a,onCheck:e=>void l(e),onStart:e=>i({kind:`start`,sceneName:e})}),r.kind===`start`&&(0,T.jsx)(Ss,{scenes:e.scenes,initialSceneName:r.sceneName,onStarted:n.refresh,onClose:c})]})}),r.kind===`stop`&&(0,T.jsx)(Cs,{session:r.session,isRestart:!1,onDone:n.refresh,onClose:c}),r.kind===`restart`&&(0,T.jsx)(Cs,{session:r.session,isRestart:!0,onDone:n.refresh,onClose:c}),r.kind===`check`&&(0,T.jsx)(ws,{result:r.result,onClose:c})]})}function ys(e){let t=[{key:`session`,header:`Session`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:P([`sessions`,e.roomId]),children:(0,T.jsx)(`strong`,{className:`break-anywhere`,children:e.sessionName})}),(0,T.jsx)(`span`,{className:`small muted mono`,children:e.roomId})]})},{key:`scene`,header:`Scene`,render:e=>e.sceneName},{key:`instance`,header:`Instance`,render:e=>(0,T.jsx)(`a`,{className:`mono`,href:P([`instances`,e.processId]),children:e.processId})},{key:`players`,header:`Players`,isNumber:!0,render:e=>e.players+` / `+e.maxPlayers},{key:`startedBy`,header:`Started`,render:e=>(0,T.jsx)(V,{tone:_s[e.startedBy].tone,isPlain:!0,children:_s[e.startedBy].label})},{key:`frame`,header:`Frame time (1 h)`,render:e=>(0,T.jsx)(bs,{buckets:e.frameStatistics,measure:`frame`})},{key:`overruns`,header:`Tick overruns (1 h)`,render:e=>(0,T.jsx)(bs,{buckets:e.frameStatistics,measure:`overruns`})}];return e.canManage&&t.push({key:`actions`,header:`Actions`,isActions:!0,render:t=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onAction({kind:`restart`,session:t}),children:[(0,T.jsx)(E,{name:`restart`}),`Restart`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small button--danger`,onClick:()=>e.onAction({kind:`stop`,session:t}),children:[(0,T.jsx)(E,{name:`stop`}),`Stop`]})]})}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`h2`,{children:[`Running sessions (`,e.sessions.length,`)`]})}),(0,T.jsx)(L,{caption:`Running dedicated sessions`,columns:t,rows:e.sessions,rowKey:e=>e.roomId,emptyState:(0,T.jsx)(z,{title:`No dedicated session is running`,icon:`dedicated`,children:`Start one from a configured scene below.`})})]})}function bs(e){let{buckets:t,measure:n}=e,r=(0,_.useMemo)(()=>({times:t.map(e=>e.at),series:[{label:n===`frame`?`Average frame`:`Tick overruns`,values:t.map(e=>n===`frame`?e.averageFrameMilliseconds:e.tickOverruns)}]}),[t,n]);return(0,T.jsx)(Ja,{title:n===`frame`?`Average frame time`:`Tick overruns`,data:r,formatValue:n===`frame`?Ts:j,variant:`sparkline`})}function xs(e){return(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`h2`,{children:[`Configured scenes (`,e.scenes.length,`)`]}),(0,T.jsx)(V,{isPlain:!0,children:`from config`})]}),(0,T.jsx)(L,{caption:`Configured dedicated scenes`,columns:[{key:`name`,header:`Scene`,render:e=>(0,T.jsx)(`strong`,{children:e.name})},{key:`file`,header:`Scene file`,render:e=>(0,T.jsxs)(`span`,{className:`mono break-anywhere`,children:[e.sceneRoot,e.sceneFile]})},{key:`scripts`,header:`Project scripts`,isNumber:!0,render:e=>(0,T.jsx)(`span`,{title:e.projectScripts.join(`
17
+ `),children:e.projectScripts.length})},{key:`maxPlayers`,header:`Max players`,isNumber:!0,render:e=>e.maxPlayers},{key:`onDemand`,header:`On demand`,render:e=>e.onDemand?(0,T.jsxs)(`span`,{className:`nowrap`,children:[`yes, idle `,e.idleSeconds,` s`]}):(0,T.jsx)(`span`,{className:`muted`,children:`no`})},{key:`actions`,header:`Actions`,isActions:!0,render:t=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,disabled:e.checkingScene!=null,onClick:()=>e.onCheck(t.name),children:[(0,T.jsx)(E,{name:`check`}),e.checkingScene===t.name?`Checking…`:`Check`]}),e.canManage&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onStart(t.name),children:[(0,T.jsx)(E,{name:`play`}),`Start`]})]})}],rows:e.scenes,rowKey:e=>e.name,emptyState:(0,T.jsxs)(z,{title:`No dedicated scenes are configured`,icon:`dedicated`,children:[`Add scenes under `,(0,T.jsx)(`span`,{className:`mono`,children:`dedicated.scenes`}),` in the server's config file.`]})})]})}function Ss(e){let t=N(),n=jn(()=>w.get(`instances`),[]),[r,i]=(0,_.useState)(e.initialSceneName),[a,o]=(0,_.useState)(e.initialSceneName),[s,c]=(0,_.useState)(``),l=(n.data??[]).filter(e=>e.status===`up`);return(0,T.jsxs)(k,{title:`Start a dedicated session`,description:`The server loads the scene and runs the session; players can join it by name.`,confirmLabel:`Start session`,tone:`primary`,canConfirm:r!==``&&a.trim()!==``,onConfirm:async()=>{let n=await w.send(`POST`,`dedicated/start`,{sceneName:r,sessionName:a.trim(),processId:s===``?null:s});t(`Started `+a.trim()+` (room `+n.roomId+`).`),e.onStarted()},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`Scene`,children:(0,T.jsx)(`select`,{className:`select`,value:r,onChange:e=>i(e.target.value),children:e.scenes.map(e=>(0,T.jsx)(`option`,{value:e.name,children:e.name},e.name))})}),(0,T.jsx)(O,{label:`Session name`,hint:`Players join with this name. It must not be running already.`,children:(0,T.jsx)(`input`,{className:`input`,value:a,onChange:e=>o(e.target.value),maxLength:hs,spellCheck:!1,autoFocus:!0})}),(0,T.jsx)(O,{label:`Instance`,children:(0,T.jsxs)(`select`,{className:`select`,value:s,onChange:e=>c(e.target.value),children:[(0,T.jsx)(`option`,{value:``,children:`The instance answering the console`}),l.map(e=>(0,T.jsxs)(`option`,{value:e.processId,children:[e.processId,e.instanceLabel==null?``:` · `+e.instanceLabel,` (`,e.sessions,` sessions)`]},e.processId))]})})]})}function Cs(e){let t=N(),{session:n,isRestart:r}=e,[i,a]=(0,_.useState)(r?`This session is restarting. Join again in a moment.`:`This session was stopped by an administrator.`),o=r?`restart`:`stop`;return(0,T.jsx)(k,{title:(r?`Restart `:`Stop `)+n.sessionName+`?`,description:`Its `+n.players+` players are disconnected and see your message.`+(r?` The session starts again under the same name.`:``),confirmLabel:r?`Restart session`:`Stop session`,tone:r?`primary`:`danger`,canConfirm:i.trim()!==``,onConfirm:async()=>{let a=`dedicated/`+encodeURIComponent(n.roomId)+`/`+o;if(r){let e=await w.send(`POST`,a,{message:i.trim()});t(`Restarted `+n.sessionName+` (new room `+e.roomId+`).`)}else await w.send(`POST`,a,{message:i.trim()}),t(`Stopped `+n.sessionName+`.`);e.onDone()},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Message to the players`,children:(0,T.jsx)(`input`,{className:`input`,value:i,onChange:e=>a(e.target.value),maxLength:gs,autoFocus:!0})})})}function ws(e){let{result:t}=e;return(0,T.jsxs)(Ee,{title:`Check of `+t.sceneName,description:t.ok?`Every file loads. The scene was not started.`:`Some files did not load. The scene was not started.`,onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`div`,{className:t.ok?`banner banner--success`:`banner banner--danger`,role:`status`,children:[(0,T.jsx)(E,{name:t.ok?`check`:`alert`,className:`banner__icon`}),(0,T.jsx)(`div`,{className:`banner__body`,children:(0,T.jsx)(`strong`,{children:t.ok?`Ready to start`:`This scene would fail to start`})})]}),(0,T.jsx)(`ul`,{className:`list-plain`,children:t.files.map(e=>(0,T.jsxs)(`li`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.url}),(0,T.jsxs)(`span`,{className:`row`,children:[e.ok?(0,T.jsx)(V,{tone:`success`,children:`loads`}):(0,T.jsx)(V,{tone:`danger`,children:`fails`}),e.status!=null&&(0,T.jsxs)(`span`,{className:`small muted`,children:[`HTTP `,e.status]}),e.error!=null&&(0,T.jsx)(`span`,{className:`small muted break-anywhere`,children:e.error})]})]},e.url))}),(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsx)(`button`,{type:`button`,className:`button button--primary`,onClick:e.onClose,autoFocus:!0,children:`Done`})})]})}function Ts(e){return j(e)+` ms`}var Es={"README.md":`Install, configure and run the game server, and use this console.`,"DEPLOY.md":`Put the server in production: hosting recipes, TLS, scaling and the production checklist.`,"CUSTOM.md":`Run your own code on the server: dedicated sessions, hooks, endpoints and custom admin actions.`},Ds={"README.md":`README`,"DEPLOY.md":`Deploying`,"CUSTOM.md":`Custom code`},Os=3;function ks(e){let t=Cr().get(`section`),n=qt.includes(e.documentName),r=jn(()=>n?w.get(`docs/`+encodeURIComponent(e.documentName)):Promise.resolve({markdown:``}),[e.documentName]),i=(0,_.useMemo)(()=>Pt(r.data?.markdown??``),[r.data]);return(0,_.useEffect)(()=>{t!==``&&i.length!==0&&document.getElementById(t)?.scrollIntoView({block:`start`})},[t,i]),(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Documentation`,description:Es[e.documentName]??`The package documentation.`}),(0,T.jsx)(`div`,{className:`tabs`,role:`tablist`,"aria-label":`Documents`,children:qt.map(t=>(0,T.jsx)(`a`,{role:`tab`,"aria-selected":t===e.documentName,href:P([`docs`,t]),children:Ds[t]},t))}),n?(0,T.jsx)(H,{state:r,subject:e.documentName,children:()=>(0,T.jsxs)(`div`,{className:`docs-layout`,children:[(0,T.jsx)(As,{blocks:i,documentName:e.documentName}),(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(F,{blocks:i,documentName:e.documentName,targetAnchor:t})})]})}):(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsx)(z,{title:`There is no document called `+e.documentName,icon:`docs`,children:`Pick README, Deploying or Custom code above.`})})]})}function As(e){let t=e.blocks.filter(e=>e.kind===`heading`&&e.level>=2&&e.level<=Os);return(0,T.jsx)(`nav`,{className:`docs-toc`,"aria-label":`Contents`,children:t.map(t=>(0,T.jsx)(`a`,{className:t.level===Os?`docs-toc__sub`:void 0,href:P([`docs`,e.documentName],{section:t.anchor}),children:t.text.replace(/`/g,``)},t.anchor))})}function js(){return jn(()=>w.get(`extensions`),[])}function Ms(e){return{processId:e.processId,roomId:e.roomId,playerId:e.playerId,userId:e.userId}}var Ns={server:`the server`,instance:`this instance`,session:`this session`,player:`this player`},Ps=400,Fs=`••••••`;function Is(e){let{action:t}=e,[n,r]=(0,_.useState)(()=>Hs(t.fields)),[i,a]=(0,_.useState)({}),[o,s]=(0,_.useState)(`form`),[c,l]=(0,_.useState)(null),[u,d]=(0,_.useState)(null),[f,p]=(0,_.useState)({}),[m,h]=(0,_.useState)(!1),g=e.target??Gs(t.target,i),v=e.targetText??Ns[t.target],y=t.fields.every(e=>!e.required||Ws(n[e.name]))&&Ks(t.target,g),b=async()=>{h(!0),d(null);try{let e={target:g,inputs:Us(t.fields,n)};l(await w.send(`POST`,`extensions/actions/`+encodeURIComponent(t.name),e)),s(`result`)}catch(e){let n=C(e);n.status===Ps&&t.fields.some(e=>e.name===n.detail)&&n.detail!=null?(p({[n.detail]:n.message}),s(`form`)):d(n.message)}h(!1)};return(0,T.jsxs)(Ee,{title:t.label,description:t.description,onClose:e.onClose,onSubmit:()=>{o===`result`?e.onClose():y&&!m&&(o===`form`&&t.confirm?s(`confirm`):b())},isWide:!0,children:[o===`form`&&(0,T.jsxs)(T.Fragment,{children:[e.target==null&&(0,T.jsx)(zs,{target:t.target,values:i,onChange:a}),t.fields.map(e=>(0,T.jsx)(Rs,{field:e,value:n[e.name],error:f[e.name]??null,onChange:t=>{r({...n,[e.name]:t}),p({...f,[e.name]:``})}},e.name)),t.fields.length===0&&e.target!=null&&(0,T.jsxs)(`p`,{className:`muted`,children:[`This action has no inputs. It runs on `,v,`.`]})]}),o===`confirm`&&(0,T.jsx)(Bs,{action:t,values:n,targetText:v}),o===`result`&&c!=null&&(0,T.jsx)(Vs,{result:c}),u!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:u})}),(0,T.jsxs)(`div`,{className:`form-actions`,children:[o!==`result`&&(0,T.jsx)(`button`,{type:`button`,className:`button`,onClick:o===`confirm`?()=>s(`form`):e.onClose,disabled:m,children:o===`confirm`?`Back`:`Cancel`}),(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary`,disabled:o!==`result`&&(!y||m),children:Js(o,m,t)})]})]})}function Ls(e){let t=js(),[n,r]=(0,_.useState)(null),i=(t.data?.actions??[]).filter(t=>t.target===e.target);return i.length===0?null:(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`custom-actions-`+e.target,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`custom-actions-`+e.target,children:`Custom actions`}),(0,T.jsxs)(`p`,{className:`panel__description`,children:[`Actions your game's developers added for `,e.targetText,`.`]})]}),(0,T.jsx)(E,{name:`extensions`})]}),(0,T.jsx)(`div`,{className:`row`,children:i.map(t=>(0,T.jsxs)(`button`,{type:`button`,className:`button`,title:t.description,disabled:e.unavailableReason!=null,onClick:()=>r(t),children:[(0,T.jsx)(E,{name:`play`}),t.label]},t.name))}),e.unavailableReason!=null&&(0,T.jsx)(`p`,{className:`small muted`,children:e.unavailableReason}),n!=null&&(0,T.jsx)(Is,{action:n,target:e.targetIds,targetText:e.targetText,onClose:()=>r(null)})]})}function Rs(e){let{field:t}=e,n=t.label+(t.required?``:` (optional)`);if(t.type===`boolean`)return(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:e.value===!0,onChange:t=>e.onChange(t.target.checked)}),(0,T.jsx)(`span`,{children:t.label})]}),e.error!=null&&e.error!==``&&(0,T.jsx)(`span`,{className:`field__error`,role:`alert`,children:e.error})]});let r=typeof e.value==`string`?e.value:``;if(t.type===`select`)return(0,T.jsx)(O,{label:n,error:e.error,children:(0,T.jsxs)(`select`,{className:`select`,value:r,onChange:t=>e.onChange(t.target.value),children:[!t.required&&(0,T.jsx)(`option`,{value:``,children:`–`}),(t.options??[]).map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))]})});if(t.type===`secret`)return(0,T.jsx)(O,{label:n,hint:`Kept out of the audit log.`,error:e.error,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:r,onChange:t=>e.onChange(t.target.value),autoComplete:`off`})});let i=t.type===`number`;return(0,T.jsx)(O,{label:n,error:i&&r!==``&&!Number.isFinite(Number(r))?`Enter a number.`:e.error,children:(0,T.jsx)(`input`,{className:`input`,inputMode:i?`decimal`:void 0,value:r,onChange:t=>e.onChange(t.target.value)})})}function zs(e){let t=(t,n)=>e.onChange({...e.values,[t]:n});return e.target===`server`?null:e.target===`instance`?(0,T.jsx)(O,{label:`Instance process id`,children:(0,T.jsx)(`input`,{className:`input mono`,value:e.values.processId??``,onChange:e=>t(`processId`,e.target.value),spellCheck:!1})}):(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Session room id`,children:(0,T.jsx)(`input`,{className:`input mono`,value:e.values.roomId??``,onChange:e=>t(`roomId`,e.target.value),spellCheck:!1})}),e.target===`player`&&(0,T.jsx)(O,{label:`Player id`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:e.values.playerId??``,onChange:e=>t(`playerId`,e.target.value)})}),e.target===`player`&&(0,T.jsx)(O,{label:`User id (optional)`,children:(0,T.jsx)(`input`,{className:`input mono`,value:e.values.userId??``,onChange:e=>t(`userId`,e.target.value),spellCheck:!1})})]})}function Bs(e){return(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsxs)(`div`,{className:`banner banner--warning`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsxs)(`strong`,{children:[`Run “`,e.action.label,`” on `,e.targetText,`?`]}),(0,T.jsx)(`span`,{children:`Your game's code runs straight away and the run is written to the audit log.`})]})]}),e.action.fields.length>0&&(0,T.jsx)(`dl`,{className:`definition-list`,children:e.action.fields.map(t=>[(0,T.jsx)(`dt`,{children:t.label},t.name+`-label`),(0,T.jsx)(`dd`,{children:qs(t,e.values[t.name])},t.name+`-value`)])})]})}function Vs(e){let t=Object.entries(e.result.data??{});return(0,T.jsxs)(`div`,{className:`result-box`,role:`status`,children:[(0,T.jsxs)(`div`,{className:e.result.ok?`banner banner--success`:`banner banner--danger`,children:[(0,T.jsx)(E,{name:e.result.ok?`check`:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:e.result.ok?`Done`:`The action reported a failure`}),(0,T.jsx)(`span`,{children:e.result.message})]})]}),t.length>0&&(0,T.jsx)(`dl`,{className:`definition-list`,children:t.map(([e,t])=>[(0,T.jsx)(`dt`,{children:e},e+`-label`),(0,T.jsx)(`dd`,{children:t==null?(0,T.jsx)(V,{isPlain:!0,children:`null`}):(0,T.jsx)(`span`,{className:`mono`,children:String(t)})},e+`-value`)])})]})}function Hs(e){let t={};for(let n of e){if(n.type===`boolean`){t[n.name]=n.defaultValue===!0;continue}let e=n.type===`select`&&n.required?n.options?.[0]??``:``;t[n.name]=n.defaultValue==null?e:String(n.defaultValue)}return t}function Us(e,t){let n={};for(let r of e){let e=t[r.name];typeof e==`boolean`?n[r.name]=e:e!=null&&e!==``&&(n[r.name]=r.type===`number`?Number(e):e)}return n}function Ws(e){return typeof e==`boolean`||e!=null&&e.trim()!==``}function Gs(e,t){if(e===`instance`)return{processId:(t.processId??``).trim()};if(e===`session`)return{roomId:(t.roomId??``).trim()};if(e===`player`){let e=(t.userId??``).trim(),n=(t.playerId??``).trim();return{roomId:(t.roomId??``).trim(),playerId:n===``?void 0:Number(n),userId:e===``?null:e}}return{}}function Ks(e,t){return e===`instance`?(t.processId??``)!==``:e===`session`?(t.roomId??``)!==``:e!==`player`||(t.roomId??``)!==``&&Number.isInteger(t.playerId)}function qs(e,t){return typeof t==`boolean`?t?`yes`:`no`:t==null||t===``?`–`:e.type===`secret`?Fs:t}function Js(e,t,n){return e===`result`?`Done`:t?`Running…`:e===`form`&&n.confirm?`Continue`:`Run `+n.label}function Ys(e){let{panel:t,targetIds:n}=e,r=JSON.stringify(n),i=I(()=>w.get(`extensions/panels/`+encodeURIComponent(t.name),Ms(n)),y,[t.name,r]),a=`custom-panel-`+t.name;return(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":a,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{id:a,children:t.title}),(0,T.jsx)(V,{isPlain:!0,children:`custom`})]}),(0,T.jsx)(H,{state:i,subject:t.title,children:e=>e.kind===`table`?(0,T.jsx)(Zs,{content:e}):(0,T.jsx)(`dl`,{className:`definition-list`,children:e.values.map(e=>[(0,T.jsx)(`dt`,{children:e.label},e.label+`-label`),(0,T.jsx)(`dd`,{children:Qs(e.value)},e.label+`-value`)])})})]})}function Xs(e){let t=(js().data?.panels??[]).filter(t=>t.placement===e.placement);return t.length===0?null:(0,T.jsx)(T.Fragment,{children:t.map(t=>(0,T.jsx)(Ys,{panel:t,targetIds:e.targetIds},t.name))})}function Zs(e){let{columns:t,rows:n}=e.content;return n.length===0?(0,T.jsx)(z,{title:`Nothing to show`,icon:`extensions`}):(0,T.jsx)(`div`,{className:`table-scroll`,children:(0,T.jsxs)(`table`,{className:`data-table data-table--cards`,children:[(0,T.jsx)(`thead`,{children:(0,T.jsx)(`tr`,{children:t.map(e=>(0,T.jsx)(`th`,{scope:`col`,children:e},e))})}),(0,T.jsx)(`tbody`,{children:n.map((e,n)=>(0,T.jsx)(`tr`,{children:e.map((e,n)=>(0,T.jsx)(`td`,{"data-label":t[n]??``,children:Qs(e)},n))},n))})]})})}function Qs(e){return e==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):typeof e==`boolean`?e?(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(E,{name:`check`}),`yes`]}):(0,T.jsx)(`span`,{className:`muted`,children:`no`}):(0,T.jsx)(`span`,{className:`break-anywhere`,children:String(e)})}var $s={server:`Runs on the whole server.`,instance:`Also on each instance's page.`,session:`Also on each session's page.`,player:`Also on each player's page.`},ec={overview:`Shown on the overview (below).`,session:`Shown on each session's page.`,player:`Shown on each player's page.`},tc=P([`docs`,`CUSTOM.md`],{section:`custom-admin-actions-panels-and-admin-hooks`});function nc(){let e=js(),[t,n]=(0,_.useState)(null);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Extensions`,description:`Custom actions and panels your game's developers added to the console from code. You see the ones your role may use.`,actions:(0,T.jsxs)(`a`,{className:`button`,href:tc,children:[(0,T.jsx)(E,{name:`docs`}),`How to add one`]})}),(0,T.jsx)(H,{state:e,subject:`the extensions`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`extensions-actions`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`extensions-actions`,children:`Custom actions`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Each run asks for its inputs, then is written to the audit log (secret inputs are left out).`})]})}),e.actions.length===0?(0,T.jsx)(z,{title:`No custom actions`,icon:`extensions`,children:`None are registered, or your role may not run them (extensions.run, or extensions.runDeveloper for developer actions).`}):(0,T.jsx)(`div`,{children:e.actions.map(e=>(0,T.jsxs)(`div`,{className:`extension-card`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`strong`,{children:e.label}),(0,T.jsx)(V,{isPlain:!0,children:e.target}),e.confirm&&(0,T.jsx)(V,{tone:`warning`,isPlain:!0,children:`asks to confirm`})]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>n(e),children:[(0,T.jsx)(E,{name:`play`}),`Run`]})]}),(0,T.jsx)(`p`,{className:`muted`,children:e.description}),(0,T.jsxs)(`p`,{className:`small muted`,children:[$s[e.target],` `,e.fields.length===0?`No inputs.`:e.fields.length+` input`+(e.fields.length===1?``:`s`)+`.`,` `,(0,T.jsx)(`span`,{className:`mono`,children:e.name})]})]},e.name))})]}),(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`extensions-panels`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`extensions-panels`,children:`Custom panels`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Read-only figures from your game's code.`})]})}),e.panels.length===0?(0,T.jsx)(z,{title:`No custom panels`,icon:`extensions`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:e.panels.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`strong`,{children:e.title}),(0,T.jsx)(`span`,{className:`small muted`,children:ec[e.placement]})]},e.name))})]}),e.panels.filter(e=>e.placement===`overview`).map(e=>(0,T.jsx)(Ys,{panel:e,targetIds:{}},e.name))]})}),t!=null&&(0,T.jsx)(Is,{action:t,target:t.target===`server`?{}:null,onClose:()=>n(null)})]})}var rc=1e3;function ic(e){let t=Date.parse(e.deadline),[n,r]=(0,_.useState)(Date.now()),i=n<t;return(0,_.useEffect)(()=>{if(!i)return;let e=window.setInterval(()=>r(Date.now()),rc);return()=>window.clearInterval(e)},[i]),Number.isNaN(t)?(0,T.jsx)(`span`,{children:`–`}):i?(0,T.jsx)(`span`,{className:`mono`,role:`timer`,children:Be(t-n)}):(0,T.jsx)(`span`,{className:`mono`,children:e.doneText??`0:00`})}var ac=60;function oc(e){let t=N(),[n,r]=(0,_.useState)(`This server is restarting for maintenance. Please rejoin in a few minutes.`),[i,a]=(0,_.useState)(String(ac)),o=Number(i),s=Number.isInteger(o)&&o>=0;return(0,T.jsxs)(k,{title:`Drain `+e.instanceName+`?`,description:`The instance stops taking new players and its sessions wind down. This cannot be undone: restart the instance to bring it back.`,confirmLabel:`Start draining`,canConfirm:s,onConfirm:async()=>{let r=n.trim(),i={noticeText:r===``?null:r,noticeLeadSeconds:r===``?0:o},a=await w.send(`POST`,`instances/`+encodeURIComponent(e.processId)+`/drain`,i);t(`Draining `+e.instanceName+`. It takes no new joins once the notice time is up.`),e.onStarted(a.drainDeadline)},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`Notice to its players`,hint:`Leave empty to drain without a warning.`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:n,onChange:e=>r(e.target.value),maxLength:500})}),(0,T.jsx)(O,{label:`Warning time (seconds)`,hint:`How long the notice shows before the drain starts.`,error:s?null:`Use a whole number of seconds.`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:i,onChange:e=>a(e.target.value)})})]})}function sc(e){return e.instanceLabel!=null&&e.instanceLabel!==``?e.instanceLabel:e.hostName===``?e.processId:e.hostName}function cc(e){let{instance:t}=e;return t.status===`lost`?(0,T.jsx)(V,{tone:`danger`,children:`lost`}):(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(V,{tone:`success`,children:`up`}),t.draining&&(0,T.jsx)(V,{tone:`warning`,isLive:!0,children:`draining`}),t.maintenance!=null&&(0,T.jsx)(V,{tone:`warning`,children:`maintenance`}),!t.ready&&!t.draining&&(0,T.jsx)(V,{tone:`danger`,children:`not ready`})]})}function lc(e){let t=N(),n=e.scope===`fleet`,[r,i]=(0,_.useState)(e.current?.message??`The server is down for maintenance. Please try again soon.`),[a,o]=(0,_.useState)((e.current?.allowUserIds??[]).join(`
18
+ `)),[s,c]=(0,_.useState)((e.current?.allowAddresses??[]).join(`
19
+ `)),[l,u]=(0,_.useState)(e.current?.leaveReadiness??!1),[d,f]=(0,_.useState)(``),p=d.trim()===``?null:Number(d),m=p==null||Number.isInteger(p)&&p>0;return(0,T.jsxs)(k,{title:`Maintenance for `+e.scopeText,description:`New joins are refused with your message. Players already in a session keep playing.`,confirmLabel:`Turn maintenance on`,typedConfirmation:n?`fleet`:void 0,canConfirm:r.trim()!==``&&m,onConfirm:async()=>{let n={scope:e.scope,enabled:!0,message:r.trim(),allowUserIds:dc(a),allowAddresses:dc(s),leaveReadiness:l,noticeSeconds:p},i=await w.send(`PUT`,`maintenance`,n);t(`Maintenance is on for `+e.scopeText+`. New joins are refused.`),e.onSaved?.(i)},onClose:e.onClose,isWide:!0,children:[(0,T.jsx)(O,{label:`Message shown to refused players`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:r,onChange:e=>i(e.target.value),maxLength:500,autoFocus:!0})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Still allow these user ids`,hint:`One per line or comma-separated (your testers).`,children:(0,T.jsx)(`textarea`,{className:`textarea mono`,value:a,onChange:e=>o(e.target.value),spellCheck:!1})}),(0,T.jsx)(O,{label:`Still allow these addresses`,hint:`One per line or comma-separated.`,children:(0,T.jsx)(`textarea`,{className:`textarea mono`,value:s,onChange:e=>c(e.target.value),spellCheck:!1})})]}),(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,T.jsxs)(`span`,{children:[`Report "not ready" to the load balancer `,(0,T.jsx)(`span`,{className:`muted`,children:`(health checks fail with reason maintenance)`})]})]}),n&&(0,T.jsx)(O,{label:`Warn players first (seconds)`,hint:`Optional: a warning notice with a countdown goes out before maintenance starts.`,error:m?null:`Use a whole number of seconds.`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:d,onChange:e=>f(e.target.value),placeholder:`no warning`})})]})}function uc(e){let t={scope:e,enabled:!1,message:``,allowUserIds:[],allowAddresses:[],leaveReadiness:!1,noticeSeconds:null};return w.send(`PUT`,`maintenance`,t)}function dc(e){return e.split(/[\n,]/).map(e=>e.trim()).filter(e=>e!==``)}var fc=`close all sessions`,pc=[`Shared`,`Host`,`Server`,`Single`],mc=[`gameMode`,`processId`,`dedicated`,`locked`,`minPlayers`],hc=[`search`,`gameMode`,`processId`,`dedicated`,`locked`,`minPlayers`,`sort`,`page`],gc=[{key:`sessionName`,header:`Session`,isSortable:!0,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:P([`sessions`,e.roomId]),children:(0,T.jsx)(`strong`,{className:`break-anywhere`,children:e.sessionName})}),(0,T.jsx)(`span`,{className:`small muted mono`,children:e.roomId})]})},{key:`gameMode`,header:`Mode`,isSortable:!0,render:e=>e.gameMode},{key:`players`,header:`Players`,isSortable:!0,isNumber:!0,render:e=>e.players+` / `+e.maxPlayers},{key:`processId`,header:`Instance`,isSortable:!0,render:e=>(0,T.jsx)(`a`,{className:`mono small`,href:P([`instances`,e.processId]),children:e.processId})},{key:`createdAt`,header:`Started`,isSortable:!0,render:e=>(0,T.jsx)(B,{iso:e.createdAt,isRelative:!0})},{key:`bytesPerSecond`,header:`Traffic`,isSortable:!0,isNumber:!0,render:e=>Fe(e.bytesPerSecond)+`/s`},{key:`state`,header:`State`,render:e=>(0,T.jsx)(_c,{session:e})}];function _c(e){let{session:t}=e,n=t.isOpen?(0,T.jsx)(V,{tone:`success`,children:`open`}):(0,T.jsx)(V,{children:`closed`});return(0,T.jsxs)(`span`,{className:`row`,children:[t.locked?(0,T.jsx)(V,{tone:`warning`,children:`locked`}):n,!t.isVisible&&(0,T.jsx)(V,{isPlain:!0,children:`hidden`}),t.dedicatedScene!=null&&(0,T.jsx)(V,{tone:`info`,isPlain:!0,children:`dedicated`})]})}function vc(){let{hasPermission:e}=M(),t=Cr(),n=Object.fromEntries(hc.map(e=>[e,t.get(e)])),r=Number(n.page),i=Number.isInteger(r)&&r>=1?r:1,a=I(()=>w.get(`sessions`,{...n,page:i}),y,hc.map(e=>n[e])),[o,s]=(0,_.useState)(!1),c=hc.some(e=>e!==`sort`&&e!==`page`&&n[e]!==``);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Sessions`,description:`Every running session across the fleet.`,actions:e(`sessions.manage`)&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>s(!0),children:[(0,T.jsx)(E,{name:`close`}),`Close all`]})}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Filter sessions`,activeExtraCount:mc.filter(e=>n[e]!==``).length,extra:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(O,{label:`Mode`,children:(0,T.jsxs)(`select`,{className:`select`,value:n.gameMode,onChange:e=>t.set({gameMode:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),pc.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))]})}),(0,T.jsx)(O,{label:`Instance`,children:(0,T.jsx)(`input`,{className:`input mono`,value:n.processId,onChange:e=>t.set({processId:e.target.value.trim()}),placeholder:`any`,spellCheck:!1})}),(0,T.jsx)(O,{label:`Dedicated`,children:(0,T.jsxs)(`select`,{className:`select`,value:n.dedicated,onChange:e=>t.set({dedicated:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),(0,T.jsx)(`option`,{value:`true`,children:`Dedicated only`}),(0,T.jsx)(`option`,{value:`false`,children:`Player-hosted only`})]})}),(0,T.jsx)(O,{label:`Locked`,children:(0,T.jsxs)(`select`,{className:`select`,value:n.locked,onChange:e=>t.set({locked:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),(0,T.jsx)(`option`,{value:`true`,children:`Locked`}),(0,T.jsx)(`option`,{value:`false`,children:`Not locked`})]})}),(0,T.jsx)(O,{label:`Min. players`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:n.minPlayers,onChange:e=>t.set({minPlayers:e.target.value.replace(/\D/g,``)}),placeholder:`0`})})]}),children:(0,T.jsx)(ti,{label:`Search`,value:n.search,onCommit:e=>t.set({search:e}),placeholder:`Session name or room id`})}),(0,T.jsx)(H,{state:a,subject:`the sessions`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(L,{caption:`Sessions`,columns:gc,rows:e.items,rowKey:e=>e.roomId,sort:n.sort,onSortChange:e=>t.set({sort:e}),emptyState:(0,T.jsx)(z,{title:c?`No session matches these filters`:`No sessions running`,icon:`sessions`,children:c?`Clear a filter to see more.`:`Sessions appear here as soon as players start one.`})}),(0,T.jsx)(In,{page:i,total:e.total,pageSize:50,onPageChange:e=>t.set({page:String(e)})})]})})]}),o&&(0,T.jsx)(yc,{onClose:()=>s(!1),onClosed:a.refresh})]})}function yc(e){let t=N(),[n,r]=(0,_.useState)(`The server is closing all sessions.`);return(0,T.jsx)(k,{title:`Close every session?`,description:`Every session on every instance ends now and its players see your message.`,confirmLabel:`Close all sessions`,typedConfirmation:fc,canConfirm:n.trim()!==``,onConfirm:async()=>{let r=await w.send(`POST`,`sessions/close-all`,{message:n.trim(),confirmText:fc});t(`Closed `+r.closed+(r.closed===1?` session.`:` sessions.`)),e.onClosed()},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Message to the players`,children:(0,T.jsx)(`input`,{className:`input`,value:n,onChange:e=>r(e.target.value),maxLength:300})})})}var bc=[{key:`session`,header:`Session`,render:e=>(0,T.jsx)(`a`,{href:P([`sessions`,e.roomId]),children:e.sessionName})},{key:`scene`,header:`Scene`,render:e=>e.sceneName},{key:`players`,header:`Players`,isNumber:!0,render:e=>e.players+` / `+e.maxPlayers},{key:`startedBy`,header:`Started by`,render:e=>e.startedBy}];function xc(e){let t=I(()=>w.get(`instances/`+encodeURIComponent(e.processId)),y,[e.processId]);return(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(H,{state:t,subject:`the instance`,notFound:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`This instance is not in the fleet`,children:[`It may have stopped more than 10 minutes ago. `,(0,T.jsx)(`a`,{href:`#/instances`,children:`Back to instances`})]})}),children:e=>(0,T.jsx)(Sc,{detail:e,onChanged:t.refresh})})})}function Sc(e){let{hasPermission:t}=M(),n=N(),r=e.detail.instance,i=sc(r),[a,o]=(0,_.useState)(`none`),[s,c]=(0,_.useState)(null),l=r.drainDeadline??s,u=r.draining||s!=null,d=t(`fleet.manage`)&&r.status===`up`,f=()=>o(`none`);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(R,{eyebrow:(0,T.jsxs)(`a`,{href:`#/instances`,className:`row`,children:[(0,T.jsx)(E,{name:`back`}),`Instances`]}),title:(0,T.jsxs)(`span`,{className:`row`,children:[i,(0,T.jsx)(cc,{instance:r})]}),description:(0,T.jsx)(`span`,{className:`mono`,children:r.processId}),actions:(0,T.jsxs)(T.Fragment,{children:[t(`sessions.manage`)&&r.status===`up`&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>o(`notice`),children:[(0,T.jsx)(E,{name:`notice`}),`Send notice`]}),d&&(r.maintenance==null?(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>o(`maintenance`),children:[(0,T.jsx)(E,{name:`maintenance`}),`Maintenance`]}):(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>o(`clearMaintenance`),children:[(0,T.jsx)(E,{name:`maintenance`}),`End maintenance`]})),d&&!u&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>o(`drain`),children:[(0,T.jsx)(E,{name:`drain`}),`Drain`]})]})}),u&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,role:`status`,children:[(0,T.jsx)(E,{name:`drain`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsxs)(`strong`,{children:[r.draining?`Draining`:`Drain scheduled: players see the notice first`,` · `,j(r.players),` `,r.players===1?`player`:`players`,` remaining`]}),(0,T.jsx)(`span`,{children:l==null?`The instance takes no new players.`:(0,T.jsxs)(T.Fragment,{children:[`Sessions are closed in `,(0,T.jsx)(ic,{deadline:l,doneText:`now`}),`.`]})})]})]}),r.maintenance!=null&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,role:`status`,children:[(0,T.jsx)(E,{name:`maintenance`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsxs)(`strong`,{children:[`In maintenance (`,r.maintenance.scope,`)`]}),(0,T.jsx)(`span`,{children:r.maintenance.message})]})]}),(0,T.jsxs)(`div`,{className:`stat-grid`,children:[(0,T.jsx)(so,{label:`Players`,value:j(r.players),tone:`info`}),(0,T.jsx)(so,{label:`Sessions`,value:j(r.sessions),tone:`info`}),(0,T.jsx)(so,{label:`Dedicated`,value:j(r.dedicatedSessions)}),(0,T.jsx)(so,{label:`CPU`,value:j(r.cpuPercent)+`%`}),(0,T.jsx)(so,{label:`Memory`,value:Fe(r.residentMemoryBytes),hint:Fe(r.heapUsedBytes)+` heap`}),(0,T.jsx)(so,{label:`Event-loop lag`,value:j(r.eventLoopLagMilliseconds)+` ms`}),(0,T.jsx)(so,{label:`Uptime`,value:Ie(Date.now()-Date.parse(r.startedAt))}),(0,T.jsx)(so,{label:`Joins`,value:j(r.joinsAccepted),hint:j(r.joinsRefused)+` refused`})]}),(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`instance-identity`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{id:`instance-identity`,children:`Identity`})}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Process id`}),(0,T.jsx)(`dd`,{className:`mono`,children:r.processId}),(0,T.jsx)(`dt`,{children:`Host`}),(0,T.jsx)(`dd`,{children:r.hostName}),(0,T.jsx)(`dt`,{children:`Public address`}),(0,T.jsx)(`dd`,{children:r.publicAddress??(0,T.jsx)(`span`,{className:`muted`,children:`not set`})}),(0,T.jsx)(`dt`,{children:`Version`}),(0,T.jsxs)(`dd`,{children:[(0,T.jsx)(`span`,{className:`mono`,children:r.serverVersion}),` · protocol `,r.protocolVersion]}),(0,T.jsx)(`dt`,{children:`Started`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:r.startedAt})}),(0,T.jsx)(`dt`,{children:`Last heartbeat`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:r.sentAt,isRelative:!0})}),(0,T.jsx)(`dt`,{children:`Ready`}),(0,T.jsx)(`dd`,{children:r.ready?`yes`:`no (`+(r.readinessReasons.join(`, `)||`unknown`)+`)`}),(0,T.jsx)(`dt`,{children:`Log level`}),(0,T.jsx)(`dd`,{children:r.logLevel}),(0,T.jsx)(`dt`,{children:`Certificate`}),(0,T.jsx)(`dd`,{children:r.certificateDaysLeft==null?(0,T.jsx)(`span`,{className:`muted`,children:`no TLS`}):r.certificateDaysLeft+` days left`})]})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`instance-sessions`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{id:`instance-sessions`,children:`Sessions`})}),(0,T.jsx)(L,{caption:`Sessions on this instance`,columns:gc,rows:e.detail.sessions,rowKey:e=>e.roomId,emptyState:(0,T.jsx)(z,{title:`No sessions on this instance`,icon:`sessions`})})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`instance-dedicated`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{id:`instance-dedicated`,children:`Dedicated sessions`})}),(0,T.jsx)(L,{caption:`Dedicated sessions on this instance`,columns:bc,rows:e.detail.dedicated,rowKey:e=>e.roomId,emptyState:(0,T.jsx)(z,{title:`No dedicated sessions`,icon:`instances`})})]}),(0,T.jsx)(Ls,{target:`instance`,targetIds:{processId:r.processId},targetText:i}),a===`drain`&&(0,T.jsx)(oc,{processId:r.processId,instanceName:i,onStarted:c,onClose:()=>{f(),e.onChanged()}}),a===`notice`&&(0,T.jsx)(bn,{target:{scope:`instance`,processId:r.processId},audienceText:`every player on `+i,onClose:f}),a===`maintenance`&&(0,T.jsx)(lc,{scope:r.processId,scopeText:i,current:r.maintenance,onSaved:()=>e.onChanged(),onClose:f}),a===`clearMaintenance`&&(0,T.jsx)(k,{title:`End maintenance on `+i+`?`,description:`The instance accepts joins again.`,confirmLabel:`End maintenance`,tone:`primary`,onConfirm:async()=>{await uc(r.processId),n(`Maintenance is off for `+i+`. Joins are accepted again.`),e.onChanged()},onClose:f})]})}var Cc=[{key:`name`,header:`Instance`,isSortable:!0,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:P([`instances`,e.processId]),children:(0,T.jsx)(`strong`,{children:sc(e)})}),(0,T.jsxs)(`span`,{className:`row small muted`,children:[(0,T.jsx)(`span`,{className:`mono`,children:e.processId}),e.isThisInstance&&(0,T.jsx)(V,{isPlain:!0,children:`this instance`})]})]})},{key:`status`,header:`Status`,render:e=>(0,T.jsx)(cc,{instance:e})},{key:`version`,header:`Version`,isSortable:!0,render:e=>(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`mono`,children:e.serverVersion}),` `,(0,T.jsxs)(`span`,{className:`small muted`,children:[`p`,e.protocolVersion]})]})},{key:`players`,header:`Players`,isSortable:!0,isNumber:!0,render:e=>j(e.players)},{key:`sessions`,header:`Sessions`,isSortable:!0,isNumber:!0,render:e=>j(e.sessions)},{key:`cpu`,header:`CPU`,isSortable:!0,isNumber:!0,render:e=>j(e.cpuPercent)+`%`},{key:`memory`,header:`Memory`,isSortable:!0,isNumber:!0,render:e=>Fe(e.residentMemoryBytes)},{key:`lag`,header:`Loop lag`,isSortable:!0,isNumber:!0,render:e=>j(e.eventLoopLagMilliseconds)+` ms`},{key:`heartbeat`,header:`Last heartbeat`,render:e=>(0,T.jsx)(B,{iso:e.sentAt,isRelative:!0})}];function wc(e,t){return{name:sc(e),version:e.serverVersion,players:e.players,sessions:e.sessions,cpu:e.cpuPercent,memory:e.residentMemoryBytes,lag:e.eventLoopLagMilliseconds}[t]??null}function Tc(e,t){return t===``||[sc(e),e.processId,e.hostName,e.publicAddress??``,e.serverVersion].join(` `).toLowerCase().includes(t)}function Ec(){let e=Cr(),t=I(()=>w.get(`instances`),y,[]),n=e.get(`search`),r=e.get(`sort`);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Instances`,description:`Every server process in the fleet, from their heartbeats. A silent instance shows as lost after 15 seconds.`}),(0,T.jsx)(H,{state:t,subject:`the instances`,children:t=>{let i=Pn(t.filter(e=>Tc(e,n.toLowerCase())),r,wc);return(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Filter instances`,children:(0,T.jsx)(ti,{label:`Search`,value:n,onCommit:t=>e.set({search:t}),placeholder:`Name, process id, host or version`})}),(0,T.jsx)(L,{caption:`Instances`,columns:Cc,rows:i,rowKey:e=>e.processId,sort:r,onSortChange:t=>e.set({sort:t}),emptyState:(0,T.jsx)(z,{title:t.length===0?`No instances reporting`:`No instance matches`,icon:`instances`,children:t.length===0?`Instances appear once they send their first heartbeat.`:`Try a different search.`})})]})}})]})}var Dc=`All`,Oc=` · `,kc=1e3,Ac=60,jc=60,Mc=kc*Ac,Nc=Mc*jc,Pc=3,Fc=2,Ic={client:`Game client`,session:`Session`,server:`Server`},Lc={higherIsBetter:`Higher is better`,lowerIsBetter:`Lower is better`},Rc={best:`Best`,latest:`Latest`,sum:`Running total`},zc={integer:`Whole number`,timeMilliseconds:`Time (milliseconds)`,points:`Points`},Bc={never:`Never`,manual:`Only from the console`,daily:`Daily (00:00 UTC)`,weekly:`Weekly (Monday 00:00 UTC)`,monthly:`Monthly (1st, 00:00 UTC)`},Vc=[`client`,`session`,`server`],Hc=[`higherIsBetter`,`lowerIsBetter`],Uc=[`best`,`latest`,`sum`],Wc=[`integer`,`points`,`timeMilliseconds`],Gc=[`manual`,`daily`,`weekly`,`monthly`,`never`];function Kc(e,t){if(t===`timeMilliseconds`)return el(e);let n=e.toLocaleString(`en`);return t===`points`?n+` pts`:n}function qc(e,t){let n=Object.keys(e);if(n.length===0)return Dc;let r=t.filter(e=>n.includes(e.name)),i=r.map(e=>e.name),a=r.map(t=>t.label+`: `+e[t.name]),o=n.filter(e=>!i.includes(e)).map(t=>t+`: `+e[t]);return[...a,...o].join(Oc)}function Jc(e){let t={};if(e===`all`||e===``)return t;for(let n of e.split(`&`)){let e=n.indexOf(`=`);e<0||(t[decodeURIComponent(n.slice(0,e))]=decodeURIComponent(n.slice(e+1)))}return t}function Yc(e){return Ic[e]}function Xc(e){return Lc[e]}function Zc(e){return Rc[e]}function Qc(e){return zc[e]}function $c(e){return Bc[e]}function el(e){let t=e<0?`-`:``,n=Math.abs(e),r=Math.floor(n/Nc),i=Math.floor(n%Nc/Mc),a=Math.floor(n%Mc/kc),o=String(n%kc).padStart(Pc,`0`),s=String(a).padStart(Fc,`0`);if(r===0)return t+i+`:`+s+`.`+o;let c=String(i).padStart(Fc,`0`);return t+r+`:`+c+`:`+s+`.`+o}var tl=[{view:`boards`,label:`Boards`,path:[`leaderboards`]},{view:`players`,label:`Players`,path:[`leaderboards`,`players`]},{view:`activity`,label:`Activity`,path:[`leaderboards`,`activity`]},{view:`settings`,label:`Settings`,path:[`leaderboards`,`settings`]}];function nl(e){let t=I(()=>w.get(`leaderboards/status`),y,[]);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`div`,{className:`tabs`,role:`tablist`,"aria-label":`Leaderboard sections`,children:tl.map(t=>(0,T.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":e.current===t.view,onClick:()=>{window.location.hash=P(t.path,{})},children:t.label},t.view))}),t.data!=null&&(0,T.jsx)(rl,{status:t.data})]})}function rl(e){let{status:t}=e,n=t.storage===`redis`?`Redis`:`data folder`;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`stat-grid`,children:[(0,T.jsx)(so,{label:`Accepted per minute`,value:t.acceptedPerMinute,tone:`success`,hint:t.boardCount+(t.boardCount===1?` board`:` boards`)+` · `+n}),(0,T.jsx)(so,{label:`Refused per minute`,value:t.refusedPerMinute,tone:t.refusedPerMinute>0?`danger`:`neutral`,hint:`fleet-wide, last 60 s`})]}),t.durability===`notDurable`&&(0,T.jsx)(`section`,{className:`panel`,role:`status`,children:(0,T.jsxs)(`div`,{className:`row`,children:[(0,T.jsx)(E,{name:`alert`}),(0,T.jsx)(V,{tone:`warning`,children:`not durable`}),(0,T.jsx)(`span`,{children:t.durabilityAdvice})]})}),t.durability===`unknown`&&(0,T.jsxs)(`p`,{className:`small muted`,children:[`Durability unknown: `,t.durabilityAdvice]}),t.definitionsProblem!=null&&(0,T.jsxs)(`p`,{className:`row`,children:[(0,T.jsx)(V,{tone:`danger`,children:`definitions file`}),(0,T.jsx)(`span`,{children:t.definitionsProblem})]})]})}var il={anonymous:`Anonymous`,user:`Signed-in user`,manual:`Added by an admin`};function al(){let e=Cr(),t=e.get(`search`),n=jn(()=>w.get(`leaderboards/players`,{search:t}),[t]),r=[{key:`name`,header:`Name`,render:e=>(0,T.jsx)(`a`,{href:ol(e.playerId),children:e.displayName})},{key:`id`,header:`Id`,render:e=>(0,T.jsx)(`span`,{className:`mono small break-anywhere`,children:e.playerId})},{key:`kind`,header:`Kind`,render:e=>il[e.kind]},{key:`hidden`,header:`Hidden`,render:e=>e.hidden?(0,T.jsx)(V,{tone:`warning`,children:`hidden`}):(0,T.jsx)(`span`,{className:`muted`,children:`–`})},{key:`created`,header:`Created`,render:e=>(0,T.jsx)(B,{iso:e.createdAt,isRelative:!0})},{key:`seen`,header:`Last seen`,render:e=>(0,T.jsx)(B,{iso:e.lastSeenAt,isRelative:!0})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Leaderboard players`,description:`Everyone with a leaderboard identity: anonymous players, signed-in users and players an admin added by hand.`}),(0,T.jsx)(nl,{current:`players`}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Filter players`,children:(0,T.jsx)(ti,{label:`Search`,value:t,onCommit:t=>e.set({search:t}),placeholder:`Name or player id`})}),(0,T.jsx)(H,{state:n,subject:`the players`,children:e=>(0,T.jsx)(L,{caption:`Leaderboard players`,columns:r,rows:e,rowKey:e=>e.playerId,emptyState:(0,T.jsx)(z,{title:t===``?`No leaderboard players yet`:`No players match`,icon:`players`,children:t===``?`Players appear once a game creates an identity or submits a score.`:void 0})})})]})]})}function ol(e){return P([`leaderboards`,`player`],{playerId:e})}var sl={accepted:`success`,duplicate:`info`,refused:`danger`};function cl(){let e=Cr(),t=e.get(`kind`),n=e.get(`boardId`),[r,i]=(0,_.useState)(null),a=I(()=>w.get(`leaderboards/activity`,{kind:t,boardId:n,before:r}),y,[t,n,r]),o=jn(()=>w.get(`leaderboards/boards`),[]),s=e=>o.data?.find(t=>t.definition.boardId===e),c=t=>{i(null),e.set(t)},l=[{key:`time`,header:`Time`,render:e=>(0,T.jsx)(B,{iso:e.at})},{key:`kind`,header:`Kind`,render:e=>(0,T.jsx)(V,{tone:sl[e.kind],children:e.kind})},{key:`board`,header:`Board`,render:e=>(0,T.jsx)(ll,{row:e,board:s(e.boardId)})},{key:`player`,header:`Player`,render:e=>e.playerId==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsx)(`a`,{href:ol(e.playerId),children:e.displayName??e.playerId})},{key:`score`,header:`Score`,isNumber:!0,render:e=>e.score==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsx)(`span`,{className:`mono`,children:Kc(e.score,ul(s(e.boardId)))})},{key:`outcome`,header:`Outcome or reason`,render:e=>e.kind===`refused`?(0,T.jsx)(`span`,{children:e.reason??`–`}):(0,T.jsx)(`span`,{children:e.outcome??`–`})},{key:`trust`,header:`Trust`,render:e=>e.trustLevel==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):Yc(e.trustLevel)},{key:`address`,header:`Address`,render:e=>e.clientAddress===``?(0,T.jsx)(`span`,{className:`muted`,children:`hidden`}):(0,T.jsx)(`span`,{className:`mono small`,children:e.clientAddress})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Leaderboard activity`,description:`Every score the server accepted, recognised as a duplicate delivery, or refused — with the reason. The newest come first.`}),(0,T.jsx)(nl,{current:`activity`}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Filter activity`,activeExtraCount:n===``?0:1,extra:(0,T.jsx)(O,{label:`Board`,children:(0,T.jsxs)(`select`,{className:`select`,value:n,onChange:e=>c({boardId:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),(o.data??[]).map(e=>(0,T.jsx)(`option`,{value:e.definition.boardId,children:e.definition.displayName},e.definition.boardId))]})}),children:(0,T.jsx)(O,{label:`Kind`,children:(0,T.jsxs)(`select`,{className:`select`,value:t,onChange:e=>c({kind:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any`}),(0,T.jsx)(`option`,{value:`accepted`,children:`Accepted`}),(0,T.jsx)(`option`,{value:`duplicate`,children:`Duplicate`}),(0,T.jsx)(`option`,{value:`refused`,children:`Refused`})]})})}),(0,T.jsx)(H,{state:a,subject:`the activity`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(L,{caption:`Leaderboard activity`,columns:l,rows:e,rowKey:e=>String(e.sequence),emptyState:(0,T.jsx)(z,{title:r==null?`No activity yet`:`Nothing older`,icon:`activity`,children:r==null?`Scores appear here as games submit them.`:void 0})}),(0,T.jsxs)(`nav`,{className:`pagination`,"aria-label":`Older activity`,children:[(0,T.jsx)(`span`,{className:`muted`,children:r==null?`Newest first`:`Older than #`+r}),(0,T.jsxs)(`div`,{className:`row`,children:[(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,disabled:r==null,onClick:()=>i(null),children:`Newest`}),(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,disabled:e.length===0,onClick:()=>i(dl(e)),children:`Older`})]})]})]})})]})]})}function ll(e){if(e.row.boardId==null)return(0,T.jsx)(`span`,{className:`muted`,children:`–`});let t=e.board?.definition.dimensions??[],n=e.row.variantKey==null?null:qc(Jc(e.row.variantKey),t);return(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{children:e.board?.definition.displayName??e.row.boardId}),n!=null&&(0,T.jsx)(`span`,{className:`small muted`,children:n})]})}function ul(e){return e?.definition.scoreFormat??`integer`}function dl(e){return Math.min(...e.map(e=>e.sequence))}var fl=/^[a-z0-9][a-z0-9-]{0,63}$/,pl=/^[a-zA-Z][a-zA-Z0-9_-]{0,31}$/,ml=80,hl=500,gl=40,_l=100,vl=64;function yl(){return{boardId:``,displayName:``,description:``,sortOrder:`higherIsBetter`,scoreFormat:`integer`,keepPolicy:`best`,minimumScore:null,maximumScore:null,acceptedTrustLevels:[],visibility:`public`,resetSchedule:`manual`,dimensions:[]}}function bl(e){return[...Sl(e),...Cl(e.minimumScore,e.maximumScore),...Tl(e),...El(e.dimensions)]}function xl(e){return e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``)}function Sl(e){let t=[];fl.test(e.boardId)||t.push(`Board id: use 1–64 lower-case letters, digits and dashes, starting with a letter or digit.`);let n=e.displayName.trim().length;return(n<1||n>ml)&&t.push(`Name: use 1–80 characters.`),e.description.length>hl&&t.push(`Description: use at most 500 characters.`),t}function Cl(e,t){let n=[];return wl(e)||n.push(`Smallest score: leave it empty or use a whole number within ±9999999999999.`),wl(t)||n.push(`Largest score: leave it empty or use a whole number within ±9999999999999.`),n.length===0&&e!=null&&t!=null&&e>t&&n.push(`Smallest score must not be above the largest score.`),n}function wl(e){return e===null||Number.isSafeInteger(e)&&Math.abs(e)<=9999999999999}function Tl(e){return e.acceptedTrustLevels.length===0?[`Trust levels: tick at least one.`]:[]}function El(e){if(e.length>4)return[`Variants: a board may have at most 4 dimensions.`];let t=e.flatMap((e,t)=>Dl(e,t)),n=e.map(e=>e.name);return t.length===0&&new Set(n).size!==n.length&&t.push(`Variants: each dimension needs its own name.`),t}function Dl(e,t){let n=`Dimension `+(t+1),r=[];pl.test(e.name)||r.push(n+` name: use 1–32 letters, digits, _ and -, starting with a letter.`);let i=e.label.trim().length;(i<1||i>gl)&&r.push(n+` label: use 1–40 characters.`);let a=e.values,o=a.length>=1&&a.length<=_l,s=a.every(e=>e.length>=1&&e.length<=vl);return o&&s&&new Set(a).size===a.length||r.push(n+` values: list 1–100 different values of 1–64 characters, one per line.`),r}function Ol(e){let t=N(),n=e.existing?.definition??Al(),[r,i]=(0,_.useState)(n),[a,o]=(0,_.useState)(Ml(n.minimumScore)),[s,c]=(0,_.useState)(Ml(n.maximumScore)),[l,u]=(0,_.useState)(n.dimensions.map(jl)),[d,f]=(0,_.useState)(!0),p=e.existing!=null,m={...r,minimumScore:Nl(a),maximumScore:Nl(s),dimensions:l.map(e=>({name:e.name.trim(),label:e.label,values:xl(e.valuesText)}))},h=bl(m),g=e.existing!=null&&e.existing.entryCount>0&&Pl(e.existing.definition,m),v=e=>i({...r,...e}),y=(e,t)=>{let n=r.acceptedTrustLevels.filter(t=>t!==e);v({acceptedTrustLevels:t?Vc.filter(t=>t===e||n.includes(t)):n})};return(0,T.jsxs)(k,{title:p?`Edit `+n.displayName:`New board`,confirmLabel:p?`Save`:`Create board`,tone:`primary`,isWide:!0,canConfirm:h.length===0,onConfirm:async()=>{let n=e.existing==null?await w.send(`POST`,`leaderboards/boards`,{definition:m}):await w.send(`PUT`,`leaderboards/boards/`+encodeURIComponent(e.existing.definition.boardId),{definition:m,revision:e.existing.revision,startNewSeason:g&&d});t((p?`Saved `:`Created `)+n.definition.displayName+`.`),e.onSaved(n)},onClose:e.onClose,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Board id`,hint:p?`The id cannot change; duplicate the board for a new id.`:`Games submit to this id, e.g. arena-high-score.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:r.boardId,readOnly:p,onChange:e=>v({boardId:e.target.value.trim()}),maxLength:64,autoComplete:`off`,spellCheck:!1})}),(0,T.jsx)(O,{label:`Name`,children:(0,T.jsx)(`input`,{className:`input`,value:r.displayName,onChange:e=>v({displayName:e.target.value}),maxLength:80})})]}),(0,T.jsx)(O,{label:`Description`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:r.description,onChange:e=>v({description:e.target.value}),maxLength:500})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Sort order`,children:(0,T.jsx)(`select`,{className:`select`,value:r.sortOrder,onChange:e=>v({sortOrder:e.target.value}),children:Hc.map(e=>(0,T.jsx)(`option`,{value:e,children:Xc(e)},e))})}),(0,T.jsx)(O,{label:`Score format`,children:(0,T.jsx)(`select`,{className:`select`,value:r.scoreFormat,onChange:e=>v({scoreFormat:e.target.value}),children:Wc.map(e=>(0,T.jsx)(`option`,{value:e,children:Qc(e)},e))})}),(0,T.jsx)(O,{label:`Keep`,children:(0,T.jsx)(`select`,{className:`select`,value:r.keepPolicy,onChange:e=>v({keepPolicy:e.target.value}),children:Uc.map(e=>(0,T.jsx)(`option`,{value:e,children:Zc(e)},e))})})]}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Smallest score`,hint:`Empty for no limit.`,children:(0,T.jsx)(`input`,{className:`input`,type:`number`,step:1,value:a,onChange:e=>o(e.target.value)})}),(0,T.jsx)(O,{label:`Largest score`,hint:`Empty for no limit.`,children:(0,T.jsx)(`input`,{className:`input`,type:`number`,step:1,value:s,onChange:e=>c(e.target.value)})}),(0,T.jsx)(O,{label:`Visibility`,children:(0,T.jsxs)(`select`,{className:`select`,value:r.visibility,onChange:e=>v({visibility:e.target.value}),children:[(0,T.jsx)(`option`,{value:`public`,children:`Public`}),(0,T.jsx)(`option`,{value:`hidden`,children:`Hidden (no reads or submissions)`})]})}),(0,T.jsx)(O,{label:`Season reset`,children:(0,T.jsx)(`select`,{className:`select`,value:r.resetSchedule,onChange:e=>v({resetSchedule:e.target.value}),children:Gc.map(e=>(0,T.jsx)(`option`,{value:e,children:$c(e)},e))})})]}),(0,T.jsxs)(`fieldset`,{className:`choice-group`,children:[(0,T.jsx)(`legend`,{children:`Accepted trust levels`}),Vc.map(e=>(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:r.acceptedTrustLevels.includes(e),onChange:t=>y(e,t.target.checked)}),Yc(e)]},e))]}),(0,T.jsx)(kl,{drafts:l,onChange:(e,t)=>{u(l.map((n,r)=>r===e?{...n,...t}:n))},onAdd:()=>u([...l,{name:``,label:``,valuesText:``}]),onRemove:e=>u(l.filter((t,n)=>n!==e))}),g&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsxs)(`strong`,{children:[`This board has `,e.existing?.entryCount,` entries ranked the old way.`]}),(0,T.jsx)(`span`,{children:`Changing the sort order, score format or keep rule starts a new season; the current one is archived and stays readable.`}),(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>f(e.target.checked)}),(0,T.jsx)(`span`,{children:`Start a new season`})]})]})]}),h.length>0&&(0,T.jsx)(`ul`,{className:`small muted`,"aria-label":`Problems to fix`,children:h.map(e=>(0,T.jsx)(`li`,{children:e},e))})]})}function kl(e){return(0,T.jsxs)(`section`,{className:`stack stack--tight`,"aria-label":`Variants`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsxs)(`span`,{className:`field__label`,children:[`Variants `,e.drafts.length===0&&(0,T.jsx)(`span`,{className:`muted`,children:`— none: one ranking for every score`})]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,disabled:e.drafts.length>=4,onClick:e.onAdd,children:[(0,T.jsx)(E,{name:`plus`}),`Add dimension`]})]}),e.drafts.map((t,n)=>(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Dimension `+(n+1)+` name`,hint:`The key games send, e.g. map.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:t.name,onChange:t=>e.onChange(n,{name:t.target.value}),maxLength:32,autoComplete:`off`,spellCheck:!1})}),(0,T.jsx)(O,{label:`Label`,children:(0,T.jsx)(`input`,{className:`input`,value:t.label,onChange:t=>e.onChange(n,{label:t.target.value}),maxLength:40})}),(0,T.jsx)(O,{label:`Values`,hint:`One per line.`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:t.valuesText,onChange:t=>e.onChange(n,{valuesText:t.target.value}),spellCheck:!1})}),(0,T.jsx)(`div`,{className:`row row--end`,children:(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onRemove(n),children:[(0,T.jsx)(E,{name:`trash`}),`Remove`]})})]},n))]})}function Al(){return{...yl(),acceptedTrustLevels:[...Vc]}}function jl(e){return{name:e.name,label:e.label,valuesText:e.values.join(`
20
+ `)}}function Ml(e){return e==null?``:String(e)}function Nl(e){return e.trim()===``?null:Number(e)}function Pl(e,t){return e.sortOrder!==t.sortOrder||e.scoreFormat!==t.scoreFormat||e.keepPolicy!==t.keepPolicy}var Fl=500;function Il(){let e=Cr(),t=e.get(`boardId`),n=e.get(`season`),r=I(()=>w.get(`leaderboards/boards/`+encodeURIComponent(t),{season:n}),y,[t,n]);return t===``?(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`No board chosen`,children:[`Open a board from the `,(0,T.jsx)(`a`,{href:`#/leaderboards`,children:`boards list`}),`.`]})})}):(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(H,{state:r,subject:`the board`,notFound:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`This board does not exist`,children:[`It may have been deleted. Go back to the `,(0,T.jsx)(`a`,{href:`#/leaderboards`,children:`boards list`}),`.`]})}),children:e=>(0,T.jsx)(Ll,{detail:e,onChanged:r.refresh})})})}function Ll(e){let{summary:t}=e.detail,{definition:n}=t,{hasPermission:r}=M(),i=N(),a=Cr(),o=a.get(`season`),s=a.get(`variantKey`),c=s===``?ql(e.detail.variants):s,l=a.get(`search`),u=Number(a.get(`page`)),d=Number.isInteger(u)&&u>=1?u:1,f=`leaderboards/boards/`+encodeURIComponent(n.boardId),p=I(()=>w.get(f+`/entries`,{season:o,variantKey:c,search:l,offset:(d-1)*50,limit:50}),y,[f,o,c,l,d]),m=jn(()=>w.get(f+`/removed`,{season:o,variantKey:c}),[f,o,c]),[h,g]=(0,_.useState)({kind:`none`}),v=r(`leaderboards.manage`),b={seasonId:p.data?.seasonId??e.detail.seasonId,variantKey:p.data?.variantKey??c},ee=t.seasons.find(t=>t.seasonId===e.detail.seasonId),te=ee!=null&&!ee.isCurrent,ne=()=>g({kind:`none`}),re=()=>{e.onChanged(),p.refresh(),m.refresh()},x=()=>{w.download(`leaderboards/export`,{format:`csv`,boardId:n.boardId,season:b.seasonId,variantKey:b.variantKey}).then(()=>i(`Downloaded the season `+b.seasonId+` ranking.`),e=>i(`Could not export: `+C(e).message,`error`))},ie=async e=>{try{await w.send(`POST`,f+`/entries/`+encodeURIComponent(e.entry.playerId)+`/restore`,{seasonId:b.seasonId,variantKey:b.variantKey}),i(`Restored the entry of `+e.entry.displayName+`.`),re()}catch(e){i(`Could not restore: `+C(e).message,`error`)}},S=[{key:`rank`,header:`Rank`,isNumber:!0,render:e=>(0,T.jsxs)(`strong`,{children:[`#`,e.rank]})},{key:`player`,header:`Player`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:P([`leaderboards`,`player`],{playerId:e.playerId}),children:e.displayName}),(0,T.jsx)(`span`,{className:`small muted mono break-anywhere`,children:e.playerId})]})},{key:`score`,header:`Score`,isNumber:!0,render:e=>(0,T.jsx)(`span`,{className:`mono`,children:Kc(e.score,n.scoreFormat)})},{key:`trust`,header:`Trust`,render:e=>(0,T.jsx)(V,{tone:e.trustLevel===`client`?`neutral`:`info`,isPlain:!0,children:Yc(e.trustLevel)})},{key:`submitted`,header:`Submitted`,render:e=>(0,T.jsx)(B,{iso:e.submittedAt,isRelative:!0})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>v?(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>g({kind:`correct`,entry:e}),children:`Correct`}),(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>g({kind:`remove`,entry:e}),children:`Remove`})]}):null}];return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(R,{eyebrow:(0,T.jsxs)(`a`,{href:`#/leaderboards`,className:`row`,children:[(0,T.jsx)(E,{name:`back`}),`Leaderboards`]}),title:(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:n.displayName}),n.visibility===`hidden`&&(0,T.jsx)(V,{children:`hidden`})]}),description:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`span`,{className:`mono`,children:n.boardId}),` · `,Xc(n.sortOrder),` · Keep: `,Zc(n.keepPolicy),` · Resets: `,$c(n.resetSchedule)]}),actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:x,children:[(0,T.jsx)(E,{name:`download`}),`Export CSV`]}),v&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>g({kind:`edit`}),children:[(0,T.jsx)(E,{name:`edit`}),`Edit board`]}),v&&te&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>g({kind:`deleteSeason`}),children:[(0,T.jsx)(E,{name:`trash`}),`Delete season`]}),v&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>g({kind:`reset`}),children:[(0,T.jsx)(E,{name:`restart`}),`Reset season`]}),v&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>g({kind:`add`}),children:[(0,T.jsx)(E,{name:`plus`}),`Add entry`]})]})}),(0,T.jsx)(nl,{current:`boards`}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Choose a ranking`,activeExtraCount:[o,s].filter(e=>e!==``).length,extra:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(O,{label:`Season`,children:(0,T.jsx)(`select`,{className:`select`,value:String(e.detail.seasonId),onChange:e=>a.set({season:e.target.value===String(t.currentSeasonId)?``:e.target.value,variantKey:``}),children:[...t.seasons].reverse().map(e=>(0,T.jsx)(`option`,{value:e.seasonId,children:`Season `+e.seasonId+(e.isCurrent?` (current)`:` (archived)`)},e.seasonId))})}),(0,T.jsx)(O,{label:`Variant`,children:(0,T.jsx)(`select`,{className:`select`,value:b.variantKey,onChange:e=>a.set({variantKey:e.target.value}),children:Kl(e.detail.variants,b.variantKey).map(e=>(0,T.jsx)(`option`,{value:e.variantKey,children:qc(e.values,n.dimensions)+` (`+e.entryCount+`)`},e.variantKey))})})]}),children:(0,T.jsx)(ti,{label:`Search players`,value:l,onCommit:e=>a.set({search:e}),placeholder:`Name or player id`})}),(0,T.jsx)(H,{state:p,subject:`the entries`,children:e=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(L,{caption:`Ranking of `+n.displayName,columns:S,rows:e.entries,rowKey:e=>e.playerId,emptyState:(0,T.jsx)(z,{title:l===``?`No entries in this ranking`:`No players match`,icon:`trophy`,children:l===``?`Scores appear here as soon as they are submitted.`:void 0})}),l===``&&(0,T.jsx)(In,{page:d,total:e.total,pageSize:50,onPageChange:e=>a.set({page:String(e)})})]})})]}),(0,T.jsx)(Rl,{removed:m,scoreFormat:n.scoreFormat,canManage:v,onRestore:e=>void ie(e)}),h.kind===`edit`&&(0,T.jsx)(Ol,{existing:t,onSaved:re,onClose:ne}),h.kind===`add`&&(0,T.jsx)(zl,{summary:t,boardPath:f,initialValues:Jc(b.variantKey),onAdded:re,onClose:ne}),h.kind===`correct`&&(0,T.jsx)(Bl,{entry:h.entry,boardPath:f,ranking:b,scoreFormat:n.scoreFormat,onCorrected:re,onClose:ne}),h.kind===`remove`&&(0,T.jsx)(Vl,{entry:h.entry,boardPath:f,ranking:b,onRemoved:re,onClose:ne}),h.kind===`reset`&&(0,T.jsx)(Hl,{summary:t,boardPath:f,onReset:()=>{a.set({season:``,variantKey:``}),re()},onClose:ne}),h.kind===`deleteSeason`&&(0,T.jsx)(Ul,{boardPath:f,seasonId:e.detail.seasonId,onDeleted:()=>{a.set({season:``,variantKey:``}),re()},onClose:ne})]})}function Rl(e){return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Removed entries`})}),(0,T.jsx)(H,{state:e.removed,subject:`the removed entries`,children:t=>t.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`No removed entries in this ranking.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:t.map(t=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`span`,{children:[t.entry.displayName,` `,(0,T.jsx)(`span`,{className:`mono`,children:Kc(t.entry.score,e.scoreFormat)})]}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`“`,t.reason,`” · by `,t.removedBy,` · `,(0,T.jsx)(B,{iso:t.removedAt,isRelative:!0})]})]}),e.canManage&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onRestore(t),children:`Restore`})]},t.entry.playerId))})})]})}function zl(e){let t=N(),{definition:n}=e.summary,[r,i]=(0,_.useState)(``),[a,o]=(0,_.useState)(``),[s,c]=(0,_.useState)(``),[l,u]=(0,_.useState)(``),[d,f]=(0,_.useState)(()=>Jl(n.dimensions,e.initialValues)),p=Yl(s),m=r.trim()!==``||a.trim()!==``,h=p!=null&&m&&l.trim()!==``;return(0,T.jsxs)(k,{title:`Add an entry to `+n.displayName,description:`The entry is written at the Server trust level and keeps the board's keep rule.`,confirmLabel:`Add entry`,tone:`primary`,isWide:!0,canConfirm:h,onConfirm:async()=>{let i={variant:n.dimensions.length===0?null:d,playerId:r.trim()===``?null:r.trim(),displayName:a.trim(),score:p,reason:l.trim()},o=await w.send(`POST`,e.boardPath+`/entries`,i);t(`Added `+o.displayName+` at rank #`+o.rank+`.`),e.onAdded()},onClose:e.onClose,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Player id`,hint:`Optional: empty adds a new player with this name.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:r,onChange:e=>i(e.target.value),autoComplete:`off`,spellCheck:!1})}),(0,T.jsx)(O,{label:`Display name`,children:(0,T.jsx)(`input`,{className:`input`,value:a,onChange:e=>o(e.target.value),maxLength:24})}),(0,T.jsx)(Wl,{format:n.scoreFormat,text:s,onChange:c})]}),n.dimensions.length>0&&(0,T.jsx)(`div`,{className:`form-grid`,children:n.dimensions.map(e=>(0,T.jsx)(O,{label:e.label,children:(0,T.jsx)(`select`,{className:`select`,value:d[e.name]??``,onChange:t=>f({...d,[e.name]:t.target.value}),children:e.values.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})},e.name))}),(0,T.jsx)(Gl,{value:l,onChange:u})]})}function Bl(e){let t=N(),[n,r]=(0,_.useState)(String(e.entry.score)),[i,a]=(0,_.useState)(``),o=Yl(n);return(0,T.jsxs)(k,{title:`Correct the score of `+e.entry.displayName,description:`Now `+Kc(e.entry.score,e.scoreFormat)+` at rank #`+e.entry.rank+`.`,confirmLabel:`Correct`,tone:`primary`,canConfirm:o!=null&&i.trim()!==``,onConfirm:async()=>{await w.send(`PUT`,Xl(e),{seasonId:e.ranking.seasonId,variantKey:e.ranking.variantKey,score:o,reason:i.trim()}),t(`Corrected the score of `+e.entry.displayName+`.`),e.onCorrected()},onClose:e.onClose,children:[(0,T.jsx)(Wl,{format:e.scoreFormat,text:n,onChange:r}),(0,T.jsx)(Gl,{value:i,onChange:a})]})}function Vl(e){let t=N(),[n,r]=(0,_.useState)(``);return(0,T.jsx)(k,{title:`Remove the entry of `+e.entry.displayName+`?`,description:`It leaves the ranking and is listed under Removed entries, where it can be restored. A new score from this player ranks normally.`,confirmLabel:`Remove entry`,canConfirm:n.trim()!==``,onConfirm:async()=>{await w.send(`POST`,Xl(e)+`/remove`,{seasonId:e.ranking.seasonId,variantKey:e.ranking.variantKey,reason:n.trim()}),t(`Removed the entry of `+e.entry.displayName+`.`),e.onRemoved()},onClose:e.onClose,children:(0,T.jsx)(Gl,{value:n,onChange:r})})}function Hl(e){let t=N(),[n,r]=(0,_.useState)(``);return(0,T.jsx)(k,{title:`Reset season `+e.summary.currentSeasonId+`?`,description:`Season `+e.summary.currentSeasonId+` is archived and stays readable; season `+(e.summary.currentSeasonId+1)+` starts empty.`,confirmLabel:`Reset season`,canConfirm:n.trim()!==``,onConfirm:async()=>{try{let r=await w.send(`POST`,e.boardPath+`/seasons/reset`,{reason:n.trim()});t(`Season `+r.currentSeasonId+` of `+r.definition.displayName+` started.`),e.onReset()}catch(e){t(`Could not reset the season: `+C(e).message,`error`)}},onClose:e.onClose,children:(0,T.jsx)(Gl,{value:n,onChange:r})})}function Ul(e){let t=N();return(0,T.jsx)(k,{title:`Delete season `+e.seasonId+`?`,description:`Every ranking of this archived season is deleted for good.`,confirmLabel:`Delete season`,onConfirm:async()=>{let n=await w.send(`DELETE`,e.boardPath+`/seasons/`+e.seasonId);t(`Deleted season `+e.seasonId+` (`+n.deletedEntries+` entries).`),e.onDeleted()},onClose:e.onClose})}function Wl(e){let t=Yl(e.text),n=e.format===`timeMilliseconds`,r=t==null?`A whole number.`:`Shows as `+Kc(t,e.format)+`.`;return(0,T.jsx)(O,{label:n?`Score (milliseconds)`:`Score`,hint:r,children:(0,T.jsx)(`input`,{className:`input`,type:`number`,step:1,value:e.text,onChange:t=>e.onChange(t.target.value)})})}function Gl(e){return(0,T.jsx)(O,{label:`Reason`,hint:`Required. Kept in the audit log.`,children:(0,T.jsx)(`input`,{className:`input`,value:e.value,onChange:t=>e.onChange(t.target.value),maxLength:Fl})})}function Kl(e,t){return e.some(e=>e.variantKey===t)||t===``?e:[{variantKey:t,values:Jc(t),entryCount:0,topEntry:null},...e]}function ql(e){let t=null;for(let n of e)(t==null||n.entryCount>t.entryCount)&&(t=n);return t?.variantKey??``}function Jl(e,t){let n={};for(let r of e){let e=t[r.name];n[r.name]=e!=null&&r.values.includes(e)?e:r.values[0]}return n}function Yl(e){if(e.trim()===``)return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function Xl(e){return e.boardPath+`/entries/`+encodeURIComponent(e.entry.playerId)}function Zl(){let e=Cr().get(`playerId`),t=I(()=>w.get(nu(e)),y,[e]);return e===``?(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`No player chosen`,children:[`Open a player from the `,(0,T.jsx)(`a`,{href:`#/leaderboards/players`,children:`leaderboard players`}),`.`]})})}):(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(H,{state:t,subject:`the player`,notFound:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`This player has no leaderboard record`,children:[`They may have been erased or merged. Search the `,(0,T.jsx)(`a`,{href:`#/leaderboards/players`,children:`leaderboard players`}),`.`]})}),children:e=>(0,T.jsx)(Ql,{detail:e,onChanged:t.refresh})})})}function Ql(e){let{player:t,entries:n}=e.detail,{hasPermission:r}=M(),i=N(),a=jn(()=>w.get(`leaderboards/boards`),[]),[o,s]=(0,_.useState)({kind:`none`}),c=r(`leaderboards.manage`),l=()=>s({kind:`none`}),u=e=>a.data?.find(t=>t.definition.boardId===e)?.definition.dimensions??[],d=async()=>{try{let n=await w.send(`POST`,nu(t.playerId)+`/hide`,{hidden:!t.hidden});i(n.hidden?`Hid `+n.displayName+`: their entries left every ranking and new scores are discarded.`:`Unhid `+n.displayName+`: their entries are back.`),e.onChanged()}catch(e){i(`Could not change `+t.displayName+`: `+C(e).message,`error`)}};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(R,{eyebrow:(0,T.jsxs)(`a`,{href:`#/leaderboards/players`,className:`row`,children:[(0,T.jsx)(E,{name:`back`}),`Leaderboard players`]}),title:(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:t.displayName}),t.hidden&&(0,T.jsx)(V,{tone:`warning`,children:`hidden`})]}),actions:c?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>s({kind:`rename`}),children:[(0,T.jsx)(E,{name:`edit`}),`Rename`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>void d(),children:[(0,T.jsx)(E,{name:t.hidden?`unlock`:`lock`}),t.hidden?`Unhide`:`Hide`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>s({kind:`merge`}),children:[(0,T.jsx)(E,{name:`players`}),`Merge into…`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>s({kind:`erase`}),children:[(0,T.jsx)(E,{name:`trash`}),`Erase all data`]})]}):void 0}),(0,T.jsx)(nl,{current:`players`}),(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Identity`})}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Player id`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.playerId}),(0,T.jsx)(`dt`,{children:`Kind`}),(0,T.jsx)(`dd`,{children:il[t.kind]}),(0,T.jsx)(`dt`,{children:`Created`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:t.createdAt})}),(0,T.jsx)(`dt`,{children:`Last seen`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:t.lastSeenAt,isRelative:!0})})]})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Entries`}),(0,T.jsxs)(`span`,{className:`small muted`,children:[n.length,` across every board and season`]})]}),(0,T.jsx)(L,{caption:`Leaderboard entries of `+t.displayName,columns:[{key:`board`,header:`Board`,render:e=>(0,T.jsx)(`a`,{href:P([`leaderboards`,`board`],{boardId:e.boardId,season:e.isCurrentSeason?``:String(e.seasonId),variantKey:e.variantKey}),children:e.boardName})},{key:`season`,header:`Season`,render:e=>(0,T.jsxs)(`span`,{className:`row`,children:[`#`,e.seasonId,!e.isCurrentSeason&&(0,T.jsx)(V,{isPlain:!0,children:`archived`})]})},{key:`variant`,header:`Variant`,render:e=>qc(Jc(e.variantKey),u(e.boardId))},{key:`rank`,header:`Rank`,isNumber:!0,render:e=>e.rank==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsxs)(T.Fragment,{children:[`#`,e.rank,` `,(0,T.jsxs)(`span`,{className:`muted small`,children:[`of `,e.total]})]})},{key:`score`,header:`Score`,isNumber:!0,render:e=>(0,T.jsx)(`span`,{className:`mono`,children:Kc(e.score,e.scoreFormat)})},{key:`removed`,header:`Removed reason`,render:e=>e.removedReason==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):(0,T.jsx)(V,{tone:`warning`,children:e.removedReason})}],rows:n,rowKey:e=>e.boardId+`/`+e.seasonId+`/`+e.variantKey,emptyState:(0,T.jsx)(z,{title:`No leaderboard entries`,icon:`trophy`})})]}),o.kind===`rename`&&(0,T.jsx)($l,{player:t,onRenamed:e.onChanged,onClose:l}),o.kind===`merge`&&(0,T.jsx)(eu,{player:t,onClose:l}),o.kind===`erase`&&(0,T.jsx)(tu,{player:t,onClose:l})]})}function $l(e){let t=N(),[n,r]=(0,_.useState)(e.player.displayName);return(0,T.jsx)(k,{title:`Rename `+e.player.displayName,description:`The name shows on every ranking the player is in. Blocked words are refused.`,confirmLabel:`Rename`,tone:`primary`,canConfirm:n.trim()!==``,onConfirm:async()=>{let r=await w.send(`PUT`,nu(e.player.playerId)+`/name`,{displayName:n.trim()});t(`Renamed `+e.player.displayName+` to `+r.displayName+`.`),e.onRenamed()},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Display name`,children:(0,T.jsx)(`input`,{className:`input`,value:n,onChange:e=>r(e.target.value),maxLength:24})})})}function eu(e){let t=N(),[n,r]=(0,_.useState)(``),i=n.trim();return(0,T.jsx)(k,{title:`Merge `+e.player.displayName+` into another player?`,description:`Each ranking keeps the entry the board's keep rule picks (best, latest, or the two added for a running total). This player is then erased.`,confirmLabel:`Merge`,typedConfirmation:e.player.playerId,canConfirm:i!==``&&i!==e.player.playerId,onConfirm:async()=>{let n=await w.send(`POST`,nu(e.player.playerId)+`/merge`,{intoPlayerId:i});t(`Merged `+e.player.displayName+` into `+n.player.displayName+`.`),window.location.hash=ol(n.player.playerId)},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Keep player id`,hint:`The player who keeps the entries, e.g. after a lost key.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:n,onChange:e=>r(e.target.value),autoComplete:`off`,spellCheck:!1})})})}function tu(e){let t=N();return(0,T.jsx)(k,{title:`Erase all data of `+e.player.displayName+`?`,description:`Every entry in every season and the player record are deleted for good. A game still holding the player's key starts over as a new player.`,confirmLabel:`Erase all data`,typedConfirmation:e.player.playerId,onConfirm:async()=>{let n=await w.send(`DELETE`,nu(e.player.playerId));t(`Erased `+e.player.displayName+` and `+n.erasedEntries+` entries.`),window.location.hash=`#/leaderboards/players`},onClose:e.onClose})}function nu(e){return`leaderboards/players/`+encodeURIComponent(e)}var ru=`babylon-game-server-leaderboards`,K=`babylon-game-server-leaderboard-definitions`,iu=1;function au(e){let t;try{t=JSON.parse(e)}catch{throw Error(`This file is not JSON, so it is not a leaderboard backup or definitions file.`)}let n=typeof t==`object`&&t&&!Array.isArray(t)?t:{};if(n.format!==ru&&n.format!==K)throw Error(`This is not a leaderboard backup or definitions file: its format must be `+ru+` or `+K+`.`);if(n.version!==iu)throw Error(`This leaderboard file is version `+String(n.version)+`; this console reads version 1.`);if(!Array.isArray(n.boards))throw Error(`This leaderboard file has no boards list.`);return n}var ou=409,su=[{name:`submissionsPerMinutePerPlayer`,label:`Submissions per minute per player`},{name:`submissionsPerMinutePerAddress`,label:`Submissions per minute per address`},{name:`readsPerMinutePerAddress`,label:`Reads per minute per address`},{name:`identitiesPerHourPerAddress`,label:`New players per hour per address`},{name:`maximumScoresPerSubmission`,label:`Scores per submission`},{name:`metadataMaximumBytes`,label:`Metadata size per score (bytes)`}];function cu(){let{hasPermission:e}=M(),t=jn(()=>w.get(`leaderboards/rules`),[]),n=e(`leaderboards.manage`);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Leaderboard settings`,description:`Fleet-wide abuse limits and name rules for every board, and backups of every board, season, entry and player.`}),(0,T.jsx)(nl,{current:`settings`}),(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Rules`}),(0,T.jsx)(`span`,{className:`small muted`,children:`Apply to every board at once`})]}),(0,T.jsx)(H,{state:t,subject:`the rules`,children:e=>(0,T.jsx)(lu,{view:e,canManage:n,onSaved:t.refresh},e.revision)})]}),(0,T.jsx)(uu,{canManage:n})]})}function lu(e){let t=N(),[n,r]=(0,_.useState)(()=>mu(e.view.rules)),[i,a]=(0,_.useState)(e.view.rules.blockedWords.join(`
21
+ `)),[o,s]=(0,_.useState)(!1),c=su.filter(e=>!gu(n[e.name])),l=async()=>{let r={...hu(n),blockedWords:_u(i)};s(!0);try{await w.send(`PUT`,`leaderboards/rules`,{rules:r,revision:e.view.revision}),t(`Saved the leaderboard rules.`)}catch(e){let n=C(e);t(n.status===ou?`Changed by someone else — reloaded`:`Could not save the rules: `+n.message,`error`)}s(!1),e.onSaved()};return(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>{e.preventDefault(),l()},children:[(0,T.jsx)(`div`,{className:`form-grid`,children:su.map(t=>(0,T.jsx)(O,{label:t.label,hint:`Default: `+e.view.defaults[t.name].toLocaleString(`en`),error:c.includes(t)?`A whole number from 0.`:null,children:(0,T.jsx)(`input`,{className:`input`,type:`number`,min:0,step:1,value:n[t.name],disabled:!e.canManage,onChange:e=>r({...n,[t.name]:e.target.value})})},t.name))}),(0,T.jsx)(O,{label:`Blocked words`,hint:`One per line, saved in lower case. Display names containing one are refused. Default: `+(e.view.defaults.blockedWords.length===0?`none`:e.view.defaults.blockedWords.join(`, `))+`.`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:i,disabled:!e.canManage,onChange:e=>a(e.target.value),spellCheck:!1})}),e.canManage&&(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary`,disabled:c.length>0||o,children:o?`Saving…`:`Save rules`})})]})}function uu(e){let t=N(),n=(0,_.useRef)(null),[r,i]=(0,_.useState)(null),a=()=>{w.download(`leaderboards/export`,{format:`json`}).then(()=>t(`Downloaded leaderboards.json.`),e=>t(`Could not export: `+C(e).message,`error`))},o=async e=>{let n=e.target.files?.[0];if(e.target.value=``,n!=null)try{let e=au(await n.text()),t=await pu(e,`skip`);i({fileName:n.name,file:e,conflictPolicy:`skip`,preview:t})}catch(e){t(`Could not read `+n.name+`: `+C(e).message,`error`)}};return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Backups`})}),(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsx)(`p`,{className:`muted`,children:`A backup holds every board, season, entry (removed ones too) and player, with anonymous players' key hashes so their games keep working after a restore. A definitions file holds only boards.`}),(0,T.jsxs)(`div`,{className:`row`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:a,children:[(0,T.jsx)(E,{name:`download`}),`Export everything (JSON)`]}),e.canManage&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>n.current?.click(),children:[(0,T.jsx)(E,{name:`upload`}),`Import…`]})]})]}),(0,T.jsx)(`input`,{ref:n,className:`visually-hidden`,type:`file`,accept:`application/json,.json`,tabIndex:-1,"aria-hidden":`true`,onChange:e=>void o(e)}),r!=null&&(0,T.jsx)(du,{state:r,onPolicyPreviewed:i,onClose:()=>i(null)})]})}function du(e){let t=N(),[n,r]=(0,_.useState)(!1),{preview:i,conflictPolicy:a}=e.state,o=async n=>{r(!0);try{e.onPolicyPreviewed({...e.state,conflictPolicy:n,preview:await pu(e.state.file,n)})}catch(e){t(`Could not preview the import: `+C(e).message,`error`)}r(!1)};return(0,T.jsxs)(k,{title:`Import `+e.state.fileName+`?`,description:`This preview was a dry run; nothing has changed yet.`,confirmLabel:`Import`,tone:`primary`,isWide:!0,canConfirm:!n,onConfirm:async()=>{let n=await w.send(`POST`,`leaderboards/import`,{file:e.state.file,conflictPolicy:a,dryRun:!1});t(`Imported `+e.state.fileName+`: `+(n.boardsCreated.length+n.boardsReplaced.length)+` boards, `+n.entriesWritten+` entries, `+n.playersWritten+` players.`)},onClose:e.onClose,children:[(0,T.jsxs)(`fieldset`,{className:`choice-group`,children:[(0,T.jsx)(`legend`,{children:`Boards that already exist`}),(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`radio`,name:`conflictPolicy`,checked:a===`skip`,disabled:n,onChange:()=>void o(`skip`)}),`Skip existing`]}),(0,T.jsxs)(`label`,{className:`choice`,children:[(0,T.jsx)(`input`,{type:`radio`,name:`conflictPolicy`,checked:a===`replace`,disabled:n,onChange:()=>void o(`replace`)}),`Replace existing`]})]}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Create`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(fu,{boardIds:i.boardsCreated})}),(0,T.jsx)(`dt`,{children:`Replace`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(fu,{boardIds:i.boardsReplaced})}),(0,T.jsx)(`dt`,{children:`Skip`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(fu,{boardIds:i.boardsSkipped})}),(0,T.jsx)(`dt`,{children:`Entries`}),(0,T.jsx)(`dd`,{children:i.entriesWritten.toLocaleString(`en`)}),(0,T.jsx)(`dt`,{children:`Players`}),(0,T.jsx)(`dd`,{children:i.playersWritten.toLocaleString(`en`)})]}),i.boardsReplaced.length>0&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsx)(`div`,{className:`banner__body`,children:`Replacing deletes every season and entry of those boards before the file's are written.`})]})]})}function fu(e){return e.boardIds.length===0?(0,T.jsx)(`span`,{className:`muted`,children:`none`}):(0,T.jsx)(`span`,{className:`mono break-anywhere`,children:e.boardIds.join(`, `)})}function pu(e,t){return w.send(`POST`,`leaderboards/import`,{file:e,conflictPolicy:t,dryRun:!0})}function mu(e){let t={};for(let n of su)t[n.name]=String(e[n.name]);return t}function hu(e){let t={};for(let n of su)t[n.name]=Number(e[n.name]);return t}function gu(e){let t=Number(e);return e.trim()!==``&&Number.isSafeInteger(t)&&t>=0}function _u(e){let t=e.split(/\r?\n/).map(e=>e.trim().toLowerCase()).filter(e=>e!==``);return[...new Set(t)]}function vu(){let{hasPermission:e}=M(),t=N(),n=jn(()=>w.get(`leaderboards/boards`),[]),[r,i]=(0,_.useState)({kind:`none`}),a=e(`leaderboards.manage`),o=()=>i({kind:`none`}),s=async e=>{let r=e.definition.visibility===`public`?`hidden`:`public`;try{await w.send(`PUT`,xu(e),{definition:{...e.definition,visibility:r},revision:e.revision,startNewSeason:!1}),t((r===`hidden`?`Hid `:`Showed `)+e.definition.displayName+`.`),n.refresh()}catch(n){t(`Could not change `+e.definition.displayName+`: `+C(n).message,`error`)}},c=[{key:`board`,header:`Board`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:Su(e),children:e.definition.displayName}),(0,T.jsx)(`span`,{className:`small muted mono`,children:e.definition.boardId})]})},{key:`rules`,header:`Sort · keep`,render:e=>Xc(e.definition.sortOrder)+` · `+Zc(e.definition.keepPolicy)},{key:`entries`,header:`Entries`,isNumber:!0,render:e=>e.entryCount.toLocaleString(`en`)},{key:`season`,header:`Season`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`span`,{children:[`#`,e.currentSeasonId]}),(0,T.jsx)(`span`,{className:`small muted`,children:e.nextResetAt==null?`no scheduled reset`:(0,T.jsxs)(T.Fragment,{children:[`resets `,(0,T.jsx)(B,{iso:e.nextResetAt,isRelative:!0})]})})]})},{key:`last`,header:`Last score`,render:e=>(0,T.jsx)(B,{iso:e.lastSubmissionAt,isRelative:!0,emptyText:`none yet`})},{key:`visibility`,header:`Visibility`,render:e=>e.definition.visibility===`public`?(0,T.jsx)(V,{tone:`success`,children:`public`}):(0,T.jsx)(V,{children:`hidden`})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[(0,T.jsx)(`a`,{className:`button button--small`,href:Su(e),children:`Open`}),a&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>i({kind:`duplicate`,board:e}),children:`Duplicate`}),a&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>void s(e),children:e.definition.visibility===`public`?`Hide`:`Show`}),a&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>i({kind:`delete`,board:e}),children:`Delete`})]})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Leaderboards`,description:`Boards rank the scores your game submits. Open a board to browse its rankings by season and variant.`,actions:a?(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>i({kind:`create`}),children:[(0,T.jsx)(E,{name:`plus`}),`New board`]}):void 0}),(0,T.jsx)(nl,{current:`boards`}),(0,T.jsx)(`section`,{className:`panel panel--flush`,children:(0,T.jsx)(H,{state:n,subject:`the boards`,children:e=>(0,T.jsx)(L,{caption:`Leaderboard boards`,columns:c,rows:e,rowKey:e=>e.definition.boardId,emptyState:(0,T.jsx)(z,{title:`No boards yet`,icon:`trophy`,children:a?`Use “New board”, import a backup on the Settings tab, or start the server with a definitions file.`:`Boards appear here once an admin creates them.`})})})}),r.kind===`create`&&(0,T.jsx)(Ol,{existing:null,onSaved:e=>{window.location.hash=Su(e)},onClose:o}),r.kind===`duplicate`&&(0,T.jsx)(yu,{board:r.board,onDuplicated:n.refresh,onClose:o}),r.kind===`delete`&&(0,T.jsx)(bu,{board:r.board,onDeleted:n.refresh,onClose:o})]})}function yu(e){let t=N(),[n,r]=(0,_.useState)(e.board.definition.boardId+`-copy`),[i,a]=(0,_.useState)(e.board.definition.displayName+` (copy)`);return(0,T.jsxs)(k,{title:`Duplicate `+e.board.definition.displayName,description:`The copy has the same rules and variants, its own season 1 and no entries.`,confirmLabel:`Duplicate`,tone:`primary`,canConfirm:n.trim()!==``&&i.trim()!==``,onConfirm:async()=>{await w.send(`POST`,xu(e.board)+`/duplicate`,{newBoardId:n.trim(),displayName:i.trim()}),t(`Created `+i.trim()+` from `+e.board.definition.displayName+`.`),e.onDuplicated()},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`New board id`,children:(0,T.jsx)(`input`,{className:`input mono`,value:n,onChange:e=>r(e.target.value),maxLength:64,autoComplete:`off`,spellCheck:!1})}),(0,T.jsx)(O,{label:`Name`,children:(0,T.jsx)(`input`,{className:`input`,value:i,onChange:e=>a(e.target.value),maxLength:80})})]})}function bu(e){let t=N();return(0,T.jsx)(k,{title:`Delete `+e.board.definition.displayName+`?`,description:`Every season and entry of this board is deleted. Games submitting to it are refused until it is created again.`,confirmLabel:`Delete board`,typedConfirmation:e.board.definition.boardId,onConfirm:async()=>{await w.send(`DELETE`,xu(e.board)),t(`Deleted `+e.board.definition.displayName+`.`),e.onDeleted()},onClose:e.onClose})}function xu(e){return`leaderboards/boards/`+encodeURIComponent(e.definition.boardId)}function Su(e){return P([`leaderboards`,`board`],{boardId:e.definition.boardId})}function Cu(e){let t=e.instances.some(t=>t.processId===e.selectedProcessId);return(0,T.jsxs)(T.Fragment,{children:[e.selectedProcessId!==``&&!t&&(0,T.jsx)(`option`,{value:e.selectedProcessId,children:e.selectedProcessId}),e.instances.map(e=>(0,T.jsx)(`option`,{value:e.processId,children:wu(e)},e.processId))]})}function wu(e){let t=e.instanceLabel==null?``:` · `+e.instanceLabel,n=e.status===`lost`?` (lost)`:``;return e.processId+t+n}function Tu(e,t){let n=t.trim().toLowerCase();if(n===``)return[{text:e,isMatch:!1}];let r=e.toLowerCase(),i=[],a=0,o=r.indexOf(n,a);for(;o!==-1;)o>a&&i.push({text:e.slice(a,o),isMatch:!1}),i.push({text:e.slice(o,o+n.length),isMatch:!0}),a=o+n.length,o=r.indexOf(n,a);return a<e.length&&i.push({text:e.slice(a),isMatch:!1}),i}function Eu(e,t,n){if(t.length===0)return e;let r=e.concat(t);return r.length>n?r.slice(r.length-n):r}function Du(e){return Object.entries(e).filter(([,e])=>e!==void 0).map(([e,t])=>e+`=`+Ou(t)).join(` `)}function Ou(e){return typeof e==`string`?e:JSON.stringify(e)??String(e)}var ku=24,Au=11,ju={level:``,processId:``,roomId:``,sessionName:``,playerId:``,userId:``,text:``};function Mu(e){let t=Fu(e.filter,e.isPaused),n=(0,_.useRef)(null),r=(0,_.useRef)(!0),[i,a]=(0,_.useState)(!0);(0,_.useLayoutEffect)(()=>{let e=n.current;e!=null&&r.current&&(e.scrollTop=e.scrollHeight)},[t.entries]);let o=()=>{let e=n.current;if(e==null)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<=ku;r.current=t,t!==i&&a(t)},s=()=>{let e=n.current;e!=null&&(r.current=!0,a(!0),e.scrollTop=e.scrollHeight)},c=e.isCompact===!0?`log-tail__list log-tail__list--compact`:`log-tail__list`;return(0,T.jsxs)(`div`,{className:`log-tail`,children:[t.error!=null&&(0,T.jsxs)(`div`,{className:`inline-error`,role:`status`,children:[(0,T.jsx)(E,{name:`alert`}),`Live tail paused: `,t.error.message,`. Retrying.`]}),t.isLoading&&(0,T.jsx)(`div`,{className:`skeleton`,"aria-label":`Loading log lines`}),!t.isLoading&&t.entries.length===0&&(0,T.jsx)(z,{title:`No log lines match yet`,icon:`logs`,children:`New lines appear here as the server writes them.`}),t.entries.length>0&&(0,T.jsx)(`ol`,{className:c,ref:n,onScroll:o,"aria-label":`Log lines`,"aria-live":`off`,children:t.entries.map(t=>(0,T.jsx)(Nu,{entry:t,filterText:e.filter.text,showsInstance:e.isCompact!==!0},t.processId+`-`+t.sequence))}),(0,T.jsxs)(`div`,{className:`log-tail__status small muted`,children:[(0,T.jsxs)(`span`,{children:[e.isPaused?`Paused`:`Live`,` · `,t.entries.length,` lines`,t.entries.length>=2e3?` (oldest dropped)`:``]}),!i&&t.entries.length>0&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:s,children:[(0,T.jsx)(E,{name:`chevronDown`}),`Newest lines`]})]})]})}var Nu=(0,_.memo)(function(e){let{entry:t}=e,n=Ze(),r=Du(t.fields);return(0,T.jsxs)(`li`,{className:`log-tail__line`,children:[(0,T.jsx)(`time`,{className:`log-tail__time`,dateTime:t.time,title:t.time,children:Ve(t.time,n).slice(Au)}),(0,T.jsx)(`span`,{className:`log-level log-level--`+t.level,children:t.level.toUpperCase()}),e.showsInstance&&(0,T.jsx)(`span`,{className:`log-tail__instance`,children:t.processId}),(0,T.jsxs)(`span`,{className:`log-tail__message`,children:[(0,T.jsx)(Pu,{text:t.message,filterText:e.filterText}),r!==``&&(0,T.jsxs)(`span`,{className:`log-tail__fields`,children:[` `,(0,T.jsx)(Pu,{text:r,filterText:e.filterText})]})]})]})});function Pu(e){let t=Tu(e.text,e.filterText);return(0,T.jsx)(T.Fragment,{children:t.map((e,t)=>e.isMatch?(0,T.jsx)(`mark`,{children:e.text},t):e.text)})}function Fu(e,t){let[n,r]=(0,_.useState)({entries:[],error:null,isLoading:!0}),i=(0,_.useRef)(``),a=(0,_.useRef)(0),o=(0,_.useRef)(!1),s=JSON.stringify(e);return(0,_.useEffect)(()=>{a.current+=1,i.current=``,o.current=!1,r({entries:[],error:null,isLoading:!0})},[s]),(0,_.useEffect)(()=>{if(t)return;let n=a.current,s=!1,c=null,l=async()=>{if(!(s||document.visibilityState===`hidden`||o.current)){o.current=!0;try{let t=await w.get(`logs`,{...e,after:i.current,limit:500});if(n!==a.current)return;i.current=t.cursor,r(e=>({entries:Eu(e.entries,t.entries,ae),error:null,isLoading:!1}))}catch(e){let t=C(e);he(t.status)&&(s=!0,c!=null&&window.clearInterval(c)),n===a.current&&r(e=>({...e,error:t,isLoading:!1}))}finally{n===a.current&&(o.current=!1)}}};l(),c=window.setInterval(()=>void l(),b);let u=()=>{document.visibilityState===`visible`&&l()};return document.addEventListener(`visibilitychange`,u),()=>{c!=null&&window.clearInterval(c),document.removeEventListener(`visibilitychange`,u)}},[s,t]),n}var Iu=[`error`,`warn`,`info`,`debug`],Lu=`fleet`,Ru=1440,zu=[{name:`sessionName`,label:`Session name`,placeholder:`any session`},{name:`roomId`,label:`Room id`,placeholder:`any room`},{name:`playerId`,label:`Player id`,placeholder:`any player`},{name:`userId`,label:`User id`,placeholder:`any user`}];function Bu(){let{hasPermission:e}=M(),t=N(),n=Cr(),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(!1),s=e(`fleet.view`),c=I(()=>s?w.get(`instances`):Promise.resolve([]),y,[s]),l=()=>{c.refresh(),o(!0)},u=n.get(`level`),d=n.get(`processId`),f=n.get(`sessionName`),p=n.get(`roomId`),m=n.get(`playerId`),h=n.get(`userId`),g=n.get(`text`),v=(0,_.useMemo)(()=>({level:u,processId:d,roomId:p,sessionName:f,playerId:m,userId:h,text:g}),[u,d,p,f,m,h,g]),b=[u,d,f,p,m,h].filter(e=>e!==``).length;return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Logs`,description:`The newest lines of every instance, live. Filters stay in the address, so you can share a filtered view.`,actions:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,"aria-pressed":r,onClick:()=>i(!r),children:[(0,T.jsx)(E,{name:r?`play`:`pause`}),r?`Resume`:`Pause`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>{w.download(`logs/download`,{...v}).then(()=>t(`Downloaded the matching log lines.`),e=>t(`Could not download the logs: `+C(e).message,`error`))},children:[(0,T.jsx)(E,{name:`download`}),`Download`]}),e(`logs.manage`)&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:l,children:[(0,T.jsx)(E,{name:`config`}),`Set level`]})]})}),(0,T.jsx)($r,{label:`Log filters`,activeExtraCount:b,extra:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(O,{label:`Level`,children:(0,T.jsxs)(`select`,{className:`select`,value:u,onChange:e=>n.set({level:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Any level`}),Iu.map(e=>(0,T.jsxs)(`option`,{value:e,children:[e,` and above`]},e))]})}),(0,T.jsx)(O,{label:`Instance`,children:(0,T.jsxs)(`select`,{className:`select`,value:d,onChange:e=>n.set({processId:e.target.value}),children:[(0,T.jsx)(`option`,{value:``,children:`Every instance`}),(0,T.jsx)(Cu,{instances:c.data??[],selectedProcessId:d})]})}),zu.map(e=>(0,T.jsx)(ti,{label:e.label,value:v[e.name],placeholder:e.placeholder,onCommit:t=>n.set({[e.name]:t})},e.name))]}),children:(0,T.jsx)(ti,{label:`Text`,value:g,placeholder:`Search messages and fields`,onCommit:e=>n.set({text:e})})}),(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(Mu,{filter:v,isPaused:r})}),a&&(0,T.jsx)(Vu,{instances:c.data??[],onSet:c.refresh,onClose:()=>o(!1)})]})}function Vu(e){let t=N(),[n,r]=(0,_.useState)(Lu),[i,a]=(0,_.useState)(`debug`),[o,s]=(0,_.useState)(`30`),c=Number(o),l=Number.isInteger(c)&&c>=1&&c<=Ru;return(0,T.jsxs)(k,{title:`Set the log level`,description:`A temporary level, for example debug while you chase a problem. It goes back to the configured level by itself.`,confirmLabel:`Set level`,tone:`primary`,canConfirm:l,onConfirm:async()=>{let r={scope:n,level:i,revertAfterMinutes:c};await w.send(`PUT`,`logs/level`,r),t(`Log level `+i+` on `+(n===Lu?`the fleet`:n)+`; it reverts in `+c+` min.`),e.onSet()},onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Where`,children:(0,T.jsxs)(`select`,{className:`select`,value:n,onChange:e=>r(e.target.value),children:[(0,T.jsx)(`option`,{value:Lu,children:`The whole fleet`}),e.instances.map(e=>(0,T.jsx)(`option`,{value:e.processId,children:e.processId},e.processId))]})}),(0,T.jsx)(O,{label:`Level`,children:(0,T.jsx)(`select`,{className:`select`,value:i,onChange:e=>a(e.target.value),children:Iu.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})}),(0,T.jsx)(O,{label:`Revert after (minutes)`,error:l?null:`Use 1 to 1440 minutes.`,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:o,onChange:e=>s(e.target.value)})})]}),e.instances.length>0&&(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`field__label`,children:`Current level per instance`}),(0,T.jsx)(`ul`,{className:`list-plain`,children:e.instances.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`span`,{className:`mono`,children:e.processId}),(0,T.jsx)(V,{tone:e.logLevel===`debug`?`warning`:`neutral`,isPlain:!0,children:e.logLevel})]},e.processId))})]})]})}var Hu={scheduled:`info`,warning:`warning`,active:`danger`,done:`neutral`,cancelled:`neutral`},Uu=[`scheduled`,`warning`,`active`],Wu=6e4,Gu=60,Ku=60,qu=10,Ju=`Scheduled maintenance. Please come back soon.`;function Yu(e){let{hasPermission:t}=M(),n=N(),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),s=t(`fleet.manage`);return(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`maintenance-windows`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`maintenance-windows`,children:`Scheduled windows`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Maintenance switches on and off by itself at these times, after a countdown notice to players.`})]}),s&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>i(!0),children:[(0,T.jsx)(E,{name:`calendar`}),`Schedule a window`]})]}),(0,T.jsx)(L,{caption:`Scheduled maintenance windows`,columns:[{key:`state`,header:`State`,render:e=>(0,T.jsx)(V,{tone:Hu[e.state],isLive:e.state===`active`||e.state===`warning`,children:e.state})},{key:`when`,header:`When`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`span`,{children:[(0,T.jsx)(B,{iso:e.startsAt}),` – `,(0,T.jsx)(B,{iso:e.endsAt})]}),(e.state===`scheduled`||e.state===`warning`)&&(0,T.jsxs)(`span`,{className:`small muted`,children:[`starts in `,(0,T.jsx)(ic,{deadline:e.startsAt})]}),e.state===`active`&&(0,T.jsxs)(`span`,{className:`small muted`,children:[`ends in `,(0,T.jsx)(ic,{deadline:e.endsAt})]})]})},{key:`message`,header:`Message`,render:e=>(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.message})},{key:`warning`,header:`Warning`,render:e=>e.warningMinutes==null?(0,T.jsx)(`span`,{className:`muted`,children:`none`}):(0,T.jsxs)(`span`,{children:[e.warningMinutes,` min before`]})},{key:`by`,header:`By`,render:e=>e.createdBy},{key:`actions`,header:`Actions`,isActions:!0,render:e=>s&&Uu.includes(e.state)?(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>o(e),children:`Cancel`}):null}],rows:e.windows,rowKey:e=>e.windowId,emptyState:(0,T.jsx)(z,{title:`Nothing scheduled`,icon:`calendar`,children:`Schedule a window to warn players and switch maintenance on and off by itself.`})}),r&&(0,T.jsx)(Xu,{onScheduled:e.onChanged,onClose:()=>i(!1)}),a!=null&&(0,T.jsx)(k,{title:`Cancel this maintenance window?`,description:a.state===`active`?`Maintenance is on now; cancelling ends it straight away.`:`It will not start, and no warning is sent.`,confirmLabel:`Cancel window`,onConfirm:async()=>{a!=null&&(await w.send(`DELETE`,`maintenance/windows/`+encodeURIComponent(a.windowId)),n(`Cancelled the window. `+(a.state===`active`?`Maintenance ends now.`:`It will not start.`)),e.onChanged())},onClose:()=>o(null)})]})}function Xu(e){let t=N(),n=Date.now()+Gu*Wu,[r,i]=(0,_.useState)(()=>qe(n)),[a,o]=(0,_.useState)(()=>qe(n+Ku*Wu)),[s,c]=(0,_.useState)(Ju),[l,u]=(0,_.useState)(String(qu)),[d,f]=(0,_.useState)(``),[p,m]=(0,_.useState)(``),[h,g]=(0,_.useState)(!1),v=Je(r),y=Je(a),b=Number(l),ee=Zu(v,y),te=l.trim()!==``&&(!Number.isInteger(b)||b<0)?`Enter whole minutes, or leave it empty for no warning.`:null,ne=ee==null&&te==null&&s.trim()!==``;return(0,T.jsxs)(k,{title:`Schedule maintenance`,description:`Applies to the whole fleet. You will confirm with your authenticator.`,confirmLabel:`Schedule`,tone:`primary`,canConfirm:ne,onConfirm:async()=>{if(v==null||y==null)return;let n={startsAt:v,endsAt:y,message:s.trim(),warningMinutes:l.trim()===``?null:b,allowUserIds:Qu(d),allowAddresses:Qu(p),leaveReadiness:h};await w.send(`POST`,`maintenance/windows`,n),t(`Scheduled maintenance for `+new Date(v).toLocaleString()+`.`),e.onScheduled()},onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Starts`,hint:`In your browser's time zone.`,error:ee,children:(0,T.jsx)(`input`,{className:`input`,type:`datetime-local`,value:r,onChange:e=>i(e.target.value)})}),(0,T.jsx)(O,{label:`Ends`,children:(0,T.jsx)(`input`,{className:`input`,type:`datetime-local`,value:a,onChange:e=>o(e.target.value)})}),(0,T.jsx)(O,{label:`Warn players (minutes before)`,hint:`A countdown notice in the game. Empty for none.`,error:te,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:l,onChange:e=>u(e.target.value)})})]}),(0,T.jsx)(O,{label:`Message`,hint:`Shown to players who try to join while it is on.`,children:(0,T.jsx)(`textarea`,{className:`textarea`,rows:2,value:s,onChange:e=>c(e.target.value),maxLength:300})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`User ids still allowed (optional)`,hint:`Separated by commas.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:d,onChange:e=>f(e.target.value),spellCheck:!1})}),(0,T.jsx)(O,{label:`Addresses still allowed (optional)`,hint:`Addresses or CIDR ranges.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:p,onChange:e=>m(e.target.value),spellCheck:!1})})]}),(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:h,onChange:e=>g(e.target.checked)}),(0,T.jsx)(`span`,{children:`Report “not ready” to the load balancer while it is on`})]})]})}function Zu(e,t){return e==null||t==null?`Pick a start and an end.`:Date.parse(e)<=Date.now()?`Pick a start in the future.`:Date.parse(t)<=Date.parse(e)?`The end must be after the start.`:null}function Qu(e){return e.split(/[\s,]+/).map(e=>e.trim()).filter(e=>e!==``)}var q={running:`info`,paused:`warning`,done:`success`,cancelled:`neutral`,failed:`danger`},$u={waiting:`waiting`,noticeSent:`notice sent`,draining:`draining`,replaced:`replaced`,failed:`failed`},J={waiting:`neutral`,noticeSent:`info`,draining:`info`,replaced:`success`,failed:`danger`},Y={pause:`Pause`,resume:`Resume`,cancel:`Cancel`},X=120,ed=15,td=`This server is updating. Your session will move shortly.`,nd=5,rd=`fleet`;function id(e){let{hasPermission:t}=M(),n=N(),r=I(()=>w.get(`rollouts`),y,[]),[i,a]=(0,_.useState)(!1),o=t(`fleet.manage`),s=[...r.data??[]].sort((e,t)=>Date.parse(t.startedAt)-Date.parse(e.startedAt)),c=s.find(e=>e.state===`running`||e.state===`paused`),l=s.filter(e=>e!==c).slice(0,nd),u=e.processIds.length<2,d=(e,t)=>{w.send(`POST`,`rollouts/`+encodeURIComponent(e.rolloutId)+`/`+t).then(()=>{n(Y[t]+`: done.`),r.refresh()},e=>n(`Could not `+t+` the rolling update: `+C(e).message,`error`))};return(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`maintenance-rollouts`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`maintenance-rollouts`,children:`Rolling update`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Drains instances one at a time and waits for each replacement, so players always have somewhere to play.`})]}),o&&c==null&&!u&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>a(!0),children:[(0,T.jsx)(E,{name:`rollout`}),`Start rolling update`]})]}),u&&c==null?(0,T.jsx)(od,{processId:e.processIds[0]??null,canManage:o,onStartMaintenance:e.onStartMaintenance,onStartDrain:e.onStartDrain}):null,c!=null&&(0,T.jsx)(ad,{rollout:c,canManage:o,onCommand:e=>d(c,e)}),c==null&&!u&&(0,T.jsx)(`p`,{className:`muted`,children:`No rolling update is running.`}),r.error!=null&&r.data==null&&(0,T.jsxs)(`p`,{className:`small muted`,children:[`Rolling updates are not available: `,r.error.message]}),l.length>0&&(0,T.jsxs)(`details`,{className:`stack`,children:[(0,T.jsxs)(`summary`,{className:`small muted`,children:[`Earlier rolling updates (`,l.length,`)`]}),(0,T.jsx)(`ul`,{className:`list-plain`,children:l.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(V,{tone:q[e.state],children:e.state}),(0,T.jsxs)(`span`,{className:`small`,children:[e.steps.length,` instances, by `,e.startedBy]})]}),(0,T.jsx)(B,{iso:e.startedAt,isRelative:!0})]},e.rolloutId))})]}),i&&(0,T.jsx)(sd,{instanceCount:e.processIds.length,onStarted:r.refresh,onClose:()=>a(!1)})]})}function ad(e){let{rollout:t}=e,n=t.steps.filter(e=>e.state===`replaced`).length;return(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(V,{tone:q[t.state],isLive:t.state===`running`,children:t.state}),(0,T.jsxs)(`span`,{children:[n,` of `,t.steps.length,` instances replaced`]}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`started `,(0,T.jsx)(B,{iso:t.startedAt,isRelative:!0}),` by `,t.startedBy]})]}),e.canManage&&(0,T.jsxs)(`span`,{className:`row`,children:[t.state===`running`&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onCommand(`pause`),children:[(0,T.jsx)(E,{name:`pause`}),`Pause`]}),t.state===`paused`&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onCommand(`resume`),children:[(0,T.jsx)(E,{name:`play`}),`Resume`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small button--danger`,onClick:()=>e.onCommand(`cancel`),children:[(0,T.jsx)(E,{name:`stop`}),`Cancel`]})]})]}),t.message!=null&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsx)(`div`,{className:`banner__body`,children:t.message})]}),(0,T.jsx)(`ol`,{className:`step-list`,"aria-label":`Rolling update steps`,children:t.steps.map((e,t)=>(0,T.jsxs)(`li`,{className:`step-list__item`,children:[(0,T.jsx)(`span`,{className:cd(e),"aria-hidden":`true`,children:e.state===`replaced`?`✓`:t+1}),(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{className:`mono`,href:P([`instances`,e.processId]),children:e.processId}),e.replacementProcessId!=null&&(0,T.jsxs)(`span`,{className:`small muted`,children:[`replaced by `,(0,T.jsx)(`span`,{className:`mono`,children:e.replacementProcessId})]}),e.message!=null&&(0,T.jsx)(`span`,{className:`small muted break-anywhere`,children:e.message})]}),(0,T.jsx)(V,{tone:J[e.state],isPlain:!0,children:$u[e.state]})]},e.processId))})]})}function od(e){let{processId:t}=e;return(0,T.jsxs)(`div`,{className:`banner banner--info`,children:[(0,T.jsx)(E,{name:`info`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`A rolling update needs at least two instances`}),(0,T.jsx)(`span`,{children:`This server runs as one instance, so there is nowhere to move players while it updates. Put it in maintenance so nobody new joins, then drain it so the sessions end with a notice, and restart it with the new version.`}),e.canManage&&t!=null&&(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onStartMaintenance(t),children:[(0,T.jsx)(E,{name:`maintenance`}),`Start maintenance`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onStartDrain(t),children:[(0,T.jsx)(E,{name:`drain`}),`Drain this instance`]})]})]})]})}function sd(e){let t=N(),[n,r]=(0,_.useState)(td),[i,a]=(0,_.useState)(String(X)),[o,s]=(0,_.useState)(String(ed)),c=Number(i),l=Number(o),u=!Number.isInteger(c)||c<0?`Enter whole seconds, 0 or more.`:null,d=!Number.isInteger(l)||l<1?`Enter whole minutes, 1 or more.`:null;return(0,T.jsxs)(k,{title:`Start a rolling update?`,description:`Each of the `+e.instanceCount+` instances gets the notice, drains, and is replaced before the next one starts. It pauses by itself if an instance fails. You will confirm with your authenticator.`,confirmLabel:`Start rolling update`,tone:`primary`,typedConfirmation:rd,canConfirm:u==null&&d==null,onConfirm:async()=>{let r={noticeText:n.trim()===``?null:n.trim(),noticeLeadSeconds:c,perInstanceTimeoutMinutes:l};await w.send(`POST`,`rollouts`,r),t(`Rolling update started across `+e.instanceCount+` instances.`),e.onStarted()},onClose:e.onClose,isWide:!0,children:[(0,T.jsx)(O,{label:`Notice to players (optional)`,hint:`Shown in the game before each instance drains. Empty sends no notice.`,children:(0,T.jsx)(`textarea`,{className:`textarea`,rows:2,value:n,onChange:e=>r(e.target.value),maxLength:300})}),(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Notice lead (seconds)`,error:u,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:i,onChange:e=>a(e.target.value)})}),(0,T.jsx)(O,{label:`Per-instance timeout (minutes)`,hint:`A step that takes longer fails and pauses the update.`,error:d,children:(0,T.jsx)(`input`,{className:`input`,inputMode:`numeric`,value:o,onChange:e=>s(e.target.value)})})]})]})}function cd(e){return e.state===`replaced`?`step-list__marker step-list__marker--done`:e.state===`failed`?`step-list__marker step-list__marker--failed`:e.state===`noticeSent`||e.state===`draining`?`step-list__marker step-list__marker--active`:`step-list__marker`}function ld(){let e=I(()=>w.get(`maintenance`),y,[]),t=jn(()=>w.get(`overview`),[]).data?.scaledOut===!0,[n,r]=(0,_.useState)({kind:`none`}),i=()=>r({kind:`none`});return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Maintenance`,description:`Refuse new joins with a message while you work. Players already in a session keep playing; drain an instance to empty it.`}),(0,T.jsx)(H,{state:e,subject:`maintenance`,children:n=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(ud,{view:n,isScaledOut:t,onOpen:r}),(0,T.jsx)(Yu,{windows:n.windows,onChanged:e.refresh}),(0,T.jsx)(id,{processIds:n.instances.map(e=>e.processId),onStartMaintenance:e=>r({kind:`set`,scope:e,current:null}),onStartDrain:e=>r({kind:`drain`,processId:e})})]})}),n.kind===`set`&&(0,T.jsx)(lc,{scope:n.scope,scopeText:fd(n.scope),current:n.current,onSaved:e.refresh,onClose:i}),n.kind===`clear`&&(0,T.jsx)(dd,{scope:n.scope,onCleared:e.refresh,onClose:i}),n.kind===`drain`&&(0,T.jsx)(oc,{processId:n.processId,instanceName:`instance `+n.processId,onStarted:e.refresh,onClose:i})]})}function ud(e){let{hasPermission:t}=M(),n=t(`fleet.manage`),r=e.view.fleet,i=r!=null&&r.enabled;return(0,T.jsxs)(T.Fragment,{children:[e.isScaledOut||i?(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`maintenance-fleet`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`maintenance-fleet`,children:`Whole fleet`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Every instance applies it, including instances that start later.`})]}),i?(0,T.jsx)(V,{tone:`warning`,isLive:!0,children:`maintenance on`}):(0,T.jsx)(V,{tone:`success`,children:`accepting joins`})]}),i&&r!=null?(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Message`}),(0,T.jsx)(`dd`,{children:r.message}),(0,T.jsx)(`dt`,{children:`Allowed user ids`}),(0,T.jsx)(`dd`,{children:r.allowUserIds.length===0?(0,T.jsx)(`span`,{className:`muted`,children:`none`}):(0,T.jsx)(`span`,{className:`mono`,children:r.allowUserIds.join(`, `)})}),(0,T.jsx)(`dt`,{children:`Allowed addresses`}),(0,T.jsx)(`dd`,{children:r.allowAddresses.length===0?(0,T.jsx)(`span`,{className:`muted`,children:`none`}):(0,T.jsx)(`span`,{className:`mono`,children:r.allowAddresses.join(`, `)})}),(0,T.jsx)(`dt`,{children:`Readiness`}),(0,T.jsx)(`dd`,{children:r.leaveReadiness?`reports not ready (maintenance)`:`stays ready`})]}),n&&(0,T.jsxs)(`div`,{className:`form-actions`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>e.onOpen({kind:`set`,scope:`fleet`,current:r}),children:[(0,T.jsx)(E,{name:`edit`}),`Change`]}),(0,T.jsx)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>e.onOpen({kind:`clear`,scope:`fleet`}),children:`End fleet maintenance`})]})]}):(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsx)(`p`,{className:`muted`,children:`Players can join every instance.`}),n&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>e.onOpen({kind:`set`,scope:`fleet`,current:r}),children:[(0,T.jsx)(E,{name:`maintenance`}),`Start fleet maintenance`]})]})]}):(0,T.jsxs)(`div`,{className:`banner banner--info`,children:[(0,T.jsx)(E,{name:`info`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`This server runs as a single instance`}),(0,T.jsx)(`span`,{children:`Fleet-wide maintenance needs Redis to reach every instance. Use maintenance on this instance below; it applies to everyone who joins here.`})]})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,"aria-labelledby":`maintenance-instances`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h2`,{id:`maintenance-instances`,children:`Per instance`}),(0,T.jsx)(`p`,{className:`panel__description`,children:`Instance maintenance lasts until you end it or the instance restarts.`})]})}),(0,T.jsx)(L,{caption:`Maintenance per instance`,columns:[{key:`instance`,header:`Instance`,render:e=>(0,T.jsx)(`a`,{className:`mono`,href:P([`instances`,e.processId]),children:e.processId})},{key:`state`,header:`State`,render:e=>e.maintenance==null?(0,T.jsx)(V,{tone:`success`,children:`accepting joins`}):(0,T.jsxs)(V,{tone:`warning`,children:[`maintenance (`,e.maintenance.scope,`)`]})},{key:`message`,header:`Message`,render:e=>e.maintenance?.message??(0,T.jsx)(`span`,{className:`muted`,children:`–`})},{key:`actions`,header:`Actions`,isActions:!0,render:t=>n?t.maintenance?.scope===`instance`?(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onOpen({kind:`clear`,scope:t.processId}),children:`End`}):t.maintenance==null?(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onOpen({kind:`set`,scope:t.processId,current:null}),children:`Start`}):(0,T.jsx)(`span`,{className:`small muted`,children:`from fleet`}):null}],rows:e.view.instances,rowKey:e=>e.processId,emptyState:(0,T.jsx)(z,{title:`No instances reporting`,icon:`instances`})})]})]})}function dd(e){let t=N(),n=fd(e.scope);return(0,T.jsx)(k,{title:`End maintenance for `+n+`?`,description:`Joins are accepted again straight away.`,confirmLabel:`End maintenance`,tone:`primary`,onConfirm:async()=>{await uc(e.scope),t(`Maintenance is off for `+n+`. Joins are accepted again.`),e.onCleared()},onClose:e.onClose})}function fd(e){return e===`fleet`?`the whole fleet`:`instance `+e}var pd=6e4,md=[{value:`15m`,label:`15 min`,milliseconds:15*pd},{value:`1h`,label:`1 hour`,milliseconds:60*pd},{value:`6h`,label:`6 hours`,milliseconds:360*pd},{value:`24h`,label:`24 hours`,milliseconds:1440*pd}],hd=`1h`,gd=1024,_d=`fleet`,vd=[{title:`Players and sessions`,formatValue:j,lines:[{label:`Players`,pick:e=>e.players},{label:`Sessions`,pick:e=>e.sessions},{label:`Dedicated sessions`,pick:e=>e.dedicatedSessions}]},{title:`Joins and refusals per second`,formatValue:Le,lines:[{label:`Joins`,pick:e=>e.joinsPerSecond},{label:`Refusals`,pick:e=>e.refusalsPerSecond},{label:`Auth failures`,pick:e=>e.authFailuresPerSecond}]},{title:`Leaderboard scores per second`,formatValue:Le,lines:[{label:`Accepted`,pick:e=>e.leaderboardAcceptedPerSecond},{label:`Refused`,pick:e=>e.leaderboardRefusedPerSecond}]},{title:`Traffic per second`,formatValue:Sd,minimumMaximum:gd,lines:[{label:`Bytes in`,pick:e=>e.bytesInPerSecond},{label:`Bytes out`,pick:e=>e.bytesOutPerSecond}]},{title:`Messages per second`,formatValue:Le,lines:[{label:`Messages in`,pick:e=>e.messagesInPerSecond}]},{title:`CPU`,formatValue:Cd,lines:[{label:`CPU`,pick:e=>e.cpuPercent}]},{title:`Memory`,formatValue:Fe,minimumMaximum:gd,lines:[{label:`Resident`,pick:e=>e.residentMemoryBytes},{label:`Heap used`,pick:e=>e.heapUsedBytes}]},{title:`Event-loop lag`,formatValue:wd,lines:[{label:`Lag`,pick:e=>e.eventLoopLagMilliseconds}]},{title:`Garbage collection`,formatValue:Td,lines:[{label:`GC time`,pick:e=>e.gcMillisecondsPerSecond}]},{title:`Dedicated frame time`,formatValue:wd,lines:[{label:`Average frame`,pick:e=>e.dedicatedFrameMillisecondsAverage}]},{title:`Dedicated tick overruns`,formatValue:Le,lines:[{label:`Overruns`,pick:e=>e.dedicatedTickOverrunsPerSecond}]}];function yd(){let{hasPermission:e}=M(),t=Cr(),n=t.get(`processId`)||_d,r=xd(t.get(`range`)).value,i=I(()=>w.get(`metrics`,{processId:n,range:r}),ie,[n,r]),a=e(`fleet.view`),o=jn(()=>a?w.get(`instances`):Promise.resolve([]),[a]),s=i.data?.grafanaUrl??null;return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Metrics`,description:`The fleet or one instance over time, from a sample every 15 seconds. Hover a chart for exact values.`,actions:s!=null&&(0,T.jsxs)(`a`,{className:`button`,href:s,target:`_blank`,rel:`noreferrer noopener`,children:[(0,T.jsx)(E,{name:`external`}),`Open Grafana`]})}),(0,T.jsxs)(`div`,{className:`toolbar`,role:`search`,"aria-label":`Metrics view`,children:[(0,T.jsx)(O,{label:`Instance`,children:(0,T.jsxs)(`select`,{className:`select`,value:n,onChange:e=>t.set({processId:e.target.value===_d?``:e.target.value}),children:[(0,T.jsx)(`option`,{value:_d,children:`Whole fleet`}),(0,T.jsx)(Cu,{instances:o.data??[],selectedProcessId:n===_d?``:n})]})}),(0,T.jsxs)(`div`,{className:`field`,children:[(0,T.jsx)(`span`,{className:`field__label`,id:`metrics-range-label`,children:`Range`}),(0,T.jsx)(`div`,{className:`segmented`,role:`group`,"aria-labelledby":`metrics-range-label`,children:md.map(e=>(0,T.jsx)(`button`,{type:`button`,"aria-pressed":r===e.value,onClick:()=>t.set({range:e.value===hd?``:e.value}),children:e.label},e.value))})]})]}),(0,T.jsx)(H,{state:i,subject:`the metrics`,children:e=>(0,T.jsx)(bd,{points:e.points,rangeMilliseconds:xd(e.range).milliseconds})})]})}function bd(e){let t=(0,_.useMemo)(()=>{let t=e.points.map(e=>e.at);return vd.map(n=>({times:t,series:n.lines.map(t=>({label:t.label,values:e.points.map(t.pick)}))}))},[e.points]);return(0,T.jsx)(`div`,{className:`chart-grid`,children:vd.map((n,r)=>(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(Ja,{title:n.title,data:t[r],formatValue:n.formatValue,minimumMaximum:n.minimumMaximum,timeSpanMilliseconds:e.rangeMilliseconds})},n.title))})}function xd(e){return md.find(t=>t.value===e)??md.find(e=>e.value===hd)??md[0]}function Sd(e){return Fe(e)+`/s`}function Cd(e){return j(e)+`%`}function wd(e){return j(e)+` ms`}function Td(e){return j(e)+` ms/s`}function Ed(){return(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsx)(z,{title:`This page does not exist`,icon:`search`,action:(0,T.jsx)(`a`,{className:`button`,href:`#/`,children:`Go to the overview`}),children:`The link may be from a newer console, or mistyped.`})})})}var Dd=14,Od={info:`info`,warning:`warning`,critical:`danger`},kd={},Ad={reachable:`success`,unreachable:`danger`,"not configured":`neutral`};function jd(){let{hasPermission:e}=M(),t=I(()=>w.get(`overview`),y,[]),[n,r]=(0,_.useState)(!1),i=t.data?.scaledOut??null;return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Overview`,eyebrow:i===!1?(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(V,{isPlain:!0,children:`single instance`}),(0,T.jsx)(`span`,{children:`This instance (no Redis: other instances, if any, are not visible)`})]}):void 0,description:`The fleet at a glance. Figures refresh every few seconds.`,actions:e(`sessions.manage`)&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>r(!0),children:[(0,T.jsx)(E,{name:`notice`}),`Send notice to everyone`]})}),(0,T.jsx)(H,{state:t,subject:`the overview`,children:e=>(0,T.jsx)(Md,{overview:e})}),n&&(0,T.jsx)(bn,{target:{scope:`fleet`},audienceText:`every player on every instance`,onClose:()=>r(!1)})]})}function Md(e){let{overview:t}=e,n=t.transportShare.websocket+t.transportShare.webtransport,r=n===0?0:t.transportShare.webtransport/n;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(Nd,{overview:t}),(0,T.jsxs)(`div`,{className:`stat-grid`,children:[(0,T.jsx)(so,{label:`Instances`,value:t.instancesUp,hint:t.instancesLost>0?t.instancesLost+` lost`:`all reporting`,tone:t.instancesLost>0?`danger`:`success`}),(0,T.jsx)(so,{label:`Players`,value:j(t.players),tone:`info`}),(0,T.jsx)(so,{label:`Sessions`,value:j(t.sessions),tone:`info`}),(0,T.jsx)(so,{label:`Dedicated sessions`,value:j(t.dedicatedSessions)}),(0,T.jsx)(so,{label:`Joins / min`,value:j(t.joinsPerMinute)}),(0,T.jsx)(so,{label:`Refusals / min`,value:j(t.refusalsPerMinute),tone:t.refusalsPerMinute>0?`warning`:`neutral`}),(0,T.jsx)(so,{label:`Auth failures / min`,value:j(t.authFailuresPerMinute),tone:t.authFailuresPerMinute>0?`warning`:`neutral`}),(0,T.jsx)(so,{label:`Transport`,value:Re(1-r)+` WS`,hint:Re(r)+` WebTransport`}),(0,T.jsx)(so,{label:`Certificate`,value:t.certificateDaysLeft==null?`no TLS`:t.certificateDaysLeft+` days`,tone:Rd(t.certificateDaysLeft)}),(0,T.jsx)(so,{label:`Redis`,value:t.redis,tone:Ad[t.redis]})]}),(0,T.jsx)(Pd,{warnings:t.warnings}),(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsx)(Fd,{title:`Players by game mode`,counts:t.playersByGameMode,emptyText:`No players online.`}),(0,T.jsx)(Fd,{title:`Sessions by game mode`,counts:t.sessionsByGameMode,emptyText:`No sessions running.`}),(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`overview-refusals`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{id:`overview-refusals`,children:`Top refusal reasons`}),(0,T.jsx)(`span`,{className:`small muted`,children:`per minute`})]}),t.topRefusalReasons.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`No joins refused in the last minute.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:t.topRefusalReasons.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.reason}),(0,T.jsx)(`strong`,{children:j(e.perMinute)})]},e.reason))})]}),(0,T.jsx)(Id,{versions:t.versions})]}),(t.customPanels??[]).map(e=>(0,T.jsx)(Ys,{panel:e,targetIds:kd},e.name)),(0,T.jsx)(Ld,{activity:t.activity})]})}function Nd(e){let{overview:t}=e;return t.maintenance===`off`&&t.draining===0?null:(0,T.jsxs)(`div`,{className:`stack stack--tight`,children:[t.maintenance!==`off`&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,role:`status`,children:[(0,T.jsx)(E,{name:`maintenance`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:t.maintenance===`fleet`?`The fleet is in maintenance`:`Some instances are in maintenance`}),(0,T.jsxs)(`span`,{children:[`New joins are refused; running sessions continue. `,(0,T.jsx)(`a`,{href:`#/maintenance`,children:`Manage maintenance`})]})]})]}),t.draining>0&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,role:`status`,children:[(0,T.jsx)(E,{name:`drain`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:t.draining===1?`1 instance is draining`:t.draining+` instances are draining`}),(0,T.jsxs)(`span`,{children:[`They take no new players. `,(0,T.jsx)(`a`,{href:`#/instances`,children:`See instances`})]})]})]})]})}function Pd(e){return e.warnings.length===0?null:(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`overview-warnings`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{id:`overview-warnings`,children:`Needs attention`}),(0,T.jsx)(V,{tone:`warning`,children:e.warnings.length})]}),(0,T.jsx)(`ul`,{className:`list-plain`,children:e.warnings.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`row grow`,children:[(0,T.jsx)(V,{tone:Od[e.severity],children:e.severity}),(0,T.jsx)(`span`,{className:`grow`,children:e.message})]}),(0,T.jsx)(`a`,{className:`button button--small`,href:e.fixRoute,children:`Fix`})]},e.code))})]})}function Fd(e){let t=Object.entries(e.counts).filter(e=>e[1]>0).sort((e,t)=>t[1]-e[1]),n=t.reduce((e,t)=>e+t[1],0);return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:e.title}),(0,T.jsxs)(`span`,{className:`small muted`,children:[j(n),` total`]})]}),t.length===0?(0,T.jsx)(`p`,{className:`muted`,children:e.emptyText}):(0,T.jsx)(`ul`,{className:`list-plain`,children:t.map(([e,t])=>(0,T.jsxs)(`li`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`span`,{className:`row row--between`,children:[(0,T.jsx)(`span`,{children:e}),(0,T.jsx)(`strong`,{children:j(t)})]}),(0,T.jsx)(`progress`,{className:`share-bar`,max:n,value:t,"aria-label":e+` share`})]},e))})]})}function Id(e){let t=e.versions.length>1;return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Versions`}),t?(0,T.jsx)(V,{tone:`warning`,children:`mixed versions`}):(0,T.jsx)(V,{tone:`success`,children:`all the same`})]}),(0,T.jsx)(`ul`,{className:`list-plain`,children:e.versions.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`span`,{className:`mono`,children:e.serverVersion}),` `,(0,T.jsxs)(`span`,{className:`muted small`,children:[`protocol `,e.protocolVersion]})]}),(0,T.jsx)(`span`,{className:`muted`,children:e.instances===1?`1 instance`:e.instances+` instances`})]},e.serverVersion+`/`+e.protocolVersion))})]})}function Ld(e){return(0,T.jsxs)(`section`,{className:`panel`,"aria-labelledby":`overview-activity`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{id:`overview-activity`,children:`Recent activity`}),(0,T.jsx)(E,{name:`activity`})]}),e.activity.length===0?(0,T.jsx)(z,{title:`Nothing yet`,icon:`activity`,children:`Admin actions and server events show here as they happen.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:e.activity.map((e,t)=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`row grow`,children:[(0,T.jsx)(V,{tone:e.kind===`admin`?`info`:`neutral`,isPlain:!0,children:e.kind}),(0,T.jsx)(`span`,{className:`grow break-anywhere`,children:e.text})]}),(0,T.jsx)(`span`,{className:`small muted`,children:(0,T.jsx)(B,{iso:e.at,isRelative:!0})})]},e.at+`-`+t))})]})}function Rd(e){return e==null?`neutral`:e<=0?`danger`:e<Dd?`warning`:`success`}function zd(e){let t=N(),[n,r]=(0,_.useState)(``),[i,a]=(0,_.useState)(!1);return(0,T.jsxs)(k,{title:`Kick `+e.playerName+`?`,description:`Their game in `+e.sessionName+` ends with your message. Everyone else keeps playing.`,confirmLabel:`Kick player`,onConfirm:async()=>{let r={roomId:e.roomId,playerId:e.playerId,message:n.trim(),allowRejoin:i};await w.send(`POST`,`players/kick`,r),t(`Kicked `+e.playerName+` from `+e.sessionName+`.`),e.onKicked?.()},onClose:e.onClose,children:[(0,T.jsx)(O,{label:`Message to the player`,hint:`Shown in their game.`,children:(0,T.jsx)(`input`,{className:`input`,value:n,onChange:e=>r(e.target.value),maxLength:300,placeholder:`You were removed by a moderator.`,autoFocus:!0})}),(0,T.jsxs)(`label`,{className:`check-row`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>a(e.target.checked)}),(0,T.jsxs)(`span`,{children:[`Allow them to rejoin this session straight away `,(0,T.jsx)(`span`,{className:`muted`,children:`(otherwise they are refused for 5 minutes)`})]})]})]})}var Bd=[{key:`networkId`,header:`Network id`,render:e=>(0,T.jsx)(`span`,{className:`mono`,children:e.networkId})},{key:`name`,header:`Object`,render:e=>(0,T.jsx)(`strong`,{className:`break-anywhere`,children:e.name})},{key:`kind`,header:`Kind`,render:e=>(0,T.jsx)(V,{tone:e.kind===`prefab`?`info`:`neutral`,isPlain:!0,children:e.kind})},{key:`authority`,header:`State authority`,render:e=>e.stateAuthorityPlayerId==null?(0,T.jsx)(`span`,{className:`muted`,children:`server`}):`Player #`+e.stateAuthorityPlayerId},{key:`tick`,header:`Last change (tick)`,isNumber:!0,render:e=>e.lastChangedTick==null?(0,T.jsx)(`span`,{className:`muted`,children:`–`}):j(e.lastChangedTick)},{key:`words`,header:`State words`,isNumber:!0,render:e=>j(e.stateWordCount)}];function Vd(e){let t=I(()=>w.get(`sessions/`+encodeURIComponent(e.roomId)+`/inspect`),S,[e.roomId]);return(0,T.jsx)(H,{state:t,subject:`the inspector`,children:e=>e.available?(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsxs)(`h2`,{children:[`Networked objects (`,e.objects.length,`)`]}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`Refreshed every `,Ie(S)]})]}),(0,T.jsx)(L,{caption:`Networked objects`,columns:Bd,rows:e.objects,rowKey:e=>e.networkId,emptyState:(0,T.jsx)(z,{title:`No networked objects in this session yet`,icon:`sessions`})})]}):(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(z,{title:`This session cannot be inspected`,icon:`info`,children:e.reason??`The room did not say why.`})})})}function Hd(e){let t=I(()=>w.get(`sessions/`+encodeURIComponent(e.roomId)),y,[e.roomId]);return(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(H,{state:t,subject:`the session`,notFound:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`This session has ended`,children:[`It is no longer running on any instance. `,(0,T.jsx)(`a`,{href:`#/sessions`,children:`Back to sessions`})]})}),children:e=>(0,T.jsx)(Ud,{session:e,onChanged:t.refresh})})})}function Ud(e){let{session:t}=e,{hasPermission:n}=M(),r=N(),i=Cr(),a=Zd(i.get(`tab`),n(`sessions.inspect`)),[o,s]=(0,_.useState)({kind:`none`}),c=n(`sessions.manage`),l=()=>s({kind:`none`}),u=async()=>{let n=!t.locked;try{await w.send(`POST`,`sessions/`+encodeURIComponent(t.roomId)+`/lock`,{locked:n}),r(n?`Locked `+t.sessionName+`: no one new can join.`:`Unlocked `+t.sessionName+`.`),e.onChanged()}catch(e){r(`Could not change the lock: `+C(e).message,`error`)}},d=[{value:`players`,label:`Players (`+t.playerList.length+`)`},{value:`details`,label:`Details`},{value:`log`,label:`Log`}];return n(`sessions.inspect`)&&d.push({value:`inspector`,label:`Inspector`}),(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(R,{eyebrow:(0,T.jsxs)(`a`,{href:`#/sessions`,className:`row`,children:[(0,T.jsx)(E,{name:`back`}),`Sessions`]}),title:(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:t.sessionName}),(0,T.jsx)(_c,{session:t})]}),description:(0,T.jsxs)(`span`,{children:[t.gameMode,` · on `,(0,T.jsx)(`a`,{className:`mono`,href:P([`instances`,t.processId]),children:t.processId}),` · room `,(0,T.jsx)(`span`,{className:`mono`,children:t.roomId})]}),actions:c&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>s({kind:`sessionNotice`}),children:[(0,T.jsx)(E,{name:`message`}),`Message session`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>void u(),children:[(0,T.jsx)(E,{name:t.locked?`unlock`:`lock`}),t.locked?`Unlock`:`Lock`]}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>s({kind:`close`}),children:[(0,T.jsx)(E,{name:`close`}),`Close session`]})]})}),(0,T.jsxs)(`div`,{className:`stat-grid`,children:[(0,T.jsx)(so,{label:`Players`,value:t.players+` / `+t.maxPlayers,tone:`info`}),(0,T.jsx)(so,{label:`Tick rate`,value:t.tickRate==null?`–`:t.tickRate+` Hz`}),(0,T.jsx)(so,{label:`Traffic`,value:Fe(t.bytesPerSecond)+`/s`,hint:Fe(t.traffic.bytesIn)+` in · `+Fe(t.traffic.bytesOut)+` out`}),(0,T.jsx)(so,{label:`Started`,value:(0,T.jsx)(B,{iso:t.createdAt,isRelative:!0})})]}),(0,T.jsx)(`div`,{className:`tabs`,role:`tablist`,"aria-label":`Session sections`,children:d.map(e=>(0,T.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":a===e.value,onClick:()=>i.set({tab:e.value===`players`?``:e.value}),children:e.label},e.value))}),a===`players`&&(0,T.jsx)(Wd,{session:t,onAction:e=>s(e)}),a===`details`&&(0,T.jsx)(Gd,{session:t}),a===`log`&&(n(`logs.view`)?(0,T.jsx)(Jd,{session:t}):(0,T.jsx)(Yd,{lines:t.logLines})),a===`inspector`&&(0,T.jsx)(Vd,{roomId:t.roomId}),(0,T.jsx)(Ls,{target:`session`,targetIds:{roomId:t.roomId},targetText:`session `+t.sessionName}),(0,T.jsx)(Xs,{placement:`session`,targetIds:{roomId:t.roomId}}),o.kind===`close`&&(0,T.jsx)(Xd,{session:t,onClose:l}),o.kind===`sessionNotice`&&(0,T.jsx)(bn,{target:{scope:`session`,roomId:t.roomId},audienceText:`every player in `+t.sessionName,onClose:l}),o.kind===`kick`&&(0,T.jsx)(zd,{roomId:t.roomId,sessionName:t.sessionName,playerId:o.player.playerId,playerName:Qd(o.player),onKicked:e.onChanged,onClose:l}),o.kind===`ban`&&(0,T.jsx)(st,{initialKind:ef(o.player),initialValue:o.player.userId??o.player.clientAddress??``,onCreated:e.onChanged,onClose:l}),o.kind===`playerNotice`&&(0,T.jsx)(bn,{target:{scope:`player`,roomId:t.roomId,playerId:o.player.playerId},audienceText:Qd(o.player),onClose:l})]})}function Wd(e){let{hasPermission:t}=M();return(0,T.jsx)(`section`,{className:`panel panel--flush`,children:(0,T.jsx)(L,{caption:`Players in this session`,columns:[{key:`player`,header:`Player`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:$d(e),children:(0,T.jsx)(`strong`,{children:Qd(e)})}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`#`,e.playerId,e.userId!=null&&` · `+e.userId]})]})},{key:`address`,header:`Address`,render:e=>e.clientAddress==null?(0,T.jsx)(`span`,{className:`muted`,children:`hidden`}):(0,T.jsx)(`span`,{className:`mono`,children:e.clientAddress})},{key:`transport`,header:`Transport`,render:e=>e.transport===`webtransport`?`WebTransport`:`WebSocket`},{key:`joined`,header:`Joined`,render:e=>(0,T.jsx)(B,{iso:e.joinedAt,isRelative:!0})},{key:`state`,header:`State`,render:e=>(0,T.jsxs)(`span`,{className:`row`,children:[e.connected?(0,T.jsx)(V,{tone:`success`,children:`connected`}):(0,T.jsx)(V,{tone:`warning`,isLive:!0,children:`reconnecting`}),e.isHost&&(0,T.jsx)(V,{tone:`info`,isPlain:!0,children:`host`}),e.isMasterClient&&(0,T.jsx)(V,{isPlain:!0,children:`master client`})]})},{key:`actions`,header:`Actions`,isActions:!0,render:n=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[t(`sessions.manage`)&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onAction({kind:`playerNotice`,player:n}),children:`Message`}),t(`players.manage`)&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onAction({kind:`kick`,player:n}),children:`Kick`}),t(`bans.manage`)&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>e.onAction({kind:`ban`,player:n}),children:`Ban`})]})}],rows:e.session.playerList,rowKey:e=>String(e.playerId),emptyState:(0,T.jsx)(z,{title:`No players in this session`,icon:`players`})})})}function Gd(e){let{session:t}=e,n=Object.entries(t.properties),r=t.dedicated;return(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Properties`})}),n.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`This session has no custom properties.`}):(0,T.jsx)(`dl`,{className:`definition-list`,children:n.map(([e,t])=>(0,T.jsx)(Kd,{name:e,value:String(t)},e))})]}),(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Traffic`})}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Frames in`}),(0,T.jsx)(`dd`,{children:j(t.traffic.framesIn)}),(0,T.jsx)(`dt`,{children:`Frames out`}),(0,T.jsx)(`dd`,{children:j(t.traffic.framesOut)}),(0,T.jsx)(`dt`,{children:`Bytes in`}),(0,T.jsx)(`dd`,{children:Fe(t.traffic.bytesIn)}),(0,T.jsx)(`dt`,{children:`Bytes out`}),(0,T.jsx)(`dd`,{children:Fe(t.traffic.bytesOut)}),(0,T.jsx)(`dt`,{children:`Visible in lobby`}),(0,T.jsx)(`dd`,{children:t.isVisible?`yes`:`no`}),(0,T.jsx)(`dt`,{children:`Public address`}),(0,T.jsx)(`dd`,{children:t.publicAddress??(0,T.jsx)(`span`,{className:`muted`,children:`not set`})})]})]}),(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Host migrations`})}),t.hostMigrations.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`The host has not changed.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:t.hostMigrations.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{children:[`#`,e.fromPlayerId,` → #`,e.toPlayerId]}),(0,T.jsx)(B,{iso:e.at})]},e.at))})]}),r!=null&&(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Dedicated server`}),(0,T.jsx)(`span`,{className:`small muted`,children:r.sceneName})]}),(0,T.jsx)(qd,{buckets:r.frameStatistics})]})]})}function Kd(e){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`dt`,{className:`mono`,children:e.name}),(0,T.jsx)(`dd`,{className:`mono`,children:e.value})]})}function qd(e){let t=e.buckets[e.buckets.length-1];return t==null?(0,T.jsx)(`p`,{className:`muted`,children:`No frame statistics yet.`}):(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`Average frame`}),(0,T.jsxs)(`dd`,{children:[j(t.averageFrameMilliseconds),` ms`]}),(0,T.jsx)(`dt`,{children:`Slowest frame`}),(0,T.jsxs)(`dd`,{children:[j(t.maximumFrameMilliseconds),` ms`]}),(0,T.jsx)(`dt`,{children:`Tick overruns`}),(0,T.jsx)(`dd`,{children:j(t.tickOverruns)}),(0,T.jsx)(`dt`,{children:`Measured`}),(0,T.jsx)(`dd`,{children:(0,T.jsx)(B,{iso:t.at,isRelative:!0})})]})}function Jd(e){let[t,n]=(0,_.useState)(!1),r=(0,_.useMemo)(()=>({...ju,roomId:e.session.roomId}),[e.session.roomId]);return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Live log of this session`}),(0,T.jsxs)(`div`,{className:`row`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,"aria-pressed":t,onClick:()=>n(!t),children:[(0,T.jsx)(E,{name:t?`play`:`pause`}),t?`Resume`:`Pause`]}),(0,T.jsxs)(`a`,{className:`button button--small`,href:P([`logs`],{roomId:e.session.roomId}),children:[(0,T.jsx)(E,{name:`logs`}),`Open in Logs`]})]})]}),(0,T.jsx)(Mu,{filter:r,isPaused:t,isCompact:!0})]})}function Yd(e){return e.lines.length===0?(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(z,{title:`No log lines for this session yet`,icon:`history`})}):(0,T.jsx)(`section`,{className:`panel`,children:(0,T.jsx)(`ul`,{className:`log-lines`,"aria-label":`Session log`,children:e.lines.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`muted`,children:[e.time.slice(11,19),` `]}),(0,T.jsx)(`span`,{className:`log-level log-level--`+e.level,children:e.level.toUpperCase()}),e.message]},e.processId+`-`+e.sequence))})})}function Xd(e){let t=N(),[n,r]=(0,_.useState)(`This session was closed by an administrator.`);return(0,T.jsx)(k,{title:`Close `+e.session.sessionName+`?`,description:`All `+e.session.players+` players are disconnected and see your message.`,confirmLabel:`Close session`,canConfirm:n.trim()!==``,onConfirm:async()=>{await w.send(`POST`,`sessions/`+encodeURIComponent(e.session.roomId)+`/close`,{message:n.trim()}),t(`Closed `+e.session.sessionName+`.`)},onClose:e.onClose,children:(0,T.jsx)(O,{label:`Message to the players`,children:(0,T.jsx)(`input`,{className:`input`,value:n,onChange:e=>r(e.target.value),maxLength:300,autoFocus:!0})})})}function Zd(e,t){return e===`details`||e===`log`?e:e===`inspector`&&t?`inspector`:`players`}function Qd(e){return e.displayName??e.userId??`Player #`+e.playerId}function $d(e){return e.userId==null?e.clientAddress==null?`#/players`:P([`players`,`detail`],{address:e.clientAddress}):P([`players`,`detail`],{userId:e.userId})}function ef(e){return e.userId==null?`address`:`user`}function tf(){let e=Cr(),t=e.get(`userId`),n=e.get(`address`),r=I(()=>w.get(`players/detail`,{userId:t,address:n}),y,[t,n]);return t===``&&n===``?(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(`div`,{className:`panel`,children:(0,T.jsxs)(Te,{title:`No player chosen`,children:[`Open a player from the `,(0,T.jsx)(`a`,{href:`#/players`,children:`players list`}),`.`]})})}):(0,T.jsx)(`div`,{className:`page`,children:(0,T.jsx)(H,{state:r,subject:`the player`,children:e=>(0,T.jsx)(nf,{player:e,onChanged:r.refresh})})})}function nf(e){let{player:t}=e,{hasPermission:n}=M(),[r,i]=(0,_.useState)({kind:`none`}),a=()=>i({kind:`none`}),o=ff(t),s=t.bans.filter(e=>e.active),c=pf(t);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(R,{eyebrow:(0,T.jsxs)(`a`,{href:`#/players`,className:`row`,children:[(0,T.jsx)(E,{name:`back`}),`Players`]}),title:(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:o}),t.online.length>0?(0,T.jsx)(V,{tone:`success`,children:`online`}):(0,T.jsx)(V,{children:`offline`}),s.length>0&&(0,T.jsx)(V,{tone:`danger`,children:`banned`})]}),actions:(0,T.jsxs)(T.Fragment,{children:[n(`players.manage`)&&(0,T.jsxs)(`button`,{type:`button`,className:`button`,onClick:()=>i({kind:`lobbyKick`}),children:[(0,T.jsx)(E,{name:`kick`}),`Remove from lobby`]}),n(`bans.manage`)&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--danger`,onClick:()=>i({kind:`ban`}),children:[(0,T.jsx)(E,{name:`bans`}),`Ban`]})]})}),(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Identity`})}),(0,T.jsxs)(`dl`,{className:`definition-list`,children:[(0,T.jsx)(`dt`,{children:`User id`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.userId??(0,T.jsx)(`span`,{className:`muted`,children:`not signed in`})}),(0,T.jsx)(`dt`,{children:`Address`}),(0,T.jsx)(`dd`,{className:`mono`,children:t.address??(0,T.jsx)(`span`,{className:`muted`,children:`hidden`})}),Object.entries(t.claims??{}).map(([e,t])=>(0,T.jsx)(rf,{name:e,value:t},e))]})]}),(0,T.jsx)(af,{bans:t.bans})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Online now`})}),(0,T.jsx)(L,{caption:`Sessions the player is in`,columns:[{key:`session`,header:`Session`,render:e=>(0,T.jsx)(`a`,{href:P([`sessions`,e.roomId]),children:e.sessionName})},{key:`playerId`,header:`Player id`,render:e=>`#`+e.playerId},{key:`address`,header:`Address`,render:e=>e.clientAddress==null?(0,T.jsx)(`span`,{className:`muted`,children:`hidden`}):(0,T.jsx)(`span`,{className:`mono`,children:e.clientAddress})},{key:`joined`,header:`Joined`,render:e=>(0,T.jsx)(B,{iso:e.joinedAt,isRelative:!0})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>(0,T.jsxs)(`span`,{className:`row row--end`,children:[n(`sessions.manage`)&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>i({kind:`notice`,online:e}),children:`Message`}),n(`players.manage`)&&(0,T.jsx)(`button`,{type:`button`,className:`button button--small`,onClick:()=>i({kind:`kick`,online:e}),children:`Kick`})]})}],rows:t.online,rowKey:e=>e.roomId+`/`+e.playerId,emptyState:(0,T.jsx)(z,{title:`Not in a session right now`,icon:`players`})})]}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Recent sessions`})}),(0,T.jsx)(L,{caption:`Recent sessions`,columns:[{key:`session`,header:`Session`,render:e=>e.sessionName},{key:`playerId`,header:`Player id`,render:e=>`#`+e.playerId},{key:`instance`,header:`Instance`,render:e=>(0,T.jsx)(`span`,{className:`mono small`,children:e.processId})},{key:`joined`,header:`Joined`,render:e=>(0,T.jsx)(B,{iso:e.joinedAt})},{key:`left`,header:`Left`,render:e=>(0,T.jsx)(B,{iso:e.leftAt,emptyText:`still playing`})}],rows:t.recentSessions,rowKey:e=>e.roomId+`/`+e.joinedAt,emptyState:(0,T.jsx)(z,{title:`No session history`,icon:`history`})})]}),t.userId!=null&&n(`leaderboards.view`)&&(0,T.jsx)(cf,{playerId:`user:`+t.userId}),(0,T.jsx)(Ls,{target:`player`,targetIds:c,targetText:o,unavailableReason:t.online.length===0?`Player actions run on a session seat; they can be run while `+o+` is in a session.`:void 0}),(0,T.jsx)(Xs,{placement:`player`,targetIds:c}),n(`players.notes`)&&(0,T.jsxs)(`div`,{className:`panel-grid`,children:[(0,T.jsx)(uf,{subject:t.userId??t.address??``,notes:t.notes,onAdded:e.onChanged}),(0,T.jsx)(lf,{kicks:t.kicks})]}),r.kind===`ban`&&(0,T.jsx)(st,{initialKind:t.userId==null?`address`:`user`,initialValue:t.userId??t.address??``,onCreated:e.onChanged,onClose:a}),r.kind===`lobbyKick`&&(0,T.jsx)(df,{player:t,name:o,onClose:a}),r.kind===`kick`&&(0,T.jsx)(zd,{roomId:r.online.roomId,sessionName:r.online.sessionName,playerId:r.online.playerId,playerName:o,onKicked:e.onChanged,onClose:a}),r.kind===`notice`&&(0,T.jsx)(bn,{target:{scope:`player`,roomId:r.online.roomId,playerId:r.online.playerId},audienceText:o+` in `+r.online.sessionName,onClose:a})]})}function rf(e){let t=typeof e.value==`string`?e.value:JSON.stringify(e.value);return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`dt`,{className:`mono`,children:e.name}),(0,T.jsx)(`dd`,{className:`mono`,children:t})]})}function af(e){return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Bans`}),(0,T.jsx)(`a`,{className:`small`,href:`#/bans`,children:`All bans`})]}),e.bans.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`No bans.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:e.bans.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{children:e.reason}),(0,T.jsxs)(`span`,{className:`small muted`,children:[e.kind,` `,(0,T.jsx)(`span`,{className:`mono`,children:e.value}),` · `,e.expiresAt==null?`permanent`:(0,T.jsxs)(T.Fragment,{children:[`until `,(0,T.jsx)(B,{iso:e.expiresAt})]})]})]}),e.active?(0,T.jsx)(V,{tone:`danger`,children:`active`}):(0,T.jsx)(V,{children:`expired`})]},e.banId))})]})}var of=404,sf=10;function cf(e){let t=jn(()=>w.get(`leaderboards/players/`+encodeURIComponent(e.playerId)),[e.playerId]),n=(t.data?.entries??[]).filter(e=>e.isCurrentSeason).slice(0,sf),r=t.data==null&&t.error==null,i=t.error!=null&&t.error.status!==of;return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Leaderboards`}),(0,T.jsx)(`a`,{className:`small`,href:P([`leaderboards`,`player`],{playerId:e.playerId}),children:`All leaderboards`})]}),r&&(0,T.jsx)(`div`,{className:`skeleton`,"aria-label":`Loading leaderboard entries`}),i&&(0,T.jsxs)(`p`,{className:`muted`,children:[`Could not load leaderboard entries: `,t.error?.message]}),!r&&!i&&n.length===0&&(0,T.jsx)(`p`,{className:`muted`,children:`No leaderboard entries.`}),n.length>0&&(0,T.jsx)(`ul`,{className:`list-plain`,children:n.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{children:e.boardName}),(0,T.jsx)(`span`,{className:`small muted`,children:qc(Jc(e.variantKey),[])})]}),(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`mono`,children:Kc(e.score,e.scoreFormat)}),(0,T.jsx)(`span`,{className:`small muted`,children:e.rank==null?e.removedReason??`removed`:`#`+e.rank+` of `+e.total})]})]},e.boardId+`/`+e.variantKey))})]})}function lf(e){return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsx)(`div`,{className:`panel__header`,children:(0,T.jsx)(`h2`,{children:`Kicks`})}),e.kicks.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`Never kicked.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:e.kicks.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{children:String(e.parameters.message??`no message`)}),(0,T.jsxs)(`span`,{className:`small muted`,children:[`by `,e.actor.name]})]}),(0,T.jsx)(B,{iso:e.at,isRelative:!0})]},e.sequence))})]})}function uf(e){let t=N(),[n,r]=(0,_.useState)(``),[i,a]=(0,_.useState)(!1),o=async o=>{if(o.preventDefault(),!(n.trim()===``||i)){a(!0);try{await w.send(`POST`,`players/notes`,{subject:e.subject,text:n.trim()}),r(``),t(`Note added.`),e.onAdded()}catch(e){t(`Could not add the note: `+C(e).message,`error`)}a(!1)}};return(0,T.jsxs)(`section`,{className:`panel`,children:[(0,T.jsxs)(`div`,{className:`panel__header`,children:[(0,T.jsx)(`h2`,{children:`Notes`}),(0,T.jsx)(`span`,{className:`small muted`,children:`visible to moderators`})]}),(0,T.jsxs)(`div`,{className:`stack`,children:[e.notes.length===0?(0,T.jsx)(`p`,{className:`muted`,children:`No notes yet.`}):(0,T.jsx)(`ul`,{className:`list-plain`,children:e.notes.map(e=>(0,T.jsxs)(`li`,{children:[(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`span`,{className:`break-anywhere`,children:e.text}),(0,T.jsx)(`span`,{className:`small muted`,children:e.by})]}),(0,T.jsx)(B,{iso:e.at,isRelative:!0})]},e.noteId))}),(0,T.jsxs)(`form`,{className:`stack stack--tight`,onSubmit:e=>void o(e),children:[(0,T.jsx)(O,{label:`Add a note`,children:(0,T.jsx)(`textarea`,{className:`textarea`,value:n,onChange:e=>r(e.target.value),maxLength:2e3,placeholder:`Warned about language in chat.`})}),(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsx)(`button`,{type:`submit`,className:`button`,disabled:i||n.trim()===``,children:`Add note`})})]})]})]})}function df(e){let t=N();return(0,T.jsx)(k,{title:`Remove `+e.name+` from the lobby?`,description:`Their lobby connections close; they can reconnect unless you also ban them.`,confirmLabel:`Remove from lobby`,onConfirm:async()=>{let n=await w.send(`POST`,`lobby/kick`,{userId:e.player.userId,address:e.player.address});if(n.disconnected===0){t(e.name+` was not in the lobby.`,`info`);return}let r=n.disconnected===1?`connection`:`connections`;t(`Disconnected `+n.disconnected+` lobby `+r+` of `+e.name+`.`)},onClose:e.onClose})}function ff(e){let t=e.claims?.name??e.claims?.preferred_username;if(typeof t==`string`&&t!==``)return t;let n=e.online[0];return n==null?e.userId??e.address??`Unknown player`:Qd(n)}function pf(e){let t=e.online[0];return t==null?{userId:e.userId}:{roomId:t.roomId,playerId:t.playerId,userId:e.userId}}var Z=[{key:`player`,header:`Player`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsx)(`a`,{href:$d(e),children:(0,T.jsx)(`strong`,{children:Qd(e)})}),(0,T.jsx)(`span`,{className:`small muted`,children:e.userId??`no user id`})]})},{key:`session`,header:`Session`,render:e=>(0,T.jsx)(`a`,{href:P([`sessions`,e.roomId]),children:e.sessionName})},{key:`playerId`,header:`Player id`,isNumber:!0,render:e=>`#`+e.playerId},{key:`address`,header:`Address`,render:e=>e.clientAddress==null?(0,T.jsx)(`span`,{className:`muted`,children:`hidden`}):(0,T.jsx)(`span`,{className:`mono`,children:e.clientAddress})},{key:`transport`,header:`Transport`,render:e=>e.transport===`webtransport`?`WebTransport`:`WebSocket`},{key:`instance`,header:`Instance`,render:e=>(0,T.jsx)(`a`,{className:`mono small`,href:P([`instances`,e.processId]),children:e.processId})},{key:`joined`,header:`Joined`,render:e=>(0,T.jsx)(B,{iso:e.joinedAt,isRelative:!0})}];function mf(){let e=Cr(),t=e.get(`search`),n=Number(e.get(`page`)),r=Number.isInteger(n)&&n>=1?n:1,i=I(()=>w.get(`players`,{search:t,page:r}),y,[t,r]);return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Players`,description:`Players online across the fleet. Open one to see their history, bans and notes.`}),(0,T.jsxs)(`section`,{className:`panel panel--flush`,children:[(0,T.jsx)($r,{label:`Find players`,children:(0,T.jsx)(ti,{label:`Search`,value:t,onCommit:t=>e.set({search:t}),placeholder:`User id, name, address or session`})}),(0,T.jsx)(H,{state:i,subject:`the players`,children:n=>(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(L,{caption:`Players`,columns:Z,rows:n.items,rowKey:e=>e.roomId+`/`+e.playerId,emptyState:(0,T.jsx)(z,{title:t===``?`No players online`:`No player matches`,icon:`players`,children:t===``?`Players appear here while they are in a session.`:`Search by the full user id, part of a name, an address or a session name.`})}),(0,T.jsx)(In,{page:r,total:n.total,pageSize:50,onPageChange:t=>e.set({page:String(t)})})]})})]})]})}var hf=6;function gf(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(!1),[s,c]=(0,_.useState)(null),l=r?t.trim()!==``:t.length===hf,u=async n=>{if(n.preventDefault(),l&&!a){o(!0),c(null);try{let n=r?{pendingToken:e.pendingToken,recoveryCode:t.trim()}:{pendingToken:e.pendingToken,code:t};e.onSignedIn(await w.send(`POST`,`auth/second-factor`,n))}catch(e){c(C(e).message),o(!1)}}};return(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>void u(e),noValidate:!0,children:[r?(0,T.jsx)(O,{label:`Recovery code`,hint:`Each recovery code works once.`,children:(0,T.jsx)(`input`,{className:`input mono`,value:t,onChange:e=>n(e.target.value),autoComplete:`off`,spellCheck:!1,placeholder:`xxxx-xxxx`,autoFocus:!0})}):(0,T.jsx)(O,{label:`Authenticator code`,hint:`Open your authenticator app and enter the six digits for this server.`,children:(0,T.jsx)(`input`,{className:`input input--code`,value:t,onChange:e=>n(e.target.value.replace(/\D/g,``)),inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:hf,placeholder:`000000`,autoFocus:!0})}),s!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:s})}),(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary button--block`,disabled:!l||a,children:a?`Checking…`:`Sign in`}),(0,T.jsxs)(`div`,{className:`row row--between`,children:[(0,T.jsx)(`button`,{type:`button`,className:`link-button`,onClick:()=>{i(!r),n(``),c(null)},children:r?`Use an authenticator code`:`Use a recovery code`}),(0,T.jsx)(`button`,{type:`button`,className:`link-button`,onClick:e.onStartOver,children:`Start over`})]})]})}var _f={"no-role":`Your single sign-on account has no console role. Ask an owner to map your group to a role.`,"account-disabled":`This console account is disabled. Ask an owner or admin to enable it.`,"sign-in-failed":`Single sign-on did not work: the provider could not be reached or refused the sign-in. Try again, or sign in with your password.`,expired:`Your session ended. Sign in again.`},vf=`enrolSecondFactor`,yf=[`Password`,`Authenticator`,`Recovery codes`];function bf(e){let t=St(),n=t.query.get(`second-factor`),[r,i]=(0,_.useState)(()=>wf(n,t.query.get(`stage`))),[a,o]=(0,_.useState)(``),s=t.query.get(`error`),c=e.methods?.local!==!1,l=e.methods?.passkeys===!0&&Bn();return(0,T.jsxs)(Qn,{isWide:r.kind===`enrol`,children:[(0,T.jsxs)(`header`,{className:`auth-card__header`,children:[r.kind===`enrol`&&(0,T.jsx)($n,{current:r.step,steps:yf}),(0,T.jsx)(`h1`,{children:Tf(r)}),(0,T.jsx)(`p`,{className:`muted`,children:Ef(r)})]}),e.methods?.needsSetup===!0&&(0,T.jsxs)(`div`,{className:`banner banner--info`,children:[(0,T.jsx)(E,{name:`info`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[(0,T.jsx)(`strong`,{children:`This server has no admin account yet`}),(0,T.jsxs)(`span`,{children:[`Finish setup with the link printed in the server log (look for `,(0,T.jsx)(`code`,{children:`admin setup link`}),`).`]})]})]}),s!=null&&r.kind===`credentials`&&(0,T.jsxs)(`div`,{className:`banner banner--danger`,role:`alert`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsx)(`div`,{className:`banner__body`,children:_f[s]??`Sign-in was refused (`+s+`).`})]}),r.kind===`credentials`&&c&&(0,T.jsx)(xf,{username:a,onUsernameChange:o,onStep:e=>i(e.stage===`secondFactor`?{kind:`secondFactor`,pendingToken:e.pendingToken}:{kind:`enrol`,pendingToken:e.pendingToken,step:2})}),r.kind===`credentials`&&(e.methods?.oidc!=null||l)&&(0,T.jsx)(Sf,{oidcLabel:e.methods?.oidc?.label??null,offersPasskeys:l,showsDivider:c,username:a,onSignedIn:e.onSignedIn}),r.kind===`secondFactor`&&(0,T.jsx)(gf,{pendingToken:r.pendingToken,onSignedIn:e.onSignedIn,onStartOver:()=>i({kind:`credentials`})}),r.kind===`secondFactor`&&l&&(0,T.jsx)(Cf,{label:`Use a passkey instead`,pendingToken:r.pendingToken,username:a,onSignedIn:e.onSignedIn}),r.kind===`enrol`&&(0,T.jsx)(ir,{pendingToken:r.pendingToken,username:a,onSignedIn:e.onSignedIn,onStageChange:()=>i({...r,step:3})})]})}function xf(e){let[t,n]=(0,_.useState)(``),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(null),s=e.username.trim()!==``&&t!==``,c=async n=>{if(n.preventDefault(),s&&!r){i(!0),o(null);try{e.onStep(await w.send(`POST`,`auth/sign-in`,{username:e.username.trim(),password:t}))}catch(e){o(C(e).message),i(!1)}}};return(0,T.jsxs)(`form`,{className:`stack`,onSubmit:e=>void c(e),noValidate:!0,children:[(0,T.jsx)(O,{label:`Username`,children:(0,T.jsx)(`input`,{className:`input`,value:e.username,onChange:t=>e.onUsernameChange(t.target.value),autoComplete:`username`,autoCapitalize:`none`,spellCheck:!1,autoFocus:!0})}),(0,T.jsx)(O,{label:`Password`,children:(0,T.jsx)(`input`,{className:`input`,type:`password`,value:t,onChange:e=>n(e.target.value),autoComplete:`current-password`})}),a!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:a})}),(0,T.jsx)(`button`,{type:`submit`,className:`button button--primary button--block`,disabled:!s||r,children:r?`Checking…`:`Continue`})]})}function Sf(e){return(0,T.jsxs)(`div`,{className:`stack`,children:[e.showsDivider&&(0,T.jsx)(`div`,{className:`divider-text`,children:(0,T.jsx)(`span`,{children:`or`})}),e.oidcLabel!=null&&(0,T.jsxs)(`a`,{className:`button button--block`,href:`/game-server/admin/api/auth/oidc/start`,children:[(0,T.jsx)(E,{name:`globe`}),`Sign in with `,e.oidcLabel]}),e.offersPasskeys&&(0,T.jsx)(Cf,{label:`Sign in with a passkey`,pendingToken:null,username:e.username,onSignedIn:e.onSignedIn})]})}function Cf(e){let[t,n]=(0,_.useState)(!1),[r,i]=(0,_.useState)(null),a=async()=>{n(!0),i(null);try{let t={username:e.username.trim()===``?null:e.username.trim()},n=await w.send(`POST`,`auth/passkey/options`,t),r={pendingToken:e.pendingToken,credential:await Hn(n)};e.onSignedIn(await w.send(`POST`,`auth/passkey/verify`,r))}catch(e){i(e instanceof DOMException?Un(e):C(e).message),n(!1)}};return(0,T.jsxs)(`div`,{className:`stack`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--block`,onClick:()=>void a(),disabled:t,children:[(0,T.jsx)(E,{name:`passkey`}),t?`Waiting for your passkey…`:e.label]}),r!=null&&(0,T.jsx)(`div`,{className:`banner banner--danger`,role:`alert`,children:(0,T.jsx)(`div`,{className:`banner__body`,children:r})})]})}function wf(e,t){return e==null?{kind:`credentials`}:t===vf?{kind:`enrol`,pendingToken:e,step:2}:{kind:`secondFactor`,pendingToken:e}}function Tf(e){return e.kind===`secondFactor`?`Enter your code`:e.kind===`enrol`?e.step===3?`Save your recovery codes`:`Set up your authenticator`:`Sign in to the console`}function Ef(e){return e.kind===`secondFactor`?`Every console account uses a second factor.`:e.kind===`enrol`?`Your account needs a second factor before it can open the console.`:`Use your console account. Player accounts do not work here.`}function Df(e){let[t,n]=(0,_.useState)(!1);return e.items.length===0?null:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,"aria-haspopup":`dialog`,"aria-label":e.label,onClick:()=>n(!0),children:[`Manage`,(0,T.jsx)(E,{name:`chevronDown`})]}),t&&(0,T.jsxs)(Ee,{title:e.label,onClose:()=>n(!1),children:[(0,T.jsx)(`div`,{className:`stack`,children:e.items.map(e=>(0,T.jsxs)(`button`,{type:`button`,className:e.isDanger===!0?`button button--block menu__item--danger`:`button button--block`,onClick:()=>{n(!1),e.onSelect()},children:[(0,T.jsx)(E,{name:e.icon}),e.label]},e.label))}),(0,T.jsx)(`div`,{className:`form-actions`,children:(0,T.jsx)(`button`,{type:`button`,className:`button button--ghost`,onClick:()=>n(!1),children:`Close`})})]})]})}var Of=[`owner`,`admin`,`operator`,`moderator`,`developer`,`viewer`],kf={owner:`Everything, including other owners and audit retention.`,admin:`Everything except audit retention and the owner role.`,operator:`Runs the fleet: maintenance, drains, sessions, dedicated sessions, config, alerts.`,moderator:`Looks after players: kicks, bans, notices and notes.`,developer:`Debugs: session inspector, logs, dedicated sessions, developer actions.`,viewer:`Reads the dashboards only.`},Af={owner:`danger`,admin:`warning`,operator:`info`,moderator:`info`,developer:`neutral`,viewer:`neutral`},jf=`abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789`,Mf=18;function Nf(){let{hasPermission:e,session:t}=M(),n=jn(()=>w.get(`users`),[]),[r,i]=(0,_.useState)({kind:`none`}),a=e(`users.manage`),o=t.user.role===`owner`,s=()=>i({kind:`none`}),c=e=>{let n=e.userId===t.user.userId;if(!a||e.role===`owner`&&!o)return[];let r=[{label:`Edit`,icon:`edit`,onSelect:()=>i({kind:`edit`,user:e})}];return e.locked&&r.push({label:`Unlock`,icon:`unlock`,onSelect:()=>i({kind:`unlock`,user:e})}),r.push({label:`End sessions`,icon:`signOut`,onSelect:()=>i({kind:`endSessions`,user:e})}),n||(r.push({label:`Reset second factor`,icon:`key`,onSelect:()=>i({kind:`resetSecondFactor`,user:e})}),r.push(e.disabled?{label:`Enable`,icon:`check`,onSelect:()=>i({kind:`setDisabled`,user:e,disabled:!1})}:{label:`Disable`,icon:`lock`,onSelect:()=>i({kind:`setDisabled`,user:e,disabled:!0}),isDanger:!0}),r.push({label:`Delete`,icon:`trash`,onSelect:()=>i({kind:`delete`,user:e}),isDanger:!0})),r},l=[{key:`user`,header:`User`,render:e=>(0,T.jsxs)(`span`,{className:`stack stack--tight`,children:[(0,T.jsxs)(`span`,{className:`row`,children:[(0,T.jsx)(`strong`,{children:e.displayName}),e.userId===t.user.userId&&(0,T.jsx)(V,{isPlain:!0,children:`you`})]}),(0,T.jsxs)(`span`,{className:`small muted`,children:[e.username,e.email!=null&&` · `+e.email]})]})},{key:`role`,header:`Role`,render:e=>(0,T.jsx)(V,{tone:Af[e.role],isPlain:!0,children:e.role})},{key:`status`,header:`Status`,render:e=>(0,T.jsx)(Pf,{user:e})},{key:`lastSignIn`,header:`Last sign-in`,render:e=>(0,T.jsx)(B,{iso:e.lastSignInAt,isRelative:!0,emptyText:`never`})},{key:`created`,header:`Created`,render:e=>(0,T.jsx)(B,{iso:e.createdAt})},{key:`actions`,header:`Actions`,isActions:!0,render:e=>(0,T.jsx)(Df,{label:`Manage `+e.username,items:c(e)})}];return(0,T.jsxs)(`div`,{className:`page`,children:[(0,T.jsx)(R,{title:`Users`,description:`Everyone who can sign in to this console. Each account has a role and its own second factor.`,actions:a&&(0,T.jsxs)(`button`,{type:`button`,className:`button button--primary`,onClick:()=>i({kind:`create`}),children:[(0,T.jsx)(E,{name:`plus`}),`Add user`]})}),(0,T.jsx)(`section`,{className:`panel panel--flush`,children:(0,T.jsx)(H,{state:n,subject:`the users`,children:e=>(0,T.jsx)(L,{caption:`Console users`,columns:l,rows:e,rowKey:e=>e.userId,emptyState:(0,T.jsx)(z,{title:`No users`,icon:`users`})})})}),r.kind===`create`&&(0,T.jsx)(Ff,{isCallerOwner:o,onCreated:n.refresh,onClose:s}),r.kind===`edit`&&(0,T.jsx)(If,{user:r.user,isCallerOwner:o,isSelf:r.user.userId===t.user.userId,onSaved:n.refresh,onClose:s}),r.kind!==`none`&&r.kind!==`create`&&r.kind!==`edit`&&(0,T.jsx)(Rf,{dialog:r,onDone:n.refresh,onClose:s})]})}function Pf(e){let{user:t}=e;return(0,T.jsxs)(`span`,{className:`row`,children:[t.disabled?(0,T.jsx)(V,{tone:`danger`,children:`disabled`}):(0,T.jsx)(V,{tone:`success`,children:`active`}),t.locked&&(0,T.jsx)(V,{tone:`warning`,children:`locked`}),!t.hasSecondFactor&&(0,T.jsx)(V,{tone:`warning`,isPlain:!0,children:`no second factor yet`})]})}function Ff(e){let t=N(),[n,r]=(0,_.useState)(``),[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(``),[c,l]=(0,_.useState)(`viewer`),[u,d]=(0,_.useState)(Bf),f=dr(u,n),p=n.trim()!==``&&i.trim()!==``&&f==null;return(0,T.jsxs)(k,{title:`Add a user`,description:`You will confirm with your authenticator.`,confirmLabel:`Create user`,tone:`primary`,canConfirm:p,onConfirm:async()=>{let r={username:n.trim(),displayName:i.trim(),email:o.trim()===``?null:o.trim(),role:c,temporaryPassword:u};await w.send(`POST`,`users`,r),t(`Created `+r.username+`. Give them the temporary password; they set up their authenticator when they first sign in.`),e.onCreated()},onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Username`,children:(0,T.jsx)(`input`,{className:`input`,value:n,onChange:e=>r(e.target.value),autoCapitalize:`none`,spellCheck:!1,autoComplete:`off`})}),(0,T.jsx)(O,{label:`Display name`,children:(0,T.jsx)(`input`,{className:`input`,value:i,onChange:e=>a(e.target.value)})}),(0,T.jsx)(O,{label:`Email (optional)`,hint:`Used to match single sign-on accounts.`,children:(0,T.jsx)(`input`,{className:`input`,type:`email`,value:o,onChange:e=>s(e.target.value)})})]}),(0,T.jsx)(Lf,{value:c,isCallerOwner:e.isCallerOwner,onChange:l}),(0,T.jsx)(O,{label:`Temporary password`,hint:`Share it privately. They sign in with it once, then set up their authenticator.`,error:f,children:(0,T.jsxs)(`span`,{className:`secret-box`,children:[(0,T.jsx)(`input`,{className:`input mono grow`,value:u,onChange:e=>d(e.target.value),autoComplete:`off`,spellCheck:!1}),(0,T.jsx)(Xn,{text:u}),(0,T.jsxs)(`button`,{type:`button`,className:`button button--small`,onClick:()=>d(Bf()),children:[(0,T.jsx)(E,{name:`refresh`}),`New`]})]})})]})}function If(e){let t=N(),{user:n}=e,[r,i]=(0,_.useState)(n.displayName),[a,o]=(0,_.useState)(n.email??``),[s,c]=(0,_.useState)(n.role),l=n.role===`owner`&&s!==`owner`;return(0,T.jsxs)(k,{title:`Edit `+n.username,description:`You will confirm with your authenticator.`,confirmLabel:`Save`,tone:l?`danger`:`primary`,typedConfirmation:l?n.username:void 0,canConfirm:r.trim()!==``,onConfirm:async()=>{let i={displayName:r.trim(),email:a.trim()===``?null:a.trim(),expectedRevision:n.revision};s!==n.role&&(i.role=s),await w.send(`PUT`,`users/`+encodeURIComponent(n.userId),i),t(`Saved `+n.username+`.`),e.onSaved()},onClose:e.onClose,isWide:!0,children:[(0,T.jsxs)(`div`,{className:`form-grid`,children:[(0,T.jsx)(O,{label:`Display name`,children:(0,T.jsx)(`input`,{className:`input`,value:r,onChange:e=>i(e.target.value)})}),(0,T.jsx)(O,{label:`Email`,children:(0,T.jsx)(`input`,{className:`input`,type:`email`,value:a,onChange:e=>o(e.target.value)})})]}),e.isSelf?(0,T.jsx)(`p`,{className:`muted`,children:`You cannot change your own role. Ask another owner or admin.`}):(0,T.jsx)(Lf,{value:s,isCallerOwner:e.isCallerOwner,onChange:c}),l&&(0,T.jsxs)(`div`,{className:`banner banner--warning`,children:[(0,T.jsx)(E,{name:`alert`,className:`banner__icon`}),(0,T.jsxs)(`div`,{className:`banner__body`,children:[`This takes the owner role away from `,n.username,`.`]})]})]})}function Lf(e){let t=Of.filter(t=>t!==`owner`||e.isCallerOwner);return(0,T.jsx)(O,{label:`Role`,hint:kf[e.value],children:(0,T.jsx)(`select`,{className:`select`,value:e.value,onChange:t=>e.onChange(t.target.value),children:t.map(e=>(0,T.jsx)(`option`,{value:e,children:e},e))})})}function Rf(e){let t=N(),{dialog:n}=e,r=n.user,i=`users/`+encodeURIComponent(r.userId),a=zf(n),o=n.kind===`delete`||n.kind===`resetSecondFactor`||n.kind===`setDisabled`&&n.disabled;return(0,T.jsx)(k,{title:a.title,description:a.description,confirmLabel:a.confirmLabel,tone:o?`danger`:`primary`,typedConfirmation:r.role===`owner`&&o?r.username:void 0,onConfirm:async()=>{if(n.kind===`setDisabled`){let e={disabled:n.disabled,expectedRevision:r.revision};await w.send(`PUT`,i,e),t((n.disabled?`Disabled `:`Enabled `)+r.username+`.`)}else if(n.kind===`unlock`)await w.send(`POST`,i+`/unlock`),t(`Unlocked `+r.username+`.`);else if(n.kind===`resetSecondFactor`)await w.send(`POST`,i+`/reset-second-factor`),t(r.username+` sets up a new authenticator at their next sign-in.`);else if(n.kind===`endSessions`){let e=await w.send(`POST`,i+`/end-sessions`);t(`Ended `+e.ended+` session`+(e.ended===1?``:`s`)+` of `+r.username+`.`)}else await w.send(`DELETE`,i),t(`Deleted `+r.username+`.`);e.onDone()},onClose:e.onClose})}function zf(e){let t=e.user.username;return e.kind===`setDisabled`&&e.disabled?{title:`Disable `+t+`?`,description:`They are signed out everywhere and cannot sign in until enabled again. You will confirm with your authenticator.`,confirmLabel:`Disable`}:e.kind===`setDisabled`?{title:`Enable `+t+`?`,description:`They can sign in again. You will confirm with your authenticator.`,confirmLabel:`Enable`}:e.kind===`unlock`?{title:`Unlock `+t+`?`,description:`The account was locked after too many failed sign-ins. Unlocking lets them try again now.`,confirmLabel:`Unlock`}:e.kind===`resetSecondFactor`?{title:`Reset the second factor of `+t+`?`,description:`Their authenticator, recovery codes and passkeys stop working, and their sessions end. They set up a new authenticator at their next sign-in. You will confirm with your authenticator.`,confirmLabel:`Reset second factor`}:e.kind===`endSessions`?{title:`End every session of `+t+`?`,description:`Every browser signed in to this account is signed out at its next request.`,confirmLabel:`End sessions`}:{title:`Delete `+t+`?`,description:`The account is removed for good. Its audit records stay. You will confirm with your authenticator.`,confirmLabel:`Delete user`}}function Bf(){let e=crypto.getRandomValues(new Uint32Array(Mf));return Array.from(e,e=>jf[e%55]).join(``)}var Vf=`(prefers-color-scheme: dark)`,Q=`system`,Hf=null;function Uf(e){Q=e,Hf??(Hf=window.matchMedia(Vf),Hf.addEventListener(`change`,Wf)),Wf()}function Wf(){let e=Hf?.matches===!0,t=Q===`dark`||Q===`system`&&e;document.documentElement.dataset.theme=t?`dark`:`light`}var Gf=401,Kf=[`sign-in`,`setup`],qf=`README.md`,Jf=`#/`;function Yf(){let e=St(),t=e.path[0]??``,[n,r]=(0,_.useState)({phase:`loading`}),[i,a]=(0,_.useState)(0),o=(0,_.useRef)(Jf);(0,_.useEffect)(()=>{let e=!1;return Xf().then(t=>{e||r(t)}),()=>{e=!0}},[i]),(0,_.useEffect)(()=>(w.setUnauthorizedHandler(()=>{w.setCsrfToken(null),r(e=>e.phase===`signedIn`?{phase:`signedOut`,methods:e.methods}:e)}),()=>w.setUnauthorizedHandler(null)),[]),(0,_.useEffect)(()=>{if(n.phase!==`signedOut`)return;let e=!1;return w.get(`auth/methods`).then(t=>{e||r(e=>e.phase===`signedOut`?{phase:`signedOut`,methods:t}:e)},()=>void 0),()=>{e=!0}},[n.phase]),(0,_.useEffect)(()=>{n.phase===`signedOut`&&!Kf.includes(t)&&(t!==``&&(o.current=window.location.hash),wt(`#/sign-in`)),n.phase===`signedIn`&&Kf.includes(t)&&(wt(o.current),o.current=Jf)},[n.phase,t]);let s=n.phase===`signedIn`?n.session.user.preferences.theme:`system`;(0,_.useEffect)(()=>Uf(s),[s]);let c=(0,_.useCallback)(e=>{w.setCsrfToken(e.session.csrfToken),r(t=>({phase:`signedIn`,methods:t.phase===`signedOut`||t.phase===`signedIn`?t.methods:null,session:e.session}))},[]);return n.phase===`loading`?(0,T.jsx)(Zf,{}):n.phase===`unreachable`?(0,T.jsx)(`div`,{className:`loading-screen`,children:(0,T.jsx)(Te,{title:`The console cannot reach the server`,onRetry:()=>a(i+1),children:n.message})}):n.phase===`signedOut`?t===`setup`?(0,T.jsx)(lr,{onSignedIn:c}):(0,T.jsx)(bf,{methods:n.methods,onSignedIn:c}):Kf.includes(t)?(0,T.jsx)(Zf,{}):(0,T.jsx)(Qf,{session:n.session,route:e,onSessionChange:e=>r({...n,session:e}),onSignedOut:()=>r({phase:`signedOut`,methods:n.methods})})}async function Xf(){let e=null;try{e=await w.get(`auth/methods`)}catch(e){let t=C(e);if(t.status===0)return{phase:`unreachable`,message:t.message}}try{let t=await w.get(`auth/session`);return w.setCsrfToken(t.csrfToken),{phase:`signedIn`,methods:e,session:t}}catch(t){let n=C(t);return n.status===Gf?{phase:`signedOut`,methods:e}:{phase:`unreachable`,message:n.message}}}function Zf(){return(0,T.jsxs)(`div`,{className:`loading-screen`,role:`status`,children:[(0,T.jsx)(`span`,{className:`spinner`,"aria-hidden":`true`}),(0,T.jsx)(`span`,{children:`Opening the console…`})]})}function Qf(e){let{session:t,route:n,onSessionChange:r,onSignedOut:i}=e,[a,o]=(0,_.useState)(!1),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(`none`),d=n.path.join(`/`),f=(0,_.useCallback)(()=>u(`none`),[]),p=(0,_.useCallback)(e=>u(e),[]);ln({onTogglePalette:()=>u(e=>e===`palette`?`none`:`palette`),onOpenHelp:()=>u(`help`)}),(0,_.useEffect)(()=>o(!1),[d]),(0,_.useEffect)(()=>(w.setStepUpHandler(()=>new Promise(e=>c({resolve:e}))),()=>w.setStepUpHandler(null)),[]);let m=(0,_.useMemo)(()=>{let e=new Set(t.permissions);return{session:t,preferences:t.user.preferences,hasPermission:t=>e.has(t),replaceSession:e=>{w.setCsrfToken(e.csrfToken),r(e)},savePreferences:async e=>{Uf(e.theme);let n=await w.send(`PUT`,`account/preferences`,e);r({...t,user:n})},signOut:async e=>{await w.send(`POST`,e?`auth/sign-out-everywhere`:`auth/sign-out`).catch(()=>void 0),w.setCsrfToken(null),i()}}},[t,r,i]),h=(e,t)=>{t!=null&&m.replaceSession(t),s?.resolve(e),c(null)};return(0,T.jsxs)(Xe,{value:m,children:[(0,T.jsx)(`a`,{className:`visually-hidden`,href:`#main-content`,onClick:e=>{e.preventDefault(),document.getElementById(`main-content`)?.focus()},children:`Skip to content`}),(0,T.jsxs)(`div`,{className:a?`app-shell app-shell--navigation-open`:`app-shell`,children:[(0,T.jsx)(Sn,{currentSection:n.path[0]??``,onNavigate:()=>o(!1)}),(0,T.jsxs)(`div`,{className:`main-column`,children:[(0,T.jsx)(On,{isNavigationOpen:a,onToggleNavigation:()=>o(!a),onOpenPalette:()=>u(`palette`),onOpenHelp:()=>u(`help`)}),(0,T.jsx)(`main`,{id:`main-content`,tabIndex:-1,children:$f(n)},d)]})]}),l===`palette`&&(0,T.jsx)(sn,{onClose:f,onAction:p}),l===`help`&&(0,T.jsx)(vn,{section:n.path[0]??``,onClose:f}),l===`notice`&&(0,T.jsx)(bn,{target:{scope:`fleet`},audienceText:`every player on every instance`,onClose:f}),l===`ban`&&(0,T.jsx)(st,{onClose:f}),s!=null&&(0,T.jsx)(Cn,{onConfirmed:e=>h(!0,e),onCancel:()=>h(!1,null)})]})}function $f(e){let[t=``,n,r]=e.path;return r==null?t===``&&n==null?(0,T.jsx)(xn,{permission:`fleet.view`,children:(0,T.jsx)(jd,{})}):t===`instances`?(0,T.jsx)(xn,{permission:`fleet.view`,children:n==null?(0,T.jsx)(Ec,{}):(0,T.jsx)(xc,{processId:n})}):t===`maintenance`&&n==null?(0,T.jsx)(xn,{permission:`fleet.view`,children:(0,T.jsx)(ld,{})}):t===`sessions`?(0,T.jsx)(xn,{permission:`sessions.view`,children:n==null?(0,T.jsx)(vc,{}):(0,T.jsx)(Hd,{roomId:n})}):t===`players`&&n==null?(0,T.jsx)(xn,{permission:`players.view`,children:(0,T.jsx)(mf,{})}):t===`players`&&n===`detail`?(0,T.jsx)(xn,{permission:`players.view`,children:(0,T.jsx)(tf,{})}):t===`bans`&&n==null?(0,T.jsx)(xn,{permission:`bans.view`,children:(0,T.jsx)(Ci,{})}):t===`leaderboards`&&n==null?(0,T.jsx)(xn,{permission:`leaderboards.view`,children:(0,T.jsx)(vu,{})}):t===`leaderboards`&&n===`board`?(0,T.jsx)(xn,{permission:`leaderboards.view`,children:(0,T.jsx)(Il,{})}):t===`leaderboards`&&n===`players`?(0,T.jsx)(xn,{permission:`leaderboards.view`,children:(0,T.jsx)(al,{})}):t===`leaderboards`&&n===`player`?(0,T.jsx)(xn,{permission:`leaderboards.view`,children:(0,T.jsx)(Zl,{})}):t===`leaderboards`&&n===`activity`?(0,T.jsx)(xn,{permission:`leaderboards.view`,children:(0,T.jsx)(cl,{})}):t===`leaderboards`&&n===`settings`?(0,T.jsx)(xn,{permission:`leaderboards.view`,children:(0,T.jsx)(cu,{})}):t===`dedicated`&&n==null?(0,T.jsx)(xn,{permission:`dedicated.view`,children:(0,T.jsx)(vs,{})}):t===`metrics`&&n==null?(0,T.jsx)(xn,{permission:`metrics.view`,children:(0,T.jsx)(yd,{})}):t===`cloud`&&n==null?(0,T.jsx)(xn,{permission:`cloud.view`,children:(0,T.jsx)(Ro,{})}):t===`logs`&&n==null?(0,T.jsx)(xn,{permission:`logs.view`,children:(0,T.jsx)(Bu,{})}):t===`config`&&n==null?(0,T.jsx)(xn,{permission:`config.view`,children:(0,T.jsx)(ts,{})}):t===`auth-tools`&&n==null?(0,T.jsx)(xn,{permission:`auth.view`,children:(0,T.jsx)(fi,{})}):t===`alerts`&&n==null?(0,T.jsx)(xn,{permission:`alerts.view`,children:(0,T.jsx)(Ar,{})}):t===`audit`&&n==null?(0,T.jsx)(xn,{permission:`audit.view`,children:(0,T.jsx)(oi,{})}):t===`users`&&n==null?(0,T.jsx)(xn,{permission:`users.view`,children:(0,T.jsx)(Nf,{})}):t===`api-keys`&&n==null?(0,T.jsx)(xn,{permission:`apiKeys.manage`,children:(0,T.jsx)(Kr,{})}):t===`extensions`&&n==null?(0,T.jsx)(nc,{}):t===`docs`?(0,T.jsx)(ks,{documentName:n??qf}):t===`account`&&n==null?(0,T.jsx)(gr,{}):(0,T.jsx)(Ed,{}):(0,T.jsx)(Ed,{})}Uf(`system`);var ep=document.getElementById(`root`);if(ep==null)throw Error(`index.html has no #root element`);(0,v.createRoot)(ep).render((0,T.jsx)(_.StrictMode,{children:(0,T.jsx)(tt,{children:(0,T.jsx)(Yf,{})})}));