puppet 5.2.0 → 5.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (40) hide show
  1. data/Gemfile +9 -28
  2. data/lib/puppet.rb +1 -0
  3. data/lib/puppet/defaults.rb +21 -5
  4. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +12 -0
  5. data/lib/puppet/network/http/connection.rb +108 -15
  6. data/lib/puppet/parser/compiler.rb +1 -1
  7. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -1
  8. data/lib/puppet/pops/lookup/hiera_config.rb +1 -1
  9. data/lib/puppet/pops/parser/egrammar.ra +1 -1
  10. data/lib/puppet/pops/parser/eparser.rb +378 -378
  11. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  12. data/lib/puppet/pops/patterns.rb +2 -1
  13. data/lib/puppet/pops/types/p_object_type.rb +2 -0
  14. data/lib/puppet/pops/types/puppet_object.rb +1 -1
  15. data/lib/puppet/pops/types/ruby_generator.rb +1 -1
  16. data/lib/puppet/pops/types/type_calculator.rb +1 -0
  17. data/lib/puppet/settings.rb +3 -1
  18. data/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
  19. data/lib/puppet/ssl/certificate_authority.rb +1 -1
  20. data/lib/puppet/ssl/certificate_revocation_list.rb +1 -1
  21. data/lib/puppet/ssl/host.rb +29 -16
  22. data/lib/puppet/transaction/report.rb +9 -3
  23. data/lib/puppet/type/scheduled_task.rb +4 -5
  24. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +1 -1
  25. data/lib/puppet/version.rb +1 -1
  26. data/locales/ja/puppet.po +63 -57
  27. data/locales/puppet.pot +46 -32
  28. data/spec/unit/functions/epp_spec.rb +7 -2
  29. data/spec/unit/functions4_spec.rb +3 -2
  30. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +8 -0
  31. data/spec/unit/network/http/connection_spec.rb +88 -1
  32. data/spec/unit/pops/parser/lexer2_spec.rb +30 -0
  33. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +30 -0
  34. data/spec/unit/pops/types/p_object_type_spec.rb +10 -2
  35. data/spec/unit/pops/types/type_calculator_spec.rb +13 -0
  36. data/spec/unit/pops/validator/validator_spec.rb +10 -0
  37. data/spec/unit/settings/certificate_revocation_setting_spec.rb +37 -0
  38. data/spec/unit/ssl/host_spec.rb +22 -4
  39. data/spec/unit/transaction/report_spec.rb +5 -0
  40. metadata +5 -2
data/Gemfile CHANGED
@@ -1,5 +1,7 @@
1
1
  source ENV['GEM_SOURCE'] || "https://rubygems.org"
2
2
 
3
+ gemspec
4
+
3
5
  def location_for(place, fake_version = nil)
4
6
  if place =~ /^(git[:@][^#]*)#(.*)/
5
7
  [fake_version, { :git => $1, :branch => $2, :require => false }].compact
@@ -22,16 +24,17 @@ platforms :ruby do
22
24
  #gem 'ruby-augeas', :group => :development
23
25
  end
24
26
 
25
- gem "puppet", :path => File.dirname(__FILE__), :require => false
26
- gem "facter", *location_for(ENV['FACTER_LOCATION'] || ['> 2.0', '< 4'])
27
- gem "hiera", *location_for(ENV['HIERA_LOCATION'] || ['>= 3.2.1', '< 4'])
27
+ # override .gemspec deps - may issue warning depending on Bundler version
28
+ gem "facter", *location_for(ENV['FACTER_LOCATION']) if ENV.has_key?('FACTER_LOCATION')
29
+ gem "hiera", *location_for(ENV['HIERA_LOCATION']) if ENV.has_key?('HIERA_LOCATION')
28
30
  # PUP-7115 - return to a gem dependency in Puppet 5
29
31
  # gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ['>= 0.1.3', '< 2'])
30
- # i18n support (gettext-setup and dependencies)
31
- gem 'gettext-setup', '>= 0.10', '< 1.0', :require => false
32
- gem 'locale', '~> 2.1', :require => false
33
32
 
34
33
  group(:development, :test) do
34
+ # rake is in .gemspec as a development dependency but cannot
35
+ # be removed here *yet* due to TravisCI / AppVeyor which call:
36
+ # bundle install --without development
37
+ # PUP-7433 describes work necessary to restructure this
35
38
  gem "rake", "10.1.1", :require => false
36
39
  gem "rspec", "~> 3.1", :require => false
37
40
  gem "rspec-its", "~> 1.1", :require => false
@@ -77,28 +80,6 @@ group(:extra) do
77
80
  gem "msgpack", :require => false
78
81
  end
79
82
 
80
- require 'yaml'
81
- data = YAML.load_file(File.join(File.dirname(__FILE__), 'ext', 'project_data.yaml'))
82
- bundle_platforms = data['bundle_platforms']
83
- x64_platform = Gem::Platform.local.cpu == 'x64'
84
- data['gem_platform_dependencies'].each_pair do |gem_platform, info|
85
- next if gem_platform == 'x86-mingw32' && x64_platform
86
- next if gem_platform == 'x64-mingw32' && !x64_platform
87
- if bundle_deps = info['gem_runtime_dependencies']
88
- bundle_platform = bundle_platforms[gem_platform] or raise "Missing bundle_platform"
89
- if bundle_platform == "all"
90
- bundle_deps.each_pair do |name, version|
91
- gem(name, version, :require => false)
92
- end
93
- else
94
- platform(bundle_platform.intern) do
95
- bundle_deps.each_pair do |name, version|
96
- gem(name, version, :require => false)
97
- end
98
- end
99
- end
100
- end
101
- end
102
83
 
103
84
  if File.exists? "#{__FILE__}.local"
104
85
  eval(File.read("#{__FILE__}.local"), binding)
@@ -220,6 +220,7 @@ module Puppet
220
220
  Puppet::Network::HTTP::NoCachePool.new
221
221
  },
222
222
  :ssl_host => proc { Puppet::SSL::Host.localhost },
223
+ :certificate_revocation => proc { Puppet[:certificate_revocation] },
223
224
  :plugins => proc { Puppet::Plugins::Configuration.load_plugins }
224
225
  }
225
226
  end
@@ -854,11 +854,27 @@ EOT
854
854
  This is distinct from the certificate authority's CRL."
855
855
  },
856
856
  :certificate_revocation => {
857
- :default => true,
858
- :type => :boolean,
859
- :desc => "Whether certificate revocation should be supported by downloading a
860
- Certificate Revocation List (CRL)
861
- to all clients. If enabled, CA chaining will almost definitely not work.",
857
+ :default => 'chain',
858
+ :type => :certificate_revocation,
859
+ :desc => <<EOT
860
+ Whether certificate revocation checking should be enabled, and what level of checking should be performed.
861
+
862
+ When certificate_revocation is set to 'true' or 'chain', Puppet will download the CA CRL and will perform revocation
863
+ checking against each certificate in the chain.
864
+
865
+ Puppet is unable to load multiple CRLs, so if certificate_revocation is set to 'chain' and Puppet attempts to verify
866
+ a certificate signed by a root CA the behavior is equivalent to the 'leaf' setting, and if Puppet attempts to verify
867
+ a certificate signed by an intermediate CA then verification will fail as Puppet will be unable to load the multiple
868
+ CRLs required for full chain checking. As such the 'chain' setting is limited in functionality and is meant as a stand
869
+ in pending the implementation of full chain checking.
870
+
871
+ When certificate_revocation is set to 'leaf', Puppet will download the CA CRL and will verify the leaf certificate
872
+ against that CRL. CRLs will not be fetched or checked for the rest of the certificates in the chain. If you are using
873
+ an intermediate CA certificate and want to enable certificate revocation checking, this setting must be set to 'leaf'.
874
+
875
+ When certificate_revocation is set to 'false', Puppet will disable all certificate revocation checking and will not
876
+ attempt to download the CRL.
877
+ EOT
862
878
  },
863
879
  :digest_algorithm => {
864
880
  :default => 'md5',
@@ -7,4 +7,16 @@ class Puppet::SSL::CertificateRevocationList::Rest < Puppet::Indirector::REST
7
7
  use_server_setting(:ca_server)
8
8
  use_port_setting(:ca_port)
9
9
  use_srv_service(:ca)
10
+
11
+ def find(request)
12
+ if !Puppet::FileSystem.exist?(Puppet[:hostcrl])
13
+ msg = "Disable certificate revocation checking when fetching the CRL and no CRL is present"
14
+ overrides = {certificate_revocation: false}
15
+ Puppet.override(overrides, msg) do
16
+ super
17
+ end
18
+ else
19
+ super
20
+ end
21
+ end
10
22
  end
@@ -4,6 +4,7 @@ require 'puppet/ssl/configuration'
4
4
  require 'puppet/ssl/validator'
5
5
  require 'puppet/network/http'
6
6
  require 'uri'
7
+ require 'date'
7
8
 
8
9
  module Puppet::Network::HTTP
9
10
 
@@ -75,7 +76,7 @@ module Puppet::Network::HTTP
75
76
  # @!macro common_options
76
77
  # @api public
77
78
  def get(path, headers = {}, options = {})
78
- request_with_redirects(Net::HTTP::Get.new(path, headers), options)
79
+ do_request(Net::HTTP::Get.new(path, headers), options)
79
80
  end
80
81
 
81
82
  # @param path [String]
@@ -86,7 +87,7 @@ module Puppet::Network::HTTP
86
87
  def post(path, data, headers = nil, options = {})
87
88
  request = Net::HTTP::Post.new(path, headers)
88
89
  request.body = data
89
- request_with_redirects(request, options)
90
+ do_request(request, options)
90
91
  end
91
92
 
92
93
  # @param path [String]
@@ -94,7 +95,7 @@ module Puppet::Network::HTTP
94
95
  # @!macro common_options
95
96
  # @api public
96
97
  def head(path, headers = {}, options = {})
97
- request_with_redirects(Net::HTTP::Head.new(path, headers), options)
98
+ do_request(Net::HTTP::Head.new(path, headers), options)
98
99
  end
99
100
 
100
101
  # @param path [String]
@@ -102,7 +103,7 @@ module Puppet::Network::HTTP
102
103
  # @!macro common_options
103
104
  # @api public
104
105
  def delete(path, headers = {'Depth' => 'Infinity'}, options = {})
105
- request_with_redirects(Net::HTTP::Delete.new(path, headers), options)
106
+ do_request(Net::HTTP::Delete.new(path, headers), options)
106
107
  end
107
108
 
108
109
  # @param path [String]
@@ -113,7 +114,7 @@ module Puppet::Network::HTTP
113
114
  def put(path, data, headers = nil, options = {})
114
115
  request = Net::HTTP::Put.new(path, headers)
115
116
  request.body = data
116
- request_with_redirects(request, options)
117
+ do_request(request, options)
117
118
  end
118
119
 
119
120
  def request(method, *args)
@@ -164,7 +165,7 @@ module Puppet::Network::HTTP
164
165
 
165
166
  private
166
167
 
167
- def request_with_redirects(request, options)
168
+ def do_request(request, options)
168
169
  current_request = request
169
170
  current_site = @site
170
171
  response = nil
@@ -177,9 +178,9 @@ module Puppet::Network::HTTP
177
178
 
178
179
  current_response = execute_request(connection, current_request)
179
180
 
180
- if [301, 302, 307].include?(current_response.code.to_i)
181
-
182
- # handle the redirection
181
+ case current_response.code.to_i
182
+ when 301, 302, 307
183
+ # handle redirection
183
184
  location = URI.parse(current_response['location'])
184
185
  current_site = current_site.move_to(location)
185
186
 
@@ -189,6 +190,8 @@ module Puppet::Network::HTTP
189
190
  request.each do |header, value|
190
191
  current_request[header] = value
191
192
  end
193
+ when 429, 503
194
+ response = handle_retry_after(current_response)
192
195
  else
193
196
  response = current_response
194
197
  end
@@ -200,6 +203,91 @@ module Puppet::Network::HTTP
200
203
  raise RedirectionLimitExceededException, _("Too many HTTP redirections for %{host}:%{port}") % { host: @host, port: @port }
201
204
  end
202
205
 
206
+ # Handles the Retry-After header of a HTTPResponse
207
+ #
208
+ # This method checks the response for a Retry-After header and handles
209
+ # it by sleeping for the indicated number of seconds. The response is
210
+ # returned unmodified if no Retry-After header is present.
211
+ #
212
+ # @param response [Net::HTTPResponse] A response recieved from the
213
+ # HTTP client.
214
+ #
215
+ # @return [nil] Sleeps and returns nil if the response contained a
216
+ # Retry-After header that indicated the request should be retried.
217
+ # @return [Net::HTTPResponse] Returns the `response` unmodified if
218
+ # no Retry-After header was present or the Retry-After header could
219
+ # not be parsed as an integer or RFC 2822 date.
220
+ def handle_retry_after(response)
221
+ retry_after = response['Retry-After']
222
+ return response if retry_after.nil?
223
+
224
+ retry_sleep = parse_retry_after_header(retry_after)
225
+ # Recover remote hostname if Net::HTTPResponse was generated by a
226
+ # method that fills in the uri attribute.
227
+ #
228
+ # TODO: Drop the respond_to? check when support for Ruby 1.9.3 is dropped.
229
+ server_hostname = if response.respond_to?(:uri) && response.uri.is_a?(URI)
230
+ response.uri.host
231
+ else
232
+ # TRANSLATORS: Used in the phrase:
233
+ # "Received a response from the remote server."
234
+ _('the remote server')
235
+ end
236
+
237
+ if retry_sleep.nil?
238
+ Puppet.err(_('Received a %{status_code} response from %{server_hostname}, but the Retry-After header value of "%{retry_after}" could not be converted to an integer or RFC 2822 date.') %
239
+ {status_code: response.code,
240
+ server_hostname: server_hostname,
241
+ retry_after: retry_after.inspect})
242
+
243
+ return response
244
+ end
245
+
246
+ # Cap maximum sleep at the run interval of the Puppet agent.
247
+ retry_sleep = [retry_sleep, Puppet[:runinterval]].min
248
+
249
+ Puppet.warning(_('Received a %{status_code} response from %{server_hostname}. Sleeping for %{retry_sleep} seconds before retrying the request.') %
250
+ {status_code: response.code,
251
+ server_hostname: server_hostname,
252
+ retry_sleep: retry_sleep})
253
+
254
+ ::Kernel.sleep(retry_sleep)
255
+
256
+ return nil
257
+ end
258
+
259
+ # Parse the value of a Retry-After header
260
+ #
261
+ # Parses a string containing an Integer or RFC 2822 datestamp and returns
262
+ # an integer number of seconds before a request can be retried.
263
+ #
264
+ # @param header_value [String] The value of the Retry-After header.
265
+ #
266
+ # @return [Integer] Number of seconds to wait before retrying the
267
+ # request. Will be equal to 0 for the case of date that has already
268
+ # passed.
269
+ # @return [nil] Returns `nil` when the `header_value` can't be
270
+ # parsed as an Integer or RFC 2822 date.
271
+ def parse_retry_after_header(header_value)
272
+ retry_after = begin
273
+ Integer(header_value)
274
+ rescue TypeError, ArgumentError
275
+ begin
276
+ DateTime.rfc2822(header_value)
277
+ rescue ArgumentError
278
+ return nil
279
+ end
280
+ end
281
+
282
+ case retry_after
283
+ when Integer
284
+ retry_after
285
+ when DateTime
286
+ sleep = (retry_after.to_time - DateTime.now.to_time).to_i
287
+ (sleep > 0) ? sleep : 0
288
+ end
289
+ end
290
+
203
291
  def apply_options_to(request, options)
204
292
  request["User-Agent"] = Puppet[:http_user_agent]
205
293
 
@@ -222,15 +310,20 @@ module Puppet::Network::HTTP
222
310
  # can be nil
223
311
  peer_cert = @verify.peer_certs.last
224
312
 
225
- if peer_cert && !OpenSSL::SSL.verify_certificate_identity(peer_cert.content, site.host)
226
- valid_certnames = [peer_cert.name, *peer_cert.subject_alt_names].uniq
227
- msg = valid_certnames.length > 1 ? _("one of %{certnames}") % { certnames: valid_certnames.join(', ') } : valid_certnames.first
228
- msg += _("Server hostname '%{host}' did not match server certificate; expected %{msg}") % { host: site.host, msg: msg }
229
- raise Puppet::Error, msg, error.backtrace
230
- elsif error.message.include? "certificate verify failed"
313
+ if error.message.include? "certificate verify failed"
231
314
  msg = error.message
232
315
  msg << ": [" + @verify.verify_errors.join('; ') + "]"
233
316
  raise Puppet::Error, msg, error.backtrace
317
+ elsif peer_cert && !OpenSSL::SSL.verify_certificate_identity(peer_cert.content, site.host)
318
+ valid_certnames = [peer_cert.name, *peer_cert.subject_alt_names].uniq
319
+ if valid_certnames.size > 1
320
+ expected_certnames = _("expected one of %{certnames}") % { certnames: valid_certnames.join(', ') }
321
+ else
322
+ expected_certnames = _("expected %{certname}") % { certname: valid_certnames.first }
323
+ end
324
+
325
+ msg = _("Server hostname '%{host}' did not match server certificate; %{expected_certnames}") % { host: site.host, expected_certnames: expected_certnames }
326
+ raise Puppet::Error, msg, error.backtrace
234
327
  else
235
328
  raise
236
329
  end
@@ -319,7 +319,7 @@ class Puppet::Parser::Compiler
319
319
  raise Puppet::Error, _("Invalid node mapping in %{app}: Mapping must be a hash") % { app: app.ref } unless mapping.is_a?(Hash)
320
320
  all_mapped = Set.new
321
321
  mapping.each do |k,v|
322
- raise Puppet::Error, _("Invalid node mapping in %{app}: Key %{k} is not a Node") % { app: app.ref, k: k } unless k.is_a?(Puppet::Resource) && k.type == _('Node')
322
+ raise Puppet::Error, _("Invalid node mapping in %{app}: Key %{k} is not a Node") % { app: app.ref, k: k } unless k.is_a?(Puppet::Resource) && k.type == 'Node'
323
323
  v = [v] unless v.is_a?(Array)
324
324
  v.each do |res|
325
325
  raise Puppet::Error, _("Invalid node mapping in %{app}: Value %{res} is not a resource") % { app: app.ref, res: res } unless res.is_a?(Puppet::Resource)
@@ -41,7 +41,7 @@ class PuppetResourceTypeImplInstantiator
41
41
  functor_expr.left_expr.is_a?(Model::QualifiedReference) &&
42
42
  functor_expr.left_expr.cased_value == rname &&
43
43
  functor_expr.right_expr.is_a?(Model::QualifiedName) &&
44
- functor_expr.right_expr.value == _('new')
44
+ functor_expr.right_expr.value == 'new'
45
45
  else
46
46
  false
47
47
  end
@@ -585,7 +585,7 @@ class HieraConfigV5 < HieraConfig
585
585
 
586
586
  def create_configured_data_providers(lookup_invocation, parent_data_provider, use_default_hierarchy)
587
587
  defaults = @config[KEY_DEFAULTS] || EMPTY_HASH
588
- datadir = defaults[KEY_DATADIR] || _('data')
588
+ datadir = defaults[KEY_DATADIR] || 'data'
589
589
 
590
590
  # Hashes enumerate their values in the order that the corresponding keys were inserted so it's safe to use
591
591
  # a hash for the data_providers.
@@ -699,7 +699,7 @@ type_alias
699
699
  loc(definition, val[0], val[3])
700
700
  result = add_definition(definition)
701
701
  }
702
- | type_alias_lhs EQUALS type LBRACK expressions RBRACK {
702
+ | type_alias_lhs EQUALS type LBRACK expressions endcomma RBRACK {
703
703
  definition = Factory.TYPE_ASSIGNMENT(val[0], val[2].access(val[4]))
704
704
  loc(definition, val[0], val[5])
705
705
  result = add_definition(definition)
@@ -41,82 +41,80 @@ clist = [
41
41
  '453,127,53,372,195,124,43,76,93,78,79,-267,291,84,60,49,66,67,56,260',
42
42
  '116,58,63,75,68,294,61,69,140,70,454,291,453,292,92,94,95,126,92,127',
43
43
  '140,123,93,124,294,273,21,20,274,125,140,143,292,52,-267,55,275,65,12',
44
- '146,59,44,47,143,54,45,10,11,112,278,62,19,282,143,46,126,497,17,18',
44
+ '146,59,44,47,143,54,45,10,11,112,278,62,19,282,143,46,126,503,17,18',
45
45
  '123,306,441,114,307,117,80,111,125,113,155,127,53,313,127,124,43,76',
46
- '124,78,79,129,130,313,60,49,66,67,56,317,116,58,63,75,68,503,61,69,84',
47
- '70,441,-179,-179,129,130,94,95,126,92,127,126,123,93,124,123,92,21,20',
48
- '92,125,165,75,125,52,166,55,92,65,12,336,59,44,47,155,54,45,10,11,112',
49
- '344,62,19,-180,-180,46,126,362,17,18,123,-181,-181,114,363,117,80,111',
50
- '125,113,365,127,53,369,127,124,43,76,124,78,79,-183,-183,374,60,49,66',
51
- '67,56,376,116,58,63,75,68,379,61,69,381,70,99,98,271,270,294,94,95,126',
52
- '384,127,126,123,93,124,123,385,21,20,291,125,271,270,125,52,397,55,398',
53
- '65,132,399,59,44,47,400,54,45,403,100,112,282,62,19,271,270,46,126,409',
54
- '17,18,123,271,270,114,411,117,80,111,125,113,384,127,53,-222,127,124',
55
- '43,76,124,78,79,319,318,417,60,49,66,67,56,419,116,58,63,75,68,426,61',
56
- '69,427,70,99,98,330,331,336,94,95,126,337,127,126,123,93,124,123,430',
57
- '21,20,433,125,384,384,125,52,146,55,443,65,132,444,59,44,47,447,54,45',
58
- '448,100,451,455,62,19,457,466,46,126,468,17,18,123,470,336,165,75,127',
59
- '80,166,125,124,474,476,53,336,479,480,43,76,336,78,79,483,487,457,60',
60
- '49,66,67,56,489,490,58,63,75,68,491,61,69,492,70,336,126,498,163,112',
61
- '123,160,499,436,500,501,502,511,125,512,513,21,20,114,515,117,516,111',
62
- '52,113,55,80,65,132,517,59,44,47,365,54,45,164,76,112,,62,19,,,46,116',
63
- ',17,18,,,,114,,117,80,111,,113,,,53,,,,43,76,,78,79,,,,60,49,66,67,56',
64
- ',116,58,63,75,68,,61,69,,70,,,,,112,94,95,,,,,,93,,,,21,20,114,,117',
65
- ',111,52,113,55,,65,12,,59,44,47,,54,45,10,11,112,,62,19,,,46,116,,17',
66
- '18,,,,114,,117,80,111,,113,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,116',
67
- '58,63,75,68,,61,69,,70,,,,,112,,,,,,,,,,,,21,20,114,,117,,111,52,113',
68
- '55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,116,,17,18,,,,,,,80,,',
69
- ',,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,',
70
- ',,,,,,,,,,,,,21,20,139,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62',
71
- '19,,,46,,,17,18,,,,165,75,,80,166,,,,,53,,,,43,76,,78,79,,,,60,49,66',
72
- '67,56,,,58,63,75,68,,61,69,,70,,,,163,,,160,,,,,,,,,,21,20,,,,,,52,',
73
- '55,80,65,132,,59,44,47,,54,45,164,76,,,62,19,,,46,,,17,18,,,,165,75',
74
- ',80,166,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69',
75
- ',70,,,,163,,,160,,,,,,,,,,21,20,,,,,,52,,55,80,65,132,,59,44,47,,54',
76
- '45,164,76,,,62,19,,,46,,,17,18,,,,165,75,,80,166,,,,,53,,,,43,76,,78',
77
- '79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,163,,,160,,,,,,,,,',
78
- '21,20,,,,,,52,,55,80,65,132,,59,44,47,,54,45,164,76,,,62,19,,,46,,,17',
79
- '18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68',
80
- ',61,69,174,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54',
81
- '45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,172',
82
- '169,66,67,170,179,178,171,63,75,68,,61,69,181,70,,,,,,,,,,,,,,,,,21',
83
- '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
84
- ',,,,80,,,,,,53,,,,43,76,,78,79,,,,172,169,66,67,170,179,178,171,63,75',
85
- '68,,61,69,,70,183,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47',
86
- ',54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,',
87
- ',,172,169,66,67,170,179,178,171,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,',
88
- '21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18',
46
+ '124,78,79,129,130,313,60,49,66,67,56,317,116,58,63,75,68,84,61,69,92',
47
+ '70,165,75,-179,-179,166,94,95,126,92,127,126,123,93,124,123,92,21,20',
48
+ '92,125,129,130,125,52,336,55,155,65,12,344,59,44,47,362,54,45,10,11',
49
+ '112,363,62,19,-180,-180,46,126,365,17,18,123,-181,-181,114,369,117,80',
50
+ '111,125,113,374,127,53,376,127,124,43,76,124,78,79,-183,-183,379,60',
51
+ '49,66,67,56,381,116,58,63,75,68,294,61,69,384,70,99,98,271,270,385,94',
52
+ '95,126,291,127,126,123,93,124,123,397,21,20,398,125,271,270,125,52,399',
53
+ '55,400,65,132,403,59,44,47,282,54,45,409,100,112,411,62,19,271,270,46',
54
+ '126,384,17,18,123,271,270,114,-222,117,80,111,125,113,417,127,53,419',
55
+ '127,124,43,76,124,78,79,319,318,426,60,49,66,67,56,427,116,58,63,75',
56
+ '68,336,61,69,337,70,99,98,330,331,430,94,95,126,433,127,126,123,93,124',
57
+ '123,384,21,20,384,125,146,443,125,52,444,55,447,65,132,448,59,44,47',
58
+ '451,54,45,455,100,457,466,62,19,468,470,46,126,336,17,18,123,474,476',
59
+ '165,75,127,80,166,125,124,336,479,53,480,336,483,43,76,487,78,79,457',
60
+ '489,490,60,49,66,67,56,491,492,58,63,75,68,336,61,69,344,70,498,126',
61
+ '499,163,112,123,160,500,436,501,502,511,512,125,513,514,21,20,114,516',
62
+ '117,517,111,52,113,55,80,65,132,518,59,44,47,365,54,45,164,76,112,,62',
63
+ '19,,,46,116,,17,18,,,,114,,117,80,111,,113,,,53,,,,43,76,,78,79,,,,60',
64
+ '49,66,67,56,,116,58,63,75,68,,61,69,,70,,,,,112,94,95,,,,,,93,,,,21',
65
+ '20,114,,117,,111,52,113,55,,65,12,,59,44,47,,54,45,10,11,112,,62,19',
66
+ ',,46,116,,17,18,,,,114,,117,80,111,,113,,,53,,,,43,76,,78,79,,,,60,49',
67
+ '66,67,56,,116,58,63,75,68,,61,69,,70,,,,,112,,,,,,,,,,,,21,20,114,,117',
68
+ ',111,52,113,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,116,,17,18',
89
69
  ',,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61',
90
- '69,,194,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,',
91
- ',,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
92
- '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
93
- ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
94
- ',78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21',
95
- '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
96
- ',,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69',
97
- ',70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11',
98
- ',,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
99
- '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
70
+ '69,,70,,,,,,,,,,,,,,,,,21,20,139,,,,,52,,55,,65,12,,59,44,47,,54,45',
71
+ '10,11,,,62,19,,,46,,,17,18,,,,165,75,,80,166,,,,,53,,,,43,76,,78,79',
72
+ ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,163,,,160,,,,,,,,,,21',
73
+ '20,,,,,,52,,55,80,65,132,,59,44,47,,54,45,164,76,,,62,19,,,46,,,17,18',
74
+ ',,,165,75,,80,166,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75',
75
+ '68,,61,69,,70,,,,163,,,160,,,,,,,,,,21,20,,,,,,52,,55,80,65,132,,59',
76
+ '44,47,,54,45,164,76,,,62,19,,,46,,,17,18,,,,165,75,,80,166,,,,,53,,',
77
+ ',43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,163,,,160',
78
+ ',,,,,,,,,21,20,,,,,,52,,55,80,65,132,,59,44,47,,54,45,164,76,,,62,19',
79
+ ',,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58',
80
+ '63,75,68,,61,69,174,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59',
81
+ '44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78',
82
+ '79,,,,172,169,66,67,170,179,178,171,63,75,68,,61,69,181,70,,,,,,,,,',
83
+ ',,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46',
84
+ ',,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,172,169,66,67,170,179,178',
85
+ '171,63,75,68,,61,69,,70,183,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
100
86
  ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
101
- ',78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21',
102
- '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
103
- ',,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69',
104
- ',70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11',
105
- ',,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
87
+ ',78,79,,,,172,169,66,67,170,179,178,171,63,75,68,,61,69,,70,,,,,,,,',
88
+ ',,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46',
89
+ ',,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75',
90
+ '68,,61,69,,194,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,',
91
+ '54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60',
92
+ '49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,',
93
+ '55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,',
94
+ '53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,',
95
+ ',,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,',
96
+ '46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63',
97
+ '75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47',
98
+ ',54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,',
99
+ ',,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,',
100
+ ',52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80',
101
+ ',,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,',
102
+ ',,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62',
103
+ '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,',
104
+ ',58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59',
105
+ '44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78',
106
+ '79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20',
107
+ ',,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,',
108
+ ',80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,',
109
+ '70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,',
110
+ ',62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
106
111
  '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
107
112
  ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
108
113
  ',78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21',
109
- '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
110
- ',,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69',
111
- ',70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11',
112
- ',,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
113
- '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,212,227,218,228',
114
- '65,220,230,222,44,210,,214,208,,,,,62,19,231,226,209,,,17,207,,,,,,',
115
- '80,,,,,229,213,,,,43,76,,78,79,,,,223,211,224,225,219,233,232,221,63',
116
- '75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47',
117
- ',54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60',
118
- '49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,',
119
- '55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53',
114
+ '20,,,,,,212,227,218,228,65,220,230,222,44,210,,214,208,,,,,62,19,231',
115
+ '226,209,,,17,207,,,,,,,80,,,,,229,213,,,,43,76,,78,79,,,,223,211,224',
116
+ '225,219,233,232,221,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52',
117
+ ',55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53',
120
118
  ',,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,',
121
119
  ',,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17',
122
120
  '18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68',
@@ -156,9 +154,9 @@ clist = [
156
154
  '44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
157
155
  ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,',
158
156
  ',,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,',
159
- ',,,53,,,255,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70',
160
- ',,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19',
161
- ',,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58',
157
+ ',,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,',
158
+ ',,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,',
159
+ '46,,,17,18,,,,,,,80,,,,,,53,,,255,43,76,,78,79,,,,60,49,66,67,56,,,58',
162
160
  '63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44',
163
161
  '47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,',
164
162
  ',60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,',
@@ -166,20 +164,20 @@ clist = [
166
164
  ',53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,',
167
165
  ',,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46',
168
166
  ',,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75',
169
- '68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,296,,,,,52,,55,,65,12,,59,44,47',
170
- ',54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,',
171
- ',,60,49,66,67,56,,,58,63,75,68,,61,69,,70,304,,,,,,,,,,,,,,,,21,20,',
172
- ',,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,',
173
- '80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70',
174
- ',,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62',
175
- '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,',
176
- ',58,63,75,68,,61,69,,70,183,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
177
- ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
178
- ',78,79,,,,172,169,66,67,170,179,178,171,63,75,68,,61,69,,70,,,337,,',
179
- ',,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46',
180
- ',,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75',
181
167
  '68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54',
182
168
  '45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49',
169
+ '66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,296,,,,,52,',
170
+ '55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,',
171
+ '53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,304,,',
172
+ ',,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19',
173
+ ',,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58',
174
+ '63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44',
175
+ '47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
176
+ ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,183,,,,,,,,,,,,,,,,21,20',
177
+ ',,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,',
178
+ ',80,,,,,,53,,,,43,76,,78,79,,,,172,169,66,67,170,179,178,171,63,75,68',
179
+ ',61,69,,70,,,337,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54',
180
+ '45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49',
183
181
  '66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55',
184
182
  ',65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,',
185
183
  '43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,',
@@ -187,29 +185,36 @@ clist = [
187
185
  ',,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61',
188
186
  '69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,',
189
187
  ',,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
190
- '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
191
- ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
192
- ',78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21',
193
- '20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,',
188
+ '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132',
189
+ ',59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78',
190
+ '79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20',
191
+ ',,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,',
194
192
  ',80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,',
195
- '70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,',
196
- ',62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
197
- '56,,,58,63,75,68,,61,69,,70,391,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65',
198
- '12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43',
199
- '76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,393,,,,,,,,,,,',
200
- ',,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17',
201
- '18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68',
202
- ',61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45',
203
- ',,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66',
193
+ '70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62',
194
+ '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,',
195
+ ',58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59',
196
+ '44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78',
197
+ '79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,391,,,,,,,,,,,,,,,,21',
198
+ '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
199
+ ',,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69',
200
+ ',70,393,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10',
201
+ '11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66',
204
202
  '67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65',
205
- '12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43',
206
- '76,,78,79,,,,172,169,66,67,170,179,178,171,63,75,68,,61,69,,70,412,',
207
- ',,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19',
208
- ',,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,172,169,66,67,170,179',
209
- '178,171,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
210
- ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
211
- ',78,79,,,,172,169,66,67,170,179,178,171,63,75,68,,61,69,,70,,,,,,,,',
212
- ',,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46',
203
+ '132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
204
+ ',78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21',
205
+ '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
206
+ ',,,,80,,,,,,53,,,,43,76,,78,79,,,,172,169,66,67,170,179,178,171,63,75',
207
+ '68,,61,69,,70,412,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47',
208
+ ',54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,',
209
+ ',,172,169,66,67,170,179,178,171,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,',
210
+ '21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18',
211
+ ',,,,,,80,,,,,,53,,,,43,76,,78,79,,,,172,169,66,67,170,179,178,171,63',
212
+ '75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47',
213
+ ',54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,',
214
+ ',,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,',
215
+ ',52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,',
216
+ ',,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,',
217
+ ',,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46',
213
218
  ',,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75',
214
219
  '68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54',
215
220
  '45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49',
@@ -220,106 +225,101 @@ clist = [
220
225
  ',,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61',
221
226
  '69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,',
222
227
  ',,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
223
- '56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132',
224
- ',59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78',
225
- '79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20',
226
- ',,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80',
227
- ',,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,446',
228
- ',,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62',
229
- '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,',
230
- ',58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59',
231
- '44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
232
- ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,',
233
- ',,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80',
234
- ',,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,459',
235
- ',,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19',
236
- ',,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58',
237
- '63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44',
238
- '47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
239
- ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,',
240
- ',,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80',
241
- ',,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,',
242
- ',,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19',
243
- ',,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58',
244
- '63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44',
245
- '47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,',
246
- ',60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,',
247
- '52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,',
248
- ',,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,',
249
- ',,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,',
250
- ',46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58',
251
- '63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44',
252
- '47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
253
- ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,',
254
- ',,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,',
255
- ',,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,',
256
- ',,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,',
257
- '46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63',
258
- '75,68,,61,69,,70,495,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44',
259
- '47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
260
- ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,',
261
- ',,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80',
262
- ',,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,505',
263
- ',,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62',
264
- '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,',
265
- ',58,63,75,68,,61,69,,70,507,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12',
266
- ',59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
228
+ '56,,,58,63,75,68,,61,69,,70,446,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65',
229
+ '12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43',
230
+ '76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,',
231
+ ',21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,',
232
+ ',,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61',
233
+ '69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10',
234
+ '11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66',
235
+ '67,56,,,58,63,75,68,,61,69,,70,459,,,,,,,,,,,,,,,,21,20,,,,,,52,,55',
236
+ ',65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,',
237
+ '43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,',
238
+ ',,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17',
239
+ '18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68',
240
+ ',61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45',
241
+ '10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49',
242
+ '66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55',
243
+ ',65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,',
244
+ '43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,',
245
+ ',,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18',
246
+ ',,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61',
247
+ '69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10',
248
+ '11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66',
249
+ '67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65',
250
+ '132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76',
267
251
  ',78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21',
268
252
  '20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,',
269
253
  ',,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69',
270
254
  ',70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59,44,47,,54,45,,,,,62',
271
- '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,112,60,49,66,67,56',
272
- ',,58,,,68,108,103,114,,117,,111,,113,,104,106,105,107,,,,,,,,,,,,,,',
273
- ',116,,,,110,109,,,96,97,99,98,101,102,,94,95,112,,297,,,93,,,,,,,108',
274
- '103,114,,117,,111,,113,,104,106,105,107,,,,,100,,,,,,,,,,,116,,,,110',
275
- '109,,,96,97,99,98,101,102,,94,95,112,,298,,,93,,,,,,,108,103,114,,117',
276
- ',111,,113,,104,106,105,107,,,,,100,,,,,,,,,,,116,,,,110,109,,,96,97',
277
- '99,98,101,102,,94,95,112,,299,,,93,,,,,,,108,103,114,,117,,111,,113',
278
- ',104,106,105,107,,,,,100,,,,,,,,,,,116,,,,110,109,,112,96,97,99,98,101',
279
- '102,,94,95,,,108,103,114,93,117,,111,,113,,104,106,105,107,,,,,,,,,',
280
- ',,,,,100,116,,,,110,109,,,96,97,99,98,101,102,,94,95,,,,,,93,,,,112',
281
- ',,,,,,330,331,,,,108,103,114,334,117,112,111,,113,100,104,106,105,107',
282
- ',,,,,114,,117,,111,,113,,,,116,,,,110,109,,,96,97,99,98,101,102,,94',
283
- '95,116,,,112,,93,,,96,97,99,98,,,,94,95,114,,117,112,111,93,113,,,,',
284
- ',,100,,,,114,,117,,111,,113,,,,116,,,100,,,,,96,97,99,98,,,,94,95,116',
285
- ',,112,,93,,,96,97,99,98,101,102,,94,95,114,,117,112,111,93,113,,,,,',
286
- ',100,,,103,114,,117,,111,,113,,104,,116,,,100,,,,,96,97,99,98,101,102',
287
- ',94,95,116,,,,,93,,112,96,97,99,98,101,102,,94,95,,,,103,114,93,117',
288
- '112,111,,113,,104,100,,,,,,,103,114,,117,,111,,113,,104,100,116,,,,',
289
- ',,,96,97,99,98,101,102,,94,95,116,,,,,93,,112,96,97,99,98,101,102,,94',
290
- '95,,,,103,114,93,117,,111,,113,,104,100,,,,,,,,,,,,,,,,,100,116,,,,',
291
- '112,,,96,97,99,98,101,102,,94,95,108,103,114,,117,93,111,,113,,104,106',
292
- '105,107,,,,,,,,,,,,,,,,116,100,,,,112,,,96,97,99,98,101,102,,94,95,108',
293
- '103,114,,117,93,111,,113,,104,106,105,107,,,,,,,,,,,,,,,,116,100,,,',
294
- '109,,,96,97,99,98,101,102,112,94,95,,,340,,,93,,,,108,103,114,,117,',
295
- '111,,113,,104,106,105,107,,,,,,,,100,,,,,,,,116,,,,110,109,,112,96,97',
296
- '99,98,101,102,,94,95,,,108,103,114,93,117,,111,,113,,104,106,105,107',
297
- ',,,,,,,,,,,,,,100,116,,,,110,109,,112,96,97,99,98,101,102,,94,95,,,108',
298
- '103,114,93,117,,111,,113,,104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110',
299
- '109,,,96,97,99,98,101,102,112,94,95,,,,,,93,,,,108,103,114,366,117,',
300
- '111,,113,,104,106,105,107,,,,,,,,100,,,,,,,,116,,,,110,109,,112,96,97',
301
- '99,98,101,102,,94,95,,,108,103,114,93,117,,111,,113,,104,106,105,107',
302
- ',,,,,,,,,,,,,,100,116,,,,110,109,,112,96,97,99,98,101,102,,94,95,,,108',
303
- '103,114,93,117,,111,,113,,104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110',
304
- '109,,112,96,97,99,98,101,102,,94,95,,,108,103,114,93,117,,111,,113,',
305
- '104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110,109,,112,96,97,99,98,101',
306
- '102,,94,95,,,108,103,114,93,117,,111,,113,,104,106,105,107,,,,,,,,,',
307
- ',,,,,100,116,,,,110,109,,112,96,97,99,98,101,102,,94,95,,,108,103,114',
255
+ '19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,',
256
+ ',58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,132,,59',
257
+ '44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79',
258
+ ',,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,495,,,,,,,,,,,,,,,,21,20',
259
+ ',,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,',
260
+ ',80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,',
261
+ '70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,',
262
+ ',62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67',
263
+ '56,,,58,63,75,68,,61,69,,70,505,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65',
264
+ '12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43',
265
+ '76,,78,79,,,,60,49,66,67,56,,,58,63,75,68,,61,69,,70,507,,,,,,,,,,,',
266
+ ',,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45,10,11,,,62,19,,,46,,,17',
267
+ '18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49,66,67,56,,,58,63,75,68',
268
+ ',61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55,,65,12,,59,44,47,,54,45',
269
+ '10,11,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,,43,76,,78,79,,,,60,49',
270
+ '66,67,56,,,58,63,75,68,,61,69,,70,,,,,,,,,,,,,,,,,21,20,,,,,,52,,55',
271
+ ',65,132,,59,44,47,,54,45,,,,,62,19,,,46,,,17,18,,,,,,,80,,,,,,53,,,',
272
+ '43,76,,78,79,,,112,60,49,66,67,56,,,58,,,68,108,103,114,,117,,111,,113',
273
+ ',104,106,105,107,,,,,,,,,,,,,,,,116,,,,110,109,,,96,97,99,98,101,102',
274
+ ',94,95,112,,297,,,93,,,,,,,108,103,114,,117,,111,,113,,104,106,105,107',
275
+ ',,,,100,,,,,,,,,,,116,,,,110,109,,,96,97,99,98,101,102,,94,95,112,,298',
276
+ ',,93,,,,,,,108,103,114,,117,,111,,113,,104,106,105,107,,,,,100,,,,,',
277
+ ',,,,,116,,,,110,109,,,96,97,99,98,101,102,,94,95,112,,299,,,93,,,,,',
278
+ ',108,103,114,,117,,111,,113,,104,106,105,107,,,,,100,,,,,,,,,,,116,',
279
+ ',,110,109,,112,96,97,99,98,101,102,,94,95,,,108,103,114,93,117,,111',
280
+ ',113,,104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110,109,,,96,97,99,98',
281
+ '101,102,,94,95,,,,,,93,,,,112,,,,,,,330,331,,,,108,103,114,334,117,112',
282
+ '111,,113,100,104,106,105,107,,,,,,114,,117,,111,,113,,,,116,,,,110,109',
283
+ ',,96,97,99,98,101,102,,94,95,116,,,112,,93,,,96,97,99,98,,,,94,95,114',
284
+ ',117,112,111,93,113,,,,,,,100,,,,114,,117,,111,,113,,,,116,,,100,,,',
285
+ ',96,97,99,98,,,,94,95,116,,,112,,93,,,96,97,99,98,101,102,,94,95,114',
286
+ ',117,112,111,93,113,,,,,,,100,,,103,114,,117,,111,,113,,104,,116,,,100',
287
+ ',,,,96,97,99,98,101,102,,94,95,116,,,,,93,,112,96,97,99,98,101,102,',
288
+ '94,95,,,,103,114,93,117,112,111,,113,,104,100,,,,,,,103,114,,117,,111',
289
+ ',113,,104,100,116,,,,,,,,96,97,99,98,101,102,,94,95,116,,,,,93,,112',
290
+ '96,97,99,98,101,102,,94,95,,,,103,114,93,117,,111,,113,,104,100,,,,',
291
+ ',,,,,,,,,,,,100,116,,,,,112,,,96,97,99,98,101,102,,94,95,108,103,114',
292
+ ',117,93,111,,113,,104,106,105,107,,,,,,,,,,,,,,,,116,100,,,,112,,,96',
293
+ '97,99,98,101,102,,94,95,108,103,114,,117,93,111,,113,,104,106,105,107',
294
+ ',,,,,,,,,,,,,,,116,100,,,,109,,,96,97,99,98,101,102,112,94,95,,,340',
295
+ ',,93,,,,108,103,114,,117,,111,,113,,104,106,105,107,,,,,,,,100,,,,,',
296
+ ',,116,,,,110,109,,112,96,97,99,98,101,102,,94,95,,,108,103,114,93,117',
297
+ ',111,,113,,104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110,109,,112,96',
298
+ '97,99,98,101,102,,94,95,,,108,103,114,93,117,,111,,113,,104,106,105',
299
+ '107,,,,,,,,,,,,,,,100,116,,,,110,109,,,96,97,99,98,101,102,112,94,95',
300
+ ',,,,,93,,,,108,103,114,366,117,,111,,113,,104,106,105,107,,,,,,,,100',
301
+ ',,,,,,,116,,,,110,109,,112,96,97,99,98,101,102,,94,95,,,108,103,114',
308
302
  '93,117,,111,,113,,104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110,109,',
309
303
  '112,96,97,99,98,101,102,,94,95,,,108,103,114,93,117,,111,,113,,104,106',
310
- '105,107,,,,,,,,,,,,,,,100,116,,,,110,109,,,96,97,99,98,101,102,,94,95',
311
- ',352,227,351,228,93,349,230,353,,346,,348,350,,,,,,,231,226,354,,,,347',
312
- ',,,100,,,,,,,,229,355,,,,,,,,,,,,358,356,359,357,360,233,232,361,352',
313
- '227,351,228,,349,230,353,,346,,348,350,,,,,,,231,226,354,,,,347,,,,',
314
- ',,,,,,,229,355,,,,,,,,,,,,358,356,359,357,360,233,232,361,352,227,351',
315
- '228,,349,230,353,,346,,348,350,,,,,,,231,226,354,,,,347,,,,,,,,,,,,229',
316
- '355,,,,,,,,,,,,358,356,359,357,360,233,232,361,352,227,351,228,,349',
317
- '230,353,,346,,348,350,,,,,,,231,226,354,,,,347,,,,,,,,,,,,229,355,,',
318
- ',,,,,,,,,358,356,359,357,360,233,232,361,352,227,351,228,,349,230,353',
304
+ '105,107,,,,,,,,,,,,,,,100,116,,,,110,109,,112,96,97,99,98,101,102,,94',
305
+ '95,,,108,103,114,93,117,,111,,113,,104,106,105,107,,,,,,,,,,,,,,,100',
306
+ '116,,,,110,109,,112,96,97,99,98,101,102,,94,95,,,108,103,114,93,117',
307
+ ',111,,113,,104,106,105,107,,,,,,,,,,,,,,,100,116,,,,110,109,,112,96',
308
+ '97,99,98,101,102,,94,95,,,108,103,114,93,117,,111,,113,,104,106,105',
309
+ '107,,,,,,,,,,,,,,,100,116,,,,110,109,,112,96,97,99,98,101,102,,94,95',
310
+ ',,108,103,114,93,117,,111,,113,,104,106,105,107,,,,,,,,,,,,,,,100,116',
311
+ ',,,110,109,,,96,97,99,98,101,102,,94,95,,352,227,351,228,93,349,230',
312
+ '353,,346,,348,350,,,,,,,231,226,354,,,,347,,,,100,,,,,,,,229,355,,,',
313
+ ',,,,,,,,358,356,359,357,360,233,232,361,352,227,351,228,,349,230,353',
319
314
  ',346,,348,350,,,,,,,231,226,354,,,,347,,,,,,,,,,,,229,355,,,,,,,,,,',
320
315
  ',358,356,359,357,360,233,232,361,352,227,351,228,,349,230,353,,346,',
321
316
  '348,350,,,,,,,231,226,354,,,,347,,,,,,,,,,,,229,355,,,,,,,,,,,,358,356',
322
- '359,357,360,233,232,361' ]
317
+ '359,357,360,233,232,361,352,227,351,228,,349,230,353,,346,,348,350,',
318
+ ',,,,,231,226,354,,,,347,,,,,,,,,,,,229,355,,,,,,,,,,,,358,356,359,357',
319
+ '360,233,232,361,352,227,351,228,,349,230,353,,346,,348,350,,,,,,,231',
320
+ '226,354,,,,347,,,,,,,,,,,,229,355,,,,,,,,,,,,358,356,359,357,360,233',
321
+ '232,361,352,227,351,228,,349,230,353,,346,,348,350,,,,,,,231,226,354',
322
+ ',,,347,,,,,,,,,,,,229,355,,,,,,,,,,,,358,356,359,357,360,233,232,361' ]
323
323
  racc_action_table = arr = ::Array.new(9980, nil)
324
324
  idx = 0
325
325
  clist.each do |str|
@@ -340,72 +340,72 @@ clist = [
340
340
  '4,4,236,4,4,220,271,83,4,4,4,4,4,115,239,4,10,10,4,271,10,10,49,10,451',
341
341
  '384,451,271,118,239,239,220,119,56,169,220,239,56,384,135,10,10,136',
342
342
  '220,211,49,384,10,220,10,138,10,10,139,10,10,10,169,10,10,10,10,240',
343
- '141,10,10,145,211,10,56,469,10,10,56,156,469,240,158,240,10,240,56,240',
343
+ '141,10,10,145,211,10,56,484,10,10,56,156,484,240,158,240,10,240,56,240',
344
344
  '171,60,10,173,128,60,10,10,128,10,10,16,16,180,10,10,10,10,10,185,240',
345
- '10,11,11,10,484,11,11,196,11,484,47,47,57,57,240,240,60,201,132,128',
346
- '60,240,132,128,202,11,11,203,60,190,190,128,11,190,11,204,11,11,206',
347
- '11,11,11,221,11,11,11,11,237,257,11,11,61,61,11,132,262,11,11,132,62',
348
- '62,237,264,237,11,237,132,237,265,154,11,268,170,154,11,11,170,11,11',
349
- '63,63,272,11,11,11,11,11,276,237,11,17,17,11,280,17,17,281,17,237,237',
350
- '121,121,282,237,237,154,285,172,170,154,237,172,170,291,17,17,292,154',
351
- '152,152,170,17,300,17,301,17,17,302,17,17,17,303,17,17,305,237,238,308',
352
- '17,17,153,153,17,172,312,17,17,172,167,167,238,314,238,17,238,172,238',
353
- '327,218,17,332,219,218,17,17,219,17,17,187,187,333,17,17,17,17,17,335',
354
- '238,17,18,18,17,341,18,18,343,18,238,238,417,417,345,238,238,218,347',
355
- '223,219,218,238,223,219,364,18,18,367,218,371,373,219,18,376,18,378',
356
- '18,18,379,18,18,18,382,18,18,383,238,390,392,18,18,393,401,18,223,406',
357
- '18,18,223,416,418,59,59,369,18,59,223,369,425,429,18,432,437,438,18',
358
- '18,439,18,18,445,454,455,18,18,18,18,18,457,458,18,19,19,18,461,19,19',
359
- '464,19,465,369,472,59,131,369,59,473,369,478,481,482,493,369,494,496',
360
- '19,19,131,504,131,506,131,19,131,19,59,19,19,508,19,19,19,514,19,19',
361
- '59,59,241,,19,19,,,19,131,,19,19,,,,241,,241,19,241,,241,,,19,,,,19',
362
- '19,,19,19,,,,19,19,19,19,19,,241,19,20,20,19,,20,20,,20,,,,,133,241',
363
- '241,,,,,,241,,,,20,20,133,,133,,133,20,133,20,,20,20,,20,20,20,,20,20',
364
- '20,20,134,,20,20,,,20,133,,20,20,,,,134,,134,20,134,,134,,,20,,,,20',
365
- '20,,20,20,,,,20,20,20,20,20,,134,20,21,21,20,,21,21,,21,,,,,234,,,,',
366
- ',,,,,,,21,21,234,,234,,234,21,234,21,,21,21,,21,21,21,,21,21,21,21,',
367
- ',21,21,,,21,234,,21,21,,,,,,,21,,,,,,21,,,,21,21,,21,21,,,,21,21,21',
368
- '21,21,,,21,48,48,21,,48,48,,48,,,,,,,,,,,,,,,,,48,48,48,,,,,48,,48,',
369
- '48,48,,48,48,48,,48,48,48,48,,,48,48,,,48,,,48,48,,,,222,222,,48,222',
370
- ',,,,48,,,,48,48,,48,48,,,,48,48,48,48,48,,,48,52,52,48,,52,52,,52,,',
371
- ',222,,,222,,,,,,,,,,52,52,,,,,,52,,52,222,52,52,,52,52,52,,52,52,222',
372
- '222,,,52,52,,,52,,,52,52,,,,306,306,,52,306,,,,,52,,,,52,52,,52,52,',
373
- ',,52,52,52,52,52,,,52,53,53,52,,53,53,,53,,,,306,,,306,,,,,,,,,,53,53',
374
- ',,,,,53,,53,306,53,53,,53,53,53,,53,53,306,306,,,53,53,,,53,,,53,53',
375
- ',,,403,403,,53,403,,,,,53,,,,53,53,,53,53,,,,53,53,53,53,53,,,53,54',
376
- '54,53,,54,54,,54,,,,403,,,403,,,,,,,,,,54,54,,,,,,54,,54,403,54,54,',
377
- '54,54,54,,54,54,403,403,,,54,54,,,54,,,54,54,,,,,,,54,,,,,,54,,,,54',
378
- '54,,54,54,,,,54,54,54,54,54,,,54,68,68,54,,68,68,68,68,,,,,,,,,,,,,',
379
- ',,,68,68,,,,,,68,,68,,68,68,,68,68,68,,68,68,68,68,,,68,68,,,68,,,68',
380
- '68,,,,,,,68,,,,,,68,,,,68,68,,68,68,,,,68,68,68,68,68,68,68,68,69,69',
381
- '68,,69,69,69,69,,,,,,,,,,,,,,,,,69,69,,,,,,69,,69,,69,69,,69,69,69,',
382
- '69,69,69,69,,,69,69,,,69,,,69,69,,,,,,,69,,,,,,69,,,,69,69,,69,69,,',
383
- ',69,69,69,69,69,69,69,69,70,70,69,,70,70,,70,70,,,,,,,,,,,,,,,,70,70',
384
- ',,,,,70,,70,,70,70,,70,70,70,,70,70,70,70,,,70,70,,,70,,,70,70,,,,,',
385
- ',70,,,,,,70,,,,70,70,,70,70,,,,70,70,70,70,70,70,70,70,74,74,70,,74',
386
- '74,,74,,,,,,,,,,,,,,,,,74,74,,,,,,74,,74,,74,74,,74,74,74,,74,74,74',
387
- '74,,,74,74,,,74,,,74,74,,,,,,,74,,,,,,74,,,,74,74,,74,74,,,,74,74,74',
388
- '74,74,,,74,79,79,74,,79,79,,79,,,,,,,,,,,,,,,,,79,79,,,,,,79,,79,,79',
389
- '79,,79,79,79,,79,79,,,,,79,79,,,79,,,79,79,,,,,,,79,,,,,,79,,,,79,79',
390
- ',79,79,,,,79,79,79,79,79,,,79,82,82,79,,82,82,,82,,,,,,,,,,,,,,,,,82',
391
- '82,,,,,,82,,82,,82,82,,82,82,82,,82,82,82,82,,,82,82,,,82,,,82,82,,',
392
- ',,,,82,,,,,,82,,,,82,82,,82,82,,,,82,82,82,82,82,,,82,84,84,82,,84,84',
393
- ',84,,,,,,,,,,,,,,,,,84,84,,,,,,84,,84,,84,84,,84,84,84,,84,84,84,84',
394
- ',,84,84,,,84,,,84,84,,,,,,,84,,,,,,84,,,,84,84,,84,84,,,,84,84,84,84',
395
- '84,,,84,85,85,84,,85,85,,85,,,,,,,,,,,,,,,,,85,85,,,,,,85,,85,,85,85',
396
- ',85,85,85,,85,85,85,85,,,85,85,,,85,,,85,85,,,,,,,85,,,,,,85,,,,85,85',
397
- ',85,85,,,,85,85,85,85,85,,,85,86,86,85,,86,86,,86,,,,,,,,,,,,,,,,,86',
398
- '86,,,,,,86,,86,,86,86,,86,86,86,,86,86,86,86,,,86,86,,,86,,,86,86,,',
399
- ',,,,86,,,,,,86,,,,86,86,,86,86,,,,86,86,86,86,86,,,86,87,87,86,,87,87',
400
- ',87,,,,,,,,,,,,,,,,,87,87,,,,,,87,,87,,87,87,,87,87,87,,87,87,87,87',
401
- ',,87,87,,,87,,,87,87,,,,,,,87,,,,,,87,,,,87,87,,87,87,,,,87,87,87,87',
402
- '87,,,87,88,88,87,,88,88,,88,,,,,,,,,,,,,,,,,88,88,,,,,,88,,88,,88,88',
403
- ',88,88,88,,88,88,88,88,,,88,88,,,88,,,88,88,,,,,,,88,,,,,,88,,,,88,88',
404
- ',88,88,,,,88,88,88,88,88,,,88,89,89,88,,89,89,,89,,,,,,,,,,,,,,,,,89',
405
- '89,,,,,,89,,89,,89,89,,89,89,89,,89,89,89,89,,,89,89,,,89,,,89,89,,',
406
- ',,,,89,,,,,,89,,,,89,89,,89,89,,,,89,89,89,89,89,,,89,90,90,89,,90,90',
407
- ',90,,,,,,,,,,,,,,,,,90,90,,,,,,90,,90,,90,90,,90,90,90,,90,90,90,90',
408
- ',,90,90,,,90,,,90,90,,,,,,,90,,,,,,90,,,,90,90,,90,90,,,,90,90,90,90',
345
+ '10,11,11,10,196,11,11,201,11,190,190,47,47,190,240,240,60,202,132,128',
346
+ '60,240,132,128,203,11,11,204,60,57,57,128,11,206,11,221,11,11,257,11',
347
+ '11,11,262,11,11,11,11,237,264,11,11,61,61,11,132,265,11,11,132,62,62',
348
+ '237,268,237,11,237,132,237,272,154,11,276,170,154,11,11,170,11,11,63',
349
+ '63,280,11,11,11,11,11,281,237,11,17,17,11,282,17,17,285,17,237,237,121',
350
+ '121,291,237,237,154,292,172,170,154,237,172,170,300,17,17,301,154,152',
351
+ '152,170,17,302,17,303,17,17,305,17,17,17,308,17,17,312,237,238,314,17',
352
+ '17,153,153,17,172,327,17,17,172,167,167,238,332,238,17,238,172,238,333',
353
+ '218,17,335,219,218,17,17,219,17,17,187,187,341,17,17,17,17,17,343,238',
354
+ '17,18,18,17,345,18,18,347,18,238,238,417,417,364,238,238,218,367,223',
355
+ '219,218,238,223,219,371,18,18,373,218,376,378,219,18,379,18,382,18,18',
356
+ '383,18,18,18,390,18,18,392,238,393,401,18,18,406,416,18,223,418,18,18',
357
+ '223,425,429,59,59,369,18,59,223,369,432,437,18,438,439,445,18,18,454',
358
+ '18,18,455,457,458,18,18,18,18,18,461,464,18,19,19,18,465,19,19,469,19',
359
+ '472,369,473,59,131,369,59,478,369,481,482,493,494,369,496,497,19,19',
360
+ '131,504,131,506,131,19,131,19,59,19,19,508,19,19,19,515,19,19,59,59',
361
+ '241,,19,19,,,19,131,,19,19,,,,241,,241,19,241,,241,,,19,,,,19,19,,19',
362
+ '19,,,,19,19,19,19,19,,241,19,20,20,19,,20,20,,20,,,,,133,241,241,,,',
363
+ ',,241,,,,20,20,133,,133,,133,20,133,20,,20,20,,20,20,20,,20,20,20,20',
364
+ '134,,20,20,,,20,133,,20,20,,,,134,,134,20,134,,134,,,20,,,,20,20,,20',
365
+ '20,,,,20,20,20,20,20,,134,20,21,21,20,,21,21,,21,,,,,234,,,,,,,,,,,',
366
+ '21,21,234,,234,,234,21,234,21,,21,21,,21,21,21,,21,21,21,21,,,21,21',
367
+ ',,21,234,,21,21,,,,,,,21,,,,,,21,,,,21,21,,21,21,,,,21,21,21,21,21,',
368
+ ',21,48,48,21,,48,48,,48,,,,,,,,,,,,,,,,,48,48,48,,,,,48,,48,,48,48,',
369
+ '48,48,48,,48,48,48,48,,,48,48,,,48,,,48,48,,,,222,222,,48,222,,,,,48',
370
+ ',,,48,48,,48,48,,,,48,48,48,48,48,,,48,52,52,48,,52,52,,52,,,,222,,',
371
+ '222,,,,,,,,,,52,52,,,,,,52,,52,222,52,52,,52,52,52,,52,52,222,222,,',
372
+ '52,52,,,52,,,52,52,,,,306,306,,52,306,,,,,52,,,,52,52,,52,52,,,,52,52',
373
+ '52,52,52,,,52,53,53,52,,53,53,,53,,,,306,,,306,,,,,,,,,,53,53,,,,,,53',
374
+ ',53,306,53,53,,53,53,53,,53,53,306,306,,,53,53,,,53,,,53,53,,,,403,403',
375
+ ',53,403,,,,,53,,,,53,53,,53,53,,,,53,53,53,53,53,,,53,54,54,53,,54,54',
376
+ ',54,,,,403,,,403,,,,,,,,,,54,54,,,,,,54,,54,403,54,54,,54,54,54,,54',
377
+ '54,403,403,,,54,54,,,54,,,54,54,,,,,,,54,,,,,,54,,,,54,54,,54,54,,,',
378
+ '54,54,54,54,54,,,54,68,68,54,,68,68,68,68,,,,,,,,,,,,,,,,,68,68,,,,',
379
+ ',68,,68,,68,68,,68,68,68,,68,68,68,68,,,68,68,,,68,,,68,68,,,,,,,68',
380
+ ',,,,,68,,,,68,68,,68,68,,,,68,68,68,68,68,68,68,68,69,69,68,,69,69,69',
381
+ '69,,,,,,,,,,,,,,,,,69,69,,,,,,69,,69,,69,69,,69,69,69,,69,69,69,69,',
382
+ ',69,69,,,69,,,69,69,,,,,,,69,,,,,,69,,,,69,69,,69,69,,,,69,69,69,69',
383
+ '69,69,69,69,70,70,69,,70,70,,70,70,,,,,,,,,,,,,,,,70,70,,,,,,70,,70',
384
+ ',70,70,,70,70,70,,70,70,70,70,,,70,70,,,70,,,70,70,,,,,,,70,,,,,,70',
385
+ ',,,70,70,,70,70,,,,70,70,70,70,70,70,70,70,74,74,70,,74,74,,74,,,,,',
386
+ ',,,,,,,,,,,74,74,,,,,,74,,74,,74,74,,74,74,74,,74,74,74,74,,,74,74,',
387
+ ',74,,,74,74,,,,,,,74,,,,,,74,,,,74,74,,74,74,,,,74,74,74,74,74,,,74',
388
+ '79,79,74,,79,79,,79,,,,,,,,,,,,,,,,,79,79,,,,,,79,,79,,79,79,,79,79',
389
+ '79,,79,79,,,,,79,79,,,79,,,79,79,,,,,,,79,,,,,,79,,,,79,79,,79,79,,',
390
+ ',79,79,79,79,79,,,79,82,82,79,,82,82,,82,,,,,,,,,,,,,,,,,82,82,,,,,',
391
+ '82,,82,,82,82,,82,82,82,,82,82,82,82,,,82,82,,,82,,,82,82,,,,,,,82,',
392
+ ',,,,82,,,,82,82,,82,82,,,,82,82,82,82,82,,,82,84,84,82,,84,84,,84,,',
393
+ ',,,,,,,,,,,,,,84,84,,,,,,84,,84,,84,84,,84,84,84,,84,84,84,84,,,84,84',
394
+ ',,84,,,84,84,,,,,,,84,,,,,,84,,,,84,84,,84,84,,,,84,84,84,84,84,,,84',
395
+ '85,85,84,,85,85,,85,,,,,,,,,,,,,,,,,85,85,,,,,,85,,85,,85,85,,85,85',
396
+ '85,,85,85,85,85,,,85,85,,,85,,,85,85,,,,,,,85,,,,,,85,,,,85,85,,85,85',
397
+ ',,,85,85,85,85,85,,,85,86,86,85,,86,86,,86,,,,,,,,,,,,,,,,,86,86,,,',
398
+ ',,86,,86,,86,86,,86,86,86,,86,86,86,86,,,86,86,,,86,,,86,86,,,,,,,86',
399
+ ',,,,,86,,,,86,86,,86,86,,,,86,86,86,86,86,,,86,87,87,86,,87,87,,87,',
400
+ ',,,,,,,,,,,,,,,87,87,,,,,,87,,87,,87,87,,87,87,87,,87,87,87,87,,,87',
401
+ '87,,,87,,,87,87,,,,,,,87,,,,,,87,,,,87,87,,87,87,,,,87,87,87,87,87,',
402
+ ',87,88,88,87,,88,88,,88,,,,,,,,,,,,,,,,,88,88,,,,,,88,,88,,88,88,,88',
403
+ '88,88,,88,88,88,88,,,88,88,,,88,,,88,88,,,,,,,88,,,,,,88,,,,88,88,,88',
404
+ '88,,,,88,88,88,88,88,,,88,89,89,88,,89,89,,89,,,,,,,,,,,,,,,,,89,89',
405
+ ',,,,,89,,89,,89,89,,89,89,89,,89,89,89,89,,,89,89,,,89,,,89,89,,,,,',
406
+ ',89,,,,,,89,,,,89,89,,89,89,,,,89,89,89,89,89,,,89,90,90,89,,90,90,',
407
+ '90,,,,,,,,,,,,,,,,,90,90,,,,,,90,,90,,90,90,,90,90,90,,90,90,90,90,',
408
+ ',90,90,,,90,,,90,90,,,,,,,90,,,,,,90,,,,90,90,,90,90,,,,90,90,90,90',
409
409
  '90,,,90,91,91,90,,91,91,,91,,,,,,,,,,,,,,,,,91,91,,,,,,91,,91,,91,91',
410
410
  ',91,91,91,,91,91,91,91,,,91,91,,,91,,,91,91,,,,,,,91,,,,,,91,,,,91,91',
411
411
  ',91,91,,,,91,91,91,91,91,,,91,92,92,91,,92,92,,92,,,,,,,,,,,,,,,,,92',
@@ -663,8 +663,8 @@ racc_action_pointer = [
663
663
  176, 265, 62, nil, nil, nil, 168, 354, 443, 532,
664
664
  621, 710, nil, nil, nil, nil, nil, nil, nil, nil,
665
665
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
666
- nil, nil, nil, nil, nil, nil, nil, 188, 799, 157,
667
- 27, 96, 888, 977, 1066, 60, 193, 190, 127, 503,
666
+ nil, nil, nil, nil, nil, nil, nil, 189, 799, 157,
667
+ 27, 96, 888, 977, 1066, 60, 193, 207, 127, 503,
668
668
  244, 229, 237, 257, 127, nil, nil, nil, 1155, 1244,
669
669
  1333, nil, nil, nil, 1422, nil, 70, 78, nil, 1511,
670
670
  nil, 160, 1600, 156, 1689, 1778, 1867, 1956, 2045, 2134,
@@ -678,39 +678,39 @@ racc_action_pointer = [
678
678
  nil, nil, nil, nil, nil, nil, nil, 388, 4, 169,
679
679
  336, 236, 371, 235, nil, nil, nil, nil, nil, nil,
680
680
  245, nil, 6, nil, nil, 252, nil, 430, nil, nil,
681
- 293, 4715, 68, 8661, 4804, nil, 260, nil, nil, nil,
682
- nil, 274, 281, 284, 292, 8728, 291, 4893, 2, 10,
681
+ 273, 4715, 68, 8661, 4804, nil, 257, nil, nil, nil,
682
+ nil, 264, 274, 281, 284, 8728, 286, 4893, 2, 10,
683
683
  -9, 179, 4982, 5071, 5160, nil, nil, 15, 422, 425,
684
- 155, 299, 859, 460, 17, 91, nil, nil, nil, nil,
684
+ 155, 292, 859, 460, 17, 91, nil, nil, nil, nil,
685
685
  nil, nil, nil, nil, 717, 5, 94, 306, 395, 128,
686
686
  217, 573, 8745, 8789, 8806, 8850, 8867, 8915, 8932, 8980,
687
- 9026, 9072, 9127, nil, nil, 5249, 9175, 301, nil, nil,
688
- 9599, 9223, 272, nil, 304, 291, 9278, nil, 298, nil,
689
- 58, 131, 338, nil, nil, 5338, 325, nil, 5427, 5516,
690
- 309, 353, 318, nil, nil, 359, nil, nil, nil, nil,
691
- nil, 363, 345, -17, nil, -7, nil, 5605, 5694, 5783,
692
- 379, 381, 384, 387, nil, 361, 948, -24, 342, 100,
693
- nil, nil, 402, 5872, 409, nil, 5961, 6050, nil, nil,
694
- nil, nil, 6139, nil, nil, nil, nil, 410, nil, nil,
695
- nil, nil, 414, 426, 9657, 432, 9715, 6228, 6317, 6406,
696
- 6495, 435, nil, 443, 6584, 444, nil, 449, nil, nil,
687
+ 9026, 9072, 9127, nil, nil, 5249, 9175, 291, nil, nil,
688
+ 9599, 9223, 259, nil, 290, 278, 9278, nil, 289, nil,
689
+ 58, 131, 325, nil, nil, 5338, 309, nil, 5427, 5516,
690
+ 297, 344, 309, nil, nil, 349, nil, nil, nil, nil,
691
+ nil, 352, 335, -17, nil, -7, nil, 5605, 5694, 5783,
692
+ 370, 373, 379, 380, nil, 354, 948, -24, 336, 100,
693
+ nil, nil, 392, 5872, 395, nil, 5961, 6050, nil, nil,
694
+ nil, nil, 6139, nil, nil, nil, nil, 397, nil, nil,
695
+ nil, nil, 405, 413, 9657, 416, 9715, 6228, 6317, 6406,
696
+ 6495, 423, nil, 434, 6584, 435, nil, 439, nil, nil,
697
697
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
698
- nil, nil, nil, nil, 458, 6673, 9773, 462, nil, 505,
699
- nil, 460, nil, 461, 9831, nil, 405, 98, 469, 473,
700
- nil, 6762, 479, 417, 150, 6851, nil, nil, 6940, nil,
701
- 481, 120, 482, 461, 126, 7029, nil, 7118, 7207, 9889,
702
- nil, 487, nil, 1037, nil, nil, 490, nil, 7296, nil,
703
- nil, nil, nil, nil, nil, nil, 431, 374, 491, nil,
704
- nil, 9326, 9374, 9422, 9470, 502, 7385, nil, 9518, 503,
705
- nil, nil, 502, 7474, nil, nil, nil, 488, 489, 507,
706
- nil, 7563, nil, nil, 7652, 513, nil, 7741, nil, nil,
707
- 9566, 152, nil, 7830, 515, 491, nil, 522, 523, nil,
708
- nil, 527, nil, nil, 530, 529, 7919, nil, 8008, 224,
709
- nil, nil, 534, 506, nil, nil, nil, nil, 541, nil,
710
- nil, 542, 543, nil, 262, nil, nil, 8097, nil, 8186,
711
- 8275, nil, nil, 544, 546, nil, 547, nil, nil, 8364,
698
+ nil, nil, nil, nil, 447, 6673, 9773, 452, nil, 505,
699
+ nil, 455, nil, 458, 9831, nil, 401, 98, 464, 468,
700
+ nil, 6762, 472, 410, 150, 6851, nil, nil, 6940, nil,
701
+ 476, 120, 479, 457, 126, 7029, nil, 7118, 7207, 9889,
702
+ nil, 483, nil, 1037, nil, nil, 486, nil, 7296, nil,
703
+ nil, nil, nil, nil, nil, nil, 424, 374, 486, nil,
704
+ nil, 9326, 9374, 9422, 9470, 493, 7385, nil, 9518, 494,
705
+ nil, nil, 499, 7474, nil, nil, nil, 485, 487, 503,
706
+ nil, 7563, nil, nil, 7652, 507, nil, 7741, nil, nil,
707
+ 9566, 152, nil, 7830, 511, 489, nil, 515, 516, nil,
708
+ nil, 521, nil, nil, 522, 524, 7919, nil, 8008, 527,
709
+ nil, nil, 532, 501, nil, nil, nil, nil, 539, nil,
710
+ nil, 541, 542, nil, 224, nil, nil, 8097, nil, 8186,
711
+ 8275, nil, nil, 543, 544, nil, 546, 549, nil, 8364,
712
712
  nil, nil, nil, nil, 551, nil, 553, nil, 561, nil,
713
- nil, nil, nil, nil, 532, nil, nil, nil, nil ]
713
+ nil, nil, nil, nil, nil, 532, nil, nil, nil, nil ]
714
714
 
715
715
  racc_action_default = [
716
716
  -3, -288, -1, -2, -4, -5, -8, -10, -16, -21,
@@ -732,7 +732,7 @@ racc_action_default = [
732
732
  -167, -168, -169, -171, -172, -235, -236, -287, -288, -226,
733
733
  -228, -231, -227, -261, -213, -222, -223, -224, -229, -230,
734
734
  -261, -215, -288, -218, -219, -288, -237, -288, -242, -245,
735
- -288, -249, -288, -288, -288, 519, -6, -9, -11, -12,
735
+ -288, -249, -288, -288, -288, 520, -6, -9, -11, -12,
736
736
  -13, -17, -18, -19, -20, -288, -261, -288, -87, -88,
737
737
  -89, -279, -272, -278, -266, -138, -141, -288, -269, -283,
738
738
  -182, -286, -275, -281, -210, -211, -265, -270, -271, -273,
@@ -759,60 +759,60 @@ racc_action_default = [
759
759
  -25, -29, -261, -287, -156, -157, -158, -288, -288, -261,
760
760
  -92, -288, -200, -207, -249, -288, -105, -288, -107, -190,
761
761
  -195, -111, -110, -288, -288, -117, -116, -288, -288, -120,
762
- -122, -288, -153, -154, -288, -261, -288, -174, -287, -288,
762
+ -122, -288, -153, -154, -288, -261, -288, -174, -287, -261,
763
763
  -253, -256, -288, -30, -127, -129, -131, -27, -288, -187,
764
764
  -188, -288, -288, -104, -288, -109, -112, -288, -115, -288,
765
- -287, -145, -146, -288, -288, -162, -288, -202, -24, -31,
765
+ -287, -145, -146, -288, -288, -162, -288, -288, -24, -31,
766
766
  -151, -148, -208, -177, -288, -114, -288, -119, -288, -124,
767
- -125, -147, -161, -175, -263, -113, -118, -123, -32 ]
767
+ -125, -147, -161, -175, -202, -263, -113, -118, -123, -32 ]
768
768
 
769
769
  racc_goto_table = [
770
770
  2, 122, 131, 133, 134, 265, 135, 136, 161, 159,
771
- 257, 263, 263, 364, 144, 281, 254, 329, 325, 177,
772
- 177, 141, 186, 285, 142, 310, 138, 206, 396, 404,
773
- 118, 119, 276, 1, 137, 83, 3, 148, 150, 151,
774
- 283, 472, 456, 431, 152, 153, 253, 452, 311, 167,
775
- 305, 262, 264, 380, 175, 175, 175, 173, 180, 486,
776
- 188, 395, 508, 341, 193, 420, 367, 312, 434, 327,
777
- 197, 198, 199, 200, 314, 128, 401, 205, 234, 235,
771
+ 257, 263, 263, 329, 144, 364, 254, 142, 325, 177,
772
+ 177, 141, 186, 281, 310, 138, 404, 1, 285, 396,
773
+ 118, 119, 262, 264, 137, 83, 206, 148, 150, 151,
774
+ 283, 173, 180, 3, 152, 153, 472, 452, 431, 167,
775
+ 456, 253, 311, 380, 175, 175, 175, 486, 128, 395,
776
+ 188, 508, 341, 420, 193, 367, 434, 401, 461, 464,
777
+ 197, 198, 199, 200, 327, 405, 449, 205, 234, 235,
778
778
  236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
779
- 246, 247, 248, 249, 250, 251, 252, 256, 461, 464,
780
- 335, 261, 261, 277, 488, 266, 378, 485, 201, 202,
781
- 203, 204, 405, 196, 449, 387, 154, 272, 141, 386,
782
- 413, 122, 268, 323, 460, 295, 467, 324, 321, 322,
783
- 320, 189, 191, 137, 478, nil, nil, nil, nil, nil,
784
- 309, 141, nil, 302, 142, nil, nil, 371, 373, nil,
785
- nil, 343, nil, 300, 301, 303, nil, nil, nil, 153,
786
- 342, 167, nil, 368, 141, nil, 407, nil, 308, 496,
787
- nil, 161, 159, nil, nil, nil, 377, nil, 406, 383,
788
- 332, nil, nil, 141, nil, nil, 142, nil, nil, nil,
789
- nil, 326, 133, nil, 333, 345, nil, 148, 150, 151,
790
- 402, nil, nil, 283, nil, nil, nil, 152, 153, 122,
779
+ 246, 247, 248, 249, 250, 251, 252, 256, 268, 154,
780
+ 387, 261, 261, 277, 478, 266, 378, 485, 201, 202,
781
+ 203, 204, 488, 196, 386, 413, 323, 272, 141, 324,
782
+ 321, 122, 322, 467, 295, 460, 320, 276, 189, 300,
783
+ 301, 191, nil, 137, nil, nil, nil, 142, nil, 496,
784
+ 309, 141, nil, 302, 308, 305, nil, nil, nil, nil,
785
+ nil, nil, 371, 373, nil, 303, nil, nil, nil, 153,
786
+ 342, 167, 312, 368, 141, 407, nil, nil, nil, 314,
787
+ nil, 161, 159, nil, nil, nil, 377, nil, nil, 142,
788
+ 332, nil, nil, 141, nil, nil, 406, nil, nil, nil,
789
+ nil, 326, 133, nil, 333, 335, nil, 148, 150, 151,
790
+ 402, nil, nil, 283, 345, nil, nil, 152, 153, 122,
791
791
  nil, nil, 167, nil, nil, nil, nil, nil, nil, nil,
792
- nil, 416, nil, nil, nil, nil, nil, nil, nil, nil,
793
- nil, nil, nil, nil, nil, 425, nil, nil, nil, 429,
794
- 252, 471, 141, 141, nil, nil, nil, nil, nil, nil,
792
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
793
+ nil, nil, nil, nil, nil, nil, nil, 471, nil, nil,
794
+ 252, nil, 141, 141, nil, nil, 343, nil, nil, nil,
795
795
  nil, nil, nil, nil, 382, 161, 159, nil, nil, nil,
796
- nil, 375, 518, 256, 410, 437, nil, 438, 414, 418,
797
- 415, 482, nil, nil, nil, nil, nil, nil, nil, 326,
796
+ nil, 375, nil, 256, 410, 519, nil, nil, 414, nil,
797
+ 415, 482, nil, nil, 383, nil, nil, nil, 418, 326,
798
798
  nil, nil, nil, nil, 256, nil, nil, nil, nil, nil,
799
799
  nil, nil, 463, 463, nil, nil, nil, 390, 392, 175,
800
- nil, 432, 175, 175, nil, nil, 469, nil, 188, 439,
801
- nil, nil, 473, nil, nil, nil, nil, nil, nil, nil,
802
- nil, nil, 421, 422, 423, 424, 477, nil, 463, 428,
803
- nil, 475, nil, 481, 465, nil, nil, nil, nil, nil,
804
- 440, nil, nil, nil, nil, 484, nil, nil, nil, nil,
805
- 266, nil, 161, 159, nil, nil, 141, nil, 435, 493,
806
- nil, nil, nil, 463, nil, nil, nil, nil, nil, nil,
800
+ nil, nil, 175, 175, nil, nil, 469, nil, 188, nil,
801
+ 432, nil, nil, nil, nil, nil, 416, nil, 439, nil,
802
+ nil, nil, 421, 422, 423, 424, nil, nil, 463, 428,
803
+ 425, 475, nil, nil, 429, nil, nil, nil, nil, nil,
804
+ 440, nil, nil, 465, nil, 484, nil, nil, nil, nil,
805
+ 266, nil, 161, 159, nil, nil, 141, nil, 435, nil,
806
+ 437, nil, 438, 463, nil, nil, nil, nil, nil, nil,
807
807
  450, nil, nil, nil, 375, nil, nil, nil, nil, nil,
808
- 256, 445, nil, nil, 514, 509, nil, nil, nil, nil,
808
+ 256, 445, nil, nil, 515, 509, nil, nil, nil, nil,
809
809
  nil, nil, nil, 256, nil, nil, nil, nil, nil, nil,
810
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
810
+ nil, nil, nil, nil, nil, nil, nil, 473, nil, nil,
811
811
  nil, 252, nil, nil, nil, nil, nil, nil, nil, nil,
812
- nil, nil, nil, nil, nil, nil, 428, nil, nil, nil,
812
+ nil, 477, nil, nil, nil, nil, 428, nil, 481, nil,
813
813
  nil, nil, 256, nil, nil, nil, nil, nil, 148, nil,
814
814
  nil, nil, nil, nil, 326, nil, nil, nil, nil, nil,
815
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
815
+ nil, nil, nil, nil, 493, nil, nil, nil, 497, nil,
816
816
  nil, nil, nil, nil, nil, nil, 494, nil, nil, nil,
817
817
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
818
818
  nil, nil, nil, nil, 266, nil, nil, 504, nil, 506,
@@ -820,68 +820,68 @@ racc_goto_table = [
820
820
 
821
821
  racc_goto_check = [
822
822
  2, 66, 10, 10, 10, 13, 6, 6, 41, 42,
823
- 22, 58, 58, 14, 45, 49, 59, 102, 85, 89,
824
- 89, 43, 95, 51, 83, 40, 8, 11, 56, 75,
825
- 9, 9, 15, 1, 6, 5, 3, 10, 10, 10,
826
- 58, 12, 54, 16, 66, 66, 21, 53, 39, 66,
827
- 15, 62, 62, 50, 6, 6, 6, 86, 86, 52,
828
- 6, 55, 57, 60, 10, 63, 71, 15, 72, 51,
829
- 6, 6, 6, 6, 15, 69, 74, 10, 10, 10,
823
+ 22, 58, 58, 102, 45, 14, 59, 83, 85, 89,
824
+ 89, 43, 95, 49, 40, 8, 75, 1, 51, 56,
825
+ 9, 9, 62, 62, 6, 5, 11, 10, 10, 10,
826
+ 58, 86, 86, 3, 66, 66, 12, 53, 16, 66,
827
+ 54, 21, 39, 50, 6, 6, 6, 52, 69, 55,
828
+ 6, 57, 60, 63, 10, 71, 72, 74, 68, 68,
829
+ 6, 6, 6, 6, 51, 77, 78, 10, 10, 10,
830
830
  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
831
- 10, 10, 10, 10, 10, 10, 10, 10, 68, 68,
832
- 15, 10, 10, 45, 54, 10, 85, 53, 9, 9,
833
- 9, 9, 77, 5, 78, 79, 69, 66, 43, 81,
834
- 88, 66, 67, 91, 56, 8, 75, 92, 96, 97,
835
- 99, 100, 101, 6, 68, nil, nil, nil, nil, nil,
836
- 43, 43, nil, 66, 83, nil, nil, 51, 51, nil,
837
- nil, 15, nil, 67, 67, 2, nil, nil, nil, 66,
838
- 59, 66, nil, 58, 43, nil, 40, nil, 67, 68,
839
- nil, 41, 42, nil, nil, nil, 22, nil, 49, 15,
840
- 6, nil, nil, 43, nil, nil, 83, nil, nil, nil,
841
- nil, 2, 10, nil, 2, 11, nil, 10, 10, 10,
842
- 58, nil, nil, 58, nil, nil, nil, 66, 66, 66,
831
+ 10, 10, 10, 10, 10, 10, 10, 10, 67, 69,
832
+ 79, 10, 10, 45, 68, 10, 85, 53, 9, 9,
833
+ 9, 9, 54, 5, 81, 88, 91, 66, 43, 92,
834
+ 96, 66, 97, 75, 8, 56, 99, 15, 100, 67,
835
+ 67, 101, nil, 6, nil, nil, nil, 83, nil, 68,
836
+ 43, 43, nil, 66, 67, 15, nil, nil, nil, nil,
837
+ nil, nil, 51, 51, nil, 2, nil, nil, nil, 66,
838
+ 59, 66, 15, 58, 43, 40, nil, nil, nil, 15,
839
+ nil, 41, 42, nil, nil, nil, 22, nil, nil, 83,
840
+ 6, nil, nil, 43, nil, nil, 49, nil, nil, nil,
841
+ nil, 2, 10, nil, 2, 15, nil, 10, 10, 10,
842
+ 58, nil, nil, 58, 11, nil, nil, 66, 66, 66,
843
843
  nil, nil, 66, nil, nil, nil, nil, nil, nil, nil,
844
- nil, 15, nil, nil, nil, nil, nil, nil, nil, nil,
845
- nil, nil, nil, nil, nil, 15, nil, nil, nil, 15,
846
- 10, 102, 43, 43, nil, nil, nil, nil, nil, nil,
844
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
845
+ nil, nil, nil, nil, nil, nil, nil, 102, nil, nil,
846
+ 10, nil, 43, 43, nil, nil, 15, nil, nil, nil,
847
847
  nil, nil, nil, nil, 43, 41, 42, nil, nil, nil,
848
- nil, 6, 14, 10, 89, 15, nil, 15, 89, 11,
849
- 95, 85, nil, nil, nil, nil, nil, nil, nil, 2,
848
+ nil, 6, nil, 10, 89, 14, nil, nil, 89, nil,
849
+ 95, 85, nil, nil, 15, nil, nil, nil, 11, 2,
850
850
  nil, nil, nil, nil, 10, nil, nil, nil, nil, nil,
851
851
  nil, nil, 58, 58, nil, nil, nil, 2, 2, 6,
852
- nil, 11, 6, 6, nil, nil, 22, nil, 6, 11,
853
- nil, nil, 15, nil, nil, nil, nil, nil, nil, nil,
854
- nil, nil, 10, 10, 10, 10, 15, nil, 58, 10,
855
- nil, 59, nil, 15, 11, nil, nil, nil, nil, nil,
856
- 45, nil, nil, nil, nil, 22, nil, nil, nil, nil,
857
- 10, nil, 41, 42, nil, nil, 43, nil, 66, 15,
858
- nil, nil, nil, 58, nil, nil, nil, nil, nil, nil,
852
+ nil, nil, 6, 6, nil, nil, 22, nil, 6, nil,
853
+ 11, nil, nil, nil, nil, nil, 15, nil, 11, nil,
854
+ nil, nil, 10, 10, 10, 10, nil, nil, 58, 10,
855
+ 15, 59, nil, nil, 15, nil, nil, nil, nil, nil,
856
+ 45, nil, nil, 11, nil, 22, nil, nil, nil, nil,
857
+ 10, nil, 41, 42, nil, nil, 43, nil, 66, nil,
858
+ 15, nil, 15, 58, nil, nil, nil, nil, nil, nil,
859
859
  10, nil, nil, nil, 6, nil, nil, nil, nil, nil,
860
860
  10, 2, nil, nil, 13, 58, nil, nil, nil, nil,
861
861
  nil, nil, nil, 10, nil, nil, nil, nil, nil, nil,
862
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
862
+ nil, nil, nil, nil, nil, nil, nil, 15, nil, nil,
863
863
  nil, 10, nil, nil, nil, nil, nil, nil, nil, nil,
864
- nil, nil, nil, nil, nil, nil, 10, nil, nil, nil,
864
+ nil, 15, nil, nil, nil, nil, 10, nil, 15, nil,
865
865
  nil, nil, 10, nil, nil, nil, nil, nil, 10, nil,
866
866
  nil, nil, nil, nil, 2, nil, nil, nil, nil, nil,
867
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
867
+ nil, nil, nil, nil, 15, nil, nil, nil, 15, nil,
868
868
  nil, nil, nil, nil, nil, nil, 2, nil, nil, nil,
869
869
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
870
870
  nil, nil, nil, nil, 10, nil, nil, 2, nil, 2,
871
871
  2 ]
872
872
 
873
873
  racc_goto_pointer = [
874
- nil, 33, 0, 36, nil, 31, -14, nil, -22, 20,
875
- -15, -65, -377, -115, -252, -106, -322, nil, nil, nil,
876
- nil, -65, -102, nil, nil, nil, nil, nil, nil, nil,
877
- nil, nil, nil, nil, nil, nil, nil, nil, nil, -120,
878
- -143, -51, -50, -28, nil, -36, nil, nil, nil, -130,
879
- -228, -123, -394, -344, -351, -238, -271, -428, -105, -95,
880
- -192, nil, -65, -271, nil, nil, -11, 1, -299, 59,
881
- nil, -202, -301, nil, -229, -277, nil, -195, -270, -178,
882
- nil, -173, nil, -25, nil, -173, -11, nil, -196, -49,
883
- nil, -67, -63, nil, nil, -52, -59, -58, nil, -57,
884
- 55, 55, -176 ]
874
+ nil, 27, 0, 43, nil, 31, -14, nil, -23, 20,
875
+ -15, -56, -372, -115, -250, -11, -317, nil, nil, nil,
876
+ nil, -60, -102, nil, nil, nil, nil, nil, nil, nil,
877
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, -116,
878
+ -144, -51, -50, -28, nil, -36, nil, nil, nil, -122,
879
+ -228, -118, -396, -344, -343, -240, -270, -429, -105, -95,
880
+ -193, nil, -84, -273, nil, nil, -11, -23, -329, 42,
881
+ nil, -203, -303, nil, -238, -280, nil, -232, -308, -193,
882
+ nil, -178, nil, -32, nil, -173, -27, nil, -201, -49,
883
+ nil, -74, -71, nil, nil, -52, -67, -65, nil, -61,
884
+ 52, 54, -180 ]
885
885
 
886
886
  racc_goto_default = [
887
887
  nil, nil, 462, nil, 4, 5, 6, 7, nil, 8,
@@ -1099,7 +1099,7 @@ racc_reduce_table = [
1099
1099
  1, 179, :_reduce_199,
1100
1100
  4, 179, :_reduce_200,
1101
1101
  4, 132, :_reduce_201,
1102
- 6, 132, :_reduce_202,
1102
+ 7, 132, :_reduce_202,
1103
1103
  3, 132, :_reduce_203,
1104
1104
  3, 132, :_reduce_204,
1105
1105
  3, 132, :_reduce_205,
@@ -1188,7 +1188,7 @@ racc_reduce_table = [
1188
1188
 
1189
1189
  racc_reduce_n = 288
1190
1190
 
1191
- racc_shift_n = 519
1191
+ racc_shift_n = 520
1192
1192
 
1193
1193
  racc_token_table = {
1194
1194
  false => 0,