@jchat/runtime 1.0.0-alpha.27 → 1.0.0-alpha.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/distribution.d.mts +13 -0
- package/dist/distribution.mjs +4 -0
- package/dist/index.d.mts +128 -15
- package/dist/index.mjs +9 -1
- package/package.json +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# @jchat/runtime
|
|
2
2
|
|
|
3
|
+
## 1.0.0-alpha.29
|
|
4
|
+
|
|
5
|
+
No changes in this release.
|
|
6
|
+
|
|
7
|
+
## 1.0.0-alpha.28
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- Enhance license verification security and add offline grace period support
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Harden public distribution bundle with string encryption and control-flow obfuscation
|
|
16
|
+
|
|
17
|
+
- Enhance feature stage access validation and add runtime feature guard plugin
|
|
18
|
+
|
|
19
|
+
- Harden production licensing against sandbox overrides and localhost spoofing
|
|
20
|
+
|
|
21
|
+
- Isolate runtime data directory in test environments
|
|
22
|
+
|
|
23
|
+
- Enforce signature verification for development multi-site license evaluations
|
|
24
|
+
|
|
25
|
+
- Bumped `@jchat/*` dependencies:
|
|
26
|
+
- [`shared@1.0.0-alpha.26`](https://github.com/jchatcloud/jchat/releases/tag/shared@v1.0.0-alpha.26)
|
|
27
|
+
|
|
3
28
|
## 1.0.0-alpha.27
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/distribution.d.ts
|
|
2
|
+
export declare const APPLICATION_DISTRIBUTIONS: readonly ["production", "developer-sandbox"];
|
|
3
|
+
export type ApplicationDistribution = (typeof APPLICATION_DISTRIBUTIONS)[number];
|
|
4
|
+
/**
|
|
5
|
+
* Authoritatively resolves the application distribution mode. Completely isomorphic with zero
|
|
6
|
+
* Node/Bun built-in dependencies. In production environments, strictly enforces "production"
|
|
7
|
+
* distribution.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveApplicationDistribution(value?: unknown): ApplicationDistribution;
|
|
10
|
+
export declare function isDeveloperSandbox(): boolean;
|
|
11
|
+
export declare const APPLICATION_DISTRIBUTION: ApplicationDistribution;
|
|
12
|
+
export declare const IS_DEVELOPER_SANDBOX: boolean;
|
|
13
|
+
//#endregion
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const e=n;(function(e,t){let r=n,i=e();for(;;)try{if(-parseInt(r(289,`C2$E`))/1*(-parseInt(r(270,`FP4P`))/2)+parseInt(r(251,`PBcL`))/3+parseInt(r(309,`g#!Q`))/4*(-parseInt(r(313,`Lt^6`))/5)+-parseInt(r(317,`IZot`))/6*(-parseInt(r(265,`IZot`))/7)+-parseInt(r(297,`Dhxr`))/8+-parseInt(r(299,`Clxy`))/9+parseInt(r(284,`@TN&`))/10===t)break;i.push(i.shift())}catch{i.push(i.shift())}})(i,838631);const t=[e(310,`Ni5x`),e(294,`FP4P`)+e(263,`Lt^6`)];function n(e,t){e-=251;let r=i(),a=r[e];if(n.yCwweR===void 0){var o=function(e){let t=``,n=``,r=t+o,i=(``+function(){return 0}).indexOf(`
|
|
2
|
+
`)!==-1;for(let n=0,a,o,s=0;o=e.charAt(s++);~o&&(a=n%4?a*64+o:o,n++%4)&&(t+=i||r.charCodeAt(s+10)-10!=0?String.fromCharCode(255&a>>(-2*n&6)):n))o=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=`.indexOf(o);for(let e=0,r=t.length;e<r;e++)n+=`%`+(`00`+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)};n.UxzSoe=function(e,t){let n=[],r=0,i,a=``;e=o(e);let s=0;for(;s<256;s++)n[s]=s;for(s=0;s<256;s++)r=(r+n[s]+t.charCodeAt(s%t.length))%256,i=n[s],n[s]=n[r],n[r]=i;s=0,r=0;for(let t=0;t<e.length;t++)s=(s+1)%256,r=(r+n[s])%256,i=n[s],n[s]=n[r],n[r]=i,a+=String.fromCharCode(e.charCodeAt(t)^n[(n[s]+n[r])%256]);return a},n.CRKDfQ={},n.yCwweR=!0}let s=r[0];n.GeUaSp!==s&&(n.CRKDfQ={},n.GeUaSp=s);let c=n.CRKDfQ[e];if(c===void 0){if(n.PwJsdH===void 0){let e=function(e){this.qgWGxm=e,this.iCMtAw=[1,0,0],this.dLCdUG=function(){return`newState`},this.WLvBlG=`\\w+ *\\(\\) *{\\w+ *`,this.iKvqKm=`['|"].+['|"];? *}`};e.prototype.IbvhZk=function(){let e=new RegExp(this.WLvBlG+this.iKvqKm).test(this.dLCdUG.toString())?--this.iCMtAw[1]:--this.iCMtAw[0];return this.poDUgK(e)},e.prototype.poDUgK=function(e){return~e?this.LHAFeO(this.qgWGxm):e},e.prototype.LHAFeO=function(e){for(let e=0,t=this.iCMtAw.length;e<t;e++)this.iCMtAw.push(Math.round(Math.random())),t=this.iCMtAw.length;return e(this.iCMtAw[0])},(``+function(){return 0}).indexOf(`
|
|
3
|
+
`)===-1&&new e(n).IbvhZk(),n.PwJsdH=!0}a=n.UxzSoe(a,t),n.CRKDfQ[e]=a}else a=c;return a}function r(t){let n=e,r={EzKeB:function(e,t){return e!==t},uZFbx:n(271,`Jun5`),fcmVF:function(e,t){return e===t},fqfZk:n(288,`rw5)`)+n(264,`FP4P`),gdSMs:n(282,`d9T)`),SElzF:function(e,t){return e!==t},cYRcq:function(e,t){return e===t},OXMeL:function(e,t){return e===t}};if(r[n(255,`ckH&`)](typeof t,r[n(285,`[F$g`)]))return r[n(291,`EKGH`)](t,r[n(272,`*Blg`)])?n(261,`Clxy`)+`sandbox`:r.gdSMs;let i=r[n(269,`)8(6`)](typeof Bun,`undefined`)&&Bun[n(308,`FP4P`)]?.[n(278,`9sFL`)]===`production`||r[n(279,`d9T)`)](typeof process,`undefined`)&&r[n(273,`0WSK`)](process.env?.NODE_ENV,r[n(274,`#z8R`)]);return r[n(287,`#z8R`)](typeof __JCHAT_DISTRIBUTION__,r[n(302,`SToB`)])&&r[n(303,`Jun5`)](__JCHAT_DISTRIBUTION__,r[n(276,`PBcL`)])?i?r[n(257,`Jun5`)]:r[n(280,`RZko`)]:typeof Bun!==n(315,`VJr(`)&&r.OXMeL(Bun[n(300,`)nIi`)]?.[n(304,`7NDZ`)+`RIBUTION`],n(294,`FP4P`)+n(314,`sMLA`))?i?`production`:n(267,`wrFN`)+`sandbox`:r.gdSMs}function i(){let e=`W4qGW4tcVuidCY3cTs4.WOGcWOvFCCkLlW.o0hdRbZdRCoQBmoHW5m8tmk6WPOZ.WRHRdHxdT8kmW7bfW7aXySoxW6W.gMrcBCoXWRpcHG.pmoQyv/dIuFcI38tW6HspcW.bLpcQa.tKRdRmoTW6C.WOSqfSkDjG.wcPGWQpcHW.W6bStKFcQSonWQVdLmk6W48.emksWPzguWBcVanacq.Fmk9ymoAW4tdTSkFW48nltxcVSkh.W4/dVmoJW4VdRgFcHde.W4uRW4q.CwTXnL0ko8o1.W5eaWPtcJSo/WPboxGr+.WPGEmJhdICkRWQtdLmk8W714Aa.W6ldNCkLcXG.W57dHJRcQmoCWPaym3G5WQSXWQ4.bq5GW45iWQhcKa.bSktWPXqqr3cPWvq.vaVdPW47nConcglcJfmyrq.WQFdRmkkiSkJWRRcSSolWP8.W6tdU8oeW7VdLW99qcFdImkGAW.hCkNqt7cKGdcM8klWQxcNc/dTve.sCkBq8kPWQey.W5ONW7BcJ38.q2yCoSki.sf0pgSkG.FSoUW5hcRxu.ws1EWRJcSG.qs0ej8k4W7xdLCosdvC.W6LjC23dQG.q0hdSG.yCk+jGlcNrhdGNqBWQS.aI9vefbuf8k3uG.WP/cKgpdUCkiW4Hq.W5mKW5ZcVeWdEW.WQFdRSkjvSoSW5pcUSoGWReCvIu.dwbABmo/WRpcJSkEvfm.W6nLsCk8WRpdVSo+W7mBWPS.W6tcKSolW7ZcMHNdOW.chrtWPTI.WPyOW7NcNeyECG.sYDPWPdcP3xcPa3cJW.W4z8WQrZW7i.W6uQzctdRa.y2tdQCk6FG.aCkum8oIWQFdTSkdDvHd.sCoVevtdGa.W6eSyg3cOW.W4pcS8oRW5ZcVrpdI8oz.W60QWQjHxW.W4uQW4FdUmoT.amoYq0eLW7ZcTCkTea.W44DWQf/Bmk0kSk9W4zD.FvuRg8kxW73dLgNcNmkw.W53dPSoab8oRhmkWWORdSx0UyCoMWQO.rCo1W4/cIMC.sCkXpsdcTa.v0xdLSknsW.mKhdLCkpyrJdOmkVW4Gk.WONcOSkeWOJcQtFcOr8sWPRdP8kf.W7mDW4FcLLO.qeZdQCoDW4y.W5DoW7mywW.WQdcM2ddMSkV`.split(`.`);return i=function(){return e},i()}function a(){let t=e,n={nqWIc:function(e,t){return e!==t},vnoiw:t(258,`NK*V`)+`+$`,LjmGE:function(e){return e()},zbDWQ:t(281,`20kj`),NAXEj:t(283,`ckH&`),hehfg:function(e,t){return e===t},SXuNt:t(266,`NK*V`)+t(298,`NK*V`)},i=function(){let e=!0;return function(t,n){let r=e?function(){if(n){let e=n.apply(t,arguments);return n=null,e}}:function(){};return e=!1,r}}()(this,function(){let e=t;if(!n[e(312,`fKXK`)](i.bind()[e(307,`C2$E`)]()[e(268,`9sFL`)](`
|
|
4
|
+
`),-1))return i.toString()[e(252,`Ft4d`)](n[e(292,`fyGs`)]).toString()[e(305,`VJr(`)+`r`](i).search(e(275,`9WK1`)+`+$`)});return n[t(286,`Clxy`)](i),n[t(277,`Dhxr`)](typeof Bun,n[t(253,`FP4P`)])&&Bun[t(260,`EKGH`)]?.NODE_ENV===n[t(254,`ckH&`)]||typeof process!==n[t(259,`@Hh1`)]&&n.hehfg(process.env?.NODE_ENV,n[t(256,`[F$g`)])?!1:n[t(301,`EKGH`)](n[t(293,`Lt^6`)](r),n[t(290,`FP4P`)])}const o=r(),s=a();export{o as APPLICATION_DISTRIBUTION,t as APPLICATION_DISTRIBUTIONS,s as IS_DEVELOPER_SANDBOX,a as isDeveloperSandbox,r as resolveApplicationDistribution};
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { APPLICATION_DISTRIBUTION, APPLICATION_DISTRIBUTIONS, ApplicationDistribution, IS_DEVELOPER_SANDBOX, isDeveloperSandbox, resolveApplicationDistribution } from "./distribution.mjs";
|
|
1
2
|
import { Elysia } from "elysia";
|
|
2
3
|
//#region src/domain.d.ts
|
|
3
4
|
export type Provider = "envato" | "jchat";
|
|
@@ -78,6 +79,42 @@ type CheckInput = {
|
|
|
78
79
|
export declare const DEFAULT_LICENSE_SERVER_URL = "https://license.jchatcloud.com";
|
|
79
80
|
export declare const DEFAULT_LICENSE_ISSUER = "https://license.jchatcloud.com";
|
|
80
81
|
export declare const DEFAULT_LICENSE_AUDIENCE = "jchat-chat";
|
|
82
|
+
export declare function getOfficialSigningPublicKey(): string;
|
|
83
|
+
export declare const OFFICIAL_SIGNING_PUBLIC_KEY: string;
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/feature-crypto.d.ts
|
|
86
|
+
export interface FeatureExecutionContext {
|
|
87
|
+
isValid: boolean;
|
|
88
|
+
featureKey: string;
|
|
89
|
+
stage?: FeatureStage;
|
|
90
|
+
siteId?: string;
|
|
91
|
+
executionToken?: string;
|
|
92
|
+
error?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Derives a cryptographically bound HMAC-SHA256 secret for a specific feature using the verified
|
|
96
|
+
* signature of the instance license token. Throws an Error if the signature is invalid or the token
|
|
97
|
+
* cannot be verified.
|
|
98
|
+
*/
|
|
99
|
+
export declare function deriveFeatureKey(token: string, featureKey: string, domain?: string, options?: RuntimeOptions): string;
|
|
100
|
+
/**
|
|
101
|
+
* Checks and returns the allowed feature stages (stable, beta, experimental) for the current
|
|
102
|
+
* instance. The license token MUST have a valid RS256 cryptographic signature against the vendor
|
|
103
|
+
* public key; otherwise, only "stable" is returned.
|
|
104
|
+
*/
|
|
105
|
+
export declare function checkAllowedStages(domain?: string, options?: RuntimeOptions): FeatureStage[];
|
|
106
|
+
/**
|
|
107
|
+
* Checks and returns the release channel (stable, lts) for the current instance. Reverts to
|
|
108
|
+
* "stable" if the token has no valid cryptographic signature.
|
|
109
|
+
*/
|
|
110
|
+
export declare function checkReleaseChannel(domain?: string, options?: RuntimeOptions): ReleaseChannel;
|
|
111
|
+
/** Verifies that the instance is cryptographically licensed to execute a feature at a given stage. */
|
|
112
|
+
export declare function verifyFeatureStageAccess(stage: FeatureStage, domain?: string, options?: RuntimeOptions): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Derives a full FeatureExecutionContext. If the feature's required stage is not licensed or the
|
|
115
|
+
* token signature is invalid, isValid is false with an appropriate error message.
|
|
116
|
+
*/
|
|
117
|
+
export declare function deriveFeatureExecutionContext(featureKey: string, requiredStage?: FeatureStage, siteId?: string, domain?: string, options?: RuntimeOptions): FeatureExecutionContext;
|
|
81
118
|
//#endregion
|
|
82
119
|
//#region src/state.d.ts
|
|
83
120
|
type LocalState = {
|
|
@@ -88,10 +125,12 @@ type LocalState = {
|
|
|
88
125
|
lastSuccessfulCheckAt?: string;
|
|
89
126
|
};
|
|
90
127
|
export declare function resolveDataDir(): string;
|
|
128
|
+
export declare function getDefaultStatePath(): string;
|
|
91
129
|
export declare const DEFAULT_STATE_PATH: string;
|
|
92
130
|
export declare function createIdentity(): {
|
|
93
131
|
installationId: string;
|
|
94
132
|
};
|
|
133
|
+
export declare function readStateSync(filePath?: string): LocalState | null;
|
|
95
134
|
export declare function readTokenSync(filePath?: string): string;
|
|
96
135
|
export declare function readState(filePath?: string): Promise<LocalState | null>;
|
|
97
136
|
export declare function writeState(state: LocalState, filePath?: string): Promise<void>;
|
|
@@ -148,8 +187,8 @@ export type RuntimePluginOptions = {
|
|
|
148
187
|
allowedPaths?: Set<string>;
|
|
149
188
|
onInvalidate?: () => void;
|
|
150
189
|
getSiteCount?: () => Promise<number> | number;
|
|
190
|
+
token?: string;
|
|
151
191
|
};
|
|
152
|
-
export declare function startRuntimeSupervisor(options?: RuntimePluginOptions): Promise<void>;
|
|
153
192
|
export declare function jchatRuntime(options?: RuntimePluginOptions): Elysia<"", {
|
|
154
193
|
decorator: {};
|
|
155
194
|
store: {};
|
|
@@ -189,6 +228,64 @@ export declare function jchatRuntime(options?: RuntimePluginOptions): Elysia<"",
|
|
|
189
228
|
standaloneSchema: {};
|
|
190
229
|
response: {};
|
|
191
230
|
}>;
|
|
231
|
+
export declare class FeatureForbiddenError extends Error {
|
|
232
|
+
readonly status = 403;
|
|
233
|
+
readonly responseStatus: string;
|
|
234
|
+
readonly reference: string;
|
|
235
|
+
constructor(message: string, reference?: string, responseStatus?: string);
|
|
236
|
+
}
|
|
237
|
+
export interface FeatureGuardOptions {
|
|
238
|
+
feature: string;
|
|
239
|
+
stage?: FeatureStage;
|
|
240
|
+
domain?: string;
|
|
241
|
+
requiredEntitlement?: string;
|
|
242
|
+
resolveSiteId?: (context: {
|
|
243
|
+
headers: Record<string, string | undefined>;
|
|
244
|
+
authContext?: {
|
|
245
|
+
site?: {
|
|
246
|
+
id: string;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
[key: string]: unknown;
|
|
250
|
+
}) => Promise<string | undefined> | string | undefined;
|
|
251
|
+
isSiteEnabled?: (siteId: string, feature: string) => Promise<boolean> | boolean;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Elysia guard plugin that verifies a feature is active and authorized for the site/instance.
|
|
255
|
+
* Checks cryptographic license stage access, token validity, and site-level overrides.
|
|
256
|
+
*/
|
|
257
|
+
export declare function runtimeFeatureGuard(options: FeatureGuardOptions): Elysia<"", {
|
|
258
|
+
decorator: {};
|
|
259
|
+
store: {};
|
|
260
|
+
derive: {};
|
|
261
|
+
resolve: {};
|
|
262
|
+
}, {
|
|
263
|
+
typebox: {};
|
|
264
|
+
error: {};
|
|
265
|
+
}, {
|
|
266
|
+
schema: {};
|
|
267
|
+
standaloneSchema: {};
|
|
268
|
+
macro: {};
|
|
269
|
+
macroFn: {};
|
|
270
|
+
parser: {};
|
|
271
|
+
response: {};
|
|
272
|
+
}, {}, {
|
|
273
|
+
derive: {
|
|
274
|
+
readonly featureContext: FeatureExecutionContext;
|
|
275
|
+
};
|
|
276
|
+
resolve: {};
|
|
277
|
+
schema: {};
|
|
278
|
+
standaloneSchema: {};
|
|
279
|
+
response: {};
|
|
280
|
+
}, {
|
|
281
|
+
derive: {};
|
|
282
|
+
resolve: {};
|
|
283
|
+
schema: {};
|
|
284
|
+
standaloneSchema: {};
|
|
285
|
+
response: {};
|
|
286
|
+
}>;
|
|
287
|
+
export declare function refreshLicenseLease(options?: RuntimePluginOptions): Promise<CheckResult | null>;
|
|
288
|
+
export declare function startRuntimeSupervisor(options?: RuntimePluginOptions): Promise<void>;
|
|
192
289
|
//#endregion
|
|
193
290
|
//#region src/server-context.d.ts
|
|
194
291
|
export interface BaseServerContext {
|
|
@@ -198,24 +295,32 @@ export interface BaseServerContext {
|
|
|
198
295
|
SYSTEM_BOOTSTRAP_COMPLETE?: boolean;
|
|
199
296
|
[key: string]: unknown;
|
|
200
297
|
}
|
|
298
|
+
export interface ServerSchema<T> {
|
|
299
|
+
parse: (data: unknown) => T;
|
|
300
|
+
}
|
|
201
301
|
/**
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
302
|
+
* Validates the server environment against the application schema and seals the server context. In
|
|
303
|
+
* fresh installations or unconfigured bootstrap states where schema parsing fails, it safely falls
|
|
304
|
+
* back to an uninstalled state with a randomized cookie secret and SYSTEM_BOOTSTRAP_COMPLETE =
|
|
305
|
+
* false.
|
|
205
306
|
*/
|
|
206
|
-
export declare function
|
|
307
|
+
export declare function loadServerConfig<T extends Record<string, unknown>>(schema: ServerSchema<T>, environment?: Record<string, unknown>, distribution?: ApplicationDistribution, publicKeyPem?: string): T & {
|
|
207
308
|
JCHAT_COOKIE_SECRET: string;
|
|
208
309
|
SYSTEM_BOOTSTRAP_COMPLETE: boolean;
|
|
209
310
|
};
|
|
210
|
-
/**
|
|
211
|
-
|
|
311
|
+
/**
|
|
312
|
+
* Cryptographically verifies license state, validates production domain rules, salts
|
|
313
|
+
* JCHAT_COOKIE_SECRET with the HMAC license signature if verified, or randomizes it and flags
|
|
314
|
+
* SYSTEM_BOOTSTRAP_COMPLETE as false if invalid.
|
|
315
|
+
*/
|
|
316
|
+
export declare function sealServerContext<T extends Record<string, unknown>>(environmentOrConfig: T, distribution?: ApplicationDistribution, publicKeyPem?: string): T & {
|
|
212
317
|
JCHAT_COOKIE_SECRET: string;
|
|
213
318
|
SYSTEM_BOOTSTRAP_COMPLETE: boolean;
|
|
214
319
|
};
|
|
215
320
|
//#endregion
|
|
216
321
|
//#region src/index.d.ts
|
|
217
322
|
export type RuntimeEnvironment = "production" | "development";
|
|
218
|
-
export type FeatureStage = "stable" | "beta" | "experimental";
|
|
323
|
+
export type FeatureStage = "stable" | "beta" | "experimental" | "deprecated";
|
|
219
324
|
export type ReleaseChannel = "stable" | "lts";
|
|
220
325
|
export type ConfigPayload = {
|
|
221
326
|
iss: string;
|
|
@@ -240,20 +345,28 @@ export type ConfigPayload = {
|
|
|
240
345
|
};
|
|
241
346
|
};
|
|
242
347
|
export type RuntimeOptions = {
|
|
243
|
-
publicKeyPem
|
|
348
|
+
publicKeyPem?: string;
|
|
244
349
|
issuer?: string;
|
|
245
350
|
audience?: string;
|
|
351
|
+
allowOfflineGrace?: boolean;
|
|
352
|
+
lastSuccessfulCheckAt?: string;
|
|
353
|
+
gracePeriodDays?: number;
|
|
246
354
|
};
|
|
247
355
|
export type RuntimeStatus = "valid" | "unreachable-fallback" | "invalid" | "unavailable";
|
|
248
356
|
export declare function parsePayload(token: string): ConfigPayload | null;
|
|
249
|
-
export declare function
|
|
357
|
+
export declare function resolveSigningPublicKey(providedPem?: string): string;
|
|
358
|
+
export declare function verifySignature(token: string, currentDomain: string, options?: RuntimeOptions): boolean;
|
|
250
359
|
export declare function verifyEntitlement(token: string, currentDomain: string, installationId: string, options?: RuntimeOptions): boolean;
|
|
251
|
-
export declare function hasEntitlement(token: string, currentDomain: string, entitlement: string, options
|
|
360
|
+
export declare function hasEntitlement(token: string, currentDomain: string, entitlement: string, options?: RuntimeOptions): boolean;
|
|
252
361
|
export declare function isMultiSiteAllowed(token: string | undefined | null, domain?: string, options?: RuntimeOptions): boolean;
|
|
253
|
-
export declare function hasCapability(token: string | null | undefined, capability: string): boolean;
|
|
254
|
-
export declare function hasStageAccess(token: string | null | undefined, stage: FeatureStage): boolean;
|
|
362
|
+
export declare function hasCapability(token: string | null | undefined, capability: string, domain?: string, options?: RuntimeOptions): boolean;
|
|
363
|
+
export declare function hasStageAccess(token: string | null | undefined, stage: FeatureStage, domain?: string, options?: RuntimeOptions): boolean;
|
|
255
364
|
export declare function getMaxSites(token: string | null | undefined): number;
|
|
256
|
-
export declare function getReleaseChannel(token: string | null | undefined): ReleaseChannel;
|
|
365
|
+
export declare function getReleaseChannel(token: string | null | undefined, domain?: string, options?: RuntimeOptions): ReleaseChannel;
|
|
257
366
|
export declare function canCreateMultiSite(token: string | null | undefined): boolean;
|
|
367
|
+
export declare function checkHasEntitlement(entitlement: string, domain?: string): boolean;
|
|
368
|
+
export declare function checkMaxSites(domain?: string, options?: RuntimeOptions): number;
|
|
369
|
+
export declare function checkCanCreateMultiSite(domain?: string): boolean;
|
|
370
|
+
export declare function getContextPlan(defaultPlan?: string, domain?: string, options?: RuntimeOptions): string;
|
|
258
371
|
//#endregion
|
|
259
|
-
export type
|
|
372
|
+
export { APPLICATION_DISTRIBUTION, APPLICATION_DISTRIBUTIONS, type ActivationInput, type ActivationResult, ApplicationDistribution, type CheckInput, type CheckResult, IS_DEVELOPER_SANDBOX, type LocalState, isDeveloperSandbox, resolveApplicationDistribution };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
import e from"node:crypto";import t from"node:net";import n from"node:fs/promises";import r from"node:path";import i from"node:fs";import{Elysia as a}from"elysia";const o=`https://license.jchatcloud.com`,s=`https://license.jchatcloud.com`,c=`jchat-chat`,l=new Set([`localhost`,`127.0.0.1`,`::1`]),u=[`.local`,`.test`,`.invalid`,`.example`];function d(e){let t=e.trim();if(!t)throw Error(`Instance domain is required`);let n=new URL(t.includes(`://`)?t:`https://${t}`).hostname.toLowerCase().replace(/\.$/,``),r=n===`www.localhost`?`localhost`:n.replace(/^www\./,``);if(!r||r.includes(`@`)||/\s/.test(r))throw Error(`Invalid instance domain`);return{host:r,isLocalhost:l.has(r)}}function f(e){let{host:n,isLocalhost:r}=d(e);return!r&&t.isIP(n)===0&&n.includes(`.`)&&!u.some(e=>n.endsWith(e))}function p(e){try{return d(e).isLocalhost||f(e)}catch{return!1}}function m(e){try{return d(e).isLocalhost}catch{return!1}}function h(e){let{host:n,isLocalhost:r}=d(e);if(r||t.isIP(n)!==0)return null;let i=n.split(`.`);if(i.length<=2)return n;let a=new Set([`co`,`com`,`org`,`net`,`gov`,`edu`,`ac`,`sch`]),o=i.at(-1)??``,s=i.at(-2)??``;return a.has(s)&&o.length===2&&i.length>=3?i.slice(-3).join(`.`):i.slice(-2).join(`.`)}function g(e,t){try{let n=d(e).host,r=d(t).host;if(n===r||n.endsWith(`.${r}`))return!0;let i=h(n),a=h(r);return!!(i&&a&&i===a)}catch{return!1}}function _(e,t,n,r=`current-host`){let i=d(e).host;return n===`subdomain`&&t&&r===`parent-domain`?h(i)??i:i}function v(e={}){let t=r.resolve(e.cwd??process.cwd()),n=e.env??Bun.env,i=b(t);return{repoRoot:i,runtimeRoot:t,uploadsDir:x(n.JCHAT_UPLOADS_DIR,t,i,`uploads`,`uploads`),addonBundlesDir:x(n.JCHAT_ADDONS_DIR,t,i,`addons`,`addons`),addonSourceDir:i?r.join(i,`addons`):r.join(t,`addons`),migrationsDir:x(n.JCHAT_MIGRATIONS_DIR,t,i,r.join(`packages`,`db`,`migrations`),`migrations`),dataDir:x(n.JCHAT_DATA_DIR,t,i,`data`,`data`)}}function y(e){return i.existsSync(r.join(e,`package.json`))&&i.existsSync(r.join(e,`apps`))&&i.existsSync(r.join(e,`packages`))}function b(e){let t=r.resolve(e);for(;;){if(y(t))return t;let e=r.dirname(t);if(e===t)return null;t=e}}function x(e,t,n,i,a){return e?r.resolve(e):n?r.join(n,i):r.join(t,a)}function S(){return v().dataDir}const C=r.join(S(),`instance.json`);function w(){return{installationId:Bun.randomUUIDv7()}}function T(e=C){try{if(!i.existsSync(e))return``;let t=i.readFileSync(e,`utf8`);return JSON.parse(t)?.instanceToken??``}catch{return``}}async function E(e=C){try{let t=Bun.file(e);if(!await t.exists())return null;let n=JSON.parse(await t.text());if(!n||typeof n!=`object`)return null;let r=n;return r.version!==1||typeof r.installationId!=`string`||!r.installationId||typeof r.instanceToken!=`string`||!r.instanceToken?null:r}catch{return null}}async function D(e,t=C){let i=r.dirname(t);await n.mkdir(i,{recursive:!0});let a=`${t}.${process.pid}.${Bun.randomUUIDv7()}.tmp`;await Bun.write(a,`${JSON.stringify(e,null,2)}\n`),await n.rename(a,t)}async function ee(e,t=C){let n=await E(t);if(!n)throw Error(`Local license state is missing`);await D({...n,instanceToken:e,lastSuccessfulCheckAt:new Date().toISOString()},t)}function O(e){if(e)return e.length<=8?`redacted`:`${e.slice(0,4)}…${e.slice(-4)}`}async function te(e,t,i=r.join(S(),`license-events.log`)){await n.mkdir(r.dirname(i),{recursive:!0});let a=JSON.stringify({at:new Date().toISOString(),event:e,domain:O(t.domain),installationId:O(t.installationId),reference:O(t.reference)});await n.appendFile(i,`${a}\n`,`utf8`)}let k=`unavailable`,A=`startup`,j;function ne(e){j=e}function M(t,n=e.randomUUID()){k=t,A=n,t===`invalid`&&j?.()}function N(){return{status:k,reference:A}}function P(){return k===`invalid`}function F(e=Bun.env.NODE_ENV===`production`){return!!(k===`invalid`||e&&k===`unavailable`)}function I(){return Bun.env.JCHAT_LICENSE_SERVER_URL||(Bun.env.NODE_ENV===`development`||Bun.env.NODE_ENV===`test`?`http://localhost:4100`:o)}async function L(e){try{let t=e.registryEndpoint??I(),n=await(e.fetchImpl??fetch)(`${t}/api/v1/activate`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({purchaseCode:e.purchaseCode,domain:d(e.domain).host,siteSlug:e.siteSlug,domainScope:e.domainScope,provider:e.provider,routingMode:e.routingMode,installationId:e.installationId,environment:d(e.domain).isLocalhost?`development`:`production`})}),r=await n.json();return n.ok===!1||r.status!==`success`||!r.data?.token?{success:!1,message:r.message??`This license is already active on another domain. Please deactivate it first.`}:{success:!0,buyer:r.data.buyer??`Customer`,token:r.data.token,domain:r.data.domain??d(e.domain).host}}catch{return{success:!1,message:`Failed to connect to the central registry. Please try again later.`}}}async function R(e,t,n,r,i,a=`envato`,o=fetch){let s=w();try{let c=await L({purchaseCode:e,domain:t,siteSlug:n,domainScope:r,routingMode:i,provider:a,installationId:s.installationId,fetchImpl:o});return c.success?{valid:!0,buyer:c.buyer,token:c.token,domain:c.domain,state:s}:{valid:!1,error:c.message}}catch{return{valid:!1,error:`Failed to verify license. Check your internet connection.`}}}const z=new Set([`/health`,`/api/v1/license/status`]);async function B(e={}){if(!(e.isPrimaryWorker??(!Bun.env.WORKER_ID||Bun.env.WORKER_ID===`0`)))return;let t=e.domain??`localhost`;if(e.onInvalidate&&ne(e.onInvalidate),m(t)){M(`valid`);return}let n=await E();if(!n?.instanceToken){M(e.isBootstrapComplete?`valid`:`unavailable`);return}if(e.signingKey&&!Z(n.instanceToken,t,{publicKeyPem:e.signingKey})){M(`invalid`,`domain-mismatch`);return}if(await W(e)>(m(t)?1/0:$(n.instanceToken))){M(`invalid`,`multi-site-unauthorized`);return}M(`valid`)}function V(e={}){B(e);let t=e.allowedPaths??z;return new a({name:`jchatRuntime`}).derive({as:`global`},()=>({runtimeStatus:N()})).onBeforeHandle({as:`global`},async({request:n,set:r})=>{if(n.method===`POST`&&n.url.includes(`/owner/sites`)){let t=e.domain??`localhost`,n=await E(),i=m(t)?1/0:$(n?.instanceToken);if(await W(e)>=i)return r.status=403,{status:`license_restricted`,message:`Site creation limit reached (${i} site${i===1?``:`s`} allowed on your license). Please upgrade your license to create additional sites.`,reference:`multi-site-unauthorized`}}return U(n,r,t)})}function H(e,t,n){return n.has(e)?!0:t===`invalid`?e===`/install/upgrade-license`:t===`unavailable`?e===`/install`||e.startsWith(`/install/`)||e.startsWith(`/assets/`)||e.startsWith(`/_`)||e===`/favicon.ico`:!1}function U(e,t,n=z,r=Bun.env.NODE_ENV===`production`){let{status:i,reference:a}=N(),o=e.headers.get(`host`)?.split(`:`)[0]?.toLowerCase();if(o&&f(o)&&m(Bun.env.JCHAT_DOMAIN||`localhost`))return t.status=403,{status:`license_invalid`,message:`Public domain deployment requires a valid license matching this domain.`,reference:`public-host-requires-license`};if(i!==`valid`&&i!==`unreachable-fallback`&&(r||i!==`unavailable`)&&!H(new URL(e.url).pathname.replace(/\/+$/,``)||`/`,i,n))return t.status=503,i===`unavailable`?{status:`license_unavailable`,message:`This JChat installation is not activated. Please complete the installation.`,reference:a}:{status:`license_invalid`,message:`This JChat installation is disabled because its license is invalid.`,reference:a}}async function W(e){let t=Bun.env.DATABASE_URL;if(t&&typeof Bun<`u`&&`SQL`in Bun)try{let e=new Bun.SQL(t),n=await e`SELECT count(*)::int as count FROM sites WHERE deleted_at IS NULL`;if(await e.close(),n?.[0]?.count!==void 0&&n[0].count!==null)return Number(n[0].count)}catch{}if(e.getSiteCount)try{return await e.getSiteCount()}catch{return 0}return 0}function G(t,n=`production`,r){let i={...t},a=!0;typeof i.JCHAT_COOKIE_SECRET!=`string`&&(i.JCHAT_COOKIE_SECRET=``);try{let t=T();if(n===`developer-sandbox`)a=!0;else if(!t)a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`));else{let o=typeof i.JCHAT_DOMAIN==`string`?i.JCHAT_DOMAIN:void 0,s=typeof i.NODE_ENV==`string`?i.NODE_ENV:void 0;if(!o||!p(o)||s===`production`&&!f(o))throw Error(`A valid installed JChat public domain is required for production deployments.`);if(!Z(t,o||`localhost`,{publicKeyPem:r}))a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`));else{let r=X(t);if(s===`production`&&r?.environment===`development`)a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`));else{let n=t.split(`.`),a=n[2]||``;if(a&&r){let t=e.createHmac(`sha256`,a).update(`${n[0]}.${n[1]}:${r.domain}:${r.installationId}`).digest(`hex`);i.JCHAT_COOKIE_SECRET+=t}}}}}catch{a=!1,n===`production`&&(i.JCHAT_COOKIE_SECRET=e.randomBytes(64).toString(`hex`))}return i.SYSTEM_BOOTSTRAP_COMPLETE=a,i}function re(e,t=`production`,n){return G(e,t,n)}function K(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function q(e){return typeof e==`string`&&e.trim().length>0}function J(e){if(!e)return null;try{return JSON.parse(Buffer.from(e,`base64url`).toString(`utf8`))}catch{return null}}function Y(e){let t=e.split(`.`);if(t.length!==3)return null;let n=J(t[0]);return!K(n)||n.alg!==`RS256`||n.typ!==`JWT`?null:{alg:`RS256`,typ:`JWT`}}function ie(e){if(!K(e))return null;let{iss:t,aud:n,licenseId:r,domain:i,buyer:a,installationId:o,plan:s,entitlements:c,purchaseProvider:l,environment:u,routingMode:p,iat:m,exp:h,isTrial:g,stages:_,channel:v,limits:y}=e;if(!q(t)||!q(n)||!q(r)||!q(i)||!q(a)||!q(o)||!q(s)||!Array.isArray(c)||!c.every(q)||l!==`envato`&&l!==`jchat`||u!==`production`&&u!==`development`||p!==`path`&&p!==`subdomain`||typeof m!=`number`||!Number.isSafeInteger(m)||m<0||h!==void 0&&(typeof h!=`number`||!Number.isSafeInteger(h)||h<0)||g!==void 0&&typeof g!=`boolean`)return null;let b=new Set([`stable`,`beta`,`experimental`]),x;if(_!==void 0){if(!Array.isArray(_)||!_.every(e=>typeof e==`string`&&b.has(e)))return null;x=_}let S=new Set([`stable`,`lts`]),C;if(v!==void 0){if(typeof v!=`string`||!S.has(v))return null;C=v}let w;if(y!==void 0){if(!K(y)||typeof y.maxSites!=`number`||!Number.isSafeInteger(y.maxSites))return null;w={maxSites:y.maxSites,...typeof y.maxRoomsPerSite==`number`&&Number.isSafeInteger(y.maxRoomsPerSite)?{maxRoomsPerSite:y.maxRoomsPerSite}:{}}}let T;try{T=d(i)}catch{return null}return u===`development`&&!T.isLocalhost||u===`production`&&!f(i)?null:{iss:t,aud:n,licenseId:r,domain:i,buyer:a,installationId:o,plan:s,entitlements:c,purchaseProvider:l,environment:u,routingMode:p,iat:m,...h===void 0?{}:{exp:h},...g===void 0?{}:{isTrial:g},...x===void 0?{}:{stages:x},...C===void 0?{}:{channel:C},...w===void 0?{}:{limits:w}}}function X(e){let t=e.split(`.`);return t.length!==3||!t.every(Boolean)||!Y(e)?null:ie(J(t[1]))}function Z(t,n,r){if(!t||t===`YOUR_LICENSE_KEY_PLACEHOLDER`)return!1;try{let i=t.split(`.`);if(i.length!==3||!Y(t))return!1;let a=X(t);if(!a)return!1;let o=r.issuer??Bun.env.JCHAT_LICENSE_ISSUER??`https://license.jchatcloud.com`,s=r.audience??Bun.env.JCHAT_LICENSE_AUDIENCE??`jchat-chat`;if(a.iss!==o||a.aud!==s)return!1;let c=d(n).host,l=d(a.domain).host;if(c!==l&&(a.routingMode!==`subdomain`||!c.endsWith(`.${l}`)))return!1;let u=Buffer.from(`${i[0]}.${i[1]}`),f=Buffer.from(i[2].replace(/-/g,`+`).replace(/_/g,`/`),`base64`);return e.verify(`sha256`,u,r.publicKeyPem,f)}catch{return!1}}function ae(e,t,n,r){if(r&&!Z(e,t,r))return!1;let i=X(e);return i?i.installationId===n:!1}function oe(e,t,n,r){return Z(e,t,r)?X(e)?.entitlements?.includes(n)??!1:!1}function se(e,t=`localhost`,n){if(n&&(!e||!Z(e,t,n))||!e)return!1;let r=X(e);return r?r.environment===`development`&&m(t)?!0:$(e)>1||(r.entitlements?.includes(`site.create.multi`)??!1):!1}function Q(e,t){return e?X(e)?.entitlements?.includes(t)??!1:!1}function ce(e,t){return t===`stable`?!0:e?(X(e)?.stages??[`stable`]).includes(t):!1}function $(e){return e?X(e)?.limits?.maxSites??1:1}function le(e){return e?X(e)?.channel??`stable`:`stable`}function ue(e){return $(e)>1||Q(e,`site.create.multi`)}export{c as DEFAULT_LICENSE_AUDIENCE,s as DEFAULT_LICENSE_ISSUER,o as DEFAULT_LICENSE_SERVER_URL,C as DEFAULT_STATE_PATH,L as activateRegistry,ue as canCreateMultiSite,w as createIdentity,b as findRepoRoot,$ as getMaxSites,le as getReleaseChannel,h as getRootDomain,N as getRuntimeStatus,Q as hasCapability,oe as hasEntitlement,ce as hasStageAccess,R as installAndActivate,p as isAllowedConfiguredDomain,P as isApplicationDisabled,m as isLocalhostDomain,g as isMatchingDomain,se as isMultiSiteAllowed,f as isPublicDomain,F as isRuntimeBlocked,V as jchatRuntime,re as loadServerContext,d as normalizeDomain,X as parsePayload,E as readState,T as readTokenSync,te as recordAudit,_ as resolveActivationDomain,S as resolveDataDir,v as resolveRuntimePaths,G as sealServerContext,M as setRuntimeStatus,B as startRuntimeSupervisor,ee as updateInstanceToken,ae as verifyEntitlement,Z as verifySignature,D as writeState};
|
|
1
|
+
const e=K;(function(e,t){let n=K,r=e();for(;;)try{if(-parseInt(n(452,`[FMn`))/1*(parseInt(n(1197,`g[G%`))/2)+parseInt(n(1532,`7#Yu`))/3+-parseInt(n(1054,`6W9l`))/4+-parseInt(n(891,`kobt`))/5*(parseInt(n(947,`tI[S`))/6)+-parseInt(n(1227,`7DZY`))/7+parseInt(n(1506,`g[G%`))/8*(-parseInt(n(610,`&hD&`))/9)+parseInt(n(462,`tI[S`))/10*(parseInt(n(565,`SeOF`))/11)===t)break;r.push(r.shift())}catch{r.push(r.shift())}})(L,269515);import{APPLICATION_DISTRIBUTION as t,APPLICATION_DISTRIBUTIONS as n,IS_DEVELOPER_SANDBOX as r,isDeveloperSandbox as i,resolveApplicationDistribution as a}from"./distribution.mjs";import o from"node:crypto";import s from"node:net";import c from"node:fs";import l from"node:fs/promises";import u from"node:path";import{Elysia as d}from"elysia";const f=`https://li`+e(1511,`s5L$`)+e(1146,`L&vX`),p=e(632,`tI[S`)+e(645,`jRSt`)+`tcloud.com`,m=`jchat-chat`,h=[e(1432,`Fswn`),e(697,`BEaJ`)],g=e(701,`]kS&`),_=e(622,`oqyn`),v=[e(569,`Je()`)+e(1194,`^^j9`)+e(1427,`L&vX`)+e(1413,`U]y(`)+e(675,`Z@ID`)+e(811,`Z@ID`)+e(467,`@oTl`),e(563,`s5L$`)+e(885,`!7Yu`)+e(437,`1Zwv`)+e(1085,`s5L$`)+`8r53RnvS6m`+e(964,`[FMn`)+e(684,`okI)`),`g1SaRCJDoS`+e(879,`jJVg`)+e(527,`Fswn`)+e(1078,`X*[W`)+e(493,`XOpo`)+e(770,`XOpo`)+`ATaj`,`PcjSeprfKQ`+e(1027,`6!o6`)+e(1128,`&hD&`)+e(913,`BEaJ`)+`0edaMhqJi1`+e(1480,`Fswn`)+e(1414,`P50[`),`QRhEQGjqbj`+e(513,`X*[W`)+`z+PRFXiTHg`+e(406,`zh9C`)+e(1398,`sILL`)+e(746,`])wM`)+e(927,`L&vX`),e(722,`XOpo`)+e(779,`BEaJ`)+e(1307,`SeOF`)+`vHarVJXRRq`+e(626,`tI[S`)+e(472,`6!o6`)+e(1042,`L&vX`),`rwIDAQAB`];function y(){let t=e,n={ngjHm:function(e,t){return e!==t},RyTmt:t(834,`ynhv`)+`+$`},r=function(){let e=!0;return function(t,n){let r=e?function(){let e=K;if(n){let r=n[e(1424,`Z@ID`)](t,arguments);return n=null,r}}:function(){};return e=!1,r}}()(this,function(){let e=t;if(!n[e(661,`NMHr`)](r[e(714,`zh9C`)]()[e(1217,`sILL`)]()[e(704,`GD][`)](`
|
|
2
|
+
`),-1))return r[e(1102,`XOpo`)]()[e(1426,`mcuw`)](n[e(1010,`zh9C`)])[e(815,`&G9b`)]().constructor(r)[e(1215,`tycJ`)](n[e(608,`tI[S`)])});r();let i=g+` `+h[t(893,`zh9C`)](` `)+`-----`,a=_+` `+h[t(725,`6!o6`)](` `)+`-----`;return i+`
|
|
3
|
+
`+v[t(388,`n9Aq`)](`
|
|
4
|
+
`)+`
|
|
5
|
+
`+a}const b=y(),ee=new Set([e(669,`s5L$`),e(935,`Z@ID`),`::1`]),x=[e(1491,`jJVg`),e(1140,`Fswn`),e(596,`okI)`),e(1297,`6W9l`)];function S(t){let n=e,r={CnaPF:n(1291,`mcuw`)+n(1468,`sILL`)+n(435,`P50[`),yBuiz:n(1162,`Njfh`),HcvRZ:n(1218,`zdSq`)+n(946,`&G9b`),JnRbx:`localhost`,ywlQA:n(1304,`&hD&`)+n(1185,`dx*c`)+n(1419,`jJVg`)},i=t[n(740,`s5L$`)]();if(!i)throw Error(r[n(1095,`&G9b`)]);let a=new URL(i[n(1421,`])wM`)](r.yBuiz)?i:n(1110,`sILL`)+i)[n(498,`Z@ID`)].toLowerCase().replace(/\.$/,``),o=a===r[n(455,`kYJC`)]?r.JnRbx:a[n(429,`S5Cf`)](/^www\./,``);if(!o||o[n(854,`U]y(`)](`@`)||/\s/[n(1471,`@oTl`)](o))throw Error(r[n(1329,`Njfh`)]);return{host:o,isLocalhost:ee[n(1201,`@oTl`)](o)}}function C(t){let n=e,r={OVjDu:function(e,t){return e(t)},FbSiy:function(e,t){return e===t}},{host:i,isLocalhost:a}=r[n(1507,`7#Yu`)](S,t);return!a&&r[n(1009,`SeOF`)](s[n(543,`!7Yu`)](i),0)&&i[n(529,`kYJC`)](`.`)&&!x[n(1233,`!7Yu`)](e=>i.endsWith(e))}function w(t){let n=e,r={WAjXE:function(e,t){return e(t)}};try{return S(t).isLocalhost||r[n(433,`dx*c`)](C,t)}catch{return!1}}function T(t){let n=e,r={udeER:function(e,t){return e(t)}};try{return r[n(1055,`okI)`)](S,t)[n(1310,`jJVg`)+`t`]}catch{return!1}}function E(t){let n=e,r={UZVkS:function(e,t){return e(t)},nJhoX:function(e,t){return e<=t},Xftiq:n(861,`kYJC`),CxDnI:n(518,`zdSq`),JOLmw:n(1469,`7DZY`),LNwgI:n(948,`BEaJ`),DPeQl:function(e,t){return e===t},wQaLY:function(e,t){return e>=t}},{host:i,isLocalhost:a}=r[n(1418,`kobt`)](S,t);if(a||s.isIP(i)!==0)return null;let o=i[n(1383,`Fswn`)](`.`);if(r[n(1355,`Fswn`)](o.length,2))return i;let c=new Set([`co`,r[n(1137,`[FMn`)],n(870,`jl*C`),r.CxDnI,r.JOLmw,`edu`,`ac`,r[n(932,`&G9b`)]]),l=o.at(-1)??``,u=o.at(-2)??``;return c[n(782,`6W9l`)](u)&&r[n(402,`zdSq`)](l[n(516,`kobt`)],2)&&r.wQaLY(o[n(1131,`])wM`)],3)?o[n(665,`zh9C`)](-3)[n(1365,`mcuw`)](`.`):o.slice(-2)[n(1392,`GD][`)](`.`)}function D(t,n){let r=e,i={kHOJC:function(e,t){return e(t)},NYhYL:function(e,t){return e(t)},cOyOo:function(e,t){return e===t},FIABb:function(e,t){return e(t)},JOWAw:function(e,t){return e===t}};try{let e=i[r(873,`7DZY`)](S,t)[r(926,`Z@ID`)],a=i[r(1168,`ynhv`)](S,n)[r(926,`Z@ID`)];if(i.cOyOo(e,a)||e[r(1294,`HZT$`)](`.`+a))return!0;let o=i[r(1290,`tycJ`)](E,e),s=i[r(912,`Njfh`)](E,a);return!!(o&&s&&i.JOWAw(o,s))}catch{return!1}}function te(t,n,r,i=e(896,`n9Aq`)+`st`){let a=e,o={jnjuh:function(e,t){return e(t)},RVCxW:a(1199,`1Zwv`),NYjvd:`parent-dom`+a(391,`BEaJ`),Rfqfp:function(e,t){return e(t)}},s=o.jnjuh(S,t)[a(1368,`ynhv`)];return r===o[a(952,`1Zwv`)]&&n&&i===o.NYjvd?o[a(376,`GD][`)](E,s)??s:s}function ne(t={}){let n=e,r={quuax:n(1231,`n9Aq`),AJoPo:n(1465,`Fswn`),QJOGV:function(e,t,n,r,i,a){return e(t,n,r,i,a)},vHIwe:n(915,`BEaJ`),WbDRY:function(e,t,n,r,i,a){return e(t,n,r,i,a)},CDScg:`addons`,GzvUe:function(e,t,n,r,i,a){return e(t,n,r,i,a)},fcOYK:n(1050,`g[G%`),ZFVQT:n(1349,`dx*c`),bmiFU:function(e,t,n,r,i,a){return e(t,n,r,i,a)}},i=u.resolve(t[n(1143,`^^j9`)]??process[n(1247,`XOpo`)]()),a=t[n(614,`HZT$`)]??Bun[n(796,`Fswn`)],o=O(i),s=a[n(1410,`mcuw`)]===r.quuax?u[n(725,`6!o6`)](r.AJoPo,r[n(587,`tI[S`)]):r[n(688,`Je()`)];return{repoRoot:o,runtimeRoot:i,uploadsDir:r.QJOGV(k,a[n(1309,`tI[S`)+n(532,`Je()`)],i,o,r[n(819,`Njfh`)],r[n(1139,`&G9b`)]),addonBundlesDir:r[n(1313,`rSET`)](k,a[n(1499,`mcuw`)+n(602,`s5L$`)],i,o,r[n(729,`kobt`)],r[n(384,`HZT$`)]),addonSourceDir:o?u[n(1384,`@oTl`)](o,n(1093,`jJVg`)):u[n(635,`BEaJ`)](i,r.CDScg),migrationsDir:r[n(1101,`Njfh`)](k,a[n(1341,`dx*c`)+n(1391,`1Zwv`)],i,o,u[n(1278,`Njfh`)](r[n(1187,`sILL`)],`db`,r[n(1501,`g[G%`)]),r[n(1259,`BEaJ`)]),dataDir:r[n(1148,`&G9b`)](k,a.JCHAT_DATA_DIR,i,o,s,s)}}function re(t){let n=e,r={FVYah:n(559,`P50[`),arOGP:n(1205,`L&vX`)};return c[n(1234,`])wM`)](u[n(1273,`1Zwv`)](t,n(984,`L&vX`)+`on`))&&c[n(430,`^^j9`)](u.join(t,r[n(576,`zdSq`)]))&&c[n(1077,`oqyn`)](u[n(557,`&hD&`)](t,r[n(1145,`zdSq`)]))}function O(t){let n=e,r={lbvlL:function(e,t){return e(t)},yVkXF:function(e,t){return e===t}},i=u[n(1508,`7Qr(`)](t);for(;;){if(r[n(480,`BEaJ`)](re,i))return i;let e=u[n(1177,`rSET`)](i);if(r[n(450,`sILL`)](e,i))return null;i=e}}function k(t,n,r,i,a){let o=e;return t?u[o(827,`[FMn`)](t):r?u[o(899,`NMHr`)](r,i):u.join(n,a)}function A(){let t=e;return{UiflH:function(e){return e()}}[t(1485,`SeOF`)](ne)[t(1149,`Je()`)]}function j(){let t=e;return u.join({dHkwT:function(e){return e()}}[t(900,`oqyn`)](A),t(507,`SeOF`)+t(849,`@oTl`))}const ie=j();function ae(){let t=e;return{installationId:Bun[t(398,`kYJC`)+`v7`]()}}function M(t=j()){let n=e,r={HVNFK:n(731,`S5Cf`),phVil:function(e,t){return e!==t},argAb:n(660,`$2Ce`),ZkGXq:function(e,t){return e!==t},YHheO:`string`};try{if(!c[n(1277,`n9Aq`)](t))return null;let e=c[n(1161,`SeOF`)+`nc`](t,r[n(390,`Fswn`)]),i=JSON[n(949,`zh9C`)](e);if(!i||r.phVil(typeof i,r.argAb))return null;let a=i;return r.phVil(a[n(1498,`sILL`)],1)||r.ZkGXq(typeof a[n(570,`7DZY`)+n(500,`s5L$`)],r[n(385,`!7Yu`)])||!a.installationId||typeof a[`instanceTo`+n(666,`7DZY`)]!==r[n(483,`^^j9`)]||!a[n(720,`1Zwv`)+n(542,`HZT$`)]?null:a}catch{return null}}function N(t=j()){let n=e,r={WVDQS:function(e,t){return e(t)},nmJPi:n(681,`s5L$`)},i=r[n(1058,`7Qr(`)](M,t);if(i?.[n(1436,`okI)`)+n(546,`7Qr(`)])return i[n(808,`Z@ID`)+n(794,`kYJC`)];try{if(!c.existsSync(t))return``;let e=c[n(1417,`1S73`)+`nc`](t,n(1006,`NMHr`)),i=JSON[n(1106,`jl*C`)](e);return typeof i?.[n(1209,`dx*c`)+`ken`]===r.nmJPi?i[n(757,`]kS&`)+n(1210,`sILL`)]:``}catch{return``}}async function P(t=j()){let n=e,r={tJqZa:function(e,t){return e!==t},OPTfr:n(1038,`GD][`),ntzXT:`string`};try{let e=Bun[n(373,`Z@ID`)](t);if(!await e[n(1044,`oqyn`)]())return null;let i=JSON[n(1047,`1Zwv`)](await e.text());if(!i||r[n(975,`Je()`)](typeof i,r[n(736,`BEaJ`)]))return null;let a=i;return a[n(515,`s5L$`)]!==1||r.tJqZa(typeof a[n(881,`Njfh`)+n(387,`BEaJ`)],r[n(802,`kYJC`)])||!a[n(1040,`SeOF`)+n(1238,`oqyn`)]||typeof a[n(1202,`1S73`)+n(728,`zh9C`)]!==r.ntzXT||!a[n(1065,`[FMn`)+`ken`]?null:a}catch{return null}}async function oe(t,n=j()){let r=e,i=u[r(1281,`6!o6`)](n);await l[r(1029,`dx*c`)](i,{recursive:!0});let a=n+`.`+process[r(698,`Z@ID`)]+`.`+Bun[r(753,`7Qr(`)+`v7`]()+r(917,`jJVg`);await Bun[r(1359,`&hD&`)](a,JSON.stringify(t,null,2)+`
|
|
6
|
+
`),await l[r(1122,`U]y(`)](a,n)}async function F(t,n=j()){let r=e,i={ehXeD:r(830,`Je()`)+r(1124,`kobt`)+r(581,`ynhv`),fuBHs:function(e,t,n){return e(t,n)}},a=await P(n);if(!a)throw Error(i[r(745,`@oTl`)]);await i[r(1169,`&hD&`)](oe,{...a,instanceToken:t,lastSuccessfulCheckAt:new Date()[r(842,`g[G%`)+`g`]()},n)}function I(t){let n=e,r={ATvBY:function(e,t){return e<=t},GgJmf:n(938,`[FMn`)};if(t)return r[n(476,`jJVg`)](t[n(845,`SeOF`)],8)?r[n(1299,`!7Yu`)]:t[n(1473,`1S73`)](0,4)+`…`+t[n(1470,`jRSt`)](-4)}function L(){let e=`W6DTzSkupq.ESoiumkrWR0HEmob.zmo6WQvcWPK.rSkMW4j9W4z6.FSkXW58YW64fWQuOxba.WO/dKGbw.euldSgmw.dIFdMSoudq.ddeDWRJcRWNcNSkyW5lcUa.WRztu8k6oG.WPybWOm.hgPwW43cKa.ASkTW7ebqSk/WQFcLq.W5i3WPS.WQ3dSCkfwCkud8kgctpdGW.vCoZWQlcKmo+.lmo8W5tdOSkgnSkpDa.r8oIDCkMWOem.hrSMiW7dTrVcGmoAeG.rd/dTmoxg1z4W6hcG8kE.W5FcV8ogWPnL.ArtdIq.WPD7Bmk8.y8kdW6rqW7TC.xmobFCkIWQS.BHNdMmkZWOZcUmocW53cUCk5.W6RdMtJcNqS.i8oNW4NdTCktmCkdFWeQ.WQxdQCox.gHmyWP3cIa.W5C1DCozWQW.dxpdT2SDEZVdTmo6WO0.W7CbWRaEW4iJW5m2WPZcOq.g8oIWQlcLCkOp8ognsaH.WPSnWOnNygG.a8ketCoXW4ZdPW.smk1WR58lmoFpSkOWR7cIq.WRZdLmkRhmkb.pJGpWQqx.uSo3WPHtWOa.WRbRF8k7cG.W44ZsCoBWOPAWQT1WOnD.W6ObACoYWOu.CGpdSmk6WP/dTmoBW5RcVmkT.W4vot8k6i8oOW7JdT2ZdMq.WOhdUSkhACkF.W7qfC8o5WRzKWPTFWO95.b1ddMmkivW.W5GgfSouEa.eSoaWQlcM8kurM3dJCkgWQ4.W7efkCkzvW.W64QxSozWPfEW7H0WQvt.xmoWm8oNW70.WQRdL8oTa18.WOqbWPLLoMpdJmoHFmky.WOVdLCk4iCkYWPi.v8k3W5j9.W64+c8on.WPfCWODpg8o0kmkRW53cMa.W4NdKdBcJbmcWOnIW4mn.r8kjyW.gNRdRNOD.kSo+lsm.bay8WQi/.dtGvWR/cJa.cCosWP/cNSkDtMBdMSkgWQ4.eCohWR9BlW.W5yYt8oiWPebW7C/WQXB.WQbZWPPuoG.rdBdOSopf0C4W7ZdHmkd.rCogWOfXWPlcGCoFnuWb.yCkxWOLYWPLtz8oPwmkA.WRRdKSksBmkN.r8oqwSkFWOm.fmoUESkNWPyfwSo7ba8.obWuWPqq.WP/dQSkcvSk5.efBdS8kysa.kJPDWRmuW4JdUCkhmSoc.bCo7W6dcQ8kW.WOldVIffW6i.WPbEs8kAca.W5KeWOjJDwW.W5vsW41jENBdN8oODmki.WRtdKSkTW5RdI3NdNCohW5iA.iqeoWPS2.W6/cJmkzW7NcGua.WQFdKxZcHwSnW5TP.WORdKCo4phS.W5ddMcxcLHrnWOq.FSoexmkvWRy7D8otitq.WQ1pBbBcIa.mrBdLCoOkG.nCkJt8oKW4i.DmoZwW.W5OvEmoYW5O.WPFdJ8kqkmkHWOdcGg3dImkH.wMBdOmoqkx4EW7C.W7KSC8osWOe.W6ywW40JD8otWRe.W5OvESo3WPJdUc1itG.W6uAt8kJFxTgxSkznq.bCkpvCoJW53cPGWApmor.egTQW4C.v8oRWRpcKSoPlmkB.W5lcTCk1W4JcOG.WP3dRqO.WQpdRmkkgSkDnSkoeI7cJa.W7tcL8kqW77cGLTBeW8.cZOyWRNcJWNcNmkyW6u.CSkKW7DjW7y.ow/dJLyF.fCkAv8o5W4W.WPzNyCk0d8ogqdeN.ySoAyd99.umoYoSoyW6S.WRKNWQLfs0xdSmos.fSosWONcQCkBv0hdKa.W4bUyaGeW6dcQc3dQ8k3.W78hW500xG.WQBdRmkhw8kDn8kmcc4.W41cxSk2o8o+.W4hcOmoDWR9DW64.WODil8kGW43cPhPyxeOmW7pdTW.wmoqWPzGWOJcICooiq.uSoQWR7cMq.W5pdKZBcKXXlWOzWWOet.W5HKwmk6ha.nmoWW7pcJmkv.wXVdQSkUWPe.W6mfW7akCW.WRzczXFcQG.FCo2WR/cImoK.zSkTW6qerCk0WQZcI8onvW.rmoZWQzMzCoAm8oPWQpcJW.E8oUW7qcrCkSWQpcLmomxa.FNhdNvhdJG.pSofjCoFW60.W4bKnv4.W7WEgCky.WRdcRCk3WPC.WOmRWQTgEq.E8kaW6HAW7K.W7izpG.fMTaW4/cKCoVpfy.WPbGyqBcHaq+E8knWQS.c8kyDSo8W7i.W7mVpSoIva.kvRdM8kKFa.FKBdK8kBFJbNhghdRa.y8o8qY1iW4GryCkYWPO.DmoZwsbtW4KHwCkEWRa.W58uASoIWPxdVc5AtLS.W5Kuumo4WOldSs5sxLm.W4xcQCkrW4RcIa.eCoMWRRcGmk0.d8o4W6hcHSkqW4tdNmoX.WRVcSSkUWPW9tHRdO8oAdW.W53cSSojWOz4W6KuhaBdUG.rmk6W7OQrW.dg1cWPhdKCk9.W7GLW5W7tW.m14DW7qq.WQ/dKCkBW5tdIq.W5i4uSkQsq.aSo3W7BcIW.W60RhSohumot.dSoMW6pcJmkt.WPpcGCkGkCkIWPpdJg3dGSk0.aCoNWRT7nW.W4BcU8oVWR9AW7qzgq.W4RcV8o0WQ9W.cgpdO3amsdVdTmo3.oSoRmt5EWPe.umoMWQlcJSoIkSkwBIyT.W7GsW404smoqWRDpgW0.WQaNWR9luvldOConwq.W5xdOrzrW7GSW6rEka.n8ochSoU.zstdTCk7WQu.CCoTWRngWRlcNmoLbwOH.WRldOSorjK8oba.W4XFrCkSoCoOW47dKwVdLa.W4zfrSk6lSoV.ncuqeq.pCoMEvaV.BmkpDSk5o2BdK8kzlmoE.WP/dUq1lW74OW6W.xCkIWOy+.kmoNWRT9aCosFCoLWRxcTG.wmoOD8k1WO4mwCoKeq.xmo7AcXO.F8oXWQfrWRBcOmoSfNCN.W7SXcq.qCoPCmkXWOqnwmoYaq.W6TaECkRkW.W6tcM8kKW43cQW.WQNcTSk/WOSNwqVdO8ocaG.rCkTp8oFW5pdQvJcU8ksBa.FColgCo2W5xdQKe1W4FcJG.W7m0g8omtG.iseiWPe0.W5/dQZZcVtS.gSoFWP3cLCkfBeldHCkEWQi.WPeFDCknwxyP.j8ofWQvcea.emo3W67cG8kb.wCo+wXT9.W7Hcxt05W5hcIY/dICks.aZhdSa.WOJcSmk8WOOA.dJpdQa.WPlcTCoFWR9bW6SwcGFdTa.ymk/W5j5WPj8xmoLxCkL.W5JcRNBcIxKYW4z8.W5muBW.e8kesCo1W5NdQW4ynSoC.W6RdSdlcPbC.W5VcU8osW6TbW65xea3dPa.cColo2C.w8oPxCkW.W4usEmkKW4hcPG.eGuNibddSrRcLq.BHNdMmk2WOxdSa.v8oSW6jbWRBcRCoofMCu.gJSrWR3cGa4.gCotyweeW54.dx/dOhWlBa.WRy8WPTctq.W51VxbG.W5qYfmomvG.WO3dU0RcQuiT.W78sjSkqAq.gN/dS3XvFJ/dOCoRWPW.WOfBt8k8ohSpwCkxDW.W7bVrmk6aG.tSoKWR/cKmot.WQpdQmoujfO.WQXztcdcVMefqW.W5ylqSkUBhO.d8kesmoKW5NdPaOyimoz.kL3dL8kvDq.WPbFWPT+gq.WPBdPXTdW6aLW6DbCW.W5NcSmk9W7BcIW.ksmZW7KvW7FcU8kSd8oA.W4f1DaGyW70.o0r3W6lcPSokcMaMWPu.WRjqD8kila.W5BcSCooWQjEW7HxfqFdQq.xmoSWQhcImoPkmkAFW.bcqCWQac.cCkeCSo0.W70dtmo+WOq.ltxdOSonc1yYWRldIa.mZWfaY4.nwldUmk2vG.W606x8oxwCovc0NcVCkR.m8o+WQfEma.WQpdRCkxtSkqmCkahNtdHG.WPr9DmkPia.W47dNcq.thBdULFdUa.WPzeWO1fhSoF.g2PoW4lcJCoL.f8ogWPddJSkdArZdT8k5WQy.W6CvW4SGwmonWRfpft8.emkpsCoJW5hdPWG.WO9SA8k2hCoh.WOZdRxtcS2q.W6/cNmka.W4zOyX0zW6S.W7CFpCkDtmkp.W7yEjmkvuCkncSkECGm.aCo7WR8.WO14qqe.WPRdQLNcTee7.cuRdT8k1AG.oJJdSSoQkq.EmkxWP96W4Plz8kZdCk7.sxpdQw0rBdBdPCoYWOW.EmoZtIvsW4eHrW.omo8W5tdTCkBmSkfvsuX.fCo/W7BcJ8kSW4q.WQnswZRcPw0z.d8oLW5hcI8kdW4xdSmoSW4lcNW.WPhdKmoMkh4.W4Cus8kUCxe.WOmaWOjYFxRdM8oG.W6yEmCkkrmkia8ksDqe.s8kGW797W5W.aSkDW5hcQSkErKxdKmkxW6S.kfrIW5NcIG.WR7dM8kJlSkY.vLddOa.dSo+bmoQ.WO5OFCkdbSoaqYCtya.WO9gBCkAcG.W78wW5a.WPhcR8k1WPSN.WRpdS8oaofOEnJFdTSoc.dCo7WRPGjmoqoSoPWQpcKW.WRZdMSkPW6xdH3NdNCkKW4Kh.r8oZzSk9WOequ8oZ.W48AvCk7s2OfsCktzG.WPVdQ1BcTf0LW7bWWOzF.B8kGC8kfeq.aWy+WQuz.amokW7ldGmkMamkSuXya.DWldKmk6.a8ketq.WPVdUaHr.kcuiace.W4pdKYhcJa9nWOr8WOyr.DCofWQPGWP8.hmkgF8o4WONdGILlBmot.EapdJW.W7VcSmoqcmodACottbJdRYjWsWS.W4fwwZCm.irpdI8o4kNSuW53cPCkH.W5uPACoFWOS.WQ9FqsFcQe4kw8k9WQK.sCkizSkOnhNdMSoyk8os.EmoZxJ1gW4KOvCkpWRC.emo8WQz6zCoym8o4WRVcLq.WPbBWO1afCoknq.wmoSWRhcNCoRiCkyAtC.x8oLWRBcLSof.W4FcR8kTW7RcJa.WP3dJ8kQiW.WQ/dISkVW5pdQxJdMCkvW4ji.dSoJo8oBW47dTvu.hmowWOm.WPThW4jbgCoykmk3W5dcNa.rCofWRfWWRq.W5TYrq4eW6pcRHldVCke.DSkTW7yiuCkYWQZcG8om.wmoSWRhcNCoRhCkyCsyN.W4lcPSotWQ9DW74dfW3dVG.WPJdQ03cOuW.eSoZzhie.W6SXg8oawSoFcKlcTW.W48fxmo6WOW.gJekWRNcHq/cGSkqW6tcRW.WRRdJ3q.WRldOSohl1WidZ3dPW.a8kCxSoIW4e.WRtdQmokl0a.zmoGW5tdT8ktm8kjFG.hmk3W5vVW5DRxCkV.qSohtHXe.eSoaWRdcImkaqL0.fSoqWPnMmW.z8oWvcXp.kmk5zmouW7hdMG.BSkIW6yox8kYWQZcGCkitq.luBdNCksDZS.fCoJW6dcJSkkW43dMmoRW5G.W7xdJtpcVZq.m2XaW4BcISo4paulWQu.WRVdP2ZcRua.kL3dR8keAtCPcW.l17cJmoJW5dcPCkgW7hcQSknoKnW.uSoIymk3WOOTw8oNcq.W6dcICkeW7FcJvfuaGj3.k8oQimonW6m.wfVdUa.WOpdISkSW6BdQa.cCowWOhcLSktqee.CmkLW6CbDmkZWQFcHCodEa.W5C2WPWVW6XqW7igWRpcLG.WOPcWRTlhG.ghCFWRupWO/cKSo3W5FdVG.omoDW5/dHSka.WPr/W5HSWQy1W44N.W4buySk+aW.qmoQWR3cKSkNl8kwCY8S.W5e9WOy1.WPJcSvhcSv8WW71fWRje.W4dcTSovWQ9mW7Gz.W6aemCkqsCkec8otxs4.W4O7WOeK.jmoOv001W7ZdPSop.WRNdHSo9W4/dGxJdISohW4OB.WOhdQKZcSeDYWROqWPPc.dsqqWRxcNq.lSo8imooW7i.W7KFoCks.DCobea.W4OdWOWcW5i.WOHSAW.E8o6WRXrW7FcVSoLbNyN.WPhdJ8kVj8k7WOJcIa.WOddSeVcTfuMW7zAWQje.WOP5EXe.rColC8k9oxNdLmoypmoq.jJ85WPel.cNpdQwODnJddO8o3WOG.ymkhW6O.WQpdT8owd2e.nmoSWP1bpa.aSocCMWpW4VdMW.WOtdJmkGF8kUgSkTlq.BuZdMMFdKa.EmktzmkmeW.DSkUW79wW4m.WOxdSvVcOvGGW7PmWOi.W6eDW4WPFq.gtxdPCoCdee5W7hcJW.WPTYWOCKW7OfW6KrWRZcGa.cCk2W7qIW6m.W7PvqsXn.WPFdG8kZi8k0WPu.h38rW50h.y8o/rc1dW4aQ.W7lcJCkvW6/cKue.FSoaWPRcVCotfSk0vqWc.W4hcUmovWQHn.s8kdEW.n1ZdJ8keEJaKcvtdUG.p0S+W4O5WRlcO8oeW7FdIa.cSkfwmoXW5tdOaKkia.WRNdT8kfwmkDoG.dXGzWP/cMW.WPHZWRH/cG.WQtdTCkfvSkyo8on.W74emSkYCW.DCosWPFcVCo9kmk+vgX4.nZiLhWK.W4NdSLhcO1eMW6zAW5zy.lmktW7OAW5nQWOuNDIC.aSohu8o/W4VdVa.W4JdKIa.fCkEsCo5W5BdRW.aSoMEKmG.zhXuu3ZcHJVcKCoWlw4K.a8omW5FdPq.W5FcUSokWQPCW7i.qmkIW4D7W5DS.fmovWOtcOSkE.WQnCzZxcJG.W7xcO8kUWPb8xg3cPCoxcq.WQNdISkZW4ldH2ddNCkOW5yg.WPfIAqFcJue.lmkPC8orW6ZdLYi2gCoX.bSoiCgKgW5hdH8oQrG.WPqCWOr2DxtdM8kKDmky.W5qLu8ozWPyBWQT1WRje.st7dRCkgWQJdHCoOW7dcL8kb.W5G1cq.rmoQWRy.nmo4nJzeWRC6WRdcGcO.WO7dS8oTiu8.WP8SoffaW4ZcIIFdJCkD.W5VcP8oQWQPeW7qt.W7GwW5aRB8on.d8o4W6BcJ8kDW6/dNW.fmoDWRJcLmkeqKJdISkwWQO.WOVcP8krWPuk.jZ8qWQGfW5W.wmoAWRRcMmoD.W5aFEmoIWOhdOIDKxf0.vSoOWQVcRSoU.WODSC8k0bCoaxJKMAW.W6aAW5eInq.W4S3jCknsq.W5dcVCosWQ8.xfZdOLFdJCk+.WRpdSSockuSEeG.aCoTWRLXn8ovo8oTWRNcJG.Db7dU8k7WOBdOCoeW4FcQSkT.WPGugmoTF8kTWQ3cN0FdTmknhSklWQS.dCo7WRPGjmosnCoTWOpcLq.WRrcr8kLpq.eHWwWRTbW4NcPSkJmCok.W5JdH8k2nmo3WOFcIwxdMmk1.WQZcL8kSWOme.FmoWWRTl.wSkGW5KGyq.uCoTWQq.W5NcSCos.WQbnvSkYdG.ECoBrd9U.WRxdS8ohCG.W6KNWPCTW6itWQahWRBcNG.W7HzCYK0.W4atr8kHDNOk.cSoZW6ZcJCkrW4G.W5WGbmkAvW.W7SQC8koBG.WOddRwVcQuaTW5brWPDj.WQ7dI8k7WO4.eSkyuSo9.W7VcNSkzW7FcSa.amkiESkODxldHmoymCop.fmkVyCoIW44.W6ChW584BSow.o8oZbJj0.BSkwW6G+xCoIWOZcT8oLCW.fhyFW6y9WP7cHCo6.EmoZxJ1gW4SNuCkVWRe.WPmnWPTLEg/dJSoPEmkc.W4Cvd8oIua.W6JcL8kcW7RcIfTr.W4OvrCkJBxSdwq.W6ysW5aODmoiWOf5nZO.BSkmC8kfjG.F8k9vczsW5DKwmksWR0.lCoqWPzhamo/bmonWOm.W5TVzGGmW6dcRaxdKmk8.WOqoWPHSv2JdM8oNDSkT.W68UsSoRWRu.WP4gWP50DwZdKSoLACkf.kmoCW4JcOCkv.WQJcTmk7WOT9.lCoobCo7W7BdG3xcHSk6xG.WRddIZbJW5GsW5H9vCoM.nXeJWO/cRcpcOmk4W5u.WRpdRSovl30bfdK.sCoRj8od.WO3dJ8k9i8kXWOJcGMhdIa.wSkLW6rZW51RxCo0tSkW.CZG/WPa/W5/dU8ktimo2.W50eimksrG.b8ocyhSlW57dJq.W4CkfSoZEW.WOZdRSkYa8k+.vCkuEq.f10WW6qT.dmo1W6RcI8krWOddISoNW4tcJa.dmoDcCo8W68.W71gnCkZq8kkhCk8zWi.hZtdM8oCoW.fG8AlqW.nLpdJW.WQtdKCktAmkl.gSoqWPNcM8kqt0hcJq.ymoBzbbm.kmkLF8ovW6FdJsGV.W5iNsmomWRfoWRTZWQvb.vY7dSCkvWR3dISo0W7ZcL8kh.W4ZcNSktW4/cSa.W4niqCkkoG.qCksymkV.emoZW7dcG8kdW5K.lujBW5VcRG.ESo4qW.W6zQtCkmiG.vSk4W5a.W5xdItBcHXfh.ptCrWQGv.dmkNW4y.WOC2yqVcKLaQECktWQ8.msioWPFcSW.F8oPvXfZ.W7qcyCobWOi.fGKRjbVdQXdcJmowaG.kLFdTCku.kL3dSCkzFa.WPpdKCkrA8kI.xCoTWQhcImoMj8kuFXCM.ECkIECkRaG.W6CjdColDa.yCkSW6FcT8oqjSk7vY4E.k8o8W57dQmkgd8kbBJ0.W7i2hmoauSofaqRcTSk4.W5tdNdNcGrjpWQHOWPCA.BColj8oJW47dRqi/.W5xdJtVcJaK.WPNdKCkmsSki.uCkPECkHWO4qxW.WQ3dT8kuW4hdIW.lmofWObdpW.fSk6W4yYW7y.dSogz2K.WORdU0VcSXq7W6fEWPfo.dGxcVqxcKCkKuSk0gZddS1e.mI4ZeGq.fSkVvmojW64.W5eEvCkGDgKd.WPFdLSk+W5pdGh7dNCohW5qx.WRddTCoolLSoftFdRCoe.WQ55AWtcJqqNFmkCWQS.Fb3dKCk9WORcTCoeW5RcV8kI.W54WW7ynt8o6WPbJmZ8.r8oZDCkGWPCx.W5OCW4Ocw8kcCmo3WPxdKG.c2PWW5FcLSoIn0i.W6aapmkvuq.WOyRWOPcEG.v8oVCCk3WOK7rmoYdX4.gMldPM0nAW.WPFdQt5kW4y.W551zG.hZ/dISoQmxCJW6dcG8ke.WQVdTSka.smotyWHx.WQBdPSkkxCkfnW.WQnDWRfjbq.kmkFW6u.dSohW53dSSkx.lCo0ma.W6RcNmkA.WQzvyJlcTq.W409WP4KW6u.vfVdVuBdImo8smkNhJ4.l8kEW7exW5iJWOm8.dCkpvq.WP/dUCkvW47dGa.d8oLW7hcN8kaW5i.WQhdQ8ojjv0zw2RcS8kA.W4/dKJNcLG.W6RcImkfW5BcRG.CSoYqa.WQNcQ8k5WPC6rdVdGCoteW.WQu7W581iG.dCoEW67cI8kO.WOZcOCkeWOK1.W5itFSoZWOFdPa.W47dKItcKq.WOxdLSkRvSk8.W4WvB8kR.W5e0xa.WQNdQ8kfvmkFoSkp.fCoif8oiW5q.s8kUwSkwfG.W5WihCoUAG.WPzKyqG.W60QhmogwCoffW.WOldNmkwW7VdUa.W6WwDCowWRi.WRSSWOLIC2ZdImk2jCkz.W50Yg8omWO0BWQX4WQus.WRldKCkUW4ldJ2hdLmkgW5iB.lmkPC8orW6ZdLYu2g8o7.n8o1kdzCWOWR.qCo0CCo0WOSqrCk3cri.pCoPpSo9W6FdLNNcM8kotq.gmocDw0yW5ZdHSo6vW.W7KsW4y.W5GWWPKKW69qW6igWRRcKG.lmocCNWFW4VdJCk5ea.WOjvWPbFfq.W5i7mSoNxmkDgXyjDCo+WQNdOq.qmkWW5nWW7f3s8oJv8kq.W5JcU8ovWQu.W4ivsSoIWOBdUsXC.FSo3nZrvWOS8WRVdMG.WRNcT8kSWOS2rcJcP8oEbq.WQRdT0RcThC.W5PKBq.g3CsW7S.W50AWP42W58.cdxdRCokgWq+W6hdISkd.WP4pWOnHyhxdJmoHmW.WPVdU0VcSfSMW6zAWQvF.W5rZEHe.W7VdM8kYW5VdJ2tdLSohW48b.W6OWfmoauG.W58YtSokWOCBWQ51WRjB.j8oOW4ldKSkBk8kfAq.k3SvW7yZ.q8kKW4L4W4D8wSoPu8k/.W4WJsmkyWOmBWQ5XWQXB.WP3dTSkCW7tdJa.W4iMm8k5CSkrdColDsq.zCoYyszqW4a2D8kAWQ0.W6yapmktrmkfha.W6jbymkjaa.W5KCWObW.ASohg8oNW5NdOa.W5jADCo/WPFdTsXixXi.C8oyWQHGWPa.gCoQWRBcRCkz.ddSjWQJcGa7cLCkWW67cPq.W5O8W7OjrmoGWPP6.tmkoW7m+wa.aCoGvx4J.xmoSWQhcIa.nbLuva.uSoyzqzRW6ebzG.sCoDpCoyW5S.aN4oW7KPWP/cLmoXW5NdMW.vfVdVuBdImo+r8kJpJG.vCoQa8oWW7u.omoGA3aG.D3BdHNpdVCopAmkpkri.bCkXW6xdKSk3z8ohnhi.ociCWRueW5W.W7uGW7S/CW.W5eEqSkUE2SdtG.x8oMWRW.i1xdJ1GSrXBdICoCWQW.tmkhzSkObMddLCoAoSoi.WRtdRCk0WOO8ra.gMldPNSuFq.W5bPuColWO1v.W7rKDaGyW7ZcQIBdQ8kH.DSoxaa.W5/dHKlcQLyDW7W.W6atoa.W4lcTCooWRHn.WPfIAqlcHfC.W5ivDmo3WP3dVG.nSodWOPSeG.p8oRlJTzWOyUWQRcNsW.dsaDWQ7cNrpcPCkuW7xcQq.WQXDz8k2gW.dmkZW5O6W7myWQuawbG.W77dIcBcTtS.gCogWOJcN8ka.D8k5W7jXW6G.W4ypD8oxWQ4.WOfvWOXieSoeiW.W4FcMmkDW7FcGvyvaGq4.W4qdsSouWRm.WPeItmkSkKKkzCopva.usvZW4/cGCoQkKbzWQm.dmkZW5O6W7myWQiawHi.amkyvmo9.uSkJW5j0W7fWqmo0wCkP.cmovWOtcLSkXs0hdGmkzWOO.W6ywW40JD8otWRf/fWO.ACofbSoKW5K.WQPbF8kuoa.W4zIErmyW6RdOqpdQ8k+.WR3dPCknW4ldJq.WPzCEt/cGa.W6W6dmovu8oyf0lcGmk6.hSoGW5VcJCkl.d8kuW5CpW4q.tSoQWQn1WPe.e8owWOK.WOJdJx3cS1W.WP/dPG4.WRldRmk6W7ddOa.lcSadI7dKZhdRCoXma.fmkFvCoKW5hdPqm2jmoe.WR4+e8oju8obaupdS8kH.ESoWWRfeWRVcPmoVbhC.ACowg8oZW4NdPXGXW4hcKW.l8oyjCoSW6G.WOr/AWtcLu0KE8oFWQG.dhfcW4hcImoU.xmoCWPPKWOpcK8oeoe4p.DCo6WRXwWRldO8oZa2i6.lCoVpYnfWPy.oXZdHSoToW.jJCfWPmEW4ddVCkhfSov.oCo3WRDeWRVcUmoO.W6yXW7SyCW.WQNdQmopk0jneJFdTSop.uLVdH1y.m8k9rdOhW4SRqmoBWR8.WOvZEG.WPDgWOXjbmklomkXW5dcLq.pt0oWQJcQG.BSodESkDWRy.bgWDWQ0.W6xcNmkeW6NcGvfuaG58.imoiz10e.WOZdOCk3u8ki.W6dcRCoOWQzC.WQvcrmkwaq.e3pdOW.eSoqWPtdLa.W5BdVJJcIa1oWO9LWOy.pmoXrcPcW4S3uq.W4ahW5CBsCkBASkCW4ZcULautq.hsqiWQtcVW.eNCvW7SpWPtcHCkYW4BdTq.ymo+WR5mWRm.WO/dVb4A.W40YsCorWOXCWRf2WRK.WRZdRrLwW7K/W60sjq.wmoyCHPIW6ywCCkV.W7GCW50TD8oXWRThgXa.oSo7W5xdPCkhpmkuCZOR.WO7dGqbTW6K.jCoWWRn8WPpdP8ovj2bH.r8oLWQFcKmoeiCksEsGi.b8omD2ey.W4qPCmoIWPe.WOv7ASk8.WOmDt8k9A2Ti.nsqqes7dMJFcPSopla.W4RdNXtcJJS.cJZdQCoXbG.W6NdRZdcGJe.W6CAW5aRD8oa.cCo0W6JcJ8kgW5q.W60ygmoWuq.WQpdRCkxtSkqm8kpgI7dHq.sCoUimoEW60.fcqUmG.W6qEFCowWPi.W5WQWPWYW78d.WQJdNSk/W5RdI2K.WOlcPSkSWP4L.fmo0WRTNia.wxhdR0VdMG.WPfOA8k1bSocBc03ya.gZhdOmosh0mYW6e.W4utFSo4WP3dVIvWx0S.WRddShBcJh8.WQ7dGmk1l8kZWOdcMgVdNG.zGtcI8ogkgWOpMVdU8o9DG.p8oTW5/dHmkG.gctdOSoEgWKIW7ZcI8kF.ySkWW6qNua.W4mLW7ODsa.WRhdPmkgfCksWQlcVKhdUa.WRldGSo7ofG.WPDmWPi.wmkqtmk7oW.W7zcFYS5.WQJdI8k8W4ldM34.W4OvvCk7Exeft8kIEG.qmorWQDZWOm.W4D1FrmFW6FcTqxdOmoZ.W4/cTSkWW57cU3D7ia.wmoMz8kGWRervCo0aaG.W67cL8k9W78.cCo0WO98dW.W6flFSkUbW.mCoYq2LgW4SRqmktWRS.eSoJlmomW4pdTv3cQmkvCW.EaNcMCk2WPdcTCooW5ZcRCk+.rCosBmkJWOC.W5WQWPWYW78dW5mAWRFcKa.pSoxWRVcQ8oDqrBdUSktWR4.WPqNWPSGW74eW6GmWQVcMG.WPhdJ8kQmSk2WO3cGgxdMmkP.WOzayq.WPRdMSk2EmkH.nSkcW70FW5iKWPiMEd0.FCocs8khWQCNzmosmq.d8k9BSotW7BdPsfijmoN.W4zjBSk6k8o0W6/dJu3dLG.WQJdI8kVW5/dGgO.W57dTbVcIJe.WPldISkTv8kE.wSkLW7v9W5r6z8oUsmk0.WPigWPS.WPJdRqXd.WPymWOLVENm.WQXsAqdcQa.wSokfCohW7O.tLpdU17dQSo4qCkLary.gt/dTSonf0OWW5/cHCko.W6eDW586ESomWRHnhbi.WOVcTSkvWRSu.ocuobcBdMG.WPZdHCkRW6pdIW.pZKUWRudW4BdVSkt.W6HJxJCS.lCoVld5EWOiMWRJcJq.FSoVnJiqWOyQWRdcGde.W44NsColWOC.W4ivCSoZWPO.uCkNBCk7WPCwfSo7dbG.WQ/dSmkOsCkH.W47dIspcLq4yW4u+.WPpcT8kDWO0H.fSoWW6K2.WRldRSohi00mftFdRCoe.lLpdJSkdFG.WR/dMmkRW5hdJa.WPjkCCk0oa.W5BcU8orWQPbW7m.W5fZw8kLiW.cSkfwmoXW5tdNaKsmCoE.WQxdGmoBd2K.k3tdK2el.nmkvW7WAW4OI.eSoJkCoFW4tdTv/cRmkt.WO16ymoXgSoBtYaMjq.gZOk.lWiBjWK.W5OhW7iNEG.lLtdTCkBWRZdNSoDW4BcR8kG.g3NdSM0rDJ3dJCoWWO0.W509WPGGW6iE.B8kMW7Wkq8kZ.gwtdQg8rFd/dSG.WQtdQ8oLi0W.dwPwW5FcJCoLpMGwWQq.c8o3W7RcUCkmW5tdNmoX.WQ7dKCkVW5pdJ27dKmkgW4qE.W7SDuSkMAq.rSk5W5uOEG.B8oSpCoGW5K.hCkIW4nVW4y.fmobWPRcN8ka.hxeyW7aeWOtcLmkYW4hdVW.W4Pqsa.WOz5zqtcIeO.W6dcI8k7W5ZcTa.kcKpcJRdKhRcOmo0lG.j8kPWRfmWOdcLSojeG.E8ojhCorW6K.WOz3FatcPu05.c8kCW6mdW5y.zCo4WPzuWRG.oCoxhCoJW5K.DSoqDSkFWRq.WQZdPSkqwCkzfSkocZy.W7/dUtVcKIO.Bmo6WRy.e1VdKvOa.WPiEWOHYBq.vmoVWPrFWPq.W7lcKmkAW7ZcIfC.WRJdPSkfxSk3nSkphGNdLq.W6hcKmoY.W5FcUSok.WPzvWPzn.chpdTuGm.hx0vW7iEWP8.WPZdHSkZW5/dRW.WRXTWOP1pa.EXJdU8kCWPO.cshdJCoTlq.W63cR8kwW6ZcSa.v1ddRuBdJmo0bmkKe3C.WOf5FqVcLq.jZKEWQaDW7VdV8kFi8oE.rmkdy8k5oxRdHSouoSov.W4fIEGWiW6O.g2XrW43cHCoMpa.m8oUmInzW4G8WRFcGcy.Fmo8vrPoW5eHrW.W7FcRSo7WO5L.imoZW6pcNSkqW5ldNmkIWPq.v8oraCoaW6u.a8ojCgqFW53dJCoQ.FCobbmoLW5NdPW0SW4VcMq.gCotCMyjW5ZcImo9xwO.rCopWOtcS8oH.W4ddNHJcVdy.W4aBDCo/WPa.owCfbcpdMdBcOSo4ka.ocSxba.WOD4FG.kSkrW6epW7qYWOuSCIa.WQJdI8k8W5tdGMG.W4jwrmk0jmoCWQtdNZxdTq.sv1zW4NcHSoEma.iJGyW6HFWO/dGmkyi8or.wgdcSmkorHaHW6dcM8knWQFdNq.i8o5FGTMW4Wl.f8oGWQTWkSorn8oHWRK.iSkMAmoyW5u.nSo6lq.fZOpWQJcIa7cKCkyW5xcRG.omo+pYnfWPCQWOhcKcO.kJ8tW6evW4RdOmkykCoj.lcSadI7dKZhcSa.C8kSW7qAxq.kx1BW47cGa.FGJdL8kNWOZcU8oDW5dcSmkT.a8ojyhWlW5FdI8o8zMG.W43dMdK.zmkMW6y.W5PWySkula.W4dcTCosWQ9hW7a1bXBdTq.lmo6mdnFWOGAWOVcVqC.W606hSoxx8oE.b3NdSa.W5ldKGtcKq9lWOr2.W7BcJSkdWRxcIf1wfWDW.AqldKSkXWOC.eSoDWPlcLSkhr0hdKa.WOZdJSkYi8k5.kCkEW5SF.W4iEqCoZWRe.uCkHW59eW7O.W5W3DCoSWRe.f8k/q8oNW50.fCoxjmoOystdMSoPeSo3WQNcVG.W5a8WPyTW74uW6uq.W48srCkQDMWdDCkeCa.f8k/q8oBW7e.WQ7cP8kTWO0.ntK2WRlcMW.fmoIimoF.zSk7W7SEq8kOWPhcN8ogwG.WOpdSSospKeabcW.kSo0ntjE.lZKqWQayW4e.W5y8WRWL.W4GqeSo1FW.WQhcNSkgW7RcH1CvbG5Q.W7tdLSkZW4xdMMZdLmkl.W5hcNSo5WQvQ.nuzRW6lcSmougMO2WOS.W7GCW50TD8onWRTFcG.W7ehvCocWRe.osqv.kcez.bL0VW6CW.WQ/dLmkCwCks.W4OMWOCOW6ux.f8oHWQHGmmop.Cmk3W7mpw8k+.z8o8qq1gW5W3.W5eZWOfHW7GvW7ivWRdcKa.WRpcRmkOWPG/qZG.WOzBWOLjhG.fCkEwSoKW43dUW.ACowg8oyW70.W4K2bSkTCq.y8o8qY1iW4GgtCkpWRS.W4NdIXBcIdq.WQ7dPfBcG0i.WQ7dT8kCDCk6.ECoYxJ0.aSoJpSoFWOVcSHhcMCkBEG.W4VcUSk8W5RcSg1Xoszz.imo6W5xdRW.WQpdNxdcGwaxW5fWWRTQ.aCoIp8kAW5ldRL7cRCkcFa.e2rqW5FcT8o+oKyCWRm.W5G+fSojwCosrfpcVmoU.W5lcQ8kNW4NcJq.dSo6WQb6.WR7cP8kOWPW/rsZdR8oerW.pmk1W6mxW7y.g8oHW4VdKSkL.WR/cUSk3WOONwq/dS8oycq.WRhdKmk0W5G.WRvzwI7cPhyuxmk7.WPZcP8k/WO0MwdNcQSku.CSo2WQblWRBcOCoL.W5yvqSkQFNyit8ks.WPXrWQvEeCoipG.WQpdTSkrW5NdOG.W7/cSSovdSofBSkpkXFdOcPr.xSoYDt99.uSoIDCkGWPCwu8oiaXq.WOldSmktCCkw.FGxdNmk3WOldNmozW4FcVCk+.W5agf8o8Ca.FCoPz8kGWOmkvCoYrr8.ESo6WRyfWRhcO8oYv3CM.DCk3W49WW5D7dSo0u8oX.wfVdQKhdVSo5umkU.WOrSDW.F8oSWPnxWQxcRCo5.CfFdHmkrDI4Rcq.W603hSkxcCka.imoQb8oxW4q.W5TICfi.mqyBWRVcPq.n0JdMCku.WP8nWOXKCxldJq.vapdJ8k1WOxdVmotWPpcSCkI.W7eFbCkkvW.wmk/ECkzjq.WPpdQ8knumkHkCoss3hcNW.W51izCkmaSoiW6NdMMZdMq.WQpdNxdcGwaxW4bVWRPK.WP4BWQfVD2hdKSoSCSkF.WPrer8k+mW.WQZdPh/cHxK.kgDNW7hcVq.WO8EWRrNEG.E8o+WQP3WRJcO8oTbfmR.WOxdKCkdxCk9.eMOEW7qEWPlcUCo/W5pdUq.WRhdMSk+W4ldI2NcMmkfW59s.mL3dN8krDZyOh3q.gxKpWRuAWOlcK8o+W5VdUq.WQ/cKSkVW5pdN3JdKCkvW4mb.Ct8nbdRdGdZcRmoPkG.CCkeW4rFW7y.W7eyBSo0WPC.uGldOCkIWRm.W7ajF8o9WR1+WPzg.uSkLW4m8W4DVsCoYxCk1.fmoyfHzKWROlWPhcUqi.WQldImkXW6FdRW.W5tdMhRcGrrrWOTZWO8A.yCo0WPRcQCoR.smksyCkSBZRcMCovmmoy.W7dcMmktW43cJG.pZKwWQqF.WQfBz8kslq.WRxdUHLdW78.W6FcSSoXWODz.rxZdGL3dPq.ASoqbSo+W5ldOW.rSk4W4j5W5r2qmoLwa.imoKw0K+W6BdPCoqDvu.WQjUWPHpfa.WQJdRH93W6O.WQpdRCkxtSkqmCkahG7dGW.WPmhWObHFw4.zCoRWRnrWQlcVW.qSofBCkbWPC.W7GvpG.b8ooDhOlW43dGCo2xhq.zSkTW6eigCo7WOhcJSonwG.W40AimoUECoVo3FcN8kp.W6JcJCkeW7NcOW.A8keemo4W5hdPqu2WOddNq.BCoLCmkSWQ4.xCkCW45ZW6O.W4qFBSoXWRO.WOLUtH/cPW.WQhdSCoai0imaZldPW.AH/dKmkGWOW.W5W8WOm.d8kfvCoJ.W4dcTCosWQ9hW7aIkYVdLa.rCoVWRz/WP4.W6eDW5OPFComWRPjgG.xSoOFCk6.nCkeW7mzW4SI.W6Ksc8oeAW.WPPBWPfy.a30iW7OgWOhcLmo2W6hdSW.fSkJWRFcNCo1jCkooIiQ.WR/cRmkO.qmoMWQhcIa.FSoZzc0.jZKEWQaDW4FdV8khmG.WONdVaPlW6iQW6fuFG.WPddPXfm.m08zW548.WORdHmk/i8kLWOtcGMFdIq.W4rsqmkRjmk2W67dGxhdKG.k21kW5ddHmobgK0yWRq.lSoieSoPW6FdN2pcJmkJ.WPilWPLPE27cKa.qmkMW4P1W4y.nmo0nZK.l8kEW6qAW4SUWOi.otitad3dNtNcPSo1nW.WQhdK8kGFmk8.bCo5WQv7mSozmSoyWRBcJG.WPpdJmkXAmkUe8kQob/dOG.hZ/dKmonde05W7u.jCobWObBc8oVcComWP7cQa.dmo5W6VcHa.kmoZW6pdGmkc.W5SOt8olW4XxWRD3.W5xdIsxcJbnf.gCosWOlcN8oefW.sSorg8o4W5e.WPtdHwpdLWvZWOTeWQ49.WR/dRCkax8kxnSknhJ4.ocyrWQGf.W7Svka.WPtdGmkQmSkeWPtcJ2FdICkZ.W4W8WPeKW60zW64gWR0.WR/cRmkOWPaHrtldP8otba.WQJdTCkqW4hdVW.CCkMW7mox8k+WQBdHSka.W6yEiSkzrmkcb8ksDqe.W5ldKJZcGbm`.split(`.`);return L=function(){return e},L()}async function R(t,n,r=u[e(1376,`P50[`)](A(),e(813,`tycJ`)+e(1394,`jl*C`))){let i=e,a={aerQt:function(e,t){return e(t)}};await l[i(448,`tycJ`)](u.dirname(r),{recursive:!0});let o=JSON[i(1104,`@oTl`)]({at:new Date()[i(1308,`^^j9`)+`g`](),event:t,domain:I(n[i(520,`BEaJ`)]),installationId:I(n[i(881,`Njfh`)+i(869,`[FMn`)]),reference:a[i(1165,`jRSt`)](I,n[i(886,`dx*c`)])});await l[i(405,`n9Aq`)](r,o+`
|
|
7
|
+
`,i(1020,`P50[`))}let z=e(1074,`!7Yu`)+`e`,se=`startup`,ce;function le(e){ce=e}function B(t,n=o[e(1214,`@oTl`)]()){let r=e,i={bYGWk:function(e,t){return e===t},PzJYg:`invalid`,cZxEH:function(e){return e?.()}};z=t,se=n,i[r(921,`X*[W`)](t,i.PzJYg)&&i[r(562,`6!o6`)](ce)}function V(){return{status:z,reference:se}}function ue(){let t=e,n={Jmkij:function(e,t){return e===t},VOmPC:t(1255,`n9Aq`)};return n[t(478,`tycJ`)](z,n[t(1239,`tycJ`)])}function de(t=Bun[e(564,`&hD&`)][e(1326,`jl*C`)]===`production`){let n=e;return!!(z===`invalid`||t&&{SLASF:function(e,t){return e===t}}[n(1514,`zdSq`)](z,n(374,`sILL`)+`e`))}function H(){let t=e,n={hAiKJ:function(e,t){return e===t},Ezgoj:function(e,t){return e===t},Ntpnc:t(1332,`7DZY`)+t(858,`S5Cf`)+`0`};return Bun.env[t(940,`jRSt`)+t(668,`NMHr`)+`_URL`]||(n[t(682,`dx*c`)](Bun[t(982,`P50[`)][t(786,`s5L$`)],t(1175,`7DZY`)+`t`)||n.Ezgoj(Bun[t(558,`s5L$`)][t(923,`7Qr(`)],t(1372,`Z@ID`))?n[t(771,`BEaJ`)]:f)}async function U(t){let n=e,r={UfMLq:function(e){return e()},jGZSz:`POST`,hpafv:n(612,`zdSq`)+n(944,`jl*C`),Vunwi:function(e,t){return e(t)},Vxxmd:function(e,t){return e(t)},cptxV:`production`,NuuWY:function(e,t){return e!==t},BFfaz:n(716,`S5Cf`),yGSfL:`This license is already active`+n(1073,`kYJC`)+n(1353,`&G9b`)+n(1460,`jl*C`)+n(694,`jJVg`)+n(1032,`[FMn`),Kmkbt:function(e,t){return e(t)},sGMvZ:n(962,`zdSq`)+n(1018,`NMHr`)+n(1105,`@oTl`)+n(1487,`XOpo`)+n(539,`X*[W`)+`try again later.`};try{let e=t[`registryEn`+n(511,`ynhv`)]??r[n(1337,`zh9C`)](H),i=await(t[n(611,`mcuw`)]??fetch)(e+(n(689,`n9Aq`)+n(519,`]kS&`)),{method:r[n(672,`ynhv`)],headers:{"Content-Type":r[n(415,`GD][`)]},body:JSON[n(1375,`P50[`)]({purchaseCode:t[n(1450,`jl*C`)+`de`],domain:r.Vunwi(S,t[n(535,`[FMn`)]).host,siteSlug:t[n(766,`S5Cf`)],domainScope:t.domainScope,provider:t[n(1132,`jRSt`)],routingMode:t[n(1134,`rSET`)+`e`],installationId:t[n(400,`7#Yu`)+n(1373,`kYJC`)],environment:r[n(1207,`rSET`)](S,t.domain).isLocalhost?n(591,`1S73`)+`t`:r[n(1017,`1S73`)]})}),a=await i.json();return i.ok===!1||r[n(1182,`&G9b`)](a[n(1257,`s5L$`)],r[n(410,`NMHr`)])||!a[n(413,`GD][`)]?.[n(1334,`XOpo`)]?{success:!1,message:a[n(772,`dx*c`)]??r.yGSfL}:{success:!0,buyer:a.data[n(1459,`BEaJ`)]??n(1235,`S5Cf`),token:a[n(1190,`L&vX`)][n(560,`L&vX`)],domain:a[n(822,`dx*c`)].domain??r[n(547,`n9Aq`)](S,t[n(1100,`L&vX`)])[n(1264,`kYJC`)]}}catch{return{success:!1,message:r[n(1523,`kYJC`)]}}}async function fe(t){let n=e,r={MfEeO:n(751,`zdSq`),BWbKV:function(e,t,n,r){return e(t,n,r)},wETrZ:n(838,`mcuw`)+`cted`,qUxKI:function(e,t,n){return e(t,n)},qagVj:`Local license valida`+n(624,`Z@ID`)+`d.`,maFhJ:function(e,t){return e>t},KycSn:function(e,t){return e/t},fEKqG:function(e,t){return e-t},XuqPF:function(e,t,n){return e(t,n)},riSlk:n(1407,`BEaJ`)+n(1189,`L&vX`),ZbKKA:`check_unreachable`,itpbG:function(e,t){return e(t)},pofwj:function(e,t,n){return e(t,n)},wFeln:function(e){return e()},VNuVT:n(953,`@oTl`)+n(942,`n9Aq`),YcKMV:function(e,t){return e(t)},ORggL:n(828,`Njfh`)+n(1318,`Njfh`)+n(695,`jl*C`)+n(1300,`]kS&`),ewYms:function(e,t){return e!==t},ExYJq:`success`,QtKBG:function(e,t,n){return e(t,n)},iMbHZ:function(e,t){return e!==t},mpAGh:`License bi`+n(618,`oqyn`)+`cted by jc`+n(1254,`oqyn`)+`e.`,BbTxs:n(1467,`ynhv`)+`ess`,sHxBF:`valid`,JEyHC:n(434,`7DZY`)+n(393,`Je()`)+n(784,`X*[W`)},i=t[n(1154,`SeOF`)]??fetch,a=t[n(1119,`s5L$`)+`Validator`]??((e,r,i)=>t[n(530,`okI)`)+`ions`]?Q(e,r,i,t[n(985,`s5L$`)+n(859,`sILL`)]):!1),s=(e,i)=>{let a=n,s=o[a(1362,`zh9C`)]();return B(r[a(439,`kYJC`)],s),r[a(1153,`mcuw`)](R,r[a(1248,`NMHr`)],{domain:e,reference:s},t.auditPath),{status:a(1385,`U]y(`),error:i,reference:s}},c=e=>{let i=n,o=S(t[i(1130,`oqyn`)])[i(867,`sILL`)];if(!r[i(1377,`NMHr`)](a,t[i(489,`6W9l`)],o,t.installationId))return r[i(1230,`s5L$`)](s,o,r[i(1333,`zdSq`)]);let c=t[i(1423,`SeOF`)+`dDays`]??30;if(r[i(1071,`1Zwv`)](c,0)&&t[i(941,`7DZY`)+i(1028,`Z@ID`)+`t`]){let e=Date[i(971,`&G9b`)](t[i(1069,`mcuw`)+i(758,`jJVg`)+`t`]);if(!Number[i(623,`^^j9`)](e)){let t=r[i(1454,`SeOF`)](r[i(776,`NMHr`)](Date[i(680,`sILL`)](),e),864e5);if(r[i(840,`P50[`)](t,c))return r[i(957,`sILL`)](s,o,`License ve`+i(1113,`S5Cf`)+i(1240,`zdSq`)+i(620,`NMHr`)+`ed (`+Math.floor(t)+(` days offl`+i(1196,`XOpo`)+i(505,`tycJ`)+i(880,`jl*C`)+i(1142,`NMHr`)+i(762,`n9Aq`)))}}return B(r.riSlk),r[i(874,`tycJ`)](R,r[i(1103,`]kS&`)],{domain:o},t[i(420,`jRSt`)]),{status:i(464,`s5L$`)+i(643,`7DZY`),token:t[i(595,`S5Cf`)],error:e}};try{let e=r[n(1352,`zdSq`)](S,t[n(1117,`zh9C`)])[n(642,`Je()`)],a=await r[n(1206,`])wM`)](i,(t[`registryEn`+n(421,`@oTl`)]??r.wFeln(H))+(n(1442,`Z@ID`)+n(459,`g[G%`)),{method:n(426,`!7Yu`),headers:{"Content-Type":r[n(1066,`6!o6`)]},body:JSON[n(1021,`jl*C`)]({token:t[n(906,`tycJ`)],domain:e,routingMode:t.routingMode,installationId:t[`installati`+n(1e3,`HZT$`)]})});if(!a.ok)return a[n(663,`zdSq`)]>=500?r.YcKMV(c,n(659,`]kS&`)+a[n(1346,`6!o6`)]):s(e,r[n(1036,`sILL`)]);let o=await a[n(1267,`okI)`)](),l=o[n(1164,`ynhv`)]?.[n(852,`oqyn`)];if(r[n(1416,`g[G%`)](o[n(1251,`1Zwv`)],r[n(653,`Fswn`)])||!l)return r[n(979,`6!o6`)](s,e,r[n(1301,`1S73`)]);if(!(t[n(553,`tI[S`)+n(1361,`s5L$`)]&&Q(l,e,t[n(570,`7DZY`)+n(468,`mcuw`)],t[n(690,`Njfh`)+`ions`]))&&!t[n(1174,`XOpo`)+n(1053,`$2Ce`)])return r[n(615,`Njfh`)](s,e,r[n(1316,`SeOF`)]);if(t[n(1024,`7Qr(`)+`Validator`]&&!t[n(585,`Z@ID`)+`Validator`](l,e,t[n(440,`6!o6`)+n(477,`]kS&`)]))return r[n(1099,`n9Aq`)](s,e,n(607,`rSET`)+n(1172,`HZT$`)+n(777,`GD][`)+n(1013,`X*[W`));let u=r[n(726,`])wM`)](Y,l);return!u||r.iMbHZ(u[n(571,`kYJC`)+n(1512,`rSET`)],t[n(760,`jJVg`)+n(1222,`U]y(`)])||u[n(922,`1S73`)+`e`]!==t[n(1527,`]kS&`)+`e`]?r[n(652,`7DZY`)](s,e,r[n(395,`tycJ`)]):(r[n(877,`Njfh`)](B,n(1188,`7#Yu`)),R(r[n(1121,`jRSt`)],{domain:e},t[n(812,`okI)`)]),{status:r[n(1126,`L&vX`)],token:l})}catch{return c(r[n(781,`L&vX`)])}}function W(t,n,r=`localhost`,i){let a=e,s={rBETh:function(e,t,n,r){return e(t,n,r)},uRvOj:function(e,t){return e(t)},OYdsi:a(469,`7#Yu`),wvNFh:`hex`};if(!t||!s[a(998,`7Qr(`)](Z,t,r,i))throw Error(a(1293,`Fswn`)+`derive key`+a(382,`1Zwv`)+a(1112,`1Zwv`)+n+(a(1492,`jJVg`)+a(677,`tI[S`)+a(902,`jJVg`)));let c=s[a(1475,`1Zwv`)](Y,t);if(!c)throw Error(a(1510,`[FMn`)+a(497,`zh9C`)+a(723,`$2Ce`)+a(386,`]kS&`)+n+(`": Invalid`+a(397,`6W9l`)+a(1504,`7#Yu`)));let l=t.split(`.`)[2]||``;return o[a(1317,`NMHr`)](s[a(1500,`Je()`)],l)[a(1412,`Fswn`)](c.domain+`:`+c[a(853,`HZT$`)+a(869,`[FMn`)]+`:`+n)[a(475,`jRSt`)](s[a(378,`7Qr(`)])}function pe(t,n){let r=e,a={XGuql:function(e){return e()},rEZrv:r(1193,`Njfh`),Fzzhe:function(e){return e()},OFfYD:r(1522,`kobt`),QiSeu:function(e,t){return e!==t},bzYAp:r(1244,`7Qr(`)};if(a[r(713,`BEaJ`)](i))return[a[r(600,`1Zwv`)],r(1092,`P50[`),r(1386,`L&vX`)+`al`];let o=M(),s=o?.[r(1033,`L&vX`)+r(850,`zdSq`)]??a[r(541,`$2Ce`)](N);return s?Z(s,t??(typeof Bun===a[r(554,`7DZY`)]?void 0:Bun[r(1125,`1S73`)]?.[r(1266,`zdSq`)+`IN`])??(a[r(846,`ynhv`)](typeof process,a[r(658,`U]y(`)])?process.env?.JCHAT_DOMAIN:void 0)??a[r(1393,`okI)`)],{allowOfflineGrace:!0,lastSuccessfulCheckAt:o?.[r(787,`jl*C`)+r(617,`])wM`)+`t`],...n})?Y(s)?.[r(1464,`$2Ce`)]??[a[r(743,`s5L$`)]]:[a[r(1060,`S5Cf`)]]:[a[r(872,`!7Yu`)]]}function me(t,n){let r=e,a={EzGEM:r(471,`&hD&`),oVoAu:function(e){return e()},RfgUf:function(e,t){return e!==t},SRSRi:r(442,`mcuw`),bwyXH:r(1509,`7#Yu`),DFHxn:function(e,t,n,r){return e(t,n,r)},ebPVO:function(e,t){return e(t)}};if(i())return a[r(1138,`])wM`)];let o=M(),s=o?.[r(748,`kYJC`)+r(939,`Z@ID`)]??a.oVoAu(N);if(!s)return a[r(1312,`tI[S`)];let c=t??(a[r(1343,`P50[`)](typeof Bun,a[r(1272,`zdSq`)])?Bun[r(1437,`S5Cf`)]?.[r(992,`6!o6`)+`IN`]:void 0)??(typeof process<`u`?process.env?.JCHAT_DOMAIN:void 0)??a[r(1224,`Fswn`)];return a[r(856,`Njfh`)](Z,s,c,{allowOfflineGrace:!0,lastSuccessfulCheckAt:o?.[r(423,`7Qr(`)+r(969,`X*[W`)+`t`],...n})?a[r(444,`zdSq`)](Y,s)?.[r(734,`[FMn`)]??a[r(1180,`zh9C`)]:r(1252,`])wM`)}function he(t,n,r){let i=e,a={xYlEp:function(e,t){return e===t},JotUn:i(414,`tycJ`),DLSHm:i(422,`Z@ID`),jPLIq:function(e,t,n){return e(t,n)}};return a[i(1306,`7DZY`)](t,a[i(1008,`dx*c`)])||t===a[i(1200,`s5L$`)]?!0:a[i(1462,`S5Cf`)](pe,n,r)[i(392,`rSET`)](t)}function ge(t,n=e(1366,`U]y(`),r,i,a){let o=e,s={mrMlJ:o(471,`&hD&`),qCgBn:function(e,t){return e!==t},tdXeE:o(1007,`zdSq`),DNyIH:function(e){return e()},NtLka:o(1340,`Fswn`),bkyRi:function(e,t){return e!==t},miDPz:o(1374,`XOpo`),gxASW:function(e,t){return e!==t}};if(n!==s[o(394,`s5L$`)]&&s[o(590,`jl*C`)](n,s[o(780,`g[G%`)])&&!he(n,i,a))return{isValid:!1,featureKey:t,stage:n,siteId:r,error:o(889,`dx*c`)+t+(o(657,`oqyn`)+` "`)+n+(o(1370,`Z@ID`)+o(823,`tI[S`)+o(1445,`1Zwv`)+o(742,`7DZY`)+o(1075,`&hD&`)+o(895,`@oTl`))};let c=M()?.[o(1065,`[FMn`)+`ken`]??s.DNyIH(N),l=i??(s[o(837,`jJVg`)](typeof Bun,s[o(700,`S5Cf`)])?Bun[o(1503,`kYJC`)]?.[o(804,`L&vX`)+`IN`]:void 0)??(s[o(710,`Z@ID`)](typeof process,s[o(1127,`7Qr(`)])?process.env?.JCHAT_DOMAIN:void 0)??s[o(644,`XOpo`)],u;try{c&&(u=W(c,t,l,a))}catch{if(s[o(490,`ynhv`)](n,o(604,`6W9l`))&&s.gxASW(n,s[o(1223,`7#Yu`)]))return{isValid:!1,featureKey:t,stage:n,siteId:r,error:o(502,`g[G%`)+t+(`" cryptogr`+o(831,`&hD&`)+o(907,`jl*C`)+o(990,`Je()`)+o(715,`HZT$`))}}return{isValid:!0,featureKey:t,stage:n,siteId:r,executionToken:u}}async function _e(t,n,r,i,a,o=e(685,`zh9C`),s=fetch){let c=e,l={XPpoc:function(e){return e()}}.XPpoc(ae);try{let e=await U({purchaseCode:t,domain:n,siteSlug:r,domainScope:i,routingMode:a,provider:o,installationId:l[c(1080,`$2Ce`)+c(477,`]kS&`)],fetchImpl:s});return e[c(876,`tycJ`)]?{valid:!0,buyer:e[c(958,`X*[W`)],token:e[c(1221,`$2Ce`)],domain:e.domain,state:l}:{valid:!1,error:e.message}}catch{return{valid:!1,error:c(1271,`tycJ`)+`verify lic`+c(1350,`])wM`)+c(416,`$2Ce`)+c(1003,`ynhv`)+c(1382,`jJVg`)}}}const ve=new Set([e(997,`6!o6`),`/api/v1/li`+e(993,`6!o6`)+`us`]);function ye(t={}){let n=e,r={KMHGh:n(767,`&G9b`),cpwEO:n(1509,`7#Yu`),yVrnH:function(e){return e()},KyUhp:function(e,t){return e!==t},Ldoxv:function(e,t){return e===t},HPCdh:function(e,t){return e(t)},sGgUm:function(e,t){return e>=t},QYrYE:n(1229,`[FMn`)+n(551,`mcuw`),HPIWz:function(e,t){return e===t},OTbgr:n(1178,`@oTl`)+n(1079,`oqyn`)+n(1156,`6!o6`),WQAzn:function(e,t){return e(t)},zEqlQ:`global`};r[n(540,`rSET`)](Se,t);let i=t[n(1388,`1Zwv`)+`hs`]??ve;return new d({name:n(699,`@oTl`)+`me`})[n(1530,`^^j9`)]({as:r[n(1275,`U]y(`)]},()=>({runtimeStatus:V()}))[n(1086,`^^j9`)+`ndle`]({as:r[n(963,`jl*C`)]},async({request:e,set:a})=>{let o=n;if(e.method===r.KMHGh&&e[o(775,`7DZY`)][o(1220,`X*[W`)](o(1428,`g[G%`)+`es`)){let e=t[o(951,`7#Yu`)]??r[o(647,`S5Cf`)],n=await r[o(810,`tycJ`)](P),i=r[o(501,`7#Yu`)](t[o(1236,`@oTl`)],void 0)?t[o(1256,`ynhv`)]:n?.[o(641,`tI[S`)+o(546,`7Qr(`)],s=!r[o(1435,`sILL`)](Bun[o(1163,`zh9C`)][o(630,`dx*c`)],o(1025,`okI)`))&&T(e)?1/0:r.HPCdh($,i);if(r[o(1039,`tycJ`)](await r[o(555,`XOpo`)](Te,t),s))return a[o(833,`mcuw`)]=403,{status:r[o(496,`kobt`)],message:o(461,`Fswn`)+o(1516,`SeOF`)+o(1406,`])wM`)+s+o(1152,`&G9b`)+(r[o(820,`1Zwv`)](s,1)?``:`s`)+(o(986,`tycJ`)+o(755,`kYJC`)+o(1265,`!7Yu`)+o(1327,`Fswn`)+o(1108,`mcuw`)+`ense to create addit`+o(999,`S5Cf`)+`s.`),reference:r[o(955,`kobt`)]}}return we(e,a,i)})}var G=class extends Error{[e(936,`XOpo`)]=403;[e(976,`tycJ`)+`atus`];[e(656,`g[G%`)];constructor(t,n=e(1056,`g[G%`)+e(536,`jJVg`),r=e(709,`7#Yu`)+e(662,`kYJC`)){let i=e;super(t),this.name=i(945,`]kS&`)+`biddenError`,this[i(593,`S5Cf`)]=n,this[i(903,`tI[S`)+i(791,`7DZY`)]=r}};function be(t){let n=e,r={proOA:`x-site-id`,QeOlY:n(1517,`zdSq`),wMtaW:n(1374,`XOpo`),zpCln:function(e,t,n,r,i){return e(t,n,r,i)},AYUDa:n(1434,`&hD&`)+`thorized`,SIttz:n(1287,`mcuw`)+n(627,`zh9C`),tIxOe:function(e,t,n){return e(t,n)},jwuPE:`entitlement-unauthor`+n(1302,`6W9l`),QnvDc:n(481,`jRSt`)+n(1330,`sILL`)+`d`,Gbwbc:n(991,`rSET`),TQbSy:n(918,`&G9b`)},{feature:i,stage:a=r[n(1324,`7#Yu`)],requiredEntitlement:o}=t;return new d({name:`runtimeFea`+n(578,`Njfh`)+i})[n(479,`tI[S`)]({as:r.TQbSy},async e=>{let o=n,{headers:s}=e,c=e[o(968,`Fswn`)+`t`],l;t[o(970,`7Qr(`)+`eId`]&&(l=await t[o(970,`7Qr(`)+o(1081,`kobt`)](e)),l||=e[o(1369,`NMHr`)+o(805,`6W9l`)]??c?.[o(629,`oqyn`)]?.id??s[r[o(1258,`&G9b`)]];let u=t[o(1237,`XOpo`)]??(typeof Bun===r[o(706,`n9Aq`)]?void 0:Bun[o(1191,`Je()`)]?.[o(966,`U]y(`)+`IN`])??r[o(1367,`tycJ`)];return{featureContext:r.zpCln(ge,i,a,l,u)}})[n(1086,`^^j9`)+`ndle`]({as:n(1176,`]kS&`)},async e=>{let a=n,{set:s,featureContext:c}=e;if(!c||!c[a(702,`zh9C`)])throw s[a(744,`7Qr(`)]=403,new G(c?.[a(417,`1Zwv`)]??a(1181,`GD][`)+i+(a(1001,`kYJC`)+a(1067,`]kS&`)+a(631,`Njfh`)+`cense stage.`),r.AYUDa,r.SIttz);if(o&&!r[a(1026,`P50[`)](Le,o,t[a(512,`rSET`)]))throw s[a(839,`jRSt`)]=403,new G(a(1022,`P50[`)+i+(a(446,`!7Yu`)+a(528,`jRSt`)+a(436,`Fswn`))+o+`".`,r[a(449,`XOpo`)],r[a(1502,`s5L$`)]);if(t[a(738,`tI[S`)+a(636,`&G9b`)]&&c.siteId&&!await t.isSiteEnabled(c[a(531,`GD][`)],i))throw s[a(494,`]kS&`)]=403,new G(a(1280,`n9Aq`)+i+(a(482,`[FMn`)+a(1292,`6!o6`)+`is site.`),r.QnvDc,a(1203,`@oTl`)+a(1045,`Njfh`))})}async function xe(t={}){let n=e,r={OoXvZ:function(e,t){return e===t},wtqxI:`production`,RKjtM:function(e,t){return e(t)},ovAmI:function(e,t){return e(t)},xTwzn:`valid`,iSgFN:function(e,t){return e(t)},OPAcN:n(1466,`tycJ`),NJJKp:`unreachabl`+n(643,`7DZY`),FYiqD:function(e,t){return e===t},KmJnr:n(883,`@oTl`),DoTmZ:function(e,t,n){return e(t,n)}},i=t[n(1345,`jJVg`)]??`localhost`,a=r[n(1286,`kYJC`)](Bun[n(727,`Z@ID`)][n(470,`L&vX`)],r[n(508,`kobt`)]);if(r.RKjtM(T,i)&&!a)return r.ovAmI(B,r[n(1118,`^^j9`)]),null;let o=await P();if(!o?.[n(1033,`L&vX`)+n(1348,`BEaJ`)])return r.RKjtM(B,t[n(769,`Fswn`)+`pComplete`]?r[n(588,`dx*c`)]:n(1098,`7Qr(`)+`e`),null;let s=await r[n(983,`Njfh`)](fe,{token:o[n(1344,`SeOF`)+n(1210,`sILL`)],domain:i,routingMode:t[n(1097,`g[G%`)+`e`]??r[n(1472,`XOpo`)],installationId:o[n(440,`6!o6`)+n(1070,`zdSq`)],lastSuccessfulCheckAt:o[`lastSucces`+n(930,`NMHr`)+`t`],gracePeriodDays:30,runtimeOptions:{publicKeyPem:t[n(1051,`7#Yu`)],allowOfflineGrace:!0,lastSuccessfulCheckAt:o[n(1402,`$2Ce`)+n(617,`])wM`)+`t`],gracePeriodDays:30}});return r[n(1325,`&hD&`)](s[n(524,`tI[S`)],r[n(1415,`jRSt`)])?(s[n(1408,`sILL`)]&&await r[n(1261,`sILL`)](F,s[n(1107,`7#Yu`)]),B(n(454,`GD][`))):r[n(1325,`&hD&`)](s[n(994,`@oTl`)],r[n(1409,`^^j9`)])?B(r[n(761,`GD][`)]):r[n(1457,`tycJ`)](s[n(1064,`Njfh`)],r.KmJnr)&&(r[n(959,`Fswn`)](B,r[n(1232,`1S73`)],s[n(1378,`$2Ce`)]),t[n(1505,`$2Ce`)+`te`]&&t[n(401,`7#Yu`)+`te`]()),s}async function Se(t={}){let n=e,r={xILoL:function(e,t){return e(t)},bqNTS:function(e,t){return e===t},EMlAh:n(910,`Fswn`),QhqSW:n(798,`XOpo`),CRwOD:function(e){return e()},AqIhn:`unavailable`,HlRqJ:n(447,`&G9b`)+`match`,dgvgb:function(e,t){return e>t},rewgN:function(e,t,n){return e(t,n)},xdRnl:`invalid`,ZcncY:n(1379,`^^j9`)+n(1322,`L&vX`)+n(1012,`jRSt`),MggTT:function(e,t){return e(t)},HUhVJ:function(e,t){return e*t},XIImo:function(e,t){return e*t}};if(!(t[n(583,`]kS&`)+n(1141,`X*[W`)]??(!Bun[n(1191,`Je()`)][n(424,`jJVg`)]||Bun.env[n(1279,`Je()`)]===`0`)))return;let i=t[n(1144,`Je()`)]??n(491,`P50[`);t[n(705,`X*[W`)+`te`]&&r[n(960,`jl*C`)](le,t[n(1452,`&hD&`)+`te`]);let a=r[n(1225,`jl*C`)](Bun[n(564,`&hD&`)][n(486,`Je()`)],r.EMlAh);if(r[n(1284,`Njfh`)](T,i)&&!a){B(r[n(1276,`okI)`)]);return}let o=await r.CRwOD(P),s=t[n(1219,`&hD&`)]===void 0?o?.[n(667,`6W9l`)+n(855,`s5L$`)]:t[n(852,`oqyn`)];if(!s){r[n(427,`&hD&`)](B,t[n(718,`&hD&`)+n(1014,`sILL`)]?r[n(526,`g[G%`)]:r.AqIhn);return}if(!Z(s,i,{publicKeyPem:t[n(862,`n9Aq`)],allowOfflineGrace:!0,lastSuccessfulCheckAt:o?.[n(1270,`rSET`)+n(892,`Fswn`)+`t`],gracePeriodDays:30})){B(n(579,`!7Yu`),r[n(1072,`^^j9`)]);return}if(r[n(1115,`Njfh`)](await Te(t),!a&&r[n(1338,`HZT$`)](T,i)?1/0:r[n(1088,`sILL`)]($,s))){r[n(1411,`6!o6`)](B,r.xdRnl,r[n(909,`NMHr`)]);return}r[n(789,`zdSq`)](B,r[n(759,`jl*C`)]);let c=t[n(1289,`&hD&`)+n(1253,`kYJC`)]??1,l=r[n(989,`!7Yu`)](r.HUhVJ(r[n(492,`zdSq`)](r[n(1089,`SeOF`)](Math[n(887,`7Qr(`)](1,c),24),60),60),1e3),u=r[n(1356,`7#Yu`)](setInterval,()=>{xe(t)},l);r[n(1170,`g[G%`)](typeof u[n(1447,`XOpo`)],n(1425,`okI)`))&&u[n(655,`7Qr(`)]()}function Ce(t,n,r){let i=e,a={ndPwK:function(e,t){return e===t},YNNAp:function(e,t){return e===t},fvMex:i(1074,`!7Yu`)+`e`,JOqyU:i(1241,`Njfh`),pEoYV:i(425,`P50[`),cJEnB:i(597,`Fswn`),Iumtc:i(1478,`g[G%`)+`co`};return r[i(509,`sILL`)](t)?!0:n===i(640,`$2Ce`)?a[i(825,`L&vX`)](t,`/install/upgrade-lic`+i(577,`$2Ce`)):a[i(844,`kYJC`)](n,a.fvMex)?a.ndPwK(t,a.JOqyU)||t[i(548,`S5Cf`)](a[i(826,`s5L$`)])||t[i(954,`1S73`)](a[i(1242,`zh9C`)])||t[i(445,`n9Aq`)](`/_`)||t===a[i(380,`Z@ID`)]:!1}function we(t,n,r=ve,i=Bun.env.NODE_ENV===e(910,`Fswn`)){let a=e,o={rTeGr:a(383,`])wM`)+a(679,`s5L$`),HswKg:a(432,`L&vX`),jomUw:function(e,t){return e(t)},kxFzF:a(1453,`^^j9`)+a(1019,`6!o6`),VcZpf:a(732,`oqyn`)+a(1204,`XOpo`)+a(639,`6!o6`)+a(911,`jl*C`)+a(919,`7#Yu`)+a(603,`])wM`)+`his domain.`,GQHAe:`public-hos`+a(1321,`Njfh`)+a(1015,`kYJC`),DCjWT:function(e,t){return e===t},Sbzjc:`valid`,Suoom:a(1136,`Njfh`)+`e-fallback`,SZcUc:a(537,`BEaJ`)+`e`},{status:s,reference:c}=V(),l=[t[a(649,`dx*c`)].get(o[a(621,`okI)`)]),t[a(1303,`jJVg`)][a(1211,`])wM`)](o[a(1288,`SeOF`)])].filter(Boolean);for(let e of l){let t=e[a(1521,`s5L$`)](`,`)[0][a(1431,`kobt`)]()[a(633,`1S73`)](`:`)[0][a(914,`kYJC`)+`e`]();if(t&&o.jomUw(C,t)&&o[a(790,`^^j9`)](T,Bun[a(522,`1Zwv`)][a(763,`!7Yu`)+`IN`]||a(438,`mcuw`)))return n[a(1531,`zh9C`)]=403,{status:o[a(676,`L&vX`)],message:o[a(865,`n9Aq`)],reference:o.GQHAe}}if(!(o.DCjWT(s,o[a(1449,`kobt`)])||o[a(851,`Je()`)](s,o[a(1397,`&G9b`)]))&&(i||!o.DCjWT(s,o[a(598,`kYJC`)]))&&!Ce(new URL(t.url).pathname.replace(/\/+$/,``)||`/`,s,r))return n[a(744,`7Qr(`)]=503,o[a(1063,`]kS&`)](s,o[a(582,`6!o6`)])?{status:`license_un`+a(1358,`S5Cf`),message:`This JChat`+a(1483,`mcuw`)+a(466,`zh9C`)+a(460,`zh9C`)+a(965,`rSET`)+a(1493,`Njfh`)+a(800,`Je()`)+a(712,`7Qr(`),reference:c}:{status:o[a(1357,`Je()`)],message:a(1380,`rSET`)+` installation is dis`+a(888,`oqyn`)+a(884,`mcuw`)+a(901,`g[G%`)+a(673,`SeOF`),reference:c}}async function Te(t){let n=e,r={iLBsG:function(e,t){return e in t},ktcxE:n(592,`tI[S`),SpdZI:function(e,t){return e!==t},cihsE:function(e,t){return e(t)}};if(t.getSiteCount)try{return await t[n(550,`Njfh`)+`nt`]()}catch{return 0}let i=Bun[n(1371,`n9Aq`)][n(495,`rSET`)+`RL`];if(i&&typeof Bun!==n(1282,`[FMn`)&&r.iLBsG(r[n(1528,`7Qr(`)],Bun))try{let e=new Bun[n(646,`Fswn`)](i),t=await e`SELECT count(*)::int as count FROM sites WHERE deleted_at IS NULL`;if(await e.close(),r[n(606,`sILL`)](t?.[0]?.[n(485,`S5Cf`)],void 0)&&r[n(1363,`6!o6`)](t[0][n(1420,`rSET`)],null))return r.cihsE(Number,t[0][n(1173,`Je()`)])}catch{}return 0}function Ee(n,r=typeof Bun===e(1518,`1S73`)?process.env:Bun[e(796,`Fswn`)],i=t,a=b){let s=e,c={vvCXo:function(e,t){return e===t},CirtC:s(1083,`U]y(`),PYRBP:function(e,t){return e===t},boUvr:function(e,t){return e!==t},QWGbP:`undefined`,qFIYk:function(e,t){return e===t},lbCkF:function(e,t,n){return e(t,n)},IHzEQ:function(e,t){return e(t)},OvrKZ:function(e,t,n,r){return e(t,n,r)}},l=c.vvCXo(r[s(650,`SeOF`)],c[s(897,`tI[S`)])||c[s(1082,`SeOF`)](typeof r[s(1496,`tI[S`)],s(1364,`7Qr(`))&&(c[s(1305,`BEaJ`)](typeof Bun,c.QWGbP)&&Bun[s(1360,`oqyn`)]?.[s(1068,`zdSq`)]===s(829,`S5Cf`)||c[s(1305,`BEaJ`)](typeof process,c[s(534,`S5Cf`)])&&c[s(785,`kYJC`)](process.env?.NODE_ENV,c[s(1004,`1S73`)]))?`production`:i,u;try{u=n.parse(r)}catch{let e=o[s(1213,`zh9C`)+`s`](64)[s(894,`7#Yu`)](s(898,`]kS&`));return u={...r,JCHAT_PORT:r[s(764,`P50[`)]?c[s(1034,`sILL`)](parseInt,c[s(972,`kobt`)](String,r.JCHAT_PORT),10):3e3,JCHAT_COOKIE_SECRET:e},{...u,JCHAT_COOKIE_SECRET:e,SYSTEM_BOOTSTRAP_COMPLETE:!1}}return c[s(801,`1S73`)](De,u,l,a)}function K(e,t){e-=372;let n=L(),r=n[e];if(K.lxpLAN===void 0){var i=function(e){let t=``,n=``,r=t+i,a=(``+function(){return 0}).indexOf(`
|
|
8
|
+
`)!==-1;for(let n=0,i,o,s=0;o=e.charAt(s++);~o&&(i=n%4?i*64+o:o,n++%4)&&(t+=a||r.charCodeAt(s+10)-10!=0?String.fromCharCode(255&i>>(-2*n&6)):n))o=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=`.indexOf(o);for(let e=0,r=t.length;e<r;e++)n+=`%`+(`00`+t.charCodeAt(e).toString(16)).slice(-2);return decodeURIComponent(n)};K.lOkdZU=function(e,t){let n=[],r=0,a,o=``;e=i(e);let s=0;for(;s<256;s++)n[s]=s;for(s=0;s<256;s++)r=(r+n[s]+t.charCodeAt(s%t.length))%256,a=n[s],n[s]=n[r],n[r]=a;s=0,r=0;for(let t=0;t<e.length;t++)s=(s+1)%256,r=(r+n[s])%256,a=n[s],n[s]=n[r],n[r]=a,o+=String.fromCharCode(e.charCodeAt(t)^n[(n[s]+n[r])%256]);return o},K.nPfuSU={},K.lxpLAN=!0}let a=n[0];K.tQSZqH!==a&&(K.nPfuSU={},K.tQSZqH=a);let o=K.nPfuSU[e];if(o===void 0){if(K.SWRUkI===void 0){let e=function(e){this.arPfgE=e,this.fHpDhV=[1,0,0],this.vGpPlK=function(){return`newState`},this.kFgzcT=`\\w+ *\\(\\) *{\\w+ *`,this.MvnVBI=`['|"].+['|"];? *}`};e.prototype.heDdBd=function(){let e=new RegExp(this.kFgzcT+this.MvnVBI).test(this.vGpPlK.toString())?--this.fHpDhV[1]:--this.fHpDhV[0];return this.gpfLyD(e)},e.prototype.gpfLyD=function(e){return~e?this.uWsulI(this.arPfgE):e},e.prototype.uWsulI=function(e){for(let e=0,t=this.fHpDhV.length;e<t;e++)this.fHpDhV.push(Math.round(Math.random())),t=this.fHpDhV.length;return e(this.fHpDhV[0])},(``+function(){return 0}).indexOf(`
|
|
9
|
+
`)===-1&&new e(K).heDdBd(),K.SWRUkI=!0}r=K.lOkdZU(r,t),K.nPfuSU[e]=r}else r=o;return r}function De(t,n=`production`,r=b){let i=e,a={toMig:function(e,t){return e!==t},RGxxJ:function(e,t){return e===t},xvYgn:i(988,`&G9b`),ovffa:i(768,`$2Ce`),Xdrgv:function(e,t){return e===t},wMBoZ:function(e){return e()},NdOhS:i(1274,`n9Aq`)+i(961,`ynhv`),eGzEG:i(1395,`sILL`),Oraas:function(e,t){return e===t},aljHx:function(e,t){return e(t)},BxxWv:function(e,t){return e(t)},kqqMJ:`A valid in`+i(628,`BEaJ`)+i(1320,`NMHr`)+i(905,`Njfh`)+` required `+i(1269,`!7Yu`)+i(572,`1Zwv`)+`yments.`,IYPpv:function(e,t){return e||t},LgmwA:function(e,t){return e(t)},dGdAa:function(e,t,n,r){return e(t,n,r)},qCteQ:i(1401,`BEaJ`),hFivI:function(e,t){return e===t},bNmcL:i(749,`jJVg`)+`t`,jGWpl:i(670,`SeOF`),WxKEq:function(e,t){return e+t}},s={...t},c=!0;a[i(806,`6W9l`)](typeof s[i(567,`g[G%`)+i(765,`1S73`)],i(474,`dx*c`))&&(s[i(956,`U]y(`)+`IE_SECRET`]=``);try{let e=a[i(933,`dx*c`)](s[i(486,`Je()`)],a[i(1062,`7DZY`)])||typeof s[i(372,`6!o6`)]===a.ovffa&&typeof Bun!==a[i(503,`L&vX`)]&&a.Xdrgv(Bun[i(1246,`L&vX`)]?.[i(1326,`jl*C`)],a[i(538,`Fswn`)]),t=M(),l=t?.[i(931,`HZT$`)+i(638,`kobt`)]??a[i(1311,`kobt`)](N);if(a[i(793,`rSET`)](n,a[i(1486,`6W9l`)])&&!e)c=!0;else if(!l)c=!1,(a.Xdrgv(n,a[i(1314,`jJVg`)])||e)&&(s[i(882,`s5L$`)+i(1381,`!7Yu`)]=o[i(814,`sILL`)+`s`](64)[i(418,`zh9C`)](i(980,`X*[W`)));else{let u=a.RGxxJ(typeof s[i(1328,`@oTl`)+`IN`],a[i(920,`6!o6`)])?s.JCHAT_DOMAIN:void 0,d=a[i(1336,`P50[`)](typeof s[i(1525,`jJVg`)],a[i(1120,`S5Cf`)])?s.NODE_ENV:void 0;if(!u||!a[i(1035,`g[G%`)](w,u)||a[i(1477,`ynhv`)](d,a[i(1489,`P50[`)])&&!a[i(803,`7#Yu`)](C,u))throw Error(a[i(860,`zdSq`)]);let f=a.IYPpv(u,`localhost`),p=a[i(613,`!7Yu`)](X,r);if(!a[i(1438,`1S73`)](Z,l,f,{publicKeyPem:p,allowOfflineGrace:!0,lastSuccessfulCheckAt:t?.[i(552,`[FMn`)+i(1096,`HZT$`)+`t`]}))c=!1,(a[i(1046,`n9Aq`)](n,a[i(977,`GD][`)])||e)&&(s[i(1455,`jl*C`)+i(1059,`$2Ce`)]=o[i(1049,`kobt`)+`s`](64)[i(1217,`sILL`)](a[i(510,`HZT$`)]));else{let t=Y(l);if(a[i(730,`kYJC`)](d,a[i(1489,`P50[`)])&&a[i(499,`XOpo`)](t?.[i(381,`])wM`)+`t`],a.bNmcL))c=!1,(a[i(1433,`mcuw`)](n,a[i(619,`ynhv`)])||e)&&(s[i(664,`Z@ID`)+i(756,`1Zwv`)]=o[i(1260,`kYJC`)+`s`](64)[i(609,`6W9l`)](a[i(1116,`kobt`)]));else{let e=l[i(816,`sILL`)](`.`),n=e[2]||``;if(n&&t){let r=(t[i(950,`Je()`)]??[i(691,`Je()`)]).slice().sort()[i(388,`n9Aq`)](`,`),c=t[i(1513,`Z@ID`)]??a.jGWpl,l=o.createHmac(i(1298,`tycJ`),n)[i(487,`[FMn`)](e[0]+`.`+e[1]+`:`+t[i(473,`1S73`)]+`:`+t[i(549,`1Zwv`)+i(523,`Je()`)]+`:`+r+`:`+c)[i(866,`7#Yu`)](a[i(412,`[FMn`)]);s[i(1243,`rSET`)+i(1084,`mcuw`)]=a[i(525,`6W9l`)](s[i(788,`&hD&`)+`IE_SECRET`],l)}}}}}catch{c=!1,s[`JCHAT_COOK`+i(1023,`kYJC`)]=o[i(1474,`X*[W`)+`s`](64)[i(835,`rSET`)](a[i(375,`^^j9`)])}return s[i(1479,`6!o6`)+i(696,`&hD&`)+i(995,`g[G%`)]=c,s}function q(t){let n=e;return{TGRJg:function(e,t){return e===t}}[n(1451,`jl*C`)](typeof t,n(431,`^^j9`))&&t!==null&&!Array.isArray(t)}function J(t){let n=e,r={UwHUl:function(e,t){return e===t},OVZGX:n(1250,`oqyn`),mtbNV:function(e,t){return e>t}};return r[n(1331,`Z@ID`)](typeof t,r.OVZGX)&&r[n(674,`BEaJ`)](t[n(875,`Je()`)]()[n(1166,`NMHr`)],0)}function Oe(t){let n=e,r={tOkEi:n(739,`Njfh`)};if(!t)return null;try{return JSON[n(1114,`6W9l`)](Buffer[n(967,`s5L$`)](t,`base64url`)[n(1390,`g[G%`)](r[n(774,`$2Ce`)]))}catch{return null}}function ke(t){let n=e,r={aSEsh:function(e,t){return e!==t},YnNLK:function(e,t){return e(t)},KfLVM:function(e,t){return e!==t},XQUAv:n(799,`U]y(`),JXfUY:n(863,`jJVg`)},i=t[n(1400,`XOpo`)](`.`);if(r[n(981,`tI[S`)](i[n(703,`7Qr(`)],3))return null;let a=r[n(1052,`tI[S`)](Oe,i[0]);return!q(a)||r[n(937,`7Qr(`)](a.alg,`RS256`)||r[n(916,`^^j9`)](a[n(1430,`&hD&`)],r.XQUAv)?null:{alg:r[n(733,`]kS&`)],typ:r[n(737,`[FMn`)]}}function Ae(t){let n=e,r={kPDFM:function(e,t){return e(t)},YUiVG:function(e,t){return e(t)},PyTUy:function(e,t){return e(t)},sWNKa:function(e,t){return e!==t},GyhGp:`jchat`,JVYvU:n(829,`S5Cf`),rqiPT:`development`,FvSzx:`path`,zgmlT:n(1495,`zdSq`),sCUsy:function(e,t){return e<t},BpFzC:n(573,`ynhv`),BRbCD:n(797,`sILL`),IVNOW:`beta`,WXmOi:n(717,`1Zwv`)+`al`,vByUu:function(e,t){return e!==t},fZPtc:function(e,t){return e!==t},xkHdX:function(e,t){return e(t)},OUOlM:function(e,t){return e===t},cmbAU:function(e,t){return e===t},PgUFQ:function(e,t){return e===t},BgUtf:function(e,t){return e(t)},PyIOg:function(e,t){return e!==t},qLeCr:function(e,t){return e!==t}};if(!r[n(778,`!7Yu`)](q,t))return null;let{iss:i,aud:a,licenseId:o,domain:s,buyer:c,installationId:l,plan:u,entitlements:d,purchaseProvider:f,environment:p,routingMode:m,iat:h,exp:g,isTrial:_,stages:v,channel:y,limits:b}=t;if(!J(i)||!r[n(504,`6W9l`)](J,a)||!r.YUiVG(J,o)||!r[n(1387,`SeOF`)](J,s)||!r[n(773,`tycJ`)](J,c)||!r[n(651,`HZT$`)](J,l)||!J(u)||!Array[n(599,`X*[W`)](d)||!d.every(J)||r[n(566,`]kS&`)](f,n(1444,`s5L$`))&&f!==r[n(407,`])wM`)]||p!==r[n(1497,`S5Cf`)]&&p!==r.rqiPT||m!==r[n(377,`&hD&`)]&&r[n(1490,`kobt`)](m,n(605,`GD][`))||typeof h!==r[n(741,`zdSq`)]||!Number[n(1458,`X*[W`)+n(1295,`kobt`)](h)||r.sCUsy(h,0)||r.sWNKa(g,void 0)&&(r[n(1212,`^^j9`)](typeof g,r[n(484,`Z@ID`)])||!Number[n(533,`GD][`)+n(580,`X*[W`)](g)||r.sCUsy(g,0))||_!==void 0&&typeof _!==r[n(1159,`6!o6`)])return null;let ee=new Set([r[n(1323,`Fswn`)],r[n(1524,`&G9b`)],r.WXmOi,n(1184,`&G9b`)]),x;if(r[n(1347,`mcuw`)](v,void 0)){if(!Array[n(1296,`6!o6`)](v)||!v[n(594,`s5L$`)](e=>typeof e===n(1339,`&G9b`)&&ee.has(e)))return null;x=v}let w=new Set([r[n(1335,`kobt`)],n(841,`]kS&`)]),T;if(r[n(974,`Njfh`)](y,void 0)){if(typeof y!==n(1087,`Njfh`)||!w[n(457,`g[G%`)](y))return null;T=y}let E;if(b!==void 0){if(!r[n(419,`zh9C`)](q,b)||typeof b[n(908,`okI)`)]!=`number`||!Number[`isSafeInte`+n(1002,`Je()`)](b[n(1179,`kYJC`)]))return null;E={maxSites:b[n(1526,`X*[W`)],...r[n(868,`SeOF`)](typeof b[n(1315,`6!o6`)+n(1030,`7#Yu`)],r.zgmlT)&&Number[n(1090,`Fswn`)+n(1515,`P50[`)](b[n(996,`XOpo`)+`rSite`])?{maxRoomsPerSite:b[n(544,`kobt`)+`rSite`]}:{}}}let D;try{D=r[n(648,`1Zwv`)](S,s)}catch{return null}return r[n(1488,`GD][`)](p,`development`)&&!D.isLocalhost||r.PgUFQ(p,r.JVYvU)&&!r[n(443,`^^j9`)](C,s)?null:{iss:i,aud:a,licenseId:o,domain:s,buyer:c,installationId:l,plan:u,entitlements:d,purchaseProvider:f,environment:p,routingMode:m,iat:h,...r.sWNKa(g,void 0)?{exp:g}:{},...r[n(929,`&G9b`)](_,void 0)?{isTrial:_}:{},...r[n(671,`1S73`)](x,void 0)?{stages:x}:{},...r[n(1482,`mcuw`)](T,void 0)?{channel:T}:{},...r[n(1520,`jRSt`)](E,void 0)?{limits:E}:{}}}function Y(t){let n=e,r={Mlqxq:function(e,t){return e!==t},kfdjB:function(e,t){return e(t)},ETGpA:function(e,t){return e(t)},MNhFU:function(e,t){return e(t)}},i=t[n(1400,`XOpo`)](`.`);return r[n(1150,`U]y(`)](i[n(735,`GD][`)],3)||!i[n(1158,`jJVg`)](Boolean)||!r[n(575,`Z@ID`)](ke,t)?null:r[n(1461,`&G9b`)](Ae,r.MNhFU(Oe,i[1]))}function X(t){let n=e,r={lVbwT:n(586,`zh9C`),DNgse:n(768,`$2Ce`),zMVCx:function(e,t){return e===t}};return typeof Bun!==n(1123,`!7Yu`)&&Bun.env?.[n(650,`SeOF`)]===r[n(1171,`zdSq`)]||typeof process!==r[n(848,`okI)`)]&&r[n(1157,`jRSt`)](process.env?.NODE_ENV,r[n(409,`7Qr(`)])||!t?b:t}function Z(t,n,r){let i=e,a={kHlaM:i(1389,`SeOF`)+i(1351,`tycJ`)+i(928,`kYJC`),sQyCY:function(e,t){return e!==t},sJiUa:function(e,t){return e(t)},koRgi:i(1476,`jl*C`)+i(1208,`&hD&`)+i(973,`]kS&`),vUrzW:i(678,`U]y(`),jUKzF:function(e,t){return e(t)},PZzcd:function(e,t){return e!==t},ZXFnp:`subdomain`,ekzXM:function(e,t){return e!==t},CPlVU:function(e,t){return e>t},IqmtP:function(e,t){return e/t},vmyeh:function(e,t){return e>t},RPNnP:function(e,t){return e-t},kGFvI:i(1396,`X*[W`),WeCkZ:i(408,`rSET`)};if(!t||t===a[i(864,`GD][`)])return!1;try{let e=t[i(836,`BEaJ`)](`.`);if(a.sQyCY(e[i(1443,`jJVg`)],3)||!ke(t))return!1;let s=a[i(1484,`XOpo`)](Y,t);if(!s)return!1;let c=r?.[i(857,`GD][`)]??Bun[i(982,`P50[`)][i(934,`HZT$`)+i(1441,`oqyn`)]??a[i(568,`jl*C`)],l=r?.audience??Bun[i(441,`tycJ`)][i(556,`okI)`)+`NSE_AUDIENCE`]??a[i(724,`n9Aq`)];if(s.iss!==c||s[i(843,`SeOF`)]!==l)return!1;let u=S(n)[i(625,`oqyn`)],d=a[i(403,`X*[W`)](S,s[i(1117,`zh9C`)]).host;if(a[i(637,`oqyn`)](u,d)&&(a[i(1342,`ynhv`)](s[i(1129,`jRSt`)+`e`],a[i(1043,`jl*C`)])||!u[i(747,`NMHr`)](`.`+d)))return!1;if(a[i(1429,`zh9C`)](s.exp,void 0)&&a[i(453,`1Zwv`)](Math.floor(a[i(634,`!7Yu`)](Date[i(1216,`jRSt`)](),1e3)),s[i(1061,`ynhv`)])){if(r?.[i(451,`X*[W`)+i(1283,`ynhv`)]&&r[i(1192,`U]y(`)+i(514,`7Qr(`)+`t`]){let e=Date[i(890,`ynhv`)](r[`lastSucces`+i(1028,`Z@ID`)+`t`]),t=r[i(428,`6!o6`)+i(1048,`HZT$`)]??30;if(Number[i(1439,`jl*C`)](e)||a[i(601,`kYJC`)](a[i(878,`jl*C`)](Date[i(847,`U]y(`)](),e)/864e5,t))return!1}else return!1}let f=Buffer[i(904,`]kS&`)](e[0]+`.`+e[1]),p=Buffer[i(1031,`kobt`)](e[2].replace(/-/g,`+`)[i(616,`X*[W`)](/_/g,`/`),a[i(925,`dx*c`)]),m=a.jUKzF(X,r?.publicKeyPem);return o[i(792,`GD][`)](a.WeCkZ,f,m,p)}catch{return!1}}function Q(t,n,r,i){let a=e,o={SqtfX:function(e,t,n,r){return e(t,n,r)},YbfGU:function(e,t){return e(t)}};if(!o.SqtfX(Z,t,n,i))return!1;let s=o.YbfGU(Y,t);return s?s[a(488,`s5L$`)+a(1070,`zdSq`)]===r:!1}function je(t,n,r,i){let a=e,o={NDaeI:function(e,t,n,r){return e(t,n,r)},LMeAj:function(e,t){return e(t)}};return o[a(1094,`Je()`)](Z,t,n,i)?o[a(465,`sILL`)](Y,t)?.entitlements?.[a(752,`[FMn`)](r)??!1:!1}function Me(t,n=e(1529,`SeOF`),r){let i=e,a={whgTg:function(e,t,n,r){return e(t,n,r)},tCFFm:function(e,t){return e(t)},sTssF:function(e,t){return e===t},KnWuj:`development`,WKBtT:function(e,t){return e(t)},RrbsI:function(e,t){return e>t},pQvVV:function(e,t){return e(t)}};if(!t||!a[i(396,`6W9l`)](Z,t,n,r))return!1;let o=a[i(389,`jJVg`)](Y,t);return o?a.sTssF(o[i(561,`sILL`)+`t`],a.KnWuj)&&a[i(721,`kobt`)](T,n)?!0:a[i(458,`n9Aq`)](a[i(1481,`SeOF`)]($,t),1)||(o[i(521,`BEaJ`)+`ts`]?.[i(404,`GD][`)](`site.creat`+i(818,`mcuw`))??!1):!1}function Ne(t,n,r=e(987,`6!o6`),i){let a=e;return!t||i&&!Z(t,r,i)?!1:{OAnzS:function(e,t){return e(t)}}[a(1245,`jl*C`)](Y,t)?.[a(399,`kYJC`)+`ts`]?.[a(1183,`dx*c`)](n)??!1}function Pe(t,n,r=`localhost`,i){let a=e,o={GznCv:function(e,t){return e===t},YRuQS:a(943,`jRSt`),jWsZG:a(1440,`jRSt`),yoiIC:function(e,t,n,r){return e(t,n,r)},sCzch:function(e,t){return e(t)}};return o.GznCv(n,o[a(807,`SeOF`)])||o[a(1262,`tI[S`)](n,o[a(1494,`XOpo`)])?!0:!t||i&&!o.yoiIC(Z,t,r,i)?!1:(o.sCzch(Y,t)?.[a(686,`Fswn`)]??[`stable`])[a(1228,`oqyn`)](n)}function $(t){let n=e;return t?{DhJvW:function(e,t){return e(t)}}[n(1448,`6!o6`)](Y,t)?.[n(707,`XOpo`)]?.[n(1135,`GD][`)]??1:1}function Fe(t,n=e(1319,`6W9l`),r){let i=e,a={dtxOK:`stable`,qLVOf:function(e,t){return e(t)}};return t?r&&!Z(t,n,r)?a[i(1263,`SeOF`)]:a[i(1186,`Z@ID`)](Y,t)?.[i(871,`SeOF`)]??`stable`:i(1193,`Njfh`)}function Ie(t){let n=e,r={YJpGl:function(e,t){return e>t},GMIkY:function(e,t){return e(t)},TTorK:function(e,t,n){return e(t,n)},ArQUD:n(1463,`jJVg`)+`e.multi`};return r[n(750,`tycJ`)](r.GMIkY($,t),1)||r[n(379,`Je()`)](Ne,t,r[n(1519,`Fswn`)])}function Le(t,n){let r=e,a={OMaSo:function(e){return e()},eWxcc:function(e,t,n,r){return e(t,n,r)},GyniA:function(e,t){return e!==t},SRhpy:r(1403,`oqyn`),IdEtc:r(693,`dx*c`)};if(a[r(795,`^^j9`)](i))return!1;let o=a[r(924,`])wM`)](N);return o?a[r(1249,`SeOF`)](je,o,n??(a[r(1167,`Njfh`)](typeof Bun,a[r(817,`SeOF`)])?Bun[r(1091,`jJVg`)]?.[r(1268,`tI[S`)+`IN`]:void 0)??a[r(978,`U]y(`)],t):!1}function Re(t,n){let r=e,a={PJTIQ:function(e){return e()},esLsP:function(e,t){return e!==t},YDlwW:function(e,t){return e===t},qUxwe:`production`,GVQzt:function(e,t){return e!==t},ofuXl:`undefined`,tnFbg:function(e,t,n,r){return e(t,n,r)},NjfYs:function(e,t){return e(t)},nRwRz:r(711,`kobt`)+`t`,lYhdZ:function(e,t){return e(t)}};if(a[r(821,`U]y(`)](i))return 1/0;let o=a[r(1109,`SeOF`)](typeof Bun,r(589,`tycJ`))&&a[r(1155,`sILL`)](Bun.env?.[r(630,`dx*c`)],a[r(1226,`s5L$`)])||a.GVQzt(typeof process,r(584,`])wM`))&&a.YDlwW(process.env?.NODE_ENV,a[r(1076,`mcuw`)]),s=t??(a[r(517,`tI[S`)](typeof Bun,a[r(687,`X*[W`)])?Bun[r(1163,`zh9C`)]?.[r(692,`s5L$`)+`IN`]:void 0)??r(574,`Z@ID`),c=a[r(1041,`&G9b`)](N);if(!c||!a[r(411,`Njfh`)](Z,c,s,n))return 1;let l=Y(c);return o?a[r(754,`7DZY`)]($,c):a[r(809,`7DZY`)](l?.[r(1404,`n9Aq`)+`t`],a[r(783,`SeOF`)])&&T(s)?1/0:a[r(708,`Z@ID`)]($,c)}function ze(t){let n=e,r={aOAFE:function(e){return e()},lOhKc:function(e,t){return e!==t},sJMwQ:n(654,`tI[S`),FKAGh:function(e,t,n){return e(t,n)},dlDib:function(e){return e()}};if(r.aOAFE(i))return!0;let a=t??(r[n(545,`kobt`)](typeof Bun,`undefined`)?Bun[n(463,`7#Yu`)]?.[n(832,`7Qr(`)+`IN`]:void 0)??r[n(1405,`Njfh`)];return r[n(1011,`kobt`)](Me,r[n(1133,`S5Cf`)](N),a)}function Be(t=e(1037,`7Qr(`),n,r){let a=e,o={xchVk:function(e){return e()},SSpgT:a(1160,`zdSq`),IuCtr:function(e){return e()},sgDqo:function(e){return e()},YbdxL:a(1399,`SeOF`),asvJg:function(e,t){return e!==t},WkhJu:`localhost`,DurZV:function(e,t,n,r){return e(t,n,r)},ZDnIT:function(e,t){return e(t)}};if(o.xchVk(i))return o.SSpgT;let s=o[a(1111,`n9Aq`)](M)?.[a(757,`]kS&`)+a(1422,`oqyn`)]??o[a(1151,`6!o6`)](N),c=n??(typeof Bun===o[a(1354,`mcuw`)]?void 0:Bun[a(727,`Z@ID`)]?.[a(456,`]kS&`)+`IN`])??(o[a(1057,`])wM`)](typeof process,o[a(1456,`6W9l`)])?process.env?.JCHAT_DOMAIN:void 0)??o[a(506,`1Zwv`)];return!s||!o[a(1446,`$2Ce`)](Z,s,c,r)?t:o[a(1005,`mcuw`)](Y,s)?.plan??t}export{t as APPLICATION_DISTRIBUTION,n as APPLICATION_DISTRIBUTIONS,m as DEFAULT_LICENSE_AUDIENCE,p as DEFAULT_LICENSE_ISSUER,f as DEFAULT_LICENSE_SERVER_URL,ie as DEFAULT_STATE_PATH,G as FeatureForbiddenError,r as IS_DEVELOPER_SANDBOX,b as OFFICIAL_SIGNING_PUBLIC_KEY,U as activateRegistry,Ie as canCreateMultiSite,pe as checkAllowedStages,ze as checkCanCreateMultiSite,Le as checkHasEntitlement,Re as checkMaxSites,me as checkReleaseChannel,ae as createIdentity,ge as deriveFeatureExecutionContext,W as deriveFeatureKey,O as findRepoRoot,Be as getContextPlan,j as getDefaultStatePath,$ as getMaxSites,y as getOfficialSigningPublicKey,Fe as getReleaseChannel,E as getRootDomain,V as getRuntimeStatus,Ne as hasCapability,je as hasEntitlement,Pe as hasStageAccess,_e as installAndActivate,w as isAllowedConfiguredDomain,ue as isApplicationDisabled,i as isDeveloperSandbox,T as isLocalhostDomain,D as isMatchingDomain,Me as isMultiSiteAllowed,C as isPublicDomain,de as isRuntimeBlocked,ye as jchatRuntime,Ee as loadServerConfig,S as normalizeDomain,Y as parsePayload,P as readState,M as readStateSync,N as readTokenSync,R as recordAudit,xe as refreshLicenseLease,te as resolveActivationDomain,a as resolveApplicationDistribution,A as resolveDataDir,ne as resolveRuntimePaths,X as resolveSigningPublicKey,be as runtimeFeatureGuard,De as sealServerContext,B as setRuntimeStatus,Se as startRuntimeSupervisor,F as updateInstanceToken,Q as verifyEntitlement,he as verifyFeatureStageAccess,Z as verifySignature,oe as writeState};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jchat/runtime",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.29",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Runtime support package for JChat deployments.",
|
|
6
6
|
"keywords": [
|
|
@@ -23,6 +23,11 @@
|
|
|
23
23
|
"types": "./src/index.ts",
|
|
24
24
|
"import": "./src/index.ts",
|
|
25
25
|
"default": "./src/index.ts"
|
|
26
|
+
},
|
|
27
|
+
"./distribution": {
|
|
28
|
+
"types": "./src/distribution.ts",
|
|
29
|
+
"import": "./src/distribution.ts",
|
|
30
|
+
"default": "./src/distribution.ts"
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
"publishConfig": {
|
|
@@ -32,6 +37,10 @@
|
|
|
32
37
|
".": {
|
|
33
38
|
"types": "./dist/index.d.mts",
|
|
34
39
|
"import": "./dist/index.mjs"
|
|
40
|
+
},
|
|
41
|
+
"./distribution": {
|
|
42
|
+
"types": "./dist/distribution.d.mts",
|
|
43
|
+
"import": "./dist/distribution.mjs"
|
|
35
44
|
}
|
|
36
45
|
},
|
|
37
46
|
"access": "public"
|
|
@@ -50,6 +59,7 @@
|
|
|
50
59
|
"@jchat/shared": "workspace:*",
|
|
51
60
|
"@types/bun": "catalog:",
|
|
52
61
|
"elysia": "catalog:",
|
|
62
|
+
"javascript-obfuscator": "^5.8.1",
|
|
53
63
|
"tsdown": "catalog:",
|
|
54
64
|
"typescript": "catalog:",
|
|
55
65
|
"zod": "catalog:"
|