@kernhq/module-hr 0.17.1 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/contract/capabilities.d.ts.map +1 -1
  2. package/dist/contract/capabilities.js +10 -0
  3. package/dist/contract/capabilities.js.map +1 -1
  4. package/dist/contract/index.d.ts +1 -0
  5. package/dist/contract/index.d.ts.map +1 -1
  6. package/dist/contract/index.js +1 -0
  7. package/dist/contract/index.js.map +1 -1
  8. package/dist/contract/permissions.d.ts +8 -0
  9. package/dist/contract/permissions.d.ts.map +1 -1
  10. package/dist/contract/permissions.js +25 -0
  11. package/dist/contract/permissions.js.map +1 -1
  12. package/dist/contract/reports.d.ts +505 -0
  13. package/dist/contract/reports.d.ts.map +1 -0
  14. package/dist/contract/reports.js +328 -0
  15. package/dist/contract/reports.js.map +1 -0
  16. package/dist/contract/router.d.ts +422 -0
  17. package/dist/contract/router.d.ts.map +1 -1
  18. package/dist/contract/router.js +97 -0
  19. package/dist/contract/router.js.map +1 -1
  20. package/dist/server/router.d.ts +488 -0
  21. package/dist/server/router.d.ts.map +1 -1
  22. package/dist/server/router.js +439 -17
  23. package/dist/server/router.js.map +1 -1
  24. package/dist/server/services/ledger.d.ts.map +1 -1
  25. package/dist/server/services/ledger.js +27 -3
  26. package/dist/server/services/ledger.js.map +1 -1
  27. package/dist/server/services/reports.d.ts +321 -0
  28. package/dist/server/services/reports.d.ts.map +1 -0
  29. package/dist/server/services/reports.js +634 -0
  30. package/dist/server/services/reports.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/contract/capabilities.ts +10 -0
  33. package/src/contract/index.ts +1 -0
  34. package/src/contract/permissions.ts +27 -0
  35. package/src/contract/reports.ts +373 -0
  36. package/src/contract/router.ts +110 -0
@@ -3,6 +3,33 @@ import { type SubjectAppliers } from './services/approvals.js';
3
3
  import { AttendanceService } from './services/attendance.js';
4
4
  import { LedgerService } from './services/ledger.js';
5
5
  import { ResolveService } from './services/resolve.js';
6
+ /**
7
+ * The composed calendar over a range: this calendar's days over the ones it extends.
8
+ *
9
+ * Nearest wins per date and kind, and a day that shadows one from a calendar further down is
10
+ * marked `overrides` so the editor can show what it is replacing — which is what makes "we work
11
+ * through this national holiday" legible rather than looking like a missing holiday.
12
+ *
13
+ * At module scope, because it never needed the router's closure — only a `tx`. That is what lets
14
+ * `hrSubjects` below reach it, so the leave calculation a deadline runs reads the same calendar as
15
+ * the one a person runs.
16
+ */
17
+ export declare function composedDays(tx: Tx, workspaceId: string, calendarId: string, from: string, to: string): Promise<{
18
+ overrides: boolean;
19
+ kind: never;
20
+ source: "pack" | "custom";
21
+ workingFraction: number;
22
+ fromCalendarId: string;
23
+ fromCalendarName: string;
24
+ date: string;
25
+ createdAt: Date;
26
+ id: string;
27
+ workspaceId: string;
28
+ name: string;
29
+ calendarId: string;
30
+ paid: boolean;
31
+ note: string | null;
32
+ }[]>;
6
33
  /**
7
34
  * What a *decided* request does to its subject, and the calculation both halves of that stand on.
8
35
  *
@@ -8463,6 +8490,467 @@ export declare function implement_(kernel: Kernel): {
8463
8490
  };
8464
8491
  }>>, Record<never, never>>;
8465
8492
  };
8493
+ reports: {
8494
+ attendance: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<RequestContext & Record<never, never>, RequestContext & Record<never, never> & Omit<RequestContext & Record<never, never>, keyof RequestContext> & Omit<RequestContext & Record<never, never>, "workspaceId" | "requestId" | "kernel" | "principal" | "ip" | "headers">, RequestContext>, Omit<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<RequestContext, {
8495
+ workspaceId: string;
8496
+ kernel: Kernel;
8497
+ principal: {
8498
+ kind: "service" | "user" | "api_key" | "anonymous";
8499
+ userId: (string & import("zod").$brand<"UserId">) | null;
8500
+ email: string | null;
8501
+ name: string | null;
8502
+ locale: "en" | "fa" | "ar" | "de";
8503
+ instanceAdmin: boolean;
8504
+ service: string | null;
8505
+ memberships: {
8506
+ workspaceId: string & import("zod").$brand<"WorkspaceId">;
8507
+ role: "owner" | "admin" | "member" | "guest";
8508
+ roleIds: string[];
8509
+ groupIds: string[];
8510
+ status: "active" | "invited" | "suspended";
8511
+ }[];
8512
+ permissionVersion: number;
8513
+ };
8514
+ requestId: string;
8515
+ ip: string;
8516
+ headers: Record<string, string | string[] | undefined>;
8517
+ }>, Record<never, never>>, Record<never, never>>, never> & Record<never, never>, import("zod").ZodObject<{
8518
+ workspaceId: import("zod/v4/core").$ZodBranded<import("zod").ZodUUID, "WorkspaceId", "out">;
8519
+ from: import("zod").ZodISODate;
8520
+ to: import("zod").ZodISODate;
8521
+ by: import("zod").ZodDefault<import("zod").ZodEnum<{
8522
+ office: "office";
8523
+ legal_entity: "legal_entity";
8524
+ workspace: "workspace";
8525
+ }>>;
8526
+ sliceId: import("zod").ZodOptional<import("zod").ZodUUID>;
8527
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
8528
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
8529
+ header: import("zod").ZodObject<{
8530
+ from: import("zod").ZodISODate;
8531
+ to: import("zod").ZodISODate;
8532
+ slice: import("zod").ZodObject<{
8533
+ by: import("zod").ZodEnum<{
8534
+ office: "office";
8535
+ legal_entity: "legal_entity";
8536
+ workspace: "workspace";
8537
+ }>;
8538
+ id: import("zod").ZodNullable<import("zod").ZodUUID>;
8539
+ name: import("zod").ZodNullable<import("zod").ZodString>;
8540
+ }, import("zod/v4/core").$strip>;
8541
+ scope: import("zod").ZodObject<{
8542
+ permissions: import("zod").ZodArray<import("zod").ZodString>;
8543
+ askedAt: import("zod").ZodLiteral<"workspace">;
8544
+ }, import("zod/v4/core").$strip>;
8545
+ population: import("zod").ZodNumber;
8546
+ counted: import("zod").ZodNumber;
8547
+ attribution: import("zod").ZodEnum<{
8548
+ each_day: "each_day";
8549
+ as_of_date: "as_of_date";
8550
+ not_applicable: "not_applicable";
8551
+ }>;
8552
+ attributionOn: import("zod").ZodNullable<import("zod").ZodISODate>;
8553
+ truncated: import("zod").ZodBoolean;
8554
+ }, import("zod/v4/core").$strip>;
8555
+ finality: import("zod").ZodObject<{
8556
+ lockedDays: import("zod").ZodNumber;
8557
+ openDays: import("zod").ZodNumber;
8558
+ final: import("zod").ZodBoolean;
8559
+ firstOpenDay: import("zod").ZodNullable<import("zod").ZodISODate>;
8560
+ lastLockedDay: import("zod").ZodNullable<import("zod").ZodISODate>;
8561
+ }, import("zod/v4/core").$strip>;
8562
+ totals: import("zod").ZodObject<{
8563
+ scheduledMinutes: import("zod").ZodNumber;
8564
+ workedMinutes: import("zod").ZodNumber;
8565
+ breakMinutes: import("zod").ZodNumber;
8566
+ lateMinutes: import("zod").ZodNumber;
8567
+ earlyLeaveMinutes: import("zod").ZodNumber;
8568
+ days: import("zod").ZodNumber;
8569
+ scheduledWorkedMinutes: import("zod").ZodNumber;
8570
+ workedRatio: import("zod").ZodNullable<import("zod").ZodNumber>;
8571
+ noScheduleDays: import("zod").ZodNumber;
8572
+ unknownScheduleDays: import("zod").ZodNumber;
8573
+ }, import("zod/v4/core").$strip>;
8574
+ rows: import("zod").ZodArray<import("zod").ZodObject<{
8575
+ personId: import("zod").ZodUUID;
8576
+ displayName: import("zod").ZodString;
8577
+ days: import("zod").ZodNumber;
8578
+ scheduledMinutes: import("zod").ZodNumber;
8579
+ workedMinutes: import("zod").ZodNumber;
8580
+ scheduledWorkedMinutes: import("zod").ZodNumber;
8581
+ breakMinutes: import("zod").ZodNumber;
8582
+ lateMinutes: import("zod").ZodNumber;
8583
+ earlyLeaveMinutes: import("zod").ZodNumber;
8584
+ workedRatio: import("zod").ZodNullable<import("zod").ZodNumber>;
8585
+ noScheduleDays: import("zod").ZodNumber;
8586
+ unknownScheduleDays: import("zod").ZodNumber;
8587
+ }, import("zod/v4/core").$strip>>;
8588
+ }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, import("@orpc/server").MergedErrorMap<Record<never, never>, {
8589
+ BAD_REQUEST: {
8590
+ data: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
8591
+ };
8592
+ UNAUTHORIZED: {};
8593
+ FORBIDDEN: {
8594
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8595
+ permission: import("zod").ZodOptional<import("zod").ZodString>;
8596
+ }, import("zod/v4/core").$strip>>;
8597
+ };
8598
+ NOT_FOUND: {};
8599
+ CONFLICT: {
8600
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8601
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
8602
+ }, import("zod/v4/core").$strip>>;
8603
+ };
8604
+ RATE_LIMITED: {};
8605
+ MODULE_DISABLED: {
8606
+ data: import("zod").ZodObject<{
8607
+ module: import("zod").ZodString;
8608
+ }, import("zod/v4/core").$strip>;
8609
+ };
8610
+ }>>, Record<never, never>>;
8611
+ overtime: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<RequestContext & Record<never, never>, RequestContext & Record<never, never> & Omit<RequestContext & Record<never, never>, keyof RequestContext> & Omit<RequestContext & Record<never, never>, "workspaceId" | "requestId" | "kernel" | "principal" | "ip" | "headers">, RequestContext>, Omit<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<RequestContext, {
8612
+ workspaceId: string;
8613
+ kernel: Kernel;
8614
+ principal: {
8615
+ kind: "service" | "user" | "api_key" | "anonymous";
8616
+ userId: (string & import("zod").$brand<"UserId">) | null;
8617
+ email: string | null;
8618
+ name: string | null;
8619
+ locale: "en" | "fa" | "ar" | "de";
8620
+ instanceAdmin: boolean;
8621
+ service: string | null;
8622
+ memberships: {
8623
+ workspaceId: string & import("zod").$brand<"WorkspaceId">;
8624
+ role: "owner" | "admin" | "member" | "guest";
8625
+ roleIds: string[];
8626
+ groupIds: string[];
8627
+ status: "active" | "invited" | "suspended";
8628
+ }[];
8629
+ permissionVersion: number;
8630
+ };
8631
+ requestId: string;
8632
+ ip: string;
8633
+ headers: Record<string, string | string[] | undefined>;
8634
+ }>, Record<never, never>>, Record<never, never>>, never> & Record<never, never>, import("zod").ZodObject<{
8635
+ workspaceId: import("zod/v4/core").$ZodBranded<import("zod").ZodUUID, "WorkspaceId", "out">;
8636
+ from: import("zod").ZodISODate;
8637
+ to: import("zod").ZodISODate;
8638
+ by: import("zod").ZodDefault<import("zod").ZodEnum<{
8639
+ office: "office";
8640
+ legal_entity: "legal_entity";
8641
+ workspace: "workspace";
8642
+ }>>;
8643
+ sliceId: import("zod").ZodOptional<import("zod").ZodUUID>;
8644
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
8645
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
8646
+ header: import("zod").ZodObject<{
8647
+ from: import("zod").ZodISODate;
8648
+ to: import("zod").ZodISODate;
8649
+ slice: import("zod").ZodObject<{
8650
+ by: import("zod").ZodEnum<{
8651
+ office: "office";
8652
+ legal_entity: "legal_entity";
8653
+ workspace: "workspace";
8654
+ }>;
8655
+ id: import("zod").ZodNullable<import("zod").ZodUUID>;
8656
+ name: import("zod").ZodNullable<import("zod").ZodString>;
8657
+ }, import("zod/v4/core").$strip>;
8658
+ scope: import("zod").ZodObject<{
8659
+ permissions: import("zod").ZodArray<import("zod").ZodString>;
8660
+ askedAt: import("zod").ZodLiteral<"workspace">;
8661
+ }, import("zod/v4/core").$strip>;
8662
+ population: import("zod").ZodNumber;
8663
+ counted: import("zod").ZodNumber;
8664
+ attribution: import("zod").ZodEnum<{
8665
+ each_day: "each_day";
8666
+ as_of_date: "as_of_date";
8667
+ not_applicable: "not_applicable";
8668
+ }>;
8669
+ attributionOn: import("zod").ZodNullable<import("zod").ZodISODate>;
8670
+ truncated: import("zod").ZodBoolean;
8671
+ }, import("zod/v4/core").$strip>;
8672
+ finality: import("zod").ZodObject<{
8673
+ lockedDays: import("zod").ZodNumber;
8674
+ openDays: import("zod").ZodNumber;
8675
+ final: import("zod").ZodBoolean;
8676
+ firstOpenDay: import("zod").ZodNullable<import("zod").ZodISODate>;
8677
+ lastLockedDay: import("zod").ZodNullable<import("zod").ZodISODate>;
8678
+ }, import("zod/v4/core").$strip>;
8679
+ totals: import("zod").ZodObject<{
8680
+ overtimeMinutes: import("zod").ZodNumber;
8681
+ beyondCapMinutes: import("zod").ZodNullable<import("zod").ZodNumber>;
8682
+ days: import("zod").ZodNumber;
8683
+ cappedDays: import("zod").ZodNumber;
8684
+ uncappedDays: import("zod").ZodNumber;
8685
+ }, import("zod/v4/core").$strip>;
8686
+ rows: import("zod").ZodArray<import("zod").ZodObject<{
8687
+ personId: import("zod").ZodUUID;
8688
+ displayName: import("zod").ZodString;
8689
+ days: import("zod").ZodNumber;
8690
+ overtimeMinutes: import("zod").ZodNumber;
8691
+ beyondCapMinutes: import("zod").ZodNullable<import("zod").ZodNumber>;
8692
+ cappedDays: import("zod").ZodNumber;
8693
+ uncappedDays: import("zod").ZodNumber;
8694
+ }, import("zod/v4/core").$strip>>;
8695
+ }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, import("@orpc/server").MergedErrorMap<Record<never, never>, {
8696
+ BAD_REQUEST: {
8697
+ data: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
8698
+ };
8699
+ UNAUTHORIZED: {};
8700
+ FORBIDDEN: {
8701
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8702
+ permission: import("zod").ZodOptional<import("zod").ZodString>;
8703
+ }, import("zod/v4/core").$strip>>;
8704
+ };
8705
+ NOT_FOUND: {};
8706
+ CONFLICT: {
8707
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8708
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
8709
+ }, import("zod/v4/core").$strip>>;
8710
+ };
8711
+ RATE_LIMITED: {};
8712
+ MODULE_DISABLED: {
8713
+ data: import("zod").ZodObject<{
8714
+ module: import("zod").ZodString;
8715
+ }, import("zod/v4/core").$strip>;
8716
+ };
8717
+ }>>, Record<never, never>>;
8718
+ absence: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<RequestContext & Record<never, never>, RequestContext & Record<never, never> & Omit<RequestContext & Record<never, never>, keyof RequestContext> & Omit<RequestContext & Record<never, never>, "workspaceId" | "requestId" | "kernel" | "principal" | "ip" | "headers">, RequestContext>, Omit<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<RequestContext, {
8719
+ workspaceId: string;
8720
+ kernel: Kernel;
8721
+ principal: {
8722
+ kind: "service" | "user" | "api_key" | "anonymous";
8723
+ userId: (string & import("zod").$brand<"UserId">) | null;
8724
+ email: string | null;
8725
+ name: string | null;
8726
+ locale: "en" | "fa" | "ar" | "de";
8727
+ instanceAdmin: boolean;
8728
+ service: string | null;
8729
+ memberships: {
8730
+ workspaceId: string & import("zod").$brand<"WorkspaceId">;
8731
+ role: "owner" | "admin" | "member" | "guest";
8732
+ roleIds: string[];
8733
+ groupIds: string[];
8734
+ status: "active" | "invited" | "suspended";
8735
+ }[];
8736
+ permissionVersion: number;
8737
+ };
8738
+ requestId: string;
8739
+ ip: string;
8740
+ headers: Record<string, string | string[] | undefined>;
8741
+ }>, Record<never, never>>, Record<never, never>>, never> & Record<never, never>, import("zod").ZodObject<{
8742
+ workspaceId: import("zod/v4/core").$ZodBranded<import("zod").ZodUUID, "WorkspaceId", "out">;
8743
+ from: import("zod").ZodISODate;
8744
+ to: import("zod").ZodISODate;
8745
+ by: import("zod").ZodDefault<import("zod").ZodEnum<{
8746
+ office: "office";
8747
+ legal_entity: "legal_entity";
8748
+ workspace: "workspace";
8749
+ }>>;
8750
+ sliceId: import("zod").ZodOptional<import("zod").ZodUUID>;
8751
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
8752
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
8753
+ header: import("zod").ZodObject<{
8754
+ from: import("zod").ZodISODate;
8755
+ to: import("zod").ZodISODate;
8756
+ slice: import("zod").ZodObject<{
8757
+ by: import("zod").ZodEnum<{
8758
+ office: "office";
8759
+ legal_entity: "legal_entity";
8760
+ workspace: "workspace";
8761
+ }>;
8762
+ id: import("zod").ZodNullable<import("zod").ZodUUID>;
8763
+ name: import("zod").ZodNullable<import("zod").ZodString>;
8764
+ }, import("zod/v4/core").$strip>;
8765
+ scope: import("zod").ZodObject<{
8766
+ permissions: import("zod").ZodArray<import("zod").ZodString>;
8767
+ askedAt: import("zod").ZodLiteral<"workspace">;
8768
+ }, import("zod/v4/core").$strip>;
8769
+ population: import("zod").ZodNumber;
8770
+ counted: import("zod").ZodNumber;
8771
+ attribution: import("zod").ZodEnum<{
8772
+ each_day: "each_day";
8773
+ as_of_date: "as_of_date";
8774
+ not_applicable: "not_applicable";
8775
+ }>;
8776
+ attributionOn: import("zod").ZodNullable<import("zod").ZodISODate>;
8777
+ truncated: import("zod").ZodBoolean;
8778
+ }, import("zod/v4/core").$strip>;
8779
+ finality: import("zod").ZodObject<{
8780
+ lockedDays: import("zod").ZodNumber;
8781
+ openDays: import("zod").ZodNumber;
8782
+ final: import("zod").ZodBoolean;
8783
+ firstOpenDay: import("zod").ZodNullable<import("zod").ZodISODate>;
8784
+ lastLockedDay: import("zod").ZodNullable<import("zod").ZodISODate>;
8785
+ }, import("zod/v4/core").$strip>;
8786
+ leaveCounted: import("zod").ZodBoolean;
8787
+ totals: import("zod").ZodObject<{
8788
+ measured: import("zod").ZodNumber;
8789
+ expectedDays: import("zod").ZodNumber;
8790
+ workedDays: import("zod").ZodNumber;
8791
+ leaveDays: import("zod").ZodNullable<import("zod").ZodNumber>;
8792
+ absentDays: import("zod").ZodNumber;
8793
+ absenceRate: import("zod").ZodNullable<import("zod").ZodNumber>;
8794
+ }, import("zod/v4/core").$strip>;
8795
+ excluded: import("zod").ZodObject<{
8796
+ noSchedule: import("zod").ZodNumber;
8797
+ noCalendar: import("zod").ZodNumber;
8798
+ }, import("zod/v4/core").$strip>;
8799
+ rows: import("zod").ZodArray<import("zod").ZodObject<{
8800
+ personId: import("zod").ZodUUID;
8801
+ displayName: import("zod").ZodString;
8802
+ basis: import("zod").ZodEnum<{
8803
+ calendar: "calendar";
8804
+ no_calendar: "no_calendar";
8805
+ no_schedule: "no_schedule";
8806
+ }>;
8807
+ expectedDays: import("zod").ZodNullable<import("zod").ZodNumber>;
8808
+ workedDays: import("zod").ZodNullable<import("zod").ZodNumber>;
8809
+ leaveDays: import("zod").ZodNullable<import("zod").ZodNumber>;
8810
+ absentDays: import("zod").ZodNullable<import("zod").ZodNumber>;
8811
+ absenceRate: import("zod").ZodNullable<import("zod").ZodNumber>;
8812
+ }, import("zod/v4/core").$strip>>;
8813
+ }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, import("@orpc/server").MergedErrorMap<Record<never, never>, {
8814
+ BAD_REQUEST: {
8815
+ data: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
8816
+ };
8817
+ UNAUTHORIZED: {};
8818
+ FORBIDDEN: {
8819
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8820
+ permission: import("zod").ZodOptional<import("zod").ZodString>;
8821
+ }, import("zod/v4/core").$strip>>;
8822
+ };
8823
+ NOT_FOUND: {};
8824
+ CONFLICT: {
8825
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8826
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
8827
+ }, import("zod/v4/core").$strip>>;
8828
+ };
8829
+ RATE_LIMITED: {};
8830
+ MODULE_DISABLED: {
8831
+ data: import("zod").ZodObject<{
8832
+ module: import("zod").ZodString;
8833
+ }, import("zod/v4/core").$strip>;
8834
+ };
8835
+ }>>, Record<never, never>>;
8836
+ leaveBalance: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<RequestContext & Record<never, never>, RequestContext & Record<never, never> & Omit<RequestContext & Record<never, never>, keyof RequestContext> & Omit<RequestContext & Record<never, never>, "workspaceId" | "requestId" | "kernel" | "principal" | "ip" | "headers">, RequestContext>, Omit<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<import("@orpc/server").MergedCurrentContext<RequestContext, {
8837
+ workspaceId: string;
8838
+ kernel: Kernel;
8839
+ principal: {
8840
+ kind: "service" | "user" | "api_key" | "anonymous";
8841
+ userId: (string & import("zod").$brand<"UserId">) | null;
8842
+ email: string | null;
8843
+ name: string | null;
8844
+ locale: "en" | "fa" | "ar" | "de";
8845
+ instanceAdmin: boolean;
8846
+ service: string | null;
8847
+ memberships: {
8848
+ workspaceId: string & import("zod").$brand<"WorkspaceId">;
8849
+ role: "owner" | "admin" | "member" | "guest";
8850
+ roleIds: string[];
8851
+ groupIds: string[];
8852
+ status: "active" | "invited" | "suspended";
8853
+ }[];
8854
+ permissionVersion: number;
8855
+ };
8856
+ requestId: string;
8857
+ ip: string;
8858
+ headers: Record<string, string | string[] | undefined>;
8859
+ }>, Record<never, never>>, Record<never, never>>, never> & Record<never, never>, import("zod").ZodObject<{
8860
+ workspaceId: import("zod/v4/core").$ZodBranded<import("zod").ZodUUID, "WorkspaceId", "out">;
8861
+ periodYear: import("zod").ZodOptional<import("zod").ZodNumber>;
8862
+ asOf: import("zod").ZodOptional<import("zod").ZodISODate>;
8863
+ by: import("zod").ZodDefault<import("zod").ZodEnum<{
8864
+ office: "office";
8865
+ legal_entity: "legal_entity";
8866
+ workspace: "workspace";
8867
+ }>>;
8868
+ sliceId: import("zod").ZodOptional<import("zod").ZodUUID>;
8869
+ limit: import("zod").ZodDefault<import("zod").ZodNumber>;
8870
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
8871
+ header: import("zod").ZodObject<{
8872
+ from: import("zod").ZodISODate;
8873
+ to: import("zod").ZodISODate;
8874
+ slice: import("zod").ZodObject<{
8875
+ by: import("zod").ZodEnum<{
8876
+ office: "office";
8877
+ legal_entity: "legal_entity";
8878
+ workspace: "workspace";
8879
+ }>;
8880
+ id: import("zod").ZodNullable<import("zod").ZodUUID>;
8881
+ name: import("zod").ZodNullable<import("zod").ZodString>;
8882
+ }, import("zod/v4/core").$strip>;
8883
+ scope: import("zod").ZodObject<{
8884
+ permissions: import("zod").ZodArray<import("zod").ZodString>;
8885
+ askedAt: import("zod").ZodLiteral<"workspace">;
8886
+ }, import("zod/v4/core").$strip>;
8887
+ population: import("zod").ZodNumber;
8888
+ counted: import("zod").ZodNumber;
8889
+ attribution: import("zod").ZodEnum<{
8890
+ each_day: "each_day";
8891
+ as_of_date: "as_of_date";
8892
+ not_applicable: "not_applicable";
8893
+ }>;
8894
+ attributionOn: import("zod").ZodNullable<import("zod").ZodISODate>;
8895
+ truncated: import("zod").ZodBoolean;
8896
+ }, import("zod/v4/core").$strip>;
8897
+ periodYear: import("zod").ZodNumber;
8898
+ dayLengthMinutes: import("zod").ZodNumber;
8899
+ totals: import("zod").ZodArray<import("zod").ZodObject<{
8900
+ leaveTypeId: import("zod").ZodUUID;
8901
+ leaveTypeName: import("zod").ZodString;
8902
+ unit: import("zod").ZodEnum<{
8903
+ half_day: "half_day";
8904
+ day: "day";
8905
+ hour: "hour";
8906
+ }>;
8907
+ people: import("zod").ZodNumber;
8908
+ balanceMinutes: import("zod").ZodNumber;
8909
+ bookedMinutes: import("zod").ZodNumber;
8910
+ pendingMinutes: import("zod").ZodNumber;
8911
+ availableMinutes: import("zod").ZodNumber;
8912
+ }, import("zod/v4/core").$strip>>;
8913
+ rows: import("zod").ZodArray<import("zod").ZodObject<{
8914
+ personId: import("zod").ZodUUID;
8915
+ displayName: import("zod").ZodString;
8916
+ leaveTypeId: import("zod").ZodUUID;
8917
+ leaveTypeName: import("zod").ZodString;
8918
+ unit: import("zod").ZodEnum<{
8919
+ half_day: "half_day";
8920
+ day: "day";
8921
+ hour: "hour";
8922
+ }>;
8923
+ balanceMinutes: import("zod").ZodNumber;
8924
+ bookedMinutes: import("zod").ZodNumber;
8925
+ pendingMinutes: import("zod").ZodNumber;
8926
+ availableMinutes: import("zod").ZodNumber;
8927
+ balance: import("zod").ZodNumber;
8928
+ available: import("zod").ZodNumber;
8929
+ }, import("zod/v4/core").$strip>>;
8930
+ }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, import("@orpc/server").MergedErrorMap<Record<never, never>, {
8931
+ BAD_REQUEST: {
8932
+ data: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
8933
+ };
8934
+ UNAUTHORIZED: {};
8935
+ FORBIDDEN: {
8936
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8937
+ permission: import("zod").ZodOptional<import("zod").ZodString>;
8938
+ }, import("zod/v4/core").$strip>>;
8939
+ };
8940
+ NOT_FOUND: {};
8941
+ CONFLICT: {
8942
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
8943
+ reason: import("zod").ZodOptional<import("zod").ZodString>;
8944
+ }, import("zod/v4/core").$strip>>;
8945
+ };
8946
+ RATE_LIMITED: {};
8947
+ MODULE_DISABLED: {
8948
+ data: import("zod").ZodObject<{
8949
+ module: import("zod").ZodString;
8950
+ }, import("zod/v4/core").$strip>;
8951
+ };
8952
+ }>>, Record<never, never>>;
8953
+ };
8466
8954
  privacy: {
8467
8955
  subjectAccess: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<RequestContext & Record<never, never>, RequestContext & Record<never, never> & Omit<RequestContext & Record<never, never>, keyof RequestContext> & Omit<RequestContext & Record<never, never>, "workspaceId" | "requestId" | "kernel" | "principal" | "ip" | "headers">, RequestContext>, Omit<import("@orpc/server").MergedCurrentContext<RequestContext, {
8468
8956
  workspaceId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/server/router.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,MAAM,EAEX,KAAK,cAAc,EAGnB,KAAK,EAAE,EAGR,MAAM,gBAAgB,CAAA;AAgEvB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAA;AAS7E,OAAO,EAAwB,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAsK5E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,iBAAiB,CAAA;CAC9B;sBAGgC,EAAE,eAAe,MAAM,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;mBAkBnE,EAAE,eACO,MAAM,YACT,MAAM,SACT;QACL,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;QAC3C,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;QACzC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KACtB;;;;;;;;;;;;kBAE6B,MAAM;qBAAW,MAAM;;;wBAkHtB,EAAE,eAAe,MAAM,kBAAkB,MAAM,WAAW,MAAM,GAAG,IAAI;8BAmEjE,EAAE,eAAe,MAAM,oBAAoB,MAAM;wBAdvD,EAAE,eAAe,MAAM,YAAY,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiFxE;;;;;;;;;OASG;2BACoB,MAAM,GAAG,IAAI,KAAG,eAAe;EAOzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAozIxC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/server/router.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,MAAM,EAEX,KAAK,cAAc,EAGnB,KAAK,EAAE,EAGR,MAAM,gBAAgB,CAAA;AA0EvB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG5D,OAAO,EAAE,aAAa,EAA2B,MAAM,sBAAsB,CAAA;AAsB7E,OAAO,EAAwB,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAuH5E;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;;UAqsKM,KAAK;YACD,MAAM,GAAG,QAAQ;;;;;;;;;;;;KAnqKtC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,UAAU,EAAE,iBAAiB,CAAA;CAC9B;sBAGgC,EAAE,eAAe,MAAM,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;;mBAkBnE,EAAE,eACO,MAAM,YACT,MAAM,SACT;QACL,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;QAC3C,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;QACzC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KACtB;;;;;;;;;;;;kBAE6B,MAAM;qBAAW,MAAM;;;wBAkHtB,EAAE,eAAe,MAAM,kBAAkB,MAAM,WAAW,MAAM,GAAG,IAAI;8BAmEjE,EAAE,eAAe,MAAM,oBAAoB,MAAM;wBAdvD,EAAE,eAAe,MAAM,YAAY,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiFxE;;;;;;;;;OASG;2BACoB,MAAM,GAAG,IAAI,KAAG,eAAe;EAOzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwyJxC"}