@kangwifi-pro/waliwa 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +600 -0
  3. package/dist/advanced/features.d.ts +211 -0
  4. package/dist/advanced/features.d.ts.map +1 -0
  5. package/dist/advanced/features.js +671 -0
  6. package/dist/advanced/features.js.map +1 -0
  7. package/dist/auth/auth-state.d.ts +89 -0
  8. package/dist/auth/auth-state.d.ts.map +1 -0
  9. package/dist/auth/auth-state.js +330 -0
  10. package/dist/auth/auth-state.js.map +1 -0
  11. package/dist/auth/pairing-code.d.ts +78 -0
  12. package/dist/auth/pairing-code.d.ts.map +1 -0
  13. package/dist/auth/pairing-code.js +191 -0
  14. package/dist/auth/pairing-code.js.map +1 -0
  15. package/dist/auth/qr-code.d.ts +60 -0
  16. package/dist/auth/qr-code.d.ts.map +1 -0
  17. package/dist/auth/qr-code.js +151 -0
  18. package/dist/auth/qr-code.js.map +1 -0
  19. package/dist/calls/handler.d.ts +61 -0
  20. package/dist/calls/handler.d.ts.map +1 -0
  21. package/dist/calls/handler.js +117 -0
  22. package/dist/calls/handler.js.map +1 -0
  23. package/dist/core/binary.d.ts +74 -0
  24. package/dist/core/binary.d.ts.map +1 -0
  25. package/dist/core/binary.js +448 -0
  26. package/dist/core/binary.js.map +1 -0
  27. package/dist/core/crypto.d.ts +60 -0
  28. package/dist/core/crypto.d.ts.map +1 -0
  29. package/dist/core/crypto.js +170 -0
  30. package/dist/core/crypto.js.map +1 -0
  31. package/dist/core/noise.d.ts +106 -0
  32. package/dist/core/noise.d.ts.map +1 -0
  33. package/dist/core/noise.js +307 -0
  34. package/dist/core/noise.js.map +1 -0
  35. package/dist/events/emitter.d.ts +44 -0
  36. package/dist/events/emitter.d.ts.map +1 -0
  37. package/dist/events/emitter.js +79 -0
  38. package/dist/events/emitter.js.map +1 -0
  39. package/dist/features/index.d.ts +342 -0
  40. package/dist/features/index.d.ts.map +1 -0
  41. package/dist/features/index.js +755 -0
  42. package/dist/features/index.js.map +1 -0
  43. package/dist/fixes/index.d.ts +333 -0
  44. package/dist/fixes/index.d.ts.map +1 -0
  45. package/dist/fixes/index.js +762 -0
  46. package/dist/fixes/index.js.map +1 -0
  47. package/dist/groups/management.d.ts +86 -0
  48. package/dist/groups/management.d.ts.map +1 -0
  49. package/dist/groups/management.js +443 -0
  50. package/dist/groups/management.js.map +1 -0
  51. package/dist/index.d.ts +65 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +236 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/messages/media.d.ts +93 -0
  56. package/dist/messages/media.d.ts.map +1 -0
  57. package/dist/messages/media.js +252 -0
  58. package/dist/messages/media.js.map +1 -0
  59. package/dist/messages/message-encoder.d.ts +70 -0
  60. package/dist/messages/message-encoder.d.ts.map +1 -0
  61. package/dist/messages/message-encoder.js +453 -0
  62. package/dist/messages/message-encoder.js.map +1 -0
  63. package/dist/messages/send.d.ts +101 -0
  64. package/dist/messages/send.d.ts.map +1 -0
  65. package/dist/messages/send.js +409 -0
  66. package/dist/messages/send.js.map +1 -0
  67. package/dist/recovery/index.d.ts +125 -0
  68. package/dist/recovery/index.d.ts.map +1 -0
  69. package/dist/recovery/index.js +584 -0
  70. package/dist/recovery/index.js.map +1 -0
  71. package/dist/skdm/index.d.ts +220 -0
  72. package/dist/skdm/index.d.ts.map +1 -0
  73. package/dist/skdm/index.js +600 -0
  74. package/dist/skdm/index.js.map +1 -0
  75. package/dist/socket/hybrid.d.ts +118 -0
  76. package/dist/socket/hybrid.d.ts.map +1 -0
  77. package/dist/socket/hybrid.js +352 -0
  78. package/dist/socket/hybrid.js.map +1 -0
  79. package/dist/socket/wa-socket.d.ts +300 -0
  80. package/dist/socket/wa-socket.d.ts.map +1 -0
  81. package/dist/socket/wa-socket.js +1094 -0
  82. package/dist/socket/wa-socket.js.map +1 -0
  83. package/dist/socket/ws-socket.d.ts +96 -0
  84. package/dist/socket/ws-socket.d.ts.map +1 -0
  85. package/dist/socket/ws-socket.js +302 -0
  86. package/dist/socket/ws-socket.js.map +1 -0
  87. package/dist/types/index.d.ts +444 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +7 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/utils/jid.d.ts +46 -0
  92. package/dist/utils/jid.d.ts.map +1 -0
  93. package/dist/utils/jid.js +152 -0
  94. package/dist/utils/jid.js.map +1 -0
  95. package/dist/utils/logger.d.ts +45 -0
  96. package/dist/utils/logger.d.ts.map +1 -0
  97. package/dist/utils/logger.js +79 -0
  98. package/dist/utils/logger.js.map +1 -0
  99. package/dist/utils/retry.d.ts +43 -0
  100. package/dist/utils/retry.d.ts.map +1 -0
  101. package/dist/utils/retry.js +175 -0
  102. package/dist/utils/retry.js.map +1 -0
  103. package/docs/API.md +745 -0
  104. package/docs/ARCHITECTURE.md +307 -0
  105. package/docs/BAILEYS_FIXES.md +360 -0
  106. package/docs/FEATURES.md +532 -0
  107. package/docs/PROTOCOL.md +489 -0
  108. package/docs/RECOVERY.md +409 -0
  109. package/docs/SKDM.md +233 -0
  110. package/examples/ai-bot/index.ts +479 -0
  111. package/examples/ai-bot/package.json +17 -0
  112. package/examples/echo-bot/index.ts +171 -0
  113. package/examples/echo-bot/package.json +18 -0
  114. package/examples/group-bot/index.ts +557 -0
  115. package/examples/group-bot/package.json +17 -0
  116. package/examples/rest-gateway/index.ts +499 -0
  117. package/examples/rest-gateway/package.json +19 -0
  118. package/package.json +75 -0
  119. package/src/advanced/features.ts +817 -0
  120. package/src/auth/auth-state.ts +342 -0
  121. package/src/auth/pairing-code.ts +246 -0
  122. package/src/auth/qr-code.ts +191 -0
  123. package/src/calls/handler.ts +153 -0
  124. package/src/core/binary.ts +464 -0
  125. package/src/core/crypto.ts +189 -0
  126. package/src/core/noise.ts +406 -0
  127. package/src/events/emitter.ts +88 -0
  128. package/src/features/index.ts +921 -0
  129. package/src/fixes/index.ts +882 -0
  130. package/src/groups/management.ts +497 -0
  131. package/src/index.ts +274 -0
  132. package/src/messages/media.ts +372 -0
  133. package/src/messages/message-encoder.ts +520 -0
  134. package/src/messages/send.ts +521 -0
  135. package/src/recovery/index.ts +704 -0
  136. package/src/skdm/index.ts +693 -0
  137. package/src/socket/hybrid.ts +414 -0
  138. package/src/socket/wa-socket.ts +1347 -0
  139. package/src/socket/ws-socket.ts +355 -0
  140. package/src/types/index.ts +457 -0
  141. package/src/utils/jid.ts +156 -0
  142. package/src/utils/logger.ts +84 -0
  143. package/src/utils/retry.ts +205 -0
  144. package/tsconfig.json +30 -0
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Waliwa - Advanced features
3
+ * Polls, Newsletter, Status/Stories, Business Profile, Labels, Catalog
4
+ */
5
+ import type { JIDLike, WALogger, WAMessageKey } from '../types/index.js';
6
+ import { BinaryNode } from '../core/binary.js';
7
+ export interface PollOptions {
8
+ name: string;
9
+ values: string[];
10
+ /** Max selectable options per user (default: 1 = single choice) */
11
+ selectableCounts?: number[];
12
+ /** Allow multiple answers */
13
+ multipleAnswers?: boolean;
14
+ }
15
+ export interface PollVote {
16
+ /** JID of voter */
17
+ voter: JIDLike;
18
+ /** Selected option indices */
19
+ selectedOptions: number[];
20
+ /** Timestamp */
21
+ timestamp: number;
22
+ }
23
+ export declare class PollManager {
24
+ private send;
25
+ private registerIqHandler;
26
+ private logger;
27
+ private voteListeners;
28
+ constructor(opts: {
29
+ send: (data: Uint8Array) => void;
30
+ registerIqHandler: (id: string, handler: (node: BinaryNode) => void) => void;
31
+ logger?: WALogger;
32
+ });
33
+ /**
34
+ * Create poll message
35
+ */
36
+ createPoll(jid: JIDLike, opts: PollOptions): Promise<WAMessageKey>;
37
+ /**
38
+ * Vote on existing poll
39
+ */
40
+ voteOnPoll(pollKey: WAMessageKey, selectedOptions: number[]): Promise<void>;
41
+ /**
42
+ * Listen for poll votes
43
+ */
44
+ onVote(pollMessageId: string, handler: (vote: PollVote) => void): void;
45
+ /**
46
+ * Handle incoming poll vote
47
+ */
48
+ handlePollVote(node: BinaryNode): void;
49
+ }
50
+ export interface NewsletterMetadata {
51
+ id: JIDLike;
52
+ name: string;
53
+ description?: string;
54
+ subscribersCount: number;
55
+ state: 'active' | 'inactive';
56
+ createdAt?: number;
57
+ verification: 'verified' | 'unverified';
58
+ }
59
+ export declare class NewsletterManager {
60
+ private send;
61
+ private registerIqHandler;
62
+ private logger;
63
+ constructor(opts: {
64
+ send: (data: Uint8Array) => void;
65
+ registerIqHandler: (id: string, handler: (node: BinaryNode) => void) => void;
66
+ logger?: WALogger;
67
+ });
68
+ /**
69
+ * Create new newsletter
70
+ */
71
+ create(name: string, description?: string): Promise<NewsletterMetadata>;
72
+ /**
73
+ * Subscribe ke newsletter
74
+ */
75
+ subscribe(newsletterId: JIDLike): Promise<void>;
76
+ /**
77
+ * Unsubscribe dari newsletter
78
+ */
79
+ unsubscribe(newsletterId: JIDLike): Promise<void>;
80
+ /**
81
+ * Mute newsletter
82
+ */
83
+ mute(newsletterId: JIDLike): Promise<void>;
84
+ private sendIqAndWait;
85
+ }
86
+ export interface StatusOptions {
87
+ /** Background color for text-only status */
88
+ backgroundColor?: string;
89
+ /** Font for text status */
90
+ font?: number;
91
+ /** Caption */
92
+ caption?: string;
93
+ /** Status expiration in seconds (default 86400 = 24h) */
94
+ expiration?: number;
95
+ }
96
+ export declare class StatusManager {
97
+ private send;
98
+ private logger;
99
+ constructor(opts: {
100
+ send: (data: Uint8Array) => void;
101
+ logger?: WALogger;
102
+ });
103
+ /**
104
+ * Upload text status
105
+ */
106
+ sendTextStatus(text: string, opts?: StatusOptions): Promise<WAMessageKey>;
107
+ /**
108
+ * Upload media status
109
+ */
110
+ sendMediaStatus(mediaType: 'image' | 'video', mediaUrl: string, opts?: StatusOptions): Promise<WAMessageKey>;
111
+ /**
112
+ * Delete own status
113
+ */
114
+ deleteStatus(statusId: string): Promise<void>;
115
+ /**
116
+ * Get status views
117
+ */
118
+ getStatusViews(statusId: string): Promise<JIDLike[]>;
119
+ }
120
+ export interface BusinessProfileOptions {
121
+ description?: string;
122
+ email?: string;
123
+ websites?: string[];
124
+ category?: string;
125
+ address?: string;
126
+ businessHours?: BusinessHours[];
127
+ }
128
+ export interface BusinessHours {
129
+ day: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
130
+ openTime: string;
131
+ closeTime: string;
132
+ mode: 'open' | 'closed' | 'by_appointment';
133
+ }
134
+ export declare class BusinessProfileManager {
135
+ private send;
136
+ private registerIqHandler;
137
+ private logger;
138
+ constructor(opts: {
139
+ send: (data: Uint8Array) => void;
140
+ registerIqHandler: (id: string, handler: (node: BinaryNode) => void) => void;
141
+ logger?: WALogger;
142
+ });
143
+ /**
144
+ * Update business profile
145
+ */
146
+ update(opts: BusinessProfileOptions): Promise<void>;
147
+ /**
148
+ * Get business profile
149
+ */
150
+ get(jid: JIDLike): Promise<BusinessProfileOptions | null>;
151
+ private sendIqAndWait;
152
+ }
153
+ export interface CatalogItem {
154
+ id: string;
155
+ name: string;
156
+ description?: string;
157
+ price: number;
158
+ currency: string;
159
+ url?: string;
160
+ imageUrl?: string;
161
+ }
162
+ export declare class CatalogManager {
163
+ private send;
164
+ private registerIqHandler;
165
+ private logger;
166
+ constructor(opts: {
167
+ send: (data: Uint8Array) => void;
168
+ registerIqHandler: (id: string, handler: (node: BinaryNode) => void) => void;
169
+ logger?: WALogger;
170
+ });
171
+ /**
172
+ * Add product to catalog
173
+ */
174
+ addProduct(item: Omit<CatalogItem, 'id'>): Promise<string>;
175
+ /**
176
+ * Get catalog for business account
177
+ */
178
+ getCatalog(jid: JIDLike): Promise<CatalogItem[]>;
179
+ private sendIqAndWait;
180
+ }
181
+ export interface Label {
182
+ id: string;
183
+ name: string;
184
+ color: number;
185
+ priority?: number;
186
+ deleted?: boolean;
187
+ }
188
+ export declare class LabelsManager {
189
+ private send;
190
+ private registerIqHandler;
191
+ private logger;
192
+ constructor(opts: {
193
+ send: (data: Uint8Array) => void;
194
+ registerIqHandler: (id: string, handler: (node: BinaryNode) => void) => void;
195
+ logger?: WALogger;
196
+ });
197
+ /**
198
+ * Create label
199
+ */
200
+ create(name: string, color: number): Promise<Label>;
201
+ /**
202
+ * Assign label ke chat
203
+ */
204
+ assignToChat(labelId: string, chatJid: JIDLike): Promise<void>;
205
+ /**
206
+ * Get all labels
207
+ */
208
+ list(): Promise<Label[]>;
209
+ private sendIqAndWait;
210
+ }
211
+ //# sourceMappingURL=features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/advanced/features.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EAER,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOjE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,6BAA6B;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,mBAAmB;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,aAAa,CAAoD;gBAE7D,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;QAC7E,MAAM,CAAC,EAAE,QAAQ,CAAC;KACnB;IAMD;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCxE;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,YAAY,EACrB,eAAe,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAItE;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;CA8BvC;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU,GAAG,YAAY,CAAC;CACzC;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;QAC7E,MAAM,CAAC,EAAE,QAAQ,CAAC;KACnB;IAMD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+B7E;;OAEG;IACG,SAAS,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrD;;OAEG;IACG,WAAW,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBvD;;OAEG;IACG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhD,OAAO,CAAC,aAAa;CAUtB;AAID,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAAE,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAA;KAAE;IAKzE;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IA6BnF;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,OAAO,GAAG,OAAO,EAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,CAAC;IA6BxB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAkB3D;AAID,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,gBAAgB,CAAC;CAC5C;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;QAC7E,MAAM,CAAC,EAAE,QAAQ,CAAC;KACnB;IAMD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDzD;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAwC/D,OAAO,CAAC,aAAa;CAUtB;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;QAC7E,MAAM,CAAC,EAAE,QAAQ,CAAC;KACnB;IAMD;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BhE;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAqCtD,OAAO,CAAC,aAAa;CAUtB;AAID,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,MAAM,CAAW;gBAEb,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QACjC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC;QAC7E,MAAM,CAAC,EAAE,QAAQ,CAAC;KACnB;IAMD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAuBzD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAmC9B,OAAO,CAAC,aAAa;CAUtB"}