fca-sakibin-remarsted 3.5.2 → 3.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"nonce":1889681708513927511,"last_updated":{"seconds":1697263354,"nanos":218445000}}
1
+ {"nonce":7919033809045595087,"last_updated":{"seconds":1697285950,"nanos":51656000}}
@@ -1,119 +1,495 @@
1
- var c = document.getElementById("myCanvas");
2
- var ctx = c.getContext("2d");
3
- var mask;
4
-
5
- var pointCount = 500;
6
- var str = "SAKIBIN";
7
- var fontStr = "bold 100pt Helvetica Neue, Helvetica, Arial, sans-serif";
8
-
9
- ctx.font = fontStr;
10
- ctx.textAlign = "auto";
11
- c.width = (ctx.measureText(str).width);
12
- c.height = 100; // Set to font size
13
-
14
- var whitePixels = [];
15
- var points = [];
16
- var point = function(x,y,vx,vy){
17
- this.x = x;
18
- this.y = y;
19
- this.vx = vx || 1;
20
- this.vy = vy || 1;
21
- };
22
- point.prototype.update = function() {
23
- ctx.beginPath();
24
- ctx.fillStyle = "#95a5a6";
25
- ctx.arc(this.x,this.y,1,0,2*Math.PI);
26
- ctx.fill();
27
- ctx.closePath();
1
+ /*
2
+ DHTML Snowstorm! OO-style Jascript-based Snow effect
3
+ ----------------------------------------------------
4
+ Version 1.4.20091115 (Previous rev: v1.3.20081215)
5
+ Code by Scott Schiller - http://schillmania.com
6
+ ----------------------------------------------------
28
7
 
29
- // Change direction if running into black pixel
30
- if (this.x+this.vx >= c.width || this.x+this.vx < 0 || mask.data[coordsToI(this.x+this.vx, this.y, mask.width)] != 255) {
31
- this.vx *= -1;
32
- this.x += this.vx*2;
8
+ Initializes after body onload() by default (via addEventHandler() call at bottom.)
9
+ To customize properties, edit below or override configuration after this script
10
+ has run (but before body.onload), eg. snowStorm.snowStick = false;
11
+
12
+ */
13
+
14
+ var snowStorm = null;
15
+
16
+ function SnowStorm() {
17
+
18
+ // --- PROPERTIES ---
19
+
20
+ this.flakesMax = 128; // Limit total amount of snow made (falling + sticking)
21
+ this.flakesMaxActive = 64; // Limit amount of snow falling at once (less = lower CPU use)
22
+ this.animationInterval = 33; // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower
23
+ this.flakeBottom = null; // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect
24
+ this.targetElement = null; // element which snow will be appended to (document body if null/undefined) - can be an element ID string, or a DOM node reference
25
+ this.followMouse = true; // Snow will change movement with the user's mouse
26
+ this.snowColor = '#fff'; // Don't eat (or use?) yellow snow.
27
+ this.snowCharacter = '&bull;'; // &bull; = bullet, &middot; is square on some systems etc.
28
+ this.snowStick = true; // Whether or not snow should "stick" at the bottom. When off, will never collect.
29
+ this.useMeltEffect = true; // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it
30
+ this.useTwinkleEffect = false; // Allow snow to randomly "flicker" in and out of view while falling
31
+ this.usePositionFixed = false; // true = snow not affected by window scroll. may increase CPU load, disabled by default - if enabled, used only where supported
32
+
33
+ // --- less-used bits ---
34
+
35
+ this.flakeLeftOffset = 0; // amount to subtract from edges of container
36
+ this.flakeRightOffset = 0; // amount to subtract from edges of container
37
+ this.flakeWidth = 8; // max pixel width for snow element
38
+ this.flakeHeight = 8; // max pixel height for snow element
39
+ this.vMaxX = 5; // Maximum X velocity range for snow
40
+ this.vMaxY = 4; // Maximum Y velocity range
41
+ this.zIndex = 0; // CSS stacking order applied to each snowflake
42
+
43
+ // --- End of user section ---
44
+
45
+ // jslint global declarations
46
+ /*global window, document, navigator, clearInterval, setInterval */
47
+
48
+ var addEvent = (typeof(window.attachEvent)=='undefined'?function(o,evtName,evtHandler) {
49
+ return o.addEventListener(evtName,evtHandler,false);
50
+ }:function(o,evtName,evtHandler) {
51
+ return o.attachEvent('on'+evtName,evtHandler);
52
+ });
53
+
54
+ var removeEvent = (typeof(window.attachEvent)=='undefined'?function(o,evtName,evtHandler) {
55
+ return o.removeEventListener(evtName,evtHandler,false);
56
+ }:function(o,evtName,evtHandler) {
57
+ return o.detachEvent('on'+evtName,evtHandler);
58
+ });
59
+
60
+ function rnd(n,min) {
61
+ if (isNaN(min)) {
62
+ min = 0;
63
+ }
64
+ return (Math.random()*n)+min;
33
65
  }
34
- if (this.y+this.vy >= c.height || this.y+this.vy < 0 || mask.data[coordsToI(this.x, this.y+this.vy, mask.width)] != 255) {
35
- this.vy *= -1;
36
- this.y += this.vy*2;
66
+
67
+ function plusMinus(n) {
68
+ return (parseInt(rnd(2),10)==1?n*-1:n);
37
69
  }
38
-
39
- for (var k = 0, m = points.length; k<m; k++) {
40
- if (points[k]===this) continue;
41
-
42
- var d = Math.sqrt(Math.pow(this.x-points[k].x,2)+Math.pow(this.y-points[k].y,2));
43
- if (d < 5) {
44
- ctx.lineWidth = .2;
45
- ctx.beginPath();
46
- ctx.moveTo(this.x,this.y);
47
- ctx.lineTo(points[k].x,points[k].y);
48
- ctx.stroke();
49
- }
50
- if (d < 20) {
51
- ctx.lineWidth = .1;
52
- ctx.beginPath();
53
- ctx.moveTo(this.x,this.y);
54
- ctx.lineTo(points[k].x,points[k].y);
55
- ctx.stroke();
70
+
71
+ var s = this;
72
+ var storm = this;
73
+ this.timers = [];
74
+ this.flakes = [];
75
+ this.disabled = false;
76
+ this.active = false;
77
+
78
+ var isIE = navigator.userAgent.match(/msie/i);
79
+ var isIE6 = navigator.userAgent.match(/msie 6/i);
80
+ var isOldIE = (isIE && (isIE6 || navigator.userAgent.match(/msie 5/i)));
81
+ var isWin9X = navigator.appVersion.match(/windows 98/i);
82
+ var isiPhone = navigator.userAgent.match(/iphone/i);
83
+ var isBackCompatIE = (isIE && document.compatMode == 'BackCompat');
84
+ var noFixed = ((isBackCompatIE || isIE6 || isiPhone)?true:false);
85
+ var screenX = null;
86
+ var screenX2 = null;
87
+ var screenY = null;
88
+ var scrollY = null;
89
+ var vRndX = null;
90
+ var vRndY = null;
91
+ var windOffset = 1;
92
+ var windMultiplier = 2;
93
+ var flakeTypes = 6;
94
+ var fixedForEverything = false;
95
+ var opacitySupported = (function(){
96
+ try {
97
+ document.createElement('div').style.opacity = '0.5';
98
+ } catch (e) {
99
+ return false;
56
100
  }
101
+ return true;
102
+ })();
103
+ var docFrag = document.createDocumentFragment();
104
+ if (s.flakeLeftOffset === null) {
105
+ s.flakeLeftOffset = 0;
57
106
  }
58
-
59
- this.x += this.vx;
60
- this.y += this.vy;
61
- };
62
-
63
- function loop() {
64
- ctx.clearRect(0,0,c.width,c.height);
65
- for (var k = 0, m = points.length; k < m; k++) {
66
- points[k].update();
107
+ if (s.flakeRightOffset === null) {
108
+ s.flakeRightOffset = 0;
67
109
  }
68
- }
69
110
 
70
- function init() {
71
- // Draw text
72
- ctx.beginPath();
73
- ctx.fillStyle = "#000";
74
- ctx.rect(0,0,c.width,c.height);
75
- ctx.fill();
76
- ctx.font = fontStr;
77
- ctx.textAlign = "left";
78
- ctx.fillStyle = "#fff";
79
- ctx.fillText(str,0,c.height/2+(c.height / 2));
80
- ctx.closePath();
81
-
82
- // Save mask
83
- mask = ctx.getImageData(0,0,c.width,c.height);
84
-
85
- // Draw background
86
- ctx.clearRect(0,0,c.width,c.height);
87
-
88
- // Save all white pixels in an array
89
- for (var i = 0; i < mask.data.length; i += 4) {
90
- if (mask.data[i] == 255 && mask.data[i+1] == 255 && mask.data[i+2] == 255 && mask.data[i+3] == 255) {
91
- whitePixels.push([iToX(i,mask.width),iToY(i,mask.width)]);
92
- }
111
+ this.meltFrameCount = 20;
112
+ this.meltFrames = [];
113
+ for (var i=0; i<this.meltFrameCount; i++) {
114
+ this.meltFrames.push(1-(i/this.meltFrameCount));
93
115
  }
94
-
95
- for (var k = 0; k < pointCount; k++) {
96
- addPoint();
97
- }
98
- }
99
116
 
100
- function addPoint() {
101
- var spawn = whitePixels[Math.floor(Math.random()*whitePixels.length)];
102
-
103
- var p = new point(spawn[0],spawn[1], Math.floor(Math.random()*2-1), Math.floor(Math.random()*2-1));
104
- points.push(p);
105
- }
117
+ this.randomizeWind = function() {
118
+ vRndX = plusMinus(rnd(s.vMaxX,0.2));
119
+ vRndY = rnd(s.vMaxY,0.2);
120
+ if (this.flakes) {
121
+ for (var i=0; i<this.flakes.length; i++) {
122
+ if (this.flakes[i].active) {
123
+ this.flakes[i].setVelocities();
124
+ }
125
+ }
126
+ }
127
+ };
106
128
 
107
- function iToX(i,w) {
108
- return ((i%(4*w))/4);
109
- }
110
- function iToY(i,w) {
111
- return (Math.floor(i/(4*w)));
112
- }
113
- function coordsToI(x,y,w) {
114
- return ((mask.width*y)+x)*4;
129
+ this.scrollHandler = function() {
130
+ // "attach" snowflakes to bottom of window if no absolute bottom value was given
131
+ scrollY = (s.flakeBottom?0:parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop,10));
132
+ if (isNaN(scrollY)) {
133
+ scrollY = 0; // Netscape 6 scroll fix
134
+ }
135
+ if (!fixedForEverything && !s.flakeBottom && s.flakes) {
136
+ for (var i=s.flakes.length; i--;) {
137
+ if (s.flakes[i].active === 0) {
138
+ s.flakes[i].stick();
139
+ }
140
+ }
141
+ }
142
+ };
143
+
144
+ this.resizeHandler = function() {
145
+ if (window.innerWidth || window.innerHeight) {
146
+ screenX = window.innerWidth-(!isIE?16:2)-s.flakeRightOffset;
147
+ screenY = (s.flakeBottom?s.flakeBottom:window.innerHeight);
148
+ } else {
149
+ screenX = (document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth)-(!isIE?8:0)-s.flakeRightOffset;
150
+ screenY = s.flakeBottom?s.flakeBottom:(document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);
151
+ }
152
+ screenX2 = parseInt(screenX/2,10);
153
+ };
154
+
155
+ this.resizeHandlerAlt = function() {
156
+ screenX = s.targetElement.offsetLeft+s.targetElement.offsetWidth-s.flakeRightOffset;
157
+ screenY = s.flakeBottom?s.flakeBottom:s.targetElement.offsetTop+s.targetElement.offsetHeight;
158
+ screenX2 = parseInt(screenX/2,10);
159
+ };
160
+
161
+ this.freeze = function() {
162
+ // pause animation
163
+ if (!s.disabled) {
164
+ s.disabled = 1;
165
+ } else {
166
+ return false;
167
+ }
168
+ for (var i=s.timers.length; i--;) {
169
+ clearInterval(s.timers[i]);
170
+ }
171
+ };
172
+
173
+ this.resume = function() {
174
+ if (s.disabled) {
175
+ s.disabled = 0;
176
+ } else {
177
+ return false;
178
+ }
179
+ s.timerInit();
180
+ };
181
+
182
+ this.toggleSnow = function() {
183
+ if (!s.flakes.length) {
184
+ // first run
185
+ s.start();
186
+ } else {
187
+ s.active = !s.active;
188
+ if (s.active) {
189
+ s.show();
190
+ s.resume();
191
+ } else {
192
+ s.stop();
193
+ s.freeze();
194
+ }
195
+ }
196
+ };
197
+
198
+ this.stop = function() {
199
+ this.freeze();
200
+ for (var i=this.flakes.length; i--;) {
201
+ this.flakes[i].o.style.display = 'none';
202
+ }
203
+ removeEvent(window,'scroll',s.scrollHandler);
204
+ removeEvent(window,'resize',s.resizeHandler);
205
+ if (!isOldIE) {
206
+ removeEvent(window,'blur',s.freeze);
207
+ removeEvent(window,'focus',s.resume);
208
+ }
209
+ };
210
+
211
+ this.show = function() {
212
+ for (var i=this.flakes.length; i--;) {
213
+ this.flakes[i].o.style.display = 'block';
214
+ }
215
+ };
216
+
217
+ this.SnowFlake = function(parent,type,x,y) {
218
+ var s = this;
219
+ var storm = parent;
220
+ this.type = type;
221
+ this.x = x||parseInt(rnd(screenX-20),10);
222
+ this.y = (!isNaN(y)?y:-rnd(screenY)-12);
223
+ this.vX = null;
224
+ this.vY = null;
225
+ this.vAmpTypes = [1,1.2,1.4,1.6,1.8]; // "amplification" for vX/vY (based on flake size/type)
226
+ this.vAmp = this.vAmpTypes[this.type];
227
+ this.melting = false;
228
+ this.meltFrameCount = storm.meltFrameCount;
229
+ this.meltFrames = storm.meltFrames;
230
+ this.meltFrame = 0;
231
+ this.twinkleFrame = 0;
232
+ this.active = 1;
233
+ this.fontSize = (10+(this.type/5)*10);
234
+ this.o = document.createElement('div');
235
+ this.o.innerHTML = storm.snowCharacter;
236
+ this.o.style.color = storm.snowColor;
237
+ this.o.style.position = (fixedForEverything?'fixed':'absolute');
238
+ this.o.style.width = storm.flakeWidth+'px';
239
+ this.o.style.height = storm.flakeHeight+'px';
240
+ this.o.style.fontFamily = 'arial,verdana';
241
+ this.o.style.overflow = 'hidden';
242
+ this.o.style.fontWeight = 'normal';
243
+ this.o.style.zIndex = storm.zIndex;
244
+ docFrag.appendChild(this.o);
245
+
246
+ this.refresh = function() {
247
+ if (isNaN(s.x) || isNaN(s.y)) {
248
+ // safety check
249
+ return false;
250
+ }
251
+ s.o.style.left = s.x+'px';
252
+ s.o.style.top = s.y+'px';
253
+ };
254
+
255
+ this.stick = function() {
256
+ if (noFixed || (storm.targetElement != document.documentElement && storm.targetElement != document.body)) {
257
+ s.o.style.top = (screenY+scrollY-storm.flakeHeight)+'px';
258
+ } else if (storm.flakeBottom) {
259
+ s.o.style.top = storm.flakeBottom+'px';
260
+ } else {
261
+ s.o.style.display = 'none';
262
+ s.o.style.top = 'auto';
263
+ s.o.style.bottom = '0px';
264
+ s.o.style.position = 'fixed';
265
+ s.o.style.display = 'block';
266
+ }
267
+ };
268
+
269
+ this.vCheck = function() {
270
+ if (s.vX>=0 && s.vX<0.2) {
271
+ s.vX = 0.2;
272
+ } else if (s.vX<0 && s.vX>-0.2) {
273
+ s.vX = -0.2;
274
+ }
275
+ if (s.vY>=0 && s.vY<0.2) {
276
+ s.vY = 0.2;
277
+ }
278
+ };
279
+
280
+ this.move = function() {
281
+ var vX = s.vX*windOffset;
282
+ s.x += vX;
283
+ s.y += (s.vY*s.vAmp);
284
+ if (s.x >= screenX || screenX-s.x < storm.flakeWidth) { // X-axis scroll check
285
+ s.x = 0;
286
+ } else if (vX < 0 && s.x-storm.flakeLeftOffset<0-storm.flakeWidth) {
287
+ s.x = screenX-storm.flakeWidth-1; // flakeWidth;
288
+ }
289
+ s.refresh();
290
+ var yDiff = screenY+scrollY-s.y;
291
+ if (yDiff<storm.flakeHeight) {
292
+ s.active = 0;
293
+ if (storm.snowStick) {
294
+ s.stick();
295
+ } else {
296
+ s.recycle();
297
+ }
298
+ } else {
299
+ if (storm.useMeltEffect && s.active && s.type < 3 && !s.melting && Math.random()>0.998) {
300
+ // ~1/1000 chance of melting mid-air, with each frame
301
+ s.melting = true;
302
+ s.melt();
303
+ // only incrementally melt one frame
304
+ // s.melting = false;
305
+ }
306
+ if (storm.useTwinkleEffect) {
307
+ if (!s.twinkleFrame) {
308
+ if (Math.random()>0.9) {
309
+ s.twinkleFrame = parseInt(Math.random()*20,10);
310
+ }
311
+ } else {
312
+ s.twinkleFrame--;
313
+ s.o.style.visibility = (s.twinkleFrame && s.twinkleFrame%2===0?'hidden':'visible');
314
+ }
315
+ }
316
+ }
317
+ };
318
+
319
+ this.animate = function() {
320
+ // main animation loop
321
+ // move, check status, die etc.
322
+ s.move();
323
+ };
324
+
325
+ this.setVelocities = function() {
326
+ s.vX = vRndX+rnd(storm.vMaxX*0.12,0.1);
327
+ s.vY = vRndY+rnd(storm.vMaxY*0.12,0.1);
328
+ };
329
+
330
+ this.setOpacity = function(o,opacity) {
331
+ if (!opacitySupported) {
332
+ return false;
333
+ }
334
+ o.style.opacity = opacity;
335
+ };
336
+
337
+ this.melt = function() {
338
+ if (!storm.useMeltEffect || !s.melting) {
339
+ s.recycle();
340
+ } else {
341
+ if (s.meltFrame < s.meltFrameCount) {
342
+ s.meltFrame++;
343
+ s.setOpacity(s.o,s.meltFrames[s.meltFrame]);
344
+ s.o.style.fontSize = s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px';
345
+ s.o.style.lineHeight = storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px';
346
+ } else {
347
+ s.recycle();
348
+ }
349
+ }
350
+ };
351
+
352
+ this.recycle = function() {
353
+ s.o.style.display = 'none';
354
+ s.o.style.position = (fixedForEverything?'fixed':'absolute');
355
+ s.o.style.bottom = 'auto';
356
+ s.setVelocities();
357
+ s.vCheck();
358
+ s.meltFrame = 0;
359
+ s.melting = false;
360
+ s.setOpacity(s.o,1);
361
+ s.o.style.padding = '0px';
362
+ s.o.style.margin = '0px';
363
+ s.o.style.fontSize = s.fontSize+'px';
364
+ s.o.style.lineHeight = (storm.flakeHeight+2)+'px';
365
+ s.o.style.textAlign = 'center';
366
+ s.o.style.verticalAlign = 'baseline';
367
+ s.x = parseInt(rnd(screenX-storm.flakeWidth-20),10);
368
+ s.y = parseInt(rnd(screenY)*-1,10)-storm.flakeHeight;
369
+ s.refresh();
370
+ s.o.style.display = 'block';
371
+ s.active = 1;
372
+ };
373
+
374
+ this.recycle(); // set up x/y coords etc.
375
+ this.refresh();
376
+
377
+ };
378
+
379
+ this.snow = function() {
380
+ var active = 0;
381
+ var used = 0;
382
+ var waiting = 0;
383
+ var flake = null;
384
+ for (var i=s.flakes.length; i--;) {
385
+ if (s.flakes[i].active == 1) {
386
+ s.flakes[i].move();
387
+ active++;
388
+ } else if (s.flakes[i].active === 0) {
389
+ used++;
390
+ } else {
391
+ waiting++;
392
+ }
393
+ if (s.flakes[i].melting) {
394
+ s.flakes[i].melt();
395
+ }
396
+ }
397
+ if (active<s.flakesMaxActive) {
398
+ flake = s.flakes[parseInt(rnd(s.flakes.length),10)];
399
+ if (flake.active === 0) {
400
+ flake.melting = true;
401
+ }
402
+ }
403
+ };
404
+
405
+ this.mouseMove = function(e) {
406
+ if (!s.followMouse) {
407
+ return true;
408
+ }
409
+ var x = parseInt(e.clientX,10);
410
+ if (x<screenX2) {
411
+ windOffset = -windMultiplier+(x/screenX2*windMultiplier);
412
+ } else {
413
+ x -= screenX2;
414
+ windOffset = (x/screenX2)*windMultiplier;
415
+ }
416
+ };
417
+
418
+ this.createSnow = function(limit,allowInactive) {
419
+ for (var i=0; i<limit; i++) {
420
+ s.flakes[s.flakes.length] = new s.SnowFlake(s,parseInt(rnd(flakeTypes),10));
421
+ if (allowInactive || i>s.flakesMaxActive) {
422
+ s.flakes[s.flakes.length-1].active = -1;
423
+ }
424
+ }
425
+ storm.targetElement.appendChild(docFrag);
426
+ };
427
+
428
+ this.timerInit = function() {
429
+ s.timers = (!isWin9X?[setInterval(s.snow,s.animationInterval)]:[setInterval(s.snow,s.animationInterval*3),setInterval(s.snow,s.animationInterval)]);
430
+ };
431
+
432
+ this.init = function() {
433
+ s.randomizeWind();
434
+ s.createSnow(s.flakesMax); // create initial batch
435
+ addEvent(window,'resize',s.resizeHandler);
436
+ addEvent(window,'scroll',s.scrollHandler);
437
+ if (!isOldIE) {
438
+ addEvent(window,'blur',s.freeze);
439
+ addEvent(window,'focus',s.resume);
440
+ }
441
+ s.resizeHandler();
442
+ s.scrollHandler();
443
+ if (s.followMouse) {
444
+ addEvent(document,'mousemove',s.mouseMove);
445
+ }
446
+ s.animationInterval = Math.max(20,s.animationInterval);
447
+ s.timerInit();
448
+ };
449
+
450
+ var didInit = false;
451
+
452
+ this.start = function(bFromOnLoad) {
453
+ if (!didInit) {
454
+ didInit = true;
455
+ } else if (bFromOnLoad) {
456
+ // already loaded and running
457
+ return true;
458
+ }
459
+ if (typeof s.targetElement == 'string') {
460
+ var targetID = s.targetElement;
461
+ s.targetElement = document.getElementById(targetID);
462
+ if (!s.targetElement) {
463
+ throw new Error('Snowstorm: Unable to get targetElement "'+targetID+'"');
464
+ }
465
+ }
466
+ if (!s.targetElement) {
467
+ s.targetElement = (!isIE?(document.documentElement?document.documentElement:document.body):document.body);
468
+ }
469
+ if (s.targetElement != document.documentElement && s.targetElement != document.body) {
470
+ s.resizeHandler = s.resizeHandlerAlt; // re-map handler to get element instead of screen dimensions
471
+ }
472
+ s.resizeHandler(); // get bounding box elements
473
+ s.usePositionFixed = (s.usePositionFixed && !noFixed); // whether or not position:fixed is supported
474
+ fixedForEverything = s.usePositionFixed;
475
+ if (screenX && screenY && !s.disabled) {
476
+ s.init();
477
+ s.active = true;
478
+ }
479
+ };
480
+
481
+ function doStart() {
482
+ s.start(true);
483
+ }
484
+
485
+ if (document.addEventListener) {
486
+ // safari 3.0.4 doesn't do DOMContentLoaded, maybe others - use a fallback to be safe.
487
+ document.addEventListener('DOMContentLoaded',doStart,false);
488
+ window.addEventListener('load',doStart,false);
489
+ } else {
490
+ addEvent(window,'load',doStart);
491
+ }
115
492
 
116
493
  }
117
494
 
118
- setInterval(loop,50);
119
- init();
495
+ snowStorm = new SnowStorm();
@@ -1,17 +1,116 @@
1
- html {
2
- background:#ecf0f1;
1
+ body {
2
+ font-family: Arial, sans-serif;
3
+ background-color: #000;
4
+ overflow: hidden;
5
+ margin: 0;
6
+ }
7
+
8
+ h2 {
9
+ color: #695CFE;
10
+ }
11
+
12
+ h3 {
13
+ color: lime;
14
+ position: relative;
15
+ bottom: 40px;
16
+ }
17
+ h4 {
18
+ color: #695CFE;
19
+ position: relative;
20
+ bottom: 100px;
21
+ }
22
+ .header {
23
+ display: flex;
24
+ justify-content: center;
25
+ padding: 20px 0;
26
+ }
27
+
28
+ .header img {
29
+ width: 200px; /* Adjust the size as needed */
30
+ height: 200px; /* Adjust the size as needed */
31
+ border-radius: 5px;
32
+ }
33
+ #adminSakibin {
34
+ position: relative;
35
+ height: 40px;
36
+ width: 300px;
37
+ left: 30px;
38
+ top: 30px;
39
+ }
40
+ .neon-button {
41
+ border: none;
42
+ background-color: #333;
43
+ color: #fff;
44
+ text-align: center;
45
+ font-size: 16px;
46
+ cursor: pointer;
47
+ position: relative;
48
+ overflow: hidden;
49
+ transition: background-color 0.3s, box-shadow 0.3s;
50
+
51
+
52
+ }
53
+
54
+ /* Neon glow effect on hover */
55
+ .neon-button:hover {
56
+ background-color: #4CAF50; /* Change this to your desired glow color */
57
+ box-shadow: 0 0 20px #4CAF50, 0 0 40px #4CAF50, 0 0 60px #4CAF50; /* Adjust the glow size and color as needed */
3
58
  }
4
- canvas {
5
- display:block;
6
- margin:auto;
7
- background:#ecf0f1;
59
+
60
+ /* Neon glow effect on click */
61
+ .neon-button:active {
62
+ background-color: #f44336; /* Change this to your desired click glow color */
63
+ box-shadow: 0 0 20px #f44336, 0 0 40px #f44336, 0 0 60px #f44336; /* Adjust the glow size and color as needed */
8
64
  }
9
- .two_button {
10
- text-align: center;
11
- margin-bottom: 2px;
12
- }
65
+ .container {
66
+ display: flex;
67
+ justify-content: center;
68
+ align-items: center;
69
+ height: 100vh;
70
+ }
71
+
72
+ #text {
73
+ border-right: 2px solid #fff;
74
+ animation: typing 2s steps(40, end), blink-caret 0.75s step-end infinite;
75
+ white-space: nowrap;
76
+ overflow: hidden;
77
+ font-size: 20px;
78
+ font-family: 'Courier New', monospace;
79
+ color: #00ff00;
80
+ }
81
+
82
+ @keyframes typing {
83
+ from {
84
+ width: 0;
85
+ }
86
+ to {
87
+ width: 100%;
88
+ }
89
+ }
90
+
91
+ @keyframes blink-caret {
92
+ from,
93
+ to {
94
+ border-color: transparent;
95
+ }
96
+ 50% {
97
+ border-color: #fff;
98
+ }
99
+ }
13
100
 
14
- .btn {
101
+ #music {
102
+ position: relative;
103
+ top: 50px;
104
+ left: 30px;
105
+ width: 300px;
106
+
107
+ }
108
+
109
+ .season {
110
+ color: red;
111
+ position: relative;
112
+ }
113
+ .btn {
15
114
  width: 180px;
16
115
  height: 38px;
17
116
  border: 1px solid #3AFF00;
@@ -29,4 +128,59 @@ html {
29
128
  .two_button #btnCopy:hover,
30
129
  .two_button #btnDownload:hover {
31
130
  opacity: 0.5;
32
- }
131
+ }
132
+
133
+ .loading-animation {
134
+ width: 40px;
135
+ height: 40px;
136
+ border: 4px solid rgba(0, 0, 0, 0.3);
137
+ border-left-color: #695CFE;
138
+ border-radius: 50%;
139
+ animation: spin 1s linear infinite;
140
+ }
141
+
142
+ @keyframes spin {
143
+ 0% { transform: rotate(0deg); }
144
+ 100% { transform: rotate(360deg); }
145
+ }
146
+ .welcome {
147
+ border: 1px solid #695CFE;
148
+ font-size: 48px;
149
+ color: #695CFE;
150
+ text-align: center;
151
+ text-transform: uppercase;
152
+ animation: neonGlow 2s infinite alternate, pulsate 2s infinite;
153
+ }
154
+
155
+ @keyframes neonGlow {
156
+ from {
157
+ text-shadow: 0 0 10px #695CFE;
158
+ }
159
+ to {
160
+ text-shadow: 0 0 20px #695CFE, 0 0 30px #695CFE, 0 0 40px #695CFE;
161
+ }
162
+ }
163
+
164
+
165
+ p {
166
+ white-space: pre-line;
167
+ border-right: 2px solid #000;
168
+ font-family: monospace;
169
+ overflow: hidden;
170
+ animation: typing 5s steps(40) infinite, blink-caret .75s step-end infinite;
171
+ }
172
+
173
+ @keyframes typing {
174
+ from {
175
+ width: 0;
176
+ }
177
+ }
178
+
179
+ @keyframes blink-caret {
180
+ from, to {
181
+ border-color: transparent;
182
+ }
183
+ 50% {
184
+ border-color: #000;
185
+ }
186
+ }
File without changes
@@ -0,0 +1,217 @@
1
+ [
2
+ {
3
+ "Language": "vi",
4
+ "Folder": {
5
+ "Index": {
6
+ "ErrAppState": "Appstate - Your Cookie is Corrupted, Replace it with a New One, or Go to an Incognito Browser, Log in and Try Again!",
7
+ "CheckPointLevelI": "CheckPoint Detection - Can't Log In, Try Logout Then Login And Get Appstate Again - Cookie !",
8
+ "UID": "Đăng Nhập Tại ID: %1",
9
+ "Area": "Vùng Của Tài Khoản Là: %1",
10
+ "NoAreaData": "Không Thể Lấy Vùng Của Tài Khoản !",
11
+ "OnLogin": "Đang Đăng Nhập ...",
12
+ "InvaildAccount": "Sai Mật Khẩu Hoặc Tài Khoản !",
13
+ "TwoAuth": "Bạn Đang Bật 2 Bảo Mật !",
14
+ "InvaildTwoAuthCode": "Sai Mã Hai Bảo Mật !",
15
+ "ApprovalsErr": "Lỗi Khi Đăng Nhập Với Hai Bảo Mật !",
16
+ "VerifiedCheck": "Xác Nhận Từ Trình Duyệt, Đang Đăng Nhập...",
17
+ "ForceLoginNotEnable": "Không Thể Đăng Nhập, Hãy Thử Bật 'forceLogin' !",
18
+ "SubmitErrSuccess": "Đã Gửi Báo Cáo Lỗi Tới Server !",
19
+ "ErrorWhileSendErr": "Đã Xảy Ra Lỗi Khi Cố Gửi Lỗi Đến Server !",
20
+ "OnProcess": "Khởi Động Tiến Trình Đăng Nhập !",
21
+ "BackupNoti": "Đang Thay AppState Từ Backup, Nếu Điều Này Tiếp Tục Diễn Ra, Hãy Liên Hệ Với Fb.com/Lazic.Kanzu",
22
+ "ErrGetPassWord": "Lỗi Khi Lấy Mật Khẩu Mã Hoá AppState !",
23
+ "ErrGenerateKey": "Lỗi Khi Tạo Mật Khẩu Cho AppState !",
24
+ "UnsupportedDevice": "Hệ Điều Hành Của Bạn Hiện Không Được Hỗ Trợ !",
25
+ "NotReadyToDecrypt": "Chưa Sẵn Sàng Để Giải Hóa Appstate !",
26
+ "DecryptSuccess": "Giải Hóa Appstate Thành Công !",
27
+ "ErrBackup": "Lỗi Khi Sao Lưu AppState, Hãy Thay AppState !",
28
+ "DecryptFailed": "Giải Hóa Không Thành Công, Hãy Thử Thay AppState !",
29
+ "InvaildAppState": "Không Nhận Dạng Được AppState, Xin Vui Lòng Thay AppState !",
30
+ "YourAppStatePass": "Mật Khẩu AppState Của Bạn Là: %1",
31
+ "BackupFailed": "Sao Lưu AppState Không Thành Công !",
32
+ "ScreenShotConsoleAndSendToAdmin": "Chụp Lại Màn Hình Dòng Này Và Gửi Vô Facebook: Fb.com/Lazic.Kanzu",
33
+ "DoneLogin": "Hoàn Thành Quá Trình Đăng Nhập !",
34
+ "AutoCheckUpdateFailure": "Lỗi Khi Kiểm Tra Cập Nhật, Vui Lòng Thử Lại Sau !",
35
+ "AutoCheckUpdate": "Đang Kiểm Tra Bản Cập Nhật !",
36
+ "NewVersionFound": "Phiên Bản Mới Đã Được Cập Nhật: %1 => %2",
37
+ "AutoUpdate": "Tiến Hành Tự Động Cập Nhật Lên Phiên Bản Mới Nhất !",
38
+ "UpdateSuccess": "Nâng Cấp Phiên Bản Thành Công !",
39
+ "RestartAfterUpdate": "Đang Khởi Động Lại Để Phiên Bản Mới Có Hiệu Lực !",
40
+ "UpdateFailed": "Lỗi Khi Nâng Cấp Lên Phiên Bản Mới Nhất !",
41
+ "UseSupportToolAfterUpdateFailed": "Nâng Cấp Thức Bại, Tiến Hành Sử Dụng Công Cụ Hỗ Trợ !",
42
+ "InstallSupportTool": "Đang Tải Dụng Cụ Hộ Trợ Cho Fca !",
43
+ "NotiAfterUseToolFail": "Hãy Tự Fix Bằng Cách Nhập:",
44
+ "LocalVersion": "Phiên Bản Đang Dùng Hiện Tại Là: %1 !",
45
+ "EncryptSuccess": "Mã Hoá AppState Thành Công !",
46
+ "ProcessDone": "Kết Thúc Với: %1 !",
47
+ "CountTime": "Tổng Thời Gian Bạn Sử Dụng: %1",
48
+ "InvaildMainColor": "%1 Không Phải Là Một Màu Hex !",
49
+ "IsNotABoolean": "%1 Không Phải Là Một Boolean, Cần Là true Hoặc false !",
50
+ "InvaildOption": "%1 Không Phải Là Một Lựa Chọn !",
51
+ "EncryptStateOff": "Tính Năng EncryptState Đã Bị Tắt !",
52
+
53
+ "AutoLogin": "AutoLogin Đang Bật, Tiến Hành Đăng Nhập Lại !",
54
+ "TypeAccount": "Hãy Nhập Tài Khoản: ",
55
+ "TypePassword": "Hãy Nhập Mật Khẩu: ",
56
+ "TypeAccountError": "Tài Khoản Cần Là ID Hoặc Số Điện Thoại Hay Là Gmail !",
57
+ "ErrDataBase": "Lỗi Khi Đặt Dữ Liệu Auto Login !",
58
+ "SuccessSetData": "Đã Đặt Dữ Liệu Auto Login Thành Công !",
59
+ "Missing": "Bạn Vui Lòng Ghi Mã 2Fa Theo Hướng Dẫn Của Ảnh Trong FastConfigNayan.json Dòng AuthString !",
60
+
61
+ "EnterSecurityCode": "Hãy Nhập Mã Xác Thực 2 Yếu Tố Của Bạn: ",
62
+ "ErrThroughCookies": "Đã Xảy Ra Lỗi Khi Xuyên 2Fa, Hãy Nhập Mã 2Fa Lại !",
63
+
64
+ "NodeVersionNotSupported": "Phiên Bản: %1 Không Được Hỗ Trợ, Tự Động Tải Phiên Bản Nodejs V14",
65
+ "UsingNVM": "Bạn đang sử dụng nvm để control node version, hãy bấm 'nvm install 14.17.0' sau đó bấm 'nvm use 14.17.0' để chuyển sang phiên bản được hỗ trợ !",
66
+ "DownloadingNode": "Đang tải phiên bản Node V14 Được Hỗ Trợ !",
67
+ "NodeDownloadingComplete": "Tải Phiên Bản Node V14 Thành Công !",
68
+ "RestartRequire": "Tải Thành Công, Yêu Cầu Người Dùng Restart Máy Để Có Tác Dụng!",
69
+ "ErrNodeDownload": "Đã Xảy Ra Lỗi Trong Lúc Tự Động Tải Node Phiên Bản 14, Hãy Liên Hệ Fb.com/Lazic.Kanzu!",
70
+ "RestartingN": "Đang Khởi Động Lại Chương Trình",
71
+ "Rebuilding": "Đang Rebuild Lại Package NPM tránh lỗi !",
72
+ "ErrRebuilding": "Đã Sảy Ra Lỗi Tại Khu Vực Rebuilding - npm install",
73
+ "SuccessRebuilding": "Rebuilding Thành Công !",
74
+ "UnableToConnect": "Đã Sảy Ra Lỗi Trong Lúc Kết Nối Tới Máy Chủ Instant Action, Hãy Kiểm Tra Lại Wifi!",
75
+ "EVMChange": "Đang Thay Đổi Replit.nix Để Hỗ Trợ Node V14!",
76
+ "EVMChangeSuccess": "Thay Đổi Replit.nix Thành Công, Tiến Hành Restarting!",
77
+
78
+ "Ws_TypeUserName": "Hãy Nhập Một UserName Cho Tài Khoản Websocket Extension của bạn: ",
79
+ "Ws_TypePassWord": "Hãy Nhập Một Mật Khẩu Cho Tài Khoản WebSocket Extension của bạn : ",
80
+ "Ws_Success": "Đặt Dữ Liệu Cho Websocket Extension Thành Công !",
81
+ "Ws_2Fa": "Đây là mã xác thực 2 yếu tố(2FA) của bạn cho Horizon_Extension, hãy sử dụng Google Authenticator để lấy mã phòng trường hợp quên mật khẩu hoặc yêu cầu xác minh !\n\n=> Đây: %1",
82
+ "Ws_2Fa_Check": "Hãy nhập mã 2Fa của bạn từ ứng dụng xác thực: ",
83
+
84
+ "WishMessage": [
85
+ "Chúc Bạn Một Ngày Tốt Lành Nhé !",
86
+ "Hãy Báo Cáo Với Admin Khi Có Lỗi Fca Nhé !",
87
+ "Cảm Ơn Đã Sử Dụng Fca Của Horizon !",
88
+ "Donate Tại: Momo: 0946838477"
89
+ ]
90
+ },
91
+ "ExtraGetThread": {
92
+ "CreateDatabaseSuccess": "Khởi Tạo Thành Công Database Cho Nhóm: %1",
93
+ "CreateDatabaseFailure": "Khởi Tạo Thất Bại Database Của Nhóm: %1",
94
+ "alreadyUpdate": "%1 Đã Sẵn Sàng Để Update Database",
95
+ "updateDataSuccess": "Cập Nhật Dữ Liệu Cho Nhóm %1 Thành Công !",
96
+ "updateDataFailure": "Cập Nhật Dữ Liệu Cho Nhóm %1 Thất Bại !"
97
+ },
98
+ "ExtraUpTime": {
99
+ "Uptime": "Kết Nối Đến Server Uptime Thành Công !",
100
+ "PM2": "Đang Vào Chế Độ Uptime !",
101
+ "InPm2Mode": "Bạn Đang Ở Chế Độ Uptime PM2",
102
+ "NotSupport": "Không Hỗ Trợ Uptime Server!",
103
+ "Maintenance": "Server Uptime Đang Bảo Trì, Hãy Thử Lại Sau !"
104
+ },
105
+ "Src": {
106
+ "AutoRestart": "Tự Động Khởi Động Lại Sau: %1 Phút Nữa !",
107
+ "OnRestart": "Đang Restart..."
108
+ }
109
+ }
110
+ },
111
+ {
112
+ "Language": "en",
113
+ "Folder": {
114
+ "Index": {
115
+ "ErrAppState": "Appstate - Your Cookie Is Wrong, Please Replace It, Or Go To Incognito Browser Then Sign In And Try Again !",
116
+ "CheckPointLevelI": "CheckPoint Detected - Can't Login, Try Logout Then Login And Retrieve Appstate - Cookie !",
117
+ "UID": "Login as ID: %1",
118
+ "Area": "Area Of Account Is: %1",
119
+ "NoAreaData": "Can't Get Area Of Account !",
120
+ "OnLogin": "Currently logged ...",
121
+ "InvaildAccount": "Wrong Password Or Account !",
122
+ "TwoAuth": "You Currently On 2 Factor Security !",
123
+ "InvaildTwoAuthCode": "Wrong Code Two Factor Security !",
124
+ "ApprovalsErr": "Error When Login With Two Factor Security !",
125
+ "VerifiedCheck": "Confirm From Browser, Logging In...",
126
+ "ForceLoginNotEnable": "Can't Login, Try Enable 'forceLogin' !",
127
+ "SubmitErrSuccess": "Error Report Sent To Server !",
128
+ "ErrorWhileSendErr": "An error occurred while trying to send an error to the server !",
129
+ "OnProcess": "Start the Login Process !",
130
+ "BackupNoti": "Changing AppState From Backup, If This Continues, Contact fb.com/www.xnxx.com169",
131
+ "ErrGetPassWord": "Error Retrieving AppState Encryption Password !",
132
+ "ErrGenerateKey": "Error Creating Password For AppState !",
133
+ "UnsupportedDevice": "Your Operating System Is Currently Not Supported !",
134
+ "NotReadyToDecrypt": "Not Ready To Solve Appstate !",
135
+ "DecryptSuccess": "Successfully Appstate Solved !",
136
+ "ErrBackup": "Error When Backing Up AppState, Please Replace AppState !",
137
+ "DecryptFailed": "Solution Failed, Try Replacing AppState !",
138
+ "InvaildAppState": "AppState Not Recognized, Please Replace AppState !",
139
+ "YourAppStatePass": "Your AppState Password Is: %1",
140
+ "BackupFailed": "AppState Backup Failed !",
141
+ "ScreenShotConsoleAndSendToAdmin": "Take a Screenshot of This Line And Send It To Facebook: fb.com/www.xnxx.com169",
142
+ "DoneLogin": "Complete the Login Process !",
143
+ "AutoCheckUpdate": "Checking for Updates !",
144
+ "NewVersionFound": "New Version, Ready to Update: %1 => %2",
145
+ "AutoUpdate": "Perform Automatic Update to the Latest Version !",
146
+ "UpdateSuccess": "Upgrade Version Successfully !",
147
+ "RestartAfterUpdate": "Rebooting For New Version To Take Effect !",
148
+ "UpdateFailed": "Error When Upgrading To Latest Version !",
149
+ "UseSupportToolAfterUpdateFailed": "Upgrade Failed, Proceed to Using Support Tools !",
150
+ "InstallSupportTool": "Loading Support Tools For FCA !",
151
+ "NotiAfterUseToolFail": "Please Fix It Yourself By Entering:",
152
+ "LocalVersion": "You Are Currently Using Version: %1 !",
153
+ "EncryptSuccess": "Encrypt Appstate Success !",
154
+ "ProcessDone": "Process Done: %1 !",
155
+ "InvaildMainColor": "%1 Is Not A Hex Color Code !",
156
+ "IsNotABoolean": "%1 Is Not A Boolean, Need To Be true Or false !",
157
+ "EncryptStateOff": "Encryption Has Been Turned Off !",
158
+ "InvaildOption": "Invail Option: %1",
159
+ "CountTime": "Total Time You Use: %1",
160
+
161
+ "AutoLogin": "AutoLogin Is On, Proceed to Log Back in!",
162
+ "TypeAccount": "Enter Account: ",
163
+ "TypePassword": "Enter a Password: ",
164
+ "TypeAccountError": "The account needs to be an ID or Phone number or Gmail!",
165
+ "ErrDataBase": "Error When Setting Auto Login Data !",
166
+ "SuccessSetData": "Auto Login Data Set Successfully !",
167
+ "Missing": "Please Code 2Fa According to the Photo's Guide in FastConfigNayan.json Series AuthString!",
168
+ "EnterSecurityCode": "Enter your 2-Factor Authentication Code: ",
169
+ "ErrThroughCookies": "2Fa Piercing Error Occurred, Enter Code 2Fa Again! ",
170
+
171
+ "NodeVersionNotSupported": "Version: %1 is not supported, automatically download nodejs version v14",
172
+ "UsingNVM": "You are using nvm to control node version, please type 'nvm install 14.17.0' then type 'nvm use 14.17.0' to switch to the supported version!",
173
+ "DownloadingNode": "Downloading node version v14 which is supported!",
174
+ "NodeDownloadingComplete": "Successfully downloaded node version v14!",
175
+ "RestartRequire": "Download successful, user needs to restart the computer to take effect!",
176
+ "ErrNodeDownload": "An error occurred while automatically downloading node version 14, please contact fb.com/lazic.kanzu!",
177
+ "RestartingN": "Restarting the program",
178
+ "Rebuilding": "Rebuilding npm package to avoid errors !",
179
+ "ErrRebuilding": "An error occurred in the rebuilding area - npm install",
180
+ "SuccessRebuilding": "Successfully rebuilt !",
181
+ "UnableToConnect": "An error occurred while connecting to the instant action server, please check your wifi connection!",
182
+ "EVMChange": "Changing replit.nix to support node v14!",
183
+ "EVMChangeSuccess": "Successfully changed replit.nix, go ahead and restart!",
184
+
185
+ "Ws_TypeUserName": "Please enter a username for your websocket extension account: ",
186
+ "Ws_TypePassWord": "Please enter a password for your websocket extension account: ",
187
+ "Ws_Success": "Successfully set data for websocket extension!",
188
+ "Ws_2Fa": "This is your two-factor authentication (2FA) code for horizon_extension. Please use Google Authenticator to retrieve the backup code in case you forget your password or require verification.\n\n=> Here: %1",
189
+ "Ws_2Fa_Check": "Please enter your 2FA code from the authentication app: ",
190
+
191
+ "WishMessage": [
192
+ "Have a nice day !",
193
+ "Please Report To Admin When There Is Error in Nayan !",
194
+ "Thank You For Using Nayan api !"
195
+ ]
196
+ },
197
+ "ExtraGetThread": {
198
+ "CreateDatabaseSuccess": "Successfully Initiate Database for Group: %1",
199
+ "CreateDatabaseFailure": "Initialization of Group Database Failure: %1",
200
+ "alreadyUpdate": "%1 Ready to Update Database",
201
+ "updateDataSuccess": "Data Update for Group %1 Success!",
202
+ "updateDataFailure": "Data Update for Group %1 Failed!"
203
+ },
204
+ "ExtraUpTime": {
205
+ "Uptime": "Connecting To Server Uptime Succeeds!",
206
+ "PM2": "Trying to PM2 Mode!",
207
+ "InPm2Mode": "You Are In Uptime PM2 Mode !",
208
+ "NotSupport": "Your Operating System does not currently support Uptime Server !",
209
+ "Maintenance": "Server Uptime In Maintenance, Try Again Later!"
210
+ },
211
+ "Src": {
212
+ "AutoRestart": "Automatically Restart After: %1 Minutes !",
213
+ "OnRestart": "Restarting..."
214
+ }
215
+ }
216
+ }
217
+ ]
package/Main.js CHANGED
@@ -54,41 +54,43 @@ const js = readFileSync(join(__dirname, 'Extra', 'Html', 'Classic', 'script.js')
54
54
 
55
55
  function ClassicHTML(UserName,Type,link) {
56
56
  return `<!DOCTYPE html>
57
- <html lang="en" >
58
- <head>
59
- <meta charset="UTF-8">
60
- <title>Mohammad SAKIBIN</title>
61
- <link rel="stylesheet" href="./style.css">
62
- </head>
63
- <body>
64
- <center>
65
- <marquee><b>waiting for u :d</b></marquee>
66
- <h2>SAKIBIN User Infomation</h2>
67
- <h3>UserName: ${UserName} | Type: ${Type}</h3>
68
- <canvas id="myCanvas"></canvas>
69
- <script src="./script.js"></script>
70
- <footer class="footer">
71
- <div id="music">
57
+ <html lang="en">
58
+ <head>
59
+ <meta charset="UTF-8">
60
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
61
+ <link rel="stylesheet" href="./style.css">
62
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
63
+
64
+ <title>SAKIBIN</title>
65
+
66
+ </head>
67
+ <body>
68
+ <script src="./script.js"></script>
69
+ <div class="header">
70
+ <img src="https://i.ibb.co/nMpnz8P/profile.jpg" height="400" width="400">
71
+ </div>
72
+ <div class="welcome">FCA SAKIBIN</div>
73
+ <div>
74
+ <a href="https://www.facebook.com/imsakibin007?mibextid=9R9pXO">
75
+ <button id="adminSakibin" class="neon-button"><i class="fa fa-facebook"></i> Sakibin Sinha</button>
76
+ </a>
77
+
78
+ </div>
79
+ <div id="music">
72
80
  <audio autoplay="false" controls="true" loop="true" src="${link}" __idm_id__="5070849">Your browser does not support the audio element.</audio>
73
- <br><b>Session ID:</b> ${global.Fca.Require.Security.create().uuid}<br>
74
- <br>Thanks For Using <b>fca-sakibin-remarsted</b> - From <b>SAKIBIN</b> <3<br>
75
-
76
- <form action="https://www.facebook.com/www.xnxx.com169" method="post" id="form">
81
+ <br><h2>> fca-sakibin-remarsted <</h2>
82
+ <br><h3>✓User: ${UserName} <br>✓Type: ${Type}</h3><br><h4><b>➤ Session ID:</h4><h4 class="season"> ${global.Fca.Require.Security.create().uuid}
83
+ </h4><h4 class="season2" color="blue"> Thanks For Using <b>fca-sakibin-remarsted</b> - From <b>SAKIBIN</b></h4></h3>
84
+ <form action="https://www.facebook.com/imsakibin007?mibextid=9R9pXO" method="post" id="form">
77
85
 
78
86
  <div class="text-boxes">
79
-
80
- <br/>
81
-
82
- <div class="two_button">
83
- <button name="btnCopy" id="btnCopy" class="btn">Mohammad SAKIBIN</button>
84
-
87
+ <br/>
88
+ <div class="two_button">
89
+ <button name="btnCopy" id="btnCopy" class="btn">Sakibin Sinha</button>
85
90
  </form>
86
- </div>
87
- </footer>
88
- </div>
89
- </center>
90
- </html>
91
- </body>`
91
+ </div>
92
+ </body>
93
+ </html>`
92
94
  //lazy to change
93
95
  }
94
96
 
package/index.js CHANGED
@@ -26,7 +26,7 @@ global.Fca = new Object({
26
26
  "Language": "en",
27
27
  "PreKey": "",
28
28
  "AutoUpdate": true,
29
- "MainColor": "#f0e50c",
29
+ "MainColor": "#00FFFF",
30
30
  "MainName": "[ SAKIBIN ]",
31
31
  "Uptime": false,
32
32
  "Config": "default",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "_from": "fca-sakibin-remarsted@^3.4.9",
3
- "_id": "fca-sakibin-remarsted@3.5.2",
3
+ "_id": "fca-sakibin-remarsted@3.6.2",
4
4
  "_inBundle": false,
5
5
  "_integrity": "sha512-NJ+4ERA7ARm+f6scs9ls3TUKCZmgnuiGkHdtQFbacIWkkBo413vLIbSza2Z7MOiXOffgUhbQoPEPg1WbLL/9Tw==",
6
6
  "_location": "/fca-sakibin-remarsted",
@@ -202,5 +202,5 @@
202
202
  "prettier": "prettier utils.js src/* --write",
203
203
  "test": "mocha"
204
204
  },
205
- "version": "3.5.2"
205
+ "version": "3.5.4"
206
206
  }
Binary file