webscout 6.4__py3-none-any.whl → 6.5__py3-none-any.whl

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 webscout might be problematic. Click here for more details.

Files changed (69) hide show
  1. webscout/AIutel.py +7 -54
  2. webscout/DWEBS.py +48 -26
  3. webscout/{YTdownloader.py → Extra/YTToolkit/YTdownloader.py} +990 -1103
  4. webscout/Extra/YTToolkit/__init__.py +3 -0
  5. webscout/{transcriber.py → Extra/YTToolkit/transcriber.py} +1 -1
  6. webscout/Extra/YTToolkit/ytapi/__init__.py +6 -0
  7. webscout/Extra/YTToolkit/ytapi/channel.py +307 -0
  8. webscout/Extra/YTToolkit/ytapi/errors.py +13 -0
  9. webscout/Extra/YTToolkit/ytapi/extras.py +45 -0
  10. webscout/Extra/YTToolkit/ytapi/https.py +88 -0
  11. webscout/Extra/YTToolkit/ytapi/patterns.py +61 -0
  12. webscout/Extra/YTToolkit/ytapi/playlist.py +59 -0
  13. webscout/Extra/YTToolkit/ytapi/pool.py +8 -0
  14. webscout/Extra/YTToolkit/ytapi/query.py +37 -0
  15. webscout/Extra/YTToolkit/ytapi/stream.py +60 -0
  16. webscout/Extra/YTToolkit/ytapi/utils.py +62 -0
  17. webscout/Extra/YTToolkit/ytapi/video.py +102 -0
  18. webscout/Extra/__init__.py +2 -1
  19. webscout/Extra/autocoder/rawdog.py +679 -680
  20. webscout/Extra/gguf.py +441 -441
  21. webscout/Extra/markdownlite/__init__.py +862 -0
  22. webscout/Extra/weather_ascii.py +2 -2
  23. webscout/Provider/PI.py +292 -221
  24. webscout/Provider/Perplexity.py +6 -14
  25. webscout/Provider/Reka.py +0 -1
  26. webscout/Provider/TTS/__init__.py +5 -1
  27. webscout/Provider/TTS/deepgram.py +183 -0
  28. webscout/Provider/TTS/elevenlabs.py +137 -0
  29. webscout/Provider/TTS/gesserit.py +151 -0
  30. webscout/Provider/TTS/murfai.py +139 -0
  31. webscout/Provider/TTS/parler.py +134 -107
  32. webscout/Provider/TTS/streamElements.py +360 -275
  33. webscout/Provider/TTS/utils.py +280 -0
  34. webscout/Provider/TTS/voicepod.py +116 -116
  35. webscout/Provider/__init__.py +146 -146
  36. webscout/Provider/meta.py +794 -779
  37. webscout/Provider/typegpt.py +1 -2
  38. webscout/__init__.py +24 -28
  39. webscout/litprinter/__init__.py +831 -830
  40. webscout/optimizers.py +269 -269
  41. webscout/prompt_manager.py +279 -279
  42. webscout/scout/__init__.py +11 -0
  43. webscout/scout/core.py +884 -0
  44. webscout/scout/element.py +459 -0
  45. webscout/scout/parsers/__init__.py +69 -0
  46. webscout/scout/parsers/html5lib_parser.py +172 -0
  47. webscout/scout/parsers/html_parser.py +236 -0
  48. webscout/scout/parsers/lxml_parser.py +178 -0
  49. webscout/scout/utils.py +38 -0
  50. webscout/update_checker.py +125 -125
  51. webscout/version.py +1 -1
  52. webscout/zeroart/__init__.py +55 -0
  53. webscout/zeroart/base.py +61 -0
  54. webscout/zeroart/effects.py +99 -0
  55. webscout/zeroart/fonts.py +816 -0
  56. webscout/zerodir/__init__.py +225 -0
  57. {webscout-6.4.dist-info → webscout-6.5.dist-info}/METADATA +12 -68
  58. {webscout-6.4.dist-info → webscout-6.5.dist-info}/RECORD +62 -37
  59. webscout/Agents/Onlinesearcher.py +0 -182
  60. webscout/Agents/__init__.py +0 -2
  61. webscout/Agents/functioncall.py +0 -248
  62. webscout/Bing_search.py +0 -251
  63. webscout/gpt4free.py +0 -666
  64. webscout/requestsHTMLfix.py +0 -775
  65. webscout/webai.py +0 -2590
  66. {webscout-6.4.dist-info → webscout-6.5.dist-info}/LICENSE.md +0 -0
  67. {webscout-6.4.dist-info → webscout-6.5.dist-info}/WHEEL +0 -0
  68. {webscout-6.4.dist-info → webscout-6.5.dist-info}/entry_points.txt +0 -0
  69. {webscout-6.4.dist-info → webscout-6.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,816 @@
1
+ """
2
+ ZeroArt Fonts: Predefined ASCII art fonts
3
+ """
4
+
5
+ from .base import ZeroArtFont
6
+
7
+ class BlockFont(ZeroArtFont):
8
+ """Block-style ASCII art font"""
9
+ def __init__(self):
10
+ super().__init__("block")
11
+ self.letters = {
12
+ ' ': [" ", " ", " ", " ", " "]
13
+ }
14
+ self._populate_letters()
15
+
16
+ def _populate_letters(self):
17
+ """Populate the font with predefined letters"""
18
+ block_letters = {
19
+ 'A': [
20
+ " █████ ",
21
+ " ██ ██ ",
22
+ " ███████ ",
23
+ " ██ ██ ",
24
+ " ██ ██ "
25
+ ],
26
+ 'B': [
27
+ " ██████ ",
28
+ " ██ ██ ",
29
+ " ██████ ",
30
+ " ██ ██ ",
31
+ " ██████ "
32
+ ],
33
+ 'C': [
34
+ " ██████ ",
35
+ " ██ ",
36
+ " ██ ",
37
+ " ██ ",
38
+ " ██████ "
39
+ ],
40
+ 'D': [
41
+ " ██████ ",
42
+ " ██ ██ ",
43
+ " ██ ██ ",
44
+ " ██ ██ ",
45
+ " ██████ "
46
+ ],
47
+ 'E': [
48
+ " ███████ ",
49
+ " ██ ",
50
+ " ██████ ",
51
+ " ██ ",
52
+ " ███████ "
53
+ ],
54
+ 'F': [
55
+ " ███████ ",
56
+ " ██ ",
57
+ " ██████ ",
58
+ " ██ ",
59
+ " ██ "
60
+ ],
61
+ 'G': [
62
+ " ██████ ",
63
+ " ██ ",
64
+ " ██ ███ ",
65
+ " ██ ██ ",
66
+ " ██████ "
67
+ ],
68
+ 'H': [
69
+ " ██ ██ ",
70
+ " ██ ██ ",
71
+ " ███████ ",
72
+ " ██ ██ ",
73
+ " ██ ██ "
74
+ ],
75
+ 'I': [
76
+ " ███████ ",
77
+ " ██ ",
78
+ " ██ ",
79
+ " ██ ",
80
+ " ███████ "
81
+ ],
82
+ 'J': [
83
+ " ██ ",
84
+ " ██ ",
85
+ " ██ ",
86
+ " ██ ██ ",
87
+ " █████ "
88
+ ],
89
+ 'K': [
90
+ " ██ ██ ",
91
+ " ██ ██ ",
92
+ " ████ ",
93
+ " ██ ██ ",
94
+ " ██ ██ "
95
+ ],
96
+ 'L': [
97
+ " ██ ",
98
+ " ██ ",
99
+ " ██ ",
100
+ " ██ ",
101
+ " ███████ "
102
+ ],
103
+ 'M': [
104
+ " ██ ██ ",
105
+ " ███ ███ ",
106
+ " ██ █ ██ ",
107
+ " ██ ██ ",
108
+ " ██ ██ "
109
+ ],
110
+ 'N': [
111
+ " ██ ██ ",
112
+ " ███ ██ ",
113
+ " ██ █ ██ ",
114
+ " ██ ███ ",
115
+ " ██ ██ "
116
+ ],
117
+ 'O': [
118
+ " █████ ",
119
+ " ██ ██ ",
120
+ " ██ ██ ",
121
+ " ██ ██ ",
122
+ " █████ "
123
+ ],
124
+ 'P': [
125
+ " ██████ ",
126
+ " ██ ██ ",
127
+ " ██████ ",
128
+ " ██ ",
129
+ " ██ "
130
+ ],
131
+ 'Q': [
132
+ " █████ ",
133
+ " ██ ██ ",
134
+ " ██ ██ ",
135
+ " ██ ██ ",
136
+ " ██████ "
137
+ ],
138
+ 'R': [
139
+ " ██████ ",
140
+ " ██ ██ ",
141
+ " ██████ ",
142
+ " ██ ██ ",
143
+ " ██ ██ "
144
+ ],
145
+ 'S': [
146
+ " ██████ ",
147
+ " ██ ",
148
+ " ██████ ",
149
+ " ██ ",
150
+ " ██████ "
151
+ ],
152
+ 'T': [
153
+ " ███████ ",
154
+ " ██ ",
155
+ " ██ ",
156
+ " ██ ",
157
+ " ██ "
158
+ ],
159
+ 'U': [
160
+ " ██ ██ ",
161
+ " ██ ██ ",
162
+ " ██ ██ ",
163
+ " ██ ██ ",
164
+ " █████ "
165
+ ],
166
+ 'V': [
167
+ " ██ ██ ",
168
+ " ██ ██ ",
169
+ " ██ ██ ",
170
+ " ██ ██ ",
171
+ " ███ "
172
+ ],
173
+ 'W': [
174
+ " ██ ██ ",
175
+ " ██ ██ ",
176
+ " ██ █ ██ ",
177
+ " ███ ███ ",
178
+ " ██ ██ "
179
+ ],
180
+ 'X': [
181
+ " ██ ██ ",
182
+ " ██ ██ ",
183
+ " ███ ",
184
+ " ██ ██ ",
185
+ " ██ ██ "
186
+ ],
187
+ 'Y': [
188
+ " ██ ██ ",
189
+ " ██ ██ ",
190
+ " ███ ",
191
+ " ███ ",
192
+ " ███ "
193
+ ],
194
+ 'Z': [
195
+ " ███████ ",
196
+ " ██ ",
197
+ " ██ ",
198
+ " ██ ",
199
+ " ███████ "
200
+ ]
201
+ }
202
+
203
+ self.letters.update(block_letters)
204
+
205
+ class SlantFont(ZeroArtFont):
206
+ """Slanted ASCII art font"""
207
+ def __init__(self):
208
+ super().__init__("slant")
209
+ self.letters = {
210
+ ' ': [" ", " ", " ", " ", " "]
211
+ }
212
+ self._populate_letters()
213
+
214
+ def _populate_letters(self):
215
+ """Populate the font with predefined letters"""
216
+ slant_letters = {
217
+ 'A': [
218
+ " /\\ ",
219
+ " / \\ ",
220
+ " / /\\ \\ ",
221
+ " / ____ \\ ",
222
+ "/_/ \\_\\"
223
+ ],
224
+ 'B': [
225
+ " ____ ",
226
+ "| _ \\ ",
227
+ "| |_) |",
228
+ "| _ < ",
229
+ "| |_) |",
230
+ "|____/ "
231
+ ],
232
+ 'C': [
233
+ " _____ ",
234
+ " / ____| ",
235
+ "| | ",
236
+ "| | ",
237
+ " \\_____| "
238
+ ],
239
+ 'D': [
240
+ " _____ ",
241
+ "| __ \\ ",
242
+ "| | | | ",
243
+ "| | | | ",
244
+ "| |__| | ",
245
+ "|_____/ "
246
+ ],
247
+ 'E': [
248
+ " ______ ",
249
+ "| ____| ",
250
+ "| |__ ",
251
+ "| __| ",
252
+ "| |____ ",
253
+ "|______| "
254
+ ],
255
+ 'F': [
256
+ " ______ ",
257
+ "| ____| ",
258
+ "| |__ ",
259
+ "| __| ",
260
+ "| | ",
261
+ "|_| "
262
+ ],
263
+ 'G': [
264
+ " _____ ",
265
+ " / ____| ",
266
+ "| | __ ",
267
+ "| | |_ | ",
268
+ "| |__| | ",
269
+ " \\_____| "
270
+ ],
271
+ 'H': [
272
+ " _ _ ",
273
+ "| | | | ",
274
+ "| |__| | ",
275
+ "| __ | ",
276
+ "|_| |_| "
277
+ ],
278
+ 'I': [
279
+ " _____ ",
280
+ "|_ _|",
281
+ " | | ",
282
+ " | | ",
283
+ " _| |_ ",
284
+ "|_____|"
285
+ ],
286
+ 'J': [
287
+ " ___ ",
288
+ " |_ |",
289
+ " | |",
290
+ " _ | |",
291
+ "| |__| |",
292
+ " \\____/ "
293
+ ],
294
+ 'K': [
295
+ " _ __ ",
296
+ "| |/ / ",
297
+ "| ' / ",
298
+ "| < ",
299
+ "| . \\ ",
300
+ "|_|\\_\\ "
301
+ ],
302
+ 'L': [
303
+ " _ ",
304
+ "| | ",
305
+ "| | ",
306
+ "| | ",
307
+ "| |____ ",
308
+ "|______|"
309
+ ],
310
+ 'M': [
311
+ " __ __ ",
312
+ "| \\/ |",
313
+ "| |\\/| |",
314
+ "| | | |",
315
+ "|_| |_|",
316
+ " "
317
+ ],
318
+ 'N': [
319
+ " _ _ ",
320
+ "| \\ | |",
321
+ "| \\| |",
322
+ "| . ` |",
323
+ "| |\\ |",
324
+ "|_| \\_|"
325
+ ],
326
+ 'O': [
327
+ " _____ ",
328
+ " / ____| ",
329
+ "| | __ ",
330
+ "| | |_ | ",
331
+ "| |__| | ",
332
+ " \\_____| "
333
+ ],
334
+ 'P': [
335
+ " _____ ",
336
+ "| __ \\ ",
337
+ "| |__) | ",
338
+ "| ___/ ",
339
+ "| | ",
340
+ "|_| "
341
+ ],
342
+ 'Q': [
343
+ " _____ ",
344
+ " / ____| ",
345
+ "| | __ ",
346
+ "| | |_ | ",
347
+ "| |__| | ",
348
+ " \\____/\\ "
349
+ ],
350
+ 'R': [
351
+ " _____ ",
352
+ "| __ \\ ",
353
+ "| |__) | ",
354
+ "| _ / ",
355
+ "| | \\ \\ ",
356
+ "|_| \\_\\ "
357
+ ],
358
+ 'S': [
359
+ " _____ ",
360
+ " / ____| ",
361
+ "| (___ ",
362
+ " \\___ \\ ",
363
+ " ____) | ",
364
+ "|_____/ "
365
+ ],
366
+ 'T': [
367
+ " ______ ",
368
+ "|_ _| ",
369
+ " | | ",
370
+ " | | ",
371
+ " | | ",
372
+ " |_| "
373
+ ],
374
+ 'U': [
375
+ " _ _ ",
376
+ "| | | | ",
377
+ "| | | | ",
378
+ "| | | | ",
379
+ "| |__| | ",
380
+ " \\____/ "
381
+ ],
382
+ 'V': [
383
+ " __ __ ",
384
+ " \\ \\ / / ",
385
+ " \\ \\_/ / ",
386
+ " \\ / ",
387
+ " \\_/ "
388
+ ],
389
+ 'W': [
390
+ " __ __ ",
391
+ " \\ \\ / / ",
392
+ " \\ \\/ / ",
393
+ " \\ / ",
394
+ " \\/ "
395
+ ],
396
+ 'X': [
397
+ " __ __ ",
398
+ " \\ \\/ / ",
399
+ " \\ / ",
400
+ " / \\ ",
401
+ " /_/\\_\\ "
402
+ ],
403
+ 'Y': [
404
+ " _ _ ",
405
+ "| | | |",
406
+ "| | | |",
407
+ "| | | |",
408
+ "|_| |_|"
409
+ ],
410
+ 'Z': [
411
+ " ______ ",
412
+ "|__ / | ",
413
+ " / /| | ",
414
+ " / /_| | ",
415
+ "/____|_| "
416
+ ]
417
+ }
418
+
419
+ self.letters.update(slant_letters)
420
+
421
+ # Add more custom fonts here
422
+ class NeonFont(ZeroArtFont):
423
+ """Neon-style ASCII art font"""
424
+ def __init__(self):
425
+ super().__init__("neon")
426
+ self.letters = {
427
+ ' ': [" ", " ", " ", " ", " "]
428
+ }
429
+ self._populate_letters()
430
+
431
+ def _populate_letters(self):
432
+ """Populate neon-style letters"""
433
+ neon_letters = {
434
+ 'A': [
435
+ " ░█████░ ",
436
+ " ██░░░░██ ",
437
+ " ████████ ",
438
+ " ██░░░░██ ",
439
+ " ██░░░░██ "
440
+ ],
441
+ 'B': [
442
+ " ████████ ",
443
+ " ██░░░░██ ",
444
+ " ████████ ",
445
+ " ██░░░░██ ",
446
+ " ████████ "
447
+ ],
448
+ 'C': [
449
+ " ░██████ ",
450
+ " ██░░░░ ",
451
+ " ██ ",
452
+ " ██░░░░ ",
453
+ " ░██████ "
454
+ ],
455
+ 'D': [
456
+ " ████████ ",
457
+ " ██░░░░██ ",
458
+ " ██░░░░██ ",
459
+ " ██░░░░██ ",
460
+ " ████████ "
461
+ ],
462
+ 'E': [
463
+ " ████████ ",
464
+ " ██░░░░ ",
465
+ " ████████ ",
466
+ " ██░░░░ ",
467
+ " ████████ "
468
+ ],
469
+ 'F': [
470
+ " ████████ ",
471
+ " ██░░░░ ",
472
+ " ████████ ",
473
+ " ██░░░░ ",
474
+ " ██░░░░ "
475
+ ],
476
+ 'G': [
477
+ " ░██████ ",
478
+ " ██░░░░ ",
479
+ " ██ ████ ",
480
+ " ██░░░░██ ",
481
+ " ░██████ "
482
+ ],
483
+ 'H': [
484
+ " ██░░░░██ ",
485
+ " ██░░░░██ ",
486
+ " ████████ ",
487
+ " ██░░░░██ ",
488
+ " ██░░░░██ "
489
+ ],
490
+ 'I': [
491
+ " ████████ ",
492
+ " ██░░ ",
493
+ " ██░░ ",
494
+ " ██░░ ",
495
+ " ████████ "
496
+ ],
497
+ 'J': [
498
+ " ██ ",
499
+ " ██ ",
500
+ " ██ ",
501
+ " ██░░░██ ",
502
+ " ░████ "
503
+ ],
504
+ 'K': [
505
+ " ██░░░░██ ",
506
+ " ██░░██ ",
507
+ " ████ ",
508
+ " ██░░██ ",
509
+ " ██░░░░██ "
510
+ ],
511
+ 'L': [
512
+ " ██░░░░ ",
513
+ " ██░░░░ ",
514
+ " ██░░░░ ",
515
+ " ██░░░░ ",
516
+ " ████████ "
517
+ ],
518
+ 'M': [
519
+ " ██░░░░██ ",
520
+ " ███░███ ",
521
+ " ██ █ ██ ",
522
+ " ██░░░░██ ",
523
+ " ██░░░░██ "
524
+ ],
525
+ 'N': [
526
+ " ██░░░░██ ",
527
+ " ███░░░██ ",
528
+ " ██ █░░██ ",
529
+ " ██░░███ ",
530
+ " ██░░░░██ "
531
+ ],
532
+ 'O': [
533
+ " ░██████ ",
534
+ " ██░░░░██ ",
535
+ " ██░░░░██ ",
536
+ " ██░░░░██ ",
537
+ " ░██████ "
538
+ ],
539
+ 'P': [
540
+ " ████████ ",
541
+ " ██░░░░██ ",
542
+ " ████████ ",
543
+ " ██░░░░ ",
544
+ " ██░░░░ "
545
+ ],
546
+ 'Q': [
547
+ " ░██████ ",
548
+ " ██░░░░██ ",
549
+ " ██░░░░██ ",
550
+ " ██░░██ ",
551
+ " ░██░██ "
552
+ ],
553
+ 'R': [
554
+ " ████████ ",
555
+ " ██░░░░██ ",
556
+ " ████████ ",
557
+ " ██░░██ ",
558
+ " ██░░░██ "
559
+ ],
560
+ 'S': [
561
+ " ░██████ ",
562
+ " ██░░░░ ",
563
+ " ░██████ ",
564
+ " ░██ ",
565
+ " ████████ "
566
+ ],
567
+ 'T': [
568
+ " ████████ ",
569
+ " ██░░ ",
570
+ " ██░░ ",
571
+ " ██░░ ",
572
+ " ██░░ "
573
+ ],
574
+ 'U': [
575
+ " ██░░░░██ ",
576
+ " ██░░░░██ ",
577
+ " ██░░░░██ ",
578
+ " ██░░░░██ ",
579
+ " ░██████ "
580
+ ],
581
+ 'V': [
582
+ " ██░░░░██ ",
583
+ " ██░░░░██ ",
584
+ " ██░░░░██ ",
585
+ " ██░░██ ",
586
+ " ░████ "
587
+ ],
588
+ 'W': [
589
+ " ██░░░░██ ",
590
+ " ██░░░░██ ",
591
+ " ██ █ ██ ",
592
+ " ███ ███ ",
593
+ " ██ ██ "
594
+ ],
595
+ 'X': [
596
+ " ██░░░░██ ",
597
+ " ██░░██ ",
598
+ " ████ ",
599
+ " ██░░██ ",
600
+ " ██░░░░██ "
601
+ ],
602
+ 'Y': [
603
+ " ██░░░░██ ",
604
+ " ██░░██ ",
605
+ " ████ ",
606
+ " ██░░ ",
607
+ " ██░░ "
608
+ ],
609
+ 'Z': [
610
+ " ████████ ",
611
+ " ██░ ",
612
+ " ██░ ",
613
+ " ██░ ",
614
+ " ████████ "
615
+ ]
616
+ }
617
+
618
+ self.letters.update(neon_letters)
619
+
620
+ class CyberFont(ZeroArtFont):
621
+ """Cyberpunk-style ASCII art font"""
622
+ def __init__(self):
623
+ super().__init__("cyber")
624
+ self.letters = {
625
+ ' ': [" ", " ", " ", " ", " "]
626
+ }
627
+ self._populate_letters()
628
+
629
+ def _populate_letters(self):
630
+ """Populate cyberpunk-style letters"""
631
+ cyber_letters = {
632
+ 'A': [
633
+ " ▓█▓▓▓▓ ",
634
+ " ▓▓ ▓▓ ",
635
+ " ▓▓▓▓▓▓▓ ",
636
+ " ▓▓ ▓▓ ",
637
+ " ▓▓ ▓▓ "
638
+ ],
639
+ 'B': [
640
+ " ▓▓▓▓▓▓▓ ",
641
+ " ▓▓ ▓▓ ",
642
+ " ▓▓▓▓▓▓▓ ",
643
+ " ▓▓ ▓▓ ",
644
+ " ▓▓▓▓▓▓▓ "
645
+ ],
646
+ 'C': [
647
+ " ▓▓▓▓▓▓▓ ",
648
+ " ▓▓ ",
649
+ " ▓▓ ",
650
+ " ▓▓ ",
651
+ " ▓▓▓▓▓▓▓ "
652
+ ],
653
+ 'D': [
654
+ " ▓▓▓▓▓▓▓ ",
655
+ " ▓▓ ▓▓ ",
656
+ " ▓▓ ▓▓ ",
657
+ " ▓▓ ▓▓ ",
658
+ " ▓▓▓▓▓▓▓ "
659
+ ],
660
+ 'E': [
661
+ " ▓▓▓▓▓▓▓ ",
662
+ " ▓▓ ",
663
+ " ▓▓▓▓▓▓▓ ",
664
+ " ▓▓ ",
665
+ " ▓▓▓▓▓▓▓ "
666
+ ],
667
+ 'F': [
668
+ " ▓▓▓▓▓▓▓ ",
669
+ " ▓▓ ",
670
+ " ▓▓▓▓▓▓▓ ",
671
+ " ▓▓ ",
672
+ " ▓▓ "
673
+ ],
674
+ 'G': [
675
+ " ▓▓▓▓▓▓▓ ",
676
+ " ▓▓ ",
677
+ " ▓▓ ▓▓▓ ",
678
+ " ▓▓ ▓▓ ",
679
+ " ▓▓▓▓▓▓▓ "
680
+ ],
681
+ 'H': [
682
+ " ▓▓ ▓▓ ",
683
+ " ▓▓ ▓▓ ",
684
+ " ▓▓▓▓▓▓▓ ",
685
+ " ▓▓ ▓▓ ",
686
+ " ▓▓ ▓▓ "
687
+ ],
688
+ 'I': [
689
+ " ▓▓▓▓▓▓▓ ",
690
+ " ▓▓ ",
691
+ " ▓▓ ",
692
+ " ▓▓ ",
693
+ " ▓▓▓▓▓▓▓ "
694
+ ],
695
+ 'J': [
696
+ " ▓▓ ",
697
+ " ▓▓ ",
698
+ " ▓▓ ",
699
+ " ▓▓ ▓▓ ",
700
+ " ▓▓▓▓ "
701
+ ],
702
+ 'K': [
703
+ " ▓▓ ▓▓ ",
704
+ " ▓▓ ▓▓ ",
705
+ " ▓▓▓▓ ",
706
+ " ▓▓ ▓▓ ",
707
+ " ▓▓ ▓▓ "
708
+ ],
709
+ 'L': [
710
+ " ▓▓ ",
711
+ " ▓▓ ",
712
+ " ▓▓ ",
713
+ " ▓▓ ",
714
+ " ▓▓▓▓▓▓▓ "
715
+ ],
716
+ 'M': [
717
+ " ▓▓ ▓▓ ",
718
+ " ▓▓ █ ▓▓ ",
719
+ " ▓▓ ▓ ▓▓ ",
720
+ " ▓▓ ▓▓ ",
721
+ " ▓▓ ▓▓ "
722
+ ],
723
+ 'N': [
724
+ " ▓▓ ▓▓ ",
725
+ " ▓▓ ▓▓ ",
726
+ " ▓▓ ▓ ▓▓ ",
727
+ " ▓▓▓ ▓▓ ",
728
+ " ▓▓ ▓▓ "
729
+ ],
730
+ 'O': [
731
+ " ▓▓▓▓ ",
732
+ " ▓▓ ▓▓ ",
733
+ " ▓▓ ▓▓ ",
734
+ " ▓▓ ▓▓ ",
735
+ " ▓▓▓▓ "
736
+ ],
737
+ 'P': [
738
+ " ▓▓▓▓▓▓▓ ",
739
+ " ▓▓ ▓▓ ",
740
+ " ▓▓▓▓▓▓▓ ",
741
+ " ▓▓ ",
742
+ " ▓▓ "
743
+ ],
744
+ 'Q': [
745
+ " ▓▓▓▓ ",
746
+ " ▓▓ ▓▓ ",
747
+ " ▓▓ ▓▓ ",
748
+ " ▓▓ ▓▓ ",
749
+ " ▓▓▓▓▓ "
750
+ ],
751
+ 'R': [
752
+ " ▓▓▓▓▓▓▓ ",
753
+ " ▓▓ ▓▓ ",
754
+ " ▓▓▓▓▓▓▓ ",
755
+ " ▓▓ ▓▓ ",
756
+ " ▓▓ ▓▓ "
757
+ ],
758
+ 'S': [
759
+ " ▓▓▓▓▓▓▓ ",
760
+ " ▓▓ ",
761
+ " ▓▓▓▓▓▓▓ ",
762
+ " ▓▓ ",
763
+ " ▓▓▓▓▓▓▓ "
764
+ ],
765
+ 'T': [
766
+ " ▓▓▓▓▓▓▓ ",
767
+ " ▓▓ ",
768
+ " ▓▓ ",
769
+ " ▓▓ ",
770
+ " ▓▓ "
771
+ ],
772
+ 'U': [
773
+ " ▓▓ ▓▓ ",
774
+ " ▓▓ ▓▓ ",
775
+ " ▓▓ ▓▓ ",
776
+ " ▓▓ ▓▓ ",
777
+ " ▓▓▓▓ "
778
+ ],
779
+ 'V': [
780
+ " ▓▓ ▓▓ ",
781
+ " ▓▓ ▓▓ ",
782
+ " ▓▓ ▓▓ ",
783
+ " ▓▓ ▓▓ ",
784
+ " ▓▓ "
785
+ ],
786
+ 'W': [
787
+ " ▓▓ ▓▓ ",
788
+ " ▓▓ ▓▓ ",
789
+ " ▓▓ █ ▓▓ ",
790
+ " ▓▓▓▓▓▓ ",
791
+ " ▓▓ ▓▓ "
792
+ ],
793
+ 'X': [
794
+ " ▓▓ ▓▓ ",
795
+ " ▓▓ ▓▓ ",
796
+ " ▓▓ ",
797
+ " ▓▓ ▓▓ ",
798
+ " ▓▓ ▓▓ "
799
+ ],
800
+ 'Y': [
801
+ " ▓▓ ▓▓ ",
802
+ " ▓▓ ▓▓ ",
803
+ " ▓▓ ",
804
+ " ▓▓ ",
805
+ " ▓▓ "
806
+ ],
807
+ 'Z': [
808
+ " ▓▓▓▓▓▓▓ ",
809
+ " ▓▓ ",
810
+ " ▓▓ ",
811
+ " ▓▓ ",
812
+ " ▓▓▓▓▓▓▓ "
813
+ ]
814
+ }
815
+
816
+ self.letters.update(cyber_letters)