jpmobile 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/README +32 -10
  2. data/Rakefile +8 -8
  3. data/doc/classes/ActionController.html +120 -0
  4. data/doc/classes/ActionController/AbstractRequest.html +118 -0
  5. data/doc/classes/ActionController/CgiRequest.html +160 -0
  6. data/doc/classes/ActionView.html +101 -0
  7. data/doc/classes/DatumConv.html +324 -0
  8. data/doc/classes/Jpmobile/Display.html +333 -0
  9. data/doc/classes/Jpmobile/Emoticon.html +467 -0
  10. data/doc/classes/Jpmobile/Filter.html +120 -0
  11. data/doc/classes/Jpmobile/Filter/ApplyOnlyForMobile.html +172 -0
  12. data/doc/classes/Jpmobile/Filter/Base.html +269 -0
  13. data/doc/classes/Jpmobile/Filter/Emoticon.html +118 -0
  14. data/doc/classes/Jpmobile/Filter/Emoticon/Inner.html +184 -0
  15. data/doc/classes/Jpmobile/Filter/Emoticon/Outer.html +207 -0
  16. data/doc/classes/Jpmobile/Filter/FilterTable.html +178 -0
  17. data/doc/classes/Jpmobile/Filter/HankakuKana.html +126 -0
  18. data/doc/classes/Jpmobile/Filter/Sjis.html +271 -0
  19. data/doc/classes/Jpmobile/Helpers.html +588 -0
  20. data/doc/classes/Jpmobile/Mobile.html +150 -0
  21. data/doc/classes/Jpmobile/Mobile/AbstractMobile.html +389 -0
  22. data/doc/classes/Jpmobile/Mobile/Au.html +420 -0
  23. data/doc/classes/Jpmobile/Mobile/Ddipocket.html +138 -0
  24. data/doc/classes/Jpmobile/Mobile/Docomo.html +411 -0
  25. data/doc/classes/Jpmobile/Mobile/Emobile.html +183 -0
  26. data/doc/classes/Jpmobile/Mobile/Jphone.html +212 -0
  27. data/doc/classes/Jpmobile/Mobile/Softbank.html +344 -0
  28. data/doc/classes/Jpmobile/Mobile/Vodafone.html +176 -0
  29. data/doc/classes/Jpmobile/Mobile/Willcom.html +211 -0
  30. data/doc/classes/Jpmobile/Position.html +384 -0
  31. data/doc/classes/Jpmobile/RequestWithMobile.html +263 -0
  32. data/doc/created.rid +1 -0
  33. data/doc/files/CHANGELOG.html +110 -0
  34. data/doc/files/README.html +455 -0
  35. data/doc/files/lib/jpmobile/datum_conv_rb.html +110 -0
  36. data/doc/files/lib/jpmobile/emoticon/au_rb.html +124 -0
  37. data/doc/files/lib/jpmobile/emoticon/conversion_table_rb.html +124 -0
  38. data/doc/files/lib/jpmobile/emoticon/docomo_rb.html +119 -0
  39. data/doc/files/lib/jpmobile/emoticon/softbank_rb.html +119 -0
  40. data/doc/files/lib/jpmobile/emoticon/z_combine_rb.html +101 -0
  41. data/doc/files/lib/jpmobile/emoticon_rb.html +101 -0
  42. data/doc/files/lib/jpmobile/filter_rb.html +115 -0
  43. data/doc/files/lib/jpmobile/helpers_rb.html +105 -0
  44. data/doc/files/lib/jpmobile/hook_abstract_request_rb.html +108 -0
  45. data/doc/files/lib/jpmobile/hook_action_controller_rb.html +101 -0
  46. data/doc/files/lib/jpmobile/hook_action_view_rb.html +110 -0
  47. data/doc/files/lib/jpmobile/mobile/abstract_mobile_rb.html +108 -0
  48. data/doc/files/lib/jpmobile/mobile/au_rb.html +112 -0
  49. data/doc/files/lib/jpmobile/mobile/display_rb.html +111 -0
  50. data/doc/files/lib/jpmobile/mobile/docomo_rb.html +105 -0
  51. data/doc/files/lib/jpmobile/mobile/emobile_rb.html +105 -0
  52. data/doc/files/lib/jpmobile/mobile/softbank_rb.html +115 -0
  53. data/doc/files/lib/jpmobile/mobile/willcom_rb.html +108 -0
  54. data/doc/files/lib/jpmobile/mobile/z_display_info_docomo_rb.html +114 -0
  55. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_au_rb.html +114 -0
  56. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_docomo_rb.html +124 -0
  57. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_emobile_rb.html +111 -0
  58. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_softbank_rb.html +124 -0
  59. data/doc/files/lib/jpmobile/mobile/z_ip_addresses_willcom_rb.html +114 -0
  60. data/doc/files/lib/jpmobile/position_rb.html +105 -0
  61. data/doc/files/lib/jpmobile/request_with_mobile_rb.html +111 -0
  62. data/doc/files/lib/jpmobile/trans_sid_rb.html +118 -0
  63. data/doc/files/lib/jpmobile/version_rb.html +101 -0
  64. data/doc/files/lib/jpmobile_rb.html +101 -0
  65. data/doc/fr_class_index.html +55 -0
  66. data/doc/fr_file_index.html +58 -0
  67. data/doc/fr_method_index.html +134 -0
  68. data/doc/index.html +24 -0
  69. data/doc/rdoc-style.css +208 -0
  70. data/lib/jpmobile.rb +32 -1
  71. data/lib/jpmobile/emoticon.rb +18 -0
  72. data/lib/jpmobile/emoticon/au.rb +643 -0
  73. data/lib/jpmobile/filter.rb +5 -1
  74. data/lib/jpmobile/helpers.rb +9 -1
  75. data/lib/jpmobile/hook_abstract_request.rb +3 -24
  76. data/lib/jpmobile/hook_action_controller.rb +2 -2
  77. data/lib/jpmobile/hook_action_view.rb +41 -8
  78. data/lib/jpmobile/mobile/abstract_mobile.rb +18 -12
  79. data/lib/jpmobile/mobile/au.rb +11 -5
  80. data/lib/jpmobile/mobile/docomo.rb +27 -11
  81. data/lib/jpmobile/mobile/emobile.rb +15 -0
  82. data/lib/jpmobile/mobile/softbank.rb +11 -7
  83. data/lib/jpmobile/mobile/willcom.rb +5 -2
  84. data/lib/jpmobile/mobile/z_display_info_docomo.rb +343 -219
  85. data/lib/jpmobile/mobile/z_ip_addresses_au.rb +4 -1
  86. data/lib/jpmobile/mobile/z_ip_addresses_docomo.rb +10 -0
  87. data/lib/jpmobile/mobile/z_ip_addresses_emobile.rb +10 -0
  88. data/lib/jpmobile/mobile/{z_ip_addresses.rb → z_ip_addresses_softbank.rb} +2 -13
  89. data/lib/jpmobile/mobile/z_ip_addresses_willcom.rb +20 -1
  90. data/lib/jpmobile/position.rb +2 -2
  91. data/lib/jpmobile/request_with_mobile.rb +44 -0
  92. data/lib/jpmobile/trans_sid.rb +52 -14
  93. data/lib/jpmobile/version.rb +1 -1
  94. data/test/au_test.rb +94 -63
  95. data/test/autoload_test.rb +49 -0
  96. data/test/docomo_test.rb +92 -59
  97. data/test/emoticon_functional_test.rb +30 -3
  98. data/test/filter_test.rb +0 -64
  99. data/test/helper.rb +8 -1
  100. data/test/helpers_test.rb +14 -13
  101. data/test/softbank_test.rb +113 -85
  102. data/test/willcom_test.rb +30 -20
  103. data/tools/generate_au_emoticon_table.rb +12 -3
  104. data/tools/update_display_info_docomo.rb +0 -0
  105. data/tools/update_ip_addresses_au.rb +1 -1
  106. data/tools/update_ip_addresses_willcom.rb +1 -1
  107. metadata +135 -54
  108. data/test/filter_functional_test.rb +0 -146
data/doc/index.html ADDED
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding=" UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
5
+
6
+ <!--
7
+
8
+ Jpmobile
9
+
10
+ -->
11
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
+ <head>
13
+ <title>Jpmobile</title>
14
+ <meta http-equiv="Content-Type" content="text/html; charset= UTF-8" />
15
+ </head>
16
+ <frameset rows="20%, 80%">
17
+ <frameset cols="25%,35%,45%">
18
+ <frame src="fr_file_index.html" title="Files" name="Files" />
19
+ <frame src="fr_class_index.html" name="Classes" />
20
+ <frame src="fr_method_index.html" name="Methods" />
21
+ </frameset>
22
+ <frame src="files/README.html" name="docwin" />
23
+ </frameset>
24
+ </html>
@@ -0,0 +1,208 @@
1
+
2
+ body {
3
+ font-family: Verdana,Arial,Helvetica,sans-serif;
4
+ font-size: 90%;
5
+ margin: 0;
6
+ margin-left: 40px;
7
+ padding: 0;
8
+ background: white;
9
+ }
10
+
11
+ h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
12
+ h1 { font-size: 150%; }
13
+ h2,h3,h4 { margin-top: 1em; }
14
+
15
+ a { background: #eef; color: #039; text-decoration: none; }
16
+ a:hover { background: #039; color: #eef; }
17
+
18
+ /* Override the base stylesheet's Anchor inside a table cell */
19
+ td > a {
20
+ background: transparent;
21
+ color: #039;
22
+ text-decoration: none;
23
+ }
24
+
25
+ /* and inside a section title */
26
+ .section-title > a {
27
+ background: transparent;
28
+ color: #eee;
29
+ text-decoration: none;
30
+ }
31
+
32
+ /* === Structural elements =================================== */
33
+
34
+ div#index {
35
+ margin: 0;
36
+ margin-left: -40px;
37
+ padding: 0;
38
+ font-size: 90%;
39
+ }
40
+
41
+
42
+ div#index a {
43
+ margin-left: 0.7em;
44
+ }
45
+
46
+ div#index .section-bar {
47
+ margin-left: 0px;
48
+ padding-left: 0.7em;
49
+ background: #ccc;
50
+ font-size: small;
51
+ }
52
+
53
+
54
+ div#classHeader, div#fileHeader {
55
+ width: auto;
56
+ color: white;
57
+ padding: 0.5em 1.5em 0.5em 1.5em;
58
+ margin: 0;
59
+ margin-left: -40px;
60
+ border-bottom: 3px solid #006;
61
+ }
62
+
63
+ div#classHeader a, div#fileHeader a {
64
+ background: inherit;
65
+ color: white;
66
+ }
67
+
68
+ div#classHeader td, div#fileHeader td {
69
+ background: inherit;
70
+ color: white;
71
+ }
72
+
73
+
74
+ div#fileHeader {
75
+ background: #057;
76
+ }
77
+
78
+ div#classHeader {
79
+ background: #048;
80
+ }
81
+
82
+
83
+ .class-name-in-header {
84
+ font-size: 180%;
85
+ font-weight: bold;
86
+ }
87
+
88
+
89
+ div#bodyContent {
90
+ padding: 0 1.5em 0 1.5em;
91
+ }
92
+
93
+ div#description {
94
+ padding: 0.5em 1.5em;
95
+ background: #efefef;
96
+ border: 1px dotted #999;
97
+ }
98
+
99
+ div#description h1,h2,h3,h4,h5,h6 {
100
+ color: #125;;
101
+ background: transparent;
102
+ }
103
+
104
+ div#validator-badges {
105
+ text-align: center;
106
+ }
107
+ div#validator-badges img { border: 0; }
108
+
109
+ div#copyright {
110
+ color: #333;
111
+ background: #efefef;
112
+ font: 0.75em sans-serif;
113
+ margin-top: 5em;
114
+ margin-bottom: 0;
115
+ padding: 0.5em 2em;
116
+ }
117
+
118
+
119
+ /* === Classes =================================== */
120
+
121
+ table.header-table {
122
+ color: white;
123
+ font-size: small;
124
+ }
125
+
126
+ .type-note {
127
+ font-size: small;
128
+ color: #DEDEDE;
129
+ }
130
+
131
+ .xxsection-bar {
132
+ background: #eee;
133
+ color: #333;
134
+ padding: 3px;
135
+ }
136
+
137
+ .section-bar {
138
+ color: #333;
139
+ border-bottom: 1px solid #999;
140
+ margin-left: -20px;
141
+ }
142
+
143
+
144
+ .section-title {
145
+ background: #79a;
146
+ color: #eee;
147
+ padding: 3px;
148
+ margin-top: 2em;
149
+ margin-left: -30px;
150
+ border: 1px solid #999;
151
+ }
152
+
153
+ .top-aligned-row { vertical-align: top }
154
+ .bottom-aligned-row { vertical-align: bottom }
155
+
156
+ /* --- Context section classes ----------------------- */
157
+
158
+ .context-row { }
159
+ .context-item-name { font-family: monospace; font-weight: bold; color: black; }
160
+ .context-item-value { font-size: small; color: #448; }
161
+ .context-item-desc { color: #333; padding-left: 2em; }
162
+
163
+ /* --- Method classes -------------------------- */
164
+ .method-detail {
165
+ background: #efefef;
166
+ padding: 0;
167
+ margin-top: 0.5em;
168
+ margin-bottom: 1em;
169
+ border: 1px dotted #ccc;
170
+ }
171
+ .method-heading {
172
+ color: black;
173
+ background: #ccc;
174
+ border-bottom: 1px solid #666;
175
+ padding: 0.2em 0.5em 0 0.5em;
176
+ }
177
+ .method-signature { color: black; background: inherit; }
178
+ .method-name { font-weight: bold; }
179
+ .method-args { font-style: italic; }
180
+ .method-description { padding: 0 0.5em 0 0.5em; }
181
+
182
+ /* --- Source code sections -------------------- */
183
+
184
+ a.source-toggle { font-size: 90%; }
185
+ div.method-source-code {
186
+ background: #262626;
187
+ color: #ffdead;
188
+ margin: 1em;
189
+ padding: 0.5em;
190
+ border: 1px dashed #999;
191
+ overflow: hidden;
192
+ }
193
+
194
+ div.method-source-code pre { color: #ffdead; overflow: hidden; }
195
+
196
+ /* --- Ruby keyword styles --------------------- */
197
+
198
+ .standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
199
+
200
+ .ruby-constant { color: #7fffd4; background: transparent; }
201
+ .ruby-keyword { color: #00ffff; background: transparent; }
202
+ .ruby-ivar { color: #eedd82; background: transparent; }
203
+ .ruby-operator { color: #00ffee; background: transparent; }
204
+ .ruby-identifier { color: #ffdead; background: transparent; }
205
+ .ruby-node { color: #ffa07a; background: transparent; }
206
+ .ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
207
+ .ruby-regexp { color: #ffa07a; background: transparent; }
208
+ .ruby-value { color: #7fffd4; background: transparent; }
data/lib/jpmobile.rb CHANGED
@@ -1 +1,32 @@
1
- Dir[File.join(File.dirname(__FILE__), 'jpmobile/**/*.rb')].sort.each { |lib| require lib }
1
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
2
+
3
+ module Jpmobile
4
+ autoload :Emoticon, 'jpmobile/emoticon'
5
+ autoload :Position, 'jpmobile/position'
6
+ autoload :RequestWithMobile, 'jpmobile/request_with_mobile'
7
+
8
+ module Mobile
9
+ autoload :Docomo, 'jpmobile/mobile/docomo'
10
+ autoload :Au, 'jpmobile/mobile/au'
11
+ autoload :Softbank, 'jpmobile/mobile/softbank'
12
+ autoload :Vodafone, 'jpmobile/mobile/softbank'
13
+ autoload :Jphone, 'jpmobile/mobile/softbank'
14
+ autoload :Emobile, 'jpmobile/mobile/emobile'
15
+ autoload :Willcom, 'jpmobile/mobile/willcom'
16
+ autoload :Ddipocket, 'jpmobile/mobile/willcom'
17
+ end
18
+ end
19
+
20
+ %w(
21
+ jpmobile/version.rb
22
+ jpmobile/mobile/abstract_mobile.rb
23
+ jpmobile/mobile/display.rb
24
+ ).each do |lib|
25
+ require File.expand_path(File.join(File.dirname(__FILE__), lib))
26
+ end
27
+
28
+ if defined? RAILS_ENV
29
+ Dir[File.expand_path(File.join(File.dirname(__FILE__), 'jpmobile/*.rb'))].sort.each { |lib|
30
+ require lib
31
+ }
32
+ end
@@ -1,6 +1,24 @@
1
1
  module Jpmobile
2
2
  # 絵文字関連処理
3
3
  module Emoticon
4
+ %w( DOCOMO_SJIS_TO_UNICODE DOCOMO_UNICODE_TO_SJIS ).each do |const|
5
+ autoload const, 'jpmobile/emoticon/docomo'
6
+ end
7
+ autoload :AU_SJIS_TO_UNICODE, 'jpmobile/emoticon/au'
8
+ %w( SOFTBANK_UNICODE_TO_WEBCODE SOFTBANK_WEBCODE_TO_UNICODE ).each do |const|
9
+ autoload const, 'jpmobile/emoticon/softbank'
10
+ end
11
+ %w( CONVERSION_TABLE_TO_DOCOMO CONVERSION_TABLE_TO_AU CONVERSION_TABLE_TO_SOFTBANK ).each do |const|
12
+ autoload const, 'jpmobile/emoticon/conversion_table'
13
+ end
14
+ %w(
15
+ SJIS_TO_UNICODE UNICODE_TO_SJIS
16
+ SJIS_REGEXP SOFTBANK_WEBCODE_REGEXP DOCOMO_SJIS_REGEXP AU_SJIS_REGEXP SOFTBANK_UNICODE_REGEXP
17
+ EMOTICON_UNICODES UTF8_REGEXP
18
+ ).each do |const|
19
+ autoload const, 'jpmobile/emoticon/z_combine'
20
+ end
21
+
4
22
  # +str+ のなかでDoCoMo絵文字をUnicode数値文字参照に置換した文字列を返す。
5
23
  def self.external_to_unicodecr_docomo(str)
6
24
  str.gsub(DOCOMO_SJIS_REGEXP) do |match|
@@ -642,3 +642,646 @@ Jpmobile::Emoticon::AU_SJIS_TO_UNICODE = {
642
642
  0xF48D=>0xEB88,
643
643
  }.freeze
644
644
  Jpmobile::Emoticon::AU_UNICODE_TO_SJIS = Jpmobile::Emoticon::AU_SJIS_TO_UNICODE.invert.freeze
645
+ Jpmobile::Emoticon::AU_EMAILJIS_TO_UNICODE = {
646
+ 0x753A=>0xE481,
647
+ 0x773F=>0xE542,
648
+ 0x753B=>0xE482,
649
+ 0x7740=>0xE543,
650
+ 0x753C=>0xE483,
651
+ 0x7741=>0xE544,
652
+ 0x7729=>0xE52C,
653
+ 0x7742=>0xE545,
654
+ 0x772A=>0xE52D,
655
+ 0x7743=>0xE546,
656
+ 0x772B=>0xE52E,
657
+ 0x7744=>0xE547,
658
+ 0x772C=>0xE52F,
659
+ 0x7745=>0xE548,
660
+ 0x772D=>0xE530,
661
+ 0x7746=>0xE549,
662
+ 0x772E=>0xE531,
663
+ 0x7747=>0xE54A,
664
+ 0x772F=>0xE532,
665
+ 0x7748=>0xE54B,
666
+ 0x7730=>0xE533,
667
+ 0x7749=>0xE54C,
668
+ 0x757A=>0xE4C1,
669
+ 0x774A=>0xE54D,
670
+ 0x766C=>0xE511,
671
+ 0x7541=>0xE488,
672
+ 0x7776=>0xE579,
673
+ 0x7573=>0xE4BA,
674
+ 0x753F=>0xE486,
675
+ 0x7833=>0xE594,
676
+ 0x7540=>0xE487,
677
+ 0x7542=>0xE489,
678
+ 0x7731=>0xE534,
679
+ 0x766D=>0xE512,
680
+ 0x7732=>0xE535,
681
+ 0x775D=>0xE560,
682
+ 0x7733=>0xE536,
683
+ 0x7655=>0xE4FA,
684
+ 0x7734=>0xE537,
685
+ 0x7834=>0xE595,
686
+ 0x7735=>0xE538,
687
+ 0x757B=>0xE4C2,
688
+ 0x7736=>0xE539,
689
+ 0x766E=>0xE513,
690
+ 0x7737=>0xE53A,
691
+ 0x774B=>0xE54E,
692
+ 0x7738=>0xE53B,
693
+ 0x774C=>0xE54F,
694
+ 0x7777=>0xE57A,
695
+ 0x775E=>0xE561,
696
+ 0x7739=>0xE53C,
697
+ 0x7778=>0xE57B,
698
+ 0x773A=>0xE53D,
699
+ 0x7535=>0xE47C,
700
+ 0x773B=>0xE53E,
701
+ 0x775F=>0xE562,
702
+ 0x773C=>0xE53F,
703
+ 0x7543=>0xE48A,
704
+ 0x773D=>0xE540,
705
+ 0x774D=>0xE550,
706
+ 0x773E=>0xE541,
707
+ 0x774E=>0xE551,
708
+ 0x774F=>0xE552,
709
+ 0x7670=>0xE515,
710
+ 0x7750=>0xE553,
711
+ 0x7545=>0xE48C,
712
+ 0x757C=>0xE4C3,
713
+ 0x7574=>0xE4BB,
714
+ 0x7751=>0xE554,
715
+ 0x7762=>0xE565,
716
+ 0x7760=>0xE563,
717
+ 0x753D=>0xE484,
718
+ 0x7656=>0xE4FB,
719
+ 0x7523=>0xE46A,
720
+ 0x7544=>0xE48B,
721
+ 0x7763=>0xE566,
722
+ 0x7752=>0xE555,
723
+ 0x7764=>0xE567,
724
+ 0x7753=>0xE556,
725
+ 0x7765=>0xE568,
726
+ 0x766F=>0xE514,
727
+ 0x7766=>0xE569,
728
+ 0x7754=>0xE557,
729
+ 0x7671=>0xE516,
730
+ 0x763A=>0xE4DF,
731
+ 0x7767=>0xE56A,
732
+ 0x7521=>0xE468,
733
+ 0x7557=>0xE49E,
734
+ 0x7525=>0xE46C,
735
+ 0x7546=>0xE48D,
736
+ 0x752F=>0xE476,
737
+ 0x767C=>0xE521,
738
+ 0x763B=>0xE4E0,
739
+ 0x777A=>0xE57D,
740
+ 0x782E=>0xE58F,
741
+ 0x7672=>0xE517,
742
+ 0x7657=>0xE4FC,
743
+ 0x777B=>0xE57E,
744
+ 0x7755=>0xE558,
745
+ 0x7564=>0xE4AB,
746
+ 0x7756=>0xE559,
747
+ 0x763F=>0xE4E4,
748
+ 0x7555=>0xE49C,
749
+ 0x777C=>0xE57F,
750
+ 0x782F=>0xE590,
751
+ 0x777D=>0xE580,
752
+ 0x7835=>0xE596,
753
+ 0x7659=>0xE4FE,
754
+ 0x7658=>0xE4FD,
755
+ 0x7759=>0xE55C,
756
+ 0x7779=>0xE57C,
757
+ 0x775A=>0xE55D,
758
+ 0x7757=>0xE55A,
759
+ 0x7673=>0xE518,
760
+ 0x7758=>0xE55B,
761
+ 0x7674=>0xE519,
762
+ 0x7770=>0xE573,
763
+ 0x7768=>0xE56B,
764
+ 0x7556=>0xE49D,
765
+ 0x7558=>0xE49F,
766
+ 0x7761=>0xE564,
767
+ 0x777E=>0xE581,
768
+ 0x7836=>0xE597,
769
+ 0x7675=>0xE51A,
770
+ 0x756A=>0xE4B1,
771
+ 0x7566=>0xE4AD,
772
+ 0x7821=>0xE582,
773
+ 0x776D=>0xE570,
774
+ 0x7771=>0xE574,
775
+ 0x755B=>0xE4A2,
776
+ 0x7772=>0xE575,
777
+ 0x7773=>0xE576,
778
+ 0x7676=>0xE51B,
779
+ 0x757D=>0xE4C4,
780
+ 0x7822=>0xE583,
781
+ 0x7827=>0xE588,
782
+ 0x7769=>0xE56C,
783
+ 0x7828=>0xE589,
784
+ 0x775B=>0xE55E,
785
+ 0x765C=>0xE501,
786
+ 0x7629=>0xE4CE,
787
+ 0x7829=>0xE58A,
788
+ 0x763C=>0xE4E1,
789
+ 0x767A=>0xE51F,
790
+ 0x7823=>0xE584,
791
+ 0x767B=>0xE520,
792
+ 0x775C=>0xE55F,
793
+ 0x7547=>0xE48E,
794
+ 0x776A=>0xE56D,
795
+ 0x756C=>0xE4B3,
796
+ 0x7677=>0xE51C,
797
+ 0x756D=>0xE4B4,
798
+ 0x7824=>0xE585,
799
+ 0x7623=>0xE4C8,
800
+ 0x765A=>0xE4FF,
801
+ 0x782A=>0xE58B,
802
+ 0x765B=>0xE500,
803
+ 0x756E=>0xE4B5,
804
+ 0x776B=>0xE56E,
805
+ 0x782B=>0xE58C,
806
+ 0x7559=>0xE4A0,
807
+ 0x782C=>0xE58D,
808
+ 0x762A=>0xE4CF,
809
+ 0x782D=>0xE58E,
810
+ 0x7678=>0xE51D,
811
+ 0x7536=>0xE47D,
812
+ 0x7565=>0xE4AC,
813
+ 0x7537=>0xE47E,
814
+ 0x776C=>0xE56F,
815
+ 0x7538=>0xE47F,
816
+ 0x756B=>0xE4B2,
817
+ 0x7539=>0xE480,
818
+ 0x755A=>0xE4A1,
819
+ 0x767D=>0xE522,
820
+ 0x7825=>0xE586,
821
+ 0x767E=>0xE523,
822
+ 0x7830=>0xE591,
823
+ 0x7721=>0xE524,
824
+ 0x7826=>0xE587,
825
+ 0x7722=>0xE525,
826
+ 0x7831=>0xE592,
827
+ 0x7723=>0xE526,
828
+ 0x7832=>0xE593,
829
+ 0x7724=>0xE527,
830
+ 0x7679=>0xE51E,
831
+ 0x7725=>0xE528,
832
+ 0x7726=>0xE529,
833
+ 0x7524=>0xE46B,
834
+ 0x7727=>0xE52A,
835
+ 0x756F=>0xE4B6,
836
+ 0x7728=>0xE52B,
837
+ 0x7570=>0xE4B7,
838
+ 0x7522=>0xE469,
839
+ 0x7571=>0xE4B8,
840
+ 0x753E=>0xE485,
841
+ 0x7572=>0xE4B9,
842
+ 0x7548=>0xE48F,
843
+ 0x7526=>0xE46D,
844
+ 0x7549=>0xE490,
845
+ 0x7575=>0xE4BC,
846
+ 0x754A=>0xE491,
847
+ 0x7576=>0xE4BD,
848
+ 0x754B=>0xE492,
849
+ 0x7577=>0xE4BE,
850
+ 0x754C=>0xE493,
851
+ 0x7578=>0xE4BF,
852
+ 0x754D=>0xE494,
853
+ 0x7579=>0xE4C0,
854
+ 0x754E=>0xE495,
855
+ 0x7527=>0xE46E,
856
+ 0x754F=>0xE496,
857
+ 0x7528=>0xE46F,
858
+ 0x7550=>0xE497,
859
+ 0x757E=>0xE4C5,
860
+ 0x7551=>0xE498,
861
+ 0x7621=>0xE4C6,
862
+ 0x7552=>0xE499,
863
+ 0x7622=>0xE4C7,
864
+ 0x7553=>0xE49A,
865
+ 0x7624=>0xE4C9,
866
+ 0x7554=>0xE49B,
867
+ 0x7625=>0xE4CA,
868
+ 0x755C=>0xE4A3,
869
+ 0x7626=>0xE4CB,
870
+ 0x755D=>0xE4A4,
871
+ 0x7627=>0xE4CC,
872
+ 0x755E=>0xE4A5,
873
+ 0x7628=>0xE4CD,
874
+ 0x755F=>0xE4A6,
875
+ 0x762B=>0xE4D0,
876
+ 0x7560=>0xE4A7,
877
+ 0x762C=>0xE4D1,
878
+ 0x7561=>0xE4A8,
879
+ 0x762D=>0xE4D2,
880
+ 0x7562=>0xE4A9,
881
+ 0x762E=>0xE4D3,
882
+ 0x7563=>0xE4AA,
883
+ 0x762F=>0xE4D4,
884
+ 0x776E=>0xE571,
885
+ 0x7630=>0xE4D5,
886
+ 0x776F=>0xE572,
887
+ 0x7631=>0xE4D6,
888
+ 0x7567=>0xE4AE,
889
+ 0x7529=>0xE470,
890
+ 0x7568=>0xE4AF,
891
+ 0x7632=>0xE4D7,
892
+ 0x7569=>0xE4B0,
893
+ 0x7633=>0xE4D8,
894
+ 0x7634=>0xE4D9,
895
+ 0x764D=>0xE4F2,
896
+ 0x7635=>0xE4DA,
897
+ 0x764E=>0xE4F3,
898
+ 0x7636=>0xE4DB,
899
+ 0x764F=>0xE4F4,
900
+ 0x7637=>0xE4DC,
901
+ 0x7650=>0xE4F5,
902
+ 0x7638=>0xE4DD,
903
+ 0x7651=>0xE4F6,
904
+ 0x7639=>0xE4DE,
905
+ 0x7652=>0xE4F7,
906
+ 0x763D=>0xE4E2,
907
+ 0x7653=>0xE4F8,
908
+ 0x763E=>0xE4E3,
909
+ 0x7654=>0xE4F9,
910
+ 0x752A=>0xE471,
911
+ 0x765D=>0xE502,
912
+ 0x752B=>0xE472,
913
+ 0x765E=>0xE503,
914
+ 0x752C=>0xE473,
915
+ 0x765F=>0xE504,
916
+ 0x752D=>0xE474,
917
+ 0x7660=>0xE505,
918
+ 0x752E=>0xE475,
919
+ 0x7661=>0xE506,
920
+ 0x7640=>0xE4E5,
921
+ 0x7662=>0xE507,
922
+ 0x7641=>0xE4E6,
923
+ 0x7663=>0xE508,
924
+ 0x7642=>0xE4E7,
925
+ 0x7664=>0xE509,
926
+ 0x7530=>0xE477,
927
+ 0x7665=>0xE50A,
928
+ 0x7531=>0xE478,
929
+ 0x7666=>0xE50B,
930
+ 0x7532=>0xE479,
931
+ 0x7774=>0xE577,
932
+ 0x7533=>0xE47A,
933
+ 0x7775=>0xE578,
934
+ 0x7534=>0xE47B,
935
+ 0x7667=>0xE50C,
936
+ 0x7643=>0xE4E8,
937
+ 0x7668=>0xE50D,
938
+ 0x7644=>0xE4E9,
939
+ 0x7669=>0xE50E,
940
+ 0x7645=>0xE4EA,
941
+ 0x766A=>0xE50F,
942
+ 0x7646=>0xE4EB,
943
+ 0x766B=>0xE510,
944
+ 0x7647=>0xE4EC,
945
+ 0x7837=>0xE598,
946
+ 0x7648=>0xE4ED,
947
+ 0x7838=>0xE599,
948
+ 0x7649=>0xE4EE,
949
+ 0x7839=>0xE59A,
950
+ 0x764A=>0xE4EF,
951
+ 0x783A=>0xE59B,
952
+ 0x764B=>0xE4F0,
953
+ 0x783B=>0xE59C,
954
+ 0x764C=>0xE4F1,
955
+ 0x783C=>0xE59D,
956
+ 0x783D=>0xE59E,
957
+ 0x786F=>0xE5BD,
958
+ 0x783E=>0xE59F,
959
+ 0x7870=>0xE5BE,
960
+ 0x783F=>0xE5A0,
961
+ 0x7871=>0xE5BF,
962
+ 0x7840=>0xE5A1,
963
+ 0x7872=>0xE5C0,
964
+ 0x7841=>0xE5A2,
965
+ 0x7873=>0xE5C1,
966
+ 0x7842=>0xE5A3,
967
+ 0x7874=>0xE5C2,
968
+ 0x7843=>0xE5A4,
969
+ 0x7875=>0xE5C3,
970
+ 0x7844=>0xE5A5,
971
+ 0x7876=>0xE5C4,
972
+ 0x7845=>0xE5A6,
973
+ 0x7877=>0xE5C5,
974
+ 0x7846=>0xE5A7,
975
+ 0x7878=>0xE5C6,
976
+ 0x7847=>0xE5A8,
977
+ 0x7879=>0xE5C7,
978
+ 0x7848=>0xE5A9,
979
+ 0x787A=>0xE5C8,
980
+ 0x7849=>0xE5AA,
981
+ 0x787B=>0xE5C9,
982
+ 0x784A=>0xE5AB,
983
+ 0x787C=>0xE5CA,
984
+ 0x784B=>0xE5AC,
985
+ 0x787D=>0xE5CB,
986
+ 0x784C=>0xE5AD,
987
+ 0x787E=>0xE5CC,
988
+ 0x784D=>0xE5AE,
989
+ 0x7921=>0xE5CD,
990
+ 0x784E=>0xE5AF,
991
+ 0x7922=>0xE5CE,
992
+ 0x784F=>0xE5B0,
993
+ 0x7923=>0xE5CF,
994
+ 0x7850=>0xE5B1,
995
+ 0x7924=>0xE5D0,
996
+ 0x7851=>0xE5B2,
997
+ 0x7925=>0xE5D1,
998
+ 0x7852=>0xE5B3,
999
+ 0x7926=>0xE5D2,
1000
+ 0x7853=>0xE5B4,
1001
+ 0x7927=>0xE5D3,
1002
+ 0x7867=>0xE5B5,
1003
+ 0x7928=>0xE5D4,
1004
+ 0x7868=>0xE5B6,
1005
+ 0x7929=>0xE5D5,
1006
+ 0x7869=>0xE5B7,
1007
+ 0x792A=>0xE5D6,
1008
+ 0x786A=>0xE5B8,
1009
+ 0x792B=>0xE5D7,
1010
+ 0x786B=>0xE5B9,
1011
+ 0x792C=>0xE5D8,
1012
+ 0x786C=>0xE5BA,
1013
+ 0x792D=>0xE5D9,
1014
+ 0x786D=>0xE5BB,
1015
+ 0x792E=>0xE5DA,
1016
+ 0x786E=>0xE5BC,
1017
+ 0x792F=>0xE5DB,
1018
+ 0x7930=>0xE5DC,
1019
+ 0x794F=>0xEA9B,
1020
+ 0x7931=>0xE5DD,
1021
+ 0x7950=>0xEA9C,
1022
+ 0x7932=>0xE5DE,
1023
+ 0x7951=>0xEA9D,
1024
+ 0x7933=>0xE5DF,
1025
+ 0x7952=>0xEA9E,
1026
+ 0x7934=>0xEA80,
1027
+ 0x7953=>0xEA9F,
1028
+ 0x7935=>0xEA81,
1029
+ 0x7954=>0xEAA0,
1030
+ 0x7936=>0xEA82,
1031
+ 0x7955=>0xEAA1,
1032
+ 0x7937=>0xEA83,
1033
+ 0x7956=>0xEAA2,
1034
+ 0x7938=>0xEA84,
1035
+ 0x7957=>0xEAA3,
1036
+ 0x7939=>0xEA85,
1037
+ 0x7958=>0xEAA4,
1038
+ 0x793A=>0xEA86,
1039
+ 0x7959=>0xEAA5,
1040
+ 0x793B=>0xEA87,
1041
+ 0x795A=>0xEAA6,
1042
+ 0x793C=>0xEA88,
1043
+ 0x795B=>0xEAA7,
1044
+ 0x793D=>0xEA89,
1045
+ 0x795C=>0xEAA8,
1046
+ 0x793E=>0xEA8A,
1047
+ 0x795D=>0xEAA9,
1048
+ 0x793F=>0xEA8B,
1049
+ 0x795E=>0xEAAA,
1050
+ 0x7940=>0xEA8C,
1051
+ 0x795F=>0xEAAB,
1052
+ 0x7941=>0xEA8D,
1053
+ 0x7960=>0xEAAC,
1054
+ 0x7942=>0xEA8E,
1055
+ 0x7961=>0xEAAD,
1056
+ 0x7943=>0xEA8F,
1057
+ 0x7962=>0xEAAE,
1058
+ 0x7944=>0xEA90,
1059
+ 0x7963=>0xEAAF,
1060
+ 0x7945=>0xEA91,
1061
+ 0x7964=>0xEAB0,
1062
+ 0x7946=>0xEA92,
1063
+ 0x7965=>0xEAB1,
1064
+ 0x7947=>0xEA93,
1065
+ 0x7966=>0xEAB2,
1066
+ 0x7948=>0xEA94,
1067
+ 0x7967=>0xEAB3,
1068
+ 0x7949=>0xEA95,
1069
+ 0x7968=>0xEAB4,
1070
+ 0x794A=>0xEA96,
1071
+ 0x7969=>0xEAB5,
1072
+ 0x794B=>0xEA97,
1073
+ 0x796A=>0xEAB6,
1074
+ 0x794C=>0xEA98,
1075
+ 0x796B=>0xEAB7,
1076
+ 0x794D=>0xEA99,
1077
+ 0x796C=>0xEAB8,
1078
+ 0x794E=>0xEA9A,
1079
+ 0x796D=>0xEAB9,
1080
+ 0x796E=>0xEABA,
1081
+ 0x7A2F=>0xEAD9,
1082
+ 0x796F=>0xEABB,
1083
+ 0x7A30=>0xEADA,
1084
+ 0x7970=>0xEABC,
1085
+ 0x7A31=>0xEADB,
1086
+ 0x7971=>0xEABD,
1087
+ 0x7A32=>0xEADC,
1088
+ 0x7972=>0xEABE,
1089
+ 0x7A33=>0xEADD,
1090
+ 0x7973=>0xEABF,
1091
+ 0x7A34=>0xEADE,
1092
+ 0x7974=>0xEAC0,
1093
+ 0x7A35=>0xEADF,
1094
+ 0x7975=>0xEAC1,
1095
+ 0x7A36=>0xEAE0,
1096
+ 0x7976=>0xEAC2,
1097
+ 0x7A37=>0xEAE1,
1098
+ 0x7977=>0xEAC3,
1099
+ 0x7A38=>0xEAE2,
1100
+ 0x7978=>0xEAC4,
1101
+ 0x7A39=>0xEAE3,
1102
+ 0x7979=>0xEAC5,
1103
+ 0x7A3A=>0xEAE4,
1104
+ 0x797A=>0xEAC6,
1105
+ 0x7A3B=>0xEAE5,
1106
+ 0x797B=>0xEAC7,
1107
+ 0x7A3C=>0xEAE6,
1108
+ 0x797C=>0xEAC8,
1109
+ 0x7A3D=>0xEAE7,
1110
+ 0x797D=>0xEAC9,
1111
+ 0x7A3E=>0xEAE8,
1112
+ 0x797E=>0xEACA,
1113
+ 0x7A3F=>0xEAE9,
1114
+ 0x7A21=>0xEACB,
1115
+ 0x7A40=>0xEAEA,
1116
+ 0x7A22=>0xEACC,
1117
+ 0x7A41=>0xEAEB,
1118
+ 0x7A23=>0xEACD,
1119
+ 0x7A42=>0xEAEC,
1120
+ 0x7A24=>0xEACE,
1121
+ 0x7A43=>0xEAED,
1122
+ 0x7A25=>0xEACF,
1123
+ 0x7A44=>0xEAEE,
1124
+ 0x7A26=>0xEAD0,
1125
+ 0x7A45=>0xEAEF,
1126
+ 0x7A27=>0xEAD1,
1127
+ 0x7A46=>0xEAF0,
1128
+ 0x7A28=>0xEAD2,
1129
+ 0x7A47=>0xEAF1,
1130
+ 0x7A29=>0xEAD3,
1131
+ 0x7A48=>0xEAF2,
1132
+ 0x7A2A=>0xEAD4,
1133
+ 0x7A49=>0xEAF3,
1134
+ 0x7A2B=>0xEAD5,
1135
+ 0x7A4A=>0xEAF4,
1136
+ 0x7A2C=>0xEAD6,
1137
+ 0x7A4B=>0xEAF5,
1138
+ 0x7A2D=>0xEAD7,
1139
+ 0x7A4C=>0xEAF6,
1140
+ 0x7A2E=>0xEAD8,
1141
+ 0x7A4D=>0xEAF7,
1142
+ 0x7A4E=>0xEAF8,
1143
+ 0x7A5A=>0xEB17,
1144
+ 0x7A4F=>0xEAF9,
1145
+ 0x7A5B=>0xEB18,
1146
+ 0x7A50=>0xEAFA,
1147
+ 0x7A5C=>0xEB19,
1148
+ 0x7854=>0xEAFB,
1149
+ 0x7A5D=>0xEB1A,
1150
+ 0x7855=>0xEAFC,
1151
+ 0x7A5E=>0xEB1B,
1152
+ 0x7856=>0xEAFD,
1153
+ 0x7A5F=>0xEB1C,
1154
+ 0x7857=>0xEAFE,
1155
+ 0x7A60=>0xEB1D,
1156
+ 0x7858=>0xEAFF,
1157
+ 0x7A61=>0xEB1E,
1158
+ 0x7859=>0xEB00,
1159
+ 0x7A62=>0xEB1F,
1160
+ 0x785A=>0xEB01,
1161
+ 0x7A63=>0xEB20,
1162
+ 0x785B=>0xEB02,
1163
+ 0x7A64=>0xEB21,
1164
+ 0x785C=>0xEB03,
1165
+ 0x7A65=>0xEB22,
1166
+ 0x785D=>0xEB04,
1167
+ 0x7A66=>0xEB23,
1168
+ 0x785E=>0xEB05,
1169
+ 0x7A67=>0xEB24,
1170
+ 0x785F=>0xEB06,
1171
+ 0x7A68=>0xEB25,
1172
+ 0x7860=>0xEB07,
1173
+ 0x7A69=>0xEB26,
1174
+ 0x7861=>0xEB08,
1175
+ 0x7A6A=>0xEB27,
1176
+ 0x7862=>0xEB09,
1177
+ 0x7A6B=>0xEB28,
1178
+ 0x7863=>0xEB0A,
1179
+ 0x7A6C=>0xEB29,
1180
+ 0x7864=>0xEB0B,
1181
+ 0x7A6D=>0xEB2A,
1182
+ 0x7865=>0xEB0C,
1183
+ 0x7A6E=>0xEB2B,
1184
+ 0x7866=>0xEB0D,
1185
+ 0x7A6F=>0xEB2C,
1186
+ 0x7A51=>0xEB0E,
1187
+ 0x7A70=>0xEB2D,
1188
+ 0x7A52=>0xEB0F,
1189
+ 0x7A71=>0xEB2E,
1190
+ 0x7A53=>0xEB10,
1191
+ 0x7A72=>0xEB2F,
1192
+ 0x7A54=>0xEB11,
1193
+ 0x7A73=>0xEB30,
1194
+ 0x7A55=>0xEB12,
1195
+ 0x7A74=>0xEB31,
1196
+ 0x7A56=>0xEB13,
1197
+ 0x7A75=>0xEB32,
1198
+ 0x7A57=>0xEB14,
1199
+ 0x7A76=>0xEB33,
1200
+ 0x7A58=>0xEB15,
1201
+ 0x7A77=>0xEB34,
1202
+ 0x7A59=>0xEB16,
1203
+ 0x7A78=>0xEB35,
1204
+ 0x7A79=>0xEB36,
1205
+ 0x7B3A=>0xEB55,
1206
+ 0x7A7A=>0xEB37,
1207
+ 0x7B3B=>0xEB56,
1208
+ 0x7A7B=>0xEB38,
1209
+ 0x7B3C=>0xEB57,
1210
+ 0x7A7C=>0xEB39,
1211
+ 0x7B3D=>0xEB58,
1212
+ 0x7A7D=>0xEB3A,
1213
+ 0x7B3E=>0xEB59,
1214
+ 0x7A7E=>0xEB3B,
1215
+ 0x7B3F=>0xEB5A,
1216
+ 0x7B21=>0xEB3C,
1217
+ 0x7B40=>0xEB5B,
1218
+ 0x7B22=>0xEB3D,
1219
+ 0x7B41=>0xEB5C,
1220
+ 0x7B23=>0xEB3E,
1221
+ 0x7B42=>0xEB5D,
1222
+ 0x7B24=>0xEB3F,
1223
+ 0x7B43=>0xEB5E,
1224
+ 0x7B25=>0xEB40,
1225
+ 0x7B44=>0xEB5F,
1226
+ 0x7B26=>0xEB41,
1227
+ 0x7B45=>0xEB60,
1228
+ 0x7B27=>0xEB42,
1229
+ 0x7B46=>0xEB61,
1230
+ 0x7B28=>0xEB43,
1231
+ 0x7B47=>0xEB62,
1232
+ 0x7B29=>0xEB44,
1233
+ 0x7B48=>0xEB63,
1234
+ 0x7B2A=>0xEB45,
1235
+ 0x7B49=>0xEB64,
1236
+ 0x7B2B=>0xEB46,
1237
+ 0x7B4A=>0xEB65,
1238
+ 0x7B2C=>0xEB47,
1239
+ 0x7B4B=>0xEB66,
1240
+ 0x7B2D=>0xEB48,
1241
+ 0x7B4C=>0xEB67,
1242
+ 0x7B2E=>0xEB49,
1243
+ 0x7B4D=>0xEB68,
1244
+ 0x7B2F=>0xEB4A,
1245
+ 0x7B4E=>0xEB69,
1246
+ 0x7B30=>0xEB4B,
1247
+ 0x7B4F=>0xEB6A,
1248
+ 0x7B31=>0xEB4C,
1249
+ 0x7B50=>0xEB6B,
1250
+ 0x7B32=>0xEB4D,
1251
+ 0x7B51=>0xEB6C,
1252
+ 0x7B33=>0xEB4E,
1253
+ 0x7B52=>0xEB6D,
1254
+ 0x7B34=>0xEB4F,
1255
+ 0x7B53=>0xEB6E,
1256
+ 0x7B35=>0xEB50,
1257
+ 0x7B54=>0xEB6F,
1258
+ 0x7B36=>0xEB51,
1259
+ 0x7B55=>0xEB70,
1260
+ 0x7B37=>0xEB52,
1261
+ 0x7B56=>0xEB71,
1262
+ 0x7B38=>0xEB53,
1263
+ 0x7B57=>0xEB72,
1264
+ 0x7B39=>0xEB54,
1265
+ 0x7B58=>0xEB73,
1266
+ 0x7B59=>0xEB74,
1267
+ 0x7B5A=>0xEB75,
1268
+ 0x7B5B=>0xEB76,
1269
+ 0x7B5C=>0xEB77,
1270
+ 0x7B5D=>0xEB78,
1271
+ 0x7B5E=>0xEB79,
1272
+ 0x7B5F=>0xEB7A,
1273
+ 0x7B60=>0xEB7B,
1274
+ 0x7B61=>0xEB7C,
1275
+ 0x7B62=>0xEB7D,
1276
+ 0x7B63=>0xEB7E,
1277
+ 0x7B64=>0xEB7F,
1278
+ 0x7B65=>0xEB80,
1279
+ 0x7B66=>0xEB81,
1280
+ 0x7B67=>0xEB82,
1281
+ 0x7B68=>0xEB83,
1282
+ 0x7B69=>0xEB84,
1283
+ 0x7B6A=>0xEB85,
1284
+ 0x7B6B=>0xEB86,
1285
+ 0x7B6C=>0xEB87,
1286
+ 0x7B6D=>0xEB88,
1287
+ }.freeze