magic-pdf 1.2.2__py3-none-any.whl → 1.3.1__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.
Files changed (102) hide show
  1. magic_pdf/data/batch_build_dataset.py +156 -0
  2. magic_pdf/data/dataset.py +56 -25
  3. magic_pdf/data/utils.py +108 -9
  4. magic_pdf/dict2md/ocr_mkcontent.py +4 -3
  5. magic_pdf/libs/pdf_image_tools.py +11 -6
  6. magic_pdf/libs/performance_stats.py +12 -1
  7. magic_pdf/libs/version.py +1 -1
  8. magic_pdf/model/batch_analyze.py +175 -201
  9. magic_pdf/model/doc_analyze_by_custom_model.py +142 -92
  10. magic_pdf/model/pdf_extract_kit.py +5 -38
  11. magic_pdf/model/sub_modules/language_detection/utils.py +2 -4
  12. magic_pdf/model/sub_modules/language_detection/yolov11/YOLOv11.py +24 -19
  13. magic_pdf/model/sub_modules/layout/doclayout_yolo/DocLayoutYOLO.py +3 -1
  14. magic_pdf/model/sub_modules/mfd/yolov8/YOLOv8.py +3 -1
  15. magic_pdf/model/sub_modules/mfr/unimernet/Unimernet.py +31 -102
  16. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/__init__.py +13 -0
  17. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/modeling_unimernet.py +189 -0
  18. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_mbart/__init__.py +8 -0
  19. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_mbart/configuration_unimer_mbart.py +163 -0
  20. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_mbart/modeling_unimer_mbart.py +2351 -0
  21. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_swin/__init__.py +9 -0
  22. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_swin/configuration_unimer_swin.py +132 -0
  23. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_swin/image_processing_unimer_swin.py +132 -0
  24. magic_pdf/model/sub_modules/mfr/unimernet/unimernet_hf/unimer_swin/modeling_unimer_swin.py +1084 -0
  25. magic_pdf/model/sub_modules/model_init.py +50 -37
  26. magic_pdf/model/sub_modules/model_utils.py +18 -12
  27. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/__init__.py +1 -0
  28. magic_pdf/model/sub_modules/ocr/{paddleocr → paddleocr2pytorch}/ocr_utils.py +102 -97
  29. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorch_paddle.py +193 -0
  30. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/base_ocr_v20.py +39 -0
  31. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/data/__init__.py +8 -0
  32. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/data/imaug/__init__.py +48 -0
  33. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/data/imaug/operators.py +418 -0
  34. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/architectures/__init__.py +25 -0
  35. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/architectures/base_model.py +105 -0
  36. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/__init__.py +62 -0
  37. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/det_mobilenet_v3.py +269 -0
  38. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/rec_hgnet.py +290 -0
  39. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/rec_lcnetv3.py +516 -0
  40. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/rec_mobilenet_v3.py +136 -0
  41. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/rec_mv1_enhance.py +234 -0
  42. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/backbones/rec_svtrnet.py +638 -0
  43. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/common.py +76 -0
  44. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/heads/__init__.py +43 -0
  45. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/heads/cls_head.py +23 -0
  46. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/heads/det_db_head.py +109 -0
  47. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/heads/rec_ctc_head.py +54 -0
  48. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/heads/rec_multi_head.py +58 -0
  49. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/necks/__init__.py +29 -0
  50. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/necks/db_fpn.py +456 -0
  51. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/necks/intracl.py +117 -0
  52. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/modeling/necks/rnn.py +228 -0
  53. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/postprocess/__init__.py +33 -0
  54. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/postprocess/cls_postprocess.py +20 -0
  55. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/postprocess/db_postprocess.py +179 -0
  56. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/postprocess/rec_postprocess.py +690 -0
  57. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/__init__.py +0 -0
  58. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/arch_config.yaml +383 -0
  59. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/arabic_dict.txt +162 -0
  60. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/chinese_cht_dict.txt +8421 -0
  61. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/cyrillic_dict.txt +163 -0
  62. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/devanagari_dict.txt +167 -0
  63. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/en_dict.txt +95 -0
  64. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/japan_dict.txt +4399 -0
  65. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/ka_dict.txt +153 -0
  66. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/korean_dict.txt +3688 -0
  67. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/latin_dict.txt +185 -0
  68. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/ppocr_keys_v1.txt +6623 -0
  69. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/ta_dict.txt +128 -0
  70. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/dict/te_dict.txt +151 -0
  71. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/pytorchocr/utils/resources/models_config.yml +49 -0
  72. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/__init__.py +1 -0
  73. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/infer/__init__.py +1 -0
  74. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/infer/predict_cls.py +106 -0
  75. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/infer/predict_det.py +217 -0
  76. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/infer/predict_rec.py +440 -0
  77. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/infer/predict_system.py +104 -0
  78. magic_pdf/model/sub_modules/ocr/paddleocr2pytorch/tools/infer/pytorchocr_utility.py +227 -0
  79. magic_pdf/model/sub_modules/table/rapidtable/rapid_table.py +15 -19
  80. magic_pdf/pdf_parse_union_core_v2.py +112 -74
  81. magic_pdf/pre_proc/ocr_dict_merge.py +9 -1
  82. magic_pdf/pre_proc/ocr_span_list_modify.py +51 -0
  83. magic_pdf/resources/model_config/model_configs.yaml +1 -1
  84. magic_pdf/resources/slanet_plus/slanet-plus.onnx +0 -0
  85. magic_pdf/tools/cli.py +30 -12
  86. magic_pdf/tools/common.py +90 -12
  87. {magic_pdf-1.2.2.dist-info → magic_pdf-1.3.1.dist-info}/METADATA +92 -59
  88. magic_pdf-1.3.1.dist-info/RECORD +203 -0
  89. {magic_pdf-1.2.2.dist-info → magic_pdf-1.3.1.dist-info}/WHEEL +1 -1
  90. magic_pdf/model/sub_modules/ocr/paddleocr/ppocr_273_mod.py +0 -204
  91. magic_pdf/model/sub_modules/ocr/paddleocr/ppocr_291_mod.py +0 -213
  92. magic_pdf/model/sub_modules/table/structeqtable/struct_eqtable.py +0 -37
  93. magic_pdf/model/sub_modules/table/tablemaster/tablemaster_paddle.py +0 -71
  94. magic_pdf/resources/model_config/UniMERNet/demo.yaml +0 -46
  95. magic_pdf/resources/model_config/layoutlmv3/layoutlmv3_base_inference.yaml +0 -351
  96. magic_pdf-1.2.2.dist-info/RECORD +0 -147
  97. /magic_pdf/model/sub_modules/{ocr/paddleocr/__init__.py → mfr/unimernet/unimernet_hf/unimer_mbart/tokenization_unimer_mbart.py} +0 -0
  98. /magic_pdf/model/sub_modules/{table/structeqtable → ocr/paddleocr2pytorch/pytorchocr}/__init__.py +0 -0
  99. /magic_pdf/model/sub_modules/{table/tablemaster → ocr/paddleocr2pytorch/pytorchocr/modeling}/__init__.py +0 -0
  100. {magic_pdf-1.2.2.dist-info → magic_pdf-1.3.1.dist-info}/LICENSE.md +0 -0
  101. {magic_pdf-1.2.2.dist-info → magic_pdf-1.3.1.dist-info}/entry_points.txt +0 -0
  102. {magic_pdf-1.2.2.dist-info → magic_pdf-1.3.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,383 @@
1
+ ch_ptocr_mobile_v2.0_cls_infer:
2
+ model_type: cls
3
+ algorithm: CLS
4
+ Transform:
5
+ Backbone:
6
+ name: MobileNetV3
7
+ scale: 0.35
8
+ model_name: small
9
+ Neck:
10
+ Head:
11
+ name: ClsHead
12
+ class_dim: 2
13
+
14
+ Multilingual_PP-OCRv3_det_infer:
15
+ model_type: det
16
+ algorithm: DB
17
+ Transform:
18
+ Backbone:
19
+ name: MobileNetV3
20
+ scale: 0.5
21
+ model_name: large
22
+ disable_se: True
23
+ Neck:
24
+ name: RSEFPN
25
+ out_channels: 96
26
+ shortcut: True
27
+ Head:
28
+ name: DBHead
29
+ k: 50
30
+
31
+ en_PP-OCRv3_det_infer:
32
+ model_type: det
33
+ algorithm: DB
34
+ Transform:
35
+ Backbone:
36
+ name: MobileNetV3
37
+ scale: 0.5
38
+ model_name: large
39
+ disable_se: True
40
+ Neck:
41
+ name: RSEFPN
42
+ out_channels: 96
43
+ shortcut: True
44
+ Head:
45
+ name: DBHead
46
+ k: 50
47
+
48
+ ch_PP-OCRv3_det_infer:
49
+ model_type: det
50
+ algorithm: DB
51
+ Transform:
52
+ Backbone:
53
+ name: MobileNetV3
54
+ scale: 0.5
55
+ model_name: large
56
+ disable_se: True
57
+ Neck:
58
+ name: RSEFPN
59
+ out_channels: 96
60
+ shortcut: True
61
+ Head:
62
+ name: DBHead
63
+ k: 50
64
+
65
+ en_PP-OCRv4_rec_infer:
66
+ model_type: rec
67
+ algorithm: SVTR_LCNet
68
+ Transform:
69
+ Backbone:
70
+ name: PPLCNetV3
71
+ scale: 0.95
72
+ Head:
73
+ name: MultiHead
74
+ out_channels_list:
75
+ CTCLabelDecode: 97 #'blank' + ...(62) + ' '
76
+ head_list:
77
+ - CTCHead:
78
+ Neck:
79
+ name: svtr
80
+ dims: 120
81
+ depth: 2
82
+ hidden_dims: 120
83
+ kernel_size: [ 1, 3 ]
84
+ use_guide: True
85
+ Head:
86
+ fc_decay: 0.00001
87
+ - NRTRHead:
88
+ nrtr_dim: 384
89
+ max_text_length: 25
90
+
91
+ ch_PP-OCRv4_det_infer:
92
+ model_type: det
93
+ algorithm: DB
94
+ Transform: null
95
+ Backbone:
96
+ name: PPLCNetV3
97
+ scale: 0.75
98
+ det: True
99
+ Neck:
100
+ name: RSEFPN
101
+ out_channels: 96
102
+ shortcut: True
103
+ Head:
104
+ name: DBHead
105
+ k: 50
106
+
107
+ ch_PP-OCRv4_det_server_infer:
108
+ model_type: det
109
+ algorithm: DB
110
+ Transform: null
111
+ Backbone:
112
+ name: PPHGNet_small
113
+ det: True
114
+ Neck:
115
+ name: LKPAN
116
+ out_channels: 256
117
+ intracl: true
118
+ Head:
119
+ name: PFHeadLocal
120
+ k: 50
121
+ mode: "large"
122
+
123
+ ch_PP-OCRv4_rec_infer:
124
+ model_type: rec
125
+ algorithm: SVTR_LCNet
126
+ Transform:
127
+ Backbone:
128
+ name: PPLCNetV3
129
+ scale: 0.95
130
+ Head:
131
+ name: MultiHead
132
+ out_channels_list:
133
+ CTCLabelDecode: 6625 #'blank' + ...(6623) + ' '
134
+ head_list:
135
+ - CTCHead:
136
+ Neck:
137
+ name: svtr
138
+ dims: 120
139
+ depth: 2
140
+ hidden_dims: 120
141
+ kernel_size: [ 1, 3 ]
142
+ use_guide: True
143
+ Head:
144
+ fc_decay: 0.00001
145
+ - NRTRHead:
146
+ nrtr_dim: 384
147
+ max_text_length: 25
148
+
149
+ ch_PP-OCRv4_rec_server_infer:
150
+ model_type: rec
151
+ algorithm: SVTR_HGNet
152
+ Transform:
153
+ Backbone:
154
+ name: PPHGNet_small
155
+ Head:
156
+ name: MultiHead
157
+ out_channels_list:
158
+ CTCLabelDecode: 6625 #'blank' + ...(6623) + ' '
159
+ head_list:
160
+ - CTCHead:
161
+ Neck:
162
+ name: svtr
163
+ dims: 120
164
+ depth: 2
165
+ hidden_dims: 120
166
+ kernel_size: [ 1, 3 ]
167
+ use_guide: True
168
+ Head:
169
+ fc_decay: 0.00001
170
+ - NRTRHead:
171
+ nrtr_dim: 384
172
+ max_text_length: 25
173
+
174
+ chinese_cht_PP-OCRv3_rec_infer:
175
+ model_type: rec
176
+ algorithm: SVTR
177
+ Transform:
178
+ Backbone:
179
+ name: MobileNetV1Enhance
180
+ scale: 0.5
181
+ last_conv_stride: [1, 2]
182
+ last_pool_type: avg
183
+ Neck:
184
+ name: SequenceEncoder
185
+ encoder_type: svtr
186
+ dims: 64
187
+ depth: 2
188
+ hidden_dims: 120
189
+ use_guide: True
190
+ Head:
191
+ name: CTCHead
192
+ # out_channels: 8423
193
+ fc_decay: 0.00001
194
+
195
+ latin_PP-OCRv3_rec_infer:
196
+ model_type: rec
197
+ algorithm: SVTR
198
+ Transform:
199
+ Backbone:
200
+ name: MobileNetV1Enhance
201
+ scale: 0.5
202
+ last_conv_stride: [ 1, 2 ]
203
+ last_pool_type: avg
204
+ Neck:
205
+ name: SequenceEncoder
206
+ encoder_type: svtr
207
+ dims: 64
208
+ depth: 2
209
+ hidden_dims: 120
210
+ use_guide: True
211
+ Head:
212
+ name: CTCHead
213
+ # out_channels: 187
214
+ fc_decay: 0.00001
215
+
216
+ cyrillic_PP-OCRv3_rec_infer:
217
+ model_type: rec
218
+ algorithm: SVTR
219
+ Transform:
220
+ Backbone:
221
+ name: MobileNetV1Enhance
222
+ scale: 0.5
223
+ last_conv_stride: [ 1, 2 ]
224
+ last_pool_type: avg
225
+ Neck:
226
+ name: SequenceEncoder
227
+ encoder_type: svtr
228
+ dims: 64
229
+ depth: 2
230
+ hidden_dims: 120
231
+ use_guide: True
232
+ Head:
233
+ name: CTCHead
234
+ # out_channels: 165
235
+ fc_decay: 0.00001
236
+
237
+ arabic_PP-OCRv3_rec_infer:
238
+ model_type: rec
239
+ algorithm: SVTR
240
+ Transform:
241
+ Backbone:
242
+ name: MobileNetV1Enhance
243
+ scale: 0.5
244
+ last_conv_stride: [ 1, 2 ]
245
+ last_pool_type: avg
246
+ Neck:
247
+ name: SequenceEncoder
248
+ encoder_type: svtr
249
+ dims: 64
250
+ depth: 2
251
+ hidden_dims: 120
252
+ use_guide: True
253
+ Head:
254
+ name: CTCHead
255
+ # out_channels: 164
256
+ fc_decay: 0.00001
257
+
258
+ korean_PP-OCRv3_rec_infer:
259
+ model_type: rec
260
+ algorithm: SVTR
261
+ Transform:
262
+ Backbone:
263
+ name: MobileNetV1Enhance
264
+ scale: 0.5
265
+ last_conv_stride: [ 1, 2 ]
266
+ last_pool_type: avg
267
+ Neck:
268
+ name: SequenceEncoder
269
+ encoder_type: svtr
270
+ dims: 64
271
+ depth: 2
272
+ hidden_dims: 120
273
+ use_guide: True
274
+ Head:
275
+ name: CTCHead
276
+ # out_channels: 3690
277
+ fc_decay: 0.00001
278
+
279
+ japan_PP-OCRv3_rec_infer:
280
+ model_type: rec
281
+ algorithm: SVTR
282
+ Transform:
283
+ Backbone:
284
+ name: MobileNetV1Enhance
285
+ scale: 0.5
286
+ last_conv_stride: [ 1, 2 ]
287
+ last_pool_type: avg
288
+ Neck:
289
+ name: SequenceEncoder
290
+ encoder_type: svtr
291
+ dims: 64
292
+ depth: 2
293
+ hidden_dims: 120
294
+ use_guide: True
295
+ Head:
296
+ name: CTCHead
297
+ # out_channels: 4401
298
+ fc_decay: 0.00001
299
+
300
+ ta_PP-OCRv3_rec_infer:
301
+ model_type: rec
302
+ algorithm: SVTR
303
+ Transform:
304
+ Backbone:
305
+ name: MobileNetV1Enhance
306
+ scale: 0.5
307
+ last_conv_stride: [ 1, 2 ]
308
+ last_pool_type: avg
309
+ Neck:
310
+ name: SequenceEncoder
311
+ encoder_type: svtr
312
+ dims: 64
313
+ depth: 2
314
+ hidden_dims: 120
315
+ use_guide: True
316
+ Head:
317
+ name: CTCHead
318
+ # out_channels: 130
319
+ fc_decay: 0.00001
320
+
321
+ te_PP-OCRv3_rec_infer:
322
+ model_type: rec
323
+ algorithm: SVTR
324
+ Transform:
325
+ Backbone:
326
+ name: MobileNetV1Enhance
327
+ scale: 0.5
328
+ last_conv_stride: [ 1, 2 ]
329
+ last_pool_type: avg
330
+ Neck:
331
+ name: SequenceEncoder
332
+ encoder_type: svtr
333
+ dims: 64
334
+ depth: 2
335
+ hidden_dims: 120
336
+ use_guide: True
337
+ Head:
338
+ name: CTCHead
339
+ # out_channels: 153
340
+ fc_decay: 0.00001
341
+
342
+ ka_PP-OCRv3_rec_infer:
343
+ model_type: rec
344
+ algorithm: SVTR
345
+ Transform:
346
+ Backbone:
347
+ name: MobileNetV1Enhance
348
+ scale: 0.5
349
+ last_conv_stride: [ 1, 2 ]
350
+ last_pool_type: avg
351
+ Neck:
352
+ name: SequenceEncoder
353
+ encoder_type: svtr
354
+ dims: 64
355
+ depth: 2
356
+ hidden_dims: 120
357
+ use_guide: True
358
+ Head:
359
+ name: CTCHead
360
+ # out_channels: 155
361
+ fc_decay: 0.00001
362
+
363
+ devanagari_PP-OCRv3_rec_infer:
364
+ model_type: rec
365
+ algorithm: SVTR
366
+ Transform:
367
+ Backbone:
368
+ name: MobileNetV1Enhance
369
+ scale: 0.5
370
+ last_conv_stride: [ 1, 2 ]
371
+ last_pool_type: avg
372
+ Neck:
373
+ name: SequenceEncoder
374
+ encoder_type: svtr
375
+ dims: 64
376
+ depth: 2
377
+ hidden_dims: 120
378
+ use_guide: True
379
+ Head:
380
+ name: CTCHead
381
+ # out_channels: 169
382
+ fc_decay: 0.00001
383
+
@@ -0,0 +1,162 @@
1
+
2
+ !
3
+ #
4
+ $
5
+ %
6
+ &
7
+ '
8
+ (
9
+ +
10
+ ,
11
+ -
12
+ .
13
+ /
14
+ 0
15
+ 1
16
+ 2
17
+ 3
18
+ 4
19
+ 5
20
+ 6
21
+ 7
22
+ 8
23
+ 9
24
+ :
25
+ ?
26
+ @
27
+ A
28
+ B
29
+ C
30
+ D
31
+ E
32
+ F
33
+ G
34
+ H
35
+ I
36
+ J
37
+ K
38
+ L
39
+ M
40
+ N
41
+ O
42
+ P
43
+ Q
44
+ R
45
+ S
46
+ T
47
+ U
48
+ V
49
+ W
50
+ X
51
+ Y
52
+ Z
53
+ _
54
+ a
55
+ b
56
+ c
57
+ d
58
+ e
59
+ f
60
+ g
61
+ h
62
+ i
63
+ j
64
+ k
65
+ l
66
+ m
67
+ n
68
+ o
69
+ p
70
+ q
71
+ r
72
+ s
73
+ t
74
+ u
75
+ v
76
+ w
77
+ x
78
+ y
79
+ z
80
+ É
81
+ é
82
+ ء
83
+ آ
84
+ أ
85
+ ؤ
86
+ إ
87
+ ئ
88
+ ا
89
+ ب
90
+ ة
91
+ ت
92
+ ث
93
+ ج
94
+ ح
95
+ خ
96
+ د
97
+ ذ
98
+ ر
99
+ ز
100
+ س
101
+ ش
102
+ ص
103
+ ض
104
+ ط
105
+ ظ
106
+ ع
107
+ غ
108
+ ف
109
+ ق
110
+ ك
111
+ ل
112
+ م
113
+ ن
114
+ ه
115
+ و
116
+ ى
117
+ ي
118
+ ً
119
+ ٌ
120
+ ٍ
121
+ َ
122
+ ُ
123
+ ِ
124
+ ّ
125
+ ْ
126
+ ٓ
127
+ ٔ
128
+ ٰ
129
+ ٱ
130
+ ٹ
131
+ پ
132
+ چ
133
+ ڈ
134
+ ڑ
135
+ ژ
136
+ ک
137
+ ڭ
138
+ گ
139
+ ں
140
+ ھ
141
+ ۀ
142
+ ہ
143
+ ۂ
144
+ ۃ
145
+ ۆ
146
+ ۇ
147
+ ۈ
148
+ ۋ
149
+ ی
150
+ ې
151
+ ے
152
+ ۓ
153
+ ە
154
+ ١
155
+ ٢
156
+ ٣
157
+ ٤
158
+ ٥
159
+ ٦
160
+ ٧
161
+ ٨
162
+ ٩