pyscriptc 0.1.0__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 (54) hide show
  1. pyscriptc/__init__.py +3 -0
  2. pyscriptc/__main__.py +3 -0
  3. pyscriptc/_posthog_token.py +1 -0
  4. pyscriptc/builtins.py +156 -0
  5. pyscriptc/canonical.py +167 -0
  6. pyscriptc/check.py +49 -0
  7. pyscriptc/cli.py +271 -0
  8. pyscriptc/coverage.py +388 -0
  9. pyscriptc/debug.py +120 -0
  10. pyscriptc/diagnostics.py +179 -0
  11. pyscriptc/errors.py +56 -0
  12. pyscriptc/ir.py +365 -0
  13. pyscriptc/llvm.py +2129 -0
  14. pyscriptc/log.py +127 -0
  15. pyscriptc/lower/__init__.py +1071 -0
  16. pyscriptc/lower/_calls.py +1499 -0
  17. pyscriptc/lower/_classes.py +969 -0
  18. pyscriptc/lower/_core.py +301 -0
  19. pyscriptc/lower/_expr.py +886 -0
  20. pyscriptc/lower/_stdlib.py +491 -0
  21. pyscriptc/lower/_stdlib_shared.py +93 -0
  22. pyscriptc/lower/_stmt.py +1173 -0
  23. pyscriptc/package.py +249 -0
  24. pyscriptc/restlower.py +1008 -0
  25. pyscriptc/runtime/ps_argv.c +28 -0
  26. pyscriptc/runtime/ps_b64.c +168 -0
  27. pyscriptc/runtime/ps_coll.c +133 -0
  28. pyscriptc/runtime/ps_dt.c +388 -0
  29. pyscriptc/runtime/ps_hash.c +411 -0
  30. pyscriptc/runtime/ps_help.c +219 -0
  31. pyscriptc/runtime/ps_hmac.c +120 -0
  32. pyscriptc/runtime/ps_io.c +198 -0
  33. pyscriptc/runtime/ps_island.c +272 -0
  34. pyscriptc/runtime/ps_json.c +402 -0
  35. pyscriptc/runtime/ps_mix.c +47 -0
  36. pyscriptc/runtime/ps_more.c +1089 -0
  37. pyscriptc/runtime/ps_osmore.c +447 -0
  38. pyscriptc/runtime/ps_path.c +547 -0
  39. pyscriptc/runtime/ps_re.c +1102 -0
  40. pyscriptc/runtime/ps_rt.c +1175 -0
  41. pyscriptc/runtime/ps_rt.h +189 -0
  42. pyscriptc/runtime/ps_struct.c +291 -0
  43. pyscriptc/runtime/ps_time.c +207 -0
  44. pyscriptc/runtime/ps_unicode.c +1521 -0
  45. pyscriptc/runtime/ps_url.c +327 -0
  46. pyscriptc/stdlib_queue.py +191 -0
  47. pyscriptc/stdmore.py +1596 -0
  48. pyscriptc/telemetry.py +219 -0
  49. pyscriptc-0.1.0.dist-info/METADATA +187 -0
  50. pyscriptc-0.1.0.dist-info/RECORD +54 -0
  51. pyscriptc-0.1.0.dist-info/WHEEL +5 -0
  52. pyscriptc-0.1.0.dist-info/entry_points.txt +2 -0
  53. pyscriptc-0.1.0.dist-info/licenses/LICENSE +201 -0
  54. pyscriptc-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1521 @@
1
+ /* Latin-1 Unicode properties from CPython 3.14 unicodedata.
2
+ unidata_version 16.0.0. Code points above U+00FF are not
3
+ representable: strings are one byte per code point. A mapping
4
+ that would leave Latin-1 raises ValueError. */
5
+
6
+ #include "ps_rt.h"
7
+
8
+ #include <string.h>
9
+
10
+ static const uint16_t ps_cat[256] = {
11
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
12
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
13
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
14
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
15
+ 0x5a73, 0x506f, 0x506f, 0x506f, 0x5363, 0x506f, 0x506f, 0x506f,
16
+ 0x5073, 0x5065, 0x506f, 0x536d, 0x506f, 0x5064, 0x506f, 0x506f,
17
+ 0x4e64, 0x4e64, 0x4e64, 0x4e64, 0x4e64, 0x4e64, 0x4e64, 0x4e64,
18
+ 0x4e64, 0x4e64, 0x506f, 0x506f, 0x536d, 0x536d, 0x536d, 0x506f,
19
+ 0x506f, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75,
20
+ 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75,
21
+ 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75,
22
+ 0x4c75, 0x4c75, 0x4c75, 0x5073, 0x506f, 0x5065, 0x536b, 0x5063,
23
+ 0x536b, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c,
24
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c,
25
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c,
26
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x5073, 0x536d, 0x5065, 0x536d, 0x4363,
27
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
28
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
29
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
30
+ 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363, 0x4363,
31
+ 0x5a73, 0x506f, 0x5363, 0x5363, 0x5363, 0x5363, 0x536f, 0x506f,
32
+ 0x536b, 0x536f, 0x4c6f, 0x5069, 0x536d, 0x4366, 0x536f, 0x536b,
33
+ 0x536f, 0x536d, 0x4e6f, 0x4e6f, 0x536b, 0x4c6c, 0x506f, 0x506f,
34
+ 0x536b, 0x4e6f, 0x4c6f, 0x5066, 0x4e6f, 0x4e6f, 0x4e6f, 0x506f,
35
+ 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75,
36
+ 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75,
37
+ 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x536d,
38
+ 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c75, 0x4c6c,
39
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c,
40
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c,
41
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x536d,
42
+ 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c, 0x4c6c,
43
+ };
44
+
45
+ static const uint8_t ps_ccc[256] = {
46
+ 0, 0, 0, 0, 0, 0, 0, 0,
47
+ 0, 0, 0, 0, 0, 0, 0, 0,
48
+ 0, 0, 0, 0, 0, 0, 0, 0,
49
+ 0, 0, 0, 0, 0, 0, 0, 0,
50
+ 0, 0, 0, 0, 0, 0, 0, 0,
51
+ 0, 0, 0, 0, 0, 0, 0, 0,
52
+ 0, 0, 0, 0, 0, 0, 0, 0,
53
+ 0, 0, 0, 0, 0, 0, 0, 0,
54
+ 0, 0, 0, 0, 0, 0, 0, 0,
55
+ 0, 0, 0, 0, 0, 0, 0, 0,
56
+ 0, 0, 0, 0, 0, 0, 0, 0,
57
+ 0, 0, 0, 0, 0, 0, 0, 0,
58
+ 0, 0, 0, 0, 0, 0, 0, 0,
59
+ 0, 0, 0, 0, 0, 0, 0, 0,
60
+ 0, 0, 0, 0, 0, 0, 0, 0,
61
+ 0, 0, 0, 0, 0, 0, 0, 0,
62
+ 0, 0, 0, 0, 0, 0, 0, 0,
63
+ 0, 0, 0, 0, 0, 0, 0, 0,
64
+ 0, 0, 0, 0, 0, 0, 0, 0,
65
+ 0, 0, 0, 0, 0, 0, 0, 0,
66
+ 0, 0, 0, 0, 0, 0, 0, 0,
67
+ 0, 0, 0, 0, 0, 0, 0, 0,
68
+ 0, 0, 0, 0, 0, 0, 0, 0,
69
+ 0, 0, 0, 0, 0, 0, 0, 0,
70
+ 0, 0, 0, 0, 0, 0, 0, 0,
71
+ 0, 0, 0, 0, 0, 0, 0, 0,
72
+ 0, 0, 0, 0, 0, 0, 0, 0,
73
+ 0, 0, 0, 0, 0, 0, 0, 0,
74
+ 0, 0, 0, 0, 0, 0, 0, 0,
75
+ 0, 0, 0, 0, 0, 0, 0, 0,
76
+ 0, 0, 0, 0, 0, 0, 0, 0,
77
+ 0, 0, 0, 0, 0, 0, 0, 0,
78
+ };
79
+
80
+ static const uint16_t ps_norm_NFC[256] = {
81
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
82
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
83
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
84
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
85
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
86
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
87
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
88
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
89
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
90
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
91
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
92
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
93
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
94
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
95
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
96
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
97
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
98
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
99
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
100
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
101
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
102
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
103
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
104
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
105
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
106
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
107
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
108
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
109
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
110
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
111
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
112
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
113
+ };
114
+
115
+ static const uint16_t ps_norm_NFD[256] = {
116
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
117
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
118
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
119
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
120
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
121
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
122
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
123
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
124
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
125
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
126
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
127
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
128
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
129
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
130
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
131
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
132
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
133
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
134
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
135
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
136
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
137
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
138
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
139
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
140
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000,
141
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
142
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
143
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x0000,
144
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000,
145
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
146
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
147
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000,
148
+ };
149
+
150
+ static const uint16_t ps_norm_NFKC[256] = {
151
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
152
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
153
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
154
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
155
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
156
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
157
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
158
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
159
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
160
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
161
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
162
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
163
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
164
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
165
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
166
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
167
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
168
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
169
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
170
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
171
+ 0x4020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
172
+ 0x8000, 0x0000, 0x4061, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
173
+ 0x0000, 0x0000, 0x4032, 0x4033, 0x8000, 0x8000, 0x0000, 0x0000,
174
+ 0x8000, 0x4031, 0x406f, 0x0000, 0x8000, 0x8000, 0x8000, 0x0000,
175
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
176
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
177
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
178
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
179
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
180
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
181
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
182
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
183
+ };
184
+
185
+ static const uint16_t ps_norm_NFKD[256] = {
186
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
187
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
188
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
189
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
190
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
191
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
192
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
193
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
194
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
195
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
196
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
197
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
198
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
199
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
200
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
201
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
202
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
203
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
204
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
205
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
206
+ 0x4020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
207
+ 0x8000, 0x0000, 0x4061, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
208
+ 0x0000, 0x0000, 0x4032, 0x4033, 0x8000, 0x8000, 0x0000, 0x0000,
209
+ 0x8000, 0x4031, 0x406f, 0x0000, 0x8000, 0x8000, 0x8000, 0x0000,
210
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000,
211
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
212
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
213
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x0000,
214
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000,
215
+ 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
216
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
217
+ 0x0000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000,
218
+ };
219
+
220
+ static const uint16_t *const ps_norm[4] = {ps_norm_NFC, ps_norm_NFD, ps_norm_NFKC, ps_norm_NFKD};
221
+
222
+ static const int16_t ps_decimal[256] = {
223
+ -1, -1, -1, -1, -1, -1, -1, -1,
224
+ -1, -1, -1, -1, -1, -1, -1, -1,
225
+ -1, -1, -1, -1, -1, -1, -1, -1,
226
+ -1, -1, -1, -1, -1, -1, -1, -1,
227
+ -1, -1, -1, -1, -1, -1, -1, -1,
228
+ -1, -1, -1, -1, -1, -1, -1, -1,
229
+ 0, 1, 2, 3, 4, 5, 6, 7,
230
+ 8, 9, -1, -1, -1, -1, -1, -1,
231
+ -1, -1, -1, -1, -1, -1, -1, -1,
232
+ -1, -1, -1, -1, -1, -1, -1, -1,
233
+ -1, -1, -1, -1, -1, -1, -1, -1,
234
+ -1, -1, -1, -1, -1, -1, -1, -1,
235
+ -1, -1, -1, -1, -1, -1, -1, -1,
236
+ -1, -1, -1, -1, -1, -1, -1, -1,
237
+ -1, -1, -1, -1, -1, -1, -1, -1,
238
+ -1, -1, -1, -1, -1, -1, -1, -1,
239
+ -1, -1, -1, -1, -1, -1, -1, -1,
240
+ -1, -1, -1, -1, -1, -1, -1, -1,
241
+ -1, -1, -1, -1, -1, -1, -1, -1,
242
+ -1, -1, -1, -1, -1, -1, -1, -1,
243
+ -1, -1, -1, -1, -1, -1, -1, -1,
244
+ -1, -1, -1, -1, -1, -1, -1, -1,
245
+ -1, -1, -1, -1, -1, -1, -1, -1,
246
+ -1, -1, -1, -1, -1, -1, -1, -1,
247
+ -1, -1, -1, -1, -1, -1, -1, -1,
248
+ -1, -1, -1, -1, -1, -1, -1, -1,
249
+ -1, -1, -1, -1, -1, -1, -1, -1,
250
+ -1, -1, -1, -1, -1, -1, -1, -1,
251
+ -1, -1, -1, -1, -1, -1, -1, -1,
252
+ -1, -1, -1, -1, -1, -1, -1, -1,
253
+ -1, -1, -1, -1, -1, -1, -1, -1,
254
+ -1, -1, -1, -1, -1, -1, -1, -1,
255
+ };
256
+
257
+ static const int16_t ps_digit[256] = {
258
+ -1, -1, -1, -1, -1, -1, -1, -1,
259
+ -1, -1, -1, -1, -1, -1, -1, -1,
260
+ -1, -1, -1, -1, -1, -1, -1, -1,
261
+ -1, -1, -1, -1, -1, -1, -1, -1,
262
+ -1, -1, -1, -1, -1, -1, -1, -1,
263
+ -1, -1, -1, -1, -1, -1, -1, -1,
264
+ 0, 1, 2, 3, 4, 5, 6, 7,
265
+ 8, 9, -1, -1, -1, -1, -1, -1,
266
+ -1, -1, -1, -1, -1, -1, -1, -1,
267
+ -1, -1, -1, -1, -1, -1, -1, -1,
268
+ -1, -1, -1, -1, -1, -1, -1, -1,
269
+ -1, -1, -1, -1, -1, -1, -1, -1,
270
+ -1, -1, -1, -1, -1, -1, -1, -1,
271
+ -1, -1, -1, -1, -1, -1, -1, -1,
272
+ -1, -1, -1, -1, -1, -1, -1, -1,
273
+ -1, -1, -1, -1, -1, -1, -1, -1,
274
+ -1, -1, -1, -1, -1, -1, -1, -1,
275
+ -1, -1, -1, -1, -1, -1, -1, -1,
276
+ -1, -1, -1, -1, -1, -1, -1, -1,
277
+ -1, -1, -1, -1, -1, -1, -1, -1,
278
+ -1, -1, -1, -1, -1, -1, -1, -1,
279
+ -1, -1, -1, -1, -1, -1, -1, -1,
280
+ -1, -1, 2, 3, -1, -1, -1, -1,
281
+ -1, 1, -1, -1, -1, -1, -1, -1,
282
+ -1, -1, -1, -1, -1, -1, -1, -1,
283
+ -1, -1, -1, -1, -1, -1, -1, -1,
284
+ -1, -1, -1, -1, -1, -1, -1, -1,
285
+ -1, -1, -1, -1, -1, -1, -1, -1,
286
+ -1, -1, -1, -1, -1, -1, -1, -1,
287
+ -1, -1, -1, -1, -1, -1, -1, -1,
288
+ -1, -1, -1, -1, -1, -1, -1, -1,
289
+ -1, -1, -1, -1, -1, -1, -1, -1,
290
+ };
291
+
292
+ static const uint8_t ps_has_num[256] = {
293
+ 0, 0, 0, 0, 0, 0, 0, 0,
294
+ 0, 0, 0, 0, 0, 0, 0, 0,
295
+ 0, 0, 0, 0, 0, 0, 0, 0,
296
+ 0, 0, 0, 0, 0, 0, 0, 0,
297
+ 0, 0, 0, 0, 0, 0, 0, 0,
298
+ 0, 0, 0, 0, 0, 0, 0, 0,
299
+ 1, 1, 1, 1, 1, 1, 1, 1,
300
+ 1, 1, 0, 0, 0, 0, 0, 0,
301
+ 0, 0, 0, 0, 0, 0, 0, 0,
302
+ 0, 0, 0, 0, 0, 0, 0, 0,
303
+ 0, 0, 0, 0, 0, 0, 0, 0,
304
+ 0, 0, 0, 0, 0, 0, 0, 0,
305
+ 0, 0, 0, 0, 0, 0, 0, 0,
306
+ 0, 0, 0, 0, 0, 0, 0, 0,
307
+ 0, 0, 0, 0, 0, 0, 0, 0,
308
+ 0, 0, 0, 0, 0, 0, 0, 0,
309
+ 0, 0, 0, 0, 0, 0, 0, 0,
310
+ 0, 0, 0, 0, 0, 0, 0, 0,
311
+ 0, 0, 0, 0, 0, 0, 0, 0,
312
+ 0, 0, 0, 0, 0, 0, 0, 0,
313
+ 0, 0, 0, 0, 0, 0, 0, 0,
314
+ 0, 0, 0, 0, 0, 0, 0, 0,
315
+ 0, 0, 1, 1, 0, 0, 0, 0,
316
+ 0, 1, 0, 0, 1, 1, 1, 0,
317
+ 0, 0, 0, 0, 0, 0, 0, 0,
318
+ 0, 0, 0, 0, 0, 0, 0, 0,
319
+ 0, 0, 0, 0, 0, 0, 0, 0,
320
+ 0, 0, 0, 0, 0, 0, 0, 0,
321
+ 0, 0, 0, 0, 0, 0, 0, 0,
322
+ 0, 0, 0, 0, 0, 0, 0, 0,
323
+ 0, 0, 0, 0, 0, 0, 0, 0,
324
+ 0, 0, 0, 0, 0, 0, 0, 0,
325
+ };
326
+
327
+ static const double ps_numeric[256] = {
328
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
329
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
330
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
331
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
332
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
333
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
334
+ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
335
+ 8.0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
336
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
337
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
338
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
339
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
340
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
341
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
342
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
343
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
344
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
345
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
346
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
347
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
348
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
349
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
350
+ 0.0, 0.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0,
351
+ 0.0, 1.0, 0.0, 0.0, 0.25, 0.5, 0.75, 0.0,
352
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
353
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
354
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
355
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
356
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
357
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
358
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
359
+ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
360
+ };
361
+
362
+ static const char ps_bidi_blob[] = {
363
+ 66, 78, 0, 83, 0, 66, 0, 87, 83, 0, 79, 78, 0, 69, 84, 0,
364
+ 69, 83, 0, 67, 83, 0, 69, 78, 0, 76, 0,
365
+ };
366
+ static const uint16_t ps_bidi_off[256] = {
367
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
368
+ 0x0000, 0x0003, 0x0005, 0x0003, 0x0007, 0x0005, 0x0000, 0x0000,
369
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
370
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0005, 0x0005, 0x0003,
371
+ 0x0007, 0x000a, 0x000a, 0x000d, 0x000d, 0x000d, 0x000a, 0x000a,
372
+ 0x000a, 0x000a, 0x000a, 0x0010, 0x0013, 0x0010, 0x0013, 0x0013,
373
+ 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016, 0x0016,
374
+ 0x0016, 0x0016, 0x0013, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
375
+ 0x000a, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
376
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
377
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
378
+ 0x0019, 0x0019, 0x0019, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
379
+ 0x000a, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
380
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
381
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
382
+ 0x0019, 0x0019, 0x0019, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000,
383
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0000, 0x0000,
384
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
385
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
386
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
387
+ 0x0013, 0x000a, 0x000d, 0x000d, 0x000d, 0x000d, 0x000a, 0x000a,
388
+ 0x000a, 0x000a, 0x0019, 0x000a, 0x000a, 0x0000, 0x000a, 0x000a,
389
+ 0x000d, 0x000d, 0x0016, 0x0016, 0x000a, 0x0019, 0x000a, 0x000a,
390
+ 0x000a, 0x0016, 0x0019, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
391
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
392
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
393
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x000a,
394
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
395
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
396
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
397
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x000a,
398
+ 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019, 0x0019,
399
+ };
400
+ static const uint8_t ps_bidi_len[256] = {
401
+ 2, 2, 2, 2, 2, 2, 2, 2,
402
+ 2, 1, 1, 1, 2, 1, 2, 2,
403
+ 2, 2, 2, 2, 2, 2, 2, 2,
404
+ 2, 2, 2, 2, 1, 1, 1, 1,
405
+ 2, 2, 2, 2, 2, 2, 2, 2,
406
+ 2, 2, 2, 2, 2, 2, 2, 2,
407
+ 2, 2, 2, 2, 2, 2, 2, 2,
408
+ 2, 2, 2, 2, 2, 2, 2, 2,
409
+ 2, 1, 1, 1, 1, 1, 1, 1,
410
+ 1, 1, 1, 1, 1, 1, 1, 1,
411
+ 1, 1, 1, 1, 1, 1, 1, 1,
412
+ 1, 1, 1, 2, 2, 2, 2, 2,
413
+ 2, 1, 1, 1, 1, 1, 1, 1,
414
+ 1, 1, 1, 1, 1, 1, 1, 1,
415
+ 1, 1, 1, 1, 1, 1, 1, 1,
416
+ 1, 1, 1, 2, 2, 2, 2, 2,
417
+ 2, 2, 2, 2, 2, 1, 2, 2,
418
+ 2, 2, 2, 2, 2, 2, 2, 2,
419
+ 2, 2, 2, 2, 2, 2, 2, 2,
420
+ 2, 2, 2, 2, 2, 2, 2, 2,
421
+ 2, 2, 2, 2, 2, 2, 2, 2,
422
+ 2, 2, 1, 2, 2, 2, 2, 2,
423
+ 2, 2, 2, 2, 2, 1, 2, 2,
424
+ 2, 2, 1, 2, 2, 2, 2, 2,
425
+ 1, 1, 1, 1, 1, 1, 1, 1,
426
+ 1, 1, 1, 1, 1, 1, 1, 1,
427
+ 1, 1, 1, 1, 1, 1, 1, 2,
428
+ 1, 1, 1, 1, 1, 1, 1, 1,
429
+ 1, 1, 1, 1, 1, 1, 1, 1,
430
+ 1, 1, 1, 1, 1, 1, 1, 1,
431
+ 1, 1, 1, 1, 1, 1, 1, 2,
432
+ 1, 1, 1, 1, 1, 1, 1, 1,
433
+ };
434
+
435
+ static const char ps_eaw_blob[] = {
436
+ 78, 0, 78, 97, 0, 65, 0,
437
+ };
438
+ static const uint16_t ps_eaw_off[256] = {
439
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
440
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
441
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
442
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
443
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
444
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
445
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
446
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
447
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
448
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
449
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
450
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
451
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
452
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
453
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002,
454
+ 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000,
455
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
456
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
457
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
458
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
459
+ 0x0000, 0x0005, 0x0002, 0x0002, 0x0005, 0x0002, 0x0002, 0x0005,
460
+ 0x0005, 0x0000, 0x0005, 0x0000, 0x0002, 0x0005, 0x0005, 0x0002,
461
+ 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0000, 0x0005, 0x0005,
462
+ 0x0005, 0x0005, 0x0005, 0x0000, 0x0005, 0x0005, 0x0005, 0x0005,
463
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0000,
464
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
465
+ 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005,
466
+ 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0005,
467
+ 0x0005, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, 0x0005, 0x0000,
468
+ 0x0005, 0x0005, 0x0005, 0x0000, 0x0005, 0x0005, 0x0000, 0x0000,
469
+ 0x0005, 0x0000, 0x0005, 0x0005, 0x0000, 0x0000, 0x0000, 0x0005,
470
+ 0x0005, 0x0005, 0x0005, 0x0000, 0x0005, 0x0000, 0x0005, 0x0000,
471
+ };
472
+ static const uint8_t ps_eaw_len[256] = {
473
+ 1, 1, 1, 1, 1, 1, 1, 1,
474
+ 1, 1, 1, 1, 1, 1, 1, 1,
475
+ 1, 1, 1, 1, 1, 1, 1, 1,
476
+ 1, 1, 1, 1, 1, 1, 1, 1,
477
+ 2, 2, 2, 2, 2, 2, 2, 2,
478
+ 2, 2, 2, 2, 2, 2, 2, 2,
479
+ 2, 2, 2, 2, 2, 2, 2, 2,
480
+ 2, 2, 2, 2, 2, 2, 2, 2,
481
+ 2, 2, 2, 2, 2, 2, 2, 2,
482
+ 2, 2, 2, 2, 2, 2, 2, 2,
483
+ 2, 2, 2, 2, 2, 2, 2, 2,
484
+ 2, 2, 2, 2, 2, 2, 2, 2,
485
+ 2, 2, 2, 2, 2, 2, 2, 2,
486
+ 2, 2, 2, 2, 2, 2, 2, 2,
487
+ 2, 2, 2, 2, 2, 2, 2, 2,
488
+ 2, 2, 2, 2, 2, 2, 2, 1,
489
+ 1, 1, 1, 1, 1, 1, 1, 1,
490
+ 1, 1, 1, 1, 1, 1, 1, 1,
491
+ 1, 1, 1, 1, 1, 1, 1, 1,
492
+ 1, 1, 1, 1, 1, 1, 1, 1,
493
+ 1, 1, 2, 2, 1, 2, 2, 1,
494
+ 1, 1, 1, 1, 2, 1, 1, 2,
495
+ 1, 1, 1, 1, 1, 1, 1, 1,
496
+ 1, 1, 1, 1, 1, 1, 1, 1,
497
+ 1, 1, 1, 1, 1, 1, 1, 1,
498
+ 1, 1, 1, 1, 1, 1, 1, 1,
499
+ 1, 1, 1, 1, 1, 1, 1, 1,
500
+ 1, 1, 1, 1, 1, 1, 1, 1,
501
+ 1, 1, 1, 1, 1, 1, 1, 1,
502
+ 1, 1, 1, 1, 1, 1, 1, 1,
503
+ 1, 1, 1, 1, 1, 1, 1, 1,
504
+ 1, 1, 1, 1, 1, 1, 1, 1,
505
+ };
506
+
507
+ static const uint8_t ps_mirrored[256] = {
508
+ 0, 0, 0, 0, 0, 0, 0, 0,
509
+ 0, 0, 0, 0, 0, 0, 0, 0,
510
+ 0, 0, 0, 0, 0, 0, 0, 0,
511
+ 0, 0, 0, 0, 0, 0, 0, 0,
512
+ 0, 0, 0, 0, 0, 0, 0, 0,
513
+ 1, 1, 0, 0, 0, 0, 0, 0,
514
+ 0, 0, 0, 0, 0, 0, 0, 0,
515
+ 0, 0, 0, 0, 1, 0, 1, 0,
516
+ 0, 0, 0, 0, 0, 0, 0, 0,
517
+ 0, 0, 0, 0, 0, 0, 0, 0,
518
+ 0, 0, 0, 0, 0, 0, 0, 0,
519
+ 0, 0, 0, 1, 0, 1, 0, 0,
520
+ 0, 0, 0, 0, 0, 0, 0, 0,
521
+ 0, 0, 0, 0, 0, 0, 0, 0,
522
+ 0, 0, 0, 0, 0, 0, 0, 0,
523
+ 0, 0, 0, 1, 0, 1, 0, 0,
524
+ 0, 0, 0, 0, 0, 0, 0, 0,
525
+ 0, 0, 0, 0, 0, 0, 0, 0,
526
+ 0, 0, 0, 0, 0, 0, 0, 0,
527
+ 0, 0, 0, 0, 0, 0, 0, 0,
528
+ 0, 0, 0, 0, 0, 0, 0, 0,
529
+ 0, 0, 0, 1, 0, 0, 0, 0,
530
+ 0, 0, 0, 0, 0, 0, 0, 0,
531
+ 0, 0, 0, 1, 0, 0, 0, 0,
532
+ 0, 0, 0, 0, 0, 0, 0, 0,
533
+ 0, 0, 0, 0, 0, 0, 0, 0,
534
+ 0, 0, 0, 0, 0, 0, 0, 0,
535
+ 0, 0, 0, 0, 0, 0, 0, 0,
536
+ 0, 0, 0, 0, 0, 0, 0, 0,
537
+ 0, 0, 0, 0, 0, 0, 0, 0,
538
+ 0, 0, 0, 0, 0, 0, 0, 0,
539
+ 0, 0, 0, 0, 0, 0, 0, 0,
540
+ };
541
+
542
+ static const char ps_decomp_blob[] = {
543
+ 0, 60, 110, 111, 66, 114, 101, 97, 107, 62, 32, 48, 48, 50, 48, 0,
544
+ 60, 99, 111, 109, 112, 97, 116, 62, 32, 48, 48, 50, 48, 32, 48, 51,
545
+ 48, 56, 0, 60, 115, 117, 112, 101, 114, 62, 32, 48, 48, 54, 49, 0,
546
+ 60, 99, 111, 109, 112, 97, 116, 62, 32, 48, 48, 50, 48, 32, 48, 51,
547
+ 48, 52, 0, 60, 115, 117, 112, 101, 114, 62, 32, 48, 48, 51, 50, 0,
548
+ 60, 115, 117, 112, 101, 114, 62, 32, 48, 48, 51, 51, 0, 60, 99, 111,
549
+ 109, 112, 97, 116, 62, 32, 48, 48, 50, 48, 32, 48, 51, 48, 49, 0,
550
+ 60, 99, 111, 109, 112, 97, 116, 62, 32, 48, 51, 66, 67, 0, 60, 99,
551
+ 111, 109, 112, 97, 116, 62, 32, 48, 48, 50, 48, 32, 48, 51, 50, 55,
552
+ 0, 60, 115, 117, 112, 101, 114, 62, 32, 48, 48, 51, 49, 0, 60, 115,
553
+ 117, 112, 101, 114, 62, 32, 48, 48, 54, 70, 0, 60, 102, 114, 97, 99,
554
+ 116, 105, 111, 110, 62, 32, 48, 48, 51, 49, 32, 50, 48, 52, 52, 32,
555
+ 48, 48, 51, 52, 0, 60, 102, 114, 97, 99, 116, 105, 111, 110, 62, 32,
556
+ 48, 48, 51, 49, 32, 50, 48, 52, 52, 32, 48, 48, 51, 50, 0, 60,
557
+ 102, 114, 97, 99, 116, 105, 111, 110, 62, 32, 48, 48, 51, 51, 32, 50,
558
+ 48, 52, 52, 32, 48, 48, 51, 52, 0, 48, 48, 52, 49, 32, 48, 51,
559
+ 48, 48, 0, 48, 48, 52, 49, 32, 48, 51, 48, 49, 0, 48, 48, 52,
560
+ 49, 32, 48, 51, 48, 50, 0, 48, 48, 52, 49, 32, 48, 51, 48, 51,
561
+ 0, 48, 48, 52, 49, 32, 48, 51, 48, 56, 0, 48, 48, 52, 49, 32,
562
+ 48, 51, 48, 65, 0, 48, 48, 52, 51, 32, 48, 51, 50, 55, 0, 48,
563
+ 48, 52, 53, 32, 48, 51, 48, 48, 0, 48, 48, 52, 53, 32, 48, 51,
564
+ 48, 49, 0, 48, 48, 52, 53, 32, 48, 51, 48, 50, 0, 48, 48, 52,
565
+ 53, 32, 48, 51, 48, 56, 0, 48, 48, 52, 57, 32, 48, 51, 48, 48,
566
+ 0, 48, 48, 52, 57, 32, 48, 51, 48, 49, 0, 48, 48, 52, 57, 32,
567
+ 48, 51, 48, 50, 0, 48, 48, 52, 57, 32, 48, 51, 48, 56, 0, 48,
568
+ 48, 52, 69, 32, 48, 51, 48, 51, 0, 48, 48, 52, 70, 32, 48, 51,
569
+ 48, 48, 0, 48, 48, 52, 70, 32, 48, 51, 48, 49, 0, 48, 48, 52,
570
+ 70, 32, 48, 51, 48, 50, 0, 48, 48, 52, 70, 32, 48, 51, 48, 51,
571
+ 0, 48, 48, 52, 70, 32, 48, 51, 48, 56, 0, 48, 48, 53, 53, 32,
572
+ 48, 51, 48, 48, 0, 48, 48, 53, 53, 32, 48, 51, 48, 49, 0, 48,
573
+ 48, 53, 53, 32, 48, 51, 48, 50, 0, 48, 48, 53, 53, 32, 48, 51,
574
+ 48, 56, 0, 48, 48, 53, 57, 32, 48, 51, 48, 49, 0, 48, 48, 54,
575
+ 49, 32, 48, 51, 48, 48, 0, 48, 48, 54, 49, 32, 48, 51, 48, 49,
576
+ 0, 48, 48, 54, 49, 32, 48, 51, 48, 50, 0, 48, 48, 54, 49, 32,
577
+ 48, 51, 48, 51, 0, 48, 48, 54, 49, 32, 48, 51, 48, 56, 0, 48,
578
+ 48, 54, 49, 32, 48, 51, 48, 65, 0, 48, 48, 54, 51, 32, 48, 51,
579
+ 50, 55, 0, 48, 48, 54, 53, 32, 48, 51, 48, 48, 0, 48, 48, 54,
580
+ 53, 32, 48, 51, 48, 49, 0, 48, 48, 54, 53, 32, 48, 51, 48, 50,
581
+ 0, 48, 48, 54, 53, 32, 48, 51, 48, 56, 0, 48, 48, 54, 57, 32,
582
+ 48, 51, 48, 48, 0, 48, 48, 54, 57, 32, 48, 51, 48, 49, 0, 48,
583
+ 48, 54, 57, 32, 48, 51, 48, 50, 0, 48, 48, 54, 57, 32, 48, 51,
584
+ 48, 56, 0, 48, 48, 54, 69, 32, 48, 51, 48, 51, 0, 48, 48, 54,
585
+ 70, 32, 48, 51, 48, 48, 0, 48, 48, 54, 70, 32, 48, 51, 48, 49,
586
+ 0, 48, 48, 54, 70, 32, 48, 51, 48, 50, 0, 48, 48, 54, 70, 32,
587
+ 48, 51, 48, 51, 0, 48, 48, 54, 70, 32, 48, 51, 48, 56, 0, 48,
588
+ 48, 55, 53, 32, 48, 51, 48, 48, 0, 48, 48, 55, 53, 32, 48, 51,
589
+ 48, 49, 0, 48, 48, 55, 53, 32, 48, 51, 48, 50, 0, 48, 48, 55,
590
+ 53, 32, 48, 51, 48, 56, 0, 48, 48, 55, 57, 32, 48, 51, 48, 49,
591
+ 0, 48, 48, 55, 57, 32, 48, 51, 48, 56, 0,
592
+ };
593
+ static const uint16_t ps_decomp_off[256] = {
594
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
595
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
596
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
597
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
598
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
599
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
600
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
601
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
602
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
603
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
604
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
605
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
606
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
607
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
608
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
609
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
610
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
611
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
612
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
613
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
614
+ 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
615
+ 0x0010, 0x0000, 0x0023, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030,
616
+ 0x0000, 0x0000, 0x0043, 0x0050, 0x005d, 0x0070, 0x0000, 0x0000,
617
+ 0x007e, 0x0091, 0x009e, 0x0000, 0x00ab, 0x00c5, 0x00df, 0x0000,
618
+ 0x00f9, 0x0103, 0x010d, 0x0117, 0x0121, 0x012b, 0x0000, 0x0135,
619
+ 0x013f, 0x0149, 0x0153, 0x015d, 0x0167, 0x0171, 0x017b, 0x0185,
620
+ 0x0000, 0x018f, 0x0199, 0x01a3, 0x01ad, 0x01b7, 0x01c1, 0x0000,
621
+ 0x0000, 0x01cb, 0x01d5, 0x01df, 0x01e9, 0x01f3, 0x0000, 0x0000,
622
+ 0x01fd, 0x0207, 0x0211, 0x021b, 0x0225, 0x022f, 0x0000, 0x0239,
623
+ 0x0243, 0x024d, 0x0257, 0x0261, 0x026b, 0x0275, 0x027f, 0x0289,
624
+ 0x0000, 0x0293, 0x029d, 0x02a7, 0x02b1, 0x02bb, 0x02c5, 0x0000,
625
+ 0x0000, 0x02cf, 0x02d9, 0x02e3, 0x02ed, 0x02f7, 0x0000, 0x0301,
626
+ };
627
+ static const uint8_t ps_decomp_len[256] = {
628
+ 0, 0, 0, 0, 0, 0, 0, 0,
629
+ 0, 0, 0, 0, 0, 0, 0, 0,
630
+ 0, 0, 0, 0, 0, 0, 0, 0,
631
+ 0, 0, 0, 0, 0, 0, 0, 0,
632
+ 0, 0, 0, 0, 0, 0, 0, 0,
633
+ 0, 0, 0, 0, 0, 0, 0, 0,
634
+ 0, 0, 0, 0, 0, 0, 0, 0,
635
+ 0, 0, 0, 0, 0, 0, 0, 0,
636
+ 0, 0, 0, 0, 0, 0, 0, 0,
637
+ 0, 0, 0, 0, 0, 0, 0, 0,
638
+ 0, 0, 0, 0, 0, 0, 0, 0,
639
+ 0, 0, 0, 0, 0, 0, 0, 0,
640
+ 0, 0, 0, 0, 0, 0, 0, 0,
641
+ 0, 0, 0, 0, 0, 0, 0, 0,
642
+ 0, 0, 0, 0, 0, 0, 0, 0,
643
+ 0, 0, 0, 0, 0, 0, 0, 0,
644
+ 0, 0, 0, 0, 0, 0, 0, 0,
645
+ 0, 0, 0, 0, 0, 0, 0, 0,
646
+ 0, 0, 0, 0, 0, 0, 0, 0,
647
+ 0, 0, 0, 0, 0, 0, 0, 0,
648
+ 14, 0, 0, 0, 0, 0, 0, 0,
649
+ 18, 0, 12, 0, 0, 0, 0, 18,
650
+ 0, 0, 12, 12, 18, 13, 0, 0,
651
+ 18, 12, 12, 0, 25, 25, 25, 0,
652
+ 9, 9, 9, 9, 9, 9, 0, 9,
653
+ 9, 9, 9, 9, 9, 9, 9, 9,
654
+ 0, 9, 9, 9, 9, 9, 9, 0,
655
+ 0, 9, 9, 9, 9, 9, 0, 0,
656
+ 9, 9, 9, 9, 9, 9, 0, 9,
657
+ 9, 9, 9, 9, 9, 9, 9, 9,
658
+ 0, 9, 9, 9, 9, 9, 9, 0,
659
+ 0, 9, 9, 9, 9, 9, 0, 9,
660
+ };
661
+
662
+ static const char ps_name_blob[] = {
663
+ 83, 80, 65, 67, 69, 0, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79,
664
+ 78, 32, 77, 65, 82, 75, 0, 81, 85, 79, 84, 65, 84, 73, 79, 78,
665
+ 32, 77, 65, 82, 75, 0, 78, 85, 77, 66, 69, 82, 32, 83, 73, 71,
666
+ 78, 0, 68, 79, 76, 76, 65, 82, 32, 83, 73, 71, 78, 0, 80, 69,
667
+ 82, 67, 69, 78, 84, 32, 83, 73, 71, 78, 0, 65, 77, 80, 69, 82,
668
+ 83, 65, 78, 68, 0, 65, 80, 79, 83, 84, 82, 79, 80, 72, 69, 0,
669
+ 76, 69, 70, 84, 32, 80, 65, 82, 69, 78, 84, 72, 69, 83, 73, 83,
670
+ 0, 82, 73, 71, 72, 84, 32, 80, 65, 82, 69, 78, 84, 72, 69, 83,
671
+ 73, 83, 0, 65, 83, 84, 69, 82, 73, 83, 75, 0, 80, 76, 85, 83,
672
+ 32, 83, 73, 71, 78, 0, 67, 79, 77, 77, 65, 0, 72, 89, 80, 72,
673
+ 69, 78, 45, 77, 73, 78, 85, 83, 0, 70, 85, 76, 76, 32, 83, 84,
674
+ 79, 80, 0, 83, 79, 76, 73, 68, 85, 83, 0, 68, 73, 71, 73, 84,
675
+ 32, 90, 69, 82, 79, 0, 68, 73, 71, 73, 84, 32, 79, 78, 69, 0,
676
+ 68, 73, 71, 73, 84, 32, 84, 87, 79, 0, 68, 73, 71, 73, 84, 32,
677
+ 84, 72, 82, 69, 69, 0, 68, 73, 71, 73, 84, 32, 70, 79, 85, 82,
678
+ 0, 68, 73, 71, 73, 84, 32, 70, 73, 86, 69, 0, 68, 73, 71, 73,
679
+ 84, 32, 83, 73, 88, 0, 68, 73, 71, 73, 84, 32, 83, 69, 86, 69,
680
+ 78, 0, 68, 73, 71, 73, 84, 32, 69, 73, 71, 72, 84, 0, 68, 73,
681
+ 71, 73, 84, 32, 78, 73, 78, 69, 0, 67, 79, 76, 79, 78, 0, 83,
682
+ 69, 77, 73, 67, 79, 76, 79, 78, 0, 76, 69, 83, 83, 45, 84, 72,
683
+ 65, 78, 32, 83, 73, 71, 78, 0, 69, 81, 85, 65, 76, 83, 32, 83,
684
+ 73, 71, 78, 0, 71, 82, 69, 65, 84, 69, 82, 45, 84, 72, 65, 78,
685
+ 32, 83, 73, 71, 78, 0, 81, 85, 69, 83, 84, 73, 79, 78, 32, 77,
686
+ 65, 82, 75, 0, 67, 79, 77, 77, 69, 82, 67, 73, 65, 76, 32, 65,
687
+ 84, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32,
688
+ 76, 69, 84, 84, 69, 82, 32, 65, 0, 76, 65, 84, 73, 78, 32, 67,
689
+ 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 66, 0,
690
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
691
+ 84, 84, 69, 82, 32, 67, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
692
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 68, 0, 76, 65,
693
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
694
+ 69, 82, 32, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
695
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 70, 0, 76, 65, 84, 73,
696
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
697
+ 32, 71, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
698
+ 32, 76, 69, 84, 84, 69, 82, 32, 72, 0, 76, 65, 84, 73, 78, 32,
699
+ 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73,
700
+ 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76,
701
+ 69, 84, 84, 69, 82, 32, 74, 0, 76, 65, 84, 73, 78, 32, 67, 65,
702
+ 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 75, 0, 76,
703
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
704
+ 84, 69, 82, 32, 76, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
705
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 77, 0, 76, 65, 84,
706
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
707
+ 82, 32, 78, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65,
708
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 0, 76, 65, 84, 73, 78,
709
+ 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32,
710
+ 80, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32,
711
+ 76, 69, 84, 84, 69, 82, 32, 81, 0, 76, 65, 84, 73, 78, 32, 67,
712
+ 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 82, 0,
713
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
714
+ 84, 84, 69, 82, 32, 83, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
715
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 84, 0, 76, 65,
716
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
717
+ 69, 82, 32, 85, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
718
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 86, 0, 76, 65, 84, 73,
719
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
720
+ 32, 87, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
721
+ 32, 76, 69, 84, 84, 69, 82, 32, 88, 0, 76, 65, 84, 73, 78, 32,
722
+ 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 89,
723
+ 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76,
724
+ 69, 84, 84, 69, 82, 32, 90, 0, 76, 69, 70, 84, 32, 83, 81, 85,
725
+ 65, 82, 69, 32, 66, 82, 65, 67, 75, 69, 84, 0, 82, 69, 86, 69,
726
+ 82, 83, 69, 32, 83, 79, 76, 73, 68, 85, 83, 0, 82, 73, 71, 72,
727
+ 84, 32, 83, 81, 85, 65, 82, 69, 32, 66, 82, 65, 67, 75, 69, 84,
728
+ 0, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 32, 65, 67, 67, 69,
729
+ 78, 84, 0, 76, 79, 87, 32, 76, 73, 78, 69, 0, 71, 82, 65, 86,
730
+ 69, 32, 65, 67, 67, 69, 78, 84, 0, 76, 65, 84, 73, 78, 32, 83,
731
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 0, 76, 65,
732
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
733
+ 32, 66, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
734
+ 69, 84, 84, 69, 82, 32, 67, 0, 76, 65, 84, 73, 78, 32, 83, 77,
735
+ 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 68, 0, 76, 65, 84,
736
+ 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32,
737
+ 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69,
738
+ 84, 84, 69, 82, 32, 70, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65,
739
+ 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 71, 0, 76, 65, 84, 73,
740
+ 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 72,
741
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
742
+ 84, 69, 82, 32, 73, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76,
743
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 74, 0, 76, 65, 84, 73, 78,
744
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 75, 0,
745
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
746
+ 69, 82, 32, 76, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76,
747
+ 32, 76, 69, 84, 84, 69, 82, 32, 77, 0, 76, 65, 84, 73, 78, 32,
748
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 78, 0, 76,
749
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
750
+ 82, 32, 79, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
751
+ 76, 69, 84, 84, 69, 82, 32, 80, 0, 76, 65, 84, 73, 78, 32, 83,
752
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 81, 0, 76, 65,
753
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
754
+ 32, 82, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
755
+ 69, 84, 84, 69, 82, 32, 83, 0, 76, 65, 84, 73, 78, 32, 83, 77,
756
+ 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 84, 0, 76, 65, 84,
757
+ 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32,
758
+ 85, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69,
759
+ 84, 84, 69, 82, 32, 86, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65,
760
+ 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 87, 0, 76, 65, 84, 73,
761
+ 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 88,
762
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
763
+ 84, 69, 82, 32, 89, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76,
764
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 90, 0, 76, 69, 70, 84, 32,
765
+ 67, 85, 82, 76, 89, 32, 66, 82, 65, 67, 75, 69, 84, 0, 86, 69,
766
+ 82, 84, 73, 67, 65, 76, 32, 76, 73, 78, 69, 0, 82, 73, 71, 72,
767
+ 84, 32, 67, 85, 82, 76, 89, 32, 66, 82, 65, 67, 75, 69, 84, 0,
768
+ 84, 73, 76, 68, 69, 0, 78, 79, 45, 66, 82, 69, 65, 75, 32, 83,
769
+ 80, 65, 67, 69, 0, 73, 78, 86, 69, 82, 84, 69, 68, 32, 69, 88,
770
+ 67, 76, 65, 77, 65, 84, 73, 79, 78, 32, 77, 65, 82, 75, 0, 67,
771
+ 69, 78, 84, 32, 83, 73, 71, 78, 0, 80, 79, 85, 78, 68, 32, 83,
772
+ 73, 71, 78, 0, 67, 85, 82, 82, 69, 78, 67, 89, 32, 83, 73, 71,
773
+ 78, 0, 89, 69, 78, 32, 83, 73, 71, 78, 0, 66, 82, 79, 75, 69,
774
+ 78, 32, 66, 65, 82, 0, 83, 69, 67, 84, 73, 79, 78, 32, 83, 73,
775
+ 71, 78, 0, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 67, 79, 80,
776
+ 89, 82, 73, 71, 72, 84, 32, 83, 73, 71, 78, 0, 70, 69, 77, 73,
777
+ 78, 73, 78, 69, 32, 79, 82, 68, 73, 78, 65, 76, 32, 73, 78, 68,
778
+ 73, 67, 65, 84, 79, 82, 0, 76, 69, 70, 84, 45, 80, 79, 73, 78,
779
+ 84, 73, 78, 71, 32, 68, 79, 85, 66, 76, 69, 32, 65, 78, 71, 76,
780
+ 69, 32, 81, 85, 79, 84, 65, 84, 73, 79, 78, 32, 77, 65, 82, 75,
781
+ 0, 78, 79, 84, 32, 83, 73, 71, 78, 0, 83, 79, 70, 84, 32, 72,
782
+ 89, 80, 72, 69, 78, 0, 82, 69, 71, 73, 83, 84, 69, 82, 69, 68,
783
+ 32, 83, 73, 71, 78, 0, 77, 65, 67, 82, 79, 78, 0, 68, 69, 71,
784
+ 82, 69, 69, 32, 83, 73, 71, 78, 0, 80, 76, 85, 83, 45, 77, 73,
785
+ 78, 85, 83, 32, 83, 73, 71, 78, 0, 83, 85, 80, 69, 82, 83, 67,
786
+ 82, 73, 80, 84, 32, 84, 87, 79, 0, 83, 85, 80, 69, 82, 83, 67,
787
+ 82, 73, 80, 84, 32, 84, 72, 82, 69, 69, 0, 65, 67, 85, 84, 69,
788
+ 32, 65, 67, 67, 69, 78, 84, 0, 77, 73, 67, 82, 79, 32, 83, 73,
789
+ 71, 78, 0, 80, 73, 76, 67, 82, 79, 87, 32, 83, 73, 71, 78, 0,
790
+ 77, 73, 68, 68, 76, 69, 32, 68, 79, 84, 0, 67, 69, 68, 73, 76,
791
+ 76, 65, 0, 83, 85, 80, 69, 82, 83, 67, 82, 73, 80, 84, 32, 79,
792
+ 78, 69, 0, 77, 65, 83, 67, 85, 76, 73, 78, 69, 32, 79, 82, 68,
793
+ 73, 78, 65, 76, 32, 73, 78, 68, 73, 67, 65, 84, 79, 82, 0, 82,
794
+ 73, 71, 72, 84, 45, 80, 79, 73, 78, 84, 73, 78, 71, 32, 68, 79,
795
+ 85, 66, 76, 69, 32, 65, 78, 71, 76, 69, 32, 81, 85, 79, 84, 65,
796
+ 84, 73, 79, 78, 32, 77, 65, 82, 75, 0, 86, 85, 76, 71, 65, 82,
797
+ 32, 70, 82, 65, 67, 84, 73, 79, 78, 32, 79, 78, 69, 32, 81, 85,
798
+ 65, 82, 84, 69, 82, 0, 86, 85, 76, 71, 65, 82, 32, 70, 82, 65,
799
+ 67, 84, 73, 79, 78, 32, 79, 78, 69, 32, 72, 65, 76, 70, 0, 86,
800
+ 85, 76, 71, 65, 82, 32, 70, 82, 65, 67, 84, 73, 79, 78, 32, 84,
801
+ 72, 82, 69, 69, 32, 81, 85, 65, 82, 84, 69, 82, 83, 0, 73, 78,
802
+ 86, 69, 82, 84, 69, 68, 32, 81, 85, 69, 83, 84, 73, 79, 78, 32,
803
+ 77, 65, 82, 75, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
804
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72,
805
+ 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
806
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73,
807
+ 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67,
808
+ 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32,
809
+ 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0,
810
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
811
+ 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68,
812
+ 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32,
813
+ 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 68, 73,
814
+ 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 67, 65,
815
+ 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87,
816
+ 73, 84, 72, 32, 82, 73, 78, 71, 32, 65, 66, 79, 86, 69, 0, 76,
817
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
818
+ 84, 69, 82, 32, 65, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
819
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 67, 32, 87, 73,
820
+ 84, 72, 32, 67, 69, 68, 73, 76, 76, 65, 0, 76, 65, 84, 73, 78,
821
+ 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32,
822
+ 69, 32, 87, 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84,
823
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
824
+ 82, 32, 69, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76,
825
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
826
+ 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85,
827
+ 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
828
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32, 87, 73, 84,
829
+ 72, 32, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73,
830
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
831
+ 32, 73, 32, 87, 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65,
832
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
833
+ 69, 82, 32, 73, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0,
834
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
835
+ 84, 84, 69, 82, 32, 73, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67,
836
+ 85, 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
837
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 32, 87, 73,
838
+ 84, 72, 32, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84,
839
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
840
+ 82, 32, 69, 84, 72, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
841
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 78, 32, 87, 73, 84,
842
+ 72, 32, 84, 73, 76, 68, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65,
843
+ 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87,
844
+ 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32,
845
+ 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79,
846
+ 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73,
847
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
848
+ 32, 79, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76,
849
+ 69, 88, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
850
+ 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 84,
851
+ 73, 76, 68, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
852
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87, 73, 84, 72,
853
+ 32, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 77, 85, 76, 84, 73,
854
+ 80, 76, 73, 67, 65, 84, 73, 79, 78, 32, 83, 73, 71, 78, 0, 76,
855
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
856
+ 84, 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 83, 84, 82, 79, 75,
857
+ 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32,
858
+ 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 71, 82,
859
+ 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65,
860
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32,
861
+ 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
862
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84,
863
+ 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76, 65, 84,
864
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
865
+ 82, 32, 85, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69, 83,
866
+ 73, 83, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
867
+ 32, 76, 69, 84, 84, 69, 82, 32, 89, 32, 87, 73, 84, 72, 32, 65,
868
+ 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
869
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 84, 72, 79, 82, 78, 0,
870
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
871
+ 69, 82, 32, 83, 72, 65, 82, 80, 32, 83, 0, 76, 65, 84, 73, 78,
872
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32,
873
+ 87, 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78,
874
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32,
875
+ 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78,
876
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32,
877
+ 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0,
878
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
879
+ 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0,
880
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
881
+ 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69,
882
+ 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
883
+ 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 82, 73,
884
+ 78, 71, 32, 65, 66, 79, 86, 69, 0, 76, 65, 84, 73, 78, 32, 83,
885
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 69, 0, 76,
886
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
887
+ 82, 32, 67, 32, 87, 73, 84, 72, 32, 67, 69, 68, 73, 76, 76, 65,
888
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
889
+ 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32, 71, 82, 65, 86, 69,
890
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
891
+ 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69,
892
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
893
+ 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85,
894
+ 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76,
895
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32,
896
+ 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32,
897
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 32, 87,
898
+ 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32,
899
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 32, 87,
900
+ 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32,
901
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 32, 87,
902
+ 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76,
903
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
904
+ 82, 32, 73, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69, 83,
905
+ 73, 83, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
906
+ 69, 84, 84, 69, 82, 32, 69, 84, 72, 0, 76, 65, 84, 73, 78, 32,
907
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 78, 32, 87,
908
+ 73, 84, 72, 32, 84, 73, 76, 68, 69, 0, 76, 65, 84, 73, 78, 32,
909
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87,
910
+ 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32,
911
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87,
912
+ 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32,
913
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87,
914
+ 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76,
915
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
916
+ 82, 32, 79, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0, 76,
917
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
918
+ 82, 32, 79, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69, 83,
919
+ 73, 83, 0, 68, 73, 86, 73, 83, 73, 79, 78, 32, 83, 73, 71, 78,
920
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
921
+ 84, 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 83, 84, 82, 79, 75,
922
+ 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69,
923
+ 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 71, 82, 65, 86,
924
+ 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69,
925
+ 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84,
926
+ 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69,
927
+ 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67,
928
+ 85, 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65,
929
+ 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72,
930
+ 32, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78,
931
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 89, 32,
932
+ 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78,
933
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 84, 72,
934
+ 79, 82, 78, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
935
+ 76, 69, 84, 84, 69, 82, 32, 89, 32, 87, 73, 84, 72, 32, 68, 73,
936
+ 65, 69, 82, 69, 83, 73, 83, 0,
937
+ };
938
+ static const uint16_t ps_name_off[256] = {
939
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
940
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
941
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
942
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
943
+ 0x0000, 0x0006, 0x0017, 0x0026, 0x0032, 0x003e, 0x004b, 0x0055,
944
+ 0x0060, 0x0071, 0x0083, 0x008c, 0x0096, 0x009c, 0x00a9, 0x00b3,
945
+ 0x00bb, 0x00c6, 0x00d0, 0x00da, 0x00e6, 0x00f1, 0x00fc, 0x0106,
946
+ 0x0112, 0x011e, 0x0129, 0x012f, 0x0139, 0x0148, 0x0154, 0x0166,
947
+ 0x0174, 0x0182, 0x0199, 0x01b0, 0x01c7, 0x01de, 0x01f5, 0x020c,
948
+ 0x0223, 0x023a, 0x0251, 0x0268, 0x027f, 0x0296, 0x02ad, 0x02c4,
949
+ 0x02db, 0x02f2, 0x0309, 0x0320, 0x0337, 0x034e, 0x0365, 0x037c,
950
+ 0x0393, 0x03aa, 0x03c1, 0x03d8, 0x03ec, 0x03fc, 0x0411, 0x0423,
951
+ 0x042c, 0x0439, 0x044e, 0x0463, 0x0478, 0x048d, 0x04a2, 0x04b7,
952
+ 0x04cc, 0x04e1, 0x04f6, 0x050b, 0x0520, 0x0535, 0x054a, 0x055f,
953
+ 0x0574, 0x0589, 0x059e, 0x05b3, 0x05c8, 0x05dd, 0x05f2, 0x0607,
954
+ 0x061c, 0x0631, 0x0646, 0x065b, 0x066e, 0x067c, 0x0690, 0xffff,
955
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
956
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
957
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
958
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
959
+ 0x0696, 0x06a5, 0x06bf, 0x06c9, 0x06d4, 0x06e2, 0x06eb, 0x06f6,
960
+ 0x0703, 0x070d, 0x071c, 0x0737, 0x0761, 0x076a, 0x0776, 0x0786,
961
+ 0x078d, 0x0799, 0x07a9, 0x07b9, 0x07cb, 0x07d8, 0x07e3, 0x07f0,
962
+ 0x07fb, 0x0803, 0x0813, 0x082f, 0x085a, 0x0876, 0x088f, 0x08ae,
963
+ 0x08c5, 0x08e7, 0x0909, 0x0930, 0x0952, 0x0978, 0x099f, 0x09b7,
964
+ 0x09db, 0x09fd, 0x0a1f, 0x0a46, 0x0a6c, 0x0a8e, 0x0ab0, 0x0ad7,
965
+ 0x0afd, 0x0b16, 0x0b38, 0x0b5a, 0x0b7c, 0x0ba3, 0x0bc5, 0x0beb,
966
+ 0x0bff, 0x0c22, 0x0c44, 0x0c66, 0x0c8d, 0x0cb3, 0x0cd5, 0x0cf0,
967
+ 0x0d0b, 0x0d2b, 0x0d4b, 0x0d70, 0x0d90, 0x0db4, 0x0dd9, 0x0def,
968
+ 0x0e11, 0x0e31, 0x0e51, 0x0e76, 0x0e9a, 0x0eba, 0x0eda, 0x0eff,
969
+ 0x0f23, 0x0f3a, 0x0f5a, 0x0f7a, 0x0f9a, 0x0fbf, 0x0fdf, 0x1003,
970
+ 0x1011, 0x1032, 0x1052, 0x1072, 0x1097, 0x10bb, 0x10db, 0x10f4,
971
+ };
972
+ static const uint8_t ps_name_len[256] = {
973
+ 0, 0, 0, 0, 0, 0, 0, 0,
974
+ 0, 0, 0, 0, 0, 0, 0, 0,
975
+ 0, 0, 0, 0, 0, 0, 0, 0,
976
+ 0, 0, 0, 0, 0, 0, 0, 0,
977
+ 5, 16, 14, 11, 11, 12, 9, 10,
978
+ 16, 17, 8, 9, 5, 12, 9, 7,
979
+ 10, 9, 9, 11, 10, 10, 9, 11,
980
+ 11, 10, 5, 9, 14, 11, 17, 13,
981
+ 13, 22, 22, 22, 22, 22, 22, 22,
982
+ 22, 22, 22, 22, 22, 22, 22, 22,
983
+ 22, 22, 22, 22, 22, 22, 22, 22,
984
+ 22, 22, 22, 19, 15, 20, 17, 8,
985
+ 12, 20, 20, 20, 20, 20, 20, 20,
986
+ 20, 20, 20, 20, 20, 20, 20, 20,
987
+ 20, 20, 20, 20, 20, 20, 20, 20,
988
+ 20, 20, 20, 18, 13, 19, 5, 0,
989
+ 0, 0, 0, 0, 0, 0, 0, 0,
990
+ 0, 0, 0, 0, 0, 0, 0, 0,
991
+ 0, 0, 0, 0, 0, 0, 0, 0,
992
+ 0, 0, 0, 0, 0, 0, 0, 0,
993
+ 14, 25, 9, 10, 13, 8, 10, 12,
994
+ 9, 14, 26, 41, 8, 11, 15, 6,
995
+ 11, 15, 15, 17, 12, 10, 12, 10,
996
+ 7, 15, 27, 42, 27, 24, 30, 22,
997
+ 33, 33, 38, 33, 37, 38, 23, 35,
998
+ 33, 33, 38, 37, 33, 33, 38, 37,
999
+ 24, 33, 33, 33, 38, 33, 37, 19,
1000
+ 34, 33, 33, 38, 37, 33, 26, 26,
1001
+ 31, 31, 36, 31, 35, 36, 21, 33,
1002
+ 31, 31, 36, 35, 31, 31, 36, 35,
1003
+ 22, 31, 31, 31, 36, 31, 35, 13,
1004
+ 32, 31, 31, 36, 35, 31, 24, 35,
1005
+ };
1006
+
1007
+ static const char ps_look_blob[] = {
1008
+ 65, 67, 85, 84, 69, 32, 65, 67, 67, 69, 78, 84, 0, 65, 77, 80,
1009
+ 69, 82, 83, 65, 78, 68, 0, 65, 80, 79, 83, 84, 82, 79, 80, 72,
1010
+ 69, 0, 65, 83, 84, 69, 82, 73, 83, 75, 0, 66, 82, 79, 75, 69,
1011
+ 78, 32, 66, 65, 82, 0, 67, 69, 68, 73, 76, 76, 65, 0, 67, 69,
1012
+ 78, 84, 32, 83, 73, 71, 78, 0, 67, 73, 82, 67, 85, 77, 70, 76,
1013
+ 69, 88, 32, 65, 67, 67, 69, 78, 84, 0, 67, 79, 76, 79, 78, 0,
1014
+ 67, 79, 77, 77, 65, 0, 67, 79, 77, 77, 69, 82, 67, 73, 65, 76,
1015
+ 32, 65, 84, 0, 67, 79, 80, 89, 82, 73, 71, 72, 84, 32, 83, 73,
1016
+ 71, 78, 0, 67, 85, 82, 82, 69, 78, 67, 89, 32, 83, 73, 71, 78,
1017
+ 0, 68, 69, 71, 82, 69, 69, 32, 83, 73, 71, 78, 0, 68, 73, 65,
1018
+ 69, 82, 69, 83, 73, 83, 0, 68, 73, 71, 73, 84, 32, 69, 73, 71,
1019
+ 72, 84, 0, 68, 73, 71, 73, 84, 32, 70, 73, 86, 69, 0, 68, 73,
1020
+ 71, 73, 84, 32, 70, 79, 85, 82, 0, 68, 73, 71, 73, 84, 32, 78,
1021
+ 73, 78, 69, 0, 68, 73, 71, 73, 84, 32, 79, 78, 69, 0, 68, 73,
1022
+ 71, 73, 84, 32, 83, 69, 86, 69, 78, 0, 68, 73, 71, 73, 84, 32,
1023
+ 83, 73, 88, 0, 68, 73, 71, 73, 84, 32, 84, 72, 82, 69, 69, 0,
1024
+ 68, 73, 71, 73, 84, 32, 84, 87, 79, 0, 68, 73, 71, 73, 84, 32,
1025
+ 90, 69, 82, 79, 0, 68, 73, 86, 73, 83, 73, 79, 78, 32, 83, 73,
1026
+ 71, 78, 0, 68, 79, 76, 76, 65, 82, 32, 83, 73, 71, 78, 0, 69,
1027
+ 81, 85, 65, 76, 83, 32, 83, 73, 71, 78, 0, 69, 88, 67, 76, 65,
1028
+ 77, 65, 84, 73, 79, 78, 32, 77, 65, 82, 75, 0, 70, 69, 77, 73,
1029
+ 78, 73, 78, 69, 32, 79, 82, 68, 73, 78, 65, 76, 32, 73, 78, 68,
1030
+ 73, 67, 65, 84, 79, 82, 0, 70, 85, 76, 76, 32, 83, 84, 79, 80,
1031
+ 0, 71, 82, 65, 86, 69, 32, 65, 67, 67, 69, 78, 84, 0, 71, 82,
1032
+ 69, 65, 84, 69, 82, 45, 84, 72, 65, 78, 32, 83, 73, 71, 78, 0,
1033
+ 72, 89, 80, 72, 69, 78, 45, 77, 73, 78, 85, 83, 0, 73, 78, 86,
1034
+ 69, 82, 84, 69, 68, 32, 69, 88, 67, 76, 65, 77, 65, 84, 73, 79,
1035
+ 78, 32, 77, 65, 82, 75, 0, 73, 78, 86, 69, 82, 84, 69, 68, 32,
1036
+ 81, 85, 69, 83, 84, 73, 79, 78, 32, 77, 65, 82, 75, 0, 76, 65,
1037
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1038
+ 69, 82, 32, 65, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
1039
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72,
1040
+ 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
1041
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73,
1042
+ 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76, 65,
1043
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1044
+ 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69,
1045
+ 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65,
1046
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72, 32,
1047
+ 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
1048
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84,
1049
+ 72, 32, 82, 73, 78, 71, 32, 65, 66, 79, 86, 69, 0, 76, 65, 84,
1050
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
1051
+ 82, 32, 65, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0, 76,
1052
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
1053
+ 84, 69, 82, 32, 65, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
1054
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 66, 0, 76, 65,
1055
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1056
+ 69, 82, 32, 67, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
1057
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 67, 32, 87, 73, 84, 72,
1058
+ 32, 67, 69, 68, 73, 76, 76, 65, 0, 76, 65, 84, 73, 78, 32, 67,
1059
+ 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 68, 0,
1060
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
1061
+ 84, 84, 69, 82, 32, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
1062
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32, 87, 73,
1063
+ 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67,
1064
+ 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32,
1065
+ 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0,
1066
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
1067
+ 84, 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69,
1068
+ 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
1069
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32, 87, 73, 84,
1070
+ 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65,
1071
+ 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 84, 72,
1072
+ 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76,
1073
+ 69, 84, 84, 69, 82, 32, 70, 0, 76, 65, 84, 73, 78, 32, 67, 65,
1074
+ 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 71, 0, 76,
1075
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
1076
+ 84, 69, 82, 32, 72, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
1077
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 0, 76, 65, 84,
1078
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
1079
+ 82, 32, 73, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76,
1080
+ 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84,
1081
+ 84, 69, 82, 32, 73, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85,
1082
+ 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
1083
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 32, 87, 73, 84,
1084
+ 72, 32, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73,
1085
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
1086
+ 32, 73, 32, 87, 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65,
1087
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1088
+ 69, 82, 32, 74, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
1089
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 75, 0, 76, 65, 84, 73,
1090
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
1091
+ 32, 76, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
1092
+ 32, 76, 69, 84, 84, 69, 82, 32, 77, 0, 76, 65, 84, 73, 78, 32,
1093
+ 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 78,
1094
+ 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76,
1095
+ 69, 84, 84, 69, 82, 32, 78, 32, 87, 73, 84, 72, 32, 84, 73, 76,
1096
+ 68, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
1097
+ 32, 76, 69, 84, 84, 69, 82, 32, 79, 0, 76, 65, 84, 73, 78, 32,
1098
+ 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79,
1099
+ 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73,
1100
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
1101
+ 32, 79, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76,
1102
+ 69, 88, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
1103
+ 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 68,
1104
+ 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 67,
1105
+ 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32,
1106
+ 87, 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78,
1107
+ 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32,
1108
+ 79, 32, 87, 73, 84, 72, 32, 83, 84, 82, 79, 75, 69, 0, 76, 65,
1109
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1110
+ 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0,
1111
+ 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69,
1112
+ 84, 84, 69, 82, 32, 80, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
1113
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 81, 0, 76, 65,
1114
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1115
+ 69, 82, 32, 82, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
1116
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 83, 0, 76, 65, 84, 73,
1117
+ 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82,
1118
+ 32, 84, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76,
1119
+ 32, 76, 69, 84, 84, 69, 82, 32, 84, 72, 79, 82, 78, 0, 76, 65,
1120
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1121
+ 69, 82, 32, 85, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84,
1122
+ 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72,
1123
+ 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80,
1124
+ 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73,
1125
+ 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76, 65,
1126
+ 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84,
1127
+ 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69,
1128
+ 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65,
1129
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32,
1130
+ 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73,
1131
+ 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32, 86, 0, 76, 65, 84,
1132
+ 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69,
1133
+ 82, 32, 87, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65,
1134
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 88, 0, 76, 65, 84, 73, 78,
1135
+ 32, 67, 65, 80, 73, 84, 65, 76, 32, 76, 69, 84, 84, 69, 82, 32,
1136
+ 89, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65, 76, 32,
1137
+ 76, 69, 84, 84, 69, 82, 32, 89, 32, 87, 73, 84, 72, 32, 65, 67,
1138
+ 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 67, 65, 80, 73, 84, 65,
1139
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 90, 0, 76, 65, 84, 73, 78,
1140
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 0,
1141
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
1142
+ 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0,
1143
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
1144
+ 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77,
1145
+ 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76,
1146
+ 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73, 84, 72, 32, 68,
1147
+ 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 83,
1148
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73,
1149
+ 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 83,
1150
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 65, 32, 87, 73,
1151
+ 84, 72, 32, 82, 73, 78, 71, 32, 65, 66, 79, 86, 69, 0, 76, 65,
1152
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1153
+ 32, 65, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0, 76, 65,
1154
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1155
+ 32, 65, 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
1156
+ 76, 69, 84, 84, 69, 82, 32, 66, 0, 76, 65, 84, 73, 78, 32, 83,
1157
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 67, 0, 76, 65,
1158
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1159
+ 32, 67, 32, 87, 73, 84, 72, 32, 67, 69, 68, 73, 76, 76, 65, 0,
1160
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
1161
+ 69, 82, 32, 68, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76,
1162
+ 32, 76, 69, 84, 84, 69, 82, 32, 69, 0, 76, 65, 84, 73, 78, 32,
1163
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32, 87,
1164
+ 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32,
1165
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 69, 32, 87,
1166
+ 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76,
1167
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
1168
+ 82, 32, 69, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69, 83,
1169
+ 73, 83, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
1170
+ 69, 84, 84, 69, 82, 32, 69, 32, 87, 73, 84, 72, 32, 71, 82, 65,
1171
+ 86, 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
1172
+ 69, 84, 84, 69, 82, 32, 69, 84, 72, 0, 76, 65, 84, 73, 78, 32,
1173
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 70, 0, 76,
1174
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
1175
+ 82, 32, 71, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
1176
+ 76, 69, 84, 84, 69, 82, 32, 72, 0, 76, 65, 84, 73, 78, 32, 83,
1177
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 0, 76, 65,
1178
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1179
+ 32, 73, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65,
1180
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1181
+ 32, 73, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85, 77, 70, 76,
1182
+ 69, 88, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
1183
+ 69, 84, 84, 69, 82, 32, 73, 32, 87, 73, 84, 72, 32, 68, 73, 65,
1184
+ 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65,
1185
+ 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 73, 32, 87, 73, 84, 72,
1186
+ 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65,
1187
+ 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 74, 0, 76, 65, 84, 73,
1188
+ 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 75,
1189
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
1190
+ 84, 69, 82, 32, 76, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76,
1191
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 77, 0, 76, 65, 84, 73, 78,
1192
+ 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 78, 0,
1193
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
1194
+ 69, 82, 32, 78, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0,
1195
+ 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84,
1196
+ 69, 82, 32, 79, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76,
1197
+ 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 65,
1198
+ 67, 85, 84, 69, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76,
1199
+ 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87, 73, 84, 72, 32, 67,
1200
+ 73, 82, 67, 85, 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32,
1201
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 79, 32, 87,
1202
+ 73, 84, 72, 32, 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65,
1203
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1204
+ 32, 79, 32, 87, 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65,
1205
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1206
+ 32, 79, 32, 87, 73, 84, 72, 32, 83, 84, 82, 79, 75, 69, 0, 76,
1207
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
1208
+ 82, 32, 79, 32, 87, 73, 84, 72, 32, 84, 73, 76, 68, 69, 0, 76,
1209
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
1210
+ 82, 32, 80, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
1211
+ 76, 69, 84, 84, 69, 82, 32, 81, 0, 76, 65, 84, 73, 78, 32, 83,
1212
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 82, 0, 76, 65,
1213
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1214
+ 32, 83, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
1215
+ 69, 84, 84, 69, 82, 32, 83, 72, 65, 82, 80, 32, 83, 0, 76, 65,
1216
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1217
+ 32, 84, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76,
1218
+ 69, 84, 84, 69, 82, 32, 84, 72, 79, 82, 78, 0, 76, 65, 84, 73,
1219
+ 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 85,
1220
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
1221
+ 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69,
1222
+ 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84,
1223
+ 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32, 67, 73, 82, 67, 85,
1224
+ 77, 70, 76, 69, 88, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76,
1225
+ 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87, 73, 84, 72, 32,
1226
+ 68, 73, 65, 69, 82, 69, 83, 73, 83, 0, 76, 65, 84, 73, 78, 32,
1227
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 85, 32, 87,
1228
+ 73, 84, 72, 32, 71, 82, 65, 86, 69, 0, 76, 65, 84, 73, 78, 32,
1229
+ 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 86, 0, 76,
1230
+ 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69,
1231
+ 82, 32, 87, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32,
1232
+ 76, 69, 84, 84, 69, 82, 32, 88, 0, 76, 65, 84, 73, 78, 32, 83,
1233
+ 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82, 32, 89, 0, 76, 65,
1234
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1235
+ 32, 89, 32, 87, 73, 84, 72, 32, 65, 67, 85, 84, 69, 0, 76, 65,
1236
+ 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69, 84, 84, 69, 82,
1237
+ 32, 89, 32, 87, 73, 84, 72, 32, 68, 73, 65, 69, 82, 69, 83, 73,
1238
+ 83, 0, 76, 65, 84, 73, 78, 32, 83, 77, 65, 76, 76, 32, 76, 69,
1239
+ 84, 84, 69, 82, 32, 90, 0, 76, 69, 70, 84, 32, 67, 85, 82, 76,
1240
+ 89, 32, 66, 82, 65, 67, 75, 69, 84, 0, 76, 69, 70, 84, 32, 80,
1241
+ 65, 82, 69, 78, 84, 72, 69, 83, 73, 83, 0, 76, 69, 70, 84, 32,
1242
+ 83, 81, 85, 65, 82, 69, 32, 66, 82, 65, 67, 75, 69, 84, 0, 76,
1243
+ 69, 70, 84, 45, 80, 79, 73, 78, 84, 73, 78, 71, 32, 68, 79, 85,
1244
+ 66, 76, 69, 32, 65, 78, 71, 76, 69, 32, 81, 85, 79, 84, 65, 84,
1245
+ 73, 79, 78, 32, 77, 65, 82, 75, 0, 76, 69, 83, 83, 45, 84, 72,
1246
+ 65, 78, 32, 83, 73, 71, 78, 0, 76, 79, 87, 32, 76, 73, 78, 69,
1247
+ 0, 77, 65, 67, 82, 79, 78, 0, 77, 65, 83, 67, 85, 76, 73, 78,
1248
+ 69, 32, 79, 82, 68, 73, 78, 65, 76, 32, 73, 78, 68, 73, 67, 65,
1249
+ 84, 79, 82, 0, 77, 73, 67, 82, 79, 32, 83, 73, 71, 78, 0, 77,
1250
+ 73, 68, 68, 76, 69, 32, 68, 79, 84, 0, 77, 85, 76, 84, 73, 80,
1251
+ 76, 73, 67, 65, 84, 73, 79, 78, 32, 83, 73, 71, 78, 0, 78, 79,
1252
+ 45, 66, 82, 69, 65, 75, 32, 83, 80, 65, 67, 69, 0, 78, 79, 84,
1253
+ 32, 83, 73, 71, 78, 0, 78, 85, 77, 66, 69, 82, 32, 83, 73, 71,
1254
+ 78, 0, 80, 69, 82, 67, 69, 78, 84, 32, 83, 73, 71, 78, 0, 80,
1255
+ 73, 76, 67, 82, 79, 87, 32, 83, 73, 71, 78, 0, 80, 76, 85, 83,
1256
+ 32, 83, 73, 71, 78, 0, 80, 76, 85, 83, 45, 77, 73, 78, 85, 83,
1257
+ 32, 83, 73, 71, 78, 0, 80, 79, 85, 78, 68, 32, 83, 73, 71, 78,
1258
+ 0, 81, 85, 69, 83, 84, 73, 79, 78, 32, 77, 65, 82, 75, 0, 81,
1259
+ 85, 79, 84, 65, 84, 73, 79, 78, 32, 77, 65, 82, 75, 0, 82, 69,
1260
+ 71, 73, 83, 84, 69, 82, 69, 68, 32, 83, 73, 71, 78, 0, 82, 69,
1261
+ 86, 69, 82, 83, 69, 32, 83, 79, 76, 73, 68, 85, 83, 0, 82, 73,
1262
+ 71, 72, 84, 32, 67, 85, 82, 76, 89, 32, 66, 82, 65, 67, 75, 69,
1263
+ 84, 0, 82, 73, 71, 72, 84, 32, 80, 65, 82, 69, 78, 84, 72, 69,
1264
+ 83, 73, 83, 0, 82, 73, 71, 72, 84, 32, 83, 81, 85, 65, 82, 69,
1265
+ 32, 66, 82, 65, 67, 75, 69, 84, 0, 82, 73, 71, 72, 84, 45, 80,
1266
+ 79, 73, 78, 84, 73, 78, 71, 32, 68, 79, 85, 66, 76, 69, 32, 65,
1267
+ 78, 71, 76, 69, 32, 81, 85, 79, 84, 65, 84, 73, 79, 78, 32, 77,
1268
+ 65, 82, 75, 0, 83, 69, 67, 84, 73, 79, 78, 32, 83, 73, 71, 78,
1269
+ 0, 83, 69, 77, 73, 67, 79, 76, 79, 78, 0, 83, 79, 70, 84, 32,
1270
+ 72, 89, 80, 72, 69, 78, 0, 83, 79, 76, 73, 68, 85, 83, 0, 83,
1271
+ 80, 65, 67, 69, 0, 83, 85, 80, 69, 82, 83, 67, 82, 73, 80, 84,
1272
+ 32, 79, 78, 69, 0, 83, 85, 80, 69, 82, 83, 67, 82, 73, 80, 84,
1273
+ 32, 84, 72, 82, 69, 69, 0, 83, 85, 80, 69, 82, 83, 67, 82, 73,
1274
+ 80, 84, 32, 84, 87, 79, 0, 84, 73, 76, 68, 69, 0, 86, 69, 82,
1275
+ 84, 73, 67, 65, 76, 32, 76, 73, 78, 69, 0, 86, 85, 76, 71, 65,
1276
+ 82, 32, 70, 82, 65, 67, 84, 73, 79, 78, 32, 79, 78, 69, 32, 72,
1277
+ 65, 76, 70, 0, 86, 85, 76, 71, 65, 82, 32, 70, 82, 65, 67, 84,
1278
+ 73, 79, 78, 32, 79, 78, 69, 32, 81, 85, 65, 82, 84, 69, 82, 0,
1279
+ 86, 85, 76, 71, 65, 82, 32, 70, 82, 65, 67, 84, 73, 79, 78, 32,
1280
+ 84, 72, 82, 69, 69, 32, 81, 85, 65, 82, 84, 69, 82, 83, 0, 89,
1281
+ 69, 78, 32, 83, 73, 71, 78, 0,
1282
+ };
1283
+ static const uint16_t ps_look_off[191] = {
1284
+ 0x0000, 0x000d, 0x0017, 0x0022, 0x002b, 0x0036, 0x003e, 0x0048,
1285
+ 0x005a, 0x0060, 0x0066, 0x0074, 0x0083, 0x0091, 0x009d, 0x00a7,
1286
+ 0x00b3, 0x00be, 0x00c9, 0x00d4, 0x00de, 0x00ea, 0x00f4, 0x0100,
1287
+ 0x010a, 0x0115, 0x0123, 0x012f, 0x013b, 0x014c, 0x0167, 0x0171,
1288
+ 0x017e, 0x0190, 0x019d, 0x01b7, 0x01ce, 0x01e5, 0x0207, 0x022e,
1289
+ 0x0254, 0x0276, 0x029d, 0x02bf, 0x02d7, 0x02ee, 0x0305, 0x0329,
1290
+ 0x0340, 0x0357, 0x0379, 0x03a0, 0x03c6, 0x03e8, 0x0401, 0x0418,
1291
+ 0x042f, 0x0446, 0x045d, 0x047f, 0x04a6, 0x04cc, 0x04ee, 0x0505,
1292
+ 0x051c, 0x0533, 0x054a, 0x0561, 0x0583, 0x059a, 0x05bc, 0x05e3,
1293
+ 0x0609, 0x062b, 0x064e, 0x0670, 0x0687, 0x069e, 0x06b5, 0x06cc,
1294
+ 0x06e3, 0x06fe, 0x0715, 0x0737, 0x075e, 0x0784, 0x07a6, 0x07bd,
1295
+ 0x07d4, 0x07eb, 0x0802, 0x0824, 0x083b, 0x0850, 0x0870, 0x0895,
1296
+ 0x08b9, 0x08d9, 0x08fe, 0x091e, 0x0934, 0x0949, 0x095e, 0x0980,
1297
+ 0x0995, 0x09aa, 0x09ca, 0x09ef, 0x0a13, 0x0a33, 0x0a4a, 0x0a5f,
1298
+ 0x0a74, 0x0a89, 0x0a9e, 0x0abe, 0x0ae3, 0x0b07, 0x0b27, 0x0b3c,
1299
+ 0x0b51, 0x0b66, 0x0b7b, 0x0b90, 0x0bb0, 0x0bc5, 0x0be5, 0x0c0a,
1300
+ 0x0c2e, 0x0c4e, 0x0c6f, 0x0c8f, 0x0ca4, 0x0cb9, 0x0cce, 0x0ce3,
1301
+ 0x0cfe, 0x0d13, 0x0d2c, 0x0d41, 0x0d61, 0x0d86, 0x0daa, 0x0dca,
1302
+ 0x0ddf, 0x0df4, 0x0e09, 0x0e1e, 0x0e3e, 0x0e62, 0x0e77, 0x0e8a,
1303
+ 0x0e9b, 0x0eaf, 0x0ed9, 0x0ee8, 0x0ef1, 0x0ef8, 0x0f14, 0x0f1f,
1304
+ 0x0f2a, 0x0f3e, 0x0f4d, 0x0f56, 0x0f62, 0x0f6f, 0x0f7c, 0x0f86,
1305
+ 0x0f96, 0x0fa1, 0x0faf, 0x0fbe, 0x0fce, 0x0fde, 0x0ff2, 0x1004,
1306
+ 0x1019, 0x1044, 0x1051, 0x105b, 0x1067, 0x106f, 0x1075, 0x1085,
1307
+ 0x1097, 0x10a7, 0x10ad, 0x10bb, 0x10d4, 0x10f0, 0x110f,
1308
+ };
1309
+ static const uint8_t ps_look_len[191] = {
1310
+ 12, 9, 10, 8, 10, 7, 9, 17,
1311
+ 5, 5, 13, 14, 13, 11, 9, 11,
1312
+ 10, 10, 10, 9, 11, 9, 11, 9,
1313
+ 10, 13, 11, 11, 16, 26, 9, 12,
1314
+ 17, 12, 25, 22, 22, 33, 38, 37,
1315
+ 33, 38, 33, 23, 22, 22, 35, 22,
1316
+ 22, 33, 38, 37, 33, 24, 22, 22,
1317
+ 22, 22, 33, 38, 37, 33, 22, 22,
1318
+ 22, 22, 22, 33, 22, 33, 38, 37,
1319
+ 33, 34, 33, 22, 22, 22, 22, 22,
1320
+ 26, 22, 33, 38, 37, 33, 22, 22,
1321
+ 22, 22, 33, 22, 20, 31, 36, 35,
1322
+ 31, 36, 31, 21, 20, 20, 33, 20,
1323
+ 20, 31, 36, 35, 31, 22, 20, 20,
1324
+ 20, 20, 31, 36, 35, 31, 20, 20,
1325
+ 20, 20, 20, 31, 20, 31, 36, 35,
1326
+ 31, 32, 31, 20, 20, 20, 20, 26,
1327
+ 20, 24, 20, 31, 36, 35, 31, 20,
1328
+ 20, 20, 20, 31, 35, 20, 18, 16,
1329
+ 19, 41, 14, 8, 6, 27, 10, 10,
1330
+ 19, 14, 8, 11, 12, 12, 9, 15,
1331
+ 10, 13, 14, 15, 15, 19, 17, 20,
1332
+ 42, 12, 9, 11, 7, 5, 15, 17,
1333
+ 15, 5, 13, 24, 27, 30, 8,
1334
+ };
1335
+ static const uint16_t ps_look_cp[191] = {
1336
+ 0x00b4, 0x0026, 0x0027, 0x002a, 0x00a6, 0x00b8, 0x00a2, 0x005e,
1337
+ 0x003a, 0x002c, 0x0040, 0x00a9, 0x00a4, 0x00b0, 0x00a8, 0x0038,
1338
+ 0x0035, 0x0034, 0x0039, 0x0031, 0x0037, 0x0036, 0x0033, 0x0032,
1339
+ 0x0030, 0x00f7, 0x0024, 0x003d, 0x0021, 0x00aa, 0x002e, 0x0060,
1340
+ 0x003e, 0x002d, 0x00a1, 0x00bf, 0x0041, 0x00c1, 0x00c2, 0x00c4,
1341
+ 0x00c0, 0x00c5, 0x00c3, 0x00c6, 0x0042, 0x0043, 0x00c7, 0x0044,
1342
+ 0x0045, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00d0, 0x0046, 0x0047,
1343
+ 0x0048, 0x0049, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x004a, 0x004b,
1344
+ 0x004c, 0x004d, 0x004e, 0x00d1, 0x004f, 0x00d3, 0x00d4, 0x00d6,
1345
+ 0x00d2, 0x00d8, 0x00d5, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
1346
+ 0x00de, 0x0055, 0x00da, 0x00db, 0x00dc, 0x00d9, 0x0056, 0x0057,
1347
+ 0x0058, 0x0059, 0x00dd, 0x005a, 0x0061, 0x00e1, 0x00e2, 0x00e4,
1348
+ 0x00e0, 0x00e5, 0x00e3, 0x00e6, 0x0062, 0x0063, 0x00e7, 0x0064,
1349
+ 0x0065, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00f0, 0x0066, 0x0067,
1350
+ 0x0068, 0x0069, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x006a, 0x006b,
1351
+ 0x006c, 0x006d, 0x006e, 0x00f1, 0x006f, 0x00f3, 0x00f4, 0x00f6,
1352
+ 0x00f2, 0x00f8, 0x00f5, 0x0070, 0x0071, 0x0072, 0x0073, 0x00df,
1353
+ 0x0074, 0x00fe, 0x0075, 0x00fa, 0x00fb, 0x00fc, 0x00f9, 0x0076,
1354
+ 0x0077, 0x0078, 0x0079, 0x00fd, 0x00ff, 0x007a, 0x007b, 0x0028,
1355
+ 0x005b, 0x00ab, 0x003c, 0x005f, 0x00af, 0x00ba, 0x00b5, 0x00b7,
1356
+ 0x00d7, 0x00a0, 0x00ac, 0x0023, 0x0025, 0x00b6, 0x002b, 0x00b1,
1357
+ 0x00a3, 0x003f, 0x0022, 0x00ae, 0x005c, 0x007d, 0x0029, 0x005d,
1358
+ 0x00bb, 0x00a7, 0x003b, 0x00ad, 0x002f, 0x0020, 0x00b9, 0x00b3,
1359
+ 0x00b2, 0x007e, 0x007c, 0x00bd, 0x00bc, 0x00be, 0x00a5,
1360
+ };
1361
+ static const int ps_look_n = 191;
1362
+ static const char ps_unidata_version[] = "16.0.0";
1363
+
1364
+
1365
+ static unsigned char ps_one(int64_t n, const char *s, const char *what) {
1366
+ if (n != 1) {
1367
+ ps_raise_cstr(PS_VALUE, what);
1368
+ }
1369
+ return (unsigned char)s[0];
1370
+ }
1371
+
1372
+ static int ps_form_id(int64_t n, const char *s) {
1373
+ if (n == 3 && memcmp(s, "NFC", 3) == 0) {
1374
+ return 0;
1375
+ }
1376
+ if (n == 3 && memcmp(s, "NFD", 3) == 0) {
1377
+ return 1;
1378
+ }
1379
+ if (n == 4 && memcmp(s, "NFKC", 4) == 0) {
1380
+ return 2;
1381
+ }
1382
+ if (n == 4 && memcmp(s, "NFKD", 4) == 0) {
1383
+ return 3;
1384
+ }
1385
+ ps_raise_cstr(PS_VALUE, "invalid normalization form");
1386
+ return -1;
1387
+ }
1388
+
1389
+ static void ps_put_code(const char *blob, uint16_t off, uint8_t len, PsBuf *out) {
1390
+ ps_buf_copy(out, blob + off, (int64_t)len);
1391
+ }
1392
+
1393
+ void ps_unicode_category(int64_t n, const char *s, PsBuf *out) {
1394
+ unsigned char c = ps_one(n, s, "unicodedata.category() argument is one character");
1395
+ char buf[2];
1396
+ uint16_t packed = ps_cat[c];
1397
+ buf[0] = (char)(packed >> 8);
1398
+ buf[1] = (char)packed;
1399
+ ps_buf_copy(out, buf, 2);
1400
+ }
1401
+
1402
+ int64_t ps_unicode_combining(int64_t n, const char *s) {
1403
+ unsigned char c = ps_one(n, s, "unicodedata.combining() argument is one character");
1404
+ return (int64_t)ps_ccc[c];
1405
+ }
1406
+
1407
+ void ps_unicode_normalize(int64_t fn, const char *form, int64_t n, const char *s, PsBuf *out) {
1408
+ int form_id = ps_form_id(fn, form);
1409
+ PsGrow grow;
1410
+ int64_t i;
1411
+ ps_grow_init(&grow);
1412
+ for (i = 0; i < n; i++) {
1413
+ unsigned char c = (unsigned char)s[i];
1414
+ uint16_t tag = ps_norm[form_id][c];
1415
+ if (tag & 0x8000u) {
1416
+ ps_raise_cstr(PS_VALUE, "normalization leaves Latin-1");
1417
+ }
1418
+ if (tag & 0x4000u) {
1419
+ ps_grow_byte(&grow, (unsigned char)tag);
1420
+ } else {
1421
+ ps_grow_byte(&grow, c);
1422
+ }
1423
+ }
1424
+ ps_grow_finish(&grow, out);
1425
+ }
1426
+
1427
+ int32_t ps_unicode_is_normalized(int64_t fn, const char *form, int64_t n, const char *s) {
1428
+ int form_id = ps_form_id(fn, form);
1429
+ int64_t i;
1430
+ for (i = 0; i < n; i++) {
1431
+ unsigned char c = (unsigned char)s[i];
1432
+ if (ps_norm[form_id][c] != 0) {
1433
+ return 0;
1434
+ }
1435
+ }
1436
+ return 1;
1437
+ }
1438
+
1439
+ void ps_unicode_bidirectional(int64_t n, const char *s, PsBuf *out) {
1440
+ unsigned char c = ps_one(n, s, "unicodedata.bidirectional() argument is one character");
1441
+ ps_put_code(ps_bidi_blob, ps_bidi_off[c], ps_bidi_len[c], out);
1442
+ }
1443
+
1444
+ void ps_unicode_east_asian_width(int64_t n, const char *s, PsBuf *out) {
1445
+ unsigned char c = ps_one(n, s, "unicodedata.east_asian_width() argument is one character");
1446
+ ps_put_code(ps_eaw_blob, ps_eaw_off[c], ps_eaw_len[c], out);
1447
+ }
1448
+
1449
+ int32_t ps_unicode_mirrored(int64_t n, const char *s) {
1450
+ unsigned char c = ps_one(n, s, "unicodedata.mirrored() argument is one character");
1451
+ return ps_mirrored[c] ? 1 : 0;
1452
+ }
1453
+
1454
+ int64_t ps_unicode_decimal(int64_t n, const char *s) {
1455
+ unsigned char c = ps_one(n, s, "unicodedata.decimal() argument is one character");
1456
+ if (ps_decimal[c] < 0) {
1457
+ ps_raise_cstr(PS_VALUE, "not a decimal");
1458
+ }
1459
+ return (int64_t)ps_decimal[c];
1460
+ }
1461
+
1462
+ int64_t ps_unicode_digit(int64_t n, const char *s) {
1463
+ unsigned char c = ps_one(n, s, "unicodedata.digit() argument is one character");
1464
+ if (ps_digit[c] < 0) {
1465
+ ps_raise_cstr(PS_VALUE, "not a digit");
1466
+ }
1467
+ return (int64_t)ps_digit[c];
1468
+ }
1469
+
1470
+ double ps_unicode_numeric(int64_t n, const char *s) {
1471
+ unsigned char c = ps_one(n, s, "unicodedata.numeric() argument is one character");
1472
+ if (!ps_has_num[c]) {
1473
+ ps_raise_cstr(PS_VALUE, "not a numeric character");
1474
+ }
1475
+ return ps_numeric[c];
1476
+ }
1477
+
1478
+ void ps_unicode_decomposition(int64_t n, const char *s, PsBuf *out) {
1479
+ unsigned char c = ps_one(n, s, "unicodedata.decomposition() argument is one character");
1480
+ ps_put_code(ps_decomp_blob, ps_decomp_off[c], ps_decomp_len[c], out);
1481
+ }
1482
+
1483
+ void ps_unicode_name(int64_t n, const char *s, int64_t has_default, int64_t dn, const char *def, PsBuf *out) {
1484
+ unsigned char c = ps_one(n, s, "unicodedata.name() argument is one character");
1485
+ if (ps_name_len[c] == 0) {
1486
+ if (has_default) {
1487
+ ps_buf_copy(out, def, dn);
1488
+ return;
1489
+ }
1490
+ ps_raise_cstr(PS_VALUE, "no such name");
1491
+ }
1492
+ ps_put_code(ps_name_blob, ps_name_off[c], ps_name_len[c], out);
1493
+ }
1494
+
1495
+ void ps_unicode_lookup(int64_t n, const char *s, PsBuf *out) {
1496
+ int lo = 0;
1497
+ int hi = ps_look_n;
1498
+ while (lo < hi) {
1499
+ int mid = lo + (hi - lo) / 2;
1500
+ int64_t len = (int64_t)ps_look_len[mid];
1501
+ int cmp = memcmp(s, ps_look_blob + ps_look_off[mid], (size_t)(n < len ? n : len));
1502
+ if (cmp == 0) {
1503
+ cmp = (n > len) - (n < len);
1504
+ }
1505
+ if (cmp == 0) {
1506
+ unsigned char ch = (unsigned char)ps_look_cp[mid];
1507
+ ps_buf_copy(out, (const char *)&ch, 1);
1508
+ return;
1509
+ }
1510
+ if (cmp < 0) {
1511
+ hi = mid;
1512
+ } else {
1513
+ lo = mid + 1;
1514
+ }
1515
+ }
1516
+ ps_raise_cstr(PS_VALUE, "undefined character name");
1517
+ }
1518
+
1519
+ void ps_unicode_version(PsBuf *out) {
1520
+ ps_buf_copy(out, ps_unidata_version, (int64_t)strlen(ps_unidata_version));
1521
+ }