Advertisement
_LittleBoy_

Enigma V2 - The great war time communication tool

May 14th, 2024
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 28.65 KB | Cybersecurity | 0 0
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;;ENIGMA V2 THE GREAT WAR TIME COMMUNICATION TOOL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4. ;;;CREATE INVISIBLE DOCUMENT WITH KEY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  5. ;;;READ INVISIBLE DOCUMENT IN FEW CLICKS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6. ;;;AMOVIBLE DRIVE EASY TRANSFERT BUTTON;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7. ;;;MAIL CLIENT USING ENIGMA ALGORITHM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ;;;SEND INVISIBLE EMAIL UNREADABLE WITHOUT THE KEY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9. ;;;SHARE THE INVISIBLE MESSAGE DIRECT IN MAIL BODY OR IN ATTACHED FILE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  10. ;;;SHARE OR NOT THE KEY FILE WITH THE MESSAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  11. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  12. ;;;SOON :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  13. ;;;MULTIPLE RECIPIENT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  14. ;;;FILE RECIPIENT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  15. ;;;AUTOMATIC SENDING WHEN BACK ONLINE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  16. ;;;UAUTH 2.0 SERVER SUPPPORT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  17. ;;;SCHEDULE SENDING;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  18. ;;;TABULATION;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  19. ;;;MINIMIZE BUTTON;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  20. ;;;DESKTOP SHORTCUT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  21. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  22. ;;;WHAT IT LOOK LIKE :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  23. ;;;DOCUMENT WITH MESSAGE AND KEY: https://i.ibb.co/7J7Czqf/document-key.png;;;;;;;;;;;;;;;;;;;;;;;;;;;
  24. ;;;WHAT THE SIMPLE SOFTWARE LOOK LIKE: https://i.ibb.co/HG9N0jR/enigmav2.png;;;;;;;;;;;;;;;;;;;;;;;;;;
  25. ;;;EMAIL WITH DOCUMENT IN MAIL BODY: https://i.ibb.co/SP4nHht/Invisible-mail.png;;;;;;;;;;;;;;;;;;;;;;
  26. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  27. ;;;SUPPORT ONLY ENGLISH CHARACTERS - NO RUSSIAN - CHINESE - ARAB - GREEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29. ;;;INSTALLATION GUIDE :;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  30. ;;;THIS IS AN AWASOME IRC SCRIPT SO YOU'LL NEED TO INSTALL MIRC FIRST;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  31. ;;;IF YOU CAN'T AFFORD THE PRICE, REQUEST ME A SOLUTION : [email protected];;;;;;;;;;;;;;;;;;;;;;
  32. ;;;https://www.mirc.com/get.html;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  33. ;;;AFTER INSTALLATION, YOU'LL NEED TO COPY THE SCRIPT AT THE GOOD LOCATION;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  34. ;;;ONCE MIRC LAUNCHED USE THE DOWN BAR AND TYPE THIS FOR OPEN APP DIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  35. ;;;//RUN $MIRCDIR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36. ;;;DOWNLOAD THE SCRIPT ARCHIVE WITH SCRIPT - BIN & IMGS FILES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  37. ;;;https://ufile.io/fww4jvsl;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ;;;PLACE THE ENIGMAV2 DOCUMENT IN $MIRCDIR FOLDER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  39. ;;;NOW IT'S TIME THE LOAD THE SCRIPT - RETURN TO MIRC DOWN BAR AND TYPE:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  40. ;;;//LOAD -rs ENIGMAV2\ENIGMAV2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  41. ;;;* Loaded script 'C:\Users\xxxxx\AppData\Roaming\mIRC\ENIGMAV2\ENIGMAV2';;;;;;;;;;;;;;;;;;;;;;;;;;;;
  42. ;;;NOW JUST LAUNCH THE APP WITH F11 KEY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  43. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  44. ;;;IN THE APP THERE TWO EDITS BOX:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  45. ;;;1) FOR THE DOCUMENT NAME \OR\  MAIL RECIPIENT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  46. ;;;IF EMPTY OR CONTAIN A RECIPIENT, A GENERIC NAME WILL BE CREATED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  47. ;;;2) THE BODY SECTION, WHERE YOU INSERT YOUR MESSAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  48. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  49. ;;;EDIT AUTOMATICALY REPLACE SPACE WITH * CHARACTER. USE * OR USE YOUR OWN SEPARATOR;;;;;;;;;;;;;;;;;;
  50. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  51. ;;;BUTTONS:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  52. ;;;1) CREATE: CREATE INVISIBLE DOCUMENT WITH KEY [OFFLINE];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  53. ;;;2) READ: READ INVISIBLE DOCUMENT ON THE FLY [OFFLINE];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  54. ;;;3) SETTINGS: SAVE SOFTWARE AND SMTP SERVER INFORMATIONS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  55. ;;;4) USB: CREATE & TRANSFERT DIRECTLY ON AMOVIBLE DEVICE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  56. ;;;5) SEND MAIL TO RECIPIENT(S) [ONLINE];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  57. ;;;6) BODYCLIP: ATTACH THE DOCUMENT TO THE MAIL INSTEAD USING BODY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  58. ;;;7) KEYCLIP: ATTACH THE KEY FILE TO THE MAIL TOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  59. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  60. ;;;SOFTWARE USE NOTEPAD AND SIMULATE KEY STROKES FOR READING INVISIBLE DOCUMENT;;;;;;;;;;;;;;;;;;;;;;;
  61. ;;;BE SURE YOU DIDN'T SCRATCH OR DELETED THIS PROGRAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  62. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  63. ;;;DOCUMENT AND KEY HAVE TO BE IN THE SAME DIRECTORY FOR DECRYPTING;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  64. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  65. ;;;YOU CAN USE OUTLOOK SMTP SERVER PRESENT BY DEFAULT BY ENTERING YOUR CURRENT LOGIN INFO;;;;;;;;;;;;;
  66. ;;;EVERY SENSIBLE INFORMATION YOU FILL THERE WILL BE CONVERT INTO INVISIBLE DOCUMENT TOO;;;;;;;;;;;;;;
  67. ;;;YOU'RE LOGIN INFORMATIONS WILL AUTOMATICALY BE DELETED FROM THE SETTINGS FILE AFTER SAVING IT;;;;;;
  68. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  69. ;;;IF ONLY ONE AMOVIBLE DEVICE IS DETECTED, FILE WILL AUTOMATICALY BE TRANSFERED ON;;;;;;;;;;;;;;;;;;;
  70. ;;;IF THERE MULTIPLE DEVICES, YOU'LL HAVE TO CHOOSE WICH ONE YOU WANT TO USE;;;;;;;;;;;;;;;;;;;;;;;;;;
  71. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  72. ;;;SOFTWARE DON'T GIVE A F*** WHEN:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  73. ;;;YOU TRY TO CREATE A DOCUMENT WITH NO CONTENT IN BODY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  74. ;;;YOU PRESS THE USB BUTTON WITHOUT AMOVIBLE DRIVE INSERTED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  75. ;;;YOU PRESS THE SEND BUTTON WITHOUT A VALID SMTP SERVER CONFIGURATED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  76. ;;;YOU PRESS THE SEND BUTTON WHILE YOU JUST OFFLINE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  77. ;;;YOU PRESS THE SEND BUTTON WHILE YOU SET THE TLS ON AND DIDN'T CONFIGURATED LOGIN INFORMATIONS;;;;;;
  78. ;;;YOU PRESS THE SEND BUTTON WITHOUT ANY RECIPIENT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  79. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  80. ;;;YOU DON'T NEED TO SPECIFY THE MAIL SUBJECT BUT YOU CAN SET ONE IN SETTINGS FILE;;;;;;;;;;;;;;;;;;;;
  81. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  82. ;;;FOR APPLYING THE TRANSPARENCY, JUST RELOAD THE SOFTWARE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  83. ;;;NEVER GO BELOW 100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  84. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  85. ;;;THIS IS THE GREATEST WAR COMMUNICATION TOOL SINCE THE INVENTION OF THE FIRST ENIGMA MACHINE;;;;;;;;
  86. ;;;DOCUMENT OR MAIL WITHOUT KEY WILL NEVER BE BROKED, YOU CAN TRUST THIS SOFTWARE AS YOUR OWN MOMMY;;;
  87. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  88. NOW THE MAGIC IN LESS THAN 500 LINES :
  89.  
  90. alias f11 g.on
  91. alias g.add hadd g $1-
  92. alias g.del hdel g $1-
  93. alias g.del.w hdel -w g $+($1-,*)
  94. alias g.inc hinc g $1-
  95. alias g.dec hdec g $1-
  96. alias notepad run notepad
  97. alias g.img drawpic @Enigma V2 $1-
  98. alias g.delay $+(.timer. ,$1) $2-
  99. alias g.delay.off.all .timer. * off
  100. alias g.usb g.usb.select | g.add.file
  101. alias g.rect drawrect -r @Enigma V2 $1-
  102. alias g.delay.h $+(.timer. ,$1) -h $2-
  103. alias g.text drawtext -r @Enigma V2 $1-
  104. alias g.run run explorer.exe /select, $1-
  105. alias g.rectfull drawrect -rf @Enigma V2 $1-
  106. alias g.transparency setlayer $g.settings.read(transparency) @Enigma V2
  107. alias g.button.shade.add g.shade 1 3 60 61 202 add
  108. alias g.button.shade.usb g.shade 1 3 60 274 202 usb
  109. alias g.button.shade.read g.shade 1 3 60 132 202 read
  110. alias g.button.shade.send g.shade 1 3 60 345 202 send
  111. alias g.memory if $hget(g) { hfree g } | hmake g 8192
  112. alias g.content.info g.img 240 145 $g.imgs(info_02.png)
  113. alias g.button.img.add g.img 61 202 $g.imgs(add_01.png)
  114. alias g.button.img.key g.img 487 202 $g.imgs(key_01.png)
  115. alias g.button.img.usb g.img 274 202 $g.imgs(usb_01.png)
  116. alias g.destination.info g.img 240 54 $g.imgs(info_01.png)
  117. alias g.button.img.read g.img 132 202 $g.imgs(read_01.png)
  118. alias g.button.img.send g.img 345 202 $g.imgs(send_01.png)
  119. alias g.button.img.clip g.img 416 202 $g.imgs(clip_01.png)
  120. alias g.window window -dpBk0 +Dl @Enigma V2 200 200 666 300
  121. alias g.button.img.key.on g.img 487 202 $g.imgs(key_02.png)
  122. alias g.background g.rectfull $rgb(0,162,232) 1 0 0 800 300
  123. alias g.button.img.clip.on g.img 416 202 $g.imgs(clip_02.png)
  124. alias g.button.shade.settings g.shade 1 3 60 203 202 settings
  125. alias g.frame.content g.rect $rgb(255,255,255) 2 47 132 558 50
  126. alias g.content.clear g.rectfull $rgb(0,162,232) 1 52 134 546 45
  127. alias g.frame.destination g.rect $rgb(255,255,255) 2 47 42 558 50
  128. alias g.button.img.settings g.img 203 202 $g.imgs(settings_01.png)
  129. alias g.text.content g.text $rgb(255,255,255) ebrima 26 65 138 $1-
  130. alias g.destination.clear g.rectfull $rgb(0,162,232) 1 52 46 546 40
  131. alias g.text.destination g.text $rgb(255,255,255) ebrima 26 65 48 $1-
  132. alias g.wh.lock if !$g.hw.format { g.close | g.delay.h restart 1 500 g.on }
  133. alias g.server.hello sockopen hello $g.settings.read(server) $g.settings.read(port)
  134. alias g.close if $window(@Enigma V2) { window -c @Enigma V2 } | g.delay.off.all | hfree g | unset %g.usb
  135. alias g.semicolon if !$g.mail.valid($gettok($g(destination),$numtok($g(destination),59),59)) { g.destination.reset | halt }
  136. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  137. alias g return $hget(g,$1-)
  138. alias g.output return enigmav2\data\output
  139. alias g.imgs return $+(enigmav2\data\img\,$1)
  140. alias g.key.backspace return $iif($1 == 8,1,0)
  141. alias g.key.semicolon return $iif($1 == 59,1,0)
  142. alias g.settings return $mircdirenigmav2\settings
  143. alias remove.if if $exists($1-) { .remove $1- }
  144. alias ntonn return $iif($len($1) == 1,$+(0,$1),$1-)
  145. alias g.between return $iif($3 >= $1 && $3 <= $2,1,0)
  146. alias g.mail return $mircdirenigmav2\data\bin\cmail.exe
  147. alias g.char.only return $iif($g.between(32,126,$1),1,0)
  148. alias g.content return $iif($g.mouse(47,604,132,181),1,0)
  149. alias g.pair return $iif($chr(46) isin $calc($1 / 2),0,1)
  150. alias g.destination return $iif($g.mouse(47,604,41,90),1,0)
  151. alias g.button.add return $iif($g.mouse(61,111,202,243),1,0)
  152. alias g.button.key return $iif($g.mouse(487,537,202,243),1,0)
  153. alias g.button.usb return $iif($g.mouse(274,324,202,243),1,0)
  154. alias g.button.send return $iif($g.mouse(345,395,202,243),1,0)
  155. alias g.button.read return $iif($g.mouse(132,182,202,243),1,0)
  156. alias g.button.clip return $iif($g.mouse(416,466,202,243),1,0)
  157. alias g.noext return $remove($1,$gettok($1,$numtok($1,46),46))
  158. alias g.settings.read return $readini($g.settings,settings,$1-)
  159. alias g.button.settings return $iif($g.mouse(203,253,202,243),1,0)
  160. alias g.mouse return $iif($mouse.x >= $1 && $mouse.x <= $2 && $mouse.y >= $3 && $mouse.y <= $4,1,0)
  161. alias g.destination.valid return $iif($g.mail.valid($gettok($g(destination),$numtok($g(destination),59),59)),1,0)
  162. alias g.hw.format return $iif($window(@Enigma V2) && $window(@Enigma V2).w == 666 && $window(@Enigma V2).h == 300,1,0)
  163. alias g.files if !$exists(enigmav2\data\files) { mkdir enigmav2\data\files } | return $iif(%g.usb,$ifmatch,$mircdirenigmav2\data\files\)
  164. alias g.mail.auth.file return $iif(.ghost !isin $findfile($g.files,$+(auth-,$1,.*),1),$findfile($g.files,$+(auth-,$1,.*),1),$findfile($g.files,$+(auth-,$1,.*),2))
  165. alias g.path.noext if $chr(46) isin $1 && $left($1,1) != $chr(46) { return $left($1,$calc($len($1) - $calc($len($gettok($gettok($1,$numtok($1,92),92),2,46)) -1) -2)) }
  166. alias g.mail.auth return $iif($exists($+($g.files,auth-user.ghost)) && $exists($+($g.files,auth-key.ghost)) && $exists($g.mail.auth.file(user)) && $exists($g.mail.auth.file(key)),1,0)
  167. alias g.mail.settings return $+(-host:,$g(mail.auth.user),:,$g(mail.auth.key),@,$g.settings.read(server),:,$g.settings.read(port)) $iif($g.settings.read(tls) == yes,-starttls) $+(-to:,$g(destination)) $+(-from:,$g(mail.auth.user)) $+("-subject:,$iif($g.settings.read(subject),$ifmatch),") $iif($g(clip),-body: ,$+(-body-file:,$+($g.files,%name.file,.ghost))) $iif($g(clip),$+(-a:,$g.files,%name.file,.ghost)) $iif($g(key),$+(-a:,$g.key.file($+($g.files,%name.file,.ghost))))
  168. alias g.mail.valid return $iif($regex($1-,(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])),1,0)
  169. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  170. on *:close:@Enigma V2:g.close
  171. on *:keydown:@Enigma V2:*:g.keydown
  172. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  173. menu @Enigma V2 {
  174. sclick:g.buttons
  175. }
  176. ;;;;;;;;;;;;;;;;
  177. alias g.keydown {
  178.     g.keydown.destination $asc($keychar)
  179.     g.keydown.content $asc($keychar)
  180. }
  181.  
  182. alias g.destination.reset {
  183.     g.del.w destination
  184.     g.destination.clear
  185.     g.delay.h delay 1 600 g.destination.info
  186.     g.delay.h blink.destination 0 600 g.blink.destination | halt
  187. }
  188.  
  189. alias g.keydown.destination {
  190.   if $g(blink.destination) {
  191.     if $g.key.semicolon($1) { g.semicolon }
  192.      if $numtok($g(destination),59) >= 499 { halt }
  193.  
  194.      if $g.char.only($1) {
  195.      if !$g.mail.valid($gettok($g(destination),1,59)) && $len($g(destination)) > 254 { halt }
  196.      g.delay blink.destination off
  197.      g.del blink.content
  198.         if !$g(destination.limit) && $len($g(destination)) > 25 { g.add destination.length $calc($len($g(destination)) -11) | g.add destination.limit $g.edit.limit(60,80) }
  199.      g.add destination $replace($lower($+($g(destination),$chr($1))),$chr(32),$chr(42))
  200.      g.destination.clear
  201.      g.text.destination $iif($g(destination.limit),$+($str($chr(46),3),$right($g(destination),$g(destination.length))),$g(destination))
  202.      }
  203.        if $g.key.backspace($1) { g.destination.reset }
  204.   }
  205. }
  206.  
  207. alias g.keydown.content {
  208.   if $g(blink.content) {
  209.    if $g.char.only($1) {
  210.    g.delay blink.content off
  211.    g.del blink.destination
  212.      if !$g(content.limit) && $len($g(content)) > 25 { g.add content.lenght $calc($len($g(content)) -11) | g.add content.limit $g.edit.limit(150,170) }
  213.        g.add content $replace($+($g(content),$chr($1)),$chr(32),$chr(42))
  214.        g.content.clear
  215.        g.text.content $iif($g(content.limit),$+($str($chr(46),3),$right($g(content),$g(content.lenght))),$g(content))
  216.    }
  217.        if $g.key.backspace($1) {
  218.        g.del.w content
  219.        g.content.clear
  220.        g.delay.h delay2 1 600 g.content.info
  221.        g.delay.h blink.content 0 600 g.blink.content
  222.        }
  223.    }
  224.  }
  225.  
  226. alias g.buttons {
  227.     if $g.button.add { g.add.file }
  228.     if $g.button.clip { g.clip }
  229.     if $g.button.key { g.key }
  230.     if $g.button.read { g.read }
  231.     if $g.button.usb { g.usb }
  232.     if $g.button.send { g.server.hello }
  233.     if $g.button.settings { g.cmd notepad $g.settings | g.delay settings 0 1 g.settings.auth }
  234.     if $g.content { g.content.sclick }
  235.     if $g.destination { g.destination.sclick }
  236. }
  237.  
  238. alias g.mail.setup {
  239.   if $g.settings.read(tls) == yes && !$g.mail.auth { halt }
  240.   g.add.file 1
  241.   g.settings.auth.read
  242.   g.mail.send $g.mail.settings
  243.   g.on
  244. }
  245.  
  246. alias g.settings.auth {
  247.     if $g.settings.read(auth-user) && $g.settings.read(auth-key) {
  248.     g.delay settings off
  249.     g.mail.authfile.remove
  250.     g.enigma auth-user $g.settings.read(auth-user)
  251.     g.delay delay 1 1 g.enigma auth-key $g.settings.read(auth-key)
  252.     g.delay delay2 1 1 writeini $g.settings settings auth-user $chr(13)
  253.     g.delay delay3 1 1 writeini $g.settings settings auth-key $chr(13)
  254.  }
  255. }
  256.  
  257. alias g.settings.auth.read {
  258.  if $g.mail.auth {
  259.   g.talk.shake.key.reverse $g.mail.auth.file(user)
  260.   g.add mail.auth.user $g(g.talk) | g.del g.talk
  261.   g.talk.shake.key.reverse $g.mail.auth.file(key)
  262.   g.add mail.auth.key $g(g.talk) | g.del g.talk
  263.   }
  264.    else { halt }
  265. }
  266.  
  267. alias g.usb.select {
  268.   g.del removable.multi
  269.     if !$g.disk.removable(0) { unset %g.usb | halt }
  270.       if $g.disk.removable(0) == 1 { set %g.usb $g.disk.removable(1) }
  271.           else {
  272.           g.add removable.multi $sdir($g.disk.removable(1),Select removable disk,Select removable disk)
  273.           if $disk($g(removable.multi)).type == removable { set %g.usb $g(removable.multi) }
  274.               else { halt }
  275.       }
  276. }
  277.  
  278. alias g.read {
  279.  g.add read $sfile($g.files,Select key file,Select key file)
  280.   if $g.between($gettok($g(read),$numtok($g(read),46),46),3,13) || !$exists($+($g.path.noext($g(read)),.ghost)) { halt }
  281.    if $right($g(read),6) == .ghost { g.add read $g.key.file($g(read)) }
  282.  
  283.       g.talk.shake.key.reverse $g(read)
  284.       notepad
  285.       g.delay read 1 2 g.keyboard $g(g.talk)
  286.       g.delay read2 1 3 g.del.w g.talk
  287. }
  288.  
  289. alias g.key.file {
  290.   g.add key.file $+($findfile($nofile($1),$+($nopath($g.noext($1)),*),1),*,$findfile($nofile($1),$+($nopath($g.noext($1)),*),2))
  291.    if .ghost isin $gettok($g(key.file),1,42) { return $gettok($g(key.file),2,42) }
  292.     else { return $gettok($g(key.file),1,42) }
  293. }
  294.  
  295. alias g.destination.sclick {
  296.     g.del blink.content
  297.     g.delay blink.content off
  298.     g.delay.h delay 1 600 g.rectfull 15245824 1 55 140 4 34
  299.     g.delay.h blink.destination 0 600 g.blink.destination
  300. }
  301.  
  302. alias g.content.sclick {
  303.     g.del blink.destination
  304.     g.delay blink.destination off
  305.     g.delay.h delay 1 600 g.rectfull 15245824 1 55 50 4 34
  306.     g.delay.h blink.content 0 600 g.blink.content
  307. }
  308.  
  309. alias g.add.file {
  310.     if $len($g(content)) {
  311.     g.add name.file $iif($chr(59) isin $g(destination) || $g.destination.valid || !$len($g(destination)),$upper($+($r(a,f),$r(1,9),$r(a,f),$r(1,9),$r(a,f),$r(1,9))),$g(destination))
  312.     set %name.file $g(name.file)
  313.     g.enigma $g(name.file) $g(content)
  314.       if !$1 { g.on }
  315.         if $exists($+($g.files,%name.file,.ghost)) { g.run $+($g.files,$iif(!%g.usb,%name.file),$iif(!%g.usb,.ghost)) }
  316.           unset %g.usb
  317.     }
  318.       else { halt }
  319. }
  320.  
  321. alias g.clip {
  322.   if !$g(clip) {
  323.   g.add clip 1
  324.   g.button.img.clip.on
  325.   }
  326.    else {
  327.    g.del clip
  328.    g.button.img.clip
  329.    }
  330. }
  331.  
  332. alias g.key {
  333.   if !$g(key) {
  334.   g.add key 1
  335.   g.button.img.key.on
  336.   }
  337.    else {
  338.    g.del key
  339.    g.button.img.key
  340.    }
  341. }
  342.  
  343. alias g.shade {
  344.  g.add g.shade.name $r(1111,9999)
  345.  g.add $+(g.shade.num.,$g(g.shade.name)) $1
  346.  g.add $+(g.shade.speed.,$g(g.shade.name)) 1
  347.  
  348.   while $g($+(g.shade.num.,$g(g.shade.name))) <= $2 {
  349.   $+(.timersw.g.shade.,$g($+(g.shade.num.,$g(g.shade.name)))) -h 1 $calc($g($+(g.shade.speed.,$g(g.shade.name))) * $3) g.img $4 $5 $+($g.imgs($+($6,_)),$ntonn($g($+(g.shade.num.,$g(g.shade.name)))),.,png))
  350.   g.inc $+(g.shade.num.,$g(g.shade.name))
  351.   g.inc $+(g.shade.speed.,$g(g.shade.name))
  352.   }
  353.       g.del $+(g.shade.num.,$g(g.shade.name))
  354.       g.del $+(g.shade.speed.,$g(g.shade.name))
  355. }
  356.  
  357. alias g.on {
  358.     g.delay.off.all
  359.     g.memory
  360.     g.ui
  361. }
  362.  
  363.  alias g.ui {
  364.   var %ui 1
  365.   var %ui.list window-background-frame.destination-frame.content-button.img.add-button.img.read-button.img.settings-button.img.usb-button.img.send-button.img.clip-button.img.key-destination.info-content.info-mouseover-memory-transparency
  366.  
  367.     while %ui <= 16 {
  368.     $+(g.,$gettok(%ui.list,%ui,45))
  369.     inc %ui
  370.     }
  371.  }
  372.  
  373. alias g.mouseover.add {
  374.  if $g.button.add && !$g(mouseover.add) {
  375.  g.add mouseover.add 1
  376.  g.button.shade.add
  377.  }
  378.     if !$g.button.add && $g(mouseover.add) {
  379.     g.del mouseover.add
  380.     g.button.refresh
  381.    }
  382. }
  383.  
  384. alias g.button.refresh {
  385.  g.button.img.add
  386.  g.button.img.read
  387.  g.button.img.settings
  388.  g.button.img.usb
  389.  g.button.img.send
  390. }
  391.  
  392. alias g.mouseover.read {
  393.     if $g.button.read && !$g(mouseover.read) {
  394.     g.button.refresh
  395.     g.add mouseover.read 1
  396.     g.button.shade.read
  397.  }
  398.       if !$g.button.read && $g(mouseover.read) {
  399.       g.del mouseover.read
  400.       g.button.refresh
  401.    }
  402. }
  403.  
  404. alias g.mouseover.settings {
  405.     if $g.button.settings && !$g(mouseover.settings) {
  406.     g.button.refresh
  407.     g.add mouseover.settings 1
  408.     g.button.shade.settings
  409.  }
  410.       if !$g.button.settings && $g(mouseover.settings) {
  411.       g.del mouseover.settings
  412.       g.button.refresh
  413.    }
  414. }
  415.  
  416. alias g.mouseover.usb {
  417.     if $g.button.usb && !$g(mouseover.usb) {
  418.     g.button.refresh
  419.     g.add mouseover.usb 1
  420.     g.button.shade.usb
  421.  }
  422.       if !$g.button.usb && $g(mouseover.usb) {
  423.       g.del mouseover.usb
  424.       g.button.refresh
  425.     }
  426.  }
  427.  
  428.  alias g.mouseover.send {
  429.       if $g.button.send && !$g(mouseover.send) {
  430.       g.button.refresh
  431.       g.add mouseover.send 1
  432.       g.button.shade.send
  433.   }
  434.       if !$g.button.send && $g(mouseover.send) {
  435.       g.del mouseover.send
  436.       g.button.refresh
  437.      }
  438.   }
  439.  
  440. alias g.mouseover {
  441.     g.delay.h sclick.add 0 100 g.mouseover.add
  442.     g.delay.h sclick.read 0 100 g.mouseover.read
  443.     g.delay.h sclick.settings 0 100 g.mouseover.settings
  444.     g.delay.h sclick.usb 0 100 g.mouseover.usb
  445.     g.delay.h sclick.send 0 100 g.mouseover.send
  446.     g.delay.h hw.lock 0 30 g.wh.lock
  447.     g.delay.h blink.destination 0 600 g.blink.destination
  448. }
  449.  
  450. alias g.blink.destination {
  451.     g.inc blink.destination
  452.     g.rectfull $iif($g.pair($g(blink.destination)),16777215,15245824) 1 55 50 4 34
  453. }
  454.  
  455. alias g.blink.content {
  456.     g.inc blink.content
  457.     g.rectfull $iif($g.pair($g(blink.content)),16777215,15245824) 1 55 140 4 34
  458. }
  459.  
  460. alias g.edit.limit {
  461.   g.add destination.limit $1
  462.  
  463.    while $g(destination.limit) <= $2 {
  464.    if $getdot(@Enigma V2,577,$g(destination.limit)) != 15245824 { return 1 }
  465.    g.inc destination.limit
  466.    }
  467.      return 0
  468. }
  469.  
  470. alias g.keyboard {
  471.     var %sendkeys $ticks
  472.     .comopen %sendkeys WScript.Shell
  473.     if !$comerr { .comclose %sendkeys $com(%sendkeys,SendKeys,3,bstr,$1-) }
  474. }
  475.  
  476. alias g.disk.removable {
  477.     g.add removable 1
  478.     g.add removable.partition c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z
  479.     g.del removable.list
  480.  
  481.   while $g(removable) <= 24 {
  482.   if $exists($+($gettok($g(removable.partition),$g(removable),45),:)) && $disk($+($gettok($g(removable.partition),$g(removable),45),:)).type == removable { g.add removable.list $+($g(removable.list),$gettok($g(removable.partition),$g(removable),45),:-) }
  483.   g.inc removable
  484.   }
  485.     if $1 <= 0 && $1 != * { return $numtok($g(removable.list),45)  }
  486.      elseif $1 != * { return $gettok($g(removable.list),$1,45) }
  487.       if $1 == * { return $gettok($g(removable.list),$numtok($g(removable.list),45),45) }
  488. }
  489.  
  490. alias g.mail.send {
  491.   var %com $+(cmd,$ticks) | .comopen %com Wscript.Shell
  492.   if (!$comerr) .comclose %com $com(%com,run,1,bstr,cmd.exe /c $g.mail $1-,uint,7,bool,true)
  493.   }
  494.  
  495. alias g.cmd {
  496.     var %com2 $+(cmd,$ticks) | .comopen %com2 Wscript.Shell
  497.     if (!$comerr) .comclose %com2 $com(%com2,run,1,bstr,cmd.exe /c $1-,uint,7,bool,true)
  498.     }
  499.  
  500. alias g.mail.authfile.remove {
  501.   remove.if $g.mail.auth.file(user)
  502.   remove.if $g.mail.auth.file(key)
  503.   remove.if $+($g.files,auth-user.ghost)
  504.   remove.if $+($g.files,auth-key.ghost)
  505. }
  506. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  507. alias g.sock.init {
  508.     sockwrite -nt $1 GET $sock($sockname).mark HTTP/1.1
  509.     sockwrite -n $1 Host: $sock($sockname).addr
  510.     sockwrite -n $1 User-Agent: */*
  511.     sockwrite -n $1 Connection: Close
  512.     sockwrite -nt $1 $crlf
  513. }
  514.  
  515. on *:sockopen:hello:if !$sockerr { g.sock.init hello } | else { g.del server.status | halt }
  516. on *:sockclose:hello:if !$g(server.status) { g.on }
  517.  
  518. on *:sockread:hello:{
  519.  set %hello
  520.  sockread %hello
  521.   if $len(%hello) { g.add server.status 1 | sockclose hello | g.mail.setup }
  522.    else { g.del server.status }
  523. }
  524. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  525. alias g.enigma {
  526.     enigma.create.key
  527.     enigma.invisible$1 $2-
  528.     enigma.shake.key $1
  529. }
  530.  
  531. alias enigma.create.key {
  532.     if !$hget(g) { g.memory }
  533.       g.add g.talk.char 32
  534.       g.add g.talk.space 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-41-42-43-44-45-46-47-48-49-50-51-52-53-54-55-56-57-58-59-60-61-62-63-64-65-66-67-68-69-70-71-72-73-74-75-76-77-78-79-80-81-82-83-84-85-86-87-88-89-90-91-92-93-94
  535.       g.add g.talk.space.left 94
  536.  
  537.   while $g(g.talk.char) <= 126 {
  538.   g.add g.talk.space.r $r(1,$g(g.talk.space.left))
  539.   g.add g.talk.space.r $ntonn($g(g.talk.space.r))
  540.   g.add g.talk.key $+($g(g.talk.key),$ntonn($gettok($g(g.talk.space),$g(g.talk.space.r),45)),-)
  541.   g.add g.talk.space $deltok($g(g.talk.space),$ntonn($g(g.talk.space.r)),45)
  542.   g.inc g.talk.char
  543.   g.dec g.talk.space.left
  544.   }
  545.  }
  546.  
  547. alias enigma.shake.key {
  548.     if $len($remove($g(g.talk.key),$chr(45))) == 188 && $remove($g(g.talk.key),$chr(45)) isnum {
  549.     g.del g.talk.key.shake
  550.     g.add g.talk.convert 1
  551.     g.add g.talk.shake $r(3,12)
  552.     g.add g.talk.key.shake $g(g.talk.key)
  553.  
  554.   while $g(g.talk.convert) <= $g(g.talk.shake) {
  555.   g.add g.talk.key.shake $encode($g(g.talk.key.shake),m)
  556.   g.inc g.talk.convert
  557.   }
  558.       g.add shake $g(g.talk.shake)
  559.       write $+($g.files,$1,.,$g(g.talk.shake)) $g(g.talk.key.shake)
  560.  }
  561. }
  562.  
  563. alias enigma.invisible{
  564.   g.add length.  1
  565.  
  566.     while $g(length. ) <= $len($2-) {
  567.     write $+($g.files,$1,.ghost) $str($chr(160),$gettok($g(g.talk.key),$calc($asc($mid($2-,$g(length. ),1)) -32),45))
  568.     g.inc length. 
  569.     }
  570.  }
  571.  
  572.  alias hash.find {
  573.   if $hget($1,$2) {
  574.   g.del hash.result
  575.   g.add hash.find 1
  576.  
  577.   while $g(hash.find) <= 94 {
  578.   if $gettok($hget($1,$2),$g(hash.find),45) == $3 { g.add hash.result $g(hash.find) }
  579.   g.inc hash.find
  580.   }
  581.     return $g(hash.result)
  582.  }
  583. }
  584.  
  585. alias g.talk.shake.reverse {
  586.  if $len($remove($g(g.talk.key),$chr(45))) == 188 && $remove($g(g.talk.key),$chr(45)) isnum {
  587.  g.add g.talk.reverse 1
  588.  
  589.   while $g(g.talk.reverse) <= $lines($1) {
  590.   g.add g.talk $+($g(g.talk),$chr($calc($hash.find(g,g.talk.key,$len($read($1,$g(g.talk.reverse)))) +32)))
  591.   g.inc g.talk.reverse
  592.   }
  593.  }
  594. }
  595.  
  596. alias g.talk.shake.key.reverse {
  597.  if $exists($1) {
  598.  g.add g.talk.shake.reverse 1
  599.  g.add g.talk.key $decode($read($1,1),m)
  600.  
  601.   while $g(g.talk.shake.reverse) <= $calc($gettok($nopath($1),2,46) -1) {
  602.   g.add g.talk.key $decode($g(g.talk.key),m)
  603.   g.inc g.talk.shake.reverse
  604.   }
  605.       g.talk.shake.reverse $+($nofile($1),$gettok($nopath($1),1,46),.ghost)
  606.  }
  607. }
  608.  
  609. alias  .delete {
  610.  g.add  .delete $findfile($g.files,$+($1,.*),0)
  611.  
  612.   while $g( .delete) >= 1 {
  613.   .remove $findfile($g.files,$+($1,.*),$g( .delete))
  614.   g.dec  .delete
  615.  }
  616.    g.del  .delete
  617. }
  618. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  619. ;;;YOU CAN'T ONLY COPY THE SCRIPT AND LOAD IT IN A DOCUMENT;;;;;;;;;;;;
  620. ;;;THE UI CONTAIN IMAGE FILE AND THE MAIL CLIENT ARE IN THE ARCHIVE;;;;
  621. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  622. USE THE DOWNLOAD LINK : https://ufile.io/fww4jvsl
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.    
  630.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement