nano-fast-tool 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 (138) hide show
  1. checksums.yaml +7 -0
  2. data/mail-2.9.1/MIT-LICENSE +20 -0
  3. data/mail-2.9.1/README.md +771 -0
  4. data/mail-2.9.1/lib/mail/attachments_list.rb +109 -0
  5. data/mail-2.9.1/lib/mail/body.rb +305 -0
  6. data/mail-2.9.1/lib/mail/configuration.rb +78 -0
  7. data/mail-2.9.1/lib/mail/constants.rb +79 -0
  8. data/mail-2.9.1/lib/mail/elements/address.rb +258 -0
  9. data/mail-2.9.1/lib/mail/elements/address_list.rb +34 -0
  10. data/mail-2.9.1/lib/mail/elements/content_disposition_element.rb +20 -0
  11. data/mail-2.9.1/lib/mail/elements/content_location_element.rb +17 -0
  12. data/mail-2.9.1/lib/mail/elements/content_transfer_encoding_element.rb +13 -0
  13. data/mail-2.9.1/lib/mail/elements/content_type_element.rb +25 -0
  14. data/mail-2.9.1/lib/mail/elements/date_time_element.rb +15 -0
  15. data/mail-2.9.1/lib/mail/elements/envelope_from_element.rb +39 -0
  16. data/mail-2.9.1/lib/mail/elements/message_ids_element.rb +31 -0
  17. data/mail-2.9.1/lib/mail/elements/mime_version_element.rb +15 -0
  18. data/mail-2.9.1/lib/mail/elements/phrase_list.rb +19 -0
  19. data/mail-2.9.1/lib/mail/elements/received_element.rb +35 -0
  20. data/mail-2.9.1/lib/mail/elements.rb +15 -0
  21. data/mail-2.9.1/lib/mail/encodings/7bit.rb +27 -0
  22. data/mail-2.9.1/lib/mail/encodings/8bit.rb +18 -0
  23. data/mail-2.9.1/lib/mail/encodings/base64.rb +38 -0
  24. data/mail-2.9.1/lib/mail/encodings/binary.rb +13 -0
  25. data/mail-2.9.1/lib/mail/encodings/identity.rb +24 -0
  26. data/mail-2.9.1/lib/mail/encodings/quoted_printable.rb +45 -0
  27. data/mail-2.9.1/lib/mail/encodings/transfer_encoding.rb +77 -0
  28. data/mail-2.9.1/lib/mail/encodings/unix_to_unix.rb +20 -0
  29. data/mail-2.9.1/lib/mail/encodings.rb +314 -0
  30. data/mail-2.9.1/lib/mail/envelope.rb +28 -0
  31. data/mail-2.9.1/lib/mail/field.rb +313 -0
  32. data/mail-2.9.1/lib/mail/field_list.rb +87 -0
  33. data/mail-2.9.1/lib/mail/fields/bcc_field.rb +49 -0
  34. data/mail-2.9.1/lib/mail/fields/cc_field.rb +33 -0
  35. data/mail-2.9.1/lib/mail/fields/comments_field.rb +31 -0
  36. data/mail-2.9.1/lib/mail/fields/common_address_field.rb +162 -0
  37. data/mail-2.9.1/lib/mail/fields/common_date_field.rb +56 -0
  38. data/mail-2.9.1/lib/mail/fields/common_field.rb +77 -0
  39. data/mail-2.9.1/lib/mail/fields/common_message_id_field.rb +41 -0
  40. data/mail-2.9.1/lib/mail/fields/content_description_field.rb +12 -0
  41. data/mail-2.9.1/lib/mail/fields/content_disposition_field.rb +44 -0
  42. data/mail-2.9.1/lib/mail/fields/content_id_field.rb +35 -0
  43. data/mail-2.9.1/lib/mail/fields/content_location_field.rb +28 -0
  44. data/mail-2.9.1/lib/mail/fields/content_transfer_encoding_field.rb +44 -0
  45. data/mail-2.9.1/lib/mail/fields/content_type_field.rb +171 -0
  46. data/mail-2.9.1/lib/mail/fields/date_field.rb +28 -0
  47. data/mail-2.9.1/lib/mail/fields/from_field.rb +33 -0
  48. data/mail-2.9.1/lib/mail/fields/in_reply_to_field.rb +45 -0
  49. data/mail-2.9.1/lib/mail/fields/keywords_field.rb +30 -0
  50. data/mail-2.9.1/lib/mail/fields/message_id_field.rb +36 -0
  51. data/mail-2.9.1/lib/mail/fields/mime_version_field.rb +42 -0
  52. data/mail-2.9.1/lib/mail/fields/named_structured_field.rb +10 -0
  53. data/mail-2.9.1/lib/mail/fields/named_unstructured_field.rb +10 -0
  54. data/mail-2.9.1/lib/mail/fields/optional_field.rb +15 -0
  55. data/mail-2.9.1/lib/mail/fields/parameter_hash.rb +61 -0
  56. data/mail-2.9.1/lib/mail/fields/received_field.rb +61 -0
  57. data/mail-2.9.1/lib/mail/fields/references_field.rb +42 -0
  58. data/mail-2.9.1/lib/mail/fields/reply_to_field.rb +33 -0
  59. data/mail-2.9.1/lib/mail/fields/resent_bcc_field.rb +33 -0
  60. data/mail-2.9.1/lib/mail/fields/resent_cc_field.rb +33 -0
  61. data/mail-2.9.1/lib/mail/fields/resent_date_field.rb +10 -0
  62. data/mail-2.9.1/lib/mail/fields/resent_from_field.rb +33 -0
  63. data/mail-2.9.1/lib/mail/fields/resent_message_id_field.rb +10 -0
  64. data/mail-2.9.1/lib/mail/fields/resent_sender_field.rb +32 -0
  65. data/mail-2.9.1/lib/mail/fields/resent_to_field.rb +33 -0
  66. data/mail-2.9.1/lib/mail/fields/return_path_field.rb +60 -0
  67. data/mail-2.9.1/lib/mail/fields/sender_field.rb +45 -0
  68. data/mail-2.9.1/lib/mail/fields/structured_field.rb +24 -0
  69. data/mail-2.9.1/lib/mail/fields/subject_field.rb +14 -0
  70. data/mail-2.9.1/lib/mail/fields/to_field.rb +33 -0
  71. data/mail-2.9.1/lib/mail/fields/unstructured_field.rb +189 -0
  72. data/mail-2.9.1/lib/mail/fields.rb +45 -0
  73. data/mail-2.9.1/lib/mail/header.rb +237 -0
  74. data/mail-2.9.1/lib/mail/indifferent_hash.rb +147 -0
  75. data/mail-2.9.1/lib/mail/mail.rb +267 -0
  76. data/mail-2.9.1/lib/mail/matchers/attachment_matchers.rb +44 -0
  77. data/mail-2.9.1/lib/mail/matchers/has_sent_mail.rb +201 -0
  78. data/mail-2.9.1/lib/mail/message.rb +2159 -0
  79. data/mail-2.9.1/lib/mail/multibyte/chars.rb +318 -0
  80. data/mail-2.9.1/lib/mail/multibyte/unicode.rb +405 -0
  81. data/mail-2.9.1/lib/mail/multibyte/utils.rb +44 -0
  82. data/mail-2.9.1/lib/mail/multibyte.rb +82 -0
  83. data/mail-2.9.1/lib/mail/network/delivery_methods/exim.rb +50 -0
  84. data/mail-2.9.1/lib/mail/network/delivery_methods/file_delivery.rb +43 -0
  85. data/mail-2.9.1/lib/mail/network/delivery_methods/logger_delivery.rb +34 -0
  86. data/mail-2.9.1/lib/mail/network/delivery_methods/sendmail.rb +87 -0
  87. data/mail-2.9.1/lib/mail/network/delivery_methods/smtp.rb +200 -0
  88. data/mail-2.9.1/lib/mail/network/delivery_methods/smtp_connection.rb +57 -0
  89. data/mail-2.9.1/lib/mail/network/delivery_methods/test_mailer.rb +44 -0
  90. data/mail-2.9.1/lib/mail/network/retriever_methods/base.rb +64 -0
  91. data/mail-2.9.1/lib/mail/network/retriever_methods/imap.rb +190 -0
  92. data/mail-2.9.1/lib/mail/network/retriever_methods/pop3.rb +143 -0
  93. data/mail-2.9.1/lib/mail/network/retriever_methods/test_retriever.rb +45 -0
  94. data/mail-2.9.1/lib/mail/network.rb +16 -0
  95. data/mail-2.9.1/lib/mail/parser_tools.rb +15 -0
  96. data/mail-2.9.1/lib/mail/parsers/address_lists_parser.rb +33245 -0
  97. data/mail-2.9.1/lib/mail/parsers/address_lists_parser.rl +183 -0
  98. data/mail-2.9.1/lib/mail/parsers/content_disposition_parser.rb +904 -0
  99. data/mail-2.9.1/lib/mail/parsers/content_disposition_parser.rl +93 -0
  100. data/mail-2.9.1/lib/mail/parsers/content_location_parser.rb +825 -0
  101. data/mail-2.9.1/lib/mail/parsers/content_location_parser.rl +82 -0
  102. data/mail-2.9.1/lib/mail/parsers/content_transfer_encoding_parser.rb +525 -0
  103. data/mail-2.9.1/lib/mail/parsers/content_transfer_encoding_parser.rl +75 -0
  104. data/mail-2.9.1/lib/mail/parsers/content_type_parser.rb +1051 -0
  105. data/mail-2.9.1/lib/mail/parsers/content_type_parser.rl +94 -0
  106. data/mail-2.9.1/lib/mail/parsers/date_time_parser.rb +894 -0
  107. data/mail-2.9.1/lib/mail/parsers/date_time_parser.rl +73 -0
  108. data/mail-2.9.1/lib/mail/parsers/envelope_from_parser.rb +3678 -0
  109. data/mail-2.9.1/lib/mail/parsers/envelope_from_parser.rl +93 -0
  110. data/mail-2.9.1/lib/mail/parsers/message_ids_parser.rb +5164 -0
  111. data/mail-2.9.1/lib/mail/parsers/message_ids_parser.rl +97 -0
  112. data/mail-2.9.1/lib/mail/parsers/mime_version_parser.rb +516 -0
  113. data/mail-2.9.1/lib/mail/parsers/mime_version_parser.rl +72 -0
  114. data/mail-2.9.1/lib/mail/parsers/phrase_lists_parser.rb +887 -0
  115. data/mail-2.9.1/lib/mail/parsers/phrase_lists_parser.rl +94 -0
  116. data/mail-2.9.1/lib/mail/parsers/received_parser.rb +8785 -0
  117. data/mail-2.9.1/lib/mail/parsers/received_parser.rl +95 -0
  118. data/mail-2.9.1/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +13 -0
  119. data/mail-2.9.1/lib/mail/parsers/rfc2045_content_type.rl +25 -0
  120. data/mail-2.9.1/lib/mail/parsers/rfc2045_mime.rl +16 -0
  121. data/mail-2.9.1/lib/mail/parsers/rfc2183_content_disposition.rl +15 -0
  122. data/mail-2.9.1/lib/mail/parsers/rfc3629_utf8.rl +19 -0
  123. data/mail-2.9.1/lib/mail/parsers/rfc5234_abnf_core_rules.rl +22 -0
  124. data/mail-2.9.1/lib/mail/parsers/rfc5322.rl +74 -0
  125. data/mail-2.9.1/lib/mail/parsers/rfc5322_address.rl +72 -0
  126. data/mail-2.9.1/lib/mail/parsers/rfc5322_date_time.rl +37 -0
  127. data/mail-2.9.1/lib/mail/parsers/rfc5322_lexical_tokens.rl +60 -0
  128. data/mail-2.9.1/lib/mail/parsers.rb +13 -0
  129. data/mail-2.9.1/lib/mail/part.rb +119 -0
  130. data/mail-2.9.1/lib/mail/parts_list.rb +131 -0
  131. data/mail-2.9.1/lib/mail/smtp_envelope.rb +57 -0
  132. data/mail-2.9.1/lib/mail/utilities.rb +576 -0
  133. data/mail-2.9.1/lib/mail/values/unicode_tables.dat +0 -0
  134. data/mail-2.9.1/lib/mail/version.rb +17 -0
  135. data/mail-2.9.1/lib/mail/yaml.rb +30 -0
  136. data/mail-2.9.1/lib/mail.rb +65 -0
  137. data/nano-fast-tool.gemspec +12 -0
  138. metadata +177 -0
@@ -0,0 +1,1051 @@
1
+ # frozen_string_literal: true
2
+ require "mail/utilities"
3
+ require "mail/parser_tools"
4
+
5
+ begin
6
+ original_verbose, $VERBOSE = $VERBOSE, nil
7
+
8
+ module Mail::Parsers
9
+ module ContentTypeParser
10
+ extend Mail::ParserTools
11
+
12
+ ContentTypeStruct = Struct.new(:main_type, :sub_type, :parameters, :error)
13
+
14
+ class << self
15
+ attr_accessor :_trans_keys
16
+ private :_trans_keys, :_trans_keys=
17
+ end
18
+ self._trans_keys = [
19
+ 0, 0, 33, 126, 33, 126,
20
+ 33, 126, 9, 126, 10,
21
+ 10, 9, 32, 33, 126,
22
+ 9, 126, 9, 40, 10, 10,
23
+ 9, 32, 1, 244, 1,
24
+ 244, 10, 10, 9, 32,
25
+ 10, 10, 9, 32, 9, 126,
26
+ 9, 126, 10, 10, 9,
27
+ 32, 9, 126, 0, 244,
28
+ 128, 191, 160, 191, 128, 191,
29
+ 128, 159, 144, 191, 128,
30
+ 191, 128, 143, 9, 40,
31
+ 10, 10, 9, 32, 9, 126,
32
+ 1, 244, 1, 244, 10,
33
+ 10, 9, 32, 0, 244,
34
+ 128, 191, 160, 191, 128, 191,
35
+ 128, 159, 144, 191, 128,
36
+ 191, 128, 143, 9, 126,
37
+ 9, 59, 9, 126, 9, 126,
38
+ 9, 126, 9, 126, 9,
39
+ 126, 0, 0, 0,
40
+ ]
41
+
42
+ class << self
43
+ attr_accessor :_key_spans
44
+ private :_key_spans, :_key_spans=
45
+ end
46
+ self._key_spans = [
47
+ 0, 94, 94, 94, 118, 1, 24, 94,
48
+ 118, 32, 1, 24, 244, 244, 1, 24,
49
+ 1, 24, 118, 118, 1, 24, 118, 245,
50
+ 64, 32, 64, 32, 48, 64, 16, 32,
51
+ 1, 24, 118, 244, 244, 1, 24, 245,
52
+ 64, 32, 64, 32, 48, 64, 16, 118,
53
+ 51, 118, 118, 118, 118, 118, 0,
54
+ ]
55
+
56
+ class << self
57
+ attr_accessor :_index_offsets
58
+ private :_index_offsets, :_index_offsets=
59
+ end
60
+ self._index_offsets = [
61
+ 0, 0, 95, 190, 285, 404, 406, 431,
62
+ 526, 645, 678, 680, 705, 950, 1195, 1197,
63
+ 1222, 1224, 1249, 1368, 1487, 1489, 1514, 1633,
64
+ 1879, 1944, 1977, 2042, 2075, 2124, 2189, 2206,
65
+ 2239, 2241, 2266, 2385, 2630, 2875, 2877, 2902,
66
+ 3148, 3213, 3246, 3311, 3344, 3393, 3458, 3475,
67
+ 3594, 3646, 3765, 3884, 4003, 4122, 4241,
68
+ ]
69
+
70
+ class << self
71
+ attr_accessor :_indicies
72
+ private :_indicies, :_indicies=
73
+ end
74
+ self._indicies = [
75
+ 0, 0, 0, 0, 0, 0, 0, 1,
76
+ 1, 0, 0, 0, 0, 0, 1, 0,
77
+ 0, 0, 0, 0, 0, 0, 0, 0,
78
+ 0, 1, 1, 1, 1, 1, 1, 1,
79
+ 0, 0, 0, 0, 0, 0, 0, 0,
80
+ 0, 0, 0, 0, 0, 0, 0, 0,
81
+ 0, 0, 0, 0, 0, 0, 0, 0,
82
+ 0, 0, 1, 1, 1, 0, 0, 0,
83
+ 0, 0, 0, 0, 0, 0, 0, 0,
84
+ 0, 0, 0, 0, 0, 0, 0, 0,
85
+ 0, 0, 0, 0, 0, 0, 0, 0,
86
+ 0, 0, 0, 0, 0, 0, 1, 2,
87
+ 2, 2, 2, 2, 2, 2, 1, 1,
88
+ 2, 2, 2, 2, 2, 3, 2, 2,
89
+ 2, 2, 2, 2, 2, 2, 2, 2,
90
+ 1, 1, 1, 1, 1, 1, 1, 2,
91
+ 2, 2, 2, 2, 2, 2, 2, 2,
92
+ 2, 2, 2, 2, 2, 2, 2, 2,
93
+ 2, 2, 2, 2, 2, 2, 2, 2,
94
+ 2, 1, 1, 1, 2, 2, 2, 2,
95
+ 2, 2, 2, 2, 2, 2, 2, 2,
96
+ 2, 2, 2, 2, 2, 2, 2, 2,
97
+ 2, 2, 2, 2, 2, 2, 2, 2,
98
+ 2, 2, 2, 2, 2, 1, 4, 4,
99
+ 4, 4, 4, 4, 4, 1, 1, 4,
100
+ 4, 4, 4, 4, 1, 4, 4, 4,
101
+ 4, 4, 4, 4, 4, 4, 4, 1,
102
+ 1, 1, 1, 1, 1, 1, 4, 4,
103
+ 4, 4, 4, 4, 4, 4, 4, 4,
104
+ 4, 4, 4, 4, 4, 4, 4, 4,
105
+ 4, 4, 4, 4, 4, 4, 4, 4,
106
+ 1, 1, 1, 4, 4, 4, 4, 4,
107
+ 4, 4, 4, 4, 4, 4, 4, 4,
108
+ 4, 4, 4, 4, 4, 4, 4, 4,
109
+ 4, 4, 4, 4, 4, 4, 4, 4,
110
+ 4, 4, 4, 4, 1, 5, 1, 1,
111
+ 1, 6, 1, 1, 1, 1, 1, 1,
112
+ 1, 1, 1, 1, 1, 1, 1, 1,
113
+ 1, 1, 1, 1, 5, 7, 7, 7,
114
+ 7, 7, 7, 7, 8, 1, 7, 7,
115
+ 7, 7, 7, 1, 7, 7, 7, 7,
116
+ 7, 7, 7, 7, 7, 7, 1, 9,
117
+ 1, 1, 1, 1, 1, 7, 7, 7,
118
+ 7, 7, 7, 7, 7, 7, 7, 7,
119
+ 7, 7, 7, 7, 7, 7, 7, 7,
120
+ 7, 7, 7, 7, 7, 7, 7, 1,
121
+ 1, 1, 7, 7, 7, 7, 7, 7,
122
+ 7, 7, 7, 7, 7, 7, 7, 7,
123
+ 7, 7, 7, 7, 7, 7, 7, 7,
124
+ 7, 7, 7, 7, 7, 7, 7, 7,
125
+ 7, 7, 7, 1, 10, 1, 5, 1,
126
+ 1, 1, 1, 1, 1, 1, 1, 1,
127
+ 1, 1, 1, 1, 1, 1, 1, 1,
128
+ 1, 1, 1, 1, 1, 5, 1, 11,
129
+ 11, 11, 11, 11, 11, 11, 1, 1,
130
+ 11, 11, 11, 11, 11, 1, 11, 11,
131
+ 11, 11, 11, 11, 11, 11, 11, 11,
132
+ 1, 1, 1, 12, 1, 1, 1, 11,
133
+ 11, 11, 11, 11, 11, 11, 11, 11,
134
+ 11, 11, 11, 11, 11, 11, 11, 11,
135
+ 11, 11, 11, 11, 11, 11, 11, 11,
136
+ 11, 1, 1, 1, 11, 11, 11, 11,
137
+ 11, 11, 11, 11, 11, 11, 11, 11,
138
+ 11, 11, 11, 11, 11, 11, 11, 11,
139
+ 11, 11, 11, 11, 11, 11, 11, 11,
140
+ 11, 11, 11, 11, 11, 1, 13, 1,
141
+ 1, 1, 14, 1, 1, 1, 1, 1,
142
+ 1, 1, 1, 1, 1, 1, 1, 1,
143
+ 1, 1, 1, 1, 1, 13, 15, 16,
144
+ 15, 15, 15, 15, 15, 17, 1, 15,
145
+ 15, 15, 15, 15, 1, 15, 15, 15,
146
+ 15, 15, 15, 15, 15, 15, 15, 1,
147
+ 1, 1, 15, 1, 1, 1, 15, 15,
148
+ 15, 15, 15, 15, 15, 15, 15, 15,
149
+ 15, 15, 15, 15, 15, 15, 15, 15,
150
+ 15, 15, 15, 15, 15, 15, 15, 15,
151
+ 1, 1, 1, 15, 15, 15, 15, 15,
152
+ 15, 15, 15, 15, 15, 15, 15, 15,
153
+ 15, 15, 15, 15, 15, 15, 15, 15,
154
+ 15, 15, 15, 15, 15, 15, 15, 15,
155
+ 15, 15, 15, 15, 1, 18, 1, 1,
156
+ 1, 19, 1, 1, 1, 1, 1, 1,
157
+ 1, 1, 1, 1, 1, 1, 1, 1,
158
+ 1, 1, 1, 1, 18, 1, 20, 1,
159
+ 1, 1, 1, 1, 21, 1, 22, 1,
160
+ 18, 1, 1, 1, 1, 1, 1, 1,
161
+ 1, 1, 1, 1, 1, 1, 1, 1,
162
+ 1, 1, 1, 1, 1, 1, 1, 18,
163
+ 1, 23, 23, 23, 23, 23, 23, 23,
164
+ 23, 23, 1, 23, 23, 24, 23, 23,
165
+ 23, 23, 23, 23, 23, 23, 23, 23,
166
+ 23, 23, 23, 23, 23, 23, 23, 23,
167
+ 23, 23, 25, 23, 23, 23, 23, 23,
168
+ 23, 23, 23, 23, 23, 23, 23, 23,
169
+ 23, 23, 23, 23, 23, 23, 23, 23,
170
+ 23, 23, 23, 23, 23, 23, 23, 23,
171
+ 23, 23, 23, 23, 23, 23, 23, 23,
172
+ 23, 23, 23, 23, 23, 23, 23, 23,
173
+ 23, 23, 23, 23, 23, 23, 23, 23,
174
+ 23, 23, 23, 23, 26, 23, 23, 23,
175
+ 23, 23, 23, 23, 23, 23, 23, 23,
176
+ 23, 23, 23, 23, 23, 23, 23, 23,
177
+ 23, 23, 23, 23, 23, 23, 23, 23,
178
+ 23, 23, 23, 23, 23, 23, 23, 23,
179
+ 1, 1, 1, 1, 1, 1, 1, 1,
180
+ 1, 1, 1, 1, 1, 1, 1, 1,
181
+ 1, 1, 1, 1, 1, 1, 1, 1,
182
+ 1, 1, 1, 1, 1, 1, 1, 1,
183
+ 1, 1, 1, 1, 1, 1, 1, 1,
184
+ 1, 1, 1, 1, 1, 1, 1, 1,
185
+ 1, 1, 1, 1, 1, 1, 1, 1,
186
+ 1, 1, 1, 1, 1, 1, 1, 1,
187
+ 1, 1, 27, 27, 27, 27, 27, 27,
188
+ 27, 27, 27, 27, 27, 27, 27, 27,
189
+ 27, 27, 27, 27, 27, 27, 27, 27,
190
+ 27, 27, 27, 27, 27, 27, 27, 27,
191
+ 28, 29, 29, 29, 29, 29, 29, 29,
192
+ 29, 29, 29, 29, 29, 30, 29, 29,
193
+ 31, 32, 32, 32, 33, 1, 34, 34,
194
+ 34, 34, 34, 34, 34, 34, 34, 1,
195
+ 34, 34, 35, 34, 34, 34, 34, 34,
196
+ 34, 34, 34, 34, 34, 34, 34, 34,
197
+ 34, 34, 34, 34, 34, 34, 34, 36,
198
+ 34, 34, 34, 34, 34, 34, 34, 34,
199
+ 34, 34, 34, 34, 34, 34, 34, 34,
200
+ 34, 34, 34, 34, 34, 34, 34, 34,
201
+ 34, 34, 34, 34, 34, 34, 34, 34,
202
+ 34, 34, 34, 34, 34, 34, 34, 34,
203
+ 34, 34, 34, 34, 34, 34, 34, 34,
204
+ 34, 34, 34, 34, 34, 34, 34, 34,
205
+ 34, 37, 34, 34, 34, 34, 34, 34,
206
+ 34, 34, 34, 34, 34, 34, 34, 34,
207
+ 34, 34, 34, 34, 34, 34, 34, 34,
208
+ 34, 34, 34, 34, 34, 34, 34, 34,
209
+ 34, 34, 34, 34, 34, 1, 1, 1,
210
+ 1, 1, 1, 1, 1, 1, 1, 1,
211
+ 1, 1, 1, 1, 1, 1, 1, 1,
212
+ 1, 1, 1, 1, 1, 1, 1, 1,
213
+ 1, 1, 1, 1, 1, 1, 1, 1,
214
+ 1, 1, 1, 1, 1, 1, 1, 1,
215
+ 1, 1, 1, 1, 1, 1, 1, 1,
216
+ 1, 1, 1, 1, 1, 1, 1, 1,
217
+ 1, 1, 1, 1, 1, 1, 1, 38,
218
+ 38, 38, 38, 38, 38, 38, 38, 38,
219
+ 38, 38, 38, 38, 38, 38, 38, 38,
220
+ 38, 38, 38, 38, 38, 38, 38, 38,
221
+ 38, 38, 38, 38, 38, 39, 40, 40,
222
+ 40, 40, 40, 40, 40, 40, 40, 40,
223
+ 40, 40, 41, 40, 40, 42, 43, 43,
224
+ 43, 44, 1, 45, 1, 34, 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, 34, 1, 46, 1,
228
+ 47, 1, 1, 1, 1, 1, 1, 1,
229
+ 1, 1, 1, 1, 1, 1, 1, 1,
230
+ 1, 1, 1, 1, 1, 1, 1, 47,
231
+ 1, 48, 1, 1, 1, 49, 1, 1,
232
+ 1, 1, 1, 1, 1, 1, 1, 1,
233
+ 1, 1, 1, 1, 1, 1, 1, 1,
234
+ 48, 7, 7, 7, 7, 7, 7, 7,
235
+ 50, 1, 7, 7, 7, 7, 7, 1,
236
+ 7, 7, 7, 7, 7, 7, 7, 7,
237
+ 7, 7, 1, 9, 1, 1, 1, 1,
238
+ 1, 7, 7, 7, 7, 7, 7, 7,
239
+ 7, 7, 7, 7, 7, 7, 7, 7,
240
+ 7, 7, 7, 7, 7, 7, 7, 7,
241
+ 7, 7, 7, 1, 1, 1, 7, 7,
242
+ 7, 7, 7, 7, 7, 7, 7, 7,
243
+ 7, 7, 7, 7, 7, 7, 7, 7,
244
+ 7, 7, 7, 7, 7, 7, 7, 7,
245
+ 7, 7, 7, 7, 7, 7, 7, 1,
246
+ 48, 1, 1, 1, 49, 1, 1, 1,
247
+ 1, 1, 1, 1, 1, 1, 1, 1,
248
+ 1, 1, 1, 1, 1, 1, 1, 48,
249
+ 7, 7, 7, 7, 7, 7, 7, 50,
250
+ 1, 7, 7, 7, 7, 7, 1, 7,
251
+ 7, 7, 7, 7, 7, 7, 7, 7,
252
+ 7, 1, 1, 1, 1, 1, 1, 1,
253
+ 7, 7, 7, 7, 7, 7, 7, 7,
254
+ 7, 7, 7, 7, 7, 7, 7, 7,
255
+ 7, 7, 7, 7, 7, 7, 7, 7,
256
+ 7, 7, 1, 1, 1, 7, 7, 7,
257
+ 7, 7, 7, 7, 7, 7, 7, 7,
258
+ 7, 7, 7, 7, 7, 7, 7, 7,
259
+ 7, 7, 7, 7, 7, 7, 7, 7,
260
+ 7, 7, 7, 7, 7, 7, 1, 51,
261
+ 1, 48, 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
+ 48, 1, 52, 1, 1, 1, 53, 1,
265
+ 1, 1, 1, 1, 1, 1, 1, 1,
266
+ 1, 1, 1, 1, 1, 1, 1, 1,
267
+ 1, 52, 54, 54, 54, 54, 54, 54,
268
+ 54, 55, 1, 54, 54, 54, 54, 54,
269
+ 1, 54, 54, 54, 54, 54, 54, 54,
270
+ 54, 54, 54, 1, 1, 1, 1, 1,
271
+ 1, 1, 54, 54, 54, 54, 54, 54,
272
+ 54, 54, 54, 54, 54, 54, 54, 54,
273
+ 54, 54, 54, 54, 54, 54, 54, 54,
274
+ 54, 54, 54, 54, 1, 1, 1, 54,
275
+ 54, 54, 54, 54, 54, 54, 54, 54,
276
+ 54, 54, 54, 54, 54, 54, 54, 54,
277
+ 54, 54, 54, 54, 54, 54, 54, 54,
278
+ 54, 54, 54, 54, 54, 54, 54, 54,
279
+ 1, 34, 34, 34, 34, 34, 34, 34,
280
+ 34, 34, 34, 34, 34, 34, 34, 34,
281
+ 34, 34, 34, 34, 34, 34, 34, 34,
282
+ 34, 34, 34, 34, 34, 34, 34, 34,
283
+ 34, 34, 34, 34, 34, 34, 34, 34,
284
+ 34, 34, 34, 34, 34, 34, 34, 34,
285
+ 34, 34, 34, 34, 34, 34, 34, 34,
286
+ 34, 34, 34, 34, 34, 34, 34, 34,
287
+ 34, 34, 34, 34, 34, 34, 34, 34,
288
+ 34, 34, 34, 34, 34, 34, 34, 34,
289
+ 34, 34, 34, 34, 34, 34, 34, 34,
290
+ 34, 34, 34, 34, 34, 34, 34, 34,
291
+ 34, 34, 34, 34, 34, 34, 34, 34,
292
+ 34, 34, 34, 34, 34, 34, 34, 34,
293
+ 34, 34, 34, 34, 34, 34, 34, 34,
294
+ 34, 34, 34, 34, 34, 34, 34, 34,
295
+ 34, 1, 1, 1, 1, 1, 1, 1,
296
+ 1, 1, 1, 1, 1, 1, 1, 1,
297
+ 1, 1, 1, 1, 1, 1, 1, 1,
298
+ 1, 1, 1, 1, 1, 1, 1, 1,
299
+ 1, 1, 1, 1, 1, 1, 1, 1,
300
+ 1, 1, 1, 1, 1, 1, 1, 1,
301
+ 1, 1, 1, 1, 1, 1, 1, 1,
302
+ 1, 1, 1, 1, 1, 1, 1, 1,
303
+ 1, 1, 1, 38, 38, 38, 38, 38,
304
+ 38, 38, 38, 38, 38, 38, 38, 38,
305
+ 38, 38, 38, 38, 38, 38, 38, 38,
306
+ 38, 38, 38, 38, 38, 38, 38, 38,
307
+ 38, 39, 40, 40, 40, 40, 40, 40,
308
+ 40, 40, 40, 40, 40, 40, 41, 40,
309
+ 40, 42, 43, 43, 43, 44, 1, 34,
310
+ 34, 34, 34, 34, 34, 34, 34, 34,
311
+ 34, 34, 34, 34, 34, 34, 34, 34,
312
+ 34, 34, 34, 34, 34, 34, 34, 34,
313
+ 34, 34, 34, 34, 34, 34, 34, 34,
314
+ 34, 34, 34, 34, 34, 34, 34, 34,
315
+ 34, 34, 34, 34, 34, 34, 34, 34,
316
+ 34, 34, 34, 34, 34, 34, 34, 34,
317
+ 34, 34, 34, 34, 34, 34, 34, 1,
318
+ 38, 38, 38, 38, 38, 38, 38, 38,
319
+ 38, 38, 38, 38, 38, 38, 38, 38,
320
+ 38, 38, 38, 38, 38, 38, 38, 38,
321
+ 38, 38, 38, 38, 38, 38, 38, 38,
322
+ 1, 38, 38, 38, 38, 38, 38, 38,
323
+ 38, 38, 38, 38, 38, 38, 38, 38,
324
+ 38, 38, 38, 38, 38, 38, 38, 38,
325
+ 38, 38, 38, 38, 38, 38, 38, 38,
326
+ 38, 38, 38, 38, 38, 38, 38, 38,
327
+ 38, 38, 38, 38, 38, 38, 38, 38,
328
+ 38, 38, 38, 38, 38, 38, 38, 38,
329
+ 38, 38, 38, 38, 38, 38, 38, 38,
330
+ 38, 1, 38, 38, 38, 38, 38, 38,
331
+ 38, 38, 38, 38, 38, 38, 38, 38,
332
+ 38, 38, 38, 38, 38, 38, 38, 38,
333
+ 38, 38, 38, 38, 38, 38, 38, 38,
334
+ 38, 38, 1, 40, 40, 40, 40, 40,
335
+ 40, 40, 40, 40, 40, 40, 40, 40,
336
+ 40, 40, 40, 40, 40, 40, 40, 40,
337
+ 40, 40, 40, 40, 40, 40, 40, 40,
338
+ 40, 40, 40, 40, 40, 40, 40, 40,
339
+ 40, 40, 40, 40, 40, 40, 40, 40,
340
+ 40, 40, 40, 1, 40, 40, 40, 40,
341
+ 40, 40, 40, 40, 40, 40, 40, 40,
342
+ 40, 40, 40, 40, 40, 40, 40, 40,
343
+ 40, 40, 40, 40, 40, 40, 40, 40,
344
+ 40, 40, 40, 40, 40, 40, 40, 40,
345
+ 40, 40, 40, 40, 40, 40, 40, 40,
346
+ 40, 40, 40, 40, 40, 40, 40, 40,
347
+ 40, 40, 40, 40, 40, 40, 40, 40,
348
+ 40, 40, 40, 40, 1, 40, 40, 40,
349
+ 40, 40, 40, 40, 40, 40, 40, 40,
350
+ 40, 40, 40, 40, 40, 1, 56, 1,
351
+ 1, 1, 57, 1, 1, 1, 1, 1,
352
+ 1, 1, 1, 1, 1, 1, 1, 1,
353
+ 1, 1, 1, 1, 1, 56, 1, 58,
354
+ 1, 1, 1, 1, 1, 59, 1, 60,
355
+ 1, 61, 1, 1, 1, 1, 1, 1,
356
+ 1, 1, 1, 1, 1, 1, 1, 1,
357
+ 1, 1, 1, 1, 1, 1, 1, 1,
358
+ 61, 1, 62, 1, 1, 1, 63, 1,
359
+ 1, 1, 1, 1, 1, 1, 1, 1,
360
+ 1, 1, 1, 1, 1, 1, 1, 1,
361
+ 1, 62, 54, 54, 54, 54, 54, 54,
362
+ 54, 64, 1, 54, 54, 54, 54, 54,
363
+ 1, 54, 54, 54, 54, 54, 54, 54,
364
+ 54, 54, 54, 1, 65, 1, 1, 1,
365
+ 1, 1, 54, 54, 54, 54, 54, 54,
366
+ 54, 54, 54, 54, 54, 54, 54, 54,
367
+ 54, 54, 54, 54, 54, 54, 54, 54,
368
+ 54, 54, 54, 54, 1, 1, 1, 54,
369
+ 54, 54, 54, 54, 54, 54, 54, 54,
370
+ 54, 54, 54, 54, 54, 54, 54, 54,
371
+ 54, 54, 54, 54, 54, 54, 54, 54,
372
+ 54, 54, 54, 54, 54, 54, 54, 54,
373
+ 1, 66, 66, 66, 66, 66, 66, 66,
374
+ 66, 66, 1, 66, 66, 67, 66, 66,
375
+ 66, 66, 66, 66, 66, 66, 66, 66,
376
+ 66, 66, 66, 66, 66, 66, 66, 66,
377
+ 66, 66, 66, 66, 66, 66, 66, 66,
378
+ 68, 69, 66, 66, 66, 66, 66, 66,
379
+ 66, 66, 66, 66, 66, 66, 66, 66,
380
+ 66, 66, 66, 66, 66, 66, 66, 66,
381
+ 66, 66, 66, 66, 66, 66, 66, 66,
382
+ 66, 66, 66, 66, 66, 66, 66, 66,
383
+ 66, 66, 66, 66, 66, 66, 66, 66,
384
+ 66, 66, 66, 66, 70, 66, 66, 66,
385
+ 66, 66, 66, 66, 66, 66, 66, 66,
386
+ 66, 66, 66, 66, 66, 66, 66, 66,
387
+ 66, 66, 66, 66, 66, 66, 66, 66,
388
+ 66, 66, 66, 66, 66, 66, 66, 66,
389
+ 1, 1, 1, 1, 1, 1, 1, 1,
390
+ 1, 1, 1, 1, 1, 1, 1, 1,
391
+ 1, 1, 1, 1, 1, 1, 1, 1,
392
+ 1, 1, 1, 1, 1, 1, 1, 1,
393
+ 1, 1, 1, 1, 1, 1, 1, 1,
394
+ 1, 1, 1, 1, 1, 1, 1, 1,
395
+ 1, 1, 1, 1, 1, 1, 1, 1,
396
+ 1, 1, 1, 1, 1, 1, 1, 1,
397
+ 1, 1, 71, 71, 71, 71, 71, 71,
398
+ 71, 71, 71, 71, 71, 71, 71, 71,
399
+ 71, 71, 71, 71, 71, 71, 71, 71,
400
+ 71, 71, 71, 71, 71, 71, 71, 71,
401
+ 72, 73, 73, 73, 73, 73, 73, 73,
402
+ 73, 73, 73, 73, 73, 74, 73, 73,
403
+ 75, 76, 76, 76, 77, 1, 78, 78,
404
+ 78, 78, 78, 78, 78, 78, 78, 1,
405
+ 78, 78, 79, 78, 78, 78, 78, 78,
406
+ 78, 78, 78, 78, 78, 78, 78, 78,
407
+ 78, 78, 78, 78, 78, 78, 78, 78,
408
+ 78, 78, 78, 78, 78, 80, 81, 78,
409
+ 78, 78, 78, 78, 78, 78, 78, 78,
410
+ 78, 78, 78, 78, 78, 78, 78, 78,
411
+ 78, 78, 78, 78, 78, 78, 78, 78,
412
+ 78, 78, 78, 78, 78, 78, 78, 78,
413
+ 78, 78, 78, 78, 78, 78, 78, 78,
414
+ 78, 78, 78, 78, 78, 78, 78, 78,
415
+ 78, 82, 78, 78, 78, 78, 78, 78,
416
+ 78, 78, 78, 78, 78, 78, 78, 78,
417
+ 78, 78, 78, 78, 78, 78, 78, 78,
418
+ 78, 78, 78, 78, 78, 78, 78, 78,
419
+ 78, 78, 78, 78, 78, 1, 1, 1,
420
+ 1, 1, 1, 1, 1, 1, 1, 1,
421
+ 1, 1, 1, 1, 1, 1, 1, 1,
422
+ 1, 1, 1, 1, 1, 1, 1, 1,
423
+ 1, 1, 1, 1, 1, 1, 1, 1,
424
+ 1, 1, 1, 1, 1, 1, 1, 1,
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, 83,
428
+ 83, 83, 83, 83, 83, 83, 83, 83,
429
+ 83, 83, 83, 83, 83, 83, 83, 83,
430
+ 83, 83, 83, 83, 83, 83, 83, 83,
431
+ 83, 83, 83, 83, 83, 84, 85, 85,
432
+ 85, 85, 85, 85, 85, 85, 85, 85,
433
+ 85, 85, 86, 85, 85, 87, 88, 88,
434
+ 88, 89, 1, 90, 1, 78, 1, 1,
435
+ 1, 1, 1, 1, 1, 1, 1, 1,
436
+ 1, 1, 1, 1, 1, 1, 1, 1,
437
+ 1, 1, 1, 1, 78, 1, 78, 78,
438
+ 78, 78, 78, 78, 78, 78, 78, 78,
439
+ 78, 78, 78, 78, 78, 78, 78, 78,
440
+ 78, 78, 78, 78, 78, 78, 78, 78,
441
+ 78, 78, 78, 78, 78, 78, 78, 78,
442
+ 78, 78, 78, 78, 78, 78, 78, 78,
443
+ 78, 78, 78, 78, 78, 78, 78, 78,
444
+ 78, 78, 78, 78, 78, 78, 78, 78,
445
+ 78, 78, 78, 78, 78, 78, 78, 78,
446
+ 78, 78, 78, 78, 78, 78, 78, 78,
447
+ 78, 78, 78, 78, 78, 78, 78, 78,
448
+ 78, 78, 78, 78, 78, 78, 78, 78,
449
+ 78, 78, 78, 78, 78, 78, 78, 78,
450
+ 78, 78, 78, 78, 78, 78, 78, 78,
451
+ 78, 78, 78, 78, 78, 78, 78, 78,
452
+ 78, 78, 78, 78, 78, 78, 78, 78,
453
+ 78, 78, 78, 78, 78, 78, 1, 1,
454
+ 1, 1, 1, 1, 1, 1, 1, 1,
455
+ 1, 1, 1, 1, 1, 1, 1, 1,
456
+ 1, 1, 1, 1, 1, 1, 1, 1,
457
+ 1, 1, 1, 1, 1, 1, 1, 1,
458
+ 1, 1, 1, 1, 1, 1, 1, 1,
459
+ 1, 1, 1, 1, 1, 1, 1, 1,
460
+ 1, 1, 1, 1, 1, 1, 1, 1,
461
+ 1, 1, 1, 1, 1, 1, 1, 1,
462
+ 83, 83, 83, 83, 83, 83, 83, 83,
463
+ 83, 83, 83, 83, 83, 83, 83, 83,
464
+ 83, 83, 83, 83, 83, 83, 83, 83,
465
+ 83, 83, 83, 83, 83, 83, 84, 85,
466
+ 85, 85, 85, 85, 85, 85, 85, 85,
467
+ 85, 85, 85, 86, 85, 85, 87, 88,
468
+ 88, 88, 89, 1, 78, 78, 78, 78,
469
+ 78, 78, 78, 78, 78, 78, 78, 78,
470
+ 78, 78, 78, 78, 78, 78, 78, 78,
471
+ 78, 78, 78, 78, 78, 78, 78, 78,
472
+ 78, 78, 78, 78, 78, 78, 78, 78,
473
+ 78, 78, 78, 78, 78, 78, 78, 78,
474
+ 78, 78, 78, 78, 78, 78, 78, 78,
475
+ 78, 78, 78, 78, 78, 78, 78, 78,
476
+ 78, 78, 78, 78, 1, 83, 83, 83,
477
+ 83, 83, 83, 83, 83, 83, 83, 83,
478
+ 83, 83, 83, 83, 83, 83, 83, 83,
479
+ 83, 83, 83, 83, 83, 83, 83, 83,
480
+ 83, 83, 83, 83, 83, 1, 83, 83,
481
+ 83, 83, 83, 83, 83, 83, 83, 83,
482
+ 83, 83, 83, 83, 83, 83, 83, 83,
483
+ 83, 83, 83, 83, 83, 83, 83, 83,
484
+ 83, 83, 83, 83, 83, 83, 83, 83,
485
+ 83, 83, 83, 83, 83, 83, 83, 83,
486
+ 83, 83, 83, 83, 83, 83, 83, 83,
487
+ 83, 83, 83, 83, 83, 83, 83, 83,
488
+ 83, 83, 83, 83, 83, 83, 1, 83,
489
+ 83, 83, 83, 83, 83, 83, 83, 83,
490
+ 83, 83, 83, 83, 83, 83, 83, 83,
491
+ 83, 83, 83, 83, 83, 83, 83, 83,
492
+ 83, 83, 83, 83, 83, 83, 83, 1,
493
+ 85, 85, 85, 85, 85, 85, 85, 85,
494
+ 85, 85, 85, 85, 85, 85, 85, 85,
495
+ 85, 85, 85, 85, 85, 85, 85, 85,
496
+ 85, 85, 85, 85, 85, 85, 85, 85,
497
+ 85, 85, 85, 85, 85, 85, 85, 85,
498
+ 85, 85, 85, 85, 85, 85, 85, 85,
499
+ 1, 85, 85, 85, 85, 85, 85, 85,
500
+ 85, 85, 85, 85, 85, 85, 85, 85,
501
+ 85, 85, 85, 85, 85, 85, 85, 85,
502
+ 85, 85, 85, 85, 85, 85, 85, 85,
503
+ 85, 85, 85, 85, 85, 85, 85, 85,
504
+ 85, 85, 85, 85, 85, 85, 85, 85,
505
+ 85, 85, 85, 85, 85, 85, 85, 85,
506
+ 85, 85, 85, 85, 85, 85, 85, 85,
507
+ 85, 1, 85, 85, 85, 85, 85, 85,
508
+ 85, 85, 85, 85, 85, 85, 85, 85,
509
+ 85, 85, 1, 91, 1, 1, 1, 92,
510
+ 1, 1, 1, 1, 1, 1, 1, 1,
511
+ 1, 1, 1, 1, 1, 1, 1, 1,
512
+ 1, 1, 91, 93, 93, 93, 93, 93,
513
+ 93, 93, 94, 1, 93, 93, 93, 93,
514
+ 93, 1, 93, 93, 93, 93, 93, 93,
515
+ 93, 93, 93, 93, 1, 95, 1, 1,
516
+ 1, 1, 1, 93, 93, 93, 93, 93,
517
+ 93, 93, 93, 93, 93, 93, 93, 93,
518
+ 93, 93, 93, 93, 93, 93, 93, 93,
519
+ 93, 93, 93, 93, 93, 1, 1, 1,
520
+ 93, 93, 93, 93, 93, 93, 93, 93,
521
+ 93, 93, 93, 93, 93, 93, 93, 93,
522
+ 93, 93, 93, 93, 93, 93, 93, 93,
523
+ 93, 93, 93, 93, 93, 93, 93, 93,
524
+ 93, 1, 96, 1, 1, 1, 97, 1,
525
+ 1, 1, 1, 1, 1, 1, 1, 1,
526
+ 1, 1, 1, 1, 1, 1, 1, 1,
527
+ 1, 96, 1, 1, 1, 1, 1, 1,
528
+ 1, 98, 1, 1, 1, 1, 1, 1,
529
+ 1, 1, 1, 1, 1, 1, 1, 1,
530
+ 1, 1, 1, 1, 99, 1, 96, 1,
531
+ 1, 1, 97, 1, 1, 1, 1, 1,
532
+ 1, 1, 1, 1, 1, 1, 1, 1,
533
+ 1, 1, 1, 1, 1, 96, 7, 7,
534
+ 7, 7, 7, 7, 7, 98, 1, 7,
535
+ 7, 7, 7, 7, 1, 7, 7, 7,
536
+ 7, 7, 7, 7, 7, 7, 7, 1,
537
+ 99, 1, 1, 1, 1, 1, 7, 7,
538
+ 7, 7, 7, 7, 7, 7, 7, 7,
539
+ 7, 7, 7, 7, 7, 7, 7, 7,
540
+ 7, 7, 7, 7, 7, 7, 7, 7,
541
+ 1, 1, 1, 7, 7, 7, 7, 7,
542
+ 7, 7, 7, 7, 7, 7, 7, 7,
543
+ 7, 7, 7, 7, 7, 7, 7, 7,
544
+ 7, 7, 7, 7, 7, 7, 7, 7,
545
+ 7, 7, 7, 7, 1, 100, 1, 1,
546
+ 1, 101, 1, 1, 1, 1, 1, 1,
547
+ 1, 1, 1, 1, 1, 1, 1, 1,
548
+ 1, 1, 1, 1, 100, 54, 54, 54,
549
+ 54, 54, 54, 54, 102, 1, 54, 54,
550
+ 54, 54, 54, 1, 54, 54, 54, 54,
551
+ 54, 54, 54, 54, 54, 54, 1, 103,
552
+ 1, 1, 1, 1, 1, 54, 54, 54,
553
+ 54, 54, 54, 54, 54, 54, 54, 54,
554
+ 54, 54, 54, 54, 54, 54, 54, 54,
555
+ 54, 54, 54, 54, 54, 54, 54, 1,
556
+ 1, 1, 54, 54, 54, 54, 54, 54,
557
+ 54, 54, 54, 54, 54, 54, 54, 54,
558
+ 54, 54, 54, 54, 54, 54, 54, 54,
559
+ 54, 54, 54, 54, 54, 54, 54, 54,
560
+ 54, 54, 54, 1, 104, 1, 1, 1,
561
+ 105, 1, 1, 1, 1, 1, 1, 1,
562
+ 1, 1, 1, 1, 1, 1, 1, 1,
563
+ 1, 1, 1, 104, 106, 1, 106, 106,
564
+ 106, 106, 106, 107, 1, 106, 106, 106,
565
+ 106, 106, 1, 106, 106, 106, 106, 106,
566
+ 106, 106, 106, 106, 106, 1, 99, 1,
567
+ 106, 1, 1, 1, 106, 106, 106, 106,
568
+ 106, 106, 106, 106, 106, 106, 106, 106,
569
+ 106, 106, 106, 106, 106, 106, 106, 106,
570
+ 106, 106, 106, 106, 106, 106, 1, 1,
571
+ 1, 106, 106, 106, 106, 106, 106, 106,
572
+ 106, 106, 106, 106, 106, 106, 106, 106,
573
+ 106, 106, 106, 106, 106, 106, 106, 106,
574
+ 106, 106, 106, 106, 106, 106, 106, 106,
575
+ 106, 106, 1, 61, 1, 1, 1, 108,
576
+ 1, 1, 1, 1, 1, 1, 1, 1,
577
+ 1, 1, 1, 1, 1, 1, 1, 1,
578
+ 1, 1, 61, 7, 7, 7, 7, 7,
579
+ 7, 7, 109, 1, 7, 7, 7, 7,
580
+ 7, 1, 7, 7, 7, 7, 7, 7,
581
+ 7, 7, 7, 7, 1, 9, 1, 1,
582
+ 1, 1, 1, 7, 7, 7, 7, 7,
583
+ 7, 7, 7, 7, 7, 7, 7, 7,
584
+ 7, 7, 7, 7, 7, 7, 7, 7,
585
+ 7, 7, 7, 7, 7, 1, 1, 1,
586
+ 7, 7, 7, 7, 7, 7, 7, 7,
587
+ 7, 7, 7, 7, 7, 7, 7, 7,
588
+ 7, 7, 7, 7, 7, 7, 7, 7,
589
+ 7, 7, 7, 7, 7, 7, 7, 7,
590
+ 7, 1, 110, 1, 1, 1, 111, 1,
591
+ 1, 1, 1, 1, 1, 1, 1, 1,
592
+ 1, 1, 1, 1, 1, 1, 1, 1,
593
+ 1, 110, 54, 54, 54, 54, 54, 54,
594
+ 54, 112, 1, 54, 54, 54, 54, 54,
595
+ 1, 54, 54, 54, 54, 54, 54, 54,
596
+ 54, 54, 54, 1, 65, 1, 1, 1,
597
+ 1, 1, 54, 54, 54, 54, 54, 54,
598
+ 54, 54, 54, 54, 54, 54, 54, 54,
599
+ 54, 54, 54, 54, 54, 54, 54, 54,
600
+ 54, 54, 54, 54, 1, 1, 1, 54,
601
+ 54, 54, 54, 54, 54, 54, 54, 54,
602
+ 54, 54, 54, 54, 54, 54, 54, 54,
603
+ 54, 54, 54, 54, 54, 54, 54, 54,
604
+ 54, 54, 54, 54, 54, 54, 54, 54,
605
+ 1, 1, 0,
606
+ ]
607
+
608
+ class << self
609
+ attr_accessor :_trans_targs
610
+ private :_trans_targs, :_trans_targs=
611
+ end
612
+ self._trans_targs = [
613
+ 2, 0, 2, 3, 47, 4, 5, 7,
614
+ 34, 18, 6, 7, 8, 9, 10, 51,
615
+ 12, 31, 9, 10, 12, 31, 11, 13,
616
+ 14, 48, 23, 24, 25, 26, 27, 28,
617
+ 29, 30, 13, 14, 48, 23, 24, 25,
618
+ 26, 27, 28, 29, 30, 15, 17, 49,
619
+ 19, 20, 22, 21, 19, 20, 7, 22,
620
+ 9, 10, 12, 31, 33, 52, 4, 5,
621
+ 34, 18, 36, 37, 36, 54, 39, 40,
622
+ 41, 42, 43, 44, 45, 46, 36, 37,
623
+ 36, 54, 39, 40, 41, 42, 43, 44,
624
+ 45, 46, 38, 4, 5, 47, 34, 18,
625
+ 49, 16, 50, 18, 49, 16, 50, 18,
626
+ 52, 32, 51, 53, 32, 53, 52, 32,
627
+ 53,
628
+ ]
629
+
630
+ class << self
631
+ attr_accessor :_trans_actions
632
+ private :_trans_actions, :_trans_actions=
633
+ end
634
+ self._trans_actions = [
635
+ 1, 0, 0, 2, 3, 0, 0, 4,
636
+ 5, 0, 0, 0, 6, 7, 7, 7,
637
+ 7, 8, 0, 0, 0, 5, 0, 9,
638
+ 9, 10, 9, 9, 9, 9, 9, 9,
639
+ 9, 9, 0, 0, 11, 0, 0, 0,
640
+ 0, 0, 0, 0, 0, 0, 0, 0,
641
+ 0, 0, 5, 0, 12, 12, 13, 14,
642
+ 12, 12, 12, 14, 0, 0, 12, 12,
643
+ 14, 12, 15, 15, 16, 17, 15, 15,
644
+ 15, 15, 15, 15, 15, 15, 0, 0,
645
+ 5, 18, 0, 0, 0, 0, 0, 0,
646
+ 0, 0, 0, 19, 19, 0, 20, 19,
647
+ 21, 21, 22, 21, 23, 23, 24, 23,
648
+ 21, 21, 0, 25, 0, 5, 12, 12,
649
+ 14,
650
+ ]
651
+
652
+ class << self
653
+ attr_accessor :_eof_actions
654
+ private :_eof_actions, :_eof_actions=
655
+ end
656
+ self._eof_actions = [
657
+ 0, 0, 0, 0, 0, 0, 0, 0,
658
+ 0, 0, 0, 0, 0, 0, 0, 0,
659
+ 0, 0, 0, 0, 0, 0, 0, 0,
660
+ 0, 0, 0, 0, 0, 0, 0, 0,
661
+ 0, 0, 0, 0, 0, 0, 0, 0,
662
+ 0, 0, 0, 0, 0, 0, 0, 19,
663
+ 21, 21, 23, 21, 0, 12, 0,
664
+ ]
665
+
666
+ class << self
667
+ attr_accessor :start
668
+ end
669
+ self.start = 1
670
+ class << self
671
+ attr_accessor :first_final
672
+ end
673
+ self.first_final = 47
674
+ class << self
675
+ attr_accessor :error
676
+ end
677
+ self.error = 0
678
+
679
+ class << self
680
+ attr_accessor :en_comment_tail
681
+ end
682
+ self.en_comment_tail = 35
683
+ class << self
684
+ attr_accessor :en_main
685
+ end
686
+ self.en_main = 1
687
+
688
+ def self.parse(data)
689
+ data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
690
+
691
+ return ContentTypeStruct.new("text", "plain", []) if Mail::Utilities.blank?(data)
692
+ content_type = ContentTypeStruct.new(nil, nil, [])
693
+
694
+ # Parser state
695
+ main_type_s = sub_type_s = param_attr_s = param_attr = nil
696
+ qstr_s = qstr = param_val_s = nil
697
+
698
+ # 5.1 Variables Used by Ragel
699
+ p = 0
700
+ eof = pe = data.length
701
+ stack = []
702
+
703
+ begin
704
+ p ||= 0
705
+ pe ||= data.length
706
+ cs = start
707
+ top = 0
708
+ end
709
+
710
+ begin
711
+ testEof = false
712
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
713
+ _goto_level = 0
714
+ _resume = 10
715
+ _eof_trans = 15
716
+ _again = 20
717
+ _test_eof = 30
718
+ _out = 40
719
+ while true
720
+ if _goto_level <= 0
721
+ if p == pe
722
+ _goto_level = _test_eof
723
+ next
724
+ end
725
+ if cs == 0
726
+ _goto_level = _out
727
+ next
728
+ end
729
+ end
730
+ if _goto_level <= _resume
731
+ _keys = cs << 1
732
+ _inds = _index_offsets[cs]
733
+ _slen = _key_spans[cs]
734
+ _wide = data[p].ord
735
+ _trans = if (_slen > 0 &&
736
+ _trans_keys[_keys] <= _wide &&
737
+ _wide <= _trans_keys[_keys + 1])
738
+ _indicies[_inds + _wide - _trans_keys[_keys]]
739
+ else
740
+ _indicies[_inds + _slen]
741
+ end
742
+ cs = _trans_targs[_trans]
743
+ if _trans_actions[_trans] != 0
744
+ case _trans_actions[_trans]
745
+ when 1
746
+ begin
747
+ main_type_s = p
748
+ end
749
+ when 2
750
+ begin
751
+ content_type.main_type = chars(data, main_type_s, p - 1).downcase
752
+ end
753
+ when 3
754
+ begin
755
+ sub_type_s = p
756
+ end
757
+ when 19
758
+ begin
759
+ content_type.sub_type = chars(data, sub_type_s, p - 1).downcase
760
+ end
761
+ when 4
762
+ begin
763
+ param_attr_s = p
764
+ end
765
+ when 6
766
+ begin
767
+ param_attr = chars(data, param_attr_s, p - 1)
768
+ end
769
+ when 9
770
+ begin
771
+ qstr_s = p
772
+ end
773
+ when 11
774
+ begin
775
+ qstr = chars(data, qstr_s, p - 1)
776
+ end
777
+ when 7
778
+ begin
779
+ param_val_s = p
780
+ end
781
+ when 21
782
+ begin
783
+ if param_attr.nil?
784
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
785
+ end
786
+
787
+ # Use quoted s value if one exists, otherwise use parameter value
788
+ value = qstr || chars(data, param_val_s, p - 1)
789
+
790
+ content_type.parameters << { param_attr => value }
791
+ param_attr = nil
792
+ qstr = nil
793
+ end
794
+ when 12
795
+ begin
796
+ end
797
+ when 15
798
+ begin
799
+ end
800
+ when 5
801
+ begin
802
+ begin
803
+ stack[top] = cs
804
+ top += 1
805
+ cs = 35
806
+ _goto_level = _again
807
+ next
808
+ end
809
+ end
810
+ when 18
811
+ begin
812
+ begin
813
+ top -= 1
814
+ cs = stack[top]
815
+ _goto_level = _again
816
+ next
817
+ end
818
+ end
819
+ when 20
820
+ begin
821
+ content_type.sub_type = chars(data, sub_type_s, p - 1).downcase
822
+ end
823
+ begin
824
+ begin
825
+ stack[top] = cs
826
+ top += 1
827
+ cs = 35
828
+ _goto_level = _again
829
+ next
830
+ end
831
+ end
832
+ when 10
833
+ begin
834
+ qstr_s = p
835
+ end
836
+ begin
837
+ qstr = chars(data, qstr_s, p - 1)
838
+ end
839
+ when 8
840
+ begin
841
+ param_val_s = p
842
+ end
843
+ begin
844
+ begin
845
+ stack[top] = cs
846
+ top += 1
847
+ cs = 35
848
+ _goto_level = _again
849
+ next
850
+ end
851
+ end
852
+ when 25
853
+ begin
854
+ if param_attr.nil?
855
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
856
+ end
857
+
858
+ # Use quoted s value if one exists, otherwise use parameter value
859
+ value = qstr || chars(data, param_val_s, p - 1)
860
+
861
+ content_type.parameters << { param_attr => value }
862
+ param_attr = nil
863
+ qstr = nil
864
+ end
865
+ begin
866
+ begin
867
+ stack[top] = cs
868
+ top += 1
869
+ cs = 35
870
+ _goto_level = _again
871
+ next
872
+ end
873
+ end
874
+ when 13
875
+ begin
876
+ end
877
+ begin
878
+ param_attr_s = p
879
+ end
880
+ when 23
881
+ begin
882
+ end
883
+ begin
884
+ if param_attr.nil?
885
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
886
+ end
887
+
888
+ # Use quoted s value if one exists, otherwise use parameter value
889
+ value = qstr || chars(data, param_val_s, p - 1)
890
+
891
+ content_type.parameters << { param_attr => value }
892
+ param_attr = nil
893
+ qstr = nil
894
+ end
895
+ when 14
896
+ begin
897
+ end
898
+ begin
899
+ begin
900
+ stack[top] = cs
901
+ top += 1
902
+ cs = 35
903
+ _goto_level = _again
904
+ next
905
+ end
906
+ end
907
+ when 16
908
+ begin
909
+ end
910
+ begin
911
+ begin
912
+ stack[top] = cs
913
+ top += 1
914
+ cs = 35
915
+ _goto_level = _again
916
+ next
917
+ end
918
+ end
919
+ when 17
920
+ begin
921
+ end
922
+ begin
923
+ begin
924
+ top -= 1
925
+ cs = stack[top]
926
+ _goto_level = _again
927
+ next
928
+ end
929
+ end
930
+ when 22
931
+ begin
932
+ begin
933
+ stack[top] = cs
934
+ top += 1
935
+ cs = 35
936
+ _goto_level = _again
937
+ next
938
+ end
939
+ end
940
+ begin
941
+ if param_attr.nil?
942
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
943
+ end
944
+
945
+ # Use quoted s value if one exists, otherwise use parameter value
946
+ value = qstr || chars(data, param_val_s, p - 1)
947
+
948
+ content_type.parameters << { param_attr => value }
949
+ param_attr = nil
950
+ qstr = nil
951
+ end
952
+ when 24
953
+ begin
954
+ end
955
+ begin
956
+ begin
957
+ stack[top] = cs
958
+ top += 1
959
+ cs = 35
960
+ _goto_level = _again
961
+ next
962
+ end
963
+ end
964
+ begin
965
+ if param_attr.nil?
966
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
967
+ end
968
+
969
+ # Use quoted s value if one exists, otherwise use parameter value
970
+ value = qstr || chars(data, param_val_s, p - 1)
971
+
972
+ content_type.parameters << { param_attr => value }
973
+ param_attr = nil
974
+ qstr = nil
975
+ end
976
+ end
977
+ end
978
+ end
979
+ if _goto_level <= _again
980
+ if cs == 0
981
+ _goto_level = _out
982
+ next
983
+ end
984
+ p += 1
985
+ if p != pe
986
+ _goto_level = _resume
987
+ next
988
+ end
989
+ end
990
+ if _goto_level <= _test_eof
991
+ if p == eof
992
+ case _eof_actions[cs]
993
+ when 19
994
+ begin
995
+ content_type.sub_type = chars(data, sub_type_s, p - 1).downcase
996
+ end
997
+ when 21
998
+ begin
999
+ if param_attr.nil?
1000
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
1001
+ end
1002
+
1003
+ # Use quoted s value if one exists, otherwise use parameter value
1004
+ value = qstr || chars(data, param_val_s, p - 1)
1005
+
1006
+ content_type.parameters << { param_attr => value }
1007
+ param_attr = nil
1008
+ qstr = nil
1009
+ end
1010
+ when 12
1011
+ begin
1012
+ end
1013
+ when 23
1014
+ begin
1015
+ end
1016
+ begin
1017
+ if param_attr.nil?
1018
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
1019
+ end
1020
+
1021
+ # Use quoted s value if one exists, otherwise use parameter value
1022
+ value = qstr || chars(data, param_val_s, p - 1)
1023
+
1024
+ content_type.parameters << { param_attr => value }
1025
+ param_attr = nil
1026
+ qstr = nil
1027
+ end
1028
+ end
1029
+ end
1030
+ end
1031
+ if _goto_level <= _out
1032
+ break
1033
+ end
1034
+ end
1035
+ end
1036
+
1037
+ if false
1038
+ testEof
1039
+ end
1040
+
1041
+ if p != eof || cs < 47
1042
+ raise Mail::Field::IncompleteParseError.new(Mail::ContentTypeElement, data, p)
1043
+ end
1044
+
1045
+ content_type
1046
+ end
1047
+ end
1048
+ end
1049
+ ensure
1050
+ $VERBOSE = original_verbose
1051
+ end