flatulent 0.0.1

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 (87) hide show
  1. data/README +41 -0
  2. data/flatulent-0.0.0.gem +0 -0
  3. data/gemspec.rb +28 -0
  4. data/lib/flatulent.rb +239 -0
  5. data/lib/flatulent/attributes.rb +79 -0
  6. data/lib/flatulent/fontfiles/banner.flf +2494 -0
  7. data/lib/flatulent/fontfiles/big.flf +2204 -0
  8. data/lib/flatulent/fontfiles/block.flf +1691 -0
  9. data/lib/flatulent/fontfiles/bubble.flf +1630 -0
  10. data/lib/flatulent/fontfiles/digital.flf +1286 -0
  11. data/lib/flatulent/fontfiles/ivrit.flf +900 -0
  12. data/lib/flatulent/fontfiles/lean.flf +1691 -0
  13. data/lib/flatulent/fontfiles/mini.flf +899 -0
  14. data/lib/flatulent/fontfiles/mnemonic.flf +3702 -0
  15. data/lib/flatulent/fontfiles/script.flf +1493 -0
  16. data/lib/flatulent/fontfiles/shadow.flf +1097 -0
  17. data/lib/flatulent/fontfiles/slant.flf +1295 -0
  18. data/lib/flatulent/fontfiles/small.flf +1097 -0
  19. data/lib/flatulent/fontfiles/smscript.flf +1097 -0
  20. data/lib/flatulent/fontfiles/smshadow.flf +899 -0
  21. data/lib/flatulent/fontfiles/smslant.flf +1097 -0
  22. data/lib/flatulent/fontfiles/standard.flf +2227 -0
  23. data/lib/flatulent/fontfiles/term.flf +600 -0
  24. data/lib/flatulent/pervasives.rb +32 -0
  25. data/lib/flatulent/text.rb +6 -0
  26. data/lib/flatulent/text/double_metaphone.rb +356 -0
  27. data/lib/flatulent/text/figlet.rb +17 -0
  28. data/lib/flatulent/text/figlet/font.rb +117 -0
  29. data/lib/flatulent/text/figlet/smusher.rb +64 -0
  30. data/lib/flatulent/text/figlet/typesetter.rb +68 -0
  31. data/lib/flatulent/text/levenshtein.rb +65 -0
  32. data/lib/flatulent/text/metaphone.rb +97 -0
  33. data/lib/flatulent/text/porter_stemming.rb +171 -0
  34. data/lib/flatulent/text/soundex.rb +61 -0
  35. data/rails/README +182 -0
  36. data/rails/Rakefile +10 -0
  37. data/rails/app/controllers/application.rb +7 -0
  38. data/rails/app/controllers/flatulent_controller.rb +20 -0
  39. data/rails/app/helpers/application_helper.rb +3 -0
  40. data/rails/app/helpers/flatulent_helper.rb +2 -0
  41. data/rails/config/boot.rb +45 -0
  42. data/rails/config/database.yml +36 -0
  43. data/rails/config/environment.rb +60 -0
  44. data/rails/config/environments/development.rb +21 -0
  45. data/rails/config/environments/production.rb +18 -0
  46. data/rails/config/environments/test.rb +19 -0
  47. data/rails/config/lighttpd.conf +54 -0
  48. data/rails/config/routes.rb +23 -0
  49. data/rails/doc/README_FOR_APP +2 -0
  50. data/rails/log/development.log +950 -0
  51. data/rails/log/fastcgi.crash.log +34 -0
  52. data/rails/log/lighttpd.access.log +65 -0
  53. data/rails/log/lighttpd.error.log +33 -0
  54. data/rails/log/production.log +0 -0
  55. data/rails/log/server.log +0 -0
  56. data/rails/log/test.log +0 -0
  57. data/rails/public/404.html +30 -0
  58. data/rails/public/500.html +30 -0
  59. data/rails/public/dispatch.cgi +10 -0
  60. data/rails/public/dispatch.fcgi +24 -0
  61. data/rails/public/dispatch.rb +10 -0
  62. data/rails/public/favicon.ico +0 -0
  63. data/rails/public/images/rails.png +0 -0
  64. data/rails/public/index.html +277 -0
  65. data/rails/public/javascripts/application.js +2 -0
  66. data/rails/public/javascripts/controls.js +833 -0
  67. data/rails/public/javascripts/dragdrop.js +942 -0
  68. data/rails/public/javascripts/effects.js +1088 -0
  69. data/rails/public/javascripts/prototype.js +2515 -0
  70. data/rails/public/robots.txt +1 -0
  71. data/rails/script/about +3 -0
  72. data/rails/script/breakpointer +3 -0
  73. data/rails/script/console +3 -0
  74. data/rails/script/destroy +3 -0
  75. data/rails/script/generate +3 -0
  76. data/rails/script/performance/benchmarker +3 -0
  77. data/rails/script/performance/profiler +3 -0
  78. data/rails/script/plugin +3 -0
  79. data/rails/script/process/inspector +3 -0
  80. data/rails/script/process/reaper +3 -0
  81. data/rails/script/process/spawner +3 -0
  82. data/rails/script/runner +3 -0
  83. data/rails/script/server +3 -0
  84. data/rails/test/functional/flatulent_controller_test.rb +18 -0
  85. data/rails/test/test_helper.rb +28 -0
  86. data/rails/tmp/sessions/ruby_sess.517c54e2d384126a +0 -0
  87. metadata +174 -0
data/README ADDED
@@ -0,0 +1,41 @@
1
+ NAME
2
+
3
+ flatulent : CAPTCHA for FIGLET.
4
+
5
+ SYNOPSIS
6
+
7
+ the flatulent gem provides brain dead simple ascii art captcha for ruby.
8
+
9
+ URI
10
+
11
+ http://codeforpeople.com/lib/ruby
12
+ http://rubyforge.org/projects/codeforpeople
13
+
14
+ INSTALL
15
+
16
+ gem install flatulent
17
+
18
+ EXAMPLE
19
+
20
+ def index
21
+ if params.has_key? 'flatulent'
22
+ Flatulent.validate! params
23
+ end
24
+
25
+ render :inline => <<-html
26
+ <html><body>
27
+
28
+ #{ Flatulent.form }
29
+
30
+ </body></html>
31
+ html
32
+ end
33
+
34
+ DOCS
35
+
36
+ see source in lib/*
37
+ see example rails project in ./rails
38
+
39
+ ONLINE SAMPLES
40
+
41
+ http://drawohara.tumblr.com/post/4791838
Binary file
data/gemspec.rb ADDED
@@ -0,0 +1,28 @@
1
+
2
+ lib, version = File::basename(File::dirname(File::expand_path(__FILE__))).split %r/-/, 2
3
+
4
+ require 'rubygems'
5
+
6
+ Gem::Specification::new do |spec|
7
+ $VERBOSE = nil
8
+ spec.name = lib
9
+ spec.version = version
10
+ spec.platform = Gem::Platform::RUBY
11
+ spec.summary = lib
12
+
13
+ spec.files = Dir::glob "**/**"
14
+ spec.executables = Dir::glob("bin/*").map{|exe| File::basename exe}
15
+
16
+ spec.require_path = "lib"
17
+ spec.autorequire = lib
18
+
19
+ spec.has_rdoc = File::exist? "doc"
20
+ spec.test_suite_file = "test/#{ lib }.rb" if File::directory? "test"
21
+ #spec.add_dependency 'lib', '>= version'
22
+
23
+ spec.extensions << "extconf.rb" if File::exists? "extconf.rb"
24
+
25
+ spec.author = "Ara T. Howard"
26
+ spec.email = "ara.t.howard@gmail.com"
27
+ spec.homepage = "http://codeforpeople.com/lib/ruby/#{ lib }/"
28
+ end
data/lib/flatulent.rb ADDED
@@ -0,0 +1,239 @@
1
+ require 'digest/md5'
2
+
3
+ libdir = File.expand_path(__FILE__).gsub(%r/\.rb$/, '') + File::SEPARATOR
4
+
5
+ begin
6
+ require 'rubygems'
7
+ rescue LoadError
8
+ end
9
+
10
+ begin
11
+ require 'text/figlet'
12
+ rescue LoadError
13
+ require libdir + 'text/figlet'
14
+ end
15
+
16
+ begin
17
+ require 'pervasives'
18
+ rescue LoadError
19
+ require libdir + 'pervasives'
20
+ end
21
+
22
+ begin
23
+ require 'attributes'
24
+ rescue LoadError
25
+ require libdir + 'attributes'
26
+ end
27
+
28
+ class Flatulent
29
+ singleton_class =
30
+ class << self
31
+ self
32
+ end
33
+
34
+ singleton_class.module_eval do
35
+ attribute('libdir'){ File.expand_path(__FILE__).gsub(%r/\.rb$/, '') }
36
+
37
+ attribute('fontdir'){ File.join libdir, 'fontfiles' }
38
+
39
+ attribute('style'){ Hash[
40
+ 'white-space' => 'pre,nowrap',
41
+ 'font-family' => 'monospace',
42
+ 'font-weight' => 'bold',
43
+ 'display' => 'table',
44
+ 'padding' => '11px',
45
+ 'background' => '#ffc',
46
+ 'color' => 'blue',
47
+ ] }
48
+
49
+ attribute('noise_style'){ Hash[
50
+ 'color' => '#ccc',
51
+ 'font-style' => 'oblique',
52
+ ] }
53
+ end
54
+
55
+ singleton_class.attributes.each{|a| attribute(a){ self.class.send a}}
56
+
57
+ attr 'string'
58
+
59
+ def initialize keywords = {}
60
+ opt = getopts keywords
61
+
62
+ @size = opt[ 'size', 4 ]
63
+ @string = opt[ 'string', generate_random_string ]
64
+ @font = opt[ 'font', 'big' ]
65
+ @noise = opt[ 'noise', 0.04 ]
66
+ @no_table = opt[ 'no_table', false ]
67
+ @id = opt[ 'id', 'flatulent' ]
68
+ @action = opt[ 'action' ]
69
+ @ttl = Integer opt[ 'ttl', 5 * 60 ] # seconds!
70
+
71
+ figlet!
72
+ element!
73
+ form_tags!
74
+ form!
75
+ end
76
+
77
+ def generate_random_string
78
+ chars = ('A' .. 'Z').to_a + ('1' .. '9').to_a ### zero is too much like o/O
79
+ Array.new(@size).map{ chars[rand(chars.size - 1)]}.join #.join(' ')
80
+ end
81
+
82
+ def getopts options
83
+ self.class.getopts options
84
+ end
85
+
86
+ def figlet!
87
+ spaced = @string.split(%r//).join(' ')
88
+ fontfile = File.join fontdir, "#{ @font }.flf"
89
+ font = Text::Figlet::Font.new fontfile
90
+ typesetter = Text::Figlet::Typesetter.new font
91
+ @figlet = typesetter[spaced]
92
+ end
93
+ attr 'figlet'
94
+
95
+ def element!
96
+ rows = []
97
+ rows << (row = [])
98
+ chars = @figlet.split %r//
99
+ size = chars.size
100
+ last = size - 1
101
+
102
+ chars.each_with_index do |char, idx|
103
+ content =
104
+ case char
105
+ when %r/\n/o
106
+ "<br>"
107
+ when %r/\s/o
108
+ "&nbsp;"
109
+ when %r/([^\s])/o
110
+ $1
111
+ end
112
+ row << content
113
+ rows << (row = []) unless idx == last
114
+ end
115
+
116
+ (@noise * chars.size).ceil.times do
117
+ y = rand(rows.size - 1)
118
+ x = rand(rows.first.size - 1)
119
+ next if rows[y][x] == '<br>'
120
+ printable = rand(126 - 33) + 33 + 1
121
+ rows[y][x] = "<span 'style=#{ noise_css }'>#{ printable.chr }</span>"
122
+ end
123
+
124
+ content = rows.join
125
+ @element = "<pre id='#{ @id }_element' style='#{ css }'>#{ content }</pre>"
126
+ end
127
+ attr 'element'
128
+
129
+ def css
130
+ style.map{|kv| kv.join ':'}.join ';'
131
+ end
132
+ def noise_css
133
+ noise_style.map{|kv| kv.join ':'}.join ';'
134
+ end
135
+
136
+ def form_tags!
137
+ n = @string.scan(%r/\w/).size
138
+ @form_tags = <<-html
139
+ #{ element }
140
+ <p id='#{ @id }_instructions'>
141
+ Please enter the #{ n } large characters shown.
142
+ </p>
143
+ <input type='textarea' name='#{ @id }[t]' id='#{ @id }_textarea' />
144
+ <input type='hidden' name='#{ @id }[m]' id='#{ @id }_m' value='#{ md5 }' />
145
+ <input type='hidden' name='#{ @id }[v]' id='#{ @id }_v' value='#{ valid_until }' />
146
+ html
147
+ end
148
+ attr 'form_tags'
149
+
150
+ def md5
151
+ Digest::MD5.hexdigest munge(@string)
152
+ end
153
+
154
+ def munge string
155
+ self.class.munge string
156
+ end
157
+ def self.munge string
158
+ string.downcase.strip.gsub(%r/[0Oo]/, '0') ### note that 0 (zero) looks like O and o
159
+ end
160
+
161
+ def valid_until
162
+ Time.now.to_i + @ttl
163
+ end
164
+
165
+ def form!
166
+ action = "action='#{ @action }'"
167
+ @form = <<-html
168
+ <form method='post' #{ action }>
169
+ #{ form_tags }
170
+ <input type='submit' name='#{ @id }[submit]' id='#{ @id }_submit' value='Submit' />
171
+ </form>
172
+ html
173
+ end
174
+ attr 'form'
175
+ alias_method 'to_html', 'form'
176
+
177
+ def to_html
178
+ @element
179
+ end
180
+
181
+ def to_s
182
+ form
183
+ end
184
+
185
+ class MD5Error < ::StandardError; end
186
+ class TimeToLiveError < ::StandardError; end
187
+ TTLError = TimeToLiveError
188
+
189
+ def self.valid? keywords = {}
190
+ begin
191
+ validate! keywords
192
+ true
193
+ rescue MD5Error, TTLError
194
+ false
195
+ end
196
+ end
197
+
198
+ def self.validate! keywords = {}
199
+ keywords = keywords['flatulent'] if keywords.has_key?('flatulent')
200
+ keywords = keywords[:flatulent] if keywords.has_key?(:flatulent)
201
+
202
+ opts = getopts keywords
203
+
204
+ textarea = opts['t']
205
+ md5 = opts['m']
206
+ timestamp = Integer opts['v']
207
+
208
+ raise MD5Error unless Digest::MD5.hexdigest(munge(textarea)) == md5
209
+ raise TimeToLiveError unless Time.now.utc <= Time.at(timestamp).utc
210
+ true
211
+ end
212
+
213
+ def self.getopts options
214
+ lambda do |key, *default|
215
+ default = default.first
216
+ break options[key] if options.has_key?(key)
217
+ key = key.to_s
218
+ break options[key] if options.has_key?(key)
219
+ key = key.to_sym
220
+ break options[key] if options.has_key?(key)
221
+ break default
222
+ end
223
+ end
224
+
225
+ def self.form options = {}
226
+ new(options).form
227
+ end
228
+ def self.element options = {}
229
+ new(options).element
230
+ end
231
+ def self.form_tags options = {}
232
+ new(options).form_tags
233
+ end
234
+ def self.figlet options = {}
235
+ new(options).figlet
236
+ end
237
+ end
238
+
239
+ def Flatulent(*a, &b) Flatulent.new(*a, &b) end
@@ -0,0 +1,79 @@
1
+ require 'pervasives'
2
+
3
+ module Attributes
4
+ VERSION = '3.5.0'
5
+ def self.version() VERSION end
6
+
7
+ def attributes *a, &b
8
+ unless a.empty?
9
+ hashes, names = a.partition{|x| Hash === x}
10
+
11
+ names_and_defaults = {}
12
+ hashes.each{|h| names_and_defaults.update h}
13
+ names.flatten.compact.each{|name| names_and_defaults.update name => nil}
14
+
15
+ names_and_defaults.each do |name, default|
16
+ init = b || lambda { default }
17
+ ivar, getter, setter, query, banger =
18
+ "@#{ name }", "#{ name }", "#{ name }=", "#{ name }?", "#{ name }!"
19
+
20
+ define_method(setter) do |value|
21
+ __pervasive__('instance_variable_set', ivar, value)
22
+ end
23
+
24
+ define_method(getter) do |*value|
25
+ unless value.empty?
26
+ __pervasive__('send', setter, value.shift)
27
+ else
28
+ defined = __pervasive__('instance_eval', "defined? #{ ivar }")
29
+ __pervasive__('send', setter, __pervasive__('instance_eval', &init)) unless defined
30
+ __pervasive__('instance_variable_get', ivar)
31
+ end
32
+ end
33
+
34
+ define_method(banger) do
35
+ __pervasive__('send', setter, __pervasive__('instance_eval', &init))
36
+ __pervasive__('instance_variable_get', ivar)
37
+ end
38
+
39
+ alias_method query, getter
40
+
41
+ (attributes << name.to_s).uniq!
42
+ attributes
43
+ end
44
+ else
45
+ begin
46
+ __attribute_list__
47
+ rescue NameError
48
+ singleton_class =
49
+ class << self
50
+ self
51
+ end
52
+ klass = self
53
+ singleton_class.module_eval do
54
+ attribute_list = []
55
+ define_method('attribute_list'){ klass == self ? attribute_list : raise(NameError) }
56
+ alias_method '__attribute_list__', 'attribute_list'
57
+ end
58
+ __attribute_list__
59
+ end
60
+ end
61
+ end
62
+
63
+ %w( __attributes__ __attribute__ attribute ).each{|dst| alias_method dst, 'attributes'}
64
+ end
65
+
66
+ class Object
67
+ def attributes *a, &b
68
+ sc =
69
+ class << self
70
+ self
71
+ end
72
+ sc.attributes *a, &b
73
+ end
74
+ %w( __attributes__ __attribute__ attribute ).each{|dst| alias_method dst, 'attributes'}
75
+ end
76
+
77
+ class Module
78
+ include Attributes
79
+ end
@@ -0,0 +1,2494 @@
1
+ flf2a$ 8 7 54 0 12 0 64 185
2
+ banner.flf version 2 by Ryan Youck (youck@cs.uregina.ca)
3
+ (From a unix program called banner)
4
+ I am not responsible for use of this font
5
+ Thanks to Glenn Chappell for his help
6
+ Katakana characters by Vinney Thai <ssfiit@eris.cs.umb.edu>
7
+ Cyrillic characters from "koi8x8" BDF font.
8
+ Date: August 11, 1994
9
+
10
+ Merged by John Cowan <cowan@ccil.org>
11
+ Modified by Paul Burton <solution@earthlink.net> 12/96 to include new parameter
12
+ supported by FIGlet and FIGWin. May also be slightly modified for better use
13
+ of new full-width/kern/smush alternatives, but default output is NOT changed.
14
+ $ $@
15
+ $ $@
16
+ $ $@
17
+ $ $@
18
+ $ $@
19
+ $ $@
20
+ $ $@
21
+ $ $@@
22
+ ###$@
23
+ ###$@
24
+ ###$@
25
+ # $@
26
+ $@
27
+ ###$@
28
+ ###$@
29
+ $@@
30
+ ### ###$@
31
+ ### ###$@
32
+ # # $@
33
+ $ $@
34
+ $ $@
35
+ $@
36
+ $@
37
+ $@@
38
+ # # $@
39
+ # # $@
40
+ #######$@
41
+ # # $@
42
+ #######$@
43
+ # # $@
44
+ # # $@
45
+ $@@
46
+ ##### $@
47
+ # # #$@
48
+ # # $@
49
+ ##### $@
50
+ # #$@
51
+ # # #$@
52
+ ##### $@
53
+ $@@
54
+ ### #$@
55
+ # # # $@
56
+ ### # $@
57
+ # $@
58
+ # ###$@
59
+ # # #$@
60
+ # ###$@
61
+ $@@
62
+ ## $@
63
+ # # $@
64
+ ## $@
65
+ ### $@
66
+ # # #$@
67
+ # # $@
68
+ ### #$@
69
+ $@@
70
+ ###$@
71
+ ###$@
72
+ # $@
73
+ # $@
74
+ $@
75
+ $@
76
+ $@
77
+ $@@
78
+ ##$@
79
+ # $@
80
+ # $@
81
+ # $@
82
+ # $@
83
+ # $@
84
+ ##$@
85
+ $@@
86
+ ## $@
87
+ # $@
88
+ #$@
89
+ #$@
90
+ #$@
91
+ # $@
92
+ ## $@
93
+ $@@
94
+ $@
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
+ # $@
163
+ # $@
164
+ #######$@
165
+ $@@
166
+ ##### $@
167
+ # #$@
168
+ #$@
169
+ ##### $@
170
+ #$@
171
+ # #$@
172
+ ##### $@
173
+ $@@
174
+ # $@
175
+ # # $@
176
+ # # $@
177
+ # # $@
178
+ #######$@
179
+ # $@
180
+ # $@
181
+ $@@
182
+ #######$@
183
+ # $@
184
+ # $@
185
+ ###### $@
186
+ #$@
187
+ # #$@
188
+ ##### $@
189
+ $@@
190
+ ##### $@
191
+ # #$@
192
+ # $@
193
+ ###### $@
194
+ # #$@
195
+ # #$@
196
+ ##### $@
197
+ $@@
198
+ #######$@
199
+ # # $@
200
+ # $@
201
+ # $@
202
+ # $@
203
+ # $@
204
+ # $@
205
+ $@@
206
+ ##### $@
207
+ # #$@
208
+ # #$@
209
+ ##### $@
210
+ # #$@
211
+ # #$@
212
+ ##### $@
213
+ $@@
214
+ ##### $@
215
+ # #$@
216
+ # #$@
217
+ ######$@
218
+ #$@
219
+ # #$@
220
+ ##### $@
221
+ $@@
222
+ # $@
223
+ ###$@
224
+ # $@
225
+ $@
226
+ # $@
227
+ ###$@
228
+ # $@
229
+ $@@
230
+ $@
231
+ ###$@
232
+ ###$@
233
+ $@
234
+ ###$@
235
+ ###$@
236
+ # $@
237
+ # $@@
238
+ #$@
239
+ # $@
240
+ # $@
241
+ # $@
242
+ # $@
243
+ # $@
244
+ #$@
245
+ $@@
246
+ $@
247
+ $@
248
+ #####$@
249
+ $@
250
+ #####$@
251
+ $@
252
+ $@
253
+ $@@
254
+ # $@
255
+ # $@
256
+ # $@
257
+ #$@
258
+ # $@
259
+ # $@
260
+ # $@
261
+ $@@
262
+ ##### $@
263
+ # #$@
264
+ #$@
265
+ ### $@
266
+ # $@
267
+ $@
268
+ # $@
269
+ $@@
270
+ ##### $@
271
+ # #$@
272
+ # ### #$@
273
+ # ### #$@
274
+ # #### $@
275
+ # $@
276
+ ##### $@
277
+ $@@
278
+ # $@
279
+ # # $@
280
+ # # $@
281
+ # #$@
282
+ #######$@
283
+ # #$@
284
+ # #$@
285
+ $@@
286
+ ###### $@
287
+ # #$@
288
+ # #$@
289
+ ###### $@
290
+ # #$@
291
+ # #$@
292
+ ###### $@
293
+ $@@
294
+ ##### $@
295
+ # #$@
296
+ # $@
297
+ # $@
298
+ # $@
299
+ # #$@
300
+ ##### $@
301
+ $@@
302
+ ###### $@
303
+ # #$@
304
+ # #$@
305
+ # #$@
306
+ # #$@
307
+ # #$@
308
+ ###### $@
309
+ $@@
310
+ #######$@
311
+ # $@
312
+ # $@
313
+ ##### $@
314
+ # $@
315
+ # $@
316
+ #######$@
317
+ $@@
318
+ #######$@
319
+ # $@
320
+ # $@
321
+ ##### $@
322
+ # $@
323
+ # $@
324
+ # $@
325
+ $@@
326
+ ##### $@
327
+ # #$@
328
+ # $@
329
+ # ####$@
330
+ # #$@
331
+ # #$@
332
+ ##### $@
333
+ $@@
334
+ # #$@
335
+ # #$@
336
+ # #$@
337
+ #######$@
338
+ # #$@
339
+ # #$@
340
+ # #$@
341
+ $@@
342
+ ###$@
343
+ # $@
344
+ # $@
345
+ # $@
346
+ # $@
347
+ # $@
348
+ ###$@
349
+ $@@
350
+ #$@
351
+ #$@
352
+ #$@
353
+ #$@
354
+ # #$@
355
+ # #$@
356
+ ##### $@
357
+ $@@
358
+ # #$@
359
+ # # $@
360
+ # # $@
361
+ ### $@
362
+ # # $@
363
+ # # $@
364
+ # #$@
365
+ $@@
366
+ # $@
367
+ # $@
368
+ # $@
369
+ # $@
370
+ # $@
371
+ # $@
372
+ #######$@
373
+ $@@
374
+ # #$@
375
+ ## ##$@
376
+ # # # #$@
377
+ # # #$@
378
+ # #$@
379
+ # #$@
380
+ # #$@
381
+ $@@
382
+ # #$@
383
+ ## #$@
384
+ # # #$@
385
+ # # #$@
386
+ # # #$@
387
+ # ##$@
388
+ # #$@
389
+ $@@
390
+ #######$@
391
+ # #$@
392
+ # #$@
393
+ # #$@
394
+ # #$@
395
+ # #$@
396
+ #######$@
397
+ $@@
398
+ ###### $@
399
+ # #$@
400
+ # #$@
401
+ ###### $@
402
+ # $@
403
+ # $@
404
+ # $@
405
+ $@@
406
+ ##### $@
407
+ # #$@
408
+ # #$@
409
+ # #$@
410
+ # # #$@
411
+ # # $@
412
+ #### #$@
413
+ $@@
414
+ ###### $@
415
+ # #$@
416
+ # #$@
417
+ ###### $@
418
+ # # $@
419
+ # # $@
420
+ # #$@
421
+ $@@
422
+ ##### $@
423
+ # #$@
424
+ # $@
425
+ ##### $@
426
+ #$@
427
+ # #$@
428
+ ##### $@
429
+ $@@
430
+ #######$@
431
+ # $@
432
+ # $@
433
+ # $@
434
+ # $@
435
+ # $@
436
+ # $@
437
+ $@@
438
+ # #$@
439
+ # #$@
440
+ # #$@
441
+ # #$@
442
+ # #$@
443
+ # #$@
444
+ ##### $@
445
+ $@@
446
+ # #$@
447
+ # #$@
448
+ # #$@
449
+ # #$@
450
+ # # $@
451
+ # # $@
452
+ # $@
453
+ $@@
454
+ # #$@
455
+ # # #$@
456
+ # # #$@
457
+ # # #$@
458
+ # # #$@
459
+ # # #$@
460
+ ## ## $@
461
+ $@@
462
+ # #$@
463
+ # # $@
464
+ # # $@
465
+ # $@
466
+ # # $@
467
+ # # $@
468
+ # #$@
469
+ $@@
470
+ # #$@
471
+ # # $@
472
+ # # $@
473
+ # $@
474
+ # $@
475
+ # $@
476
+ # $@
477
+ $@@
478
+ #######$@
479
+ # $@
480
+ # $@
481
+ # $@
482
+ # $@
483
+ # $@
484
+ #######$@
485
+ $@@
486
+ #####$@
487
+ # $@
488
+ # $@
489
+ # $@
490
+ # $@
491
+ # $@
492
+ #####$@
493
+ $@@
494
+ # $@
495
+ # $@
496
+ # $@
497
+ # $@
498
+ # $@
499
+ # $@
500
+ #$@
501
+ $@@
502
+ #####$@
503
+ #$@
504
+ #$@
505
+ #$@
506
+ #$@
507
+ #$@
508
+ #####$@
509
+ $@@
510
+ # $@
511
+ # # $@
512
+ # #$@
513
+ $@
514
+ $@
515
+ $@
516
+ $@
517
+ $@@
518
+ $@
519
+ $@
520
+ $@
521
+ $@
522
+ $@
523
+ $@
524
+ $@
525
+ #######$@@
526
+ ###$@
527
+ ###$@
528
+ # $@
529
+ #$@
530
+ $@
531
+ $@
532
+ $@
533
+ $@@
534
+ $@
535
+ ## $@
536
+ # # $@
537
+ # #$@
538
+ ######$@
539
+ # #$@
540
+ # #$@
541
+ $@@
542
+ $@
543
+ ##### $@
544
+ # #$@
545
+ ##### $@
546
+ # #$@
547
+ # #$@
548
+ ##### $@
549
+ $@@
550
+ $@
551
+ #### $@
552
+ # #$@
553
+ # $@
554
+ # $@
555
+ # #$@
556
+ #### $@
557
+ $@@
558
+ $@
559
+ ##### $@
560
+ # #$@
561
+ # #$@
562
+ # #$@
563
+ # #$@
564
+ ##### $@
565
+ $@@
566
+ $@
567
+ ######$@
568
+ # $@
569
+ ##### $@
570
+ # $@
571
+ # $@
572
+ ######$@
573
+ $@@
574
+ $@
575
+ ######$@
576
+ # $@
577
+ ##### $@
578
+ # $@
579
+ # $@
580
+ # $@
581
+ $@@
582
+ $@
583
+ #### $@
584
+ # #$@
585
+ # $@
586
+ # ###$@
587
+ # #$@
588
+ #### $@
589
+ $@@
590
+ $@
591
+ # #$@
592
+ # #$@
593
+ ######$@
594
+ # #$@
595
+ # #$@
596
+ # #$@
597
+ $@@
598
+ $@
599
+ #$@
600
+ #$@
601
+ #$@
602
+ #$@
603
+ #$@
604
+ #$@
605
+ $@@
606
+ $@
607
+ #$@
608
+ #$@
609
+ #$@
610
+ #$@
611
+ # #$@
612
+ #### $@
613
+ $@@
614
+ $@
615
+ # #$@
616
+ # # $@
617
+ #### $@
618
+ # # $@
619
+ # # $@
620
+ # #$@
621
+ $@@
622
+ $@
623
+ # $@
624
+ # $@
625
+ # $@
626
+ # $@
627
+ # $@
628
+ ######$@
629
+ $@@
630
+ $@
631
+ # #$@
632
+ ## ##$@
633
+ # ## #$@
634
+ # #$@
635
+ # #$@
636
+ # #$@
637
+ $@@
638
+ $@
639
+ # #$@
640
+ ## #$@
641
+ # # #$@
642
+ # # #$@
643
+ # ##$@
644
+ # #$@
645
+ $@@
646
+ $@
647
+ #### $@
648
+ # #$@
649
+ # #$@
650
+ # #$@
651
+ # #$@
652
+ #### $@
653
+ $@@
654
+ $@
655
+ ##### $@
656
+ # #$@
657
+ # #$@
658
+ ##### $@
659
+ # $@
660
+ # $@
661
+ $@@
662
+ $@
663
+ #### $@
664
+ # #$@
665
+ # #$@
666
+ # # #$@
667
+ # # $@
668
+ ### #$@
669
+ $@@
670
+ $@
671
+ ##### $@
672
+ # #$@
673
+ # #$@
674
+ ##### $@
675
+ # # $@
676
+ # #$@
677
+ $@@
678
+ $@
679
+ #### $@
680
+ # $@
681
+ #### $@
682
+ #$@
683
+ # #$@
684
+ #### $@
685
+ $@@
686
+ $@
687
+ #####$@
688
+ # $@
689
+ # $@
690
+ # $@
691
+ # $@
692
+ # $@
693
+ $@@
694
+ $@
695
+ # #$@
696
+ # #$@
697
+ # #$@
698
+ # #$@
699
+ # #$@
700
+ #### $@
701
+ $@@
702
+ $@
703
+ # #$@
704
+ # #$@
705
+ # #$@
706
+ # #$@
707
+ # # $@
708
+ ## $@
709
+ $@@
710
+ $@
711
+ # #$@
712
+ # #$@
713
+ # #$@
714
+ # ## #$@
715
+ ## ##$@
716
+ # #$@
717
+ $@@
718
+ $@
719
+ # #$@
720
+ # # $@
721
+ ## $@
722
+ ## $@
723
+ # # $@
724
+ # #$@
725
+ $@@
726
+ $@
727
+ # #$@
728
+ # # $@
729
+ # $@
730
+ # $@
731
+ # $@
732
+ # $@
733
+ $@@
734
+ $@
735
+ ######$@
736
+ # $@
737
+ # $@
738
+ # $@
739
+ # $@
740
+ ######$@
741
+ $@@
742
+ ###$@
743
+ # $@
744
+ # $@
745
+ ## $@
746
+ # $@
747
+ # $@
748
+ ###$@
749
+ $@@
750
+ #$@
751
+ #$@
752
+ #$@
753
+ $@
754
+ #$@
755
+ #$@
756
+ #$@
757
+ $@@
758
+ ### $@
759
+ # $@
760
+ # $@
761
+ ##$@
762
+ # $@
763
+ # $@
764
+ ### $@
765
+ $@@
766
+ ## $@
767
+ # # #$@
768
+ ## $@
769
+ $@
770
+ $@
771
+ $@
772
+ $@
773
+ $@@
774
+ # # #$@
775
+ # # $@
776
+ # # $@
777
+ # #$@
778
+ #######$@
779
+ # #$@
780
+ # #$@
781
+ $@@
782
+ # #$@
783
+ ##### $@
784
+ # #$@
785
+ # #$@
786
+ # #$@
787
+ # #$@
788
+ ##### $@
789
+ $@@
790
+ # #$@
791
+ $@
792
+ # #$@
793
+ # #$@
794
+ # #$@
795
+ # #$@
796
+ ##### $@
797
+ $@@
798
+ $@
799
+ # #$@
800
+ #### $@
801
+ # #$@
802
+ ######$@
803
+ # #$@
804
+ # #$@
805
+ $@@
806
+ $@
807
+ # #$@
808
+ #### $@
809
+ # #$@
810
+ # #$@
811
+ # #$@
812
+ #### $@
813
+ $@@
814
+ $@
815
+ # #$@
816
+ $@
817
+ # #$@
818
+ # #$@
819
+ # #$@
820
+ #### $@
821
+ $@@
822
+ ###### $@
823
+ # #$@
824
+ # #$@
825
+ ###### $@
826
+ # #$@
827
+ # #$@
828
+ ###### $@
829
+ # $@@
830
+ 160 NO-BREAK SPACE
831
+ $@
832
+ $@
833
+ $@
834
+ $@
835
+ ########$@
836
+ ## $@
837
+ ## $@
838
+ ## $@@
839
+ 169 COPYRIGHT SIGN
840
+ $@
841
+ $@
842
+ $@
843
+ $@
844
+ $@
845
+ $@
846
+ $@
847
+ $@@
848
+ 176 DEGREE SIGN
849
+ $@
850
+ $@
851
+ $@
852
+ $@
853
+ ########$@
854
+ $@
855
+ $@
856
+ $@@
857
+ 178 SUPERSCRIPT TWO
858
+ ## $@
859
+ ## $@
860
+ ## $@
861
+ ## $@
862
+ ########$@
863
+ ## $@
864
+ ## $@
865
+ ## $@@
866
+ 183 MIDDLE DOT
867
+ ## $@
868
+ ## $@
869
+ #####$@
870
+ ## $@
871
+ #####$@
872
+ ## $@
873
+ ## $@
874
+ ## $@@
875
+ 196 LATIN CAPITAL LETTER A WITH DIAERESIS
876
+ # # #$@
877
+ # # $@
878
+ # # $@
879
+ # #$@
880
+ #######$@
881
+ # #$@
882
+ # #$@
883
+ $@@
884
+ 214 LATIN CAPITAL LETTER O WITH DIAERESIS
885
+ # #$@
886
+ ##### $@
887
+ # #$@
888
+ # #$@
889
+ # #$@
890
+ # #$@
891
+ ##### $@
892
+ $@@
893
+ 220 LATIN CAPITAL LETTER U WITH DIAERESIS
894
+ # #$@
895
+ $@
896
+ # #$@
897
+ # #$@
898
+ # #$@
899
+ # #$@
900
+ ##### $@
901
+ $@@
902
+ 223 LATIN SMALL LETTER SHARP S
903
+ ###### $@
904
+ # #$@
905
+ # #$@
906
+ ###### $@
907
+ # #$@
908
+ # #$@
909
+ ###### $@
910
+ # $@@
911
+ 228 LATIN SMALL LETTER A WITH DIAERESIS
912
+ $@
913
+ # #$@
914
+ #### $@
915
+ # #$@
916
+ ######$@
917
+ # #$@
918
+ # #$@
919
+ $@@
920
+ 246 LATIN SMALL LETTER O WITH DIAERESIS
921
+ $@
922
+ # #$@
923
+ #### $@
924
+ # #$@
925
+ # #$@
926
+ # #$@
927
+ #### $@
928
+ $@@
929
+ 247 DIVISION SIGN
930
+ #### $@
931
+ #### $@
932
+ #### $@
933
+ #### $@
934
+ #####$@
935
+ #### $@
936
+ #### $@
937
+ #### $@@
938
+ 252 LATIN SMALL LETTER U WITH DIAERESIS
939
+ $@
940
+ # #$@
941
+ $@
942
+ # #$@
943
+ # #$@
944
+ # #$@
945
+ #### $@
946
+ $@@
947
+ 0x0401 CYRILLIC CAPITAL LETTER IO
948
+ ########$@
949
+ ########$@
950
+ ########$@
951
+ ########$@
952
+ ########$@
953
+ ########$@
954
+ ########$@
955
+ ########$@@
956
+ 0x0410 CYRILLIC CAPITAL LETTER A
957
+ ####$@
958
+ ## ##$@
959
+ ## ##$@
960
+ ## ##$@
961
+ #######$@
962
+ ## ##$@
963
+ ## ##$@
964
+ $@@
965
+ 0x0411 CYRILLIC CAPITAL LETTER BE
966
+ #######$@
967
+ ## $@
968
+ ## $@
969
+ ###### $@
970
+ ## ##$@
971
+ ## ##$@
972
+ ###### $@
973
+ $@@
974
+ 0x0412 CYRILLIC CAPITAL LETTER VE
975
+ ###### $@
976
+ ## ##$@
977
+ ## ##$@
978
+ ###### $@
979
+ ## ##$@
980
+ ## ##$@
981
+ ###### $@
982
+ $@@
983
+ 0x0413 CYRILLIC CAPITAL LETTER GHE
984
+ #######$@
985
+ ## $@
986
+ ## $@
987
+ ## $@
988
+ ## $@
989
+ ## $@
990
+ ## $@
991
+ $@@
992
+ 0x0414 CYRILLIC CAPITAL LETTER DE
993
+ #### $@
994
+ ## ## $@
995
+ ## ## $@
996
+ ## ## $@
997
+ ## ## $@
998
+ #######$@
999
+ ## ##$@
1000
+ $@@
1001
+ 0x0415 CYRILLIC CAPITAL LETTER IE
1002
+ #######$@
1003
+ ## $@
1004
+ ## $@
1005
+ ###### $@
1006
+ ## $@
1007
+ ## $@
1008
+ #######$@
1009
+ $@@
1010
+ 0x0416 CYRILLIC CAPITAL LETTER ZHE
1011
+ ## # ##$@
1012
+ # # # $@
1013
+ ### $@
1014
+ ### $@
1015
+ # # # $@
1016
+ # # # $@
1017
+ ## # ##$@
1018
+ $@@
1019
+ 0x0417 CYRILLIC CAPITAL LETTER ZE
1020
+ ##### $@
1021
+ ## ##$@
1022
+ ##$@
1023
+ ## $@
1024
+ ##$@
1025
+ ## ##$@
1026
+ ##### $@
1027
+ $@@
1028
+ 0x0418 CYRILLIC CAPITAL LETTER I
1029
+ ## ##$@
1030
+ ## ###$@
1031
+ ## ###$@
1032
+ ## # ##$@
1033
+ ### ##$@
1034
+ ## ##$@
1035
+ ## ##$@
1036
+ $@@
1037
+ 0x0419 CYRILLIC CAPITAL LETTER SHORT I
1038
+ ## ## #$@
1039
+ ## ##$@
1040
+ ## ###$@
1041
+ ## # ##$@
1042
+ ### ##$@
1043
+ ## ##$@
1044
+ ## ##$@
1045
+ $@@
1046
+ 0x041A CYRILLIC CAPITAL LETTER KA
1047
+ ## ##$@
1048
+ ## ## $@
1049
+ ## ## $@
1050
+ ##### $@
1051
+ ## ## $@
1052
+ ## ##$@
1053
+ ## ##$@
1054
+ $@@
1055
+ 0x041B CYRILLIC CAPITAL LETTER EL
1056
+ #####$@
1057
+ ## ##$@
1058
+ ## ##$@
1059
+ ## ##$@
1060
+ ## ##$@
1061
+ ## ##$@
1062
+ ## ##$@
1063
+ $@@
1064
+ 0x041C CYRILLIC CAPITAL LETTER EM
1065
+ ## ##$@
1066
+ ## ##$@
1067
+ ### ###$@
1068
+ ## # ##$@
1069
+ ## ##$@
1070
+ ## ##$@
1071
+ ## ##$@
1072
+ $@@
1073
+ 0x041D CYRILLIC CAPITAL LETTER EN
1074
+ ## ##$@
1075
+ ## ##$@
1076
+ ## ##$@
1077
+ #######$@
1078
+ ## ##$@
1079
+ ## ##$@
1080
+ ## ##$@
1081
+ $@@
1082
+ 0x041E CYRILLIC CAPITAL LETTER O
1083
+ ##### $@
1084
+ ## ##$@
1085
+ ## ##$@
1086
+ ## ##$@
1087
+ ## ##$@
1088
+ ## ##$@
1089
+ ##### $@
1090
+ $@@
1091
+ 0x041F CYRILLIC CAPITAL LETTER PE
1092
+ #######$@
1093
+ ## ##$@
1094
+ ## ##$@
1095
+ ## ##$@
1096
+ ## ##$@
1097
+ ## ##$@
1098
+ ## ##$@
1099
+ $@@
1100
+ 0x0420 CYRILLIC CAPITAL LETTER ER
1101
+ ###### $@
1102
+ ## ##$@
1103
+ ## ##$@
1104
+ ###### $@
1105
+ ## $@
1106
+ ## $@
1107
+ ## $@
1108
+ $@@
1109
+ 0x0421 CYRILLIC CAPITAL LETTER ES
1110
+ ##### $@
1111
+ ## ##$@
1112
+ ## $@
1113
+ ## $@
1114
+ ## $@
1115
+ ## ##$@
1116
+ ##### $@
1117
+ $@@
1118
+ 0x0422 CYRILLIC CAPITAL LETTER TE
1119
+ ###### $@
1120
+ ## $@
1121
+ ## $@
1122
+ ## $@
1123
+ ## $@
1124
+ ## $@
1125
+ ## $@
1126
+ $@@
1127
+ 0x0423 CYRILLIC CAPITAL LETTER U
1128
+ ## ##$@
1129
+ ## ##$@
1130
+ ## ##$@
1131
+ ######$@
1132
+ ##$@
1133
+ ## ##$@
1134
+ ##### $@
1135
+ $@@
1136
+ 0x0424 CYRILLIC CAPITAL LETTER EF
1137
+ # $@
1138
+ ##### $@
1139
+ ## # ##$@
1140
+ ## # ##$@
1141
+ ## # ##$@
1142
+ ##### $@
1143
+ # $@
1144
+ $@@
1145
+ 0x0425 CYRILLIC CAPITAL LETTER HA
1146
+ ## ##$@
1147
+ ## ## $@
1148
+ ### $@
1149
+ ### $@
1150
+ ### $@
1151
+ ## ## $@
1152
+ ## ##$@
1153
+ $@@
1154
+ 0x0426 CYRILLIC CAPITAL LETTER TSE
1155
+ ## ## $@
1156
+ ## ## $@
1157
+ ## ## $@
1158
+ ## ## $@
1159
+ ## ## $@
1160
+ ## ## $@
1161
+ #######$@
1162
+ #$@@
1163
+ 0x0427 CYRILLIC CAPITAL LETTER CHE
1164
+ ## ##$@
1165
+ ## ##$@
1166
+ ## ##$@
1167
+ ######$@
1168
+ ##$@
1169
+ ##$@
1170
+ ##$@
1171
+ $@@
1172
+ 0x0428 CYRILLIC CAPITAL LETTER SHA
1173
+ ## # ##$@
1174
+ ## # ##$@
1175
+ ## # ##$@
1176
+ ## # ##$@
1177
+ ## # ##$@
1178
+ ## # ##$@
1179
+ #######$@
1180
+ $@@
1181
+ 0x0429 CYRILLIC CAPITAL LETTER SHCHA
1182
+ ## # ##$@
1183
+ ## # ##$@
1184
+ ## # ##$@
1185
+ ## # ##$@
1186
+ ## # ##$@
1187
+ ## # ##$@
1188
+ #######$@
1189
+ #$@@
1190
+ 0x042A CYRILLIC CAPITAL LETTER HARD SIGN
1191
+ ### $@
1192
+ ### $@
1193
+ ## $@
1194
+ ##### $@
1195
+ ## ##$@
1196
+ ## ##$@
1197
+ ##### $@
1198
+ $@@
1199
+ 0x042B CYRILLIC CAPITAL LETTER YERU
1200
+ ## ##$@
1201
+ ## ##$@
1202
+ ## ##$@
1203
+ #### #$@
1204
+ ## # #$@
1205
+ ## # #$@
1206
+ #### #$@
1207
+ $@@
1208
+ 0x042C CYRILLIC CAPITAL LETTER SOFT SIGN
1209
+ ## $@
1210
+ ## $@
1211
+ ## $@
1212
+ ###### $@
1213
+ ## ##$@
1214
+ ## ##$@
1215
+ ###### $@
1216
+ $@@
1217
+ 0x042D CYRILLIC CAPITAL LETTER E
1218
+ ##### $@
1219
+ ## ##$@
1220
+ ##$@
1221
+ #####$@
1222
+ ##$@
1223
+ ## ##$@
1224
+ ##### $@
1225
+ $@@
1226
+ 0x042E CYRILLIC CAPITAL LETTER YU
1227
+ ## ## $@
1228
+ ## # ##$@
1229
+ ## # ##$@
1230
+ #### ##$@
1231
+ ## # ##$@
1232
+ ## # ##$@
1233
+ ## ## $@
1234
+ $@@
1235
+ 0x042F CYRILLIC CAPITAL LETTER YA
1236
+ #####$@
1237
+ ## ##$@
1238
+ ## ##$@
1239
+ #####$@
1240
+ ## ##$@
1241
+ ## ##$@
1242
+ ## ##$@
1243
+ $@@
1244
+ 0x0430 CYRILLIC SMALL LETTER A
1245
+ $@
1246
+ $@
1247
+ #### $@
1248
+ ## $@
1249
+ ##### $@
1250
+ ## ## $@
1251
+ ######$@
1252
+ $@@
1253
+ 0x0431 CYRILLIC SMALL LETTER BE
1254
+ $@
1255
+ ## $@
1256
+ #### $@
1257
+ ## $@
1258
+ ###### $@
1259
+ ## ##$@
1260
+ ##### $@
1261
+ $@@
1262
+ 0x0432 CYRILLIC SMALL LETTER VE
1263
+ $@
1264
+ $@
1265
+ ##### $@
1266
+ ## ## $@
1267
+ ###### $@
1268
+ ## ##$@
1269
+ ###### $@
1270
+ $@@
1271
+ 0x0433 CYRILLIC SMALL LETTER GHE
1272
+ $@
1273
+ $@
1274
+ ##### $@
1275
+ ##$@
1276
+ ##### $@
1277
+ ## $@
1278
+ ######$@
1279
+ $@@
1280
+ 0x0434 CYRILLIC SMALL LETTER DE
1281
+ $@
1282
+ #### $@
1283
+ ##$@
1284
+ #####$@
1285
+ ## ##$@
1286
+ ## ##$@
1287
+ ##### $@
1288
+ $@@
1289
+ 0x0435 CYRILLIC SMALL LETTER IE
1290
+ $@
1291
+ $@
1292
+ ##### $@
1293
+ ## ##$@
1294
+ ###### $@
1295
+ ## $@
1296
+ ##### $@
1297
+ $@@
1298
+ 0x0436 CYRILLIC SMALL LETTER ZHE
1299
+ $@
1300
+ $@
1301
+ ## # ##$@
1302
+ # # # $@
1303
+ ### $@
1304
+ # # # $@
1305
+ ## # ##$@
1306
+ $@@
1307
+ 0x0437 CYRILLIC SMALL LETTER ZE
1308
+ $@
1309
+ $@
1310
+ ##### $@
1311
+ ## ##$@
1312
+ ### $@
1313
+ ## ##$@
1314
+ ##### $@
1315
+ $@@
1316
+ 0x0438 CYRILLIC SMALL LETTER I
1317
+ $@
1318
+ $@
1319
+ ## ##$@
1320
+ ## ###$@
1321
+ ## # ##$@
1322
+ ### ##$@
1323
+ ## ##$@
1324
+ $@@
1325
+ 0x0439 CYRILLIC SMALL LETTER SHORT I
1326
+ $@
1327
+ ## $@
1328
+ ## ##$@
1329
+ ## ###$@
1330
+ ## # ##$@
1331
+ ### ##$@
1332
+ ## ##$@
1333
+ $@@
1334
+ 0x043A CYRILLIC SMALL LETTER KA
1335
+ $@
1336
+ $@
1337
+ ## ##$@
1338
+ ## ## $@
1339
+ ##### $@
1340
+ ## ## $@
1341
+ ## ##$@
1342
+ $@@
1343
+ 0x043B CYRILLIC SMALL LETTER EL
1344
+ $@
1345
+ $@
1346
+ #####$@
1347
+ ## ##$@
1348
+ ## ##$@
1349
+ ## ##$@
1350
+ ## ##$@
1351
+ $@@
1352
+ 0x043C CYRILLIC SMALL LETTER EM
1353
+ $@
1354
+ $@
1355
+ ## ##$@
1356
+ ### ###$@
1357
+ ## # ##$@
1358
+ ## ##$@
1359
+ ## ##$@
1360
+ $@@
1361
+ 0x043D CYRILLIC SMALL LETTER EN
1362
+ $@
1363
+ $@
1364
+ ## ##$@
1365
+ ## ##$@
1366
+ #######$@
1367
+ ## ##$@
1368
+ ## ##$@
1369
+ $@@
1370
+ 0x043E CYRILLIC SMALL LETTER O
1371
+ $@
1372
+ $@
1373
+ ##### $@
1374
+ ## ##$@
1375
+ ## ##$@
1376
+ ## ##$@
1377
+ ##### $@
1378
+ $@@
1379
+ 0x043F CYRILLIC SMALL LETTER PE
1380
+ $@
1381
+ $@
1382
+ ###### $@
1383
+ ## ##$@
1384
+ ## ##$@
1385
+ ## ##$@
1386
+ ## ##$@
1387
+ $@@
1388
+ 0x0440 CYRILLIC SMALL LETTER ER
1389
+ $@
1390
+ $@
1391
+ ###### $@
1392
+ ## ##$@
1393
+ ###### $@
1394
+ ## $@
1395
+ ## $@
1396
+ $@@
1397
+ 0x0441 CYRILLIC SMALL LETTER ES
1398
+ $@
1399
+ $@
1400
+ ##### $@
1401
+ ## $@
1402
+ ## $@
1403
+ ## $@
1404
+ ##### $@
1405
+ $@@
1406
+ 0x0442 CYRILLIC SMALL LETTER TE
1407
+ $@
1408
+ $@
1409
+ ###### $@
1410
+ ## $@
1411
+ ## $@
1412
+ ## $@
1413
+ ## $@
1414
+ $@@
1415
+ 0x0443 CYRILLIC SMALL LETTER U
1416
+ $@
1417
+ $@
1418
+ ## ##$@
1419
+ ## ##$@
1420
+ ## ##$@
1421
+ ######$@
1422
+ ##$@
1423
+ ##### $@@
1424
+ 0x0444 CYRILLIC SMALL LETTER EF
1425
+ $@
1426
+ # $@
1427
+ ##### $@
1428
+ ## # ##$@
1429
+ ## # ##$@
1430
+ ##### $@
1431
+ # $@
1432
+ $@@
1433
+ 0x0445 CYRILLIC SMALL LETTER HA
1434
+ $@
1435
+ $@
1436
+ ## ##$@
1437
+ ## ## $@
1438
+ ### $@
1439
+ ## ## $@
1440
+ ## ##$@
1441
+ $@@
1442
+ 0x0446 CYRILLIC SMALL LETTER TSE
1443
+ $@
1444
+ $@
1445
+ ## ##$@
1446
+ ## ##$@
1447
+ ## ##$@
1448
+ ## ## $@
1449
+ ### ##$@
1450
+ #$@@
1451
+ 0x0447 CYRILLIC SMALL LETTER CHE
1452
+ $@
1453
+ $@
1454
+ ## ##$@
1455
+ ## ##$@
1456
+ ######$@
1457
+ ##$@
1458
+ ##$@
1459
+ $@@
1460
+ 0x0448 CYRILLIC SMALL LETTER SHA
1461
+ $@
1462
+ $@
1463
+ ## # ##$@
1464
+ ## # ##$@
1465
+ ## # ##$@
1466
+ ## # ##$@
1467
+ #######$@
1468
+ $@@
1469
+ 0x0449 CYRILLIC SMALL LETTER SHCHA
1470
+ $@
1471
+ $@
1472
+ ## # ##$@
1473
+ ## # ##$@
1474
+ ## # ##$@
1475
+ ## # ##$@
1476
+ #######$@
1477
+ #$@@
1478
+ 0x044A CYRILLIC SMALL LETTER HARD SIGN
1479
+ $@
1480
+ $@
1481
+ ### $@
1482
+ ## $@
1483
+ ##### $@
1484
+ ## ##$@
1485
+ ##### $@
1486
+ $@@
1487
+ 0x044B CYRILLIC SMALL LETTER YERU
1488
+ $@
1489
+ $@
1490
+ ## ##$@
1491
+ ## ##$@
1492
+ #### #$@
1493
+ ## # #$@
1494
+ #### #$@
1495
+ $@@
1496
+ 0x044C CYRILLIC SMALL LETTER SOFT SIGN
1497
+ $@
1498
+ $@
1499
+ ## $@
1500
+ ## $@
1501
+ ###### $@
1502
+ ## ##$@
1503
+ ###### $@
1504
+ $@@
1505
+ 0x044D CYRILLIC SMALL LETTER E
1506
+ $@
1507
+ $@
1508
+ ###### $@
1509
+ ##$@
1510
+ #####$@
1511
+ ##$@
1512
+ ###### $@
1513
+ $@@
1514
+ 0x044E CYRILLIC SMALL LETTER YU
1515
+ $@
1516
+ $@
1517
+ # ### $@
1518
+ # ## ##$@
1519
+ #### ##$@
1520
+ # ## ##$@
1521
+ # ### $@
1522
+ $@@
1523
+ 0x044F CYRILLIC SMALL LETTER YA
1524
+ $@
1525
+ $@
1526
+ #####$@
1527
+ ## ##$@
1528
+ #####$@
1529
+ ## ##$@
1530
+ ## ##$@
1531
+ $@@
1532
+ 0x0451 CYRILLIC SMALL LETTER IO
1533
+ $@
1534
+ $@
1535
+ ########$@
1536
+ $@
1537
+ #### ###$@
1538
+ ## ## $@
1539
+ ## ## $@
1540
+ ## ## $@@
1541
+ 0x2219 BULLET OPERATOR
1542
+ ## ##$@
1543
+ ## ##$@
1544
+ ## ##$@
1545
+ ## ##$@
1546
+ #######$@
1547
+ $@
1548
+ $@
1549
+ $@@
1550
+ 0x221A SQUARE ROOT
1551
+ ## $@
1552
+ ## $@
1553
+ ##### $@
1554
+ ## $@
1555
+ ##### $@
1556
+ $@
1557
+ $@
1558
+ $@@
1559
+ 0x2248 ALMOST EQUAL TO
1560
+ $@
1561
+ $@
1562
+ $@
1563
+ $@
1564
+ ##### $@
1565
+ ## $@
1566
+ ## $@
1567
+ ## $@@
1568
+ 0x2264 LESS-THAN OR EQUAL TO
1569
+ ## $@
1570
+ ## $@
1571
+ ## $@
1572
+ ## $@
1573
+ #####$@
1574
+ $@
1575
+ $@
1576
+ $@@
1577
+ 0x2265 GREATER-THAN OR EQUAL TO
1578
+ ## $@
1579
+ ## $@
1580
+ ## $@
1581
+ ## $@
1582
+ ########$@
1583
+ $@
1584
+ $@
1585
+ $@@
1586
+ 0x2320 TOP HALF INTEGRAL
1587
+ $@
1588
+ $@
1589
+ #######$@
1590
+ ##$@
1591
+ #### ##$@
1592
+ ## ##$@
1593
+ ## ##$@
1594
+ ## ##$@@
1595
+ 0x2321 BOTTOM HALF INTEGRAL
1596
+ ## $@
1597
+ ## $@
1598
+ ## $@
1599
+ ## $@
1600
+ #####$@
1601
+ ## $@
1602
+ ## $@
1603
+ ## $@@
1604
+ 0x2500 BOX DRAWINGS LIGHT HORIZONTAL
1605
+ ## $@
1606
+ $@
1607
+ ## $@
1608
+ ## $@
1609
+ ## $@
1610
+ ## ##$@
1611
+ #### $@
1612
+ $@@
1613
+ 0x2502 BOX DRAWINGS LIGHT VERTICAL
1614
+ $@
1615
+ $@
1616
+ $@
1617
+ ######$@
1618
+ ## $@
1619
+ ## $@
1620
+ $@
1621
+ $@@
1622
+ 0x250C BOX DRAWINGS LIGHT DOWN AND RIGHT
1623
+ $@
1624
+ $@
1625
+ $@
1626
+ ######$@
1627
+ ##$@
1628
+ ##$@
1629
+ $@
1630
+ $@@
1631
+ 0x2510 BOX DRAWINGS LIGHT DOWN AND LEFT
1632
+ ## ##$@
1633
+ ## ## $@
1634
+ ## ## $@
1635
+ ## #### $@
1636
+ ## ##$@
1637
+ ## ## $@
1638
+ ## ## $@
1639
+ ####$@@
1640
+ 0x2514 BOX DRAWINGS LIGHT UP AND RIGHT
1641
+ ## ##$@
1642
+ ## ## $@
1643
+ ## ## $@
1644
+ ## ## ##$@
1645
+ ## ###$@
1646
+ ## ####$@
1647
+ ## ####$@
1648
+ ##$@@
1649
+ 0x2518 BOX DRAWINGS LIGHT UP AND LEFT
1650
+ ## $@
1651
+ ## $@
1652
+ $@
1653
+ ## $@
1654
+ ## $@
1655
+ ## $@
1656
+ ## $@
1657
+ $@@
1658
+ 0x251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT
1659
+ $@
1660
+ ## ##$@
1661
+ ## ## $@
1662
+ ## ## $@
1663
+ ## ## $@
1664
+ ## ##$@
1665
+ $@
1666
+ $@@
1667
+ 0x2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT
1668
+ $@
1669
+ ## ## $@
1670
+ ## ## $@
1671
+ ## ##$@
1672
+ ## ## $@
1673
+ ## ## $@
1674
+ $@
1675
+ $@@
1676
+ 0x252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
1677
+ # #$@
1678
+ # # $@
1679
+ # #$@
1680
+ # # $@
1681
+ # #$@
1682
+ # # $@
1683
+ # #$@
1684
+ # # $@@
1685
+ 0x2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL
1686
+ # # # #$@
1687
+ # # # # $@
1688
+ # # # #$@
1689
+ # # # # $@
1690
+ # # # #$@
1691
+ # # # # $@
1692
+ # # # #$@
1693
+ # # # # $@@
1694
+ 0x253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
1695
+ ## ## ##$@
1696
+ ### ###$@
1697
+ ## ## ##$@
1698
+ ### ### $@
1699
+ ## ## ##$@
1700
+ ### ###$@
1701
+ ## ## ##$@
1702
+ ### ### $@@
1703
+ 0x2550 BOX DRAWINGS DOUBLE HORIZONTAL
1704
+ ## ## $@
1705
+ ## ## $@
1706
+ ## ###$@
1707
+ ## $@
1708
+ ######$@
1709
+ $@
1710
+ $@
1711
+ $@@
1712
+ 0x2551 BOX DRAWINGS DOUBLE VERTICAL
1713
+ $@
1714
+ $@
1715
+ ######$@
1716
+ ## $@
1717
+ ## ###$@
1718
+ ## ## $@
1719
+ ## ## $@
1720
+ ## ## $@@
1721
+ 0x2552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
1722
+ ## ## $@
1723
+ ## ## $@
1724
+ #### ###$@
1725
+ $@
1726
+ ########$@
1727
+ $@
1728
+ $@
1729
+ $@@
1730
+ 0x2553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
1731
+ #### $@
1732
+ #### $@
1733
+ #####$@
1734
+ ## $@
1735
+ #####$@
1736
+ #### $@
1737
+ #### $@
1738
+ #### $@@
1739
+ 0x2554 BOX DRAWINGS DOUBLE DOWN AND RIGHT
1740
+ $@
1741
+ $@
1742
+ ########$@
1743
+ $@
1744
+ ########$@
1745
+ $@
1746
+ $@
1747
+ $@@
1748
+ 0x2555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
1749
+ #### $@
1750
+ #### $@
1751
+ #######$@
1752
+ $@
1753
+ #######$@
1754
+ #### $@
1755
+ #### $@
1756
+ #### $@@
1757
+ 0x2556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
1758
+ ## $@
1759
+ ## $@
1760
+ ########$@
1761
+ $@
1762
+ ########$@
1763
+ $@
1764
+ $@
1765
+ $@@
1766
+ 0x2557 BOX DRAWINGS DOUBLE DOWN AND LEFT
1767
+ ## ## $@
1768
+ ## ## $@
1769
+ ## ## $@
1770
+ ## ## $@
1771
+ ########$@
1772
+ $@
1773
+ $@
1774
+ $@@
1775
+ 0x2558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
1776
+ $@
1777
+ $@
1778
+ ########$@
1779
+ $@
1780
+ ########$@
1781
+ ## $@
1782
+ ## $@
1783
+ ## $@@
1784
+ 0x2559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
1785
+ $@
1786
+ $@
1787
+ $@
1788
+ $@
1789
+ ########$@
1790
+ ## ## $@
1791
+ ## ## $@
1792
+ ## ## $@@
1793
+ 0x255A BOX DRAWINGS DOUBLE UP AND RIGHT
1794
+ ## ## $@
1795
+ ## ## $@
1796
+ ## ## $@
1797
+ ## ## $@
1798
+ ######$@
1799
+ $@
1800
+ $@
1801
+ $@@
1802
+ 0x255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
1803
+ ## $@
1804
+ ## $@
1805
+ #####$@
1806
+ ## $@
1807
+ #####$@
1808
+ $@
1809
+ $@
1810
+ $@@
1811
+ 0x255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
1812
+ $@
1813
+ $@
1814
+ #####$@
1815
+ ## $@
1816
+ #####$@
1817
+ ## $@
1818
+ ## $@
1819
+ ## $@@
1820
+ 0x255D BOX DRAWINGS DOUBLE UP AND LEFT
1821
+ $@
1822
+ $@
1823
+ $@
1824
+ $@
1825
+ ######$@
1826
+ ## ## $@
1827
+ ## ## $@
1828
+ ## ## $@@
1829
+ 0x255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
1830
+ ## ## $@
1831
+ ## ## $@
1832
+ ## ## $@
1833
+ ## ## $@
1834
+ ########$@
1835
+ ## ## $@
1836
+ ## ## $@
1837
+ ## ## $@@
1838
+ 0x255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
1839
+ ## $@
1840
+ ## $@
1841
+ ########$@
1842
+ ## $@
1843
+ ########$@
1844
+ ## $@
1845
+ ## $@
1846
+ ## $@@
1847
+ 0x2560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
1848
+ ## $@
1849
+ ## $@
1850
+ ## $@
1851
+ ## $@
1852
+ ##### $@
1853
+ $@
1854
+ $@
1855
+ $@@
1856
+ 0x2561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
1857
+ $@
1858
+ $@
1859
+ $@
1860
+ $@
1861
+ #####$@
1862
+ ## $@
1863
+ ## $@
1864
+ ## $@@
1865
+ 0x2562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
1866
+ $@
1867
+ $@
1868
+ $@
1869
+ $@
1870
+ ########$@
1871
+ ########$@
1872
+ ########$@
1873
+ ########$@@
1874
+ 0x2563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT
1875
+ #### $@
1876
+ #### $@
1877
+ #### $@
1878
+ #### $@
1879
+ #### $@
1880
+ #### $@
1881
+ #### $@
1882
+ #### $@@
1883
+ 0x2564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
1884
+ ####$@
1885
+ ####$@
1886
+ ####$@
1887
+ ####$@
1888
+ ####$@
1889
+ ####$@
1890
+ ####$@
1891
+ ####$@@
1892
+ 0x2565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
1893
+ ########$@
1894
+ ########$@
1895
+ ########$@
1896
+ ########$@
1897
+ $@
1898
+ $@
1899
+ $@
1900
+ $@@
1901
+ 0x2566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
1902
+ ### $@
1903
+ ## ## $@
1904
+ ## ## $@
1905
+ ### $@
1906
+ $@
1907
+ $@
1908
+ $@
1909
+ $@@
1910
+ 0x2567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
1911
+ $@
1912
+ $@
1913
+ $@
1914
+ ## $@
1915
+ ## $@
1916
+ $@
1917
+ $@
1918
+ $@@
1919
+ 0x2568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
1920
+ $@
1921
+ $@
1922
+ $@
1923
+ $@
1924
+ ## $@
1925
+ $@
1926
+ $@
1927
+ $@@
1928
+ 0x2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
1929
+ ####$@
1930
+ ## $@
1931
+ ## $@
1932
+ ## $@
1933
+ ### ## $@
1934
+ ## ## $@
1935
+ #### $@
1936
+ ### $@@
1937
+ 0x256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
1938
+ #### $@
1939
+ ## ## $@
1940
+ ## ## $@
1941
+ ## ## $@
1942
+ ## ## $@
1943
+ $@
1944
+ $@
1945
+ $@@
1946
+ 0x256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
1947
+ ### $@
1948
+ ## $@
1949
+ ## $@
1950
+ ## $@
1951
+ #### $@
1952
+ $@
1953
+ $@
1954
+ $@@
1955
+ 0x256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
1956
+ $@
1957
+ $@
1958
+ #### $@
1959
+ #### $@
1960
+ #### $@
1961
+ #### $@
1962
+ $@
1963
+ $@@
1964
+ 0x2580 UPPER HALF BLOCK
1965
+ ## $@
1966
+ ## $@
1967
+ ## $@
1968
+ ## $@
1969
+ ## $@
1970
+ ## $@
1971
+ ## $@
1972
+ ## $@@
1973
+ 0x2584 LOWER HALF BLOCK
1974
+ ## $@
1975
+ ## $@
1976
+ ## $@
1977
+ ## $@
1978
+ ##### $@
1979
+ ## $@
1980
+ ## $@
1981
+ ## $@@
1982
+ 0x2588 FULL BLOCK
1983
+ ## $@
1984
+ ## $@
1985
+ ##### $@
1986
+ ## $@
1987
+ ##### $@
1988
+ ## $@
1989
+ ## $@
1990
+ ## $@@
1991
+ 0x258C LEFT HALF BLOCK
1992
+ ####$@
1993
+ ####$@
1994
+ ####$@
1995
+ ####$@
1996
+ ######$@
1997
+ ####$@
1998
+ ####$@
1999
+ ####$@@
2000
+ 0x2590 RIGHT HALF BLOCK
2001
+ $@
2002
+ $@
2003
+ $@
2004
+ $@
2005
+ #######$@
2006
+ ## ##$@
2007
+ ## ##$@
2008
+ ## ##$@@
2009
+ 0x2591 LIGHT SHADE
2010
+ $@
2011
+ $@
2012
+ ##### $@
2013
+ ## $@
2014
+ ##### $@
2015
+ ## $@
2016
+ ## $@
2017
+ ## $@@
2018
+ 0x2592 MEDIUM SHADE
2019
+ ####$@
2020
+ ####$@
2021
+ ######$@
2022
+ ##$@
2023
+ ######$@
2024
+ ####$@
2025
+ ####$@
2026
+ ####$@@
2027
+ 0x2593 DARK SHADE
2028
+ ####$@
2029
+ ####$@
2030
+ ####$@
2031
+ ####$@
2032
+ ####$@
2033
+ ####$@
2034
+ ####$@
2035
+ ####$@@
2036
+ 0x25A0 BLACK SQUARE
2037
+ ## ##$@
2038
+ ## ##$@
2039
+ #### ##$@
2040
+ ##$@
2041
+ #######$@
2042
+ $@
2043
+ $@
2044
+ $@@
2045
+ 0x30A2 A
2046
+ ##########$@
2047
+ ### $@
2048
+ # $@
2049
+ # $@
2050
+ # $@
2051
+ # $@
2052
+ # $@
2053
+ $@@
2054
+ 0x30A4 I
2055
+ ##$@
2056
+ ## $@
2057
+ ## # $@
2058
+ ## # $@
2059
+ # $@
2060
+ # $@
2061
+ # $@
2062
+ $@@
2063
+ 0x30A6 U
2064
+ # $@
2065
+ ##########$@
2066
+ # #$@
2067
+ ## $@
2068
+ ## $@
2069
+ ## $@
2070
+ ## $@
2071
+ $@@
2072
+ 0x30A8 E
2073
+ $@
2074
+ ####### $@
2075
+ # $@
2076
+ # $@
2077
+ # $@
2078
+ # $@
2079
+ ##########$@
2080
+ $@@
2081
+ 0x30AA O
2082
+ # $@
2083
+ ##########$@
2084
+ ## $@
2085
+ ## # $@
2086
+ ## # $@
2087
+ ## ## $@
2088
+ # $@
2089
+ $@@
2090
+ 0x30AB KA
2091
+ # $@
2092
+ ##########$@
2093
+ # #$@
2094
+ # #$@
2095
+ # #$@
2096
+ # # # $@
2097
+ # # $@
2098
+ $@@
2099
+ 0x30AD KI
2100
+ # # $@
2101
+ # # $@
2102
+ # # # $@
2103
+ # $@
2104
+ # # $@
2105
+ # # $@
2106
+ #$@
2107
+ $@@
2108
+ 0x30AF KU
2109
+ # $@
2110
+ ########$@
2111
+ # #$@
2112
+ # ## $@
2113
+ ## $@
2114
+ ## $@
2115
+ ## $@
2116
+ $@@
2117
+ 0x30B1 KE
2118
+ # $@
2119
+ ########$@
2120
+ # # $@
2121
+ # # $@
2122
+ # $@
2123
+ # $@
2124
+ # $@
2125
+ $@@
2126
+ 0x30B3 KO
2127
+ $@
2128
+ ##########$@
2129
+ #$@
2130
+ #$@
2131
+ #$@
2132
+ #$@
2133
+ ######### $@
2134
+ $@@
2135
+ 0x30B5 SA
2136
+ # # $@
2137
+ ##########$@
2138
+ # # $@
2139
+ # $@
2140
+ # $@
2141
+ # $@
2142
+ # $@
2143
+ $@@
2144
+ 0x30B7 SI (SHI)
2145
+ # #$@
2146
+ # # # $@
2147
+ # # $@
2148
+ ## $@
2149
+ ## $@
2150
+ ## $@
2151
+ ## $@
2152
+ $@@
2153
+ 0x30B9 SU
2154
+ ########$@
2155
+ #$@
2156
+ # $@
2157
+ ## $@
2158
+ ## # $@
2159
+ ## # $@
2160
+ # #$@
2161
+ $@@
2162
+ 0x30BB SE
2163
+ # $@
2164
+ # $@
2165
+ ##########$@
2166
+ # # $@
2167
+ # $@
2168
+ # $@
2169
+ ###### $@
2170
+ $@@
2171
+ 0x30BD SO
2172
+ # #$@
2173
+ # #$@
2174
+ # $@
2175
+ # $@
2176
+ ## $@
2177
+ ## $@
2178
+ ## $@
2179
+ $@@
2180
+ 0x30BF TA
2181
+ # $@
2182
+ #######$@
2183
+ # # $@
2184
+ # # # $@
2185
+ ### $@
2186
+ ## $@
2187
+ ## $@
2188
+ $@@
2189
+ 0x30C1 TI (CHI)
2190
+ ## $@
2191
+ ###### $@
2192
+ # $@
2193
+ ##########$@
2194
+ # $@
2195
+ # $@
2196
+ ## $@
2197
+ $@@
2198
+ 0x30C4 TU (TSU)
2199
+ # # #$@
2200
+ # # #$@
2201
+ # $@
2202
+ # $@
2203
+ ## $@
2204
+ ## $@
2205
+ ## $@
2206
+ $@@
2207
+ 0x30C6 TE
2208
+ ###### $@
2209
+ $@
2210
+ ##########$@
2211
+ # $@
2212
+ # $@
2213
+ # $@
2214
+ ## $@
2215
+ $@@
2216
+ 0x30C8 TO
2217
+ # $@
2218
+ # $@
2219
+ ## $@
2220
+ # # $@
2221
+ # #$@
2222
+ # $@
2223
+ # $@
2224
+ $@@
2225
+ 0x30CA NA
2226
+ # $@
2227
+ ##########$@
2228
+ # $@
2229
+ # $@
2230
+ # $@
2231
+ # $@
2232
+ ## $@
2233
+ $@@
2234
+ 0x30CB NI
2235
+ $@
2236
+ $@
2237
+ ###### $@
2238
+ $@
2239
+ $@
2240
+ ##########$@
2241
+ $@
2242
+ $@@
2243
+ 0x30CC NU
2244
+ ##########$@
2245
+ #$@
2246
+ # # $@
2247
+ # ## $@
2248
+ ## $@
2249
+ ## # $@
2250
+ ## # $@
2251
+ $@@
2252
+ 0x30CD NE
2253
+ # $@
2254
+ ##########$@
2255
+ # $@
2256
+ ### $@
2257
+ ###### $@
2258
+ ## # ##$@
2259
+ # $@
2260
+ $@@
2261
+ 0x30CE NO
2262
+ #$@
2263
+ #$@
2264
+ # $@
2265
+ # $@
2266
+ ## $@
2267
+ ## $@
2268
+ ## $@
2269
+ $@@
2270
+ 0x30CF HA
2271
+ $@
2272
+ $@
2273
+ # # $@
2274
+ # # $@
2275
+ # #$@
2276
+ # $@
2277
+ $@
2278
+ $@@
2279
+ 0x30D2 HI
2280
+ # $@
2281
+ # ### $@
2282
+ #### $@
2283
+ # $@
2284
+ # $@
2285
+ # $@
2286
+ #######$@
2287
+ $@@
2288
+ 0x30D5 HU (FU)
2289
+ ########$@
2290
+ #$@
2291
+ #$@
2292
+ # $@
2293
+ ## $@
2294
+ ## $@
2295
+ ## $@
2296
+ $@@
2297
+ 0x30D8 HE
2298
+ $@
2299
+ $@
2300
+ ## $@
2301
+ # ## $@
2302
+ # ## $@
2303
+ ##$@
2304
+ $@
2305
+ $@@
2306
+ 0x30DB HO
2307
+ # $@
2308
+ ##########$@
2309
+ # $@
2310
+ # # # $@
2311
+ # # # $@
2312
+ # ## #$@
2313
+ # $@
2314
+ $@@
2315
+ 0x30DE MA
2316
+ $@
2317
+ ##########$@
2318
+ # $@
2319
+ # $@
2320
+ # # $@
2321
+ # $@
2322
+ # $@
2323
+ $@@
2324
+ 0x30DF MI
2325
+ #### $@
2326
+ ##$@
2327
+ ### $@
2328
+ ###$@
2329
+ $@
2330
+ ### $@
2331
+ ###$@
2332
+ $@@
2333
+ 0x30E0 MU
2334
+ # $@
2335
+ # $@
2336
+ # $@
2337
+ # $@
2338
+ # # $@
2339
+ ######### $@
2340
+ #$@
2341
+ $@@
2342
+ 0x30E1 ME
2343
+ #$@
2344
+ # $@
2345
+ # # $@
2346
+ # # $@
2347
+ # $@
2348
+ ## # $@
2349
+ ## # $@
2350
+ $@@
2351
+ 0x30E2 MO
2352
+ ###### $@
2353
+ # $@
2354
+ ##########$@
2355
+ # $@
2356
+ # $@
2357
+ # $@
2358
+ #### $@
2359
+ $@@
2360
+ 0x30E4 YA
2361
+ # ## $@
2362
+ # ## # $@
2363
+ ### $@
2364
+ # # $@
2365
+ # $@
2366
+ # $@
2367
+ # $@
2368
+ $@@
2369
+ 0x30E6 YU
2370
+ $@
2371
+ ###### $@
2372
+ # $@
2373
+ # $@
2374
+ # $@
2375
+ ##########$@
2376
+ $@
2377
+ $@@
2378
+ 0x30E8 YO
2379
+ $@
2380
+ ###### $@
2381
+ # $@
2382
+ # $@
2383
+ # $@
2384
+ ##########$@
2385
+ $@
2386
+ $@@
2387
+ 0x30E9 RA
2388
+ ###### $@
2389
+ $@
2390
+ ##########$@
2391
+ # #$@
2392
+ ## $@
2393
+ ## $@
2394
+ ## $@
2395
+ $@@
2396
+ 0x30EA RI
2397
+ # #$@
2398
+ # #$@
2399
+ # #$@
2400
+ # #$@
2401
+ # $@
2402
+ # $@
2403
+ ## $@
2404
+ $@@
2405
+ 0x30EB RU
2406
+ # # $@
2407
+ # # $@
2408
+ # # $@
2409
+ # # #$@
2410
+ # # # $@
2411
+ # # # $@
2412
+ # ## $@
2413
+ $@@
2414
+ 0x30EC RE
2415
+ # $@
2416
+ # $@
2417
+ # $@
2418
+ # ##$@
2419
+ # ## $@
2420
+ # ## $@
2421
+ ## $@
2422
+ $@@
2423
+ 0x30ED RO
2424
+ $@
2425
+ #########$@
2426
+ # #$@
2427
+ # #$@
2428
+ # #$@
2429
+ #########$@
2430
+ $@
2431
+ $@@
2432
+ 0x30EF WA
2433
+ ##########$@
2434
+ # #$@
2435
+ # $@
2436
+ # $@
2437
+ # $@
2438
+ ## $@
2439
+ ## $@
2440
+ $@@
2441
+ 0x30F0 WI
2442
+ # $@
2443
+ ####### $@
2444
+ # # $@
2445
+ # # $@
2446
+ ##########$@
2447
+ # $@
2448
+ # $@
2449
+ $@@
2450
+ 0x30F1 WE
2451
+ #########$@
2452
+ #$@
2453
+ #$@
2454
+ ######## $@
2455
+ # $@
2456
+ # $@
2457
+ ######## $@
2458
+ $@@
2459
+ 0x30F2 WO
2460
+ ##########$@
2461
+ #$@
2462
+ # $@
2463
+ ######## $@
2464
+ ## $@
2465
+ ## $@
2466
+ ## $@
2467
+ $@@
2468
+ 0x30F3 N
2469
+ #$@
2470
+ # #$@
2471
+ # # $@
2472
+ # $@
2473
+ ## $@
2474
+ ## $@
2475
+ ## $@
2476
+ $@@
2477
+ -0x0004 KATAMAP
2478
+ @
2479
+ a-A i-B u-C e-D o-E ka-F ki-G ku-H ke-I ko-J @
2480
+ sa-K shi-L su-M se-N so-O ta-P chi-Q tsu-R te-S to-T@
2481
+ na-U ni-V nu-W ne-X no-Y ha-Z hi-a fu-b he-c ho-d @
2482
+ ma-e mi-f mu-g me-h mo-i ya-j yu-k we-l yo-m @
2483
+ ra-n ri-o ru-p re-q ro-r wa-s wi-t wo-u @
2484
+ n-v @
2485
+ @@
2486
+ -0x0006 MOSCOWMAP
2487
+ a-a, b-b, v-v, g-g, d-d, e-e, zh-j, z-z, i-i@
2488
+ short i->, k-k, l-l, m-m, n-n, o-o, p-p, r-r@
2489
+ s-s, t-t, u-u, f-f, kh-h, ts-q, ch-c, sh-w @
2490
+ shch-x, hard-\, yeru-|, soft-/, reverse e-~ @
2491
+ yu-`, ya-y @
2492
+ Capitals use Latin capital letters, except: @
2493
+ Reverse E-<, Yu-@ @
2494
+ No caps for short i, hard, yeru, soft. @@